From 64da0da05d8e7de0d79f022f98df7168b78cef57 Mon Sep 17 00:00:00 2001 From: Dennis Luxen Date: Tue, 5 May 2026 20:48:26 +0200 Subject: [PATCH] fix(docs): v26.5.0 base dir fix --- docs/v26.5.0/404.html | 10 ++++----- .../{app.C5ektlIn.js => app.By2oFY2W.js} | 2 +- .../chunks/@localSearchIndexroot.CL7jhrei.js | 1 + .../chunks/@localSearchIndexroot.D9qikBrG.js | 1 - ...lmokQH.js => VPLocalSearchBox.DGnxHqzH.js} | 2 +- ...work.C2NLiVii.js => framework.K54bclBu.js} | 2 +- .../{theme.CRHW4GoY.js => theme.H8GjM6k9.js} | 4 ++-- ...md.B5iBKzmw.js => cucumber.md.CPJj3-i4.js} | 2 +- ...w.lean.js => cucumber.md.CPJj3-i4.lean.js} | 2 +- ....CHbv2cLk.js => developing.md.DuNcRcq_.js} | 2 +- ...lean.js => developing.md.DuNcRcq_.lean.js} | 2 +- ...ttp.md.B98BbSjI.js => http.md.B26Skzz9.js} | 2 +- docs/v26.5.0/assets/http.md.B26Skzz9.lean.js | 1 + docs/v26.5.0/assets/http.md.B98BbSjI.lean.js | 1 - ...ex.md.BuTlAqVr.js => index.md.B-SvR98-.js} | 2 +- ...AqVr.lean.js => index.md.B-SvR98-.lean.js} | 2 +- ....md.BKkADM6U.js => libosrm.md.DJV8RZ0M.js} | 2 +- ...6U.lean.js => libosrm.md.DJV8RZ0M.lean.js} | 2 +- ....B1H4WFni.js => nodejs_api.md.VFRwkv3t.js} | 2 +- ...lean.js => nodejs_api.md.VFRwkv3t.lean.js} | 2 +- ...md.PHAThxX1.js => profiles.md.CEdsuSs_.js} | 2 +- ...1.lean.js => profiles.md.CEdsuSs_.lean.js} | 2 +- ....BMYgTnwH.js => python_api.md.D_vXIkcy.js} | 2 +- ...lean.js => python_api.md.D_vXIkcy.lean.js} | 2 +- ...k.js => python_development.md.ceDaNHXn.js} | 2 +- ...=> python_development.md.ceDaNHXn.lean.js} | 2 +- ...d.D_HqADus.js => releasing.md.PQlJEQ0e.js} | 2 +- ....lean.js => releasing.md.PQlJEQ0e.lean.js} | 2 +- ...d.md.B7b7kZju.js => routed.md.D1fkRXeU.js} | 2 +- ...Zju.lean.js => routed.md.D1fkRXeU.lean.js} | 2 +- docs/v26.5.0/assets/style.CtqdTf0S.css | 1 + docs/v26.5.0/assets/style.aohmNY8E.css | 1 - ....md.CV2ZaUd4.js => testing.md.D-4lJh86.js} | 2 +- ...d4.lean.js => testing.md.D-4lJh86.lean.js} | 2 +- ...ls.md.DBA6o9B7.js => tools.md.C1AIXFhj.js} | 2 +- ...o9B7.lean.js => tools.md.C1AIXFhj.lean.js} | 2 +- ...5icV0ej.js => windows-deps.md.CiKv06OD.js} | 2 +- ...an.js => windows-deps.md.CiKv06OD.lean.js} | 2 +- docs/v26.5.0/cucumber.html | 18 +++++++-------- docs/v26.5.0/developing.html | 18 +++++++-------- docs/v26.5.0/hashmap.json | 2 +- docs/v26.5.0/http.html | 22 +++++++++---------- docs/v26.5.0/index.html | 18 +++++++-------- docs/v26.5.0/libosrm.html | 18 +++++++-------- docs/v26.5.0/nodejs/api.html | 20 ++++++++--------- docs/v26.5.0/profiles.html | 20 ++++++++--------- docs/v26.5.0/python/api.html | 20 ++++++++--------- docs/v26.5.0/python/development.html | 20 ++++++++--------- docs/v26.5.0/releasing.html | 18 +++++++-------- docs/v26.5.0/routed.html | 18 +++++++-------- docs/v26.5.0/testing.html | 20 ++++++++--------- docs/v26.5.0/tools.html | 20 ++++++++--------- docs/v26.5.0/windows-deps.html | 20 ++++++++--------- 53 files changed, 176 insertions(+), 176 deletions(-) rename docs/v26.5.0/assets/{app.C5ektlIn.js => app.By2oFY2W.js} (90%) create mode 100644 docs/v26.5.0/assets/chunks/@localSearchIndexroot.CL7jhrei.js delete mode 100644 docs/v26.5.0/assets/chunks/@localSearchIndexroot.D9qikBrG.js rename docs/v26.5.0/assets/chunks/{VPLocalSearchBox.DGlmokQH.js => VPLocalSearchBox.DGnxHqzH.js} (99%) rename docs/v26.5.0/assets/chunks/{framework.C2NLiVii.js => framework.K54bclBu.js} (90%) rename docs/v26.5.0/assets/chunks/{theme.CRHW4GoY.js => theme.H8GjM6k9.js} (99%) rename docs/v26.5.0/assets/{cucumber.md.B5iBKzmw.js => cucumber.md.CPJj3-i4.js} (98%) rename docs/v26.5.0/assets/{cucumber.md.B5iBKzmw.lean.js => cucumber.md.CPJj3-i4.lean.js} (66%) rename docs/v26.5.0/assets/{developing.md.CHbv2cLk.js => developing.md.DuNcRcq_.js} (97%) rename docs/v26.5.0/assets/{developing.md.CHbv2cLk.lean.js => developing.md.DuNcRcq_.lean.js} (69%) rename docs/v26.5.0/assets/{http.md.B98BbSjI.js => http.md.B26Skzz9.js} (95%) create mode 100644 docs/v26.5.0/assets/http.md.B26Skzz9.lean.js delete mode 100644 docs/v26.5.0/assets/http.md.B98BbSjI.lean.js rename docs/v26.5.0/assets/{index.md.BuTlAqVr.js => index.md.B-SvR98-.js} (96%) rename docs/v26.5.0/assets/{index.md.BuTlAqVr.lean.js => index.md.B-SvR98-.lean.js} (92%) rename docs/v26.5.0/assets/{libosrm.md.BKkADM6U.js => libosrm.md.DJV8RZ0M.js} (98%) rename docs/v26.5.0/assets/{libosrm.md.BKkADM6U.lean.js => libosrm.md.DJV8RZ0M.lean.js} (82%) rename docs/v26.5.0/assets/{nodejs_api.md.B1H4WFni.js => nodejs_api.md.VFRwkv3t.js} (99%) rename docs/v26.5.0/assets/{nodejs_api.md.B1H4WFni.lean.js => nodejs_api.md.VFRwkv3t.lean.js} (66%) rename docs/v26.5.0/assets/{profiles.md.PHAThxX1.js => profiles.md.CEdsuSs_.js} (99%) rename docs/v26.5.0/assets/{profiles.md.PHAThxX1.lean.js => profiles.md.CEdsuSs_.lean.js} (67%) rename docs/v26.5.0/assets/{python_api.md.BMYgTnwH.js => python_api.md.D_vXIkcy.js} (99%) rename docs/v26.5.0/assets/{python_api.md.BMYgTnwH.lean.js => python_api.md.D_vXIkcy.lean.js} (67%) rename docs/v26.5.0/assets/{python_development.md.DMJOl9Fk.js => python_development.md.ceDaNHXn.js} (99%) rename docs/v26.5.0/assets/{python_development.md.DMJOl9Fk.lean.js => python_development.md.ceDaNHXn.lean.js} (70%) rename docs/v26.5.0/assets/{releasing.md.D_HqADus.js => releasing.md.PQlJEQ0e.js} (99%) rename docs/v26.5.0/assets/{releasing.md.D_HqADus.lean.js => releasing.md.PQlJEQ0e.lean.js} (84%) rename docs/v26.5.0/assets/{routed.md.B7b7kZju.js => routed.md.D1fkRXeU.js} (93%) rename docs/v26.5.0/assets/{routed.md.B7b7kZju.lean.js => routed.md.D1fkRXeU.lean.js} (65%) create mode 100644 docs/v26.5.0/assets/style.CtqdTf0S.css delete mode 100644 docs/v26.5.0/assets/style.aohmNY8E.css rename docs/v26.5.0/assets/{testing.md.CV2ZaUd4.js => testing.md.D-4lJh86.js} (99%) rename docs/v26.5.0/assets/{testing.md.CV2ZaUd4.lean.js => testing.md.D-4lJh86.lean.js} (66%) rename docs/v26.5.0/assets/{tools.md.DBA6o9B7.js => tools.md.C1AIXFhj.js} (99%) rename docs/v26.5.0/assets/{tools.md.DBA6o9B7.lean.js => tools.md.C1AIXFhj.lean.js} (66%) rename docs/v26.5.0/assets/{windows-deps.md.g5icV0ej.js => windows-deps.md.CiKv06OD.js} (96%) rename docs/v26.5.0/assets/{windows-deps.md.g5icV0ej.lean.js => windows-deps.md.CiKv06OD.lean.js} (69%) diff --git a/docs/v26.5.0/404.html b/docs/v26.5.0/404.html index 9958e04..d32f799 100644 --- a/docs/v26.5.0/404.html +++ b/docs/v26.5.0/404.html @@ -6,17 +6,17 @@ 404 | OSRM API Documentation - - + + - - + +
- + \ No newline at end of file diff --git a/docs/v26.5.0/assets/app.C5ektlIn.js b/docs/v26.5.0/assets/app.By2oFY2W.js similarity index 90% rename from docs/v26.5.0/assets/app.C5ektlIn.js rename to docs/v26.5.0/assets/app.By2oFY2W.js index cb2fbed..28eb53b 100644 --- a/docs/v26.5.0/assets/app.C5ektlIn.js +++ b/docs/v26.5.0/assets/app.By2oFY2W.js @@ -1 +1 @@ -import{t as p}from"./chunks/theme.CRHW4GoY.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.C2NLiVii.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,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}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp}; +import{t as p}from"./chunks/theme.H8GjM6k9.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.K54bclBu.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,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}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp}; diff --git a/docs/v26.5.0/assets/chunks/@localSearchIndexroot.CL7jhrei.js b/docs/v26.5.0/assets/chunks/@localSearchIndexroot.CL7jhrei.js new file mode 100644 index 0000000..a2de677 --- /dev/null +++ b/docs/v26.5.0/assets/chunks/@localSearchIndexroot.CL7jhrei.js @@ -0,0 +1 @@ +const e='{"documentCount":235,"nextId":235,"documentIds":{"0":"/docs/v26.5.0/cucumber#cucumber","1":"/docs/v26.5.0/cucumber#tl-dr","2":"/docs/v26.5.0/cucumber#single-osrm-configuration","3":"/docs/v26.5.0/cucumber#profiles","4":"/docs/v26.5.0/cucumber#arguments","5":"/docs/v26.5.0/cucumber#all-osrm-configurations","6":"/docs/v26.5.0/cucumber#cache","7":"/docs/v26.5.0/cucumber#configuration","8":"/docs/v26.5.0/cucumber#other-environment-variables","9":"/docs/v26.5.0/cucumber#tags","10":"/docs/v26.5.0/developing#developing-debugging-guidance-code","11":"/docs/v26.5.0/developing#how-to-use-geojson-debugging","12":"/docs/v26.5.0/developing#outputting-into-a-single-file","13":"/docs/v26.5.0/developing#possible-scopeguard-location","14":"/docs/v26.5.0/developing#limitations","15":"/docs/v26.5.0/http#osrm-http-server","16":"/docs/v26.5.0/http#general-options","17":"/docs/v26.5.0/http#requests","18":"/docs/v26.5.0/http#example-requests","19":"/docs/v26.5.0/http#responses","20":"/docs/v26.5.0/http#code","21":"/docs/v26.5.0/http#data-version","22":"/docs/v26.5.0/http#example-response","23":"/docs/v26.5.0/http#services","24":"/docs/v26.5.0/http#nearest-service","25":"/docs/v26.5.0/http#example-requests-1","26":"/docs/v26.5.0/http#example-response-1","27":"/docs/v26.5.0/http#route-service","28":"/docs/v26.5.0/http#example-request","29":"/docs/v26.5.0/http#table-service","30":"/docs/v26.5.0/http#example-request-1","31":"/docs/v26.5.0/http#example-response-2","32":"/docs/v26.5.0/http#match-service","33":"/docs/v26.5.0/http#trip-service","34":"/docs/v26.5.0/http#example-requests-2","35":"/docs/v26.5.0/http#response","36":"/docs/v26.5.0/http#tile-service","37":"/docs/v26.5.0/http#example-request-2","38":"/docs/v26.5.0/http#example-response-3","39":"/docs/v26.5.0/http#result-objects","40":"/docs/v26.5.0/http#route-object","41":"/docs/v26.5.0/http#example","42":"/docs/v26.5.0/http#routeleg-object","43":"/docs/v26.5.0/http#example-1","44":"/docs/v26.5.0/http#annotation-object","45":"/docs/v26.5.0/http#example-2","46":"/docs/v26.5.0/http#routestep-object","47":"/docs/v26.5.0/http#example-3","48":"/docs/v26.5.0/http#stepmaneuver-object","49":"/docs/v26.5.0/http#lane-object","50":"/docs/v26.5.0/http#example-4","51":"/docs/v26.5.0/http#intersection-object","52":"/docs/v26.5.0/http#example-5","53":"/docs/v26.5.0/http#waypoint-object","54":"/docs/v26.5.0/http#example-6","55":"/docs/v26.5.0/http#flatbuffers-format","56":"/docs/v26.5.0/http#root-object","57":"/docs/v26.5.0/http#error-object","58":"/docs/v26.5.0/http#waypoint-object-1","59":"/docs/v26.5.0/http#routeobject-object","60":"/docs/v26.5.0/http#leg-object","61":"/docs/v26.5.0/http#step-object","62":"/docs/v26.5.0/http#intersection-object-1","63":"/docs/v26.5.0/http#lane-object-1","64":"/docs/v26.5.0/http#stepmaneuver-object-1","65":"/docs/v26.5.0/http#annotation-object-1","66":"/docs/v26.5.0/http#position-object","67":"/docs/v26.5.0/http#uint64pair","68":"/docs/v26.5.0/http#table-object","69":"/docs/v26.5.0/#getting-started","70":"/docs/v26.5.0/#documentation","71":"/docs/v26.5.0/#resources","72":"/docs/v26.5.0/libosrm#introduction","73":"/docs/v26.5.0/libosrm#important-interface-objects","74":"/docs/v26.5.0/libosrm#example","75":"/docs/v26.5.0/libosrm#workflow","76":"/docs/v26.5.0/nodejs/api#osrm","77":"/docs/v26.5.0/nodejs/api#parameters","78":"/docs/v26.5.0/nodejs/api#route","79":"/docs/v26.5.0/nodejs/api#parameters-1","80":"/docs/v26.5.0/nodejs/api#examples","81":"/docs/v26.5.0/nodejs/api#nearest","82":"/docs/v26.5.0/nodejs/api#parameters-2","83":"/docs/v26.5.0/nodejs/api#examples-1","84":"/docs/v26.5.0/nodejs/api#table","85":"/docs/v26.5.0/nodejs/api#parameters-3","86":"/docs/v26.5.0/nodejs/api#examples-2","87":"/docs/v26.5.0/nodejs/api#tile","88":"/docs/v26.5.0/nodejs/api#parameters-4","89":"/docs/v26.5.0/nodejs/api#examples-3","90":"/docs/v26.5.0/nodejs/api#match","91":"/docs/v26.5.0/nodejs/api#parameters-5","92":"/docs/v26.5.0/nodejs/api#examples-4","93":"/docs/v26.5.0/nodejs/api#trip","94":"/docs/v26.5.0/nodejs/api#parameters-6","95":"/docs/v26.5.0/nodejs/api#examples-5","96":"/docs/v26.5.0/nodejs/api#configuration","97":"/docs/v26.5.0/nodejs/api#parameters-7","98":"/docs/v26.5.0/nodejs/api#examples-6","99":"/docs/v26.5.0/nodejs/api#responses","100":"/docs/v26.5.0/nodejs/api#route-1","101":"/docs/v26.5.0/nodejs/api#parameters-8","102":"/docs/v26.5.0/nodejs/api#routeleg","103":"/docs/v26.5.0/nodejs/api#parameters-9","104":"/docs/v26.5.0/nodejs/api#routestep","105":"/docs/v26.5.0/nodejs/api#parameters-10","106":"/docs/v26.5.0/nodejs/api#stepmaneuver","107":"/docs/v26.5.0/nodejs/api#parameters-11","108":"/docs/v26.5.0/nodejs/api#waypoint","109":"/docs/v26.5.0/nodejs/api#parameters-12","110":"/docs/v26.5.0/profiles#osrm-profiles","111":"/docs/v26.5.0/profiles#available-profiles","112":"/docs/v26.5.0/profiles#using-multiple-profiles-with-the-same-input","113":"/docs/v26.5.0/profiles#processing-flow","114":"/docs/v26.5.0/profiles#profiles-are-written-in-lua","115":"/docs/v26.5.0/profiles#basic-structure-of-profiles","116":"/docs/v26.5.0/profiles#understanding-speed-weight-and-rate","117":"/docs/v26.5.0/profiles#elements","118":"/docs/v26.5.0/profiles#api-version","119":"/docs/v26.5.0/profiles#library-files","120":"/docs/v26.5.0/profiles#setup","121":"/docs/v26.5.0/profiles#process-node-profile-node-result-relations","122":"/docs/v26.5.0/profiles#obstacle","123":"/docs/v26.5.0/profiles#obstacle-type","124":"/docs/v26.5.0/profiles#obstacle-direction","125":"/docs/v26.5.0/profiles#obstacle-map","126":"/docs/v26.5.0/profiles#obstacle-map-add-node-obstacle","127":"/docs/v26.5.0/profiles#obstacle-map-any-from-to-type","128":"/docs/v26.5.0/profiles#obstacle-map-get-from-to-type","129":"/docs/v26.5.0/profiles#process-way-profile-way-result-relations","130":"/docs/v26.5.0/profiles#way-names","131":"/docs/v26.5.0/profiles#process-segment-profile-segment","132":"/docs/v26.5.0/profiles#process-turn-profile-turn","133":"/docs/v26.5.0/profiles#from-via-and-to","134":"/docs/v26.5.0/profiles#source-road-target-road-roads-on-the-right-and-roads-on-the-left","135":"/docs/v26.5.0/profiles#highway-turn-classification-and-access-turn-classification","136":"/docs/v26.5.0/profiles#guidance","137":"/docs/v26.5.0/profiles#using-raster-data","138":"/docs/v26.5.0/profiles#helper-functions","139":"/docs/v26.5.0/python/api#python-api","140":"/docs/v26.5.0/python/api#osrm","141":"/docs/v26.5.0/python/api#parameters","142":"/docs/v26.5.0/python/api#services","143":"/docs/v26.5.0/python/api#route","144":"/docs/v26.5.0/python/api#routeparameters","145":"/docs/v26.5.0/python/api#table","146":"/docs/v26.5.0/python/api#tableparameters","147":"/docs/v26.5.0/python/api#nearest","148":"/docs/v26.5.0/python/api#nearestparameters","149":"/docs/v26.5.0/python/api#match","150":"/docs/v26.5.0/python/api#matchparameters","151":"/docs/v26.5.0/python/api#trip","152":"/docs/v26.5.0/python/api#tripparameters","153":"/docs/v26.5.0/python/api#tile","154":"/docs/v26.5.0/python/api#tileparameters","155":"/docs/v26.5.0/python/api#baseparameters","156":"/docs/v26.5.0/python/api#types","157":"/docs/v26.5.0/python/api#coordinate","158":"/docs/v26.5.0/python/api#bearing","159":"/docs/v26.5.0/python/api#object-array","160":"/docs/v26.5.0/python/api#cli","161":"/docs/v26.5.0/routed#environment-variables","162":"/docs/v26.5.0/routed#shm-lock-dir","163":"/docs/v26.5.0/routed#signal-parent-when-ready","164":"/docs/v26.5.0/routed#disable-access-logging","165":"/docs/v26.5.0/releasing#releasing-a-new-osrm-version","166":"/docs/v26.5.0/releasing#version-history","167":"/docs/v26.5.0/releasing#versioning-scheme","168":"/docs/v26.5.0/releasing#format","169":"/docs/v26.5.0/releasing#examples","170":"/docs/v26.5.0/releasing#release-compatibility-guarantees","171":"/docs/v26.5.0/releasing#patch-version-change-new-patchlevel-in-same-month","172":"/docs/v26.5.0/releasing#month-change-new-yyyy-mm","173":"/docs/v26.5.0/releasing#conventional-commits","174":"/docs/v26.5.0/releasing#release-management","175":"/docs/v26.5.0/releasing#automated-release-process","176":"/docs/v26.5.0/releasing#manual-release-trigger","177":"/docs/v26.5.0/releasing#release-checklist","178":"/docs/v26.5.0/releasing#after-release","179":"/docs/v26.5.0/python/development#python-bindings-development-guide","180":"/docs/v26.5.0/python/development#installing-for-production","181":"/docs/v26.5.0/python/development#installing-for-development","182":"/docs/v26.5.0/python/development#platform-specific-build-requirements","183":"/docs/v26.5.0/python/development#linux","184":"/docs/v26.5.0/python/development#macos","185":"/docs/v26.5.0/python/development#windows","186":"/docs/v26.5.0/python/development#building-locally","187":"/docs/v26.5.0/python/development#editable-install-recommended-for-development","188":"/docs/v26.5.0/python/development#building-a-wheel","189":"/docs/v26.5.0/python/development#wheel-repair","190":"/docs/v26.5.0/python/development#compiler-cache","191":"/docs/v26.5.0/python/development#running-tests","192":"/docs/v26.5.0/python/development#running-cibuildwheel-locally","193":"/docs/v26.5.0/python/development#type-stubs","194":"/docs/v26.5.0/python/development#releasing","195":"/docs/v26.5.0/python/development#scheduled-monthly-release","196":"/docs/v26.5.0/python/development#manual-release","197":"/docs/v26.5.0/python/development#verification","198":"/docs/v26.5.0/python/development#version-mechanics","199":"/docs/v26.5.0/testing#testsuite","200":"/docs/v26.5.0/testing#unit-tests","201":"/docs/v26.5.0/testing#separate-test-binaries","202":"/docs/v26.5.0/testing#using-boost-test-primitives","203":"/docs/v26.5.0/testing#test-fixture","204":"/docs/v26.5.0/testing#running-tests","205":"/docs/v26.5.0/testing#cucumber","206":"/docs/v26.5.0/testing#test-the-feature","207":"/docs/v26.5.0/testing#write-tests-to-scale","208":"/docs/v26.5.0/testing#use-names","209":"/docs/v26.5.0/testing#test-all-directions","210":"/docs/v26.5.0/testing#prevent-randomness","211":"/docs/v26.5.0/testing#use-waypoints","212":"/docs/v26.5.0/testing#allow-for-small-offsets","213":"/docs/v26.5.0/testing#don-t-rely-on-alternatives","214":"/docs/v26.5.0/testing#understanding-turn-restrictions","215":"/docs/v26.5.0/testing#my-guidance-tests-are-failing-understanding-what-you-can-change","216":"/docs/v26.5.0/testing#don-t-change-the-test-change-the-expected-behaviour","217":"/docs/v26.5.0/testing#consider-post-processing-impacts","218":"/docs/v26.5.0/testing#use-caution","219":"/docs/v26.5.0/tools#command-line-tools","220":"/docs/v26.5.0/tools#common-options","221":"/docs/v26.5.0/tools#list-inputs","222":"/docs/v26.5.0/tools#osrm-extract","223":"/docs/v26.5.0/tools#osrm-partition","224":"/docs/v26.5.0/tools#osrm-customize","225":"/docs/v26.5.0/tools#osrm-contract","226":"/docs/v26.5.0/tools#osrm-routed","227":"/docs/v26.5.0/tools#server","228":"/docs/v26.5.0/tools#data-loading","229":"/docs/v26.5.0/tools#query-limits","230":"/docs/v26.5.0/tools#osrm-datastore","231":"/docs/v26.5.0/windows-deps#building-osrm-for-windows","232":"/docs/v26.5.0/windows-deps#dependencies","233":"/docs/v26.5.0/windows-deps#prerequisites","234":"/docs/v26.5.0/windows-deps#building"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,25],"1":[2,1,9],"2":[3,1,53],"3":[1,4,84],"4":[1,4,42],"5":[3,1,30],"6":[1,1,36],"7":[1,1,111],"8":[3,2,29],"9":[1,1,80],"10":[4,1,46],"11":[5,4,20],"12":[5,4,120],"13":[3,9,84],"14":[1,4,73],"15":[3,1,33],"16":[2,3,19],"17":[1,5,218],"18":[2,6,39],"19":[1,5,1],"20":[1,6,88],"21":[2,6,38],"22":[2,6,14],"23":[1,3,1],"24":[2,4,104],"25":[2,6,32],"26":[2,6,33],"27":[2,4,168],"28":[2,6,31],"29":[2,4,133],"30":[2,6,139],"31":[2,6,57],"32":[2,4,282],"33":[2,4,169],"34":[2,6,38],"35":[1,6,71],"36":[2,4,78],"37":[2,6,23],"38":[2,6,204],"39":[2,3,1],"40":[2,5,72],"41":[1,7,28],"42":[2,5,76],"43":[1,7,35],"44":[2,5,85],"45":[1,7,25],"46":[2,5,121],"47":[1,7,50],"48":[2,5,224],"49":[2,5,77],"50":[1,7,7],"51":[2,5,136],"52":[1,7,27],"53":[2,5,67],"54":[1,7,15],"55":[2,3,71],"56":[2,5,82],"57":[2,5,10],"58":[2,5,21],"59":[2,5,34],"60":[2,5,23],"61":[2,5,166],"62":[2,5,26],"63":[2,5,54],"64":[2,5,155],"65":[2,5,8],"66":[2,5,11],"67":[1,5,18],"68":[2,5,60],"69":[2,1,25],"70":[1,1,14],"71":[1,1,7],"72":[1,1,65],"73":[3,1,207],"74":[1,1,8],"75":[1,1,25],"76":[1,1,81],"77":[1,1,121],"78":[1,1,15],"79":[1,2,223],"80":[1,2,44],"81":[1,1,24],"82":[1,2,126],"83":[1,2,52],"84":[1,1,17],"85":[1,2,165],"86":[1,2,78],"87":[1,1,53],"88":[1,2,33],"89":[1,2,29],"90":[1,1,53],"91":[1,2,187],"92":[1,2,110],"93":[1,1,71],"94":[1,2,153],"95":[1,2,66],"96":[1,1,17],"97":[1,1,79],"98":[1,1,29],"99":[1,1,1],"100":[1,1,8],"101":[1,2,6],"102":[1,1,7],"103":[1,2,6],"104":[1,1,22],"105":[1,2,6],"106":[1,1,1],"107":[1,2,6],"108":[1,1,9],"109":[1,2,6],"110":[2,1,66],"111":[2,2,51],"112":[7,3,35],"113":[2,2,45],"114":[5,2,43],"115":[4,2,134],"116":[5,2,146],"117":[1,2,1],"118":[2,3,35],"119":[2,3,77],"120":[2,3,179],"121":[6,3,70],"122":[1,3,83],"123":[2,4,23],"124":[2,4,12],"125":[2,3,53],"126":[5,5,70],"127":[7,5,75],"128":[7,5,78],"129":[6,3,219],"130":[2,3,91],"131":[4,3,116],"132":[4,3,143],"133":[4,7,12],"134":[9,7,124],"135":[5,7,66],"136":[1,2,83],"137":[3,3,112],"138":[2,3,21],"139":[2,1,19],"140":[1,2,55],"141":[1,3,64],"142":[1,3,23],"143":[1,2,34],"144":[1,3,63],"145":[1,2,30],"146":[1,3,41],"147":[1,2,25],"148":[1,3,15],"149":[1,2,37],"150":[1,3,34],"151":[1,2,35],"152":[1,3,21],"153":[1,2,22],"154":[1,3,9],"155":[1,2,65],"156":[1,2,1],"157":[1,3,13],"158":[1,3,10],"159":[2,3,36],"160":[1,2,28],"161":[2,1,1],"162":[3,2,42],"163":[4,2,44],"164":[3,2,29],"165":[5,1,46],"166":[2,5,57],"167":[2,5,1],"168":[1,7,42],"169":[1,7,26],"170":[3,5,1],"171":[9,8,18],"172":[6,8,37],"173":[2,5,52],"174":[2,5,47],"175":[3,5,67],"176":[3,5,60],"177":[2,5,51],"178":[2,5,43],"179":[4,1,1],"180":[3,4,71],"181":[3,4,29],"182":[4,4,1],"183":[1,8,116],"184":[1,8,49],"185":[1,8,43],"186":[2,4,1],"187":[6,6,133],"188":[3,6,41],"189":[2,6,111],"190":[2,6,47],"191":[2,4,37],"192":[3,4,130],"193":[2,4,53],"194":[1,4,35],"195":[3,5,98],"196":[2,5,38],"197":[1,5,40],"198":[2,5,38],"199":[1,1,21],"200":[2,1,13],"201":[3,3,33],"202":[4,3,78],"203":[2,3,66],"204":[2,3,23],"205":[1,1,31],"206":[3,2,39],"207":[4,2,106],"208":[2,2,92],"209":[3,2,97],"210":[2,2,21],"211":[2,4,78],"212":[4,4,39],"213":[5,4,25],"214":[3,2,111],"215":[10,1,90],"216":[7,11,126],"217":[4,11,96],"218":[2,11,34],"219":[3,1,35],"220":[2,3,58],"221":[3,5,40],"222":[2,3,124],"223":[2,3,93],"224":[2,3,84],"225":[2,3,84],"226":[2,3,19],"227":[1,5,44],"228":[2,5,59],"229":[2,5,49],"230":[2,3,102],"231":[4,1,10],"232":[1,4,43],"233":[1,4,29],"234":[1,4,42]},"averageFieldLength":[2.153191489361699,3.574468085106383,58.50212765957442],"storedFields":{"0":{"title":"Cucumber","titles":[]},"1":{"title":"tl;dr","titles":["Cucumber"]},"2":{"title":"Single OSRM Configuration","titles":["Cucumber"]},"3":{"title":"Profiles","titles":["Cucumber","Single OSRM Configuration"]},"4":{"title":"Arguments","titles":["Cucumber","Single OSRM Configuration"]},"5":{"title":"All OSRM Configurations","titles":["Cucumber"]},"6":{"title":"Cache","titles":["Cucumber"]},"7":{"title":"Configuration","titles":["Cucumber"]},"8":{"title":"Other environment variables","titles":["Cucumber","Configuration"]},"9":{"title":"Tags","titles":["Cucumber"]},"10":{"title":"Developing / Debugging guidance code","titles":[]},"11":{"title":"How to use GeoJson-Debugging","titles":["Developing / Debugging guidance code"]},"12":{"title":"Outputting into a single file","titles":["Developing / Debugging guidance code"]},"13":{"title":"Possible Scopeguard Location","titles":["Developing / Debugging guidance code","Outputting into a single file"]},"14":{"title":"Limitations","titles":["Developing / Debugging guidance code"]},"15":{"title":"OSRM HTTP server","titles":[]},"16":{"title":"General options","titles":["OSRM HTTP server"]},"17":{"title":"Requests","titles":["OSRM HTTP server","General options"]},"18":{"title":"Example Requests","titles":["OSRM HTTP server","General options","Requests"]},"19":{"title":"Responses","titles":["OSRM HTTP server","General options"]},"20":{"title":"Code","titles":["OSRM HTTP server","General options","Responses"]},"21":{"title":"Data version","titles":["OSRM HTTP server","General options","Responses"]},"22":{"title":"Example response","titles":["OSRM HTTP server","General options","Responses"]},"23":{"title":"Services","titles":["OSRM HTTP server"]},"24":{"title":"Nearest service","titles":["OSRM HTTP server","Services"]},"25":{"title":"Example Requests","titles":["OSRM HTTP server","Services","Nearest service"]},"26":{"title":"Example Response","titles":["OSRM HTTP server","Services","Nearest service"]},"27":{"title":"Route service","titles":["OSRM HTTP server","Services"]},"28":{"title":"Example Request","titles":["OSRM HTTP server","Services","Route service"]},"29":{"title":"Table service","titles":["OSRM HTTP server","Services"]},"30":{"title":"Example Request","titles":["OSRM HTTP server","Services","Table service"]},"31":{"title":"Example Response","titles":["OSRM HTTP server","Services","Table service"]},"32":{"title":"Match service","titles":["OSRM HTTP server","Services"]},"33":{"title":"Trip service","titles":["OSRM HTTP server","Services"]},"34":{"title":"Example Requests","titles":["OSRM HTTP server","Services","Trip service"]},"35":{"title":"Response","titles":["OSRM HTTP server","Services","Trip service"]},"36":{"title":"Tile service","titles":["OSRM HTTP server","Services"]},"37":{"title":"Example request","titles":["OSRM HTTP server","Services","Tile service"]},"38":{"title":"Example response","titles":["OSRM HTTP server","Services","Tile service"]},"39":{"title":"Result objects","titles":["OSRM HTTP server"]},"40":{"title":"Route object","titles":["OSRM HTTP server","Result objects"]},"41":{"title":"Example","titles":["OSRM HTTP server","Result objects","Route object"]},"42":{"title":"RouteLeg object","titles":["OSRM HTTP server","Result objects"]},"43":{"title":"Example","titles":["OSRM HTTP server","Result objects","RouteLeg object"]},"44":{"title":"Annotation object","titles":["OSRM HTTP server","Result objects"]},"45":{"title":"Example","titles":["OSRM HTTP server","Result objects","Annotation object"]},"46":{"title":"RouteStep object","titles":["OSRM HTTP server","Result objects"]},"47":{"title":"Example","titles":["OSRM HTTP server","Result objects","RouteStep object"]},"48":{"title":"StepManeuver object","titles":["OSRM HTTP server","Result objects"]},"49":{"title":"Lane object","titles":["OSRM HTTP server","Result objects"]},"50":{"title":"Example","titles":["OSRM HTTP server","Result objects","Lane object"]},"51":{"title":"Intersection object","titles":["OSRM HTTP server","Result objects"]},"52":{"title":"Example","titles":["OSRM HTTP server","Result objects","Intersection object"]},"53":{"title":"Waypoint object","titles":["OSRM HTTP server","Result objects"]},"54":{"title":"Example","titles":["OSRM HTTP server","Result objects","Waypoint object"]},"55":{"title":"Flatbuffers format","titles":["OSRM HTTP server"]},"56":{"title":"Root object","titles":["OSRM HTTP server","Flatbuffers format"]},"57":{"title":"Error object","titles":["OSRM HTTP server","Flatbuffers format"]},"58":{"title":"Waypoint object","titles":["OSRM HTTP server","Flatbuffers format"]},"59":{"title":"RouteObject object","titles":["OSRM HTTP server","Flatbuffers format"]},"60":{"title":"Leg object","titles":["OSRM HTTP server","Flatbuffers format"]},"61":{"title":"Step object","titles":["OSRM HTTP server","Flatbuffers format"]},"62":{"title":"Intersection object","titles":["OSRM HTTP server","Flatbuffers format"]},"63":{"title":"Lane object","titles":["OSRM HTTP server","Flatbuffers format"]},"64":{"title":"StepManeuver object","titles":["OSRM HTTP server","Flatbuffers format"]},"65":{"title":"Annotation object","titles":["OSRM HTTP server","Flatbuffers format"]},"66":{"title":"Position object","titles":["OSRM HTTP server","Flatbuffers format"]},"67":{"title":"Uint64Pair","titles":["OSRM HTTP server","Flatbuffers format"]},"68":{"title":"Table object","titles":["OSRM HTTP server","Flatbuffers format"]},"69":{"title":"Getting Started","titles":[]},"70":{"title":"Documentation","titles":[]},"71":{"title":"Resources","titles":[]},"72":{"title":"Introduction","titles":[]},"73":{"title":"Important interface objects","titles":[]},"74":{"title":"Example","titles":[]},"75":{"title":"Workflow","titles":[]},"76":{"title":"OSRM","titles":[]},"77":{"title":"Parameters","titles":["OSRM"]},"78":{"title":"route","titles":["OSRM"]},"79":{"title":"Parameters","titles":["OSRM","route"]},"80":{"title":"Examples","titles":["OSRM","route"]},"81":{"title":"nearest","titles":["OSRM"]},"82":{"title":"Parameters","titles":["OSRM","nearest"]},"83":{"title":"Examples","titles":["OSRM","nearest"]},"84":{"title":"table","titles":["OSRM"]},"85":{"title":"Parameters","titles":["OSRM","table"]},"86":{"title":"Examples","titles":["OSRM","table"]},"87":{"title":"tile","titles":["OSRM"]},"88":{"title":"Parameters","titles":["OSRM","tile"]},"89":{"title":"Examples","titles":["OSRM","tile"]},"90":{"title":"match","titles":["OSRM"]},"91":{"title":"Parameters","titles":["OSRM","match"]},"92":{"title":"Examples","titles":["OSRM","match"]},"93":{"title":"trip","titles":["OSRM"]},"94":{"title":"Parameters","titles":["OSRM","trip"]},"95":{"title":"Examples","titles":["OSRM","trip"]},"96":{"title":"Configuration","titles":[]},"97":{"title":"Parameters","titles":["Configuration"]},"98":{"title":"Examples","titles":["Configuration"]},"99":{"title":"Responses","titles":[]},"100":{"title":"Route","titles":["Responses"]},"101":{"title":"Parameters","titles":["Responses","Route"]},"102":{"title":"RouteLeg","titles":["Responses"]},"103":{"title":"Parameters","titles":["Responses","RouteLeg"]},"104":{"title":"RouteStep","titles":["Responses"]},"105":{"title":"Parameters","titles":["Responses","RouteStep"]},"106":{"title":"StepManeuver","titles":["Responses"]},"107":{"title":"Parameters","titles":["Responses","StepManeuver"]},"108":{"title":"Waypoint","titles":["Responses"]},"109":{"title":"Parameters","titles":["Responses","Waypoint"]},"110":{"title":"OSRM profiles","titles":[]},"111":{"title":"Available profiles","titles":["OSRM profiles"]},"112":{"title":"Using Multiple Profiles with the Same Input","titles":["OSRM profiles","Available profiles"]},"113":{"title":"Processing flow","titles":["OSRM profiles"]},"114":{"title":"Profiles are written in Lua","titles":["OSRM profiles"]},"115":{"title":"Basic structure of profiles","titles":["OSRM profiles"]},"116":{"title":"Understanding speed, weight and rate","titles":["OSRM profiles"]},"117":{"title":"Elements","titles":["OSRM profiles"]},"118":{"title":"api_version","titles":["OSRM profiles","Elements"]},"119":{"title":"Library files","titles":["OSRM profiles","Elements"]},"120":{"title":"setup()","titles":["OSRM profiles","Elements"]},"121":{"title":"process_node(profile, node, result, relations)","titles":["OSRM profiles","Elements"]},"122":{"title":"Obstacle","titles":["OSRM profiles","Elements"]},"123":{"title":"obstacle_type","titles":["OSRM profiles","Elements","Obstacle"]},"124":{"title":"obstacle_direction","titles":["OSRM profiles","Elements","Obstacle"]},"125":{"title":"obstacle_map","titles":["OSRM profiles","Elements"]},"126":{"title":"obstacle_map:add(node, obstacle)","titles":["OSRM profiles","Elements","obstacle_map"]},"127":{"title":"obstacle_map:any(from, to, type)","titles":["OSRM profiles","Elements","obstacle_map"]},"128":{"title":"obstacle_map:get(from, to, type)","titles":["OSRM profiles","Elements","obstacle_map"]},"129":{"title":"process_way(profile, way, result, relations)","titles":["OSRM profiles","Elements"]},"130":{"title":"Way names","titles":["OSRM profiles","Elements"]},"131":{"title":"process_segment(profile, segment)","titles":["OSRM profiles","Elements"]},"132":{"title":"process_turn(profile, turn)","titles":["OSRM profiles","Elements"]},"133":{"title":"from, via, and to","titles":["OSRM profiles","Elements","process_turn(profile, turn)"]},"134":{"title":"source_road, target_road, roads_on_the_right, and roads_on_the_left","titles":["OSRM profiles","Elements","process_turn(profile, turn)"]},"135":{"title":"highway_turn_classification and access_turn_classification","titles":["OSRM profiles","Elements","process_turn(profile, turn)"]},"136":{"title":"Guidance","titles":["OSRM profiles"]},"137":{"title":"Using raster data","titles":["OSRM profiles","Guidance"]},"138":{"title":"Helper functions","titles":["OSRM profiles","Guidance"]},"139":{"title":"Python API","titles":[]},"140":{"title":"OSRM","titles":["Python API"]},"141":{"title":"Parameters","titles":["Python API","OSRM"]},"142":{"title":"Services","titles":["Python API","OSRM"]},"143":{"title":"Route","titles":["Python API"]},"144":{"title":"RouteParameters","titles":["Python API","Route"]},"145":{"title":"Table","titles":["Python API"]},"146":{"title":"TableParameters","titles":["Python API","Table"]},"147":{"title":"Nearest","titles":["Python API"]},"148":{"title":"NearestParameters","titles":["Python API","Nearest"]},"149":{"title":"Match","titles":["Python API"]},"150":{"title":"MatchParameters","titles":["Python API","Match"]},"151":{"title":"Trip","titles":["Python API"]},"152":{"title":"TripParameters","titles":["Python API","Trip"]},"153":{"title":"Tile","titles":["Python API"]},"154":{"title":"TileParameters","titles":["Python API","Tile"]},"155":{"title":"BaseParameters","titles":["Python API"]},"156":{"title":"Types","titles":["Python API"]},"157":{"title":"Coordinate","titles":["Python API","Types"]},"158":{"title":"Bearing","titles":["Python API","Types"]},"159":{"title":"Object / Array","titles":["Python API","Types"]},"160":{"title":"CLI","titles":["Python API"]},"161":{"title":"Environment Variables","titles":[]},"162":{"title":"SHM_LOCK_DIR","titles":["Environment Variables"]},"163":{"title":"SIGNAL_PARENT_WHEN_READY","titles":["Environment Variables"]},"164":{"title":"DISABLE_ACCESS_LOGGING","titles":["Environment Variables"]},"165":{"title":"Releasing a new OSRM version","titles":[]},"166":{"title":"Version History","titles":["Releasing a new OSRM version"]},"167":{"title":"Versioning Scheme","titles":["Releasing a new OSRM version"]},"168":{"title":"Format","titles":["Releasing a new OSRM version","Versioning Scheme"]},"169":{"title":"Examples","titles":["Releasing a new OSRM version","Versioning Scheme"]},"170":{"title":"Release Compatibility Guarantees","titles":["Releasing a new OSRM version"]},"171":{"title":"Patch version change (new patchlevel in same month)","titles":["Releasing a new OSRM version","Release Compatibility Guarantees"]},"172":{"title":"Month change (new YYYY-MM)","titles":["Releasing a new OSRM version","Release Compatibility Guarantees"]},"173":{"title":"Conventional Commits","titles":["Releasing a new OSRM version"]},"174":{"title":"Release Management","titles":["Releasing a new OSRM version"]},"175":{"title":"Automated Release Process","titles":["Releasing a new OSRM version"]},"176":{"title":"Manual Release Trigger","titles":["Releasing a new OSRM version"]},"177":{"title":"Release Checklist","titles":["Releasing a new OSRM version"]},"178":{"title":"After Release","titles":["Releasing a new OSRM version"]},"179":{"title":"Python Bindings Development Guide","titles":[]},"180":{"title":"Installing for production","titles":["Python Bindings Development Guide"]},"181":{"title":"Installing for development","titles":["Python Bindings Development Guide"]},"182":{"title":"Platform-specific build requirements","titles":["Python Bindings Development Guide"]},"183":{"title":"Linux","titles":["Python Bindings Development Guide","Platform-specific build requirements"]},"184":{"title":"macOS","titles":["Python Bindings Development Guide","Platform-specific build requirements"]},"185":{"title":"Windows","titles":["Python Bindings Development Guide","Platform-specific build requirements"]},"186":{"title":"Building locally","titles":["Python Bindings Development Guide"]},"187":{"title":"Editable install (recommended for development)","titles":["Python Bindings Development Guide","Building locally"]},"188":{"title":"Building a wheel","titles":["Python Bindings Development Guide","Building locally"]},"189":{"title":"Wheel repair","titles":["Python Bindings Development Guide","Building locally"]},"190":{"title":"Compiler cache","titles":["Python Bindings Development Guide","Building locally"]},"191":{"title":"Running tests","titles":["Python Bindings Development Guide"]},"192":{"title":"Running cibuildwheel locally","titles":["Python Bindings Development Guide"]},"193":{"title":"Type stubs","titles":["Python Bindings Development Guide"]},"194":{"title":"Releasing","titles":["Python Bindings Development Guide"]},"195":{"title":"Scheduled monthly release","titles":["Python Bindings Development Guide","Releasing"]},"196":{"title":"Manual release","titles":["Python Bindings Development Guide","Releasing"]},"197":{"title":"Verification","titles":["Python Bindings Development Guide","Releasing"]},"198":{"title":"Version mechanics","titles":["Python Bindings Development Guide","Releasing"]},"199":{"title":"Testsuite","titles":[]},"200":{"title":"Unit Tests","titles":["Testsuite"]},"201":{"title":"Separate Test Binaries","titles":["Testsuite","Unit Tests"]},"202":{"title":"Using Boost.Test Primitives","titles":["Testsuite","Unit Tests"]},"203":{"title":"Test Fixture","titles":["Testsuite","Unit Tests"]},"204":{"title":"Running Tests","titles":["Testsuite","Unit Tests"]},"205":{"title":"Cucumber","titles":["Testsuite"]},"206":{"title":"Test the feature","titles":["Testsuite","Cucumber"]},"207":{"title":"Write Tests to Scale","titles":["Testsuite","Cucumber"]},"208":{"title":"Use names","titles":["Testsuite","Cucumber"]},"209":{"title":"Test all directions","titles":["Testsuite","Cucumber"]},"210":{"title":"Prevent Randomness","titles":["Testsuite","Cucumber"]},"211":{"title":"Use Waypoints","titles":["Testsuite","Cucumber","Prevent Randomness"]},"212":{"title":"Allow For Small Offsets","titles":["Testsuite","Cucumber","Prevent Randomness"]},"213":{"title":"Don\'t Rely on Alternatives","titles":["Testsuite","Cucumber","Prevent Randomness"]},"214":{"title":"Understanding Turn Restrictions","titles":["Testsuite","Cucumber"]},"215":{"title":"My Guidance Tests are Failing - Understanding what you can change","titles":["Testsuite"]},"216":{"title":"Don\'t change the test, change the expected behaviour","titles":["Testsuite","My Guidance Tests are Failing - Understanding what you can change"]},"217":{"title":"Consider Post-Processing Impacts","titles":["Testsuite","My Guidance Tests are Failing - Understanding what you can change"]},"218":{"title":"Use Caution","titles":["Testsuite","My Guidance Tests are Failing - Understanding what you can change"]},"219":{"title":"Command-Line Tools","titles":[]},"220":{"title":"Common Options","titles":["Command-Line Tools"]},"221":{"title":"--list-inputs","titles":["Command-Line Tools","Common Options"]},"222":{"title":"osrm-extract","titles":["Command-Line Tools"]},"223":{"title":"osrm-partition","titles":["Command-Line Tools"]},"224":{"title":"osrm-customize","titles":["Command-Line Tools"]},"225":{"title":"osrm-contract","titles":["Command-Line Tools"]},"226":{"title":"osrm-routed","titles":["Command-Line Tools"]},"227":{"title":"Server","titles":["Command-Line Tools","osrm-routed"]},"228":{"title":"Data loading","titles":["Command-Line Tools","osrm-routed"]},"229":{"title":"Query limits","titles":["Command-Line Tools","osrm-routed"]},"230":{"title":"osrm-datastore","titles":["Command-Line Tools"]},"231":{"title":"Building OSRM for Windows","titles":[]},"232":{"title":"Dependencies","titles":["Building OSRM for Windows"]},"233":{"title":"Prerequisites","titles":["Building OSRM for Windows"]},"234":{"title":"Building","titles":["Building OSRM for Windows"]}},"dirtCount":0,"index":[["$base$line",{"2":{"221":1}}],["$",{"2":{"192":1,"195":1,"221":2}}],["$vcpkg",{"2":{"192":1}}],["$pwd",{"2":{"185":1}}],["$env",{"2":{"185":1,"187":1}}],["✅",{"2":{"177":4}}],["→",{"2":{"166":2,"176":1}}],["~=",{"2":{"137":2}}],["~dpxkkhz`",{"2":{"30":1}}],["ẁaypoint",{"2":{"83":1,"86":2,"92":1}}],["|",{"2":{"77":1,"79":1,"91":1,"94":1,"134":4,"141":1,"144":1,"155":4,"207":20,"208":82,"209":57,"211":40,"214":63,"216":14}}],["+x=x",{"2":{"132":1}}],["+",{"2":{"68":2,"127":1,"128":2,"195":2,"209":5,"225":1}}],["+180",{"2":{"38":2}}],["yml",{"2":{"194":1,"195":1,"196":1,"198":1}}],["year",{"2":{"165":1,"166":1,"168":2}}],["yes",{"2":{"33":7,"93":5,"211":8,"214":6}}],["yyyy",{"0":{"172":1},"2":{"165":1,"175":1,"195":1,"196":1}}],["y=11948",{"2":{"153":1}}],["y",{"2":{"36":2,"88":1,"154":2}}],["yourself",{"2":{"73":1,"183":1}}],["your",{"2":{"8":1,"10":1,"12":2,"73":2,"116":1,"118":1,"126":1,"137":3,"176":1,"192":1,"202":1,"216":1,"217":3,"218":1}}],["you",{"0":{"215":1},"1":{"216":1,"217":1,"218":1},"2":{"3":3,"4":1,"5":1,"7":1,"10":1,"12":1,"13":4,"17":3,"33":1,"36":1,"38":1,"53":1,"72":1,"73":10,"76":3,"77":3,"79":3,"87":1,"110":1,"111":3,"112":1,"113":1,"115":3,"116":9,"119":4,"120":4,"121":2,"122":2,"125":3,"126":3,"127":1,"128":1,"129":4,"131":3,"132":1,"137":2,"176":1,"187":1,"189":1,"192":1,"201":1,"202":3,"203":2,"204":2,"207":3,"208":2,"212":2,"215":5,"216":8,"217":8,"225":1,"232":1}}],["95",{"2":{"130":1}}],["92",{"2":{"47":1}}],["90",{"2":{"38":3,"41":1,"51":1,"184":2}}],["99",{"2":{"32":1}}],["9",{"2":{"31":1,"32":1}}],["qx8aaabraaaajgaaafmaaadmaaaasufmaodwiqnl58wa03ahawmavxbs52d3",{"2":{"31":2}}],["queries",{"2":{"77":1,"141":5,"229":1}}],["querying",{"2":{"25":1}}],["query",{"0":{"229":1},"2":{"18":2,"20":2,"28":1,"53":2,"77":7,"79":1,"82":1,"85":1,"91":1,"94":1,"97":1,"113":1,"120":1,"137":4,"171":1,"172":1,"229":5}}],["quickly",{"2":{"110":1}}],["quick",{"2":{"72":1}}],["quite",{"2":{"24":1}}],["quality",{"2":{"32":1,"91":1,"174":1}}],["quot",{"2":{"12":2,"13":2,"14":8,"38":4,"110":2,"120":10,"129":14,"130":8,"131":4,"141":8,"144":32,"146":12,"150":6,"152":12,"155":12,"198":2,"222":2,"233":2}}],["72956",{"2":{"143":1,"145":1,"147":1,"149":1,"151":1,"157":1}}],["73216",{"2":{"145":1,"149":1,"151":1}}],["73077",{"2":{"143":1,"145":1,"149":1,"151":1}}],["73",{"2":{"31":1}}],["7ucagp",{"2":{"31":2}}],["7",{"2":{"29":1,"31":1,"143":2,"145":3,"147":1,"149":3,"151":3,"157":1}}],["zone",{"2":{"224":2,"225":2}}],["zoom",{"2":{"27":1,"32":1,"33":1,"36":2,"38":1,"40":1,"79":1,"91":1,"154":1}}],["z=15",{"2":{"153":1}}],["z=13",{"2":{"37":1}}],["z",{"2":{"88":1,"154":1}}],["zxy",{"2":{"88":1}}],["zeros",{"2":{"165":1,"166":1,"168":1,"175":1}}],["zero",{"2":{"3":1,"32":1,"92":1,"230":1}}],["`",{"2":{"189":3}}],["`qikdcb",{"2":{"30":1}}],["`20°",{"2":{"25":1}}],["`13",{"2":{"25":1}}],["45",{"2":{"209":1}}],["4516",{"2":{"8":1}}],["41862",{"2":{"145":1,"149":1,"151":1}}],["418555",{"2":{"34":1}}],["41546",{"2":{"143":1,"145":1,"149":1,"151":1}}],["415852",{"2":{"80":1}}],["41337",{"2":{"143":1,"145":1,"147":1,"149":1,"151":1,"157":1}}],["42324",{"2":{"73":1}}],["428554",{"2":{"31":2}}],["428555",{"2":{"18":1,"28":1,"30":5,"34":2,"86":1}}],["49786802",{"2":{"43":1,"45":1}}],["49786801",{"2":{"43":1,"45":1}}],["49786800",{"2":{"43":1,"45":1}}],["49786799",{"2":{"43":1,"45":1}}],["49772552",{"2":{"43":1,"45":1}}],["49772551",{"2":{"43":1,"45":1}}],["4096",{"2":{"223":1}}],["40",{"2":{"43":1,"45":2}}],["404",{"2":{"38":1}}],["400",{"2":{"20":1}}],["4ghawaaxwvs52d3",{"2":{"31":2}}],["4",{"2":{"26":1,"29":1,"30":1,"54":1,"118":1,"137":1,"165":3,"169":4,"175":2,"176":1,"177":1,"195":1,"196":1,"198":2,"209":1,"211":3}}],["438640",{"2":{"80":1}}],["43",{"2":{"22":1,"143":2,"145":3,"147":1,"149":3,"151":3,"157":1}}],["37",{"2":{"209":1}}],["374481201171875",{"2":{"95":1,"98":1}}],["3791",{"2":{"31":1}}],["359",{"2":{"48":2,"51":1}}],["30",{"2":{"41":1,"43":1}}],["300",{"2":{"41":2}}],["397389",{"2":{"92":1}}],["397631",{"2":{"31":2}}],["397634",{"2":{"18":2,"28":1,"30":5,"34":2,"86":1}}],["39478",{"2":{"92":1}}],["394718",{"2":{"47":1,"52":1}}],["393252",{"2":{"92":1}}],["39677",{"2":{"47":1}}],["3919",{"2":{"38":1}}],["330",{"2":{"47":1,"52":1}}],["33",{"2":{"38":1}}],["3166",{"2":{"37":1}}],["36761474609375",{"2":{"95":1,"98":1}}],["36",{"2":{"31":1}}],["360",{"2":{"17":1,"79":1,"82":1,"85":1,"91":1,"94":1}}],["3275",{"2":{"31":1}}],["344",{"2":{"31":1}}],["340°`",{"2":{"25":1}}],["382",{"2":{"31":1}}],["38faaaauqaaacyaaabtaaaahsqkqrxq5kkrbizcwjo",{"2":{"31":2}}],["3888",{"2":{"31":2}}],["388860",{"2":{"18":2,"25":2,"28":1,"30":5,"34":2,"83":1,"86":1}}],["388775",{"2":{"26":1}}],["388782",{"2":{"26":1}}],["388799",{"2":{"26":1,"54":1}}],["3x2",{"2":{"30":1}}],["3x3",{"2":{"30":5}}],["3",{"2":{"29":1,"30":1,"31":2,"41":1,"43":5,"47":2,"77":1,"83":1,"92":1,"129":1,"180":5,"211":3,"229":1}}],["==",{"2":{"122":1,"128":1,"135":4,"202":1}}],["=",{"2":{"17":3,"24":1,"29":3,"32":1,"38":4,"56":1,"76":1,"79":1,"80":1,"82":1,"83":2,"85":3,"86":2,"89":1,"91":1,"92":2,"94":1,"95":2,"98":2,"116":1,"122":1,"127":1,"128":2,"129":2,"135":5,"137":4,"140":3,"142":1,"143":2,"145":2,"147":2,"149":2,"151":2,"153":2,"157":1,"158":1,"159":1,"165":2,"168":4,"175":1,"176":1,"185":1,"187":1,"198":1}}],["x3c",{"2":{"222":1,"223":1,"224":1,"225":1,"226":1,"230":1}}],["x64",{"2":{"189":2,"234":1}}],["x86",{"2":{"180":2,"189":1,"197":2}}],["xc",{"2":{"134":1}}],["xe",{"2":{"134":1}}],["xd",{"2":{"134":1}}],["xf",{"2":{"134":1}}],["x=17059",{"2":{"153":1}}],["x=",{"2":{"132":1}}],["x20",{"2":{"79":1,"82":1,"85":1,"88":1,"91":1,"94":1}}],["x26",{"2":{"25":1,"29":1,"30":1,"34":1,"191":4}}],["x",{"2":{"17":1,"36":2,"38":1,"88":1,"132":1,"134":2,"154":2,"165":2,"168":3,"176":1,"177":1,"224":2,"225":2}}],["k",{"2":{"227":1}}],["kubernetes",{"2":{"162":1}}],["keyword",{"2":{"140":1}}],["keys",{"2":{"123":2,"124":2}}],["keepalive",{"2":{"227":1}}],["keep",{"2":{"15":1,"27":1,"79":1,"187":1,"227":1}}],["know",{"2":{"72":1}}],["kotlin",{"2":{"55":1}}],["km",{"2":{"38":1,"129":1,"132":2,"134":1}}],["kiokgdbbdgcubaeaaaaaaboaaaaaaaaapaaaablncqcltwaa50vmadjziqm8tmwarvghawaaaqh1a66g",{"2":{"26":1}}],["kills",{"2":{"9":1}}],["ksokadryroqubaeabgaaaaaaaaaaaaaakqaaabhncqcltwaa7kvmaaxziqm8tmwarvghawaaaqh1a66g",{"2":{"26":1}}],["ksokadryroqubaeaeaaaabkaaaagaaaaaaaaabhncqcltwaa",{"2":{"26":1,"54":1}}],["25",{"2":{"223":1}}],["250",{"2":{"137":3}}],["27",{"2":{"166":1,"168":1,"169":1}}],["270",{"2":{"47":1,"51":1}}],["26",{"2":{"165":2,"166":1,"168":1,"169":3,"175":1,"176":1,"177":1,"195":1,"196":1,"198":1}}],["240",{"2":{"47":1,"52":1}}],["2361",{"2":{"31":1}}],["222",{"2":{"31":1}}],["2264199819",{"2":{"26":1}}],["2838",{"2":{"31":1}}],["283",{"2":{"31":1}}],["21487242",{"2":{"26":1}}],["2097152",{"2":{"223":1}}],["2022",{"2":{"233":1,"234":1}}],["2027",{"2":{"166":1,"168":1,"169":1}}],["2025",{"2":{"166":2,"232":1}}],["2026",{"2":{"165":1,"166":3,"168":1,"169":3}}],["2045820592",{"2":{"26":1}}],["20",{"2":{"25":1,"83":1,"129":1,"209":1,"216":1}}],["2017",{"2":{"22":1}}],["200",{"2":{"20":1,"41":1,"158":1}}],["2000",{"2":{"7":1,"165":2,"168":1,"175":1,"195":1,"196":1,"217":1}}],["2nd",{"2":{"17":1,"169":1}}],["2",{"2":{"14":3,"29":1,"41":1,"47":1,"52":1,"92":1,"95":1,"122":2,"126":1,"127":1,"134":2,"135":3,"145":1,"166":1,"168":1,"211":3,"223":1}}],["volume",{"2":{"192":1}}],["vcpkg",{"2":{"183":15,"185":7,"187":3,"189":3,"192":5,"232":3,"233":7,"234":1}}],["v27",{"2":{"169":1}}],["v26",{"2":{"165":1,"166":1,"169":3,"175":1,"198":1}}],["vx",{"2":{"168":1}}],["v6",{"2":{"166":4}}],["v",{"2":{"165":1,"168":1,"175":1,"195":1,"197":1,"220":1}}],["v8",{"2":{"76":3}}],["vs",{"2":{"73":1,"202":1,"234":1}}],["visible",{"2":{"195":1}}],["visiting",{"2":{"78":1}}],["visit",{"2":{"73":1}}],["visitation",{"2":{"73":1}}],["visitor",{"2":{"73":1}}],["visual",{"2":{"190":1,"232":1,"233":1}}],["virtual",{"2":{"77":1}}],["violate",{"2":{"51":1}}],["violates",{"2":{"20":1}}],["viaroute=3",{"2":{"140":1}}],["viaroute",{"2":{"77":2,"141":1,"229":1}}],["via",{"0":{"133":1},"2":{"44":2,"69":1,"72":1,"120":1,"127":2,"128":2,"132":1,"134":1,"160":1,"184":1,"185":1,"189":1,"190":1,"195":2,"214":3,"224":1,"225":1,"232":1}}],["viewers",{"2":{"36":1,"88":1}}],["viewer",{"2":{"36":1,"87":1}}],["viewed",{"2":{"36":1,"87":1}}],["vpailayu",{"2":{"18":1}}],["v1",{"2":{"17":1,"18":3,"24":1,"25":1,"27":1,"28":1,"29":1,"30":6,"32":1,"33":1,"34":2,"36":1,"37":1}}],["vehicle",{"2":{"120":1}}],["vehicles",{"2":{"120":1}}],["verbosity",{"2":{"220":2}}],["verbatim",{"2":{"192":1}}],["verification",{"0":{"197":1}}],["verify",{"2":{"177":1,"178":1}}],["very",{"2":{"32":1,"46":1,"48":1,"51":1,"61":1,"64":1,"92":1,"207":1,"214":1,"216":1,"217":1}}],["vereinten",{"2":{"31":2}}],["versions",{"2":{"169":1,"174":1,"175":1,"176":1}}],["versioning",{"0":{"167":1},"1":{"168":1,"169":1},"2":{"165":1,"166":2}}],["version",{"0":{"21":1,"118":1,"165":1,"166":1,"171":1,"198":1},"1":{"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1},"2":{"17":3,"20":1,"21":2,"22":1,"48":2,"49":1,"61":1,"64":1,"72":1,"115":2,"118":3,"175":1,"176":1,"177":1,"178":2,"194":1,"195":2,"196":2,"197":3,"198":3,"220":2,"222":2}}],["vectors",{"2":{"73":1}}],["vector",{"2":{"12":1,"13":1,"36":3,"38":2,"87":2,"88":1,"89":2,"132":4,"153":1}}],["vary",{"2":{"116":1}}],["various",{"2":{"97":1,"115":2,"129":1}}],["variations",{"2":{"110":1}}],["variant",{"2":{"73":1}}],["variable",{"2":{"7":2,"162":1,"163":1,"164":1}}],["variables",{"0":{"8":1,"161":1},"1":{"162":1,"163":1,"164":1},"2":{"7":1}}],["var",{"2":{"83":1,"86":1,"92":1,"95":1,"98":1}}],["value",{"2":{"17":3,"27":1,"32":3,"38":7,"40":1,"49":1,"51":4,"53":1,"63":1,"67":2,"73":1,"77":1,"79":2,"82":1,"85":2,"91":2,"92":2,"94":1,"116":1,"120":1,"129":2,"131":1,"137":1,"202":1,"223":1}}],["values",{"2":{"17":3,"24":1,"27":1,"29":3,"30":3,"32":2,"33":1,"36":1,"38":1,"44":2,"48":1,"51":2,"53":1,"63":1,"79":1,"82":1,"85":2,"86":4,"88":1,"91":1,"94":1,"119":2,"129":1,"132":4,"134":2,"137":1,"146":1}}],["validate",{"2":{"227":1}}],["validated",{"2":{"173":1}}],["valid",{"2":{"13":1,"47":4,"49":2,"50":1,"51":1,"52":1,"97":1,"137":1}}],["500",{"2":{"137":1,"229":1}}],["5000+n",{"2":{"4":1}}],["5000",{"2":{"4":1,"7":2,"227":1}}],["506191342034576",{"2":{"95":1,"98":1}}],["542107",{"2":{"92":1}}],["542648",{"2":{"92":1}}],["543079",{"2":{"92":1}}],["543096",{"2":{"47":1,"52":1}}],["54366",{"2":{"47":1}}],["5m",{"2":{"32":1}}],["51663871100423",{"2":{"95":1,"98":1}}],["513191",{"2":{"80":1}}],["519930",{"2":{"80":1}}],["517",{"2":{"187":1}}],["51717",{"2":{"26":1}}],["517132",{"2":{"26":1}}],["517033",{"2":{"26":1,"31":2,"54":1}}],["517037`",{"2":{"25":1}}],["517037",{"2":{"18":2,"25":1,"28":1,"30":5,"34":2,"83":1,"86":1}}],["512",{"2":{"15":1}}],["5212",{"2":{"38":1}}],["523215",{"2":{"34":1}}],["523219",{"2":{"18":1,"28":1,"30":5,"34":2,"86":1}}],["523239",{"2":{"31":2}}],["529432",{"2":{"31":2}}],["529407",{"2":{"18":2,"28":1,"30":5,"34":2,"86":1}}],["52",{"2":{"18":5,"25":2,"26":3,"28":3,"30":15,"31":6,"34":7,"38":1,"47":2,"52":1,"54":1,"80":2,"83":1,"86":3,"92":3,"95":2,"98":2}}],["5",{"2":{"7":1,"15":1,"17":2,"29":1,"43":4,"45":4,"46":1,"77":1,"91":1,"122":2,"135":2,"137":1,"149":3,"169":2,"216":3,"227":1}}],["160",{"2":{"216":1}}],["1st",{"2":{"166":1,"169":3,"174":1,"175":1,"195":1}}],["17",{"2":{"232":1}}],["179",{"2":{"132":1}}],["17t21",{"2":{"22":1}}],["128",{"2":{"209":1,"223":1}}],["12+",{"2":{"180":1}}],["120",{"2":{"41":4}}],["12",{"2":{"38":1,"165":1,"166":1,"168":2,"175":1,"176":1,"177":1,"180":1}}],["127",{"2":{"7":1}}],["1424684620",{"2":{"92":1,"149":1}}],["1424684616",{"2":{"92":1,"149":1}}],["1424684612",{"2":{"92":1,"149":1}}],["14",{"2":{"38":1}}],["10+",{"2":{"180":1}}],["101",{"2":{"120":2}}],["100",{"2":{"41":1,"43":2,"216":1,"229":4}}],["1000",{"2":{"38":1,"222":1,"223":1}}],["10",{"2":{"33":2,"41":4,"43":1,"45":1,"47":1,"93":2,"135":2,"180":1,"207":3,"208":3,"209":1,"216":1,"223":1}}],["184",{"2":{"47":1}}],["1824",{"2":{"31":1}}],["1886",{"2":{"31":1}}],["180=u",{"2":{"132":1}}],["180",{"2":{"17":1,"38":2,"51":2,"79":1,"82":1,"85":1,"91":1,"94":1,"132":1,"158":1,"216":2}}],["199",{"2":{"31":1}}],["192",{"2":{"31":1}}],["1x3",{"2":{"30":1}}],["150",{"2":{"52":1}}],["152",{"2":{"47":1}}],["152629",{"2":{"26":1,"54":1}}],["15",{"2":{"26":1,"43":4,"45":8,"47":2,"132":4,"134":2}}],["11",{"2":{"22":1,"26":1,"180":1}}],["13423240",{"2":{"73":1}}],["1310",{"2":{"37":1}}],["13",{"2":{"18":5,"25":1,"26":3,"28":3,"30":15,"31":6,"34":7,"37":1,"38":1,"47":2,"52":1,"54":1,"73":1,"80":2,"83":1,"86":3,"92":3,"95":2,"98":2}}],["1",{"2":{"7":1,"14":2,"15":1,"24":2,"29":1,"30":1,"31":2,"32":2,"41":1,"43":2,"45":2,"47":1,"51":2,"82":2,"92":3,"95":1,"120":1,"134":3,"135":3,"137":2,"145":1,"146":1,"148":1,"165":1,"166":3,"168":3,"169":4,"175":1,"176":1,"177":1,"184":2,"196":1,"211":3,"215":2,"223":2,"229":2,"230":1}}],["00",{"2":{"166":1,"174":1,"175":1,"195":1}}],["08",{"2":{"166":1,"174":1,"175":1,"195":1}}],["0=straight",{"2":{"132":1}}],["0=true",{"2":{"51":1}}],["09",{"2":{"31":1}}],["0vmaklyiqm8tmwarvghaweaaqh1a66g",{"2":{"26":1,"54":1}}],["02z",{"2":{"22":1}}],["0",{"2":{"7":2,"14":2,"15":1,"17":3,"26":3,"29":3,"31":8,"32":2,"38":2,"41":12,"43":11,"44":1,"45":3,"47":1,"48":2,"51":3,"52":1,"79":4,"82":3,"83":1,"85":5,"89":3,"91":3,"92":1,"94":3,"118":1,"122":1,"126":1,"132":10,"134":5,"137":20,"144":1,"145":1,"146":1,"149":3,"165":3,"166":7,"168":2,"169":6,"175":2,"176":1,"177":1,"195":1,"198":2,"223":1,"224":2,"225":2,"227":4,"229":1}}],["gh",{"2":{"196":1}}],["gap",{"2":{"150":1}}],["gaps",{"2":{"32":2,"91":2,"150":1}}],["gate",{"2":{"123":1,"174":1}}],["glance",{"2":{"214":1}}],["globals",{"2":{"120":1}}],["global",{"2":{"120":3,"125":1,"138":1}}],["gl",{"2":{"36":1,"88":1}}],["grid",{"2":{"207":4,"208":3,"209":1,"211":2,"216":5,"217":2}}],["green",{"2":{"116":1,"174":1}}],["greenest",{"2":{"110":1}}],["greedy",{"2":{"33":1,"93":1}}],["greater",{"2":{"82":1}}],["grained",{"2":{"44":1}}],["graph",{"2":{"13":3,"17":1,"36":1,"79":1,"82":1,"85":1,"87":1,"91":1,"94":1,"110":1,"153":1,"211":1,"222":3,"223":1,"224":1,"225":1}}],["gps",{"2":{"32":3,"90":1,"91":2,"149":1}}],["go",{"2":{"55":1,"176":1}}],["going",{"2":{"27":1,"79":1,"129":1}}],["google",{"2":{"17":1}}],["good",{"2":{"13":1,"122":1}}],["g`e",{"2":{"18":1}}],["gt",{"2":{"12":2,"13":2,"14":6,"17":1,"24":1,"29":2,"32":2,"79":1,"82":1,"85":1,"90":1,"91":2,"94":1,"132":2,"189":1,"195":1,"197":1,"216":1,"220":2,"221":1,"222":5,"223":5,"224":5,"225":5,"227":3,"228":3,"229":9,"230":3}}],["guard",{"2":{"12":6,"13":2,"14":6}}],["guarantees",{"0":{"170":1},"1":{"171":1,"172":1},"2":{"120":1,"208":1}}],["guaranteed",{"2":{"27":1,"48":1,"79":1}}],["guarantee",{"2":{"11":1,"211":1}}],["guideline",{"2":{"205":1,"217":1}}],["guidelines",{"2":{"70":1,"210":1}}],["guide",{"0":{"179":1},"1":{"180":1,"181":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1},"2":{"11":1,"69":1,"70":1,"215":1}}],["guidance",{"0":{"10":1,"136":1,"215":1},"1":{"11":1,"12":1,"13":1,"14":1,"137":1,"138":1,"216":1,"217":1,"218":1},"2":{"9":3,"10":1,"13":1,"119":2,"120":1,"129":5,"136":3,"206":2,"208":1,"209":1,"215":2,"217":1}}],["g",{"2":{"10":1,"48":1,"49":2,"51":1,"53":1,"61":1,"64":1,"73":2,"76":1,"120":1,"129":5,"130":2,"137":2,"155":1,"165":2,"173":1,"175":1,"176":1,"177":1,"195":1,"196":1,"198":1,"202":1,"214":1,"215":1,"216":1,"218":1,"222":1,"232":1}}],["geographical",{"2":{"131":1}}],["geometries",{"2":{"27":1,"32":1,"33":1,"36":1,"40":1,"46":1,"79":1,"87":1,"91":1,"94":1,"144":1}}],["geometries=",{"2":{"27":1,"32":1,"33":1,"143":1,"149":1,"151":1}}],["geometry=geojson",{"2":{"41":1}}],["geometry",{"2":{"27":3,"28":1,"32":3,"33":3,"40":6,"41":1,"42":1,"46":3,"47":1,"59":3,"61":3,"77":1,"79":2,"91":2,"94":2,"144":2,"208":1,"228":1,"230":1}}],["geojsonguard",{"2":{"14":1}}],["geojson",{"0":{"11":1},"2":{"10":1,"11":1,"12":6,"13":2,"14":9,"27":1,"32":1,"33":1,"46":2,"79":1,"91":1,"94":1,"143":1,"144":1,"149":1,"151":1,"222":1,"224":1,"225":1}}],["general",{"0":{"16":1},"1":{"17":1,"18":1,"19":1,"20":1,"21":1,"22":1},"2":{"24":2,"27":3,"29":1,"30":2,"32":3,"33":1,"35":2,"81":1,"119":1,"200":1,"205":1,"217":1}}],["generator",{"2":{"187":3,"190":1}}],["generation",{"2":{"97":1}}],["generating",{"2":{"10":1}}],["generates",{"2":{"36":1,"87":1,"153":1}}],["generate",{"2":{"17":2,"79":1,"82":1,"85":1,"91":1,"94":1,"155":1}}],["generated",{"2":{"6":1,"17":1,"36":1,"87":1,"175":1,"177":1,"193":1,"222":1}}],["getfbresult",{"2":{"56":1}}],["getting",{"0":{"69":1},"2":{"48":1,"61":1,"64":1}}],["getaccuracy",{"2":{"32":1}}],["gets",{"2":{"12":1,"73":1}}],["get",{"0":{"128":1},"2":{"10":1,"17":1,"24":1,"27":1,"29":1,"32":1,"33":1,"36":1,"38":2,"51":1,"73":2,"128":5,"133":1,"207":2,"208":3,"209":1,"216":2}}],["getenv",{"2":{"8":1}}],["git",{"2":{"165":1,"168":2,"169":5,"175":1,"177":1,"178":1,"193":1,"233":1}}],["github",{"2":{"3":2,"71":1,"175":2,"177":2,"178":2,"181":1,"183":1,"185":1,"194":1,"197":1,"232":1,"233":1}}],["gives",{"2":{"30":2,"51":1,"86":2}}],["give",{"2":{"12":1,"123":1}}],["given",{"2":{"8":1,"17":2,"27":1,"29":2,"30":2,"32":2,"40":1,"46":1,"48":3,"49":1,"51":1,"61":2,"64":2,"79":2,"82":2,"84":1,"85":4,"86":2,"90":1,"91":1,"94":2,"126":2,"127":1,"129":1,"151":1,"207":3,"208":9,"209":3,"211":2,"214":2,"216":4}}],["ui",{"2":{"196":1}}],["uint64",{"2":{"67":2}}],["uint64pair",{"0":{"67":1},"2":{"58":1}}],["u",{"2":{"120":1,"132":3,"134":1}}],["utc",{"2":{"166":1,"174":1,"175":1,"195":1,"224":2,"225":2}}],["utf",{"2":{"98":1}}],["uturn",{"2":{"48":1,"49":1,"63":1,"79":1}}],["uturns",{"2":{"27":1}}],["utilities",{"2":{"217":1}}],["utility",{"2":{"201":2}}],["util",{"2":{"12":6,"13":4,"14":12,"217":1}}],["url",{"2":{"20":1}}],["un",{"2":{"218":1}}],["unexpected",{"2":{"217":1}}],["unprocessed",{"2":{"217":1}}],["unprefixed",{"2":{"165":1}}],["unrelated",{"2":{"217":1}}],["unrestricted",{"2":{"17":1,"79":1,"82":1,"85":1,"94":1,"155":2}}],["unwanted",{"2":{"211":1}}],["unnamed",{"2":{"130":1}}],["unsigned",{"2":{"120":1,"129":1}}],["unsimplified",{"2":{"46":1}}],["unconnected",{"2":{"120":1}}],["undef",{"2":{"202":1}}],["undefined",{"2":{"27":1,"30":1,"32":1,"35":1,"42":1,"46":2,"48":1}}],["under",{"2":{"120":1,"183":1,"189":1}}],["understanding",{"0":{"116":1,"214":1,"215":1},"1":{"216":1,"217":1,"218":1}}],["understand",{"2":{"113":1,"217":1}}],["until",{"2":{"51":1}}],["unknown",{"2":{"48":1}}],["unavailable",{"2":{"46":1}}],["unambiguously",{"2":{"32":1,"92":1}}],["unit",{"0":{"200":1},"1":{"201":1,"202":1,"203":1,"204":1},"2":{"199":1,"201":3,"204":2}}],["units",{"2":{"38":1}}],["unified",{"2":{"165":1}}],["uniquely",{"2":{"214":1}}],["unique",{"2":{"53":1}}],["unix",{"2":{"32":2,"91":1,"150":1,"224":1,"225":1}}],["unlike",{"2":{"29":1}}],["unlimited",{"2":{"17":1,"77":6,"79":1,"82":1,"85":1,"94":1,"140":1,"141":1,"155":1,"229":2,"230":1}}],["unless",{"2":{"9":3,"38":1,"56":1,"214":1}}],["uploads",{"2":{"195":1}}],["upgrade",{"2":{"163":1}}],["updated",{"2":{"175":1,"193":1}}],["updates",{"2":{"53":1,"224":1,"225":2,"230":2}}],["update",{"2":{"38":1,"230":1}}],["up",{"2":{"6":1,"27":1,"53":1,"73":1,"79":1,"129":1,"131":1,"203":1,"227":1}}],["usr",{"2":{"192":1}}],["usr1",{"2":{"163":1}}],["ushort",{"2":{"68":2}}],["usually",{"2":{"48":1,"61":1,"64":1}}],["usage",{"2":{"11":1,"18":1,"73":1,"126":1,"127":1,"128":1}}],["using",{"0":{"112":1,"137":1,"202":1},"2":{"4":1,"17":3,"18":1,"24":1,"29":1,"33":1,"38":2,"72":1,"73":1,"77":1,"85":1,"93":1,"120":1,"125":2,"129":1,"136":1,"137":1,"140":1,"196":1,"199":1,"206":1,"208":1,"211":1}}],["user",{"2":{"29":1,"44":1,"85":1,"116":1,"122":1,"125":1,"132":4,"134":2,"222":1}}],["useless",{"2":{"24":1}}],["uses",{"2":{"17":1,"33":1,"38":2,"93":1,"116":1,"136":2,"184":1,"185":1,"187":1,"188":1,"198":1}}],["useful",{"2":{"17":1,"79":1,"162":1,"164":1,"176":1,"220":1,"227":1}}],["used",{"2":{"9":2,"12":1,"17":2,"30":1,"32":2,"33":3,"36":1,"38":1,"40":1,"42":1,"44":1,"51":2,"53":2,"67":1,"68":1,"72":1,"79":1,"82":1,"85":1,"86":1,"87":1,"91":2,"94":1,"97":1,"108":1,"113":1,"115":2,"116":1,"120":4,"129":1,"135":1,"137":1,"163":1,"174":1,"187":1,"190":1,"206":1,"214":1,"222":1,"223":1,"228":1}}],["use",{"0":{"11":1,"208":1,"211":1,"218":1},"2":{"2":2,"3":3,"7":1,"12":1,"14":2,"16":1,"17":1,"29":5,"32":2,"48":1,"53":1,"69":1,"72":1,"73":2,"75":1,"77":1,"79":3,"82":2,"85":6,"91":2,"94":1,"115":1,"119":1,"120":1,"121":1,"131":1,"133":1,"135":1,"137":3,"138":1,"140":2,"141":3,"162":1,"165":1,"180":1,"183":1,"187":1,"189":1,"202":2,"207":2,"211":2,"212":1,"217":1,"218":1,"220":1,"222":1,"223":1,"225":1,"230":1}}],["65536",{"2":{"223":1}}],["64",{"2":{"180":2,"189":1,"197":2}}],["60",{"2":{"41":1,"47":1,"52":1}}],["60s",{"2":{"32":1,"90":1}}],["6",{"2":{"5":1,"29":1,"31":1,"46":1,"47":2,"129":1}}],["evaluating",{"2":{"225":1}}],["evaluate",{"2":{"224":1}}],["evaluated",{"2":{"222":1,"223":1}}],["ever",{"2":{"72":1,"187":1,"213":1}}],["everything",{"2":{"22":1,"187":1,"188":1}}],["every",{"2":{"20":1,"21":1,"51":2,"56":1,"115":2,"131":1,"132":1,"175":1,"187":1,"195":1,"220":1,"234":1}}],["event",{"2":{"97":1}}],["even",{"2":{"27":2,"48":1,"79":2,"116":1,"189":1,"203":1}}],["echo",{"2":{"221":1}}],["ebg",{"2":{"221":1}}],["eb",{"2":{"214":1}}],["ebd",{"2":{"214":4}}],["effects",{"2":{"211":1}}],["efforts",{"2":{"12":1}}],["equivalent",{"2":{"141":1}}],["equals",{"2":{"217":1}}],["equality",{"2":{"202":1}}],["equal",{"2":{"29":1,"82":1,"129":1,"202":1}}],["essentially",{"2":{"217":1}}],["essential",{"2":{"208":1}}],["es",{"2":{"120":1}}],["estimation",{"2":{"116":1}}],["estimates",{"2":{"85":1}}],["estimated",{"2":{"30":1,"40":1,"42":1,"46":1,"86":1,"116":1}}],["estimate",{"2":{"29":1,"116":1}}],["err",{"2":{"80":3,"83":1,"86":1,"89":3,"92":3,"95":3,"98":3}}],["erroneous",{"2":{"56":2}}],["errors",{"2":{"209":1}}],["error",{"0":{"57":1},"2":{"20":2,"27":1,"30":1,"32":2,"35":1,"38":1,"56":4,"57":3,"73":3,"220":1}}],["emergency",{"2":{"176":1}}],["emitted",{"2":{"136":1}}],["emit",{"2":{"136":1}}],["embedded",{"2":{"69":1,"222":1}}],["empty",{"2":{"17":1,"42":3,"56":1,"73":1,"132":1}}],["ephemeral",{"2":{"53":1}}],["epoch",{"2":{"32":2}}],["elevation",{"2":{"115":2,"131":2,"137":1}}],["elem",{"2":{"29":2}}],["element",{"2":{"17":7,"29":1,"68":2}}],["elements",{"0":{"117":1},"1":{"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1},"2":{"17":2,"85":2}}],["else",{"2":{"48":1}}],["etc",{"2":{"38":2,"115":1,"129":1,"166":2,"168":1,"183":1,"202":1,"222":1}}],["eta",{"2":{"38":1}}],["earth",{"2":{"66":1}}],["easily",{"2":{"111":1,"215":1}}],["east",{"2":{"38":1,"207":1}}],["easy",{"2":{"10":1}}],["each",{"2":{"14":2,"17":1,"24":1,"27":2,"32":6,"33":2,"35":1,"42":1,"44":7,"49":1,"73":2,"79":2,"83":1,"91":1,"92":2,"94":1,"95":1,"115":1,"120":2,"129":2,"131":1,"144":1,"150":1,"166":1,"174":1,"175":1,"187":1,"195":1,"204":1}}],["env",{"2":{"192":1}}],["environments",{"2":{"162":1,"192":1}}],["environment",{"0":{"8":1,"161":1},"1":{"162":1,"163":1,"164":1},"2":{"7":3,"162":1,"163":1,"164":1,"192":5}}],["ensure",{"2":{"118":1,"212":1}}],["enabling",{"2":{"79":1,"91":1,"94":1}}],["enables",{"2":{"230":1}}],["enable",{"2":{"13":1,"129":1}}],["enum",{"2":{"63":1,"64":2,"123":1,"124":1,"129":3,"132":4,"134":2}}],["engine=",{"2":{"192":1}}],["engineconfig",{"2":{"73":2,"75":1}}],["engine",{"2":{"55":1,"56":1,"140":3,"142":1,"143":1,"145":1,"147":1,"149":1,"151":1,"153":1,"159":1,"204":1,"207":2,"217":1}}],["enough",{"2":{"48":1}}],["entries",{"2":{"48":1}}],["entry",{"2":{"24":1,"32":1,"47":2,"51":4,"52":1,"81":1,"92":1,"140":1}}],["entered",{"2":{"51":1}}],["entering",{"2":{"48":1,"61":1,"64":1}}],["enter",{"2":{"48":1,"61":1,"64":1,"209":6}}],["ended",{"2":{"166":1}}],["endofroad",{"2":{"61":1,"64":1}}],["endpoint",{"2":{"38":1}}],["ending",{"2":{"34":1}}],["end",{"2":{"33":2,"48":1,"115":1,"126":1,"127":3,"128":4,"129":1,"131":2,"135":3,"137":2,"212":1,"217":1}}],["ends",{"2":{"33":1,"48":1,"61":1,"64":1,"94":1}}],["encoded",{"2":{"29":1,"30":1,"38":1,"79":1,"82":1,"85":1,"89":1,"91":1,"94":1,"155":1}}],["encoding",{"2":{"17":1,"46":2}}],["edges",{"2":{"17":1,"79":2,"82":2,"85":2,"91":2,"94":2,"120":2,"221":1,"224":1,"225":1}}],["edge",{"2":{"13":3,"17":1,"79":1,"82":1,"85":1,"91":1,"94":1,"120":1,"134":1,"203":1,"211":1,"224":2,"225":2}}],["editable",{"0":{"187":1},"2":{"181":1,"188":2}}],["edit",{"2":{"7":1}}],["e",{"2":{"10":1,"48":1,"49":10,"51":1,"53":1,"61":1,"63":8,"64":1,"73":2,"76":1,"120":1,"129":5,"130":2,"134":1,"137":2,"155":1,"165":2,"173":1,"175":1,"176":1,"177":1,"181":1,"187":3,"193":1,"195":1,"196":1,"198":1,"202":1,"208":1,"211":4,"214":3,"215":1,"216":6,"218":1,"222":1,"232":1}}],["either",{"2":{"7":1,"27":1,"32":1,"33":1,"38":1,"46":1,"73":1,"79":3,"82":2,"85":3,"91":3,"94":2,"119":1,"129":1,"183":1,"214":1}}],["executables",{"2":{"191":1}}],["executed",{"2":{"9":6}}],["exes",{"2":{"189":1}}],["exist",{"2":{"207":1}}],["existing",{"2":{"172":1,"188":1,"189":1}}],["exists",{"2":{"48":1,"197":1}}],["existence",{"2":{"48":1}}],["exitrotary",{"2":{"61":1,"64":1}}],["exitroundabout",{"2":{"61":1,"64":1}}],["exiting",{"2":{"48":2,"51":1,"61":2,"64":2}}],["exit",{"2":{"46":2,"48":10,"61":4,"64":4,"129":1,"130":1,"209":6,"220":3,"227":1,"230":2}}],["exits",{"2":{"46":1,"129":1}}],["exact",{"2":{"215":1}}],["exactly",{"2":{"17":1,"55":1,"65":1}}],["examine",{"2":{"36":2,"87":2,"129":1}}],["examples",{"0":{"80":1,"83":1,"86":1,"89":1,"92":1,"95":1,"98":1,"169":1},"2":{"127":1,"128":1,"137":1}}],["example",{"0":{"18":1,"22":1,"25":1,"26":1,"28":1,"30":1,"31":1,"34":1,"37":1,"38":1,"41":1,"43":1,"45":1,"47":1,"50":1,"52":1,"54":1,"74":1},"2":{"13":2,"17":1,"29":1,"48":2,"61":2,"64":2,"72":2,"73":1,"74":1,"111":1,"115":2,"116":1,"126":1,"131":2,"134":1,"135":2,"137":1,"165":1,"207":1,"221":1}}],["exclusive",{"2":{"77":1}}],["excludable",{"2":{"120":1}}],["excluding",{"2":{"18":1,"44":1}}],["exclude=motorway",{"2":{"18":1}}],["exclude",{"2":{"17":2,"79":1,"120":2,"155":1}}],["except",{"2":{"16":1,"17":1}}],["ext",{"2":{"193":5}}],["external",{"2":{"101":1,"103":1,"105":1,"107":1,"109":1,"131":1}}],["extensions",{"2":{"220":1}}],["extension",{"2":{"15":1,"111":1,"193":1,"221":1}}],["extremely",{"2":{"38":1}}],["extractor",{"2":{"125":1,"129":2,"132":4,"134":2}}],["extracted",{"2":{"120":1,"225":1}}],["extracting",{"2":{"115":1}}],["extractionturnleg",{"2":{"132":4}}],["extraction",{"2":{"6":1,"40":1,"130":1,"222":1}}],["extract",{"0":{"222":1},"2":{"17":1,"21":1,"51":1,"76":1,"111":1,"112":4,"113":1,"115":1,"160":1,"203":1,"222":1}}],["expanded",{"2":{"192":1}}],["export",{"2":{"183":2,"185":1}}],["exposed",{"2":{"129":1}}],["exposes",{"2":{"38":1}}],["expressed",{"2":{"129":1,"214":1}}],["explicitly",{"2":{"33":1,"196":1}}],["explanations",{"2":{"2":1}}],["experimental",{"2":{"231":1}}],["experiences",{"2":{"210":1}}],["experience",{"2":{"10":1}}],["expects",{"2":{"73":1,"220":1}}],["expect",{"2":{"73":1,"216":1}}],["expected",{"0":{"216":1},"2":{"20":1,"122":1,"216":3}}],["egs",{"2":{"30":1}}],["eg",{"2":{"4":1,"9":1,"122":2}}],["blocks",{"2":{"230":2}}],["blob",{"2":{"38":1}}],["bz2",{"2":{"222":1}}],["bde",{"2":{"216":4}}],["bd",{"2":{"214":3}}],["bc",{"2":{"207":3,"208":3,"209":1,"214":1}}],["broad",{"2":{"215":1}}],["brew",{"2":{"184":1}}],["breaking",{"2":{"173":1}}],["branches",{"2":{"176":1}}],["branch",{"2":{"174":2,"176":2,"177":1,"183":1,"195":1,"196":2}}],["brute",{"2":{"33":1,"93":1}}],["b",{"2":{"116":1,"134":2,"207":1,"208":3,"209":1,"211":4,"214":4,"216":4}}],["boundaries",{"2":{"224":1,"225":1}}],["boundary",{"2":{"223":2}}],["bound",{"2":{"215":1}}],["bootstrap",{"2":{"183":1,"185":2,"233":2}}],["bootstrapped",{"2":{"183":1}}],["boost",{"0":{"202":1},"2":{"183":1,"184":2,"199":1,"200":1,"202":7}}],["bool",{"2":{"56":1,"61":1,"127":3,"141":2,"144":2,"150":1,"152":1,"155":1}}],["boolean",{"2":{"38":2,"49":1,"77":2,"79":7,"82":1,"85":1,"91":5,"94":5,"120":4,"121":2,"129":8,"132":9,"134":5}}],["box",{"2":{"111":1}}],["bonus",{"2":{"38":2}}],["both",{"2":{"14":1,"29":2,"59":1,"61":1,"69":1,"73":1,"84":1,"85":1,"116":1,"122":1,"124":1,"125":1,"129":2,"194":1,"199":1}}],["bisection",{"2":{"223":3}}],["bitwise",{"2":{"127":1,"128":1}}],["bit",{"2":{"116":1}}],["big",{"2":{"115":1}}],["bicycle",{"2":{"111":1,"112":2,"116":1}}],["bicycles",{"2":{"110":1}}],["bin",{"2":{"189":2}}],["binding",{"2":{"76":3,"187":1}}],["bindings=on",{"2":{"234":1}}],["bindings",{"0":{"179":1},"1":{"180":1,"181":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1},"2":{"69":2,"139":2,"180":3,"193":1,"197":1}}],["binary",{"2":{"38":1,"55":1,"163":1,"180":1,"183":1,"192":1,"201":1,"234":1}}],["binaries",{"0":{"201":1},"2":{"7":1,"76":1,"204":1,"232":1}}],["biasing",{"2":{"38":1}}],["bike",{"2":{"17":1,"110":1}}],["bump",{"2":{"195":1}}],["bumps",{"2":{"194":1}}],["bumping",{"2":{"178":1}}],["bundle",{"2":{"189":3}}],["buffer",{"2":{"56":2,"89":3,"97":4,"98":1}}],["built",{"2":{"15":1,"137":1,"180":3,"189":1,"194":1,"232":1}}],["building",{"0":{"186":1,"188":1,"231":1,"234":1},"1":{"187":1,"188":1,"189":1,"190":1,"232":1,"233":1,"234":1},"2":{"189":1,"231":1}}],["buildsystems",{"2":{"183":1,"187":1,"192":1}}],["builds",{"2":{"180":1,"183":2,"187":1,"192":1,"195":1,"225":1}}],["build",{"0":{"182":1},"1":{"183":1,"184":1,"185":1},"2":{"7":2,"173":1,"183":3,"185":1,"187":11,"188":3,"189":2,"190":3,"191":2,"192":3,"193":2,"204":3,"234":2}}],["buildpath",{"2":{"7":1}}],["but",{"2":{"14":1,"17":2,"24":1,"29":1,"38":1,"48":2,"55":1,"58":2,"59":1,"60":2,"61":5,"62":1,"64":3,"73":1,"79":1,"116":1,"172":1,"187":1,"208":1,"209":1,"216":1}}],["balance",{"2":{"223":1}}],["batcmake",{"2":{"234":1}}],["batgit",{"2":{"233":1}}],["bat",{"2":{"185":1,"191":1,"233":1}}],["barrier",{"2":{"121":2,"122":2,"123":1,"128":1}}],["background",{"2":{"207":1,"208":3}}],["backports",{"2":{"176":1}}],["backward",{"2":{"120":2,"124":1,"129":11}}],["backend",{"2":{"76":1,"101":1,"103":1,"105":1,"107":1,"109":1,"181":2,"195":1}}],["back",{"2":{"8":1}}],["basis",{"2":{"175":1}}],["basic",{"0":{"115":1},"2":{"15":1,"48":1,"61":1,"64":1,"73":1}}],["bashbase=map",{"2":{"221":1}}],["bashbrew",{"2":{"184":1}}],["bashcibw",{"2":{"192":1}}],["bashcibuildwheel",{"2":{"192":1}}],["bashgit",{"2":{"181":1,"183":1}}],["bashpytest",{"2":{"191":1}}],["bashpython",{"2":{"160":1,"191":1}}],["bashpre",{"2":{"181":1}}],["bashpip",{"2":{"180":2,"189":3,"192":1,"193":2}}],["bashosrm",{"2":{"112":1}}],["bash",{"2":{"18":1,"25":1,"28":1,"30":1,"34":2,"37":1,"187":1,"188":1,"191":1}}],["bash$",{"2":{"1":1,"2":1,"5":1,"6":1,"9":1}}],["baseline",{"2":{"183":1,"232":1}}],["baseparameters",{"0":{"155":1},"2":{"73":3,"144":1,"146":1,"148":1,"150":1,"152":1}}],["base64",{"2":{"17":1,"79":1,"82":1,"85":1,"91":1,"94":1,"155":1}}],["based",{"2":{"13":3,"30":1,"32":1,"85":1,"91":1,"116":1,"131":1,"132":5,"134":3,"137":1,"166":1,"211":1,"222":1}}],["base",{"2":{"3":3,"73":1,"222":1,"226":1,"230":1}}],["bytes",{"2":{"153":1,"229":2}}],["by",{"2":{"3":1,"6":3,"7":1,"8":2,"17":4,"24":2,"27":4,"29":1,"32":4,"33":3,"36":1,"40":1,"42":2,"46":1,"48":3,"51":2,"53":1,"61":1,"64":1,"67":1,"76":2,"77":1,"79":2,"80":2,"82":1,"83":1,"85":2,"88":1,"91":1,"92":1,"94":2,"97":1,"104":1,"112":1,"115":1,"120":1,"132":4,"134":2,"140":1,"155":1,"187":1,"193":1,"194":3,"215":1,"219":1,"220":1,"222":2,"223":1,"224":1,"225":1,"228":1}}],["behavior",{"2":{"110":1}}],["behaviours",{"2":{"96":1}}],["behaviour",{"0":{"216":1},"2":{"77":2,"215":1}}],["being",{"2":{"77":1,"129":1,"207":1}}],["bend",{"2":{"49":7,"63":7}}],["belonging",{"2":{"46":1}}],["belongs",{"2":{"38":2}}],["below",{"2":{"20":1,"185":1,"210":1,"219":1,"223":1}}],["berlin",{"2":{"18":2,"28":1,"34":2,"80":1}}],["bearing",{"0":{"158":1},"2":{"17":5,"25":1,"38":3,"48":2,"51":5,"79":1,"82":1,"85":1,"91":1,"94":1,"155":1,"158":4}}],["bearings=0",{"2":{"25":1}}],["bearings",{"2":{"17":1,"47":2,"51":6,"52":1,"79":1,"82":1,"83":1,"85":1,"91":1,"94":1,"155":1}}],["before",{"2":{"13":1,"48":2,"51":2,"129":1,"132":1,"134":1,"137":1,"184":1,"192":1,"216":1,"230":1}}],["better",{"2":{"10":1,"32":1,"91":1}}],["between",{"2":{"7":1,"15":1,"25":1,"27":1,"29":4,"30":2,"32":2,"40":1,"42":1,"44":5,"48":1,"51":1,"78":1,"85":1,"91":1,"92":1,"102":1,"125":1,"131":1,"136":1,"143":1,"145":1,"172":1,"187":1,"202":1,"216":1,"223":1}}],["best",{"2":{"9":1,"116":3,"218":1}}],["because",{"2":{"7":1,"32":1,"35":1,"76":1,"92":1,"116":1}}],["be",{"2":{"3":1,"6":1,"7":1,"8":1,"9":11,"12":1,"13":3,"17":3,"20":4,"21":1,"24":2,"27":4,"29":2,"30":6,"32":10,"33":5,"35":1,"36":2,"38":3,"40":1,"42":1,"46":2,"48":6,"49":1,"51":3,"53":1,"55":1,"56":4,"61":2,"64":2,"68":4,"72":1,"77":1,"79":10,"82":7,"85":6,"86":1,"87":2,"90":3,"91":6,"92":1,"93":2,"94":6,"97":2,"110":1,"115":1,"116":6,"118":1,"120":9,"121":2,"122":2,"127":1,"128":1,"129":4,"131":1,"132":3,"134":2,"135":2,"136":4,"137":2,"163":3,"164":1,"172":2,"173":1,"174":3,"187":1,"191":1,"201":1,"206":1,"207":1,"208":1,"211":1,"213":1,"214":3,"215":2,"216":2,"217":1,"222":2,"224":1}}],["nbg",{"2":{"222":1}}],["nilsnolde",{"2":{"183":1}}],["nw",{"2":{"120":1}}],["navigation",{"2":{"207":2}}],["napi",{"2":{"76":3}}],["nanobind",{"2":{"69":1,"193":3}}],["native",{"2":{"69":1,"234":1}}],["nationen",{"2":{"31":2}}],["namely",{"2":{"51":2}}],["named",{"2":{"48":1,"61":1,"64":1,"141":1,"215":1}}],["names",{"0":{"130":1,"208":1},"2":{"9":1,"42":1,"43":1,"44":4,"45":1,"46":2,"129":1,"130":3,"221":1}}],["name",{"2":{"3":1,"12":1,"17":1,"20":1,"26":3,"31":6,"38":2,"40":2,"41":1,"46":8,"47":1,"48":5,"53":2,"54":1,"61":2,"64":2,"77":3,"120":3,"129":3,"130":8,"141":2,"207":2,"208":4,"209":1,"214":1,"228":5,"230":4}}],["num",{"2":{"129":1}}],["numbers",{"2":{"46":2,"129":1}}],["number=3",{"2":{"25":1}}],["number=",{"2":{"24":1}}],["number",{"2":{"4":1,"17":2,"24":3,"27":2,"29":2,"32":1,"40":1,"42":1,"46":2,"48":2,"68":2,"73":1,"77":9,"79":1,"82":3,"83":1,"85":3,"91":1,"92":1,"129":5,"130":2,"132":4,"134":1,"137":2,"144":1,"147":1,"148":2,"220":2,"223":1,"229":6}}],["null",{"2":{"30":2,"32":1,"68":1,"79":4,"82":3,"85":4,"91":2,"92":1,"94":3}}],["neighbor",{"2":{"222":1}}],["nearby",{"2":{"137":1}}],["nearestparameters",{"0":{"148":1},"2":{"147":1}}],["nearest=1",{"2":{"140":1}}],["nearest",{"0":{"24":1,"81":1,"147":1},"1":{"25":1,"26":1,"82":1,"83":1,"148":1},"2":{"17":1,"24":3,"25":2,"38":1,"53":1,"77":2,"81":1,"82":2,"83":1,"137":1,"141":2,"147":2,"148":1,"155":1,"222":1,"229":2}}],["necessary",{"2":{"135":1,"215":1}}],["necessarily",{"2":{"48":1,"61":1,"64":1,"217":1}}],["next",{"2":{"51":1,"195":1}}],["newname",{"2":{"61":1,"64":1}}],["new",{"0":{"165":1,"171":1,"172":1},"1":{"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1},"2":{"48":4,"76":1,"80":1,"83":1,"86":1,"89":1,"92":1,"95":1,"98":1,"111":1,"121":1,"122":1,"126":1,"163":1,"166":1,"172":1,"178":1,"197":1,"201":1,"203":1,"205":1,"218":1}}],["never",{"2":{"38":1,"216":1}}],["negative",{"2":{"38":2}}],["nest",{"2":{"14":1}}],["needed",{"2":{"77":1,"120":1,"180":1,"192":1,"221":1}}],["need",{"2":{"12":1,"14":1,"32":1,"73":2,"112":1,"113":1,"116":1,"119":1,"189":1,"203":1,"214":1,"225":1,"232":1}}],["needs",{"2":{"12":2,"115":1,"172":1,"183":1}}],["network",{"2":{"10":1,"17":2,"24":1,"32":1,"76":2,"79":1,"81":1,"82":1,"83":1,"85":1,"86":1,"89":1,"90":1,"92":1,"94":1,"95":1,"97":1,"98":1,"115":1,"132":1,"149":1,"207":1,"223":1}}],["noise",{"2":{"131":1}}],["noisy",{"2":{"32":1,"91":1,"149":1}}],["non",{"2":{"129":2,"178":1,"192":1}}],["none",{"2":{"17":1,"49":1,"63":1,"123":1,"124":1,"144":2,"155":7,"220":1,"222":1}}],["nomatch",{"2":{"32":1}}],["normalized",{"2":{"129":1}}],["normal",{"2":{"48":3,"61":1,"64":1}}],["normally",{"2":{"38":1,"116":1}}],["noroute",{"2":{"27":1}}],["north",{"2":{"17":1,"38":1,"48":2,"51":3,"79":1,"82":1,"85":1,"91":1,"94":1}}],["nosegment",{"2":{"20":1}}],["now",{"2":{"13":1,"33":1,"73":1,"93":1,"216":1,"224":1,"225":1}}],["nodeb",{"2":{"224":1,"225":1}}],["nodea",{"2":{"224":1,"225":1}}],["nodejs",{"2":{"96":1,"97":2}}],["nodes",{"2":{"24":1,"26":3,"27":1,"32":1,"33":1,"43":1,"44":1,"45":1,"58":2,"79":1,"91":1,"94":1,"114":1,"125":4,"126":1,"127":2,"128":2,"131":1,"144":1,"207":1,"208":4,"209":1,"211":3,"214":2,"221":1,"223":1}}],["nodeid",{"2":{"12":1,"132":3}}],["nodeidvectortolinestring",{"2":{"12":3,"13":2,"14":6}}],["node",{"0":{"121":2,"126":1},"2":{"12":3,"13":2,"14":2,"24":1,"38":1,"42":1,"44":2,"69":3,"76":5,"110":1,"115":3,"121":5,"125":3,"126":10,"127":6,"128":6,"132":3,"133":1,"171":1,"172":1,"207":1,"208":3,"209":1,"211":2,"214":5,"216":2,"222":3,"223":1,"224":3,"225":3,"234":1}}],["no",{"2":{"9":4,"15":1,"27":1,"28":1,"29":1,"30":3,"32":1,"33":1,"35":1,"46":2,"48":3,"49":2,"51":1,"61":1,"63":2,"64":1,"93":3,"146":1,"163":1,"165":1,"166":1,"168":1,"171":1,"172":1,"174":1,"175":1,"178":1,"180":1,"187":3,"188":2,"189":2,"190":1,"192":1,"193":1,"198":1,"207":1,"214":2,"217":1}}],["notation",{"2":{"73":2}}],["notable",{"2":{"30":1}}],["nothing",{"2":{"48":1,"129":1}}],["notification",{"2":{"48":2,"61":1,"64":1}}],["notimplemented",{"2":{"30":1,"35":1}}],["notrips",{"2":{"35":1}}],["not",{"2":{"3":1,"9":3,"14":1,"17":3,"20":2,"21":2,"27":1,"29":1,"30":2,"32":4,"33":3,"35":2,"40":2,"44":2,"48":2,"51":3,"53":1,"56":1,"61":2,"64":2,"77":1,"79":6,"82":1,"85":1,"90":3,"91":3,"93":2,"94":1,"110":1,"113":1,"114":2,"115":1,"116":1,"118":1,"127":1,"128":1,"129":1,"132":6,"134":3,"135":1,"164":1,"172":1,"187":1,"189":1,"190":1,"192":1,"194":1,"202":1,"203":2,"207":1,"208":2,"209":2,"214":1,"215":3,"216":1,"217":1}}],["notes",{"2":{"119":1,"120":2,"121":1,"122":1,"126":1,"127":1,"128":1,"129":1,"130":2,"131":1,"132":1,"134":1,"173":1,"175":1,"177":1,"180":1}}],["noted",{"2":{"16":1}}],["note",{"2":{"3":1,"4":1,"27":1,"29":1,"32":1,"33":1,"38":1,"48":1,"79":1,"81":1,"90":1,"93":1,"97":1,"120":1,"121":1,"125":1,"127":1,"128":1,"134":1,"192":2}}],["n",{"2":{"4":2,"24":1,"27":1,"81":1,"166":1,"220":1,"222":1,"223":2,"227":1,"229":6}}],["np",{"2":{"33":1,"93":1}}],["npx",{"2":{"2":1}}],["npmjs",{"2":{"197":1}}],["npm",{"2":{"1":1,"5":1,"9":1,"165":1,"168":1,"169":5,"175":1,"177":1,"178":2,"194":1,"195":3}}],["job",{"2":{"195":2}}],["journey",{"2":{"129":1}}],["january",{"2":{"166":1,"169":1}}],["java",{"2":{"55":1}}],["javascriptvar",{"2":{"76":1,"80":1,"83":1,"86":1,"89":1,"92":1,"95":1,"98":1}}],["javascript",{"2":{"55":1,"76":1,"97":1}}],["judgement",{"2":{"218":1}}],["junction",{"2":{"129":1,"130":2}}],["jumps",{"2":{"32":1,"90":1}}],["justified",{"2":{"216":1,"218":1}}],["just",{"2":{"3":1,"51":2,"114":1,"115":1,"122":1,"125":1,"130":1}}],["j",{"2":{"30":7,"86":4}}],["json",{"2":{"17":2,"22":1,"24":1,"26":1,"31":1,"41":1,"43":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":3,"58":3,"59":3,"60":2,"61":5,"62":2,"63":1,"64":2,"65":1,"68":1,"73":5,"75":1,"79":1,"82":1,"97":3,"159":1,"175":2,"178":1,"183":4,"195":2,"198":1,"232":2}}],["js",{"2":{"2":1,"36":1,"69":3,"88":1,"199":1,"209":5}}],["image",{"2":{"183":3,"190":1,"192":1}}],["immutable",{"2":{"122":1}}],["immediately",{"2":{"48":2,"51":2,"97":1,"227":1}}],["impossible",{"2":{"207":1}}],["importantly",{"2":{"73":1,"129":1}}],["important",{"0":{"73":1},"2":{"113":1,"207":1,"214":1}}],["improving",{"2":{"206":1}}],["improbable",{"2":{"32":1,"90":1}}],["implied",{"2":{"209":1}}],["implies",{"2":{"125":1}}],["implication",{"2":{"207":1}}],["implement",{"2":{"202":1}}],["implemented",{"2":{"17":1,"73":1}}],["implementation",{"2":{"3":1}}],["impassable",{"2":{"121":1,"122":1}}],["impacts",{"0":{"217":1},"2":{"217":1}}],["impact",{"2":{"10":2,"217":1}}],["iypwpavravadi",{"2":{"47":1}}],["identical",{"2":{"187":1,"209":1}}],["identifier",{"2":{"53":1}}],["identifiers",{"2":{"48":1}}],["id",{"2":{"44":2}}],["ids",{"2":{"12":3,"13":1,"14":2,"24":1,"42":1,"125":1,"133":1}}],["ios",{"2":{"32":1}}],["ignored",{"2":{"97":1,"116":1,"129":1}}],["ignore",{"2":{"32":1,"73":1,"91":1,"150":1,"214":1}}],["i",{"2":{"30":7,"49":8,"63":8,"86":4,"130":1,"207":2,"208":6,"209":2,"216":4,"227":1}}],["iq",{"2":{"30":1}}],["ik",{"2":{"18":1}}],["item",{"2":{"187":1}}],["items",{"2":{"3":1,"215":1}}],["iteration",{"2":{"159":1}}],["its",{"2":{"73":2,"119":1,"120":1,"163":1,"183":2,"187":1,"200":1}}],["itself",{"2":{"12":1,"48":2,"55":1,"61":2,"64":2,"136":1,"180":1,"213":1,"216":1}}],["it",{"2":{"9":1,"10":1,"11":1,"12":4,"13":1,"21":1,"24":1,"27":2,"32":2,"33":3,"38":3,"40":1,"48":2,"56":1,"61":2,"64":2,"72":2,"73":5,"76":1,"79":2,"91":1,"92":1,"93":1,"97":1,"110":1,"113":1,"114":1,"115":2,"116":2,"120":2,"121":4,"125":1,"126":1,"129":4,"130":1,"131":1,"132":1,"134":1,"137":1,"140":1,"162":1,"163":1,"185":1,"187":2,"189":1,"192":2,"202":2,"206":1,"208":1,"209":1,"214":2,"216":2,"230":1,"233":1}}],["ipa",{"2":{"46":1}}],["ip",{"2":{"7":4,"227":2}}],["isolation",{"2":{"187":3,"188":2,"190":1,"193":1}}],["isolated",{"2":{"9":2,"187":1,"192":1}}],["issues",{"2":{"210":1,"212":1}}],["issue",{"2":{"71":1}}],["is",{"2":{"4":1,"5":1,"6":1,"7":3,"8":2,"9":2,"10":1,"11":2,"12":1,"13":1,"15":1,"17":5,"20":5,"21":1,"24":2,"27":1,"30":2,"32":7,"33":6,"35":1,"38":8,"40":3,"42":1,"44":2,"46":7,"48":7,"49":3,"51":3,"53":1,"55":4,"56":3,"61":1,"63":2,"64":1,"68":3,"72":3,"73":9,"76":2,"77":3,"79":1,"82":1,"83":1,"85":4,"86":1,"91":1,"92":5,"93":2,"94":2,"96":1,"97":5,"110":1,"114":2,"115":6,"116":4,"118":3,"120":3,"121":4,"122":1,"125":1,"126":1,"129":9,"130":4,"131":2,"132":18,"134":15,"135":2,"136":5,"137":1,"140":1,"162":2,"163":1,"164":1,"173":1,"174":2,"175":4,"176":1,"177":3,"178":1,"187":2,"189":1,"190":2,"192":3,"193":1,"195":1,"197":1,"202":1,"203":3,"206":1,"207":2,"208":1,"211":2,"213":1,"214":4,"215":3,"216":3,"217":3,"223":2,"231":1,"232":1}}],["iff",{"2":{"9":3}}],["if",{"2":{"3":1,"12":1,"13":2,"14":1,"17":2,"21":1,"24":1,"27":3,"29":1,"30":4,"32":5,"33":2,"35":1,"42":1,"46":6,"48":4,"51":1,"61":2,"64":2,"68":1,"73":1,"77":1,"79":4,"80":1,"85":1,"86":1,"89":1,"90":2,"91":2,"92":2,"95":1,"97":2,"98":1,"111":1,"115":1,"116":5,"118":1,"119":1,"120":1,"121":1,"127":4,"128":1,"129":1,"132":1,"134":1,"135":4,"136":3,"137":1,"162":1,"163":1,"164":1,"187":2,"192":1,"195":2,"201":1,"202":3,"203":1,"207":1,"208":2,"212":1,"215":2,"216":5,"217":2,"218":2}}],["invoking",{"2":{"192":1}}],["invocation",{"2":{"187":1}}],["involved",{"2":{"135":1}}],["invalidvalue",{"2":{"20":1}}],["invalidversion",{"2":{"20":1}}],["invalidquery",{"2":{"20":1}}],["invalidoptions",{"2":{"20":1}}],["invalidservice",{"2":{"20":1}}],["invalid",{"2":{"20":4,"137":4}}],["invalidurl",{"2":{"20":1}}],["inherited",{"2":{"155":1}}],["inherits",{"2":{"144":1,"146":1,"148":1,"150":1,"152":1}}],["inherit",{"2":{"73":1}}],["inheriting",{"2":{"73":1}}],["initialized",{"2":{"75":1}}],["initialize",{"2":{"73":1}}],["initializing",{"2":{"73":1}}],["initialisation",{"2":{"12":1}}],["info",{"2":{"220":1}}],["information",{"2":{"44":1,"51":1,"57":1,"129":1,"131":1,"132":2,"134":1,"135":1}}],["influence",{"2":{"212":1}}],["influences",{"2":{"27":1,"32":1,"33":1,"79":1,"91":1,"94":1,"110":1,"136":1}}],["incoming",{"2":{"132":1,"134":2,"163":1}}],["incurs",{"2":{"121":2}}],["included",{"2":{"46":3,"115":1}}],["include",{"2":{"44":2,"55":1,"56":1,"79":1,"91":1,"129":2,"132":4,"134":2,"144":1,"155":1,"192":1}}],["inclusion",{"2":{"12":1}}],["increase",{"2":{"116":1}}],["increasing",{"2":{"32":1}}],["incremental",{"2":{"32":1,"92":1,"168":1}}],["independent",{"2":{"203":1,"212":1}}],["index",{"2":{"27":3,"29":9,"32":7,"35":4,"44":1,"51":2,"79":1,"85":4,"91":1,"92":4,"95":4}}],["individually",{"2":{"204":1}}],["individual",{"2":{"129":1}}],["indication",{"2":{"49":10,"63":9}}],["indications",{"2":{"47":4,"49":4,"50":1,"52":1,"63":1}}],["indicating",{"2":{"30":1,"46":1,"48":3,"49":7,"63":6,"73":2,"86":1}}],["indicate",{"2":{"92":1,"129":1,"136":1,"208":1}}],["indicates",{"2":{"32":1,"48":6,"51":2,"61":3,"64":3}}],["indicated",{"2":{"27":1,"32":1,"173":1}}],["indices",{"2":{"27":1,"32":1,"73":1,"79":1,"91":1,"134":1,"144":1,"146":2,"150":1}}],["inputs",{"0":{"221":1},"2":{"53":1,"196":1,"220":1,"221":2}}],["input",{"0":{"112":1},"2":{"17":1,"20":1,"24":1,"27":2,"29":3,"32":5,"33":2,"35":2,"41":1,"53":1,"56":1,"79":1,"82":1,"83":2,"85":4,"91":3,"93":1,"94":1,"95":1,"112":1,"115":1,"121":1,"129":1,"137":1,"146":1,"183":1,"220":1,"222":2,"223":1,"224":1,"225":1}}],["insertion",{"2":{"33":1,"93":1}}],["inside",{"2":{"32":1,"92":1,"126":1,"127":1,"128":1,"183":1,"192":2}}],["instruction",{"2":{"48":2,"51":1,"61":2,"64":2,"217":1}}],["instructions",{"2":{"33":1,"42":1,"48":2,"130":2,"136":1,"206":4,"207":2,"208":1}}],["instead",{"2":{"17":1,"68":1,"72":1,"116":1,"129":1,"130":1,"131":2,"141":1,"162":1,"183":1,"196":1,"202":1,"216":2,"225":1,"228":1}}],["installed",{"2":{"189":2,"190":2,"191":1}}],["installing",{"0":{"180":1,"181":1}}],["installs",{"2":{"160":1}}],["install",{"0":{"187":1},"2":{"139":2,"180":3,"181":4,"183":2,"184":2,"187":3,"188":2,"189":3,"192":2,"193":2,"233":1}}],["installations",{"2":{"17":1}}],["instance",{"2":{"12":1,"73":1,"75":1,"76":2}}],["inspecting",{"2":{"216":1,"217":1}}],["inspect",{"2":{"10":2,"189":4,"218":1}}],["int",{"2":{"141":6,"144":2,"146":2,"148":1,"150":2,"154":3,"155":2}}],["introduction",{"0":{"72":1},"2":{"72":1,"200":1,"205":1}}],["introduced",{"2":{"48":2,"205":1}}],["introduce",{"2":{"10":1,"172":1}}],["intermediate",{"2":{"222":1}}],["interaction",{"2":{"217":1}}],["interpolate",{"2":{"137":2}}],["interpolating",{"2":{"137":1}}],["interpreter",{"2":{"120":1}}],["interpreters",{"2":{"120":1}}],["interface",{"0":{"73":1},"2":{"72":1}}],["internal",{"2":{"38":1,"53":1,"125":2,"127":1,"128":1,"153":1,"159":1,"222":1}}],["intersections",{"2":{"46":1,"47":1,"51":2,"61":2}}],["intersection",{"0":{"51":1,"62":1},"1":{"52":1},"2":{"38":1,"46":1,"48":2,"51":10,"61":2,"62":1,"64":1,"132":4,"134":2,"211":2}}],["interested",{"2":{"17":1,"79":1}}],["interesting",{"2":{"4":1}}],["integers",{"2":{"67":1,"73":1,"91":1,"137":1}}],["integer",{"2":{"17":2,"24":1,"29":1,"32":1,"38":5,"48":1,"79":2,"82":3,"85":4,"91":2,"94":2,"129":1,"132":9,"134":4}}],["into",{"0":{"12":1},"1":{"13":1},"2":{"2":1,"3":1,"12":2,"14":1,"48":1,"51":2,"61":1,"64":1,"72":1,"73":1,"77":2,"85":1,"110":1,"131":1,"141":1,"195":1,"205":1,"207":1,"211":1,"214":1,"215":1,"223":1,"228":1,"230":1}}],["in",{"0":{"114":1,"171":1},"2":{"0":1,"3":2,"6":2,"7":4,"8":1,"9":1,"10":1,"12":1,"13":2,"15":1,"17":8,"20":1,"24":2,"27":6,"29":5,"30":8,"32":11,"33":4,"34":2,"35":4,"36":2,"38":8,"40":3,"42":2,"44":3,"46":5,"47":2,"48":11,"49":2,"51":4,"52":1,"53":1,"55":4,"56":1,"61":6,"62":1,"64":7,"68":2,"72":2,"73":3,"74":1,"76":3,"77":7,"78":1,"79":9,"80":2,"81":1,"82":7,"83":1,"85":11,"86":8,"87":2,"90":2,"91":5,"92":2,"94":7,"95":2,"101":1,"103":1,"105":1,"107":1,"109":1,"111":1,"113":1,"114":2,"115":6,"116":2,"120":10,"121":2,"122":3,"125":4,"126":2,"128":2,"129":15,"130":1,"131":3,"132":12,"134":7,"135":3,"136":3,"137":6,"138":1,"141":6,"155":3,"159":2,"162":1,"164":1,"166":1,"172":1,"173":3,"174":1,"177":1,"178":1,"181":1,"183":2,"184":1,"185":1,"187":1,"188":2,"189":2,"190":1,"192":5,"194":1,"201":2,"203":3,"204":1,"205":1,"206":1,"207":5,"208":1,"209":1,"210":2,"211":2,"212":1,"213":1,"214":1,"215":5,"216":3,"217":3,"218":1,"221":2,"222":1,"227":1,"229":7,"230":3,"232":2}}],["fmt",{"2":{"184":1}}],["f",{"2":{"134":1}}],["fst",{"2":{"202":1}}],["fs",{"2":{"89":1}}],["fbresult",{"2":{"56":1}}],["fundamentally",{"2":{"216":1}}],["function",{"2":{"73":3,"75":1,"79":1,"80":1,"82":1,"83":1,"85":1,"86":1,"88":1,"89":1,"91":1,"92":1,"94":1,"95":1,"98":1,"115":5,"119":5,"120":5,"126":2,"127":1,"128":2,"129":2,"130":2,"131":2,"132":1,"135":3,"137":2,"202":1}}],["functions",{"0":{"138":1},"2":{"73":3,"115":6,"119":4,"129":1,"138":1,"201":1}}],["furthermore",{"2":{"203":1}}],["further",{"2":{"49":1,"51":1,"76":1}}],["future",{"2":{"48":1}}],["fully",{"2":{"49":1,"63":1,"227":1}}],["full",{"2":{"27":2,"32":2,"33":2,"40":2,"51":1,"79":1,"91":1,"94":1,"143":1,"144":1,"180":1,"187":1,"193":1,"219":1,"230":1}}],["full|simplified|false",{"2":{"27":1}}],["fly",{"2":{"163":1}}],["flow",{"0":{"113":1},"2":{"113":1}}],["floating",{"2":{"73":2}}],["float",{"2":{"32":1,"38":4,"40":2,"42":2,"46":2,"66":2,"68":2,"92":1,"120":2,"122":2,"129":6,"131":7,"132":3,"141":1,"146":2,"155":3}}],["flat",{"2":{"68":2}}],["flatbuffers",{"0":{"55":1},"1":{"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1},"2":{"17":1,"55":3,"56":1,"79":1,"82":1,"97":3,"184":1}}],["flags",{"2":{"51":1,"136":2,"187":2,"220":1}}],["flag",{"2":{"49":1,"220":1,"222":1,"223":1,"224":1,"225":1,"227":1,"228":1,"229":1,"230":1}}],["flies",{"2":{"29":1,"85":2,"146":1}}],["fixture",{"0":{"203":1}}],["fix",{"2":{"173":1}}],["fixed",{"2":{"73":1,"116":1,"203":1}}],["fixing",{"2":{"33":1}}],["fill",{"2":{"73":1}}],["filled",{"2":{"73":1}}],["file=$env",{"2":{"187":1}}],["file=$vcpkg",{"2":{"183":1,"192":1}}],["filenames",{"2":{"44":1}}],["filename",{"2":{"38":1,"222":1}}],["file",{"0":{"12":1},"1":{"13":1},"2":{"12":1,"14":1,"21":2,"44":2,"77":3,"89":1,"112":2,"115":2,"119":1,"137":2,"140":1,"141":1,"162":1,"183":1,"184":1,"192":1,"220":1,"221":1,"222":4,"224":8,"225":7}}],["files",{"0":{"119":1},"2":{"2":2,"3":1,"6":1,"9":1,"14":2,"73":1,"76":1,"77":2,"114":1,"115":2,"119":1,"141":1,"162":1,"184":1,"187":1,"221":1,"222":3,"224":1,"228":1}}],["finishes",{"2":{"197":1}}],["finish",{"2":{"195":1,"230":1}}],["finding",{"2":{"119":2}}],["find",{"2":{"72":1,"137":1,"184":1,"215":1,"217":1}}],["finds",{"2":{"27":1,"143":1,"147":1,"188":1}}],["fine",{"2":{"44":1,"72":1,"214":1}}],["first",{"2":{"33":11,"34":1,"44":1,"46":1,"51":1,"67":2,"79":1,"91":1,"93":4,"94":1,"95":1,"130":1,"144":1,"151":1,"152":2,"165":1,"166":1,"187":1,"214":1,"223":1,"234":1}}],["fields",{"2":{"56":1,"59":1,"61":1}}],["fieldset",{"2":{"56":1}}],["field",{"2":{"12":1,"21":1,"24":1,"38":1,"44":1,"58":2,"59":2,"60":2,"61":4,"68":2,"217":1}}],["frequent",{"2":{"230":1}}],["free",{"2":{"4":1}}],["fraction",{"2":{"223":2}}],["france",{"2":{"73":2}}],["francisco",{"2":{"37":1}}],["friedrichstraße",{"2":{"26":3,"31":2,"54":1}}],["from",{"0":{"127":1,"128":1,"133":1},"2":{"12":1,"17":2,"21":1,"30":3,"32":1,"36":1,"38":2,"46":1,"48":3,"51":2,"53":1,"56":1,"61":1,"64":1,"73":5,"77":1,"79":1,"86":2,"87":1,"116":1,"125":1,"127":6,"128":6,"131":1,"132":2,"134":1,"140":1,"155":1,"162":1,"176":1,"180":1,"183":1,"187":3,"190":1,"192":3,"196":2,"207":1,"208":3,"209":4,"214":3,"215":1,"216":1,"219":1,"222":1,"223":1,"224":3,"225":3,"228":1,"234":2}}],["feat",{"2":{"173":2}}],["features",{"2":{"12":1,"14":1,"203":1,"205":1,"206":2,"209":6,"210":1}}],["feature",{"0":{"206":1},"2":{"9":2,"12":1,"38":1,"77":2,"206":1,"209":1,"213":1,"228":1,"230":1}}],["ferries",{"2":{"120":1}}],["ferry",{"2":{"120":1,"129":2}}],["feel",{"2":{"216":1}}],["feeling",{"2":{"10":1}}],["feeds",{"2":{"110":1}}],["fetches",{"2":{"37":1}}],["few",{"2":{"10":1,"12":1,"73":2,"138":1}}],["folder",{"2":{"74":1,"119":1}}],["follows",{"2":{"17":1,"115":1,"130":1,"134":1}}],["followed",{"2":{"3":1,"46":1,"104":1,"120":1,"219":1}}],["following",{"2":{"3":1,"9":1,"16":1,"17":2,"24":2,"27":2,"29":1,"30":1,"32":4,"33":2,"35":2,"48":1,"49":1,"56":1,"58":1,"59":1,"60":1,"61":2,"62":1,"63":1,"64":2,"92":1,"93":1,"95":1,"120":2,"121":1,"123":1,"124":1,"126":1,"129":1,"130":1,"131":1,"132":1,"135":1,"136":1,"208":1,"209":1,"214":1}}],["follow",{"2":{"2":1,"17":1,"48":1,"61":1,"64":1,"68":1,"116":1,"136":1,"173":1,"210":1,"214":1}}],["four",{"2":{"34":1,"211":1}}],["found",{"2":{"20":1,"27":1,"29":1,"30":3,"32":2,"35":1,"90":1,"114":1,"146":1,"211":1}}],["footway=sidewalk",{"2":{"130":1}}],["foot",{"2":{"17":1,"110":1,"111":1,"112":2}}],["forcibly",{"2":{"230":1}}],["force",{"2":{"33":1,"93":1,"120":1,"144":1,"187":1}}],["forces",{"2":{"27":1,"79":1,"120":1}}],["forbidding",{"2":{"214":1}}],["forbidden",{"2":{"214":2}}],["forwarding",{"2":{"192":1}}],["forward",{"2":{"120":2,"122":2,"124":1,"126":1,"129":13,"172":4}}],["forks",{"2":{"136":1}}],["fork",{"2":{"48":2,"61":2,"64":2,"136":1}}],["for",{"0":{"180":1,"181":1,"187":1,"212":1,"231":1},"1":{"232":1,"233":1,"234":1},"2":{"7":2,"10":1,"12":4,"13":2,"14":8,"17":3,"24":1,"27":5,"29":2,"30":2,"32":10,"33":6,"37":1,"38":4,"40":1,"44":3,"46":5,"48":4,"51":5,"53":1,"55":1,"56":2,"59":1,"61":5,"64":3,"69":2,"72":1,"73":9,"76":3,"77":3,"79":7,"82":2,"84":2,"85":4,"91":7,"92":2,"93":3,"94":4,"97":2,"110":2,"111":2,"113":1,"114":1,"115":3,"116":2,"119":9,"120":7,"121":1,"128":2,"129":6,"130":5,"131":5,"132":3,"136":2,"137":3,"144":2,"146":1,"147":1,"150":1,"151":1,"155":2,"159":1,"162":1,"163":1,"165":1,"169":1,"174":1,"176":1,"177":1,"178":1,"180":3,"183":2,"185":1,"189":1,"190":2,"192":1,"195":1,"199":1,"200":1,"201":2,"202":2,"203":2,"205":1,"207":1,"209":1,"212":2,"215":3,"216":2,"220":1,"221":1,"222":4,"224":1,"225":2,"229":2,"230":3,"231":1,"234":1}}],["formats",{"2":{"59":1,"61":1,"171":1}}],["format",{"0":{"55":1,"168":1},"1":{"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1},"2":{"4":1,"17":5,"27":1,"32":1,"33":1,"40":1,"55":5,"58":2,"59":1,"60":2,"61":3,"62":1,"64":1,"79":3,"82":2,"91":1,"94":1,"97":6,"98":1,"137":1,"144":1,"165":1,"173":1,"175":1,"176":1,"177":1,"193":1,"214":2,"221":1}}],["farthest",{"2":{"33":1,"93":1}}],["far",{"2":{"32":1}}],["factoring",{"2":{"137":1}}],["factors",{"2":{"116":1}}],["factor",{"2":{"29":1,"85":1,"146":1,"223":1,"224":2,"225":2}}],["factory",{"2":{"13":3}}],["fallback",{"2":{"29":3,"30":3,"31":1,"48":1,"85":4,"86":2,"130":2,"146":3}}],["false",{"2":{"17":2,"27":5,"32":4,"33":8,"40":1,"42":3,"47":4,"50":1,"51":1,"52":2,"79":6,"91":4,"93":4,"94":3,"95":1,"120":3,"129":1,"144":2,"150":1}}],["faster",{"2":{"27":1,"55":1,"79":1}}],["fastest",{"2":{"27":1,"29":2,"33":1,"78":1,"110":2,"116":2,"129":1,"143":1}}],["fast",{"2":{"2":1,"4":1}}],["failure",{"2":{"216":1}}],["failing",{"0":{"215":1},"1":{"216":1,"217":1,"218":1}}],["failed",{"2":{"195":1,"202":2}}],["fails",{"2":{"183":1,"195":1}}],["fail",{"2":{"2":1,"4":1}}],["89",{"2":{"31":1}}],["872438",{"2":{"26":1}}],["811961",{"2":{"26":1}}],["8",{"2":{"2":1,"31":1,"98":1,"209":1}}],["pinned",{"2":{"183":1,"232":1}}],["pipeline",{"2":{"219":1}}],["pip",{"2":{"139":1,"181":1,"187":4,"188":2}}],["pyi",{"2":{"193":5}}],["pyproject",{"2":{"192":2,"198":1}}],["pypi",{"2":{"180":1,"194":1,"195":3,"197":1}}],["pythonbearing",{"2":{"158":1}}],["pythoncoord",{"2":{"157":1}}],["pythonparams",{"2":{"143":1,"145":1,"147":1,"149":1,"151":1,"153":1}}],["pythonresult",{"2":{"142":1,"159":1}}],["pythonimport",{"2":{"140":1}}],["python",{"0":{"139":1,"179":1},"1":{"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"180":1,"181":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1},"2":{"55":1,"69":2,"139":1,"160":6,"180":2,"183":1,"191":1,"193":5,"198":1}}],["pbf>",{"2":{"222":1}}],["pbf",{"2":{"76":1,"89":1,"111":1,"112":3,"160":1,"222":1}}],["php",{"2":{"55":1}}],["phonetic",{"2":{"46":1}}],["phase",{"2":{"40":1}}],["pep",{"2":{"187":1}}],["penalty",{"2":{"115":1,"120":1,"129":1,"132":2,"224":3,"225":2}}],["penalized",{"2":{"32":1}}],["person",{"2":{"218":1}}],["persist",{"2":{"162":1}}],["persistent",{"2":{"15":1,"77":2,"187":1}}],["perceived",{"2":{"215":1}}],["performance",{"2":{"222":1}}],["performed",{"2":{"97":1}}],["perfectly",{"2":{"214":1}}],["perf",{"2":{"173":1}}],["per",{"2":{"12":1,"15":1,"27":1,"32":1,"33":1,"79":1,"91":1,"94":1,"155":1,"166":1,"168":1,"219":1,"221":1,"223":1}}],["periodically",{"2":{"6":1}}],["plus",{"2":{"183":1}}],["plugins",{"2":{"96":1}}],["plugin",{"2":{"33":1,"93":1,"97":4}}],["platform",{"0":{"182":1},"1":{"183":1,"184":1,"185":1},"2":{"180":2,"187":1,"189":1,"192":5,"197":1}}],["platz",{"2":{"31":2}}],["planet",{"2":{"111":1,"112":3}}],["placed",{"2":{"111":1}}],["place",{"2":{"44":1,"122":1}}],["plausible",{"2":{"32":1,"90":1}}],["please",{"2":{"27":1,"32":1,"48":1,"79":1,"90":1,"136":1}}],["plenty",{"2":{"7":1}}],["push",{"2":{"195":1}}],["pushing",{"2":{"194":1}}],["pushed",{"2":{"175":1}}],["pure",{"2":{"211":1}}],["purely",{"2":{"136":1}}],["purpose",{"2":{"183":1}}],["publish",{"2":{"195":4}}],["publisher",{"2":{"195":1}}],["publishes",{"2":{"194":1}}],["published",{"2":{"175":2,"178":1,"180":1,"197":1,"232":1}}],["publishing",{"2":{"178":1}}],["publication",{"2":{"177":1,"178":1}}],["put",{"2":{"13":1,"56":1}}],["pull",{"2":{"8":1,"173":1}}],["pr",{"2":{"173":1}}],["primitives",{"0":{"202":1},"2":{"202":1}}],["primary",{"2":{"130":1,"135":2,"207":3,"208":10,"211":8}}],["private",{"2":{"129":1}}],["priority",{"2":{"129":2,"132":4,"134":2,"136":5}}],["prioritize",{"2":{"116":1}}],["prior",{"2":{"77":2}}],["prints",{"2":{"221":1}}],["print",{"2":{"13":1,"142":2,"157":1,"158":1,"159":1,"202":2,"217":1,"218":1,"220":1}}],["printing",{"2":{"12":1}}],["preset",{"2":{"234":2}}],["presence",{"2":{"212":1}}],["present",{"2":{"51":1,"56":5,"122":1,"132":1,"208":1}}],["prerequisites",{"0":{"233":1},"2":{"180":1}}],["prefix",{"2":{"168":1,"175":1}}],["prefixed",{"2":{"165":1}}],["preferable",{"2":{"116":1}}],["prefer",{"2":{"116":4,"203":1}}],["preferences",{"2":{"116":1}}],["prevent",{"0":{"210":1},"1":{"211":1,"212":1,"213":1},"2":{"207":1,"210":1}}],["prevents",{"2":{"129":1}}],["previously",{"2":{"187":1}}],["previous",{"2":{"17":1,"155":1,"166":1}}],["preparation",{"2":{"222":1}}],["prepared",{"2":{"76":1,"77":1,"140":1,"226":1,"230":1}}],["prepare",{"2":{"17":1,"203":1}}],["preprocessing",{"2":{"111":1,"113":1}}],["precompiled",{"2":{"55":1}}],["preceded",{"2":{"48":1,"61":1,"64":1}}],["precision",{"2":{"17":1,"32":1,"46":2,"91":1,"120":2}}],["pre",{"2":{"13":1,"180":2,"181":1,"183":2,"190":1}}],["prompt",{"2":{"234":1}}],["production",{"0":{"180":1}}],["produces",{"2":{"222":1}}],["produce",{"2":{"14":1,"188":1}}],["progress",{"2":{"136":1}}],["providing",{"2":{"75":1}}],["provides",{"2":{"55":1,"69":1}}],["provide",{"2":{"5":1,"12":2,"14":1,"55":1,"73":1,"139":1}}],["pronounce",{"2":{"46":1}}],["pronunciation",{"2":{"46":5,"48":1,"61":1,"64":1,"129":2,"130":2}}],["proceeds",{"2":{"46":1}}],["processes",{"2":{"115":1,"130":1,"230":1}}],["processed",{"2":{"20":1}}],["processing",{"0":{"113":1,"217":1},"2":{"13":1,"113":1,"115":3,"119":3,"120":3,"125":1,"131":1,"172":1,"217":2}}],["process",{"0":{"121":1,"129":1,"131":1,"132":1,"175":1},"1":{"133":1,"134":1,"135":1},"2":{"12":1,"115":6,"120":2,"121":3,"125":5,"126":4,"127":2,"128":2,"129":6,"131":3,"132":4,"134":1,"135":3,"137":1,"166":1}}],["protozero",{"2":{"184":1}}],["protobuf",{"2":{"38":1}}],["protocol",{"2":{"17":1,"55":2,"89":1}}],["properties",{"2":{"24":1,"27":1,"30":1,"32":3,"35":2,"40":1,"42":1,"44":1,"46":1,"48":2,"49":1,"51":1,"53":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"66":1,"67":1,"73":2,"92":1,"95":1,"120":3,"172":2}}],["property",{"2":{"20":1,"21":1,"38":2,"40":1,"46":2,"48":4,"51":1,"61":1,"62":1,"64":2,"83":1,"92":1,"120":1}}],["project",{"2":{"18":3,"25":1,"28":1,"30":6,"34":2,"37":1,"38":1,"71":1,"181":1,"197":2,"201":1}}],["probable",{"2":{"7":1,"32":1,"92":1}}],["probably",{"2":{"4":1}}],["problems",{"2":{"10":1}}],["problem",{"2":{"7":1,"33":1,"93":1,"151":1,"195":1}}],["profile",{"0":{"121":1,"129":1,"131":1,"132":1},"1":{"133":1,"134":1,"135":1},"2":{"3":12,"8":2,"17":5,"24":1,"27":2,"29":1,"32":1,"33":1,"36":1,"38":1,"40":1,"43":3,"44":3,"45":3,"51":1,"70":1,"79":2,"82":1,"85":1,"91":1,"94":1,"110":3,"111":3,"112":3,"113":1,"115":6,"118":2,"120":3,"121":1,"126":1,"127":1,"128":1,"129":2,"135":1,"137":3,"207":1,"208":3,"209":1,"222":3}}],["profilespath",{"2":{"7":1}}],["profiles",{"0":{"3":1,"110":1,"111":1,"112":1,"114":1,"115":1},"1":{"111":1,"112":2,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1},"2":{"3":9,"7":3,"8":1,"17":1,"38":1,"70":1,"76":3,"110":3,"111":4,"112":4,"113":1,"114":1,"115":1,"116":1,"118":1,"119":1,"136":1,"138":1,"160":1,"222":1}}],["powershelldelvewheel",{"2":{"189":1}}],["powershellremove",{"2":{"187":1}}],["powershell",{"2":{"187":1,"188":1}}],["powershellgit",{"2":{"185":1}}],["power",{"2":{"129":1}}],["powerful",{"2":{"69":1,"114":1}}],["potentially",{"2":{"40":1,"48":1,"100":1,"217":1}}],["pointing",{"2":{"49":1}}],["point",{"2":{"32":2,"35":2,"48":2,"66":3,"92":3,"95":2,"120":1,"122":1,"129":1,"131":1,"137":1,"140":1,"183":1}}],["points",{"2":{"32":6,"33":1,"73":1,"85":1,"90":2,"91":1,"92":2,"137":1}}],["post",{"0":{"217":1},"2":{"217":2}}],["possibilities",{"2":{"136":1}}],["possibility",{"2":{"49":1,"63":1}}],["possible",{"0":{"13":1},"2":{"13":1,"24":1,"33":2,"48":1,"61":1,"64":1,"93":1,"110":1,"114":2,"115":1,"116":1,"131":1,"132":1,"211":1,"214":1,"218":1}}],["position",{"0":{"66":1},"2":{"17":1,"48":1,"58":1,"59":1,"61":1,"62":1,"64":1}}],["pollution",{"2":{"131":1}}],["polyline|polyline6|geojson",{"2":{"27":1,"32":1,"33":1}}],["polyline6",{"2":{"17":2,"27":1,"32":1,"33":1,"46":1,"59":1,"61":1,"144":1}}],["polyline",{"2":{"17":4,"18":2,"27":1,"30":2,"32":1,"33":1,"46":3,"59":2,"61":2,"79":1,"91":1,"94":1,"144":2}}],["policy",{"2":{"12":3,"14":1}}],["policies",{"2":{"12":1}}],["portable",{"2":{"189":1}}],["port",{"2":{"4":1,"7":3,"183":1,"227":2}}],["ports",{"2":{"4":2,"183":1}}],["patch",{"0":{"171":1},"2":{"166":1,"174":1,"176":1}}],["patchlevel",{"0":{"171":1},"2":{"165":2,"168":3,"175":1,"176":1,"177":1,"195":1,"196":1}}],["path=",{"2":{"192":1}}],["path",{"2":{"7":5,"33":1,"51":1,"73":1,"77":3,"93":2,"112":1,"116":2,"140":2,"141":1,"189":2,"192":2,"206":1,"222":4}}],["pamagevjaoauaaaaiaaaaacaaaaaaaaarss0qa7lnehivira4lseqaoaaaaqaaaabaaaaaaaaadmaaaaaezmaklyiqm8tmwarvghawea3wps52d3",{"2":{"31":2}}],["pair",{"2":{"29":1,"44":5,"48":1,"51":1,"53":1,"67":3,"73":1}}],["pairs",{"2":{"29":2,"30":1,"128":2,"155":2}}],["parent",{"0":{"163":1},"2":{"163":2}}],["parsing",{"2":{"119":1,"224":1,"225":1}}],["parse",{"2":{"222":2,"224":1,"225":1}}],["parser",{"2":{"55":1}}],["parsers",{"2":{"55":1}}],["parseduration",{"2":{"138":1}}],["parsed",{"2":{"20":1}}],["parks",{"2":{"116":1}}],["parts",{"2":{"131":2,"214":1}}],["partitioning",{"2":{"224":1}}],["partitioned",{"2":{"224":1}}],["partitions",{"2":{"223":1}}],["partition",{"0":{"223":1},"2":{"160":1,"223":1,"225":1}}],["particular",{"2":{"110":2,"116":1}}],["partial",{"2":{"38":1}}],["part",{"2":{"17":1,"79":1,"129":2,"216":1}}],["paradigm",{"2":{"215":1}}],["params",{"2":{"142":1,"143":1,"145":1,"147":1,"149":1,"151":1,"153":1,"159":1}}],["parameter",{"2":{"17":3,"21":1,"32":1,"40":3,"42":2,"46":1,"48":1,"61":1,"64":1,"73":2}}],["parameters",{"0":{"77":1,"79":1,"82":1,"85":1,"88":1,"91":1,"94":1,"97":1,"101":1,"103":1,"105":1,"107":1,"109":1,"141":1},"2":{"6":1,"12":2,"14":2,"17":1,"20":1,"48":1,"61":1,"64":1,"73":4,"75":1,"79":1,"82":1,"85":1,"91":1,"94":1,"97":1,"136":1,"142":1,"155":1,"171":1,"172":1}}],["parallelized",{"2":{"120":1}}],["parallel",{"2":{"2":1,"4":2,"9":1}}],["packages",{"2":{"165":1,"168":1}}],["package",{"2":{"17":1,"139":1,"160":1,"175":3,"178":2,"180":1,"184":1,"191":1,"195":2,"197":1,"198":1}}],["passes",{"2":{"51":1}}],["passed",{"2":{"46":1,"121":1,"126":1}}],["passing",{"2":{"17":1,"27":1,"51":2,"116":1,"121":1,"212":1}}],["pass",{"2":{"4":1,"5":1,"17":3,"110":1,"131":1,"177":1,"185":1,"189":1}}],["p",{"2":{"2":3,"3":1,"76":1,"111":1,"160":1,"222":1,"227":1}}],["l",{"2":{"220":1}}],["ld",{"2":{"192":3}}],["ll",{"2":{"110":1}}],["lu",{"2":{"47":1}}],["luaobstacle",{"2":{"128":1}}],["luabool",{"2":{"127":1}}],["luafunction",{"2":{"126":1,"127":1,"128":1,"137":2}}],["lualocal",{"2":{"122":1}}],["lua",{"0":{"114":1},"2":{"3":1,"8":1,"17":1,"38":2,"43":3,"44":1,"45":3,"55":1,"70":1,"76":1,"111":2,"112":3,"114":2,"115":1,"119":9,"120":2,"130":1,"131":1,"134":1,"135":1,"137":2,"160":1,"184":1,"222":3}}],["len",{"2":{"159":1}}],["lengths",{"2":{"207":1}}],["length",{"2":{"29":1,"38":1,"116":2,"131":1,"134":1}}],["left",{"0":{"134":1},"2":{"38":2,"46":1,"47":1,"48":8,"49":7,"50":1,"52":1,"61":3,"63":4,"64":2,"120":2,"132":5,"134":4}}],["lets",{"2":{"73":1}}],["let",{"2":{"36":1,"87":1}}],["less",{"2":{"32":1,"33":1,"72":1,"93":1,"202":1}}],["leaves",{"2":{"48":1,"61":1,"64":1}}],["leading",{"2":{"127":1,"128":1,"132":1,"165":1,"166":1,"168":1,"175":1}}],["lead",{"2":{"32":1,"90":1}}],["least",{"2":{"24":1}}],["legal",{"2":{"46":1}}],["legs",{"2":{"27":1,"32":1,"33":1,"40":2,"41":1,"59":1,"79":1,"94":1}}],["leg",{"0":{"60":1},"2":{"27":2,"32":1,"33":1,"42":2,"44":1,"48":2,"59":2,"60":1,"61":2,"64":2,"79":2,"134":1,"144":1}}],["level",{"2":{"2":1,"27":1,"32":1,"33":1,"38":1,"40":1,"79":1,"91":1,"154":1,"220":1,"223":3,"228":1}}],["launcher",{"2":{"190":1}}],["land",{"2":{"192":1}}],["lands",{"2":{"188":1}}],["language",{"2":{"114":1,"129":1}}],["lane",{"0":{"49":1,"63":1},"1":{"50":1},"2":{"48":1,"49":4,"51":2,"62":2,"63":1}}],["lanes",{"2":{"47":2,"48":1,"51":3,"52":1,"62":1,"129":6,"132":4,"134":2}}],["later",{"2":{"115":1,"119":1,"135":1}}],["latest",{"2":{"80":1,"111":1}}],["latter",{"2":{"97":1}}],["lat",{"2":{"73":2,"79":1,"82":1,"85":1,"91":1,"94":1,"131":2,"137":2,"157":1}}],["latitude",{"2":{"17":3,"24":1,"46":2,"48":1,"51":1,"53":1,"66":2,"73":2,"81":1,"137":2,"155":1}}],["layout",{"2":{"55":1}}],["layer",{"2":{"38":2}}],["layers",{"2":{"38":1}}],["last",{"2":{"33":9,"34":1,"44":1,"79":1,"91":1,"93":4,"94":1,"95":1,"144":1,"151":1,"152":1,"166":1}}],["larger",{"2":{"32":2,"48":1,"61":1,"64":1}}],["large",{"2":{"32":1,"38":1,"48":1,"61":1,"64":1,"90":1,"136":1,"217":1,"222":1}}],["labeled",{"2":{"9":1}}],["lt",{"2":{"12":2,"13":2,"14":6,"29":2,"38":1,"85":4,"91":1,"132":2,"189":1,"195":1,"197":1,"202":2,"220":2,"221":1,"222":5,"223":5,"224":5,"225":5,"227":3,"228":3,"229":9,"230":3}}],["live",{"2":{"189":1,"224":1,"225":1,"230":1}}],["lives",{"2":{"12":1,"72":1,"192":1}}],["light",{"2":{"121":1,"122":1,"132":2}}],["lights",{"2":{"121":1}}],["literal",{"2":{"79":1,"82":1,"85":1,"91":1,"94":1,"97":1}}],["lifting",{"2":{"73":1}}],["lifetime",{"2":{"12":2}}],["lib64",{"2":{"192":1}}],["libs",{"2":{"189":1}}],["libraries",{"2":{"189":1}}],["library",{"0":{"119":1},"2":{"72":1,"115":2,"119":1,"171":1,"172":1,"180":1,"189":1,"192":3,"199":1,"203":1}}],["libosmium",{"2":{"184":1}}],["libosrm",{"2":{"72":3}}],["lib",{"2":{"76":3,"119":1}}],["linux=",{"2":{"192":1}}],["linux",{"0":{"183":1},"2":{"180":2,"183":1,"187":1,"188":1,"189":2,"190":1,"191":1,"192":7}}],["linux|darwin|win32",{"2":{"9":2}}],["link",{"2":{"129":2,"132":4,"134":2,"136":1,"184":1,"189":1}}],["links",{"2":{"112":1}}],["line",{"0":{"219":1},"1":{"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1},"2":{"129":1,"131":1,"160":1,"192":1,"219":1,"221":2}}],["linestring",{"2":{"41":1,"46":1}}],["limits",{"0":{"229":1},"2":{"17":2,"79":2,"82":2,"85":2,"91":1,"94":2,"222":1}}],["limited",{"2":{"15":1,"48":1}}],["limitations",{"0":{"14":1}}],["listen",{"2":{"227":2}}],["listed",{"2":{"51":1}}],["listdeps",{"2":{"189":1}}],["list",{"0":{"221":1},"2":{"12":2,"13":1,"14":2,"17":1,"38":1,"46":1,"48":1,"51":2,"79":1,"120":2,"129":1,"144":2,"146":3,"150":2,"155":7,"159":1,"220":1,"221":2,"223":1,"230":4}}],["likely",{"2":{"32":1,"126":1,"127":1,"128":1}}],["like",{"2":{"12":1,"17":1,"36":1,"38":1,"44":1,"48":1,"88":2,"91":1,"110":2,"111":1,"115":2,"116":1,"120":1,"122":4,"131":2,"142":1,"159":2,"216":1,"217":1}}],["locks",{"2":{"230":2}}],["lock",{"0":{"162":1},"2":{"162":3,"175":1,"195":1,"230":1}}],["locally",{"0":{"186":1,"192":1},"1":{"187":1,"188":1,"189":1,"190":1},"2":{"189":2}}],["local",{"2":{"115":1,"129":1,"137":3,"183":1,"190":1,"192":1,"198":2}}],["locations",{"2":{"17":1,"25":1,"29":2,"30":1,"32":1,"73":1,"77":8,"84":1,"140":4,"141":8,"211":1,"217":1,"229":3}}],["location",{"0":{"13":1},"2":{"12":1,"13":3,"17":2,"26":3,"29":3,"31":6,"32":3,"33":1,"46":1,"47":2,"48":4,"49":1,"51":3,"52":1,"53":1,"54":1,"58":2,"62":2,"64":2,"85":2,"91":1,"131":1,"152":1,"212":2,"217":1,"222":5}}],["located",{"2":{"6":1,"48":2,"55":1,"61":2,"64":2,"206":1}}],["low",{"2":{"116":1}}],["loop",{"2":{"97":1,"122":1,"123":1}}],["lookups",{"2":{"222":1}}],["looking",{"2":{"115":1,"216":1}}],["look",{"2":{"72":1,"131":1,"200":1,"202":1,"205":1,"216":1,"217":1}}],["looks",{"2":{"12":1,"214":1,"216":1}}],["lon",{"2":{"73":2,"79":1,"82":1,"85":1,"91":1,"94":1,"131":2,"137":2,"157":1}}],["longer",{"2":{"116":1}}],["longitude",{"2":{"17":3,"24":1,"46":2,"48":1,"51":1,"53":1,"66":2,"73":2,"81":1,"137":2,"155":1}}],["long",{"2":{"12":1,"38":2,"67":2,"131":1,"180":1}}],["lobster",{"2":{"55":1}}],["lortzingstraße",{"2":{"47":1}}],["logical",{"2":{"220":1}}],["log",{"2":{"13":1,"80":2,"83":1,"86":4,"92":2,"95":2,"98":1,"164":1,"202":1,"220":1,"224":1,"225":1}}],["logger",{"2":{"12":1,"14":1}}],["logging",{"0":{"164":1},"2":{"11":2,"12":3,"13":2,"164":1}}],["logs",{"2":{"7":3}}],["logspath",{"2":{"7":1}}],["lost",{"2":{"7":1,"163":1}}],["loads",{"2":{"226":1,"230":1}}],["loaded",{"2":{"77":1,"115":1,"120":1,"230":1}}],["loading",{"0":{"228":1},"2":{"77":1,"115":1,"120":1,"137":1,"141":1,"162":1,"228":2,"230":1}}],["loadmethod",{"2":{"7":1}}],["load",{"2":{"2":3,"3":3,"7":2,"9":3,"73":1,"119":1,"137":4,"191":1,"228":1}}],["md",{"2":{"187":1,"189":3}}],["mm",{"0":{"172":1}}],["mmap=true",{"2":{"141":1}}],["mmap",{"2":{"2":2,"3":2,"77":4,"141":1,"228":1}}],["m",{"2":{"120":1,"160":7,"165":3,"168":4,"175":2,"176":2,"177":1,"191":1,"193":2,"195":1,"196":1,"216":4,"228":1,"229":2}}],["middle",{"2":{"215":1}}],["micro",{"2":{"214":1}}],["microsoft",{"2":{"183":1,"185":1,"233":1}}],["mismatches",{"2":{"202":1}}],["mismatch",{"2":{"187":1}}],["missing",{"2":{"183":1}}],["misses",{"2":{"183":1}}],["min",{"2":{"137":2}}],["minimum",{"2":{"222":1}}],["minimality",{"2":{"203":1}}],["minimize",{"2":{"55":1}}],["mini",{"2":{"122":1,"123":1,"209":7}}],["mix",{"2":{"73":1}}],["might",{"2":{"27":1,"30":1,"32":3,"35":1,"48":1,"49":1,"90":2,"116":1,"215":1,"217":1}}],["myst",{"2":{"209":10}}],["my",{"0":{"215":1},"1":{"216":1,"217":1,"218":1},"2":{"48":2,"61":2,"64":2}}],["mvt",{"2":{"36":1,"37":1}}],["mount",{"2":{"192":1}}],["monaco",{"2":{"191":1}}],["monitor",{"2":{"178":1}}],["month",{"0":{"171":1,"172":1},"2":{"165":1,"166":3,"168":2,"174":2,"175":2,"176":1,"177":1,"195":1}}],["monthly",{"0":{"195":1},"2":{"165":1,"166":2,"174":2,"176":1,"194":2,"196":1,"198":1}}],["monotonically",{"2":{"32":1}}],["motorway",{"2":{"120":2,"129":2,"132":4,"134":2,"135":1,"136":2,"155":1}}],["motorways",{"2":{"18":1,"120":2}}],["movement",{"2":{"115":1,"132":1}}],["modifying",{"2":{"113":1,"115":1}}],["modify",{"2":{"111":1,"121":1,"129":1,"208":1}}],["modifier",{"2":{"38":2,"47":1,"48":18,"61":11,"64":12,"215":1}}],["modification",{"2":{"32":1,"91":1}}],["modules",{"2":{"76":5}}],["modern",{"2":{"232":1}}],["modes",{"2":{"110":1}}],["modelling",{"2":{"209":1}}],["model",{"2":{"38":2,"214":1}}],["mode",{"2":{"17":1,"46":2,"47":1,"48":2,"61":1,"64":1,"122":1,"129":7,"132":6,"134":3,"181":1,"185":1,"232":1}}],["most",{"2":{"14":1,"32":1,"73":1,"90":1}}],["more",{"2":{"3":2,"15":1,"32":2,"33":1,"78":1,"85":1,"93":1,"113":1,"143":1,"224":1,"225":1,"230":1}}],["mutually",{"2":{"77":1}}],["much",{"2":{"55":1,"72":1,"218":1}}],["must",{"2":{"13":1,"17":1,"79":1,"82":1,"91":1,"120":2,"137":2,"144":1,"173":1,"187":1}}],["multiply",{"2":{"85":1}}],["multiple",{"0":{"112":1},"2":{"3":1,"14":1,"32":1,"40":1,"49":1,"53":1,"90":1,"100":1,"209":5,"230":1}}],["multi",{"2":{"2":1,"223":1,"228":1}}],["ms",{"2":{"7":2}}],["making",{"2":{"215":1}}],["makes",{"2":{"131":1}}],["make",{"2":{"4":1,"10":1,"12":1,"38":2,"77":1,"116":1,"187":1,"189":1,"191":1,"192":1,"203":1,"204":1,"209":1,"217":1}}],["macos",{"0":{"184":1},"2":{"180":2,"184":1,"187":1,"188":1,"189":1,"190":2,"191":1,"192":1,"197":1}}],["machine",{"2":{"3":1,"73":4}}],["master",{"2":{"174":3,"176":1,"195":1,"196":1}}],["managed",{"2":{"228":1,"232":1}}],["management",{"0":{"174":1}}],["mangle",{"2":{"189":2}}],["manifest",{"2":{"185":1,"232":1}}],["manually",{"2":{"174":1,"176":1,"193":1,"202":1}}],["manual",{"0":{"176":1,"196":1},"2":{"166":1,"177":2,"178":1}}],["mandatory",{"2":{"129":2}}],["manylinux",{"2":{"183":4,"189":2,"190":1,"192":1,"197":1}}],["many",{"2":{"79":1,"115":1,"116":1,"119":1,"126":1,"131":2,"132":2,"134":1,"208":1}}],["maneuvertype",{"2":{"64":1}}],["maneuvers",{"2":{"51":2,"208":1}}],["maneuver",{"2":{"46":4,"47":1,"48":6,"49":1,"51":2,"61":4,"64":4,"104":1}}],["maxspeed",{"2":{"119":1}}],["max",{"2":{"77":14,"120":2,"137":2,"140":6,"141":12,"223":1,"229":8,"230":1}}],["maximum",{"2":{"73":1,"119":1,"120":2,"223":2,"229":8}}],["main",{"2":{"68":1,"73":1,"76":1,"97":1,"130":1,"140":1,"190":1}}],["markers",{"2":{"130":1}}],["marked",{"2":{"79":1,"82":1,"85":1,"91":1,"94":1,"130":1,"195":1}}],["mark",{"2":{"129":1}}],["marks",{"2":{"56":1}}],["marking",{"2":{"49":1}}],["may",{"2":{"38":3,"48":1,"56":3,"122":2,"127":1,"128":1,"129":1,"136":1,"169":1,"172":3,"203":1,"222":1}}],["major",{"2":{"30":2,"42":1,"86":4,"136":1}}],["malformed",{"2":{"20":1}}],["matrices",{"2":{"68":2,"145":1}}],["matrix",{"2":{"30":9,"68":2,"73":1,"85":4,"86":4}}],["matter",{"2":{"17":1,"79":1}}],["matchparameters",{"0":{"150":1},"2":{"149":1}}],["matched",{"2":{"32":4,"35":1,"90":1,"92":3,"95":1}}],["matches",{"2":{"9":6,"24":1,"32":1,"81":1,"90":1}}],["matching=3",{"2":{"140":1}}],["matchings",{"2":{"32":5,"92":6}}],["matching",{"2":{"12":1,"32":8,"77":4,"90":2,"91":2,"92":4,"120":2,"141":1,"197":1,"198":1,"229":4}}],["match",{"0":{"32":1,"90":1,"149":1},"1":{"91":1,"92":1,"150":1},"2":{"12":1,"17":2,"27":1,"32":3,"56":1,"90":1,"91":1,"92":1,"141":1,"149":1,"155":1,"183":1,"187":1,"192":1}}],["maps",{"2":{"203":1}}],["mappings",{"2":{"114":1}}],["mapped",{"2":{"2":1,"130":1}}],["map",{"0":{"125":1,"126":1,"127":1,"128":1},"1":{"126":1,"127":1,"128":1},"2":{"32":4,"36":2,"38":1,"77":5,"87":1,"88":1,"90":1,"91":1,"92":2,"120":1,"121":1,"126":1,"127":5,"128":5,"133":1,"140":1,"141":2,"207":1,"208":3,"209":1,"211":2,"214":2,"216":2,"228":1,"229":2}}],["mapbox",{"2":{"10":1,"36":2,"87":1,"88":1}}],["mjs",{"2":{"3":1,"7":2}}],["mechanics",{"0":{"198":1}}],["mechanism",{"2":{"11":1}}],["member",{"2":{"73":2,"121":1,"122":1,"129":1}}],["memory=true",{"2":{"140":1}}],["memory=false",{"2":{"140":1}}],["memory",{"2":{"2":3,"36":1,"77":11,"87":1,"140":1,"141":5,"162":2,"191":1,"228":6,"230":6}}],["merges",{"2":{"192":1}}],["merge",{"2":{"46":1,"48":3,"61":3,"64":3,"104":1}}],["merged",{"2":{"3":1}}],["measure",{"2":{"116":1}}],["measures",{"2":{"116":1}}],["measured",{"2":{"32":1}}],["meaning",{"2":{"48":1,"129":1}}],["means",{"2":{"32":2,"73":2,"113":1,"187":1}}],["message",{"2":{"20":2,"22":1,"55":1,"57":2,"220":1}}],["metric",{"2":{"212":1,"230":2}}],["metres",{"2":{"85":1,"229":1}}],["metadata",{"2":{"27":1,"32":1,"33":1,"36":1,"43":1,"44":3,"45":1,"87":1,"144":1,"222":2}}],["meters",{"2":{"17":1,"29":1,"30":1,"32":1,"40":1,"42":1,"44":1,"46":1,"53":1,"79":1,"82":1,"83":1,"85":1,"86":1,"91":1,"94":1,"129":2,"141":1,"155":1,"207":3,"208":3,"209":1,"216":1,"217":1}}],["methods",{"2":{"2":1,"142":1}}],["method",{"2":{"2":1,"3":3,"7":2,"9":3,"76":1}}],["mentioned",{"2":{"5":1}}],["mld",{"2":{"2":2,"3":2,"77":1,"140":1,"141":1,"223":1,"224":1,"228":1,"229":1}}],["hsgr",{"2":{"221":1}}],["hwloc",{"2":{"189":3}}],["h",{"2":{"38":1,"129":1,"132":2,"134":1,"220":1}}],["huge",{"2":{"32":1,"91":1}}],["human",{"2":{"20":1}}],["having",{"2":{"127":1,"128":1}}],["have",{"2":{"33":2,"36":1,"49":1,"76":1,"87":1,"93":2,"111":1,"120":1,"125":2,"131":3,"132":2,"134":1,"135":1,"195":1,"200":1,"202":2,"205":1,"216":1}}],["hand",{"2":{"120":1,"132":2,"194":1}}],["handling",{"2":{"119":3,"150":1}}],["handles",{"2":{"130":1,"178":1}}],["handle",{"2":{"114":1,"115":2,"116":1}}],["handled",{"2":{"48":1}}],["handlers",{"2":{"119":1,"130":1}}],["handler",{"2":{"13":1}}],["hard",{"2":{"33":1,"38":1,"93":1}}],["hashes",{"2":{"187":1}}],["hash",{"2":{"115":1,"120":2,"129":1,"137":1}}],["has",{"2":{"20":1,"21":2,"24":1,"32":2,"35":1,"51":1,"72":1,"73":1,"83":1,"92":2,"95":1,"97":1,"115":1,"130":1,"132":1,"137":1,"188":1,"209":1}}],["hits",{"2":{"183":1}}],["history",{"0":{"166":1},"2":{"173":1}}],["hills",{"2":{"131":1}}],["high",{"2":{"116":1,"129":1,"164":1}}],["highway=path",{"2":{"130":1}}],["highway=cycleway",{"2":{"130":1}}],["highway=footway",{"2":{"130":1}}],["highway",{"0":{"135":1},"2":{"48":3,"61":3,"64":3,"120":2,"129":1,"132":4,"134":2,"135":9,"207":1,"208":3,"209":1,"211":2}}],["higher",{"2":{"38":1}}],["highest",{"2":{"27":1,"32":1,"33":1,"40":1,"79":1,"91":1,"116":1}}],["hint",{"2":{"17":6,"26":3,"31":6,"46":1,"53":3,"54":1,"79":1,"82":1,"85":1,"91":1,"94":1,"130":1}}],["hints",{"2":{"17":4,"79":3,"82":3,"85":3,"91":3,"94":3,"155":4}}],["hierarchy",{"2":{"2":1,"223":1,"225":1,"228":1}}],["hpp",{"2":{"12":2,"129":2,"132":4,"134":2,"217":2}}],["https",{"2":{"36":1,"181":1,"183":1,"185":1,"233":1}}],["http",{"0":{"15":1},"1":{"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1},"2":{"7":2,"15":2,"16":1,"18":3,"20":2,"24":1,"25":1,"28":1,"30":6,"34":2,"37":1,"38":1,"69":2,"70":1,"72":1,"73":1,"164":1,"171":1,"172":1,"226":2,"227":1,"229":1}}],["httptimeout",{"2":{"7":1}}],["headers",{"2":{"217":1}}],["header",{"2":{"214":1,"229":2}}],["heavy",{"2":{"73":1}}],["help",{"2":{"220":2}}],["helpful",{"2":{"207":1}}],["helps",{"2":{"173":1}}],["helper",{"0":{"138":1},"2":{"119":2,"138":1}}],["held",{"2":{"6":1}}],["heuristic",{"2":{"33":1,"93":1}}],["here",{"2":{"4":1,"13":1,"56":1,"72":2,"73":1,"214":1}}],["hosted",{"2":{"232":1}}],["host",{"2":{"192":3}}],["hosts",{"2":{"192":1}}],["hooks",{"2":{"181":1}}],["holds",{"2":{"73":1}}],["horizontalaccuracy",{"2":{"32":1}}],["homebrew",{"2":{"184":1,"190":1}}],["home",{"2":{"2":1,"3":1}}],["however",{"2":{"33":1,"131":1,"135":1,"214":1,"216":1}}],["how",{"0":{"11":1},"2":{"0":1,"5":1,"10":1,"32":1,"38":4,"46":1,"72":1,"110":1,"132":2,"134":1,"201":1,"203":1,"205":1}}],["r",{"2":{"211":1,"230":1}}],["ruff",{"2":{"193":2}}],["rust",{"2":{"55":1}}],["rules",{"2":{"48":1,"61":1,"64":1}}],["runners",{"2":{"232":1}}],["running",{"0":{"191":1,"192":1,"204":1},"2":{"9":1,"76":1,"77":1,"111":1,"120":1,"163":1,"219":1,"230":1}}],["runs",{"2":{"6":1,"9":1,"175":1,"187":4,"189":1,"195":2}}],["run",{"2":{"1":1,"5":2,"9":4,"13":1,"77":2,"176":2,"183":1,"187":1,"191":1,"195":3,"196":1,"197":1,"203":1,"204":1,"207":1,"224":1}}],["root=c",{"2":{"233":1}}],["root=$pwd",{"2":{"183":1}}],["root",{"0":{"56":1},"2":{"56":1,"68":1,"183":1,"185":2,"187":2,"192":4,"232":1,"234":1}}],["rotated",{"2":{"51":1}}],["rotary",{"2":{"46":8,"48":6,"61":4,"64":4}}],["rounding",{"2":{"212":1}}],["roundabouts",{"2":{"209":5}}],["roundaboutturn",{"2":{"61":1,"64":1}}],["roundabout",{"2":{"48":16,"61":11,"64":11,"122":1,"123":1,"129":3,"209":4}}],["rounded",{"2":{"38":1,"44":1}}],["round",{"2":{"33":1,"34":2}}],["roundtrip",{"2":{"33":4,"93":2,"94":2,"95":1,"152":1}}],["roundtrip=true",{"2":{"151":1}}],["roundtrip=",{"2":{"33":1}}],["routable",{"2":{"36":1,"87":1,"115":1}}],["routeparameters",{"0":{"144":1},"2":{"73":1,"143":1,"150":1,"152":1}}],["routeobject",{"0":{"59":1},"2":{"56":2}}],["routeleg",{"0":{"42":1,"102":1},"1":{"43":1,"103":1},"2":{"40":1}}],["routestep",{"0":{"46":1,"104":1},"1":{"47":1,"105":1},"2":{"40":1,"42":1,"48":1,"61":1,"64":1,"129":1}}],["routes",{"2":{"27":4,"29":1,"38":1,"56":1,"76":1,"77":1,"79":3,"80":1,"110":1,"113":1,"137":1,"141":1,"142":1,"144":1,"159":1,"211":2,"213":1,"229":1}}],["router",{"2":{"18":3,"25":1,"28":1,"30":6,"34":2,"37":1}}],["route",{"0":{"27":1,"40":1,"78":1,"100":1,"143":1},"1":{"28":1,"41":1,"79":1,"80":1,"101":1,"144":1},"2":{"17":1,"18":3,"27":9,"28":1,"29":2,"30":3,"32":8,"33":7,"35":1,"38":1,"40":4,"42":6,"44":2,"46":1,"48":1,"51":1,"53":2,"56":1,"59":1,"61":1,"64":1,"73":2,"76":1,"77":2,"78":1,"79":5,"80":3,"85":1,"91":3,"92":5,"94":6,"95":2,"98":1,"100":1,"102":1,"108":1,"110":1,"116":4,"120":1,"129":3,"136":1,"141":1,"142":2,"143":2,"144":2,"146":1,"155":1,"159":4,"207":3,"208":6,"209":4,"213":1,"216":6,"228":2,"229":1,"230":2}}],["routed",{"0":{"226":1},"1":{"227":1,"228":1,"229":1},"2":{"7":2,"9":1,"70":1,"72":1,"160":1,"163":2,"164":1,"221":3,"226":1,"230":1}}],["routine",{"2":{"12":1}}],["routing",{"2":{"2":2,"7":1,"36":2,"38":2,"69":2,"73":4,"77":1,"79":1,"82":1,"85":1,"87":2,"91":1,"94":1,"110":2,"113":1,"116":4,"120":1,"129":1,"130":2,"131":1,"132":1,"139":1,"141":1,"153":1,"209":1,"219":1,"222":1,"228":1}}],["rows",{"2":{"68":2,"137":2}}],["row",{"2":{"30":2,"68":4,"86":5}}],["roads",{"0":{"134":2},"2":{"36":1,"42":1,"51":1,"87":1,"116":1,"132":5,"134":11,"135":1,"136":2,"207":1,"213":1}}],["road",{"0":{"134":2},"2":{"17":1,"32":1,"36":1,"38":2,"48":6,"49":2,"51":3,"61":5,"64":5,"76":1,"79":1,"82":1,"85":1,"87":1,"90":1,"94":1,"120":1,"122":1,"129":13,"130":1,"132":18,"134":18,"136":6,"149":1,"155":1,"207":5,"208":21,"209":1,"215":1,"223":1}}],["rapidjson",{"2":{"184":1}}],["ram",{"2":{"77":1,"141":1,"228":1}}],["ramps",{"2":{"136":2}}],["ramp",{"2":{"48":8,"61":3,"64":3,"129":1}}],["raw",{"2":{"56":1,"219":1,"222":1}}],["ratio",{"2":{"223":1}}],["rate",{"0":{"116":1},"2":{"38":1,"116":10,"129":2}}],["rather",{"2":{"29":1,"38":1,"77":1}}],["random",{"2":{"213":1}}],["randomness",{"0":{"210":1},"1":{"211":1,"212":1,"213":1}}],["rank",{"2":{"27":1,"80":2}}],["range",{"2":{"17":1,"48":2,"79":1,"82":1,"85":1,"91":1,"94":1,"155":1,"158":1}}],["radius=",{"2":{"140":1}}],["radius",{"2":{"17":5,"32":7,"77":4,"79":1,"82":1,"85":1,"94":1,"141":2,"155":1,"229":4}}],["radiuses=",{"2":{"149":1}}],["radiuses",{"2":{"17":1,"32":1,"79":1,"82":1,"85":1,"91":1,"94":1,"155":1}}],["rastersource",{"2":{"137":1}}],["rasterbotinterp",{"2":{"137":1}}],["rasterbot",{"2":{"131":1,"137":1}}],["raster",{"0":{"137":1},"2":{"8":3,"137":11}}],["right",{"0":{"134":1},"2":{"13":1,"33":1,"38":1,"46":1,"47":3,"48":8,"49":6,"61":2,"63":4,"64":2,"93":1,"130":2,"132":3,"134":5,"202":1,"208":1,"214":3,"215":2,"216":10}}],["reduce",{"2":{"206":1,"222":1}}],["regions",{"2":{"230":1}}],["region",{"2":{"222":1,"228":1}}],["registry",{"2":{"178":1}}],["registered",{"2":{"126":1,"128":1,"201":1}}],["register",{"2":{"126":3,"201":1}}],["regenerate",{"2":{"193":1}}],["regenerates",{"2":{"193":1}}],["remember",{"2":{"192":1,"217":1}}],["remove",{"2":{"150":1,"173":1,"230":3}}],["removed",{"2":{"32":1,"90":1,"172":1}}],["removes",{"2":{"17":1,"79":1}}],["rebuild",{"2":{"187":1,"193":2}}],["rebuilding",{"2":{"183":1}}],["reuse",{"2":{"187":1,"190":1,"234":1}}],["retag",{"2":{"189":1}}],["retrieves",{"2":{"128":1}}],["retrieve",{"2":{"125":3,"126":1,"133":1}}],["returning",{"2":{"38":1}}],["return",{"2":{"29":1,"38":1,"73":1,"75":1,"79":1,"85":4,"91":1,"94":4,"97":1,"115":1,"119":1,"120":3,"127":1,"129":1,"135":1,"137":1,"142":1,"144":1,"148":1,"152":1}}],["returned",{"2":{"24":3,"27":3,"28":1,"32":3,"33":8,"38":1,"79":1,"82":1,"91":1,"93":1,"94":1,"115":1,"121":1,"129":1,"159":1}}],["returns",{"2":{"24":1,"27":1,"29":1,"30":6,"32":1,"33":3,"78":1,"80":1,"81":1,"83":1,"84":1,"86":1,"89":1,"92":1,"95":1,"97":1,"115":1,"127":1,"128":1,"153":1}}],["reverse",{"2":{"49":1,"63":1}}],["reversal",{"2":{"48":1}}],["rely",{"0":{"213":1}}],["releasable",{"2":{"177":1}}],["released",{"2":{"174":2}}],["release",{"0":{"170":1,"174":1,"175":1,"176":1,"177":1,"178":1,"195":1,"196":1},"1":{"171":1,"172":1},"2":{"165":1,"166":3,"169":5,"173":1,"174":1,"175":2,"176":2,"177":3,"178":2,"183":2,"192":1,"194":2,"196":2,"197":1,"198":1}}],["releases",{"2":{"165":1,"166":2,"174":1,"175":1,"176":2,"177":1,"178":1,"194":1}}],["releasing",{"0":{"165":1,"194":1},"1":{"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"195":1,"196":1,"197":1,"198":1},"2":{"177":1}}],["relevant",{"2":{"48":1,"119":2}}],["reload",{"2":{"113":1,"230":1}}],["relations",{"0":{"121":1,"129":1},"2":{"120":2,"121":3,"126":1,"129":3,"214":2}}],["relationship",{"2":{"51":1}}],["relation",{"2":{"48":1,"120":1}}],["relative",{"2":{"17":1,"38":1,"51":1,"79":1,"82":1,"85":1,"94":1}}],["related",{"2":{"9":1,"13":1,"44":1,"217":1}}],["refer",{"2":{"214":1}}],["referencing",{"2":{"129":1}}],["referenced",{"2":{"120":1}}],["references",{"2":{"115":1}}],["reference",{"2":{"13":1,"46":1,"73":1,"119":1,"130":2,"219":1}}],["refactor",{"2":{"173":1}}],["ref",{"2":{"46":2,"73":1,"129":5,"130":2}}],["re",{"2":{"38":1,"73":1,"192":1,"201":1,"224":1}}],["recurse",{"2":{"187":1}}],["records",{"2":{"187":1}}],["recompilation",{"2":{"188":1}}],["recompile",{"2":{"187":1}}],["recompiled",{"2":{"187":1}}],["recompiling",{"2":{"183":1,"188":1}}],["recommended",{"0":{"187":1}}],["recommendation",{"2":{"27":1,"80":2}}],["recent",{"2":{"14":1}}],["repeatedly",{"2":{"224":1}}],["repeatable",{"2":{"222":1,"224":2,"225":2}}],["reproducibility",{"2":{"203":1}}],["represent",{"2":{"110":1,"215":1}}],["representation",{"2":{"51":1,"68":2}}],["represents",{"2":{"40":1,"42":1,"49":1,"100":1,"102":1,"122":2,"165":1}}],["representing",{"2":{"27":1,"32":1,"35":1,"46":1,"80":2,"88":1,"92":1,"95":1,"129":1}}],["repair",{"0":{"189":1},"2":{"189":5}}],["repo",{"2":{"181":1,"183":3,"232":1,"234":1}}],["repository",{"2":{"71":1,"74":1,"193":1}}],["reported",{"2":{"217":1}}],["reports",{"2":{"216":2}}],["reporting",{"2":{"202":1}}],["report",{"2":{"48":1,"215":2,"216":1}}],["replacing",{"2":{"230":1}}],["replaces",{"2":{"192":1}}],["replace",{"2":{"85":1}}],["replaced",{"2":{"48":2}}],["replication",{"2":{"21":1}}],["resolves",{"2":{"198":1}}],["resolve",{"2":{"184":1,"189":1}}],["resources",{"0":{"71":1}}],["resistance",{"2":{"116":1}}],["reside",{"2":{"3":1}}],["resembling",{"2":{"73":1}}],["restarting",{"2":{"230":1}}],["restarts",{"2":{"162":1}}],["restful",{"2":{"69":1}}],["restricted",{"2":{"52":1,"129":3,"132":4,"134":2}}],["restriction",{"2":{"51":1,"214":7,"224":1,"225":1}}],["restrictions",{"0":{"214":1},"2":{"20":1,"120":4,"214":4,"222":2,"224":1,"225":1}}],["restrict",{"2":{"17":1,"79":1,"82":1,"85":1,"94":1}}],["responsibility",{"2":{"126":1}}],["responses",{"0":{"19":1,"99":1},"1":{"20":1,"21":1,"22":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1},"2":{"85":1,"172":1}}],["response",{"0":{"22":1,"26":1,"31":1,"35":1,"38":1},"2":{"17":3,"20":1,"21":1,"24":1,"27":1,"29":1,"30":1,"32":1,"38":2,"55":1,"56":2,"79":3,"82":1,"83":2,"85":2,"86":5,"89":2,"91":1,"92":3,"94":1,"95":3,"98":2,"155":1,"171":1,"172":1}}],["respectively",{"2":{"73":1}}],["respective",{"2":{"51":2}}],["results=3",{"2":{"147":1}}],["results",{"2":{"36":1,"77":2,"87":1,"113":1,"140":1,"141":2,"148":1,"159":1,"211":1,"229":1}}],["result",{"0":{"39":1,"121":1,"129":1},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"27":1,"32":1,"73":2,"75":1,"79":1,"80":3,"85":1,"90":1,"97":1,"116":3,"121":2,"126":1,"129":11,"131":1,"132":1,"137":1,"142":2,"143":1,"145":1,"147":1,"149":1,"151":1,"153":1,"159":1,"207":1,"210":1,"215":1,"216":1,"218":1}}],["requirements",{"0":{"182":1},"1":{"183":1,"184":1,"185":1},"2":{"187":1}}],["require",{"2":{"115":1,"119":1,"202":1,"214":1}}],["requires",{"2":{"12":2,"14":1,"76":1,"77":2,"140":2,"141":1,"191":1,"192":1,"214":1,"224":1}}],["required|optional",{"2":{"221":1}}],["required",{"2":{"12":2,"115":5,"136":1,"178":1,"184":1,"220":1,"221":3,"224":1,"225":1}}],["requested",{"2":{"27":1,"29":1,"79":1,"85":1}}],["requests",{"0":{"17":1,"18":1,"25":1,"34":1},"1":{"18":1},"2":{"15":2,"16":1,"17":1,"53":1,"79":1,"82":1,"85":1,"91":1,"94":1,"155":1,"163":2,"164":1}}],["request",{"0":{"28":1,"30":1,"37":1},"2":{"8":1,"17":2,"20":4,"24":1,"27":1,"30":2,"32":2,"35":2,"79":1,"82":1,"85":1,"90":1,"91":1,"94":1,"173":1}}],["real",{"2":{"203":1}}],["really",{"2":{"73":1}}],["reasonable",{"2":{"207":1,"216":1}}],["reason",{"2":{"114":1}}],["reasons",{"2":{"7":1}}],["reads",{"2":{"192":1,"222":1}}],["readme",{"2":{"183":1}}],["ready",{"0":{"163":1},"2":{"163":1}}],["readable",{"2":{"20":1}}],["read",{"2":{"8":1,"121":1,"122":4,"129":1,"131":9,"132":34,"134":14,"222":1}}],["rf",{"2":{"6":1}}],["rm",{"2":{"6":1}}],["csv",{"2":{"224":2,"225":2}}],["cb",{"2":{"214":1}}],["cxx",{"2":{"190":1}}],["ccache",{"2":{"190":1,"192":5}}],["cmakecache",{"2":{"187":1}}],["cmakelists",{"2":{"184":1,"201":1}}],["cmake",{"2":{"183":3,"184":1,"185":2,"187":3,"188":2,"190":1,"192":4,"204":1,"234":1}}],["cd",{"2":{"181":1,"191":2,"203":1,"204":1,"207":6,"208":3,"209":1}}],["cpus",{"2":{"220":1}}],["cp312",{"2":{"180":1,"187":1,"189":1}}],["cpython",{"2":{"180":1}}],["cycleway=sidepath",{"2":{"130":1}}],["cell",{"2":{"223":2}}],["cells",{"2":{"30":2,"31":1,"86":2,"221":1,"223":1}}],["certain",{"2":{"73":1,"116":2}}],["c++",{"2":{"55":1,"72":1,"171":1,"172":1,"180":1,"184":1,"185":1,"193":1,"233":1}}],["c",{"2":{"55":1,"134":1,"207":1,"208":3,"209":1,"211":4,"214":2,"216":2,"233":2}}],["criteria",{"2":{"127":1}}],["creation",{"2":{"178":1}}],["creating",{"2":{"76":1,"77":3,"198":1}}],["creates",{"2":{"187":1,"194":1}}],["created",{"2":{"12":1,"110":1,"175":2,"177":1}}],["create",{"2":{"12":1,"13":1,"75":1,"76":1,"110":1,"111":1,"112":1,"192":1,"195":1,"217":1}}],["cron",{"2":{"195":1}}],["crossing",{"2":{"123":1}}],["cross",{"2":{"51":2}}],["crow",{"2":{"29":1,"85":2,"146":1}}],["click",{"2":{"176":2}}],["cli",{"0":{"160":1}}],["client",{"2":{"48":1}}],["clone",{"2":{"181":2,"183":1,"185":2,"233":2}}],["closely",{"2":{"192":1}}],["close",{"2":{"48":1,"208":1}}],["clockwise",{"2":{"17":1,"48":2,"51":2,"79":1,"82":1,"85":1,"91":1,"94":1,"134":1}}],["cllocation",{"2":{"32":1}}],["classification",{"0":{"135":2},"2":{"129":6,"132":14,"134":7,"135":9,"136":1}}],["classes",{"2":{"17":1,"48":1,"51":2,"52":1,"61":1,"64":1,"79":1,"120":3,"129":4,"136":1,"155":1}}],["class",{"2":{"17":4,"120":1,"129":4,"132":4,"134":2,"140":1}}],["cleanly",{"2":{"198":1}}],["clean",{"2":{"9":1,"230":1}}],["cleaned",{"2":{"6":1}}],["caution",{"0":{"218":1}}],["category",{"2":{"136":3}}],["capable",{"2":{"36":1,"87":1}}],["calming",{"2":{"122":1,"123":1}}],["calculation",{"2":{"44":1,"196":1,"215":1,"216":1}}],["calculating",{"2":{"29":1,"85":1}}],["calculate",{"2":{"29":1,"38":1,"51":1,"76":1}}],["calculated",{"2":{"17":1,"40":1,"42":1,"46":1,"79":1,"116":1,"175":1}}],["calling",{"2":{"129":1}}],["callback",{"2":{"79":1,"82":1,"85":1,"88":1,"91":1,"94":1}}],["called",{"2":{"13":1,"115":2,"120":3,"131":1,"132":1,"173":1,"211":1}}],["call",{"2":{"12":2,"13":1,"56":4,"75":1,"126":1,"127":1,"128":1,"202":1}}],["calls",{"2":{"9":1,"13":1,"14":1,"97":1,"184":1}}],["care",{"2":{"73":1}}],["car",{"2":{"17":1,"37":1,"76":1,"110":2,"111":2,"112":2,"115":2,"129":1,"160":1,"207":1,"208":3,"209":1,"222":1}}],["cases",{"2":{"203":1}}],["case",{"2":{"12":1,"17":1,"20":1,"24":1,"27":1,"30":1,"32":1,"35":1,"38":1,"48":1,"56":1,"73":2,"79":1,"116":1,"209":1,"216":2,"217":1}}],["cached",{"2":{"120":1}}],["cachepath",{"2":{"7":1}}],["cache",{"0":{"6":1,"190":1},"2":{"6":4,"7":3,"183":4,"192":1,"222":2,"234":1}}],["cancelled",{"2":{"195":1}}],["canonicalizestringlist",{"2":{"138":1}}],["canonical",{"2":{"125":1}}],["candidate",{"2":{"32":2,"223":1}}],["candidates",{"2":{"32":3,"174":1}}],["cannot",{"2":{"14":1,"27":1,"79":1,"97":1,"125":1,"131":1,"213":1}}],["can",{"0":{"215":1},"1":{"216":1,"217":1,"218":1},"2":{"4":1,"5":1,"7":2,"9":3,"12":1,"13":1,"17":3,"21":1,"29":1,"30":4,"32":1,"33":1,"36":2,"38":1,"40":1,"42":1,"48":3,"49":1,"53":2,"56":1,"61":2,"64":2,"68":2,"72":1,"73":3,"76":2,"77":1,"79":7,"82":5,"85":6,"87":2,"90":1,"91":5,"94":6,"97":1,"110":2,"111":1,"112":1,"115":5,"116":4,"119":2,"120":4,"121":2,"122":1,"125":1,"126":2,"129":2,"131":1,"132":1,"134":1,"135":2,"136":3,"137":2,"138":1,"164":1,"174":1,"176":1,"189":1,"193":1,"202":1,"204":1,"206":1,"209":1,"210":1,"211":1,"212":1,"215":1,"216":2,"217":4,"222":1,"224":1,"230":1}}],["cibw",{"2":{"192":2}}],["cibuildwheel",{"0":{"192":1},"2":{"184":1,"189":1,"192":8,"195":1}}],["circular",{"2":{"129":2}}],["circle",{"2":{"48":1,"61":1,"64":1,"122":1,"123":1}}],["ci",{"2":{"3":1,"5":1,"173":2,"177":1,"183":1,"189":1,"190":1,"192":1,"194":1,"195":1,"234":2}}],["coexist",{"2":{"230":1}}],["cover",{"2":{"219":1}}],["copy",{"2":{"217":1,"230":1}}],["core",{"2":{"187":2,"190":1}}],["correspond",{"2":{"207":1}}],["corresponds",{"2":{"51":1}}],["corresponding",{"2":{"49":1,"51":1,"202":1}}],["correctly",{"2":{"214":2}}],["correct",{"2":{"32":2,"48":1,"77":1,"92":1,"177":1,"215":1}}],["coord",{"2":{"157":2}}],["coordinate",{"0":{"157":1},"2":{"13":1,"17":1,"24":2,"27":1,"29":3,"32":1,"33":9,"42":1,"44":1,"53":4,"73":1,"79":4,"81":1,"82":3,"83":2,"85":6,"91":2,"94":5,"146":1,"147":1,"150":1,"154":2,"155":1,"157":1}}],["coordinates=",{"2":{"143":1,"145":1,"147":1,"149":1,"151":1}}],["coordinates",{"2":{"12":1,"17":2,"18":1,"20":1,"24":2,"27":4,"28":1,"29":3,"32":3,"33":3,"35":1,"41":2,"44":6,"59":2,"61":2,"73":4,"78":1,"79":5,"80":1,"81":1,"82":3,"83":1,"85":5,"86":1,"88":1,"91":5,"92":1,"93":1,"94":3,"95":1,"98":1,"143":1,"144":1,"145":1,"146":2,"150":1,"151":1,"155":1}}],["co",{"2":{"131":2}}],["collect",{"2":{"221":1}}],["collection",{"2":{"12":1}}],["collapsed",{"2":{"218":1}}],["collapsing",{"2":{"217":1}}],["columns",{"2":{"137":1,"224":1,"225":1}}],["column",{"2":{"86":1}}],["cols",{"2":{"68":4}}],["col",{"2":{"68":4}}],["costs",{"2":{"44":1}}],["cost",{"2":{"38":1,"116":1}}],["course",{"2":{"125":1,"206":1,"216":2}}],["counter",{"2":{"134":1,"168":1}}],["counting",{"2":{"48":1,"61":1,"64":1}}],["count",{"2":{"32":1,"92":1,"222":1,"223":1}}],["could",{"2":{"17":1,"20":2,"27":1,"32":2,"33":1,"51":1,"55":1,"79":2,"90":1,"91":1,"163":1,"207":1,"214":2,"216":1,"217":2}}],["com",{"2":{"181":1,"183":1,"185":1,"197":1,"233":1}}],["combination",{"2":{"127":1,"128":1}}],["combinations",{"2":{"33":2,"93":2,"114":1,"120":1}}],["coming",{"2":{"127":1,"128":1}}],["comes",{"2":{"111":1,"199":1}}],["come",{"2":{"73":1,"115":1}}],["compensate",{"2":{"216":1}}],["compiling",{"2":{"193":1}}],["compiler",{"0":{"190":1},"2":{"190":1}}],["compiles",{"2":{"187":1}}],["compile",{"2":{"180":1,"187":1}}],["compiled",{"2":{"55":1,"183":1,"188":1,"204":1}}],["compatible",{"2":{"171":4,"172":4}}],["compatibility",{"0":{"170":1},"1":{"171":1,"172":1},"2":{"172":1}}],["comparing",{"2":{"55":1}}],["computing",{"2":{"116":1,"137":1}}],["compute",{"2":{"195":1}}],["computed",{"2":{"113":1,"116":1}}],["computes",{"2":{"29":1,"84":1,"145":1}}],["complex",{"2":{"114":1}}],["completed",{"2":{"178":1}}],["completely",{"2":{"122":1,"217":1}}],["complete",{"2":{"32":1,"76":1,"90":1}}],["component",{"2":{"38":1,"222":2,"223":2}}],["comma",{"2":{"223":1}}],["command",{"0":{"219":1},"1":{"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1},"2":{"160":1,"219":1,"234":1}}],["commands",{"2":{"111":1,"189":1}}],["commandline",{"2":{"3":2}}],["committed",{"2":{"193":1,"198":1}}],["commit",{"2":{"173":1,"178":1,"181":2,"193":1,"195":1,"232":1}}],["commits",{"0":{"173":1},"2":{"173":1}}],["common",{"0":{"220":1},"1":{"221":1},"2":{"16":1,"119":1,"219":1}}],["coded",{"2":{"38":1}}],["codes",{"2":{"24":1,"27":2,"30":2,"32":2,"35":2}}],["code",{"0":{"10":1,"20":1},"1":{"11":1,"12":1,"13":1,"14":1},"2":{"10":1,"20":5,"22":1,"24":2,"26":1,"27":1,"30":1,"31":1,"32":1,"35":1,"46":1,"56":2,"57":2,"72":1,"75":1,"121":1}}],["conditionals",{"2":{"224":1,"225":1}}],["conditional",{"2":{"222":2,"224":2,"225":2}}],["condition",{"2":{"202":2}}],["conditions",{"2":{"48":1,"61":1,"64":1}}],["conclusion",{"2":{"195":1}}],["concepts",{"2":{"116":1}}],["concurrently",{"2":{"9":1}}],["converts",{"2":{"211":1}}],["conversion",{"2":{"12":2,"14":4}}],["conventional",{"0":{"173":1},"2":{"173":1}}],["convenience",{"2":{"44":1}}],["connectivity",{"2":{"136":1}}],["connection",{"2":{"15":1,"215":1}}],["connections",{"2":{"15":1,"215":1}}],["connects",{"2":{"77":2}}],["connect",{"2":{"53":1,"141":1,"228":1}}],["connected",{"2":{"33":1,"35":1,"38":1,"93":1,"132":2,"134":1,"222":1}}],["conjunction",{"2":{"29":1}}],["consumed",{"2":{"222":1}}],["consult",{"2":{"76":1}}],["console",{"2":{"80":2,"83":1,"86":4,"92":2,"95":2,"98":1}}],["constant",{"2":{"53":1}}],["constraints",{"2":{"73":2}}],["constraining",{"2":{"27":1}}],["constructor",{"2":{"76":1}}],["construct",{"2":{"73":1}}],["constructed",{"2":{"38":2,"56":1,"122":1}}],["constructing",{"2":{"12":1}}],["considerations",{"2":{"136":1}}],["consider",{"0":{"217":1},"2":{"115":1,"207":2,"208":1,"214":1,"216":1,"217":1}}],["considered",{"2":{"32":2,"136":2}}],["consisting",{"2":{"88":1}}],["consists",{"2":{"2":1,"46":1,"104":1}}],["context",{"2":{"207":1}}],["content",{"2":{"38":1}}],["contribute",{"2":{"214":1}}],["controlled",{"2":{"85":1}}],["contract",{"0":{"225":1},"2":{"44":2,"76":1,"113":1,"160":1,"225":1}}],["contraction",{"2":{"2":1,"213":1,"222":1,"223":1,"225":1,"228":1}}],["continue",{"2":{"27":1,"38":1,"48":1,"61":1,"64":1,"79":1,"120":2,"144":2,"208":1}}],["contiguous",{"2":{"4":1}}],["container",{"2":{"162":1,"192":2}}],["containerized",{"2":{"162":1}}],["contains",{"2":{"38":1,"53":1,"57":1,"76":1,"89":1,"119":1,"120":1}}],["containing",{"2":{"20":1,"21":1,"30":1,"42":1,"46":1,"49":1,"79":1,"82":1,"83":1,"85":1,"86":1,"91":1,"92":1,"94":1,"95":1,"97":2,"199":1,"222":1}}],["contain",{"2":{"14":1,"30":1,"36":1,"38":1,"86":1,"87":1,"203":1}}],["confirm",{"2":{"178":1}}],["config=",{"2":{"140":1}}],["config",{"2":{"73":1,"97":3,"141":1,"184":2,"187":1}}],["configures",{"2":{"234":1}}],["configure",{"2":{"73":1,"96":1,"234":1}}],["configured",{"2":{"4":1}}],["configurations",{"0":{"5":1},"2":{"5":1,"115":2,"120":1}}],["configuration",{"0":{"2":1,"7":1,"96":1},"1":{"3":1,"4":1,"8":1,"97":1,"98":1},"2":{"2":2,"3":2,"7":1,"70":2,"114":1,"115":1,"121":1,"129":2,"136":1,"137":1,"183":2,"187":1,"232":1}}],["confident",{"2":{"32":1,"92":1}}],["confidence",{"2":{"32":2,"92":2}}],["conform",{"2":{"9":1}}],["confused",{"2":{"3":1}}],["checking",{"2":{"202":1}}],["checkout",{"2":{"198":1}}],["checks",{"2":{"177":1}}],["checklist",{"0":{"177":1}}],["checked",{"2":{"130":1}}],["check",{"2":{"75":1,"137":1,"197":1,"202":4,"209":1}}],["chore",{"2":{"173":1}}],["choose",{"2":{"116":1}}],["choices",{"2":{"136":1,"207":1}}],["choice",{"2":{"49":1,"136":1}}],["chosen",{"2":{"3":1,"32":1,"129":1,"212":1}}],["ch|mld",{"2":{"9":2}}],["chance",{"2":{"207":1,"211":2}}],["changing",{"2":{"10":1,"193":1,"215":1}}],["changes",{"2":{"10":3,"48":1,"61":1,"64":1,"113":1,"118":1,"172":1,"173":1,"174":1,"183":1,"187":1,"207":2,"216":1,"217":3}}],["changed",{"2":{"7":1,"172":1,"187":1,"224":1,"225":1}}],["change",{"0":{"171":1,"172":1,"215":1,"216":2},"1":{"216":1,"217":1,"218":1},"2":{"3":1,"48":7,"49":1,"61":1,"64":1,"131":1,"136":1,"171":1,"206":1,"208":1,"215":3,"216":6,"224":1}}],["chain",{"2":{"6":1}}],["ch",{"2":{"2":1,"3":2,"7":1,"30":2,"77":2,"140":1,"141":2,"191":1,"225":1,"228":2}}],["cuts",{"2":{"223":2}}],["custom",{"2":{"183":1}}],["customize",{"0":{"224":1},"2":{"44":2,"160":1,"224":1,"225":1}}],["current",{"2":{"48":1,"49":1,"72":1,"77":1,"118":1,"192":1}}],["currently",{"2":{"2":1,"33":1,"73":1,"93":1,"115":1,"136":1,"230":2}}],["curl",{"2":{"18":3,"25":1,"28":1,"30":6,"34":2,"37":1}}],["curb",{"2":{"17":1,"79":1,"82":1,"85":1,"94":1,"155":1}}],["cucumber",{"0":{"0":1,"205":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"206":1,"207":1,"208":1,"209":1,"210":1,"211":1,"212":1,"213":1,"214":1},"2":{"0":4,"1":1,"2":1,"3":4,"4":1,"6":1,"7":10,"199":1,"203":1,"205":2}}],["w",{"2":{"188":2,"189":4}}],["writing",{"2":{"206":1}}],["written",{"0":{"114":1},"2":{"73":1,"114":1}}],["writefilesync",{"2":{"89":1}}],["write",{"0":{"207":1},"2":{"0":1,"12":3,"13":1,"14":3,"89":1,"131":3,"132":3,"134":1,"201":1,"205":1,"222":1}}],["wrappers",{"2":{"73":1,"159":1}}],["wrapper",{"2":{"73":1}}],["wrapping",{"2":{"73":2}}],["workload",{"2":{"233":1}}],["works",{"2":{"126":1,"127":1,"128":1,"187":1}}],["workflows",{"2":{"194":1}}],["workflow",{"0":{"75":1},"2":{"125":1,"175":1,"176":3,"178":1,"183":1,"194":2,"195":1,"196":2}}],["work",{"2":{"33":1,"73":1,"93":1,"136":1,"193":1}}],["worked",{"2":{"22":1}}],["worldparameters",{"2":{"7":2}}],["wouldn",{"2":{"129":1}}],["would",{"2":{"13":4,"27":1,"51":1,"79":1,"129":1,"131":1,"207":1,"215":1,"216":3,"217":1}}],["warning",{"2":{"220":1}}],["warmed",{"2":{"183":1}}],["wait",{"2":{"195":1,"230":2}}],["waiting",{"2":{"163":1}}],["wanted",{"2":{"72":1}}],["want",{"2":{"13":1,"14":1,"17":2,"73":1,"79":2,"115":1,"116":2,"129":1,"201":1,"202":1}}],["wayhandlers",{"2":{"130":1}}],["waypoints",{"0":{"211":1},"2":{"17":3,"24":3,"26":1,"27":6,"29":1,"32":3,"33":2,"35":2,"40":2,"42":1,"56":2,"68":2,"78":1,"79":7,"80":3,"83":3,"91":3,"93":2,"95":4,"100":1,"102":1,"142":1,"144":3,"150":2,"211":2,"212":1,"216":2,"229":1}}],["waypoint",{"0":{"53":1,"58":1,"108":1},"1":{"54":1,"109":1},"2":{"17":1,"24":1,"27":1,"30":2,"32":4,"35":3,"53":1,"56":2,"58":1,"67":1,"68":2,"79":1,"80":2,"82":1,"83":1,"85":1,"86":6,"92":4,"94":1,"95":4,"108":1,"120":1,"211":1,"212":1}}],["way",{"0":{"129":2,"130":1},"2":{"12":1,"14":1,"32":1,"46":6,"48":1,"51":2,"61":1,"64":1,"90":1,"104":1,"110":2,"114":1,"115":5,"116":4,"119":2,"120":2,"123":1,"129":25,"130":5,"131":6,"132":2,"134":1,"214":6,"215":1,"216":1}}],["ways",{"2":{"10":1,"73":1,"114":1,"115":2,"116":8,"120":1,"129":1,"131":4,"132":1,"207":1,"208":3,"209":1,"211":2,"214":2}}],["waste",{"2":{"17":1,"79":1}}],["was",{"2":{"7":1,"21":1,"24":1,"27":1,"30":1,"32":4,"35":2,"55":1,"92":3,"95":1}}],["whose",{"2":{"224":1,"225":1}}],["whole",{"2":{"7":1,"9":1,"40":1,"44":1,"129":2}}],["whl",{"2":{"189":7}}],["why",{"2":{"116":1}}],["what",{"0":{"215":1},"1":{"216":1,"217":1,"218":1},"2":{"36":1,"72":1,"87":1,"115":3,"116":1,"203":1,"217":1}}],["wheelhouse",{"2":{"192":1}}],["wheel",{"0":{"188":1,"189":1},"2":{"180":1,"183":3,"187":1,"188":4,"189":3,"192":1}}],["wheels",{"2":{"180":1,"189":2,"192":2,"194":1,"195":3,"197":1}}],["whether",{"2":{"38":2,"49":1,"79":1,"82":1,"85":1,"91":1,"94":1,"110":2,"121":2,"136":2,"137":1}}],["where",{"2":{"17":1,"24":1,"72":1,"73":1,"115":1,"120":1,"121":1,"122":1,"129":1,"130":1,"162":1,"165":1,"168":1,"192":1,"216":2}}],["whenever",{"2":{"212":1}}],["when",{"0":{"163":1},"2":{"4":1,"10":2,"29":1,"33":2,"38":1,"56":1,"77":1,"110":1,"111":1,"113":2,"115":3,"116":2,"118":1,"119":1,"120":1,"127":1,"128":1,"130":2,"132":6,"134":4,"135":1,"136":3,"137":1,"146":1,"162":1,"163":2,"177":1,"180":1,"183":1,"189":1,"198":1,"206":1,"207":1,"208":3,"209":1,"216":3,"223":1,"224":1,"225":1}}],["which",{"2":{"13":1,"17":1,"30":1,"32":1,"36":1,"38":1,"46":1,"55":2,"73":1,"76":1,"79":3,"82":3,"83":1,"85":2,"86":1,"87":1,"91":2,"92":1,"94":2,"97":2,"115":3,"120":3,"136":3,"190":1,"211":1,"215":1,"223":1,"224":1,"234":1}}],["while",{"2":{"9":2,"48":1,"61":1,"64":1,"78":1,"234":1}}],["were",{"2":{"209":1}}],["website",{"2":{"71":1}}],["weighting",{"2":{"129":1}}],["weights",{"2":{"36":1,"42":1,"44":1,"87":1,"120":1,"135":1,"224":2,"225":2,"230":1}}],["weight",{"0":{"116":1},"2":{"27":1,"32":1,"33":1,"38":5,"40":4,"41":2,"42":2,"43":1,"44":1,"45":1,"46":2,"47":1,"79":1,"91":1,"94":1,"116":5,"120":5,"122":2,"129":4,"131":3,"132":3,"135":3,"137":1,"144":1,"224":2,"225":2}}],["well",{"2":{"14":1,"129":1,"208":1,"214":1}}],["we",{"2":{"5":1,"7":1,"9":1,"10":1,"12":2,"13":1,"14":3,"38":2,"73":5,"76":1,"110":3,"129":1,"135":1,"165":1,"208":1,"209":1,"214":2,"215":1,"216":5}}],["wiring",{"2":{"192":1}}],["win",{"2":{"187":1,"189":1,"197":1}}],["windows",{"0":{"185":1,"231":1},"1":{"232":1,"233":1,"234":1},"2":{"180":1,"185":1,"187":2,"188":1,"189":4,"190":2,"191":2,"192":3,"231":1,"232":2,"234":2}}],["wipes",{"2":{"187":1}}],["wish",{"2":{"126":1}}],["wiqbgl6maoaeaaaabgaaaaaaaaa7aaaahu6pqhvhj0iaaaaaqbyyqgqaaaagaaaaaaaaadsaaadmaaaaf27mabijiqocbswa",{"2":{"31":2}}],["will",{"2":{"9":7,"14":3,"17":1,"20":3,"24":1,"29":1,"30":1,"32":1,"33":2,"46":2,"48":2,"51":1,"56":1,"61":1,"64":1,"68":2,"79":2,"82":2,"85":2,"86":1,"91":2,"92":1,"94":2,"97":1,"113":1,"115":2,"116":7,"118":1,"120":6,"121":1,"127":1,"128":1,"129":7,"134":1,"136":1,"162":1,"163":3,"164":1,"174":1,"206":1,"208":1,"214":1,"215":3,"216":1,"232":1,"234":1}}],["without",{"2":{"48":3,"49":1,"131":1,"163":1,"168":1,"175":1,"180":1,"184":1,"188":1,"193":2,"217":1,"224":1,"227":1,"230":2}}],["within",{"2":{"13":1,"129":1,"174":1,"176":1}}],["with",{"0":{"112":1},"2":{"1":1,"2":1,"3":3,"6":1,"7":1,"9":5,"10":1,"12":2,"17":2,"18":1,"24":1,"25":1,"28":1,"29":4,"30":1,"34":2,"36":2,"38":2,"42":1,"43":1,"44":1,"46":2,"55":2,"56":1,"73":4,"75":1,"76":1,"77":2,"79":3,"82":2,"85":5,"87":2,"91":3,"94":3,"97":1,"111":2,"112":1,"115":2,"116":3,"123":1,"124":1,"126":1,"127":3,"128":3,"129":1,"132":2,"137":1,"139":1,"140":1,"153":1,"165":1,"166":1,"173":2,"175":2,"176":1,"177":3,"181":1,"192":2,"195":1,"196":1,"197":1,"198":1,"199":1,"202":1,"203":1,"209":2,"214":1,"217":1,"222":2,"224":3,"225":3,"228":1,"230":1,"232":1,"233":2}}],["wiki",{"2":{"0":1,"36":2,"88":2,"205":1}}],["affects",{"2":{"222":1}}],["after",{"0":{"178":1},"2":{"48":2,"51":2,"113":1,"132":1,"188":1,"193":1,"197":1,"202":1}}],["ae",{"2":{"211":2}}],["aims",{"2":{"205":1}}],["aarch64",{"2":{"180":1}}],["ambiguous",{"2":{"214":1}}],["amd64",{"2":{"180":1,"187":1,"189":1,"197":1}}],["amp",{"2":{"33":1}}],["aware",{"2":{"136":1}}],["away",{"2":{"32":1}}],["a1",{"2":{"130":1}}],["against",{"2":{"183":1,"189":1,"195":1}}],["again",{"2":{"113":1}}],["ad",{"2":{"211":2}}],["adjust",{"2":{"116":2,"131":1,"137":1,"216":3}}],["adjustments",{"2":{"115":1}}],["advantage",{"2":{"97":1}}],["adding",{"2":{"214":1,"217":1}}],["addition",{"2":{"24":1,"27":2,"29":1,"30":1,"32":2,"33":1,"35":1,"48":1,"61":1,"64":1,"214":1}}],["additional",{"2":{"3":9,"24":1,"27":1,"32":3,"33":1,"35":1,"42":1,"48":1,"61":1,"64":1,"83":1,"92":2,"95":1,"96":1,"120":1,"144":1,"178":1}}],["additive",{"2":{"17":1}}],["added",{"2":{"40":1,"49":1,"172":1}}],["add",{"0":{"126":1},"2":{"27":1,"32":1,"33":1,"79":1,"91":1,"94":1,"126":1,"189":3,"193":2,"201":1,"203":1}}],["adds",{"2":{"17":1,"79":1,"82":1,"85":1,"91":1,"94":1}}],["addresses",{"2":{"77":1}}],["addressed",{"2":{"68":2}}],["address",{"2":{"7":1,"227":2}}],["auditwheel",{"2":{"189":4}}],["auxiliary",{"2":{"73":1}}],["automatically",{"2":{"174":1,"175":1,"177":1,"189":1,"190":1}}],["automatic",{"2":{"166":1}}],["automated",{"0":{"175":1},"2":{"166":1,"174":1,"177":1,"178":2}}],["auto",{"2":{"56":1,"175":1,"177":1,"193":1,"229":1}}],["availability",{"2":{"207":1}}],["available",{"0":{"111":1},"1":{"112":1},"2":{"46":3,"51":4,"56":1,"96":1,"191":1}}],["avoids",{"2":{"17":1,"112":1}}],["avoid",{"2":{"17":1,"38":1,"79":1,"155":1,"206":1}}],["april",{"2":{"165":1,"169":2}}],["apis",{"2":{"69":1}}],["api",{"0":{"118":1,"139":1},"1":{"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1},"2":{"38":1,"48":2,"49":1,"55":1,"56":1,"69":4,"73":1,"97":1,"115":2,"118":4,"129":1,"171":3,"172":3,"173":1,"226":1}}],["applyaccesstokens",{"2":{"138":1}}],["application",{"2":{"38":1}}],["applicable",{"2":{"32":1,"91":1}}],["applies",{"2":{"16":1,"224":1}}],["applied",{"2":{"9":1,"36":1,"38":1,"87":1,"130":1,"132":2}}],["appropriate",{"2":{"135":1}}],["approximation",{"2":{"33":1,"93":1}}],["approach",{"2":{"17":4}}],["approaches",{"2":{"17":1,"38":1,"79":1,"82":1,"85":1,"94":1,"155":1}}],["ahead",{"2":{"38":1}}],["abc",{"2":{"214":4,"216":2}}],["ab",{"2":{"207":4,"208":3,"209":1,"211":2,"214":3}}],["abi3",{"2":{"180":1,"187":1,"189":1}}],["abi",{"2":{"180":1}}],["abstract",{"2":{"116":1}}],["absolute",{"2":{"38":1}}],["absent",{"2":{"30":1,"56":2,"68":1}}],["able",{"2":{"32":1,"90":1}}],["aborting",{"2":{"202":1}}],["above",{"2":{"5":1,"97":1,"188":1,"214":1}}],["about",{"2":{"0":1,"42":1,"44":1,"72":1,"73":2,"131":1,"132":2,"135":1,"203":1}}],["aqapphzbhulfzeme`euvkpncgla",{"2":{"30":1}}],["acquiring",{"2":{"230":1}}],["ac",{"2":{"211":2}}],["across",{"2":{"162":1,"187":2}}],["actions",{"2":{"175":1,"176":1,"177":1,"178":1,"196":1}}],["acts",{"2":{"73":1}}],["actual",{"2":{"36":1,"38":2,"48":1,"61":1,"64":1,"87":1,"116":1,"207":1,"215":2,"216":1}}],["actually",{"2":{"12":1,"14":2,"36":1,"87":1,"207":1,"214":1}}],["accompanying",{"2":{"206":1}}],["accomplished",{"2":{"48":1}}],["accordingly",{"2":{"73":1,"116":1,"131":1}}],["according",{"2":{"27":1,"32":1,"33":1,"40":1,"79":1,"91":1,"201":1}}],["accidentally",{"2":{"38":1,"73":1}}],["accuracy",{"2":{"32":1,"91":1}}],["accepted",{"2":{"220":1}}],["accepting",{"2":{"12":1}}],["accessible",{"2":{"160":1}}],["access",{"0":{"135":1,"164":1},"2":{"13":1,"20":1,"119":2,"121":1,"129":2,"131":1,"132":6,"134":3,"135":3,"137":1,"139":1,"164":1,"230":1}}],["asc",{"2":{"137":1}}],["ascii",{"2":{"137":2,"215":1}}],["associated",{"2":{"130":1,"209":1}}],["assembly",{"2":{"217":1}}],["assemblesteps",{"2":{"217":1}}],["assemble",{"2":{"32":1,"35":1,"92":1,"95":1,"217":1}}],["assert",{"2":{"122":1}}],["assumed",{"2":{"118":1,"120":2,"213":1}}],["assign",{"2":{"116":1,"132":1}}],["ask",{"2":{"73":1,"218":1}}],["asymmetric",{"2":{"30":1,"84":1}}],["as",{"2":{"5":1,"12":1,"13":2,"14":2,"16":1,"20":1,"24":1,"27":2,"29":3,"32":3,"33":4,"36":1,"38":1,"42":1,"46":1,"48":1,"51":1,"53":1,"55":1,"56":1,"58":3,"59":3,"60":3,"61":6,"62":2,"63":1,"64":3,"65":1,"68":3,"72":1,"73":6,"77":1,"79":3,"82":2,"85":6,"91":3,"93":1,"94":2,"97":1,"104":1,"115":2,"116":3,"120":1,"126":3,"129":7,"130":1,"134":1,"136":1,"144":1,"150":1,"159":1,"162":1,"168":1,"175":1,"188":1,"189":2,"195":2,"208":2,"209":1,"211":3,"212":1,"214":1,"218":2,"222":1,"223":2}}],["aspects",{"2":{"0":1}}],["attribute",{"2":{"120":2,"121":1,"129":1,"131":1,"132":1,"134":1}}],["attributes",{"2":{"73":2,"119":1,"121":1,"129":2,"131":1,"132":1}}],["at",{"2":{"4":2,"12":1,"13":1,"17":1,"24":1,"27":2,"32":2,"33":4,"34":2,"36":1,"46":1,"48":3,"49":1,"51":3,"55":1,"61":3,"64":3,"68":2,"72":1,"79":3,"82":1,"85":1,"91":1,"92":1,"94":3,"113":1,"115":4,"118":1,"120":4,"121":1,"126":1,"127":1,"128":1,"129":2,"132":4,"144":1,"166":1,"168":1,"174":2,"175":1,"183":2,"185":1,"192":1,"193":1,"195":1,"200":1,"202":2,"205":1,"206":1,"207":2,"214":1,"215":1,"216":3,"217":2,"232":1,"234":1}}],["art",{"2":{"215":1}}],["artifact",{"2":{"195":1}}],["artifacts",{"2":{"188":1,"195":1}}],["artificial",{"2":{"38":1}}],["args",{"2":{"185":1,"187":1,"188":1,"192":2}}],["args=",{"2":{"183":1,"192":1}}],["arguments",{"0":{"4":1},"2":{"4":1,"5":1,"140":1}}],["argument",{"2":{"3":2,"121":1,"126":1,"127":1,"128":1,"129":1}}],["arm64",{"2":{"180":1}}],["around",{"2":{"73":2,"122":1,"159":1,"216":1}}],["arrow",{"2":{"49":9,"63":8}}],["arriving",{"2":{"129":1}}],["arrival",{"2":{"48":1}}],["arrive|",{"2":{"216":2}}],["arrived",{"2":{"207":1}}],["arrive",{"2":{"48":4,"51":1,"61":1,"64":1,"207":1,"208":4,"209":4}}],["arrays",{"2":{"29":1,"30":3,"86":5,"134":1}}],["array",{"0":{"159":1},"2":{"17":1,"24":2,"27":2,"29":1,"30":5,"32":2,"35":2,"40":1,"42":2,"44":1,"49":1,"51":4,"53":1,"56":3,"59":1,"62":1,"63":1,"68":1,"77":1,"79":11,"80":4,"82":7,"83":2,"85":12,"86":9,"88":2,"91":10,"92":4,"94":9,"95":4,"159":1}}],["arbitrary",{"2":{"12":1}}],["arbitrarily",{"2":{"9":1}}],["area",{"2":{"32":1}}],["areas",{"2":{"10":1,"116":1}}],["are",{"0":{"114":1,"215":1},"1":{"216":1,"217":1,"218":1},"2":{"3":3,"4":2,"5":1,"6":1,"7":2,"15":1,"17":2,"20":3,"24":1,"27":3,"29":4,"30":3,"32":4,"33":3,"35":2,"36":5,"38":1,"44":3,"46":3,"48":1,"49":1,"51":4,"73":4,"79":4,"86":2,"87":3,"88":1,"90":1,"91":1,"93":2,"97":1,"111":1,"113":2,"114":2,"115":5,"116":3,"118":1,"120":5,"127":2,"129":1,"131":1,"132":6,"134":5,"135":2,"136":1,"138":1,"159":1,"173":1,"174":1,"175":2,"178":1,"180":1,"189":1,"191":1,"194":1,"208":1,"212":2,"215":1,"216":1,"220":1,"232":2}}],["alias",{"2":{"97":1}}],["alive",{"2":{"13":1,"15":1,"227":1}}],["almost",{"2":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"68":1}}],["along",{"2":{"27":1,"32":1,"33":1,"42":1,"44":1,"46":3,"104":1,"110":1,"115":1}}],["alter",{"2":{"216":1}}],["alternative",{"2":{"27":3,"32":1,"77":1,"79":3,"92":1,"129":2,"130":1,"141":1,"144":1,"213":1,"229":1}}],["alternatives",{"0":{"213":1},"2":{"27":1,"32":1,"77":2,"79":2,"92":1,"141":1,"144":1,"229":1}}],["alternatives=2",{"2":{"143":1}}],["alternatives=1",{"2":{"140":1}}],["alternatives=n",{"2":{"27":1}}],["alternatives=",{"2":{"27":1}}],["although",{"2":{"9":1}}],["already",{"2":{"9":1}}],["always",{"2":{"3":1,"174":1,"207":2,"208":1,"215":1}}],["allowed",{"2":{"73":1,"120":2,"132":4,"134":2,"209":1,"223":1}}],["allows",{"2":{"32":2,"72":1,"84":1,"91":2,"130":1,"230":1}}],["allow",{"0":{"212":1},"2":{"3":1,"15":1,"79":1,"82":1,"85":1,"91":1,"94":1,"120":1,"212":1}}],["all",{"0":{"5":1,"209":1},"2":{"2":1,"3":3,"4":1,"5":1,"12":2,"13":1,"16":2,"17":1,"20":1,"27":4,"29":3,"30":3,"32":5,"33":3,"35":2,"48":2,"51":1,"56":1,"68":1,"72":1,"73":3,"79":3,"80":2,"85":2,"86":2,"90":1,"91":3,"92":1,"93":2,"94":1,"95":1,"96":1,"114":1,"116":2,"119":1,"120":1,"121":1,"126":1,"127":1,"128":2,"129":1,"134":1,"142":1,"144":2,"146":4,"148":1,"150":1,"152":1,"174":1,"177":1,"184":2,"203":1,"206":2,"207":1,"208":1,"209":1,"211":1,"215":1,"219":1,"220":1,"221":1,"229":1,"230":3}}],["algorithm=",{"2":{"140":1}}],["algorithms",{"2":{"2":1}}],["algorithm",{"2":{"2":1,"3":2,"7":3,"9":2,"32":1,"33":1,"77":2,"90":1,"93":1,"141":2,"223":1,"228":2}}],["also",{"2":{"0":3,"9":1,"38":1,"73":1,"79":1,"91":1,"94":1,"97":1,"110":1,"115":3,"116":1,"120":1,"122":1,"129":1,"130":1,"132":2,"136":1,"160":1,"176":1,"223":1}}],["a",{"0":{"12":1,"165":1,"188":1},"1":{"13":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1},"2":{"2":3,"3":1,"4":1,"5":1,"6":1,"7":1,"9":3,"10":2,"11":1,"12":10,"13":3,"14":2,"15":2,"16":1,"17":5,"20":3,"21":2,"24":3,"25":1,"27":2,"29":2,"30":7,"32":2,"33":2,"36":1,"37":1,"38":8,"40":1,"42":1,"46":14,"48":32,"49":11,"51":9,"53":1,"55":1,"56":2,"61":22,"62":1,"63":6,"64":24,"66":1,"67":1,"68":2,"72":4,"73":14,"75":1,"76":3,"77":2,"79":4,"81":2,"82":2,"85":4,"87":1,"89":2,"90":1,"91":1,"92":1,"93":1,"94":3,"96":1,"97":3,"100":1,"102":1,"104":5,"108":1,"110":4,"111":1,"113":1,"114":1,"115":7,"116":10,"118":1,"119":2,"120":3,"121":3,"122":10,"125":1,"126":2,"127":1,"128":2,"129":12,"130":1,"131":4,"132":9,"134":6,"135":2,"136":9,"137":1,"138":1,"140":1,"142":2,"147":1,"163":1,"165":1,"175":4,"176":1,"177":1,"180":2,"183":3,"184":1,"187":2,"188":1,"192":1,"193":1,"194":1,"195":1,"196":1,"198":1,"199":1,"200":2,"202":5,"203":3,"205":3,"206":2,"207":7,"208":11,"209":10,"211":9,"212":3,"213":1,"214":6,"215":1,"216":15,"217":7,"219":2,"222":3,"223":4,"224":1,"225":1,"226":1,"227":1,"228":2,"229":5,"230":2,"232":1,"234":2}}],["announce",{"2":{"207":1}}],["annotated",{"2":{"195":1}}],["annotation",{"0":{"44":1,"65":1},"1":{"45":1},"2":{"42":2,"43":1,"44":1,"60":3,"65":1}}],["annotations",{"2":{"27":1,"29":1,"32":1,"33":1,"42":1,"44":1,"60":1,"79":1,"85":1,"91":1,"94":1,"144":1,"146":1}}],["annotations=true",{"2":{"43":1}}],["annotations=distance",{"2":{"30":2}}],["annotations=duration",{"2":{"30":1}}],["annotations=durations",{"2":{"29":1}}],["annotations=",{"2":{"27":1,"29":1,"32":1,"33":1,"143":1,"145":1,"149":1,"151":1}}],["analyze",{"2":{"189":1}}],["analogous",{"2":{"38":1}}],["another",{"2":{"131":1,"218":1}}],["angles",{"2":{"215":5,"216":4,"218":1}}],["angle",{"2":{"38":2,"48":2,"51":2,"115":1,"132":3,"209":1,"215":2,"216":2}}],["anymore",{"2":{"135":1,"215":1}}],["any|last",{"2":{"33":1}}],["any|first",{"2":{"33":1}}],["anywhere",{"2":{"13":1}}],["any",{"0":{"127":1},"2":{"9":2,"13":2,"17":4,"33":14,"44":2,"51":1,"79":3,"82":3,"85":3,"91":3,"93":8,"94":7,"126":2,"127":7,"131":1,"152":4,"155":1,"163":1,"164":1,"174":1,"176":1,"180":1,"183":1}}],["android",{"2":{"32":1}}],["and",{"0":{"116":1,"133":1,"134":1,"135":1},"2":{"2":4,"4":1,"6":2,"7":1,"8":1,"9":1,"12":2,"13":1,"14":1,"15":1,"17":4,"20":1,"24":2,"27":2,"28":1,"29":3,"30":4,"32":4,"33":4,"35":1,"36":5,"38":1,"42":1,"43":1,"46":2,"48":5,"49":1,"53":1,"61":1,"64":1,"68":1,"69":1,"72":3,"73":11,"75":1,"76":2,"79":4,"80":1,"81":1,"84":1,"85":1,"86":1,"87":3,"88":2,"91":2,"92":2,"93":2,"94":1,"95":2,"97":2,"110":3,"111":2,"113":2,"114":2,"115":7,"116":4,"119":1,"120":5,"121":1,"125":3,"127":1,"128":1,"129":4,"130":1,"131":4,"132":3,"134":2,"135":6,"136":5,"137":5,"142":1,"144":1,"150":1,"152":1,"155":1,"159":2,"163":1,"169":1,"172":1,"173":1,"174":1,"175":2,"178":1,"180":2,"181":1,"183":1,"185":1,"187":2,"188":1,"189":3,"190":1,"192":2,"193":2,"194":2,"195":3,"197":2,"199":1,"202":2,"203":4,"206":2,"207":5,"208":4,"209":2,"211":6,"213":1,"214":6,"216":5,"217":1,"218":2,"220":3,"222":2,"224":1,"226":1,"230":2,"233":1}}],["an",{"2":{"2":1,"12":2,"13":1,"17":2,"20":2,"27":1,"32":2,"33":1,"35":1,"38":1,"40":1,"42":1,"46":1,"48":6,"49":11,"51":3,"56":1,"61":2,"63":7,"64":2,"73":2,"75":1,"76":2,"77":3,"79":2,"80":2,"82":2,"83":1,"85":3,"86":1,"88":1,"91":2,"92":3,"93":1,"94":2,"95":2,"112":1,"115":3,"116":1,"121":3,"122":3,"123":1,"124":1,"125":1,"126":1,"129":1,"131":3,"134":2,"137":2,"183":1,"197":1,"207":1,"209":1,"217":1,"222":1,"228":1,"230":1}}],["snd",{"2":{"202":1}}],["snapped",{"2":{"25":1,"29":3,"53":3,"79":1,"82":1,"85":4,"91":1,"94":1,"146":1}}],["snapping",{"2":{"17":2,"79":4,"82":4,"85":4,"91":3,"94":4,"129":1,"155":1,"212":1,"222":1}}],["snaps",{"2":{"24":1,"32":1,"79":1,"81":1,"82":1,"85":1,"91":1,"94":1,"149":1}}],["snap",{"2":{"17":1,"20":1,"229":1}}],["sdist",{"2":{"195":1,"197":1}}],["src",{"2":{"193":4}}],["switches",{"2":{"125":1}}],["slow",{"2":{"183":1,"187":1}}],["slows",{"2":{"122":1}}],["slip",{"2":{"129":1}}],["slippy",{"2":{"36":2,"87":1,"88":1}}],["slightleft",{"2":{"63":1}}],["slightly",{"2":{"49":2,"55":1,"63":2}}],["slightright",{"2":{"63":1}}],["slight",{"2":{"48":4,"49":4,"63":2,"216":6}}],["skewed",{"2":{"116":1}}],["skips",{"2":{"188":1}}],["skipped",{"2":{"29":1}}],["skip",{"2":{"17":1,"24":1,"29":1,"56":1,"68":1,"79":1,"228":1,"230":1}}],["system",{"2":{"162":1,"189":1}}],["symbolic",{"2":{"112":1}}],["symmetric",{"2":{"84":1}}],["syntactically",{"2":{"20":1}}],["syntax",{"2":{"16":1}}],["synchronized",{"2":{"11":1}}],["sync",{"2":{"7":1,"36":1,"87":1,"203":1}}],["smallest",{"2":{"214":1}}],["smaller",{"2":{"29":1,"131":1}}],["small",{"0":{"212":1},"2":{"38":2,"48":1,"61":1,"64":1,"203":1,"207":1,"215":1,"222":1,"223":2}}],["s",{"2":{"17":1,"40":1,"66":2,"68":1,"110":1,"113":1,"114":1,"116":3,"120":2,"129":2,"139":1,"159":1,"183":4,"184":1,"185":1,"189":1,"192":1,"227":1,"228":1,"230":2,"234":1}}],["scm",{"2":{"198":1}}],["scikit",{"2":{"187":2,"190":1}}],["scratch",{"2":{"187":3}}],["scripting",{"2":{"114":2,"129":1}}],["scripts",{"2":{"114":1,"183":1,"187":1,"192":1,"220":1}}],["schedule",{"2":{"176":1}}],["scheduled",{"0":{"195":1},"2":{"175":1}}],["scheme",{"0":{"167":1},"1":{"168":1,"169":1},"2":{"165":1,"166":2,"198":1}}],["scenic",{"2":{"131":1}}],["scenario",{"2":{"7":1,"9":2,"199":1,"207":1,"208":4,"209":1,"211":2,"214":2}}],["scenarios",{"2":{"2":1,"9":1,"207":1}}],["scales",{"2":{"29":1,"146":1}}],["scale",{"0":{"207":1},"2":{"29":1,"85":1,"146":1}}],["scope",{"2":{"138":1}}],["scopeguard",{"0":{"13":1},"2":{"13":2}}],["scopedgeojsonloggerguard",{"2":{"12":3,"13":2,"14":7}}],["scoped",{"2":{"12":1}}],["sol2",{"2":{"184":1}}],["solver",{"2":{"85":1}}],["solves",{"2":{"33":1,"93":1,"151":1}}],["sorted",{"2":{"24":1,"83":1}}],["something",{"2":{"129":1}}],["some",{"2":{"17":2,"38":2,"56":1,"79":1,"96":1,"115":1,"116":1,"210":2,"215":2,"217":1}}],["somewhere",{"2":{"10":1}}],["so",{"2":{"12":2,"36":1,"73":1,"87":1,"129":2,"173":1,"184":1,"189":1,"191":1,"192":1,"193":1,"195":1,"202":1,"208":1,"211":1,"218":1,"222":1,"230":1}}],["sourcedata",{"2":{"137":3}}],["source=first",{"2":{"34":1}}],["source=any",{"2":{"33":1}}],["source=",{"2":{"33":1,"151":1}}],["sources=",{"2":{"145":1}}],["sources=0",{"2":{"29":1,"30":2}}],["sources",{"2":{"29":4,"30":2,"31":1,"44":1,"56":1,"68":1,"73":3,"85":1,"86":4,"120":1,"146":1,"223":1}}],["source",{"0":{"134":1},"2":{"8":3,"29":2,"30":2,"33":4,"38":1,"44":1,"48":1,"85":1,"93":2,"94":1,"95":1,"115":1,"131":3,"132":15,"134":1,"135":2,"137":7,"146":1,"152":1,"180":2,"183":2,"234":1}}],["splitting",{"2":{"32":1,"91":1}}],["splits",{"2":{"32":1,"90":1}}],["split",{"2":{"27":1,"32":3,"33":1,"91":2,"92":1,"120":2,"131":1,"150":2,"214":1}}],["span",{"2":{"12":1}}],["spring",{"2":{"9":1,"230":1}}],["speech",{"2":{"130":1}}],["speeds",{"2":{"38":1,"76":1,"116":1,"131":1,"224":1}}],["speed",{"0":{"116":1},"2":{"6":1,"27":1,"29":3,"30":3,"31":1,"32":1,"33":1,"38":5,"43":1,"44":5,"53":1,"79":1,"85":3,"86":2,"91":1,"94":1,"115":3,"116":6,"119":1,"120":2,"129":8,"132":4,"134":2,"143":1,"144":1,"146":2,"149":1,"190":1,"222":1,"224":4,"225":2}}],["specified",{"2":{"51":1}}],["specifies",{"2":{"48":2,"61":2,"64":2}}],["specific",{"0":{"182":1},"1":{"183":1,"184":1,"185":1},"2":{"20":1,"73":2,"75":1,"96":1,"129":1,"136":1,"180":1,"187":1,"189":1,"208":1,"214":1}}],["specifying",{"2":{"49":1,"112":1,"115":1}}],["specify",{"2":{"33":1,"111":1,"208":1,"214":1}}],["special",{"2":{"9":1}}],["six",{"2":{"219":1}}],["signal",{"0":{"163":1},"2":{"126":1,"127":1,"128":1,"163":2}}],["signals",{"2":{"122":1,"123":1}}],["signaling",{"2":{"49":1,"63":1}}],["sign",{"2":{"122":1}}],["significantly",{"2":{"53":1}}],["signifying",{"2":{"46":1,"51":1}}],["similar",{"2":{"48":1,"61":1,"64":1,"136":1}}],["simplified|full|false",{"2":{"32":1,"33":1}}],["simplified",{"2":{"27":2,"32":2,"33":2,"40":3,"79":2,"91":2,"94":2,"144":2}}],["simply",{"2":{"12":2,"114":1,"116":1,"203":1,"207":1}}],["simple",{"2":{"12":1,"129":1}}],["sides",{"2":{"223":1}}],["sidestep",{"2":{"202":1}}],["sidepath=yes",{"2":{"130":1}}],["sidepath",{"2":{"130":4}}],["sidepaths",{"2":{"130":1}}],["sidewalks",{"2":{"130":2}}],["side",{"2":{"46":2,"48":1,"61":3,"64":1,"211":1}}],["sinks",{"2":{"223":1}}],["since",{"2":{"32":2,"207":1,"215":1,"216":1}}],["single",{"0":{"2":1,"12":1},"1":{"3":1,"4":1,"13":1},"2":{"2":1,"7":1,"9":1,"14":1,"24":2,"46":1,"81":1,"104":1,"119":1,"208":1,"223":2}}],["size",{"2":{"20":2,"55":1,"77":1,"207":3,"208":3,"209":1,"216":5,"222":1,"223":2,"229":7}}],["sizes",{"2":{"7":1,"207":1,"223":2}}],["save",{"2":{"222":1,"228":1}}],["sadly",{"2":{"217":1}}],["said",{"2":{"216":1}}],["satisfiying",{"2":{"127":1}}],["san",{"2":{"37":1}}],["salesman",{"2":{"33":1,"93":1,"151":1}}],["safest",{"2":{"110":1}}],["safe",{"2":{"11":1}}],["same",{"0":{"112":1,"171":1},"2":{"5":1,"6":1,"14":1,"36":1,"48":1,"55":1,"58":3,"59":3,"60":3,"61":6,"62":2,"63":1,"64":3,"65":1,"68":1,"77":1,"112":1,"116":1,"120":2,"126":2,"168":1,"169":1,"174":1,"176":1,"184":1,"188":1}}],["say",{"2":{"2":1,"207":1,"214":1}}],["study",{"2":{"217":2}}],["studio",{"2":{"10":1,"190":1,"232":1,"233":1}}],["stuff",{"2":{"215":1}}],["stubgen",{"2":{"193":1}}],["stub",{"2":{"193":2}}],["stubs",{"0":{"193":1}}],["style",{"2":{"173":1}}],["std",{"2":{"73":3}}],["stem",{"2":{"38":1}}],["stepmaneuver",{"0":{"48":1,"64":1,"106":1},"1":{"107":1},"2":{"38":1,"46":2,"48":1,"51":1,"61":2,"64":2}}],["step",{"0":{"61":1},"2":{"27":1,"32":1,"33":1,"46":8,"51":1,"60":2,"61":1,"79":1,"91":1,"94":1,"104":2,"126":1,"209":5,"217":1}}],["steps=true",{"2":{"143":1}}],["steps=false",{"2":{"41":1,"43":1}}],["steps=",{"2":{"27":1,"32":1,"33":1}}],["steps",{"2":{"12":1,"27":2,"32":2,"33":1,"41":2,"42":5,"43":1,"60":1,"77":1,"79":2,"91":2,"94":2,"144":2,"178":1,"195":1,"217":2,"218":1,"228":1,"230":1}}],["stored",{"2":{"125":1}}],["store",{"2":{"77":1,"119":2,"125":2,"137":1}}],["stores",{"2":{"30":2,"86":2,"125":1}}],["storage",{"2":{"73":1,"121":1,"129":1,"140":1,"141":1}}],["stop",{"2":{"34":1,"122":1,"123":1}}],["stops",{"2":{"34":2}}],["stock",{"2":{"3":1}}],["still",{"2":{"17":1,"24":1,"33":1,"40":1,"79":1,"118":1,"195":1,"212":1}}],["stack",{"2":{"232":1}}],["stale",{"2":{"230":1}}],["stable",{"2":{"180":1}}],["stands",{"2":{"61":1}}],["standard",{"2":{"32":2,"91":1,"97":1,"164":1,"187":1}}],["stays",{"2":{"195":1}}],["stay",{"2":{"48":1,"61":1,"64":1}}],["started",{"0":{"69":1},"2":{"166":1}}],["starting",{"2":{"34":1,"168":1,"211":2,"223":1}}],["start",{"2":{"33":4,"38":1,"129":3,"131":2,"212":2,"227":1}}],["starts",{"2":{"33":1,"94":1,"187":1}}],["startpoint",{"2":{"17":1,"38":1,"79":1,"82":1,"85":1,"91":1,"94":1,"129":1}}],["stage",{"2":{"21":1,"125":2}}],["static",{"2":{"187":1,"189":3,"211":1}}],["statically",{"2":{"17":1}}],["state",{"2":{"177":1}}],["status",{"2":{"20":3,"24":1,"27":1,"30":1,"32":1,"35":1,"73":2}}],["stronger",{"2":{"215":1}}],["strongly",{"2":{"38":1,"49":2,"63":2,"222":1}}],["strange",{"2":{"210":1}}],["straight",{"2":{"27":2,"38":1,"47":2,"48":1,"49":3,"50":1,"52":1,"63":2,"79":2,"120":2,"131":1,"144":2,"207":1,"208":3}}],["str",{"2":{"141":4,"144":3,"146":2,"150":1,"152":2,"155":4}}],["strictly",{"2":{"73":1}}],["strings",{"2":{"20":1,"51":1,"79":2,"82":1,"85":1,"91":2,"94":2}}],["string",{"2":{"17":2,"20":2,"38":4,"42":2,"44":1,"46":2,"48":2,"57":2,"59":1,"61":1,"77":6,"79":4,"82":2,"85":2,"91":4,"94":5,"97":3,"120":1,"129":9,"220":1,"222":2}}],["streets",{"2":{"79":1,"82":1,"85":1,"94":1,"116":1,"215":1}}],["street",{"2":{"17":1,"20":1,"24":1,"48":1,"53":1,"61":1,"64":1,"81":1,"130":5,"147":1}}],["stress",{"2":{"3":2}}],["structure",{"0":{"115":1},"2":{"16":1,"73":2}}],["shell",{"2":{"192":1}}],["sh",{"2":{"183":1}}],["sha",{"2":{"183":2}}],["share",{"2":{"219":1}}],["shared",{"2":{"2":1,"77":5,"140":3,"141":3,"155":1,"162":2,"189":4,"191":1,"228":4,"230":6}}],["sharpleft",{"2":{"63":1}}],["sharpright",{"2":{"63":1}}],["sharp",{"2":{"38":1,"48":4,"49":4,"63":2,"209":1}}],["shm",{"0":{"162":1},"2":{"162":1}}],["ships",{"2":{"183":1,"219":1}}],["ship",{"2":{"76":1,"184":1}}],["shot",{"2":{"194":1}}],["shows",{"2":{"197":2}}],["show",{"2":{"130":1,"189":2,"220":2}}],["shown",{"2":{"49":2,"63":2}}],["shorthand",{"2":{"111":1}}],["shortest",{"2":{"29":1,"93":1,"110":1,"116":2}}],["short",{"2":{"11":1,"42":1,"72":1,"216":1,"220":1,"222":1,"227":1,"228":1,"230":1}}],["shortcut",{"2":{"5":1}}],["should",{"2":{"3":2,"6":1,"9":4,"24":1,"32":3,"48":2,"56":4,"61":1,"64":1,"82":1,"116":1,"118":1,"120":1,"162":1,"173":1,"174":1,"201":1,"204":1,"206":2,"207":2,"208":3,"209":1,"216":5,"217":1}}],["separated",{"2":{"223":1}}],["separate",{"0":{"201":1}}],["separately",{"2":{"130":1}}],["semantic",{"2":{"166":1}}],["semver",{"2":{"165":2}}],["send",{"2":{"163":1}}],["sent",{"2":{"97":1}}],["sequences",{"2":{"119":1}}],["sequence",{"2":{"119":2,"120":5}}],["several",{"2":{"76":1,"120":1,"131":1}}],["second",{"2":{"67":2,"85":1,"96":1,"129":1}}],["seconds",{"2":{"7":1,"15":1,"29":1,"30":1,"32":2,"38":2,"40":1,"42":1,"44":1,"46":1,"86":1,"122":1,"227":1,"230":1}}],["sections",{"2":{"219":1}}],["section",{"2":{"21":1,"215":1}}],["segmentation",{"2":{"214":1}}],["segment",{"0":{"131":2},"2":{"20":1,"38":7,"44":3,"46":2,"53":1,"115":1,"120":1,"131":12,"137":7,"147":1,"208":1,"224":2,"225":1}}],["segments",{"2":{"17":1,"24":1,"79":1,"82":2,"85":1,"91":1,"94":1,"120":1,"148":1,"214":1}}],["series",{"2":{"217":1}}],["serialization",{"2":{"55":1}}],["serialized",{"2":{"17":1,"79":1,"97":1}}],["serving",{"2":{"227":1}}],["service",{"0":{"24":1,"27":1,"29":1,"32":1,"33":1,"36":1},"1":{"25":1,"26":1,"28":1,"30":1,"31":1,"34":1,"35":1,"37":1,"38":1},"2":{"17":3,"20":4,"24":3,"27":2,"29":1,"30":1,"32":2,"33":2,"35":1,"36":1,"56":3,"70":1,"73":2,"75":2,"93":1,"142":1,"159":1,"163":1}}],["services",{"0":{"23":1,"142":1},"1":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1},"2":{"16":1,"53":1,"56":1,"69":2,"73":3,"139":1}}],["serve",{"2":{"230":1}}],["serves",{"2":{"226":1}}],["server",{"0":{"15":1,"227":1},"1":{"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1},"2":{"3":1,"5":1,"15":2,"24":1,"70":1,"203":1,"219":1,"226":1,"230":1,"232":1}}],["searches",{"2":{"27":1}}],["search",{"2":{"17":2,"27":1,"32":1,"79":3,"82":1,"85":1,"91":1,"94":1,"141":1,"144":1,"155":1,"229":1}}],["selecting",{"2":{"211":1}}],["select",{"2":{"176":1}}],["selected",{"2":{"9":1}}],["selects",{"2":{"3":8}}],["setter",{"2":{"129":2}}],["setting",{"2":{"7":1,"76":1,"77":3,"135":1,"214":1}}],["sets",{"2":{"115":1,"119":1,"120":1}}],["setuptools",{"2":{"198":1}}],["setup",{"0":{"120":1},"2":{"115":5,"120":5,"121":1,"129":1,"132":4,"134":2,"135":3,"137":2,"164":1}}],["set",{"2":{"3":1,"8":1,"12":1,"14":1,"21":1,"24":1,"29":1,"33":3,"56":1,"68":1,"73":1,"97":2,"116":4,"118":1,"119":2,"120":6,"121":1,"129":8,"131":1,"132":5,"134":2,"135":3,"162":1,"163":1,"164":1,"184":1,"187":1,"192":1,"196":1,"219":1,"233":1}}],["seems",{"2":{"218":1}}],["seen",{"2":{"136":1}}],["see",{"2":{"0":3,"8":1,"17":2,"24":1,"27":1,"30":1,"32":2,"35":1,"38":1,"40":1,"73":2,"74":1,"113":2,"115":1,"129":1,"131":1,"132":2,"133":1,"134":1,"137":1,"180":1,"183":1,"185":1,"187":2,"201":1,"203":2,"204":1,"208":1,"212":1,"215":2,"216":3,"217":4,"232":1}}],["superfluous",{"2":{"214":1}}],["suppress",{"2":{"209":5}}],["supply",{"2":{"205":1}}],["supplied",{"2":{"17":1,"20":1,"27":1,"29":2,"38":1,"44":3,"51":2,"55":1,"79":1,"83":1,"85":1,"91":1}}],["supported",{"2":{"24":1,"27":2,"29":1,"30":2,"32":2,"33":3,"35":2,"36":1,"77":7,"88":1,"93":2,"118":1,"120":1}}],["support",{"2":{"9":1,"17":1,"96":1,"137":1,"159":1,"190":1,"231":1}}],["supports",{"2":{"2":1,"15":1,"24":1,"55":1,"81":1,"110":1,"130":1,"180":1}}],["supposed",{"2":{"8":1,"215":1}}],["surprises",{"2":{"207":1}}],["sure",{"2":{"4":1,"10":1,"12":1,"73":1,"77":1,"192":1,"209":1}}],["suffixes",{"2":{"120":1}}],["suffix",{"2":{"120":1,"173":1}}],["sum",{"2":{"73":2}}],["summary",{"2":{"42":2}}],["succession",{"2":{"208":1}}],["success",{"2":{"73":2,"195":1}}],["successful",{"2":{"24":1,"27":1,"30":1,"32":1,"35":1,"213":1}}],["successfully",{"2":{"20":1,"32":1,"90":1,"178":1}}],["such",{"2":{"32":1,"46":1,"73":5,"76":1,"104":1,"207":1,"216":2,"217":1}}],["sub",{"2":{"32":2,"35":1,"90":1,"92":1,"95":1,"201":1}}],["subsequent",{"2":{"6":1,"17":1,"46":2,"53":1,"79":1,"82":1,"85":1,"91":1,"94":1,"104":1,"187":1,"234":1}}],["suite",{"2":{"0":1,"191":1,"204":1}}],["omit",{"2":{"214":1}}],["omitted",{"2":{"21":1,"32":1,"46":1,"92":1,"136":1,"207":1}}],["oidc",{"2":{"195":1}}],["o",{"2":{"193":1,"222":1}}],["occur",{"2":{"174":1}}],["older",{"2":{"118":1,"176":1}}],["old",{"2":{"77":1}}],["obviously",{"2":{"215":1,"216":1}}],["obvious",{"2":{"136":3,"208":1}}],["obs",{"2":{"122":2,"128":5}}],["obstacles",{"2":{"125":2,"126":2,"127":2,"128":2,"133":1}}],["obstacle",{"0":{"122":1,"123":1,"124":1,"125":1,"126":2,"127":1,"128":1},"1":{"123":1,"124":1,"126":1,"127":1,"128":1},"2":{"121":2,"122":12,"125":1,"126":9,"127":9,"128":9,"133":1}}],["obtained",{"2":{"53":1}}],["obtain",{"2":{"32":1,"91":1}}],["objects",{"0":{"39":1,"73":1},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"24":1,"27":2,"30":2,"32":2,"35":2,"40":1,"42":1,"46":1,"51":1,"56":2,"59":1,"62":1,"68":1,"80":4,"83":2,"86":4,"92":4,"95":4}}],["object",{"0":{"40":1,"42":1,"44":1,"46":1,"48":1,"49":1,"51":1,"53":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"68":1,"159":1},"1":{"41":1,"43":1,"45":1,"47":1,"50":1,"52":1,"54":1},"2":{"13":1,"20":1,"21":1,"24":1,"27":1,"32":4,"35":1,"38":1,"42":1,"46":1,"48":2,"53":1,"56":4,"58":1,"59":1,"60":1,"61":3,"62":1,"63":1,"64":3,"65":1,"67":1,"68":2,"75":1,"76":1,"77":4,"79":2,"80":1,"82":2,"83":2,"85":2,"86":1,"91":2,"92":4,"94":2,"95":2,"96":1,"97":8,"108":1,"122":1,"142":2,"159":1}}],["ok",{"2":{"20":2,"22":1,"24":1,"26":1,"27":1,"30":1,"31":1,"32":1,"35":1,"73":1}}],["overall",{"2":{"195":1}}],["overlay",{"2":{"183":1}}],["overhead",{"2":{"72":1}}],["over",{"2":{"53":1,"97":1,"129":1,"131":1,"206":1,"216":1,"224":1,"225":1}}],["overview",{"2":{"27":3,"28":1,"32":3,"33":3,"40":2,"79":4,"91":3,"94":3,"144":2}}],["overview=",{"2":{"27":1,"32":1,"33":1,"143":1}}],["overview=false",{"2":{"18":2,"28":1}}],["override",{"2":{"7":1,"176":1,"192":1,"196":1,"224":2,"225":2}}],["optimisation",{"2":{"190":1}}],["optimizing",{"2":{"223":2}}],["optimization",{"2":{"85":1}}],["optimized",{"2":{"55":1,"230":1}}],["option",{"2":{"17":4,"24":2,"27":1,"29":1,"32":1,"33":1,"77":1,"97":1,"111":1,"120":1}}],["optionally",{"2":{"46":3,"84":1,"176":1}}],["optional",{"2":{"17":2,"20":1,"21":1,"30":1,"48":2,"73":1,"77":1,"79":8,"82":2,"85":1,"86":1,"91":7,"94":8,"115":1,"127":1,"128":1,"196":1,"220":1,"221":2,"228":1,"230":1}}],["option=value",{"2":{"17":3}}],["options",{"0":{"16":1,"220":1},"1":{"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"221":1},"2":{"17":2,"20":1,"24":2,"27":2,"29":4,"32":2,"33":2,"77":19,"79":19,"81":1,"82":10,"83":2,"85":14,"86":2,"91":15,"92":2,"94":15,"95":2,"97":4,"98":2,"219":1,"222":1,"223":1,"224":1,"225":1,"226":1,"228":1,"230":2}}],["openstreetmap",{"2":{"21":1,"24":1,"36":1,"88":1,"114":2,"115":1,"129":1,"131":1}}],["operator",{"2":{"12":1,"202":1}}],["opposite",{"2":{"17":1,"79":1,"82":1,"85":1,"94":1}}],["own",{"2":{"12":1,"73":2,"120":1,"183":1}}],["osmnode",{"2":{"126":1}}],["osmosis",{"2":{"21":1,"222":1}}],["osm",{"2":{"21":1,"44":1,"73":2,"76":1,"111":1,"112":4,"113":1,"115":3,"119":1,"121":1,"125":2,"126":1,"127":1,"128":1,"129":1,"130":1,"131":4,"135":1,"160":1,"203":1,"215":1,"219":1,"222":6}}],["os",{"2":{"8":1,"9":2}}],["osrm>",{"2":{"223":1,"224":1,"225":1,"226":1,"230":1}}],["osrmref",{"2":{"183":1}}],["osrm",{"0":{"2":1,"5":1,"15":1,"76":1,"110":1,"140":1,"165":1,"222":1,"223":1,"224":1,"225":1,"226":1,"230":1,"231":1},"1":{"3":1,"4":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"141":1,"142":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"227":1,"228":1,"229":1,"232":1,"233":1,"234":1},"2":{"0":1,"2":3,"3":2,"6":1,"7":8,"8":3,"9":2,"10":1,"16":1,"17":2,"18":3,"21":1,"25":1,"28":1,"30":6,"34":2,"37":1,"38":2,"44":4,"55":2,"56":2,"69":1,"72":3,"73":4,"74":1,"75":2,"76":21,"77":8,"80":4,"83":4,"86":4,"89":4,"92":4,"95":4,"98":4,"101":1,"103":1,"105":1,"107":1,"109":1,"110":1,"111":3,"112":2,"115":1,"116":1,"137":1,"139":3,"140":13,"141":2,"143":1,"145":1,"147":1,"149":1,"151":1,"153":1,"157":1,"158":1,"159":1,"160":13,"162":1,"163":2,"164":1,"171":2,"172":2,"180":4,"181":3,"183":1,"184":1,"185":1,"187":2,"191":2,"193":10,"195":1,"197":3,"199":1,"205":1,"207":1,"208":1,"210":1,"211":1,"214":1,"219":1,"221":8,"222":3,"223":1,"224":1,"225":3,"226":2,"228":1,"230":3,"231":1}}],["others",{"2":{"116":1}}],["otherwise",{"2":{"20":1,"24":1,"27":1,"30":1,"32":1,"35":1,"183":1}}],["other",{"0":{"8":1},"2":{"9":2,"17":1,"20":1,"27":1,"29":1,"30":1,"32":1,"35":1,"44":3,"56":1,"68":1,"73":5,"79":1,"115":1,"116":3,"120":1,"129":2,"132":2,"134":1,"176":1,"196":1,"206":1,"207":1,"216":1,"217":1}}],["outgoing",{"2":{"132":1,"134":2}}],["outside",{"2":{"97":1,"183":1}}],["outlier",{"2":{"32":1,"92":1}}],["outliers",{"2":{"32":1,"90":1}}],["outputting",{"0":{"12":1},"1":{"13":1},"2":{"12":1}}],["output",{"2":{"10":1,"12":2,"14":2,"33":3,"79":1,"82":1,"110":1,"112":4,"120":1,"121":1,"129":1,"164":1,"222":2}}],["out",{"2":{"7":1,"12":1,"47":2,"51":1,"52":1,"73":2,"111":1,"173":1,"176":1}}],["our",{"2":{"0":1,"3":1,"11":1,"12":2,"205":1}}],["ordinates",{"2":{"131":2}}],["ordered",{"2":{"27":1,"80":2}}],["order",{"2":{"17":1,"27":2,"30":4,"32":1,"35":1,"78":1,"79":1,"80":2,"86":6,"92":1,"95":1,"129":1,"134":1,"211":1,"213":1}}],["original",{"2":{"21":1,"135":1}}],["organize",{"2":{"173":1}}],["org",{"2":{"18":3,"25":1,"28":1,"30":6,"34":2,"36":1,"37":1,"38":1,"88":1,"197":1}}],["or",{"2":{"3":1,"7":2,"9":2,"12":1,"17":7,"20":1,"21":1,"27":2,"29":9,"32":3,"33":6,"38":1,"44":3,"46":5,"48":2,"56":1,"59":1,"61":3,"64":2,"73":5,"77":2,"78":1,"79":8,"82":7,"85":9,"90":1,"91":7,"93":1,"94":9,"97":1,"104":1,"110":2,"111":2,"116":3,"119":1,"120":2,"122":5,"127":1,"128":1,"129":3,"130":2,"131":1,"137":1,"140":1,"141":1,"143":1,"146":1,"150":1,"152":2,"155":2,"171":1,"172":1,"177":1,"180":1,"183":2,"189":1,"196":1,"202":1,"203":2,"211":1,"214":1,"228":1,"230":1}}],["once",{"2":{"76":1,"115":1,"120":2,"122":1,"126":1}}],["onramp",{"2":{"61":1,"64":1}}],["onto",{"2":{"48":1,"51":1,"61":1,"64":1,"130":1}}],["only",{"2":{"3":2,"9":1,"14":2,"24":2,"33":1,"38":1,"48":1,"56":2,"67":1,"79":1,"81":1,"82":1,"85":1,"91":1,"93":1,"94":1,"119":1,"120":1,"121":1,"122":5,"125":2,"126":1,"127":1,"128":1,"129":3,"130":1,"136":1,"183":1,"187":1,"189":1,"202":1,"206":1,"208":1,"229":1,"230":2}}],["oneway",{"2":{"209":1,"211":2,"214":2}}],["ones",{"2":{"4":1,"27":1,"30":1,"32":1,"35":1,"111":1}}],["one",{"2":{"3":4,"17":2,"20":3,"33":1,"44":1,"49":1,"59":1,"61":1,"122":1,"129":1,"130":1,"194":1,"211":1,"221":1,"230":1}}],["on",{"0":{"134":2,"213":1},"2":{"0":1,"3":2,"5":1,"17":1,"18":2,"21":1,"27":2,"28":1,"30":1,"32":4,"33":1,"38":3,"40":2,"42":2,"46":1,"48":10,"49":2,"51":1,"53":2,"61":4,"64":4,"66":1,"72":1,"73":2,"75":1,"76":1,"77":2,"79":3,"82":1,"85":2,"91":2,"94":1,"108":1,"115":1,"116":6,"120":3,"121":1,"122":1,"126":2,"129":6,"131":4,"132":12,"134":12,"135":2,"136":2,"137":1,"163":1,"166":1,"174":1,"175":2,"176":1,"180":1,"183":1,"189":1,"190":2,"192":1,"195":2,"198":1,"200":1,"203":2,"205":2,"207":1,"211":1,"213":1,"217":1,"218":1,"227":2,"231":1}}],["often",{"2":{"206":1}}],["offsets",{"0":{"212":1}}],["offset",{"2":{"166":1,"168":1,"212":1,"216":2}}],["offramp",{"2":{"61":1,"64":1}}],["off",{"2":{"48":2,"136":1,"228":2}}],["offer",{"2":{"10":1,"48":2,"61":1,"64":1}}],["offers",{"2":{"3":1,"12":1,"114":1,"211":1}}],["ofp",{"2":{"18":1}}],["of",{"0":{"115":1},"2":{"0":1,"2":1,"4":1,"7":1,"10":3,"11":1,"12":9,"13":3,"14":3,"17":9,"18":1,"20":4,"24":3,"25":1,"27":3,"29":5,"30":6,"32":11,"33":5,"35":5,"38":7,"40":5,"42":5,"44":10,"46":12,"48":22,"49":1,"51":13,"53":3,"56":3,"59":1,"61":9,"62":1,"63":1,"64":10,"67":1,"68":5,"72":2,"73":3,"77":1,"79":5,"80":4,"82":3,"83":2,"85":4,"86":10,"88":1,"91":5,"92":9,"93":1,"94":3,"95":6,"97":2,"104":2,"110":1,"111":1,"115":4,"116":7,"118":1,"119":4,"120":8,"121":1,"122":1,"125":1,"127":1,"128":2,"129":12,"130":6,"131":10,"132":14,"134":9,"135":1,"136":2,"137":3,"141":1,"144":2,"146":2,"147":1,"148":2,"150":1,"155":1,"162":1,"166":1,"171":1,"174":1,"175":1,"176":1,"183":1,"195":1,"196":1,"202":1,"206":1,"207":3,"208":3,"209":1,"210":1,"211":2,"212":2,"213":2,"215":2,"216":8,"217":5,"218":1,"219":1,"220":2,"223":4,"225":1,"228":1,"229":6}}],["tcp",{"2":{"227":1}}],["twice",{"2":{"203":1}}],["two",{"2":{"14":1,"29":1,"38":1,"42":2,"73":2,"78":1,"85":1,"102":1,"131":1,"143":1,"223":1}}],["tmp",{"2":{"192":1}}],["txt",{"2":{"184":1,"187":1,"201":1}}],["tbb12",{"2":{"189":2}}],["tbb",{"2":{"183":1,"184":1,"189":1}}],["tuple",{"2":{"155":2}}],["tuning",{"2":{"72":1}}],["turning",{"2":{"122":3,"123":2,"134":1}}],["turns",{"2":{"38":3,"44":1,"48":1,"120":1,"208":4,"209":2,"215":1,"216":2,"217":2}}],["turn",{"0":{"132":2,"135":2,"214":1},"1":{"133":2,"134":2,"135":2},"2":{"13":1,"38":8,"42":2,"44":1,"46":1,"47":1,"48":23,"49":9,"51":6,"61":12,"63":8,"64":14,"104":1,"115":3,"120":5,"121":1,"122":1,"125":2,"126":1,"127":8,"128":10,"129":4,"130":2,"132":23,"134":5,"135":24,"208":1,"214":10,"215":4,"216":8,"217":3,"218":1,"222":1,"224":4,"225":3}}],["tsp",{"2":{"33":1,"93":1}}],["typed",{"2":{"73":1}}],["typescript",{"2":{"55":1}}],["types",{"0":{"156":1},"1":{"157":1,"158":1,"159":1},"2":{"20":1,"38":1,"48":1,"49":1,"72":1,"73":2,"76":1,"115":1,"116":1,"120":2,"125":1,"127":2,"128":2,"159":1,"173":1}}],["type",{"0":{"123":1,"127":1,"128":1,"193":1},"2":{"20":1,"27":1,"30":1,"32":1,"35":1,"38":5,"41":1,"47":1,"48":7,"61":1,"64":3,"73":6,"110":1,"120":2,"121":1,"122":7,"125":1,"126":2,"127":8,"128":10,"129":1,"131":1,"132":4,"134":2,"136":1,"146":1,"202":1,"214":3}}],["typically",{"2":{"17":1,"115":1,"116":1,"129":1}}],["t",{"0":{"213":1,"216":1},"2":{"17":1,"48":1,"61":1,"64":1,"73":3,"79":1,"116":1,"129":1,"131":1,"220":1,"225":1}}],["try",{"2":{"215":1,"216":1}}],["tree",{"2":{"211":1}}],["treated",{"2":{"48":1,"61":1,"64":1,"222":1,"223":1}}],["treat",{"2":{"27":1,"32":1,"79":1,"91":1,"144":1,"150":1}}],["treats",{"2":{"27":1,"32":1}}],["trusted",{"2":{"195":1}}],["true|false",{"2":{"27":2,"32":2,"33":3}}],["true|false|number",{"2":{"27":1}}],["true",{"2":{"17":3,"24":1,"27":4,"29":1,"32":4,"33":7,"42":3,"47":7,"48":2,"51":3,"52":3,"56":2,"61":1,"68":1,"77":3,"79":3,"82":2,"85":2,"91":2,"93":4,"94":3,"120":2,"127":2,"129":1,"141":1,"152":1,"155":1}}],["traditional",{"2":{"166":1}}],["trailing",{"2":{"132":1}}],["traversing",{"2":{"129":1}}],["traverse",{"2":{"38":2,"48":1,"61":1,"64":1}}],["traveled",{"2":{"40":1,"42":1}}],["traveling",{"2":{"33":1,"93":1,"110":1,"151":1}}],["travel",{"2":{"30":2,"40":1,"42":1,"46":4,"48":4,"51":2,"61":1,"64":1,"86":2,"104":1,"116":1,"129":3,"132":4,"134":2}}],["traffic",{"2":{"38":1,"43":2,"45":2,"48":1,"61":1,"64":1,"121":2,"122":3,"123":2,"126":1,"127":1,"128":1,"132":3,"164":1,"224":1,"225":1,"227":1,"230":2}}],["tracker",{"2":{"71":1}}],["tracks",{"2":{"32":1,"91":1}}],["track",{"2":{"32":2,"91":2}}],["tracepoint",{"2":{"32":2}}],["tracepoints",{"2":{"32":1,"92":3}}],["trace",{"2":{"32":5,"35":1,"90":1,"92":6,"95":1}}],["traces",{"2":{"32":1,"90":1,"149":1}}],["translated",{"2":{"215":1}}],["transport",{"2":{"110":1}}],["transportation",{"2":{"17":1,"46":1}}],["transcription",{"2":{"46":1}}],["transitions",{"2":{"32":1,"90":1}}],["transfer",{"2":{"17":1,"55":1,"79":1}}],["trial",{"2":{"227":1}}],["tries",{"2":{"215":1}}],["tried",{"2":{"20":1}}],["trigger",{"0":{"176":1},"2":{"176":1,"196":1}}],["trimlanestring",{"2":{"138":1}}],["triplet=x64",{"2":{"183":1,"187":1,"192":1}}],["triplet",{"2":{"183":1,"189":1,"192":1}}],["tripparameters",{"0":{"152":1},"2":{"151":1}}],["trip=3",{"2":{"140":1}}],["trips",{"2":{"35":4,"95":5}}],["trip",{"0":{"33":1,"93":1,"151":1},"1":{"34":1,"35":1,"94":1,"95":1,"152":1},"2":{"17":1,"33":8,"34":4,"35":2,"56":1,"77":2,"93":2,"94":1,"95":3,"97":1,"141":2,"151":1,"155":1,"229":2}}],["tiny",{"2":{"212":1}}],["tip",{"2":{"189":1}}],["title",{"2":{"173":1}}],["titles",{"2":{"173":1}}],["ticket",{"2":{"32":1}}],["tidy",{"2":{"32":1,"91":1,"150":1}}],["tileparameters",{"0":{"154":1},"2":{"153":1}}],["tilenames",{"2":{"36":1,"88":1}}],["tiles",{"2":{"36":3,"38":3,"87":3,"153":1}}],["tile",{"0":{"36":1,"87":1,"153":1},"1":{"37":1,"38":1,"88":1,"89":1,"154":1},"2":{"17":1,"36":4,"37":3,"87":1,"88":2,"89":3,"97":1,"153":1,"154":3}}],["times",{"2":{"116":1}}],["timestamps=",{"2":{"149":1}}],["timestamps",{"2":{"32":4,"90":1,"91":1,"92":1,"150":2}}],["timestamp",{"2":{"21":2,"32":5,"91":3,"222":2,"224":2,"225":2}}],["time",{"2":{"30":1,"32":1,"38":1,"40":1,"42":1,"46":1,"86":2,"113":1,"116":1,"120":2,"174":1,"180":1,"185":1,"187":1,"192":1,"193":1,"224":2,"225":2}}],["timeout",{"2":{"7":7,"227":2}}],["timing",{"2":{"7":1}}],["tasks",{"2":{"119":1}}],["targetdata",{"2":{"137":2}}],["target",{"0":{"134":1},"2":{"48":1,"131":2,"132":16,"134":1,"135":2,"137":2,"177":1,"183":1,"187":1,"192":2}}],["take",{"2":{"48":6,"61":4,"64":4,"72":1,"73":1,"142":1}}],["taken",{"2":{"42":1,"48":1,"61":1,"64":1}}],["takes",{"2":{"38":4,"48":1,"61":1,"64":1,"73":2,"180":1,"183":1,"234":1}}],["table=3",{"2":{"140":1}}],["tableparameters",{"0":{"146":1},"2":{"73":4,"145":1}}],["tables",{"2":{"29":1,"84":1,"85":1,"209":1}}],["table",{"0":{"29":1,"68":1,"84":1,"145":1},"1":{"30":1,"31":1,"85":1,"86":1,"146":1},"2":{"17":1,"29":3,"30":6,"56":5,"68":1,"73":3,"77":2,"84":2,"85":4,"86":1,"115":4,"119":2,"120":1,"121":1,"128":2,"129":3,"141":2,"145":1,"155":1,"214":1,"229":2}}],["tag",{"2":{"9":5,"114":2,"129":1,"130":3,"132":4,"134":2,"168":1,"169":4,"175":1,"177":1,"178":1,"187":1,"189":1,"194":2,"195":3,"197":1,"198":2,"209":1,"222":1}}],["tagged",{"2":{"9":2,"132":2,"134":1,"189":1}}],["tags",{"0":{"9":1},"2":{"4":1,"9":3,"119":5,"130":2,"131":3,"135":2,"165":1,"168":1,"169":1,"203":1}}],["tl",{"0":{"1":1}}],["toml",{"2":{"192":2,"198":1}}],["top",{"2":{"115":1,"118":1}}],["tostring",{"2":{"98":1}}],["toll",{"2":{"52":1,"129":1}}],["tool",{"2":{"192":2,"219":1,"220":2}}],["tools",{"0":{"219":1},"1":{"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1},"2":{"160":1,"189":1,"193":1,"219":2,"222":1,"234":1}}],["toolchain",{"2":{"76":1,"77":1,"140":1,"183":2,"184":1,"185":1,"187":1,"192":4}}],["too",{"2":{"42":1}}],["toobig",{"2":{"20":1}}],["total",{"2":{"38":1,"129":1}}],["torstraße",{"2":{"31":2}}],["towards",{"2":{"17":1,"79":1,"82":1,"85":1,"91":1,"94":1}}],["todo",{"2":{"3":2}}],["to",{"0":{"11":1,"127":1,"128":1,"133":1,"207":1},"2":{"0":1,"2":1,"3":3,"4":1,"5":1,"6":1,"7":3,"8":1,"9":4,"10":4,"11":2,"12":7,"13":3,"14":3,"15":1,"16":1,"17":13,"20":2,"24":4,"27":6,"29":4,"30":3,"32":13,"33":9,"35":3,"36":1,"38":15,"40":1,"44":4,"46":4,"48":19,"49":1,"51":9,"53":5,"55":3,"56":1,"61":5,"63":1,"64":5,"68":1,"72":3,"73":6,"76":1,"77":13,"79":15,"81":1,"82":9,"83":2,"85":11,"86":2,"87":1,"89":1,"90":3,"91":9,"92":2,"93":3,"94":7,"95":2,"96":1,"97":4,"104":1,"108":1,"110":1,"112":2,"113":3,"114":2,"115":6,"116":10,"118":1,"119":1,"120":3,"121":3,"125":2,"126":3,"127":6,"128":6,"129":10,"130":2,"131":3,"132":5,"133":1,"134":1,"135":4,"136":3,"137":6,"139":1,"140":2,"141":3,"144":3,"148":1,"149":1,"150":1,"152":1,"155":1,"163":3,"164":1,"175":1,"176":3,"178":2,"180":1,"183":1,"185":1,"187":2,"189":3,"190":1,"191":1,"192":1,"193":2,"194":1,"195":2,"198":1,"201":4,"202":2,"203":4,"204":1,"205":2,"206":2,"207":6,"208":7,"209":6,"210":1,"211":1,"212":1,"214":11,"215":3,"216":5,"217":5,"219":1,"220":1,"221":1,"222":5,"223":1,"224":5,"225":3,"227":3,"228":3,"230":3}}],["termination",{"2":{"223":1}}],["tertiary",{"2":{"209":2}}],["text",{"2":{"130":1}}],["tempted",{"2":{"216":1}}],["tempting",{"2":{"206":1}}],["temporary",{"2":{"122":1,"162":1,"187":1}}],["template",{"2":{"14":2}}],["te",{"2":{"18":1}}],["testcases",{"2":{"210":1}}],["testbot",{"2":{"207":1,"208":3,"211":2}}],["testing",{"2":{"9":1,"70":2,"199":1,"212":1,"216":1}}],["testpath",{"2":{"7":1}}],["testsuite",{"0":{"199":1},"1":{"200":1,"201":1,"202":1,"203":1,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1,"211":1,"212":1,"213":1,"214":1,"215":1,"216":1,"217":1,"218":1},"2":{"199":1,"205":1}}],["tests",{"0":{"191":1,"200":1,"204":1,"207":1,"215":1},"1":{"201":1,"202":1,"203":1,"204":1,"216":1,"217":1,"218":1},"2":{"0":1,"1":1,"3":3,"5":1,"9":1,"199":1,"201":3,"203":3,"204":4,"205":1,"207":2,"215":4,"216":1}}],["test",{"0":{"201":1,"202":1,"203":1,"206":1,"209":1,"216":1},"2":{"0":1,"1":1,"2":1,"5":1,"6":2,"7":6,"9":4,"173":1,"191":7,"200":1,"201":2,"202":4,"203":4,"205":1,"206":1,"212":1,"216":4,"217":3}}],["technical",{"2":{"0":1}}],["thought",{"2":{"116":1}}],["though",{"2":{"48":1,"116":1,"216":1}}],["those",{"2":{"9":1,"55":1,"209":1}}],["th",{"2":{"30":4,"86":4}}],["things",{"2":{"115":1}}],["thing",{"2":{"24":1}}],["think",{"2":{"13":1,"38":2,"203":1}}],["this",{"2":{"0":1,"5":1,"6":1,"7":1,"11":1,"12":2,"13":1,"17":2,"21":1,"24":1,"27":1,"29":3,"30":1,"32":5,"33":1,"35":1,"36":1,"37":1,"38":11,"42":1,"46":2,"53":1,"72":1,"73":9,"76":1,"77":4,"79":2,"82":1,"85":2,"87":1,"91":1,"92":2,"94":1,"97":1,"110":1,"112":1,"113":1,"114":1,"115":2,"116":3,"118":1,"119":1,"120":2,"121":1,"122":3,"125":1,"126":2,"127":2,"128":3,"129":11,"130":1,"131":2,"132":6,"134":1,"136":1,"137":1,"162":1,"163":1,"164":1,"173":1,"176":1,"180":1,"183":2,"187":1,"202":1,"203":3,"205":1,"207":1,"214":1,"215":2,"216":3,"225":1,"230":1}}],["throws",{"2":{"202":1}}],["throw",{"2":{"80":1,"89":1,"92":1,"95":1,"98":1}}],["through",{"2":{"12":1,"40":1,"48":1,"69":1,"72":1,"100":1,"139":1}}],["threshold",{"2":{"223":2}}],["three",{"2":{"18":1,"25":1,"28":1,"34":1,"41":1,"136":1,"197":1}}],["threads",{"2":{"220":2}}],["thread",{"2":{"11":1}}],["thus",{"2":{"9":3,"110":1}}],["that",{"2":{"3":8,"7":2,"9":2,"12":1,"13":1,"15":1,"17":1,"24":3,"27":1,"29":1,"30":2,"32":4,"33":1,"35":1,"36":2,"38":7,"46":1,"48":2,"51":4,"53":1,"61":1,"64":1,"68":1,"72":2,"73":5,"79":1,"82":1,"86":2,"87":2,"92":3,"93":1,"95":1,"96":1,"97":2,"113":2,"114":1,"115":1,"116":4,"118":1,"119":1,"120":4,"121":1,"122":2,"125":1,"127":1,"128":1,"129":2,"132":2,"134":2,"135":1,"138":1,"183":3,"189":1,"192":1,"195":1,"198":1,"202":1,"205":1,"207":1,"208":2,"214":3,"215":3,"216":2,"219":1,"230":1}}],["than",{"2":{"3":1,"15":1,"33":1,"38":1,"77":1,"82":1,"93":1,"116":1,"196":1,"202":1,"215":1,"224":1,"225":1}}],["their",{"2":{"189":1,"202":1,"203":1,"215":1}}],["them",{"2":{"73":2,"119":1,"125":1,"189":2,"195":1,"201":1,"214":2,"228":1}}],["these",{"2":{"14":1,"32":1,"73":2,"92":1,"111":1,"116":1,"130":1,"133":1,"189":1,"210":1,"220":1}}],["then",{"2":{"13":1,"29":1,"115":3,"127":2,"128":1,"135":2,"137":2,"185":1,"187":1,"195":1,"203":1,"204":1,"214":1,"215":1,"220":1,"227":1}}],["therefore",{"2":{"180":1}}],["there",{"2":{"4":1,"27":1,"46":2,"48":2,"61":1,"64":1,"73":1,"116":3,"127":2,"138":1,"202":1,"203":1,"217":1,"231":1}}],["they",{"2":{"3":1,"32":1,"36":1,"48":1,"87":1,"90":1,"114":1,"119":1,"136":1,"159":1,"173":1,"180":1,"201":1,"222":1}}],["the",{"0":{"112":1,"134":2,"206":1,"216":2},"2":{"0":3,"1":1,"2":3,"3":8,"4":2,"5":3,"6":4,"7":11,"8":1,"9":12,"10":4,"12":13,"13":5,"14":4,"15":1,"16":1,"17":23,"18":1,"20":10,"21":4,"24":10,"27":11,"29":16,"30":13,"32":35,"33":26,"34":2,"35":10,"36":6,"38":29,"40":15,"42":11,"44":18,"46":34,"48":69,"49":8,"51":40,"53":13,"55":3,"56":3,"58":2,"59":2,"60":2,"61":33,"62":2,"63":3,"64":33,"65":1,"68":4,"72":5,"73":15,"74":2,"75":4,"76":5,"77":10,"78":2,"79":16,"81":3,"82":12,"83":3,"84":1,"85":24,"86":8,"87":4,"89":1,"90":5,"91":10,"92":13,"93":6,"94":12,"95":6,"97":10,"104":1,"110":3,"111":4,"112":3,"113":3,"114":3,"115":19,"116":25,"118":3,"119":3,"120":18,"121":5,"122":4,"123":1,"124":1,"125":5,"126":3,"127":6,"128":6,"129":23,"130":10,"131":9,"132":38,"134":29,"135":9,"136":7,"137":5,"138":1,"139":2,"140":3,"141":1,"143":1,"147":1,"149":1,"151":2,"160":1,"162":4,"163":3,"164":1,"166":1,"168":1,"169":1,"173":3,"174":5,"175":2,"176":2,"177":3,"178":3,"180":3,"181":1,"183":10,"184":3,"185":1,"187":7,"188":6,"189":2,"190":4,"191":5,"192":8,"193":4,"194":5,"195":10,"196":4,"197":4,"198":3,"199":1,"201":3,"202":2,"203":3,"204":2,"205":1,"206":2,"207":10,"208":12,"209":4,"210":1,"211":10,"212":3,"213":2,"214":17,"215":13,"216":18,"217":7,"218":2,"219":1,"220":3,"221":1,"222":9,"223":5,"225":1,"226":2,"228":1,"230":4,"232":3,"233":1,"234":2}}],["dll",{"2":{"189":6}}],["dlls",{"2":{"189":1}}],["dylibs",{"2":{"189":1}}],["dvcpkg",{"2":{"183":1,"187":1,"192":1}}],["dcmake",{"2":{"183":1,"187":1,"192":1}}],["d",{"2":{"134":1,"207":2,"208":6,"209":8,"211":4,"214":2,"216":3,"222":1}}],["dump",{"2":{"222":1}}],["duplicates",{"2":{"150":1}}],["due",{"2":{"116":1}}],["durationisvalid",{"2":{"138":1}}],["duration|distance|duration",{"2":{"29":1}}],["durations",{"2":{"29":2,"30":2,"31":1,"42":1,"68":4,"86":4,"212":1,"230":1}}],["duration",{"2":{"27":1,"29":5,"30":6,"32":1,"33":1,"38":3,"40":1,"41":4,"42":1,"43":2,"44":4,"45":1,"46":1,"47":1,"79":1,"84":1,"85":5,"91":1,"94":1,"116":1,"120":1,"122":2,"127":2,"128":6,"129":2,"131":3,"132":3,"135":1,"137":1,"143":1,"144":1,"145":2,"146":3,"151":1,"159":1,"212":1}}],["during",{"2":{"13":1,"40":1,"120":1,"132":4,"134":2,"135":2,"210":1,"222":1,"223":1}}],["date",{"2":{"166":1,"203":1}}],["datum",{"2":{"137":2}}],["datasource",{"2":{"38":1,"43":1,"44":2,"45":1,"221":1}}],["datasources",{"2":{"27":1,"32":1,"33":1,"43":1,"44":1,"45":1,"79":1,"91":1,"94":1,"144":1}}],["datasets",{"2":{"171":1,"172":1,"230":2}}],["dataset",{"2":{"20":1,"76":3,"77":6,"140":1,"141":4,"203":6,"222":1,"226":1,"227":1,"228":4,"230":6}}],["datastructures",{"2":{"12":1}}],["datastore|directly|mmap",{"2":{"9":2}}],["datastore",{"0":{"230":1},"2":{"2":1,"3":2,"7":2,"9":3,"77":5,"140":1,"141":2,"160":1,"191":2,"228":1,"230":1}}],["data",{"0":{"21":1,"137":1,"228":1},"2":{"2":2,"3":3,"7":1,"12":4,"14":4,"17":2,"21":2,"22":1,"36":1,"38":2,"44":2,"46":2,"53":1,"55":1,"76":2,"79":1,"87":1,"112":3,"113":2,"114":1,"115":3,"120":2,"131":4,"137":6,"140":2,"153":1,"160":6,"191":5,"203":3,"209":4,"218":1,"219":2,"222":4,"224":1,"228":2}}],["dart",{"2":{"55":1}}],["doubt",{"2":{"218":1}}],["double",{"2":{"17":1,"29":2,"32":1,"79":1,"82":1,"85":1,"91":1,"94":1,"134":1}}],["download",{"2":{"195":1}}],["downloads",{"2":{"194":1}}],["downtime",{"2":{"163":1}}],["downtown",{"2":{"37":1}}],["down",{"2":{"73":1,"122":1}}],["dont",{"2":{"202":1}}],["don",{"0":{"213":1,"216":1},"2":{"17":1,"73":3,"79":1,"131":1,"225":1}}],["done",{"2":{"7":1,"115":1,"118":1,"221":1}}],["doesn",{"2":{"116":1}}],["does",{"2":{"17":1,"33":1,"44":2,"48":1,"61":1,"64":1,"73":1,"79":1,"93":1,"132":2,"134":1,"135":1,"187":1,"190":1,"208":1,"217":1}}],["do",{"2":{"10":1,"12":1,"13":1,"17":1,"72":1,"79":2,"110":1,"115":1,"120":1,"128":2,"202":2,"221":1}}],["docker",{"2":{"162":1,"192":2}}],["docs",{"2":{"0":1,"173":1,"200":1}}],["documentation",{"0":{"70":1},"2":{"0":1,"40":1,"72":1,"76":1,"101":1,"103":1,"105":1,"107":1,"109":1,"193":1,"205":1}}],["denable",{"2":{"234":1}}],["denote",{"2":{"51":1}}],["demo",{"2":{"203":1}}],["december",{"2":{"166":1}}],["decide",{"2":{"136":1}}],["decision",{"2":{"136":1}}],["decisions",{"2":{"13":2,"215":1}}],["deciseconds",{"2":{"132":1}}],["decimal",{"2":{"44":1,"79":1,"82":1,"85":1,"91":1,"94":1,"120":1}}],["delvewheel",{"2":{"189":5}}],["delocate",{"2":{"189":4}}],["delete",{"2":{"187":1}}],["deliveries",{"2":{"129":1}}],["delay",{"2":{"121":2,"122":1}}],["dedicated",{"2":{"49":2,"63":2}}],["deploy",{"2":{"221":1}}],["deployment",{"2":{"220":1}}],["deprecated",{"2":{"48":2,"77":1,"97":1,"141":1,"173":1}}],["departure",{"2":{"48":2,"61":1,"64":1}}],["depart",{"2":{"48":4,"51":1,"61":1,"64":1,"207":2,"208":4,"209":4,"216":2}}],["dependency",{"2":{"234":1}}],["dependencies",{"0":{"232":1},"2":{"181":1,"184":1,"185":1,"189":4,"232":1}}],["dependent",{"2":{"20":2,"24":1,"27":1,"30":1,"32":1,"35":1,"203":1,"222":3}}],["depending",{"2":{"38":2,"40":2,"46":1,"48":2,"61":1,"64":1,"115":1}}],["depends",{"2":{"27":1,"42":2,"48":1,"79":1,"211":1,"213":1}}],["detect",{"2":{"187":1}}],["determining",{"2":{"76":1,"119":1,"120":1}}],["determines",{"2":{"120":4}}],["determine",{"2":{"32":1,"115":1,"121":1}}],["determined",{"2":{"17":2}}],["detailed",{"2":{"57":1}}],["details",{"2":{"32":1,"42":1,"76":1}}],["dev",{"2":{"181":2}}],["deviation",{"2":{"32":1,"91":1}}],["development",{"0":{"179":1,"181":1,"187":1},"1":{"180":1,"181":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"195":1,"196":1,"197":1,"198":1},"2":{"69":1,"70":1,"174":1,"190":1,"232":1,"233":1}}],["developing",{"0":{"10":1},"1":{"11":1,"12":1,"13":1,"14":1},"2":{"70":1}}],["developer",{"2":{"3":1}}],["der",{"2":{"31":2}}],["derived",{"2":{"222":1}}],["derive",{"2":{"17":1,"73":1}}],["degrees",{"2":{"17":1,"38":1,"79":2,"82":2,"85":2,"91":2,"94":2,"132":3,"155":1,"216":1}}],["desktop",{"2":{"233":1}}],["deserialization",{"2":{"55":1}}],["destination=last",{"2":{"34":1}}],["destination=any",{"2":{"33":1}}],["destination=",{"2":{"33":1,"151":1}}],["destination",{"2":{"29":2,"30":2,"33":5,"48":2,"61":1,"64":1,"85":1,"93":2,"94":1,"95":1,"119":2,"146":1,"152":1}}],["destinations=",{"2":{"145":1}}],["destinations=2",{"2":{"30":1}}],["destinations=5",{"2":{"29":1}}],["destinations",{"2":{"29":4,"30":2,"31":1,"46":3,"68":4,"73":3,"85":1,"86":4,"129":2,"146":1}}],["descending",{"2":{"27":1,"80":2}}],["descriptors",{"2":{"55":2}}],["description",{"2":{"4":1,"17":2,"20":1,"24":1,"27":2,"29":1,"30":1,"32":2,"33":1,"35":1,"38":2,"40":1,"48":3,"49":1,"56":1,"61":1,"63":1,"64":1,"72":1,"121":1,"129":1,"220":1,"222":1,"223":1,"224":1,"225":1,"227":1,"228":1,"229":1,"230":1}}],["describing",{"2":{"30":2,"42":1,"48":1,"51":1,"86":2}}],["described",{"2":{"36":1,"55":1,"97":1,"219":1}}],["describe",{"2":{"11":1,"51":1,"53":1,"108":1}}],["describes",{"2":{"0":1,"48":4,"61":4,"64":4,"110":1}}],["desired",{"2":{"14":1}}],["debug",{"2":{"11":1,"12":4,"13":1,"14":5,"38":1,"217":1,"220":1}}],["debugging",{"0":{"10":1,"11":1},"1":{"11":1,"12":1,"13":1,"14":1},"2":{"12":1,"14":1,"217":1,"222":1}}],["dealing",{"2":{"7":1}}],["definitions",{"2":{"209":5}}],["definition",{"2":{"132":2,"134":1}}],["defines",{"2":{"119":2}}],["define",{"2":{"114":1,"115":5,"202":1}}],["defined",{"2":{"3":1,"77":1,"115":2,"118":1,"129":2,"132":8,"134":4,"138":1,"214":1}}],["defaults",{"2":{"7":2,"17":1,"127":1,"128":1,"176":1,"190":1}}],["default",{"2":{"6":1,"7":2,"12":1,"17":10,"24":1,"27":9,"29":4,"32":8,"33":8,"44":2,"55":1,"76":1,"77":12,"79":13,"82":6,"85":9,"91":10,"94":12,"97":2,"120":6,"132":6,"134":3,"140":1,"141":4,"144":5,"146":4,"148":1,"150":2,"152":3,"155":4,"187":1,"192":1,"220":2,"222":1,"223":1,"224":1,"225":1,"227":1,"228":1,"229":3,"230":1}}],["difficulty",{"2":{"215":1}}],["differences",{"2":{"68":1,"115":1}}],["difference",{"2":{"68":1,"136":1,"202":1}}],["different",{"2":{"14":1,"55":1,"58":2,"59":1,"60":2,"61":3,"62":1,"64":1,"110":1,"112":1,"115":1,"116":4,"125":1,"126":1,"131":4,"216":1}}],["differ",{"2":{"38":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"187":1}}],["dict",{"2":{"142":1,"159":1}}],["dispatched",{"2":{"195":1}}],["dispatch",{"2":{"195":1}}],["display",{"2":{"91":1}}],["displayed",{"2":{"27":1,"32":1,"33":1,"40":1,"79":1}}],["distinction",{"2":{"216":1}}],["distribution",{"2":{"189":1}}],["dist",{"2":{"188":3,"189":11,"195":1}}],["distances",{"2":{"29":5,"30":2,"31":1,"42":1,"68":1,"86":4,"212":1}}],["distance",{"2":{"24":1,"26":3,"27":1,"29":5,"30":3,"32":1,"33":1,"40":2,"41":3,"42":2,"43":2,"44":3,"45":1,"46":3,"47":1,"53":2,"54":1,"77":2,"79":1,"83":3,"84":1,"85":5,"91":1,"94":1,"104":1,"116":1,"131":1,"134":1,"140":1,"141":1,"144":1,"145":2,"146":1,"159":1}}],["discards",{"2":{"187":1}}],["discovered",{"2":{"211":1}}],["discovery",{"2":{"211":1,"213":2}}],["discover",{"2":{"136":1,"209":1}}],["discouraged",{"2":{"7":1}}],["disabling",{"2":{"79":1,"91":1,"94":1}}],["disables",{"2":{"77":1}}],["disable",{"0":{"164":1},"2":{"77":1,"164":1,"222":2,"228":1,"230":1}}],["disabled",{"2":{"20":1,"217":1,"224":2,"225":2}}],["disableddataset",{"2":{"20":1}}],["disk",{"2":{"77":2,"97":1,"222":1}}],["died",{"2":{"7":1}}],["dir=",{"2":{"192":1}}],["dir",{"0":{"162":1},"2":{"7":1,"162":1,"190":1}}],["directions",{"0":{"209":1},"2":{"122":1,"129":3,"209":1}}],["direction",{"0":{"124":1},"2":{"17":2,"38":1,"48":16,"51":3,"61":9,"64":9,"79":2,"82":2,"85":2,"91":1,"94":2,"115":1,"122":5,"126":1,"129":3,"215":1}}],["directory",{"2":{"6":1,"7":4,"12":1,"55":1,"72":1,"111":1,"162":3,"187":4,"188":1,"201":1}}],["directly",{"2":{"2":1,"3":2,"36":1,"87":1,"119":1}}],["dijkstra",{"2":{"2":1,"223":1,"228":1}}],["drives",{"2":{"194":1}}],["driven",{"2":{"194":1,"199":1}}],["drive",{"2":{"120":1}}],["driving",{"2":{"18":3,"25":1,"28":1,"30":6,"34":2,"46":2,"47":1,"48":1,"51":1,"61":3,"64":1,"120":1,"132":1}}],["dr",{"0":{"1":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/docs/v26.5.0/assets/chunks/@localSearchIndexroot.D9qikBrG.js b/docs/v26.5.0/assets/chunks/@localSearchIndexroot.D9qikBrG.js deleted file mode 100644 index 46a8f27..0000000 --- a/docs/v26.5.0/assets/chunks/@localSearchIndexroot.D9qikBrG.js +++ /dev/null @@ -1 +0,0 @@ -const e='{"documentCount":235,"nextId":235,"documentIds":{"0":"/cucumber#cucumber","1":"/cucumber#tl-dr","2":"/cucumber#single-osrm-configuration","3":"/cucumber#profiles","4":"/cucumber#arguments","5":"/cucumber#all-osrm-configurations","6":"/cucumber#cache","7":"/cucumber#configuration","8":"/cucumber#other-environment-variables","9":"/cucumber#tags","10":"/developing#developing-debugging-guidance-code","11":"/developing#how-to-use-geojson-debugging","12":"/developing#outputting-into-a-single-file","13":"/developing#possible-scopeguard-location","14":"/developing#limitations","15":"/#getting-started","16":"/#documentation","17":"/#resources","18":"/http#osrm-http-server","19":"/http#general-options","20":"/http#requests","21":"/http#example-requests","22":"/http#responses","23":"/http#code","24":"/http#data-version","25":"/http#example-response","26":"/http#services","27":"/http#nearest-service","28":"/http#example-requests-1","29":"/http#example-response-1","30":"/http#route-service","31":"/http#example-request","32":"/http#table-service","33":"/http#example-request-1","34":"/http#example-response-2","35":"/http#match-service","36":"/http#trip-service","37":"/http#example-requests-2","38":"/http#response","39":"/http#tile-service","40":"/http#example-request-2","41":"/http#example-response-3","42":"/http#result-objects","43":"/http#route-object","44":"/http#example","45":"/http#routeleg-object","46":"/http#example-1","47":"/http#annotation-object","48":"/http#example-2","49":"/http#routestep-object","50":"/http#example-3","51":"/http#stepmaneuver-object","52":"/http#lane-object","53":"/http#example-4","54":"/http#intersection-object","55":"/http#example-5","56":"/http#waypoint-object","57":"/http#example-6","58":"/http#flatbuffers-format","59":"/http#root-object","60":"/http#error-object","61":"/http#waypoint-object-1","62":"/http#routeobject-object","63":"/http#leg-object","64":"/http#step-object","65":"/http#intersection-object-1","66":"/http#lane-object-1","67":"/http#stepmaneuver-object-1","68":"/http#annotation-object-1","69":"/http#position-object","70":"/http#uint64pair","71":"/http#table-object","72":"/libosrm#introduction","73":"/libosrm#important-interface-objects","74":"/libosrm#example","75":"/libosrm#workflow","76":"/nodejs/api#osrm","77":"/nodejs/api#parameters","78":"/nodejs/api#route","79":"/nodejs/api#parameters-1","80":"/nodejs/api#examples","81":"/nodejs/api#nearest","82":"/nodejs/api#parameters-2","83":"/nodejs/api#examples-1","84":"/nodejs/api#table","85":"/nodejs/api#parameters-3","86":"/nodejs/api#examples-2","87":"/nodejs/api#tile","88":"/nodejs/api#parameters-4","89":"/nodejs/api#examples-3","90":"/nodejs/api#match","91":"/nodejs/api#parameters-5","92":"/nodejs/api#examples-4","93":"/nodejs/api#trip","94":"/nodejs/api#parameters-6","95":"/nodejs/api#examples-5","96":"/nodejs/api#configuration","97":"/nodejs/api#parameters-7","98":"/nodejs/api#examples-6","99":"/nodejs/api#responses","100":"/nodejs/api#route-1","101":"/nodejs/api#parameters-8","102":"/nodejs/api#routeleg","103":"/nodejs/api#parameters-9","104":"/nodejs/api#routestep","105":"/nodejs/api#parameters-10","106":"/nodejs/api#stepmaneuver","107":"/nodejs/api#parameters-11","108":"/nodejs/api#waypoint","109":"/nodejs/api#parameters-12","110":"/python/api#python-api","111":"/python/api#osrm","112":"/python/api#parameters","113":"/python/api#services","114":"/python/api#route","115":"/python/api#routeparameters","116":"/python/api#table","117":"/python/api#tableparameters","118":"/python/api#nearest","119":"/python/api#nearestparameters","120":"/python/api#match","121":"/python/api#matchparameters","122":"/python/api#trip","123":"/python/api#tripparameters","124":"/python/api#tile","125":"/python/api#tileparameters","126":"/python/api#baseparameters","127":"/python/api#types","128":"/python/api#coordinate","129":"/python/api#bearing","130":"/python/api#object-array","131":"/python/api#cli","132":"/python/development#python-bindings-development-guide","133":"/python/development#installing-for-production","134":"/python/development#installing-for-development","135":"/python/development#platform-specific-build-requirements","136":"/python/development#linux","137":"/python/development#macos","138":"/python/development#windows","139":"/python/development#building-locally","140":"/python/development#editable-install-recommended-for-development","141":"/python/development#building-a-wheel","142":"/python/development#wheel-repair","143":"/python/development#compiler-cache","144":"/python/development#running-tests","145":"/python/development#running-cibuildwheel-locally","146":"/python/development#type-stubs","147":"/python/development#releasing","148":"/python/development#scheduled-monthly-release","149":"/python/development#manual-release","150":"/python/development#verification","151":"/python/development#version-mechanics","152":"/profiles#osrm-profiles","153":"/profiles#available-profiles","154":"/profiles#using-multiple-profiles-with-the-same-input","155":"/profiles#processing-flow","156":"/profiles#profiles-are-written-in-lua","157":"/profiles#basic-structure-of-profiles","158":"/profiles#understanding-speed-weight-and-rate","159":"/profiles#elements","160":"/profiles#api-version","161":"/profiles#library-files","162":"/profiles#setup","163":"/profiles#process-node-profile-node-result-relations","164":"/profiles#obstacle","165":"/profiles#obstacle-type","166":"/profiles#obstacle-direction","167":"/profiles#obstacle-map","168":"/profiles#obstacle-map-add-node-obstacle","169":"/profiles#obstacle-map-any-from-to-type","170":"/profiles#obstacle-map-get-from-to-type","171":"/profiles#process-way-profile-way-result-relations","172":"/profiles#way-names","173":"/profiles#process-segment-profile-segment","174":"/profiles#process-turn-profile-turn","175":"/profiles#from-via-and-to","176":"/profiles#source-road-target-road-roads-on-the-right-and-roads-on-the-left","177":"/profiles#highway-turn-classification-and-access-turn-classification","178":"/profiles#guidance","179":"/profiles#using-raster-data","180":"/profiles#helper-functions","181":"/releasing#releasing-a-new-osrm-version","182":"/releasing#version-history","183":"/releasing#versioning-scheme","184":"/releasing#format","185":"/releasing#examples","186":"/releasing#release-compatibility-guarantees","187":"/releasing#patch-version-change-new-patchlevel-in-same-month","188":"/releasing#month-change-new-yyyy-mm","189":"/releasing#conventional-commits","190":"/releasing#release-management","191":"/releasing#automated-release-process","192":"/releasing#manual-release-trigger","193":"/releasing#release-checklist","194":"/releasing#after-release","195":"/routed#environment-variables","196":"/routed#shm-lock-dir","197":"/routed#signal-parent-when-ready","198":"/routed#disable-access-logging","199":"/testing#testsuite","200":"/testing#unit-tests","201":"/testing#separate-test-binaries","202":"/testing#using-boost-test-primitives","203":"/testing#test-fixture","204":"/testing#running-tests","205":"/testing#cucumber","206":"/testing#test-the-feature","207":"/testing#write-tests-to-scale","208":"/testing#use-names","209":"/testing#test-all-directions","210":"/testing#prevent-randomness","211":"/testing#use-waypoints","212":"/testing#allow-for-small-offsets","213":"/testing#don-t-rely-on-alternatives","214":"/testing#understanding-turn-restrictions","215":"/testing#my-guidance-tests-are-failing-understanding-what-you-can-change","216":"/testing#don-t-change-the-test-change-the-expected-behaviour","217":"/testing#consider-post-processing-impacts","218":"/testing#use-caution","219":"/tools#command-line-tools","220":"/tools#common-options","221":"/tools#list-inputs","222":"/tools#osrm-extract","223":"/tools#osrm-partition","224":"/tools#osrm-customize","225":"/tools#osrm-contract","226":"/tools#osrm-routed","227":"/tools#server","228":"/tools#data-loading","229":"/tools#query-limits","230":"/tools#osrm-datastore","231":"/windows-deps#building-osrm-for-windows","232":"/windows-deps#dependencies","233":"/windows-deps#prerequisites","234":"/windows-deps#building"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,25],"1":[2,1,9],"2":[3,1,53],"3":[1,4,84],"4":[1,4,42],"5":[3,1,30],"6":[1,1,36],"7":[1,1,111],"8":[3,2,29],"9":[1,1,80],"10":[4,1,46],"11":[5,4,20],"12":[5,4,120],"13":[3,9,84],"14":[1,4,73],"15":[2,1,25],"16":[1,1,14],"17":[1,1,7],"18":[3,1,33],"19":[2,3,19],"20":[1,5,218],"21":[2,6,39],"22":[1,5,1],"23":[1,6,88],"24":[2,6,38],"25":[2,6,14],"26":[1,3,1],"27":[2,4,104],"28":[2,6,32],"29":[2,6,33],"30":[2,4,168],"31":[2,6,31],"32":[2,4,133],"33":[2,6,139],"34":[2,6,57],"35":[2,4,282],"36":[2,4,169],"37":[2,6,38],"38":[1,6,71],"39":[2,4,78],"40":[2,6,23],"41":[2,6,204],"42":[2,3,1],"43":[2,5,72],"44":[1,7,28],"45":[2,5,76],"46":[1,7,35],"47":[2,5,85],"48":[1,7,25],"49":[2,5,121],"50":[1,7,50],"51":[2,5,224],"52":[2,5,77],"53":[1,7,7],"54":[2,5,136],"55":[1,7,27],"56":[2,5,67],"57":[1,7,15],"58":[2,3,71],"59":[2,5,82],"60":[2,5,10],"61":[2,5,21],"62":[2,5,34],"63":[2,5,23],"64":[2,5,166],"65":[2,5,26],"66":[2,5,54],"67":[2,5,155],"68":[2,5,8],"69":[2,5,11],"70":[1,5,18],"71":[2,5,60],"72":[1,1,65],"73":[3,1,207],"74":[1,1,8],"75":[1,1,25],"76":[1,1,81],"77":[1,1,121],"78":[1,1,15],"79":[1,2,223],"80":[1,2,44],"81":[1,1,24],"82":[1,2,126],"83":[1,2,52],"84":[1,1,17],"85":[1,2,165],"86":[1,2,78],"87":[1,1,53],"88":[1,2,33],"89":[1,2,29],"90":[1,1,53],"91":[1,2,187],"92":[1,2,110],"93":[1,1,71],"94":[1,2,153],"95":[1,2,66],"96":[1,1,17],"97":[1,1,79],"98":[1,1,29],"99":[1,1,1],"100":[1,1,8],"101":[1,2,6],"102":[1,1,7],"103":[1,2,6],"104":[1,1,22],"105":[1,2,6],"106":[1,1,1],"107":[1,2,6],"108":[1,1,9],"109":[1,2,6],"110":[2,1,19],"111":[1,2,55],"112":[1,3,64],"113":[1,3,23],"114":[1,2,34],"115":[1,3,63],"116":[1,2,30],"117":[1,3,41],"118":[1,2,25],"119":[1,3,15],"120":[1,2,37],"121":[1,3,34],"122":[1,2,35],"123":[1,3,21],"124":[1,2,22],"125":[1,3,9],"126":[1,2,65],"127":[1,2,1],"128":[1,3,13],"129":[1,3,10],"130":[2,3,36],"131":[1,2,28],"132":[4,1,1],"133":[3,4,71],"134":[3,4,29],"135":[4,4,1],"136":[1,8,116],"137":[1,8,49],"138":[1,8,43],"139":[2,4,1],"140":[6,6,133],"141":[3,6,41],"142":[2,6,111],"143":[2,6,47],"144":[2,4,37],"145":[3,4,130],"146":[2,4,53],"147":[1,4,35],"148":[3,5,98],"149":[2,5,38],"150":[1,5,40],"151":[2,5,38],"152":[2,1,66],"153":[2,2,51],"154":[7,3,35],"155":[2,2,45],"156":[5,2,43],"157":[4,2,134],"158":[5,2,146],"159":[1,2,1],"160":[2,3,35],"161":[2,3,77],"162":[2,3,179],"163":[6,3,70],"164":[1,3,83],"165":[2,4,23],"166":[2,4,12],"167":[2,3,53],"168":[5,5,70],"169":[7,5,75],"170":[7,5,78],"171":[6,3,219],"172":[2,3,91],"173":[4,3,116],"174":[4,3,143],"175":[4,7,12],"176":[9,7,124],"177":[5,7,66],"178":[1,2,83],"179":[3,3,112],"180":[2,3,21],"181":[5,1,46],"182":[2,5,57],"183":[2,5,1],"184":[1,7,42],"185":[1,7,26],"186":[3,5,1],"187":[9,8,18],"188":[6,8,37],"189":[2,5,52],"190":[2,5,47],"191":[3,5,67],"192":[3,5,60],"193":[2,5,51],"194":[2,5,43],"195":[2,1,1],"196":[3,2,42],"197":[4,2,44],"198":[3,2,29],"199":[1,1,21],"200":[2,1,13],"201":[3,3,33],"202":[4,3,78],"203":[2,3,66],"204":[2,3,23],"205":[1,1,31],"206":[3,2,39],"207":[4,2,106],"208":[2,2,92],"209":[3,2,97],"210":[2,2,21],"211":[2,4,78],"212":[4,4,39],"213":[5,4,25],"214":[3,2,111],"215":[10,1,90],"216":[7,11,126],"217":[4,11,96],"218":[2,11,34],"219":[3,1,35],"220":[2,3,58],"221":[3,5,40],"222":[2,3,124],"223":[2,3,93],"224":[2,3,84],"225":[2,3,84],"226":[2,3,19],"227":[1,5,44],"228":[2,5,59],"229":[2,5,49],"230":[2,3,102],"231":[4,1,10],"232":[1,4,43],"233":[1,4,29],"234":[1,4,42]},"averageFieldLength":[2.153191489361703,3.574468085106383,58.50212765957448],"storedFields":{"0":{"title":"Cucumber","titles":[]},"1":{"title":"tl;dr","titles":["Cucumber"]},"2":{"title":"Single OSRM Configuration","titles":["Cucumber"]},"3":{"title":"Profiles","titles":["Cucumber","Single OSRM Configuration"]},"4":{"title":"Arguments","titles":["Cucumber","Single OSRM Configuration"]},"5":{"title":"All OSRM Configurations","titles":["Cucumber"]},"6":{"title":"Cache","titles":["Cucumber"]},"7":{"title":"Configuration","titles":["Cucumber"]},"8":{"title":"Other environment variables","titles":["Cucumber","Configuration"]},"9":{"title":"Tags","titles":["Cucumber"]},"10":{"title":"Developing / Debugging guidance code","titles":[]},"11":{"title":"How to use GeoJson-Debugging","titles":["Developing / Debugging guidance code"]},"12":{"title":"Outputting into a single file","titles":["Developing / Debugging guidance code"]},"13":{"title":"Possible Scopeguard Location","titles":["Developing / Debugging guidance code","Outputting into a single file"]},"14":{"title":"Limitations","titles":["Developing / Debugging guidance code"]},"15":{"title":"Getting Started","titles":[]},"16":{"title":"Documentation","titles":[]},"17":{"title":"Resources","titles":[]},"18":{"title":"OSRM HTTP server","titles":[]},"19":{"title":"General options","titles":["OSRM HTTP server"]},"20":{"title":"Requests","titles":["OSRM HTTP server","General options"]},"21":{"title":"Example Requests","titles":["OSRM HTTP server","General options","Requests"]},"22":{"title":"Responses","titles":["OSRM HTTP server","General options"]},"23":{"title":"Code","titles":["OSRM HTTP server","General options","Responses"]},"24":{"title":"Data version","titles":["OSRM HTTP server","General options","Responses"]},"25":{"title":"Example response","titles":["OSRM HTTP server","General options","Responses"]},"26":{"title":"Services","titles":["OSRM HTTP server"]},"27":{"title":"Nearest service","titles":["OSRM HTTP server","Services"]},"28":{"title":"Example Requests","titles":["OSRM HTTP server","Services","Nearest service"]},"29":{"title":"Example Response","titles":["OSRM HTTP server","Services","Nearest service"]},"30":{"title":"Route service","titles":["OSRM HTTP server","Services"]},"31":{"title":"Example Request","titles":["OSRM HTTP server","Services","Route service"]},"32":{"title":"Table service","titles":["OSRM HTTP server","Services"]},"33":{"title":"Example Request","titles":["OSRM HTTP server","Services","Table service"]},"34":{"title":"Example Response","titles":["OSRM HTTP server","Services","Table service"]},"35":{"title":"Match service","titles":["OSRM HTTP server","Services"]},"36":{"title":"Trip service","titles":["OSRM HTTP server","Services"]},"37":{"title":"Example Requests","titles":["OSRM HTTP server","Services","Trip service"]},"38":{"title":"Response","titles":["OSRM HTTP server","Services","Trip service"]},"39":{"title":"Tile service","titles":["OSRM HTTP server","Services"]},"40":{"title":"Example request","titles":["OSRM HTTP server","Services","Tile service"]},"41":{"title":"Example response","titles":["OSRM HTTP server","Services","Tile service"]},"42":{"title":"Result objects","titles":["OSRM HTTP server"]},"43":{"title":"Route object","titles":["OSRM HTTP server","Result objects"]},"44":{"title":"Example","titles":["OSRM HTTP server","Result objects","Route object"]},"45":{"title":"RouteLeg object","titles":["OSRM HTTP server","Result objects"]},"46":{"title":"Example","titles":["OSRM HTTP server","Result objects","RouteLeg object"]},"47":{"title":"Annotation object","titles":["OSRM HTTP server","Result objects"]},"48":{"title":"Example","titles":["OSRM HTTP server","Result objects","Annotation object"]},"49":{"title":"RouteStep object","titles":["OSRM HTTP server","Result objects"]},"50":{"title":"Example","titles":["OSRM HTTP server","Result objects","RouteStep object"]},"51":{"title":"StepManeuver object","titles":["OSRM HTTP server","Result objects"]},"52":{"title":"Lane object","titles":["OSRM HTTP server","Result objects"]},"53":{"title":"Example","titles":["OSRM HTTP server","Result objects","Lane object"]},"54":{"title":"Intersection object","titles":["OSRM HTTP server","Result objects"]},"55":{"title":"Example","titles":["OSRM HTTP server","Result objects","Intersection object"]},"56":{"title":"Waypoint object","titles":["OSRM HTTP server","Result objects"]},"57":{"title":"Example","titles":["OSRM HTTP server","Result objects","Waypoint object"]},"58":{"title":"Flatbuffers format","titles":["OSRM HTTP server"]},"59":{"title":"Root object","titles":["OSRM HTTP server","Flatbuffers format"]},"60":{"title":"Error object","titles":["OSRM HTTP server","Flatbuffers format"]},"61":{"title":"Waypoint object","titles":["OSRM HTTP server","Flatbuffers format"]},"62":{"title":"RouteObject object","titles":["OSRM HTTP server","Flatbuffers format"]},"63":{"title":"Leg object","titles":["OSRM HTTP server","Flatbuffers format"]},"64":{"title":"Step object","titles":["OSRM HTTP server","Flatbuffers format"]},"65":{"title":"Intersection object","titles":["OSRM HTTP server","Flatbuffers format"]},"66":{"title":"Lane object","titles":["OSRM HTTP server","Flatbuffers format"]},"67":{"title":"StepManeuver object","titles":["OSRM HTTP server","Flatbuffers format"]},"68":{"title":"Annotation object","titles":["OSRM HTTP server","Flatbuffers format"]},"69":{"title":"Position object","titles":["OSRM HTTP server","Flatbuffers format"]},"70":{"title":"Uint64Pair","titles":["OSRM HTTP server","Flatbuffers format"]},"71":{"title":"Table object","titles":["OSRM HTTP server","Flatbuffers format"]},"72":{"title":"Introduction","titles":[]},"73":{"title":"Important interface objects","titles":[]},"74":{"title":"Example","titles":[]},"75":{"title":"Workflow","titles":[]},"76":{"title":"OSRM","titles":[]},"77":{"title":"Parameters","titles":["OSRM"]},"78":{"title":"route","titles":["OSRM"]},"79":{"title":"Parameters","titles":["OSRM","route"]},"80":{"title":"Examples","titles":["OSRM","route"]},"81":{"title":"nearest","titles":["OSRM"]},"82":{"title":"Parameters","titles":["OSRM","nearest"]},"83":{"title":"Examples","titles":["OSRM","nearest"]},"84":{"title":"table","titles":["OSRM"]},"85":{"title":"Parameters","titles":["OSRM","table"]},"86":{"title":"Examples","titles":["OSRM","table"]},"87":{"title":"tile","titles":["OSRM"]},"88":{"title":"Parameters","titles":["OSRM","tile"]},"89":{"title":"Examples","titles":["OSRM","tile"]},"90":{"title":"match","titles":["OSRM"]},"91":{"title":"Parameters","titles":["OSRM","match"]},"92":{"title":"Examples","titles":["OSRM","match"]},"93":{"title":"trip","titles":["OSRM"]},"94":{"title":"Parameters","titles":["OSRM","trip"]},"95":{"title":"Examples","titles":["OSRM","trip"]},"96":{"title":"Configuration","titles":[]},"97":{"title":"Parameters","titles":["Configuration"]},"98":{"title":"Examples","titles":["Configuration"]},"99":{"title":"Responses","titles":[]},"100":{"title":"Route","titles":["Responses"]},"101":{"title":"Parameters","titles":["Responses","Route"]},"102":{"title":"RouteLeg","titles":["Responses"]},"103":{"title":"Parameters","titles":["Responses","RouteLeg"]},"104":{"title":"RouteStep","titles":["Responses"]},"105":{"title":"Parameters","titles":["Responses","RouteStep"]},"106":{"title":"StepManeuver","titles":["Responses"]},"107":{"title":"Parameters","titles":["Responses","StepManeuver"]},"108":{"title":"Waypoint","titles":["Responses"]},"109":{"title":"Parameters","titles":["Responses","Waypoint"]},"110":{"title":"Python API","titles":[]},"111":{"title":"OSRM","titles":["Python API"]},"112":{"title":"Parameters","titles":["Python API","OSRM"]},"113":{"title":"Services","titles":["Python API","OSRM"]},"114":{"title":"Route","titles":["Python API"]},"115":{"title":"RouteParameters","titles":["Python API","Route"]},"116":{"title":"Table","titles":["Python API"]},"117":{"title":"TableParameters","titles":["Python API","Table"]},"118":{"title":"Nearest","titles":["Python API"]},"119":{"title":"NearestParameters","titles":["Python API","Nearest"]},"120":{"title":"Match","titles":["Python API"]},"121":{"title":"MatchParameters","titles":["Python API","Match"]},"122":{"title":"Trip","titles":["Python API"]},"123":{"title":"TripParameters","titles":["Python API","Trip"]},"124":{"title":"Tile","titles":["Python API"]},"125":{"title":"TileParameters","titles":["Python API","Tile"]},"126":{"title":"BaseParameters","titles":["Python API"]},"127":{"title":"Types","titles":["Python API"]},"128":{"title":"Coordinate","titles":["Python API","Types"]},"129":{"title":"Bearing","titles":["Python API","Types"]},"130":{"title":"Object / Array","titles":["Python API","Types"]},"131":{"title":"CLI","titles":["Python API"]},"132":{"title":"Python Bindings Development Guide","titles":[]},"133":{"title":"Installing for production","titles":["Python Bindings Development Guide"]},"134":{"title":"Installing for development","titles":["Python Bindings Development Guide"]},"135":{"title":"Platform-specific build requirements","titles":["Python Bindings Development Guide"]},"136":{"title":"Linux","titles":["Python Bindings Development Guide","Platform-specific build requirements"]},"137":{"title":"macOS","titles":["Python Bindings Development Guide","Platform-specific build requirements"]},"138":{"title":"Windows","titles":["Python Bindings Development Guide","Platform-specific build requirements"]},"139":{"title":"Building locally","titles":["Python Bindings Development Guide"]},"140":{"title":"Editable install (recommended for development)","titles":["Python Bindings Development Guide","Building locally"]},"141":{"title":"Building a wheel","titles":["Python Bindings Development Guide","Building locally"]},"142":{"title":"Wheel repair","titles":["Python Bindings Development Guide","Building locally"]},"143":{"title":"Compiler cache","titles":["Python Bindings Development Guide","Building locally"]},"144":{"title":"Running tests","titles":["Python Bindings Development Guide"]},"145":{"title":"Running cibuildwheel locally","titles":["Python Bindings Development Guide"]},"146":{"title":"Type stubs","titles":["Python Bindings Development Guide"]},"147":{"title":"Releasing","titles":["Python Bindings Development Guide"]},"148":{"title":"Scheduled monthly release","titles":["Python Bindings Development Guide","Releasing"]},"149":{"title":"Manual release","titles":["Python Bindings Development Guide","Releasing"]},"150":{"title":"Verification","titles":["Python Bindings Development Guide","Releasing"]},"151":{"title":"Version mechanics","titles":["Python Bindings Development Guide","Releasing"]},"152":{"title":"OSRM profiles","titles":[]},"153":{"title":"Available profiles","titles":["OSRM profiles"]},"154":{"title":"Using Multiple Profiles with the Same Input","titles":["OSRM profiles","Available profiles"]},"155":{"title":"Processing flow","titles":["OSRM profiles"]},"156":{"title":"Profiles are written in Lua","titles":["OSRM profiles"]},"157":{"title":"Basic structure of profiles","titles":["OSRM profiles"]},"158":{"title":"Understanding speed, weight and rate","titles":["OSRM profiles"]},"159":{"title":"Elements","titles":["OSRM profiles"]},"160":{"title":"api_version","titles":["OSRM profiles","Elements"]},"161":{"title":"Library files","titles":["OSRM profiles","Elements"]},"162":{"title":"setup()","titles":["OSRM profiles","Elements"]},"163":{"title":"process_node(profile, node, result, relations)","titles":["OSRM profiles","Elements"]},"164":{"title":"Obstacle","titles":["OSRM profiles","Elements"]},"165":{"title":"obstacle_type","titles":["OSRM profiles","Elements","Obstacle"]},"166":{"title":"obstacle_direction","titles":["OSRM profiles","Elements","Obstacle"]},"167":{"title":"obstacle_map","titles":["OSRM profiles","Elements"]},"168":{"title":"obstacle_map:add(node, obstacle)","titles":["OSRM profiles","Elements","obstacle_map"]},"169":{"title":"obstacle_map:any(from, to, type)","titles":["OSRM profiles","Elements","obstacle_map"]},"170":{"title":"obstacle_map:get(from, to, type)","titles":["OSRM profiles","Elements","obstacle_map"]},"171":{"title":"process_way(profile, way, result, relations)","titles":["OSRM profiles","Elements"]},"172":{"title":"Way names","titles":["OSRM profiles","Elements"]},"173":{"title":"process_segment(profile, segment)","titles":["OSRM profiles","Elements"]},"174":{"title":"process_turn(profile, turn)","titles":["OSRM profiles","Elements"]},"175":{"title":"from, via, and to","titles":["OSRM profiles","Elements","process_turn(profile, turn)"]},"176":{"title":"source_road, target_road, roads_on_the_right, and roads_on_the_left","titles":["OSRM profiles","Elements","process_turn(profile, turn)"]},"177":{"title":"highway_turn_classification and access_turn_classification","titles":["OSRM profiles","Elements","process_turn(profile, turn)"]},"178":{"title":"Guidance","titles":["OSRM profiles"]},"179":{"title":"Using raster data","titles":["OSRM profiles","Guidance"]},"180":{"title":"Helper functions","titles":["OSRM profiles","Guidance"]},"181":{"title":"Releasing a new OSRM version","titles":[]},"182":{"title":"Version History","titles":["Releasing a new OSRM version"]},"183":{"title":"Versioning Scheme","titles":["Releasing a new OSRM version"]},"184":{"title":"Format","titles":["Releasing a new OSRM version","Versioning Scheme"]},"185":{"title":"Examples","titles":["Releasing a new OSRM version","Versioning Scheme"]},"186":{"title":"Release Compatibility Guarantees","titles":["Releasing a new OSRM version"]},"187":{"title":"Patch version change (new patchlevel in same month)","titles":["Releasing a new OSRM version","Release Compatibility Guarantees"]},"188":{"title":"Month change (new YYYY-MM)","titles":["Releasing a new OSRM version","Release Compatibility Guarantees"]},"189":{"title":"Conventional Commits","titles":["Releasing a new OSRM version"]},"190":{"title":"Release Management","titles":["Releasing a new OSRM version"]},"191":{"title":"Automated Release Process","titles":["Releasing a new OSRM version"]},"192":{"title":"Manual Release Trigger","titles":["Releasing a new OSRM version"]},"193":{"title":"Release Checklist","titles":["Releasing a new OSRM version"]},"194":{"title":"After Release","titles":["Releasing a new OSRM version"]},"195":{"title":"Environment Variables","titles":[]},"196":{"title":"SHM_LOCK_DIR","titles":["Environment Variables"]},"197":{"title":"SIGNAL_PARENT_WHEN_READY","titles":["Environment Variables"]},"198":{"title":"DISABLE_ACCESS_LOGGING","titles":["Environment Variables"]},"199":{"title":"Testsuite","titles":[]},"200":{"title":"Unit Tests","titles":["Testsuite"]},"201":{"title":"Separate Test Binaries","titles":["Testsuite","Unit Tests"]},"202":{"title":"Using Boost.Test Primitives","titles":["Testsuite","Unit Tests"]},"203":{"title":"Test Fixture","titles":["Testsuite","Unit Tests"]},"204":{"title":"Running Tests","titles":["Testsuite","Unit Tests"]},"205":{"title":"Cucumber","titles":["Testsuite"]},"206":{"title":"Test the feature","titles":["Testsuite","Cucumber"]},"207":{"title":"Write Tests to Scale","titles":["Testsuite","Cucumber"]},"208":{"title":"Use names","titles":["Testsuite","Cucumber"]},"209":{"title":"Test all directions","titles":["Testsuite","Cucumber"]},"210":{"title":"Prevent Randomness","titles":["Testsuite","Cucumber"]},"211":{"title":"Use Waypoints","titles":["Testsuite","Cucumber","Prevent Randomness"]},"212":{"title":"Allow For Small Offsets","titles":["Testsuite","Cucumber","Prevent Randomness"]},"213":{"title":"Don\'t Rely on Alternatives","titles":["Testsuite","Cucumber","Prevent Randomness"]},"214":{"title":"Understanding Turn Restrictions","titles":["Testsuite","Cucumber"]},"215":{"title":"My Guidance Tests are Failing - Understanding what you can change","titles":["Testsuite"]},"216":{"title":"Don\'t change the test, change the expected behaviour","titles":["Testsuite","My Guidance Tests are Failing - Understanding what you can change"]},"217":{"title":"Consider Post-Processing Impacts","titles":["Testsuite","My Guidance Tests are Failing - Understanding what you can change"]},"218":{"title":"Use Caution","titles":["Testsuite","My Guidance Tests are Failing - Understanding what you can change"]},"219":{"title":"Command-Line Tools","titles":[]},"220":{"title":"Common Options","titles":["Command-Line Tools"]},"221":{"title":"--list-inputs","titles":["Command-Line Tools","Common Options"]},"222":{"title":"osrm-extract","titles":["Command-Line Tools"]},"223":{"title":"osrm-partition","titles":["Command-Line Tools"]},"224":{"title":"osrm-customize","titles":["Command-Line Tools"]},"225":{"title":"osrm-contract","titles":["Command-Line Tools"]},"226":{"title":"osrm-routed","titles":["Command-Line Tools"]},"227":{"title":"Server","titles":["Command-Line Tools","osrm-routed"]},"228":{"title":"Data loading","titles":["Command-Line Tools","osrm-routed"]},"229":{"title":"Query limits","titles":["Command-Line Tools","osrm-routed"]},"230":{"title":"osrm-datastore","titles":["Command-Line Tools"]},"231":{"title":"Building OSRM for Windows","titles":[]},"232":{"title":"Dependencies","titles":["Building OSRM for Windows"]},"233":{"title":"Prerequisites","titles":["Building OSRM for Windows"]},"234":{"title":"Building","titles":["Building OSRM for Windows"]}},"dirtCount":0,"index":[["✅",{"2":{"193":4}}],["→",{"2":{"182":2,"192":1}}],["~=",{"2":{"179":2}}],["~dpxkkhz`",{"2":{"33":1}}],["$base$line",{"2":{"221":1}}],["$",{"2":{"145":1,"148":1,"221":2}}],["$vcpkg",{"2":{"145":1}}],["$pwd",{"2":{"138":1}}],["$env",{"2":{"138":1,"140":1}}],["ẁaypoint",{"2":{"83":1,"86":2,"92":1}}],["|",{"2":{"77":1,"79":1,"91":1,"94":1,"112":1,"115":1,"126":4,"176":4,"207":20,"208":82,"209":57,"211":40,"214":63,"216":14}}],["+x=x",{"2":{"174":1}}],["+",{"2":{"71":2,"148":2,"169":1,"170":2,"209":5,"225":1}}],["+180",{"2":{"41":2}}],["year",{"2":{"181":1,"182":1,"184":2}}],["yes",{"2":{"36":7,"93":5,"211":8,"214":6}}],["yyyy",{"0":{"188":1},"2":{"148":1,"149":1,"181":1,"191":1}}],["yml",{"2":{"147":1,"148":1,"149":1,"151":1}}],["y=11948",{"2":{"124":1}}],["y",{"2":{"39":2,"88":1,"125":2}}],["yourself",{"2":{"73":1,"136":1}}],["your",{"2":{"8":1,"10":1,"12":2,"73":2,"145":1,"158":1,"160":1,"168":1,"179":3,"192":1,"202":1,"216":1,"217":3,"218":1}}],["you",{"0":{"215":1},"1":{"216":1,"217":1,"218":1},"2":{"3":3,"4":1,"5":1,"7":1,"10":1,"12":1,"13":4,"20":3,"36":1,"39":1,"41":1,"56":1,"72":1,"73":10,"76":3,"77":3,"79":3,"87":1,"140":1,"142":1,"145":1,"152":1,"153":3,"154":1,"155":1,"157":3,"158":9,"161":4,"162":4,"163":2,"164":2,"167":3,"168":3,"169":1,"170":1,"171":4,"173":3,"174":1,"179":2,"192":1,"201":1,"202":3,"203":2,"204":2,"207":3,"208":2,"212":2,"215":5,"216":8,"217":8,"225":1,"232":1}}],["95",{"2":{"172":1}}],["92",{"2":{"50":1}}],["90",{"2":{"41":3,"44":1,"54":1,"137":2}}],["99",{"2":{"35":1}}],["9",{"2":{"34":1,"35":1}}],["qx8aaabraaaajgaaafmaaadmaaaasufmaodwiqnl58wa03ahawmavxbs52d3",{"2":{"34":2}}],["queries",{"2":{"77":1,"112":5,"229":1}}],["querying",{"2":{"28":1}}],["query",{"0":{"229":1},"2":{"21":2,"23":2,"31":1,"56":2,"77":7,"79":1,"82":1,"85":1,"91":1,"94":1,"97":1,"155":1,"162":1,"179":4,"187":1,"188":1,"229":5}}],["quickly",{"2":{"152":1}}],["quick",{"2":{"72":1}}],["quite",{"2":{"27":1}}],["quality",{"2":{"35":1,"91":1,"190":1}}],["quot",{"2":{"12":2,"13":2,"14":8,"41":4,"112":8,"115":32,"117":12,"121":6,"123":12,"126":12,"151":2,"152":2,"162":10,"171":14,"172":8,"173":4,"222":2,"233":2}}],["72956",{"2":{"114":1,"116":1,"118":1,"120":1,"122":1,"128":1}}],["73216",{"2":{"116":1,"120":1,"122":1}}],["73077",{"2":{"114":1,"116":1,"120":1,"122":1}}],["73",{"2":{"34":1}}],["7ucagp",{"2":{"34":2}}],["7",{"2":{"32":1,"34":1,"114":2,"116":3,"118":1,"120":3,"122":3,"128":1}}],["zone",{"2":{"224":2,"225":2}}],["zoom",{"2":{"30":1,"35":1,"36":1,"39":2,"41":1,"43":1,"79":1,"91":1,"125":1}}],["z=15",{"2":{"124":1}}],["z=13",{"2":{"40":1}}],["z",{"2":{"88":1,"125":1}}],["zxy",{"2":{"88":1}}],["zeros",{"2":{"181":1,"182":1,"184":1,"191":1}}],["zero",{"2":{"3":1,"35":1,"92":1,"230":1}}],["`",{"2":{"142":3}}],["`qikdcb",{"2":{"33":1}}],["`20°",{"2":{"28":1}}],["`13",{"2":{"28":1}}],["45",{"2":{"209":1}}],["4516",{"2":{"8":1}}],["41862",{"2":{"116":1,"120":1,"122":1}}],["418555",{"2":{"37":1}}],["41546",{"2":{"114":1,"116":1,"120":1,"122":1}}],["415852",{"2":{"80":1}}],["41337",{"2":{"114":1,"116":1,"118":1,"120":1,"122":1,"128":1}}],["42324",{"2":{"73":1}}],["428554",{"2":{"34":2}}],["428555",{"2":{"21":1,"31":1,"33":5,"37":2,"86":1}}],["49786802",{"2":{"46":1,"48":1}}],["49786801",{"2":{"46":1,"48":1}}],["49786800",{"2":{"46":1,"48":1}}],["49786799",{"2":{"46":1,"48":1}}],["49772552",{"2":{"46":1,"48":1}}],["49772551",{"2":{"46":1,"48":1}}],["4096",{"2":{"223":1}}],["40",{"2":{"46":1,"48":2}}],["404",{"2":{"41":1}}],["400",{"2":{"23":1}}],["4ghawaaxwvs52d3",{"2":{"34":2}}],["4",{"2":{"29":1,"32":1,"33":1,"57":1,"148":1,"149":1,"151":2,"160":1,"179":1,"181":3,"185":4,"191":2,"192":1,"193":1,"209":1,"211":3}}],["438640",{"2":{"80":1}}],["43",{"2":{"25":1,"114":2,"116":3,"118":1,"120":3,"122":3,"128":1}}],["37",{"2":{"209":1}}],["374481201171875",{"2":{"95":1,"98":1}}],["3791",{"2":{"34":1}}],["359",{"2":{"51":2,"54":1}}],["30",{"2":{"44":1,"46":1}}],["300",{"2":{"44":2}}],["397389",{"2":{"92":1}}],["397631",{"2":{"34":2}}],["397634",{"2":{"21":2,"31":1,"33":5,"37":2,"86":1}}],["39478",{"2":{"92":1}}],["394718",{"2":{"50":1,"55":1}}],["393252",{"2":{"92":1}}],["39677",{"2":{"50":1}}],["3919",{"2":{"41":1}}],["330",{"2":{"50":1,"55":1}}],["33",{"2":{"41":1}}],["3166",{"2":{"40":1}}],["36761474609375",{"2":{"95":1,"98":1}}],["36",{"2":{"34":1}}],["360",{"2":{"20":1,"79":1,"82":1,"85":1,"91":1,"94":1}}],["3275",{"2":{"34":1}}],["344",{"2":{"34":1}}],["340°`",{"2":{"28":1}}],["382",{"2":{"34":1}}],["38faaaauqaaacyaaabtaaaahsqkqrxq5kkrbizcwjo",{"2":{"34":2}}],["3888",{"2":{"34":2}}],["388860",{"2":{"21":2,"28":2,"31":1,"33":5,"37":2,"83":1,"86":1}}],["388775",{"2":{"29":1}}],["388782",{"2":{"29":1}}],["388799",{"2":{"29":1,"57":1}}],["3x2",{"2":{"33":1}}],["3x3",{"2":{"33":5}}],["3",{"2":{"32":1,"33":1,"34":2,"44":1,"46":5,"50":2,"77":1,"83":1,"92":1,"133":5,"171":1,"211":3,"229":1}}],["==",{"2":{"164":1,"170":1,"177":4,"202":1}}],["=",{"2":{"20":3,"27":1,"32":3,"35":1,"41":4,"59":1,"76":1,"79":1,"80":1,"82":1,"83":2,"85":3,"86":2,"89":1,"91":1,"92":2,"94":1,"95":2,"98":2,"111":3,"113":1,"114":2,"116":2,"118":2,"120":2,"122":2,"124":2,"128":1,"129":1,"130":1,"138":1,"140":1,"151":1,"158":1,"164":1,"169":1,"170":2,"171":2,"177":5,"179":4,"181":2,"184":4,"191":1,"192":1}}],["x3c",{"2":{"222":1,"223":1,"224":1,"225":1,"226":1,"230":1}}],["xc",{"2":{"176":1}}],["xe",{"2":{"176":1}}],["xd",{"2":{"176":1}}],["xf",{"2":{"176":1}}],["x=",{"2":{"174":1}}],["x=17059",{"2":{"124":1}}],["x64",{"2":{"142":2,"234":1}}],["x86",{"2":{"133":2,"142":1,"150":2}}],["x20",{"2":{"79":1,"82":1,"85":1,"88":1,"91":1,"94":1}}],["x26",{"2":{"28":1,"32":1,"33":1,"37":1,"144":4}}],["x",{"2":{"20":1,"39":2,"41":1,"88":1,"125":2,"174":1,"176":2,"181":2,"184":3,"192":1,"193":1,"224":2,"225":2}}],["k",{"2":{"227":1}}],["kubernetes",{"2":{"196":1}}],["keys",{"2":{"165":2,"166":2}}],["keyword",{"2":{"111":1}}],["keepalive",{"2":{"227":1}}],["keep",{"2":{"18":1,"30":1,"79":1,"140":1,"227":1}}],["know",{"2":{"72":1}}],["kotlin",{"2":{"58":1}}],["km",{"2":{"41":1,"171":1,"174":2,"176":1}}],["kiokgdbbdgcubaeaaaaaaboaaaaaaaaapaaaablncqcltwaa50vmadjziqm8tmwarvghawaaaqh1a66g",{"2":{"29":1}}],["kills",{"2":{"9":1}}],["ksokadryroqubaeabgaaaaaaaaaaaaaakqaaabhncqcltwaa7kvmaaxziqm8tmwarvghawaaaqh1a66g",{"2":{"29":1}}],["ksokadryroqubaeaeaaaabkaaaagaaaaaaaaabhncqcltwaa",{"2":{"29":1,"57":1}}],["25",{"2":{"223":1}}],["250",{"2":{"179":3}}],["27",{"2":{"182":1,"184":1,"185":1}}],["270",{"2":{"50":1,"54":1}}],["26",{"2":{"148":1,"149":1,"151":1,"181":2,"182":1,"184":1,"185":3,"191":1,"192":1,"193":1}}],["240",{"2":{"50":1,"55":1}}],["2361",{"2":{"34":1}}],["222",{"2":{"34":1}}],["2264199819",{"2":{"29":1}}],["2838",{"2":{"34":1}}],["283",{"2":{"34":1}}],["21487242",{"2":{"29":1}}],["2097152",{"2":{"223":1}}],["2022",{"2":{"233":1,"234":1}}],["2027",{"2":{"182":1,"184":1,"185":1}}],["2025",{"2":{"182":2,"232":1}}],["2026",{"2":{"181":1,"182":3,"184":1,"185":3}}],["2045820592",{"2":{"29":1}}],["20",{"2":{"28":1,"83":1,"171":1,"209":1,"216":1}}],["2017",{"2":{"25":1}}],["200",{"2":{"23":1,"44":1,"129":1}}],["2000",{"2":{"7":1,"148":1,"149":1,"181":2,"184":1,"191":1,"217":1}}],["2nd",{"2":{"20":1,"185":1}}],["2",{"2":{"14":3,"32":1,"44":1,"50":1,"55":1,"92":1,"95":1,"116":1,"164":2,"168":1,"169":1,"176":2,"177":3,"182":1,"184":1,"211":3,"223":1}}],["v27",{"2":{"185":1}}],["v26",{"2":{"151":1,"181":1,"182":1,"185":3,"191":1}}],["vx",{"2":{"184":1}}],["v6",{"2":{"182":4}}],["v",{"2":{"148":1,"150":1,"181":1,"184":1,"191":1,"220":1}}],["volume",{"2":{"145":1}}],["vcpkg",{"2":{"136":15,"138":7,"140":3,"142":3,"145":5,"232":3,"233":7,"234":1}}],["v8",{"2":{"76":3}}],["vs",{"2":{"73":1,"202":1,"234":1}}],["visible",{"2":{"148":1}}],["visiting",{"2":{"78":1}}],["visit",{"2":{"73":1}}],["visitation",{"2":{"73":1}}],["visitor",{"2":{"73":1}}],["visual",{"2":{"143":1,"232":1,"233":1}}],["virtual",{"2":{"77":1}}],["violate",{"2":{"54":1}}],["violates",{"2":{"23":1}}],["viewers",{"2":{"39":1,"88":1}}],["viewer",{"2":{"39":1,"87":1}}],["viewed",{"2":{"39":1,"87":1}}],["viaroute=3",{"2":{"111":1}}],["viaroute",{"2":{"77":2,"112":1,"229":1}}],["via",{"0":{"175":1},"2":{"15":1,"47":2,"72":1,"131":1,"137":1,"138":1,"142":1,"143":1,"148":2,"162":1,"169":2,"170":2,"174":1,"176":1,"214":3,"224":1,"225":1,"232":1}}],["vpailayu",{"2":{"21":1}}],["v1",{"2":{"20":1,"21":3,"27":1,"28":1,"30":1,"31":1,"32":1,"33":6,"35":1,"36":1,"37":2,"39":1,"40":1}}],["vehicle",{"2":{"162":1}}],["vehicles",{"2":{"162":1}}],["verbosity",{"2":{"220":2}}],["verbatim",{"2":{"145":1}}],["verify",{"2":{"193":1,"194":1}}],["verification",{"0":{"150":1}}],["very",{"2":{"35":1,"49":1,"51":1,"54":1,"64":1,"67":1,"92":1,"207":1,"214":1,"216":1,"217":1}}],["vereinten",{"2":{"34":2}}],["versions",{"2":{"185":1,"190":1,"191":1,"192":1}}],["versioning",{"0":{"183":1},"1":{"184":1,"185":1},"2":{"181":1,"182":2}}],["version",{"0":{"24":1,"151":1,"160":1,"181":1,"182":1,"187":1},"1":{"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1},"2":{"20":3,"23":1,"24":2,"25":1,"51":2,"52":1,"64":1,"67":1,"72":1,"147":1,"148":2,"149":2,"150":3,"151":3,"157":2,"160":3,"191":1,"192":1,"193":1,"194":2,"220":2,"222":2}}],["vectors",{"2":{"73":1}}],["vector",{"2":{"12":1,"13":1,"39":3,"41":2,"87":2,"88":1,"89":2,"124":1,"174":4}}],["vary",{"2":{"158":1}}],["various",{"2":{"97":1,"157":2,"171":1}}],["variations",{"2":{"152":1}}],["variant",{"2":{"73":1}}],["variable",{"2":{"7":2,"196":1,"197":1,"198":1}}],["variables",{"0":{"8":1,"195":1},"1":{"196":1,"197":1,"198":1},"2":{"7":1}}],["var",{"2":{"83":1,"86":1,"92":1,"95":1,"98":1}}],["value",{"2":{"20":3,"30":1,"35":3,"41":7,"43":1,"52":1,"54":4,"56":1,"66":1,"70":2,"73":1,"77":1,"79":2,"82":1,"85":2,"91":2,"92":2,"94":1,"158":1,"162":1,"171":2,"173":1,"179":1,"202":1,"223":1}}],["values",{"2":{"20":3,"27":1,"30":1,"32":3,"33":3,"35":2,"36":1,"39":1,"41":1,"47":2,"51":1,"54":2,"56":1,"66":1,"79":1,"82":1,"85":2,"86":4,"88":1,"91":1,"94":1,"117":1,"161":2,"171":1,"174":4,"176":2,"179":1}}],["validate",{"2":{"227":1}}],["validated",{"2":{"189":1}}],["valid",{"2":{"13":1,"50":4,"52":2,"53":1,"54":1,"55":1,"97":1,"179":1}}],["500",{"2":{"179":1,"229":1}}],["5000+n",{"2":{"4":1}}],["5000",{"2":{"4":1,"7":2,"227":1}}],["506191342034576",{"2":{"95":1,"98":1}}],["542107",{"2":{"92":1}}],["542648",{"2":{"92":1}}],["543079",{"2":{"92":1}}],["543096",{"2":{"50":1,"55":1}}],["54366",{"2":{"50":1}}],["5m",{"2":{"35":1}}],["51663871100423",{"2":{"95":1,"98":1}}],["513191",{"2":{"80":1}}],["519930",{"2":{"80":1}}],["517",{"2":{"140":1}}],["51717",{"2":{"29":1}}],["517132",{"2":{"29":1}}],["517033",{"2":{"29":1,"34":2,"57":1}}],["517037`",{"2":{"28":1}}],["517037",{"2":{"21":2,"28":1,"31":1,"33":5,"37":2,"83":1,"86":1}}],["512",{"2":{"18":1}}],["5212",{"2":{"41":1}}],["523215",{"2":{"37":1}}],["523219",{"2":{"21":1,"31":1,"33":5,"37":2,"86":1}}],["523239",{"2":{"34":2}}],["529432",{"2":{"34":2}}],["529407",{"2":{"21":2,"31":1,"33":5,"37":2,"86":1}}],["52",{"2":{"21":5,"28":2,"29":3,"31":3,"33":15,"34":6,"37":7,"41":1,"50":2,"55":1,"57":1,"80":2,"83":1,"86":3,"92":3,"95":2,"98":2}}],["5",{"2":{"7":1,"18":1,"20":2,"32":1,"46":4,"48":4,"49":1,"77":1,"91":1,"120":3,"164":2,"177":2,"179":1,"185":2,"216":3,"227":1}}],["160",{"2":{"216":1}}],["17",{"2":{"232":1}}],["179",{"2":{"174":1}}],["17t21",{"2":{"25":1}}],["1st",{"2":{"148":1,"182":1,"185":3,"190":1,"191":1}}],["128",{"2":{"209":1,"223":1}}],["12+",{"2":{"133":1}}],["120",{"2":{"44":4}}],["12",{"2":{"41":1,"133":1,"181":1,"182":1,"184":2,"191":1,"192":1,"193":1}}],["127",{"2":{"7":1}}],["1424684620",{"2":{"92":1,"120":1}}],["1424684616",{"2":{"92":1,"120":1}}],["1424684612",{"2":{"92":1,"120":1}}],["14",{"2":{"41":1}}],["101",{"2":{"162":2}}],["10+",{"2":{"133":1}}],["100",{"2":{"44":1,"46":2,"216":1,"229":4}}],["1000",{"2":{"41":1,"222":1,"223":1}}],["10",{"2":{"36":2,"44":4,"46":1,"48":1,"50":1,"93":2,"133":1,"177":2,"207":3,"208":3,"209":1,"216":1,"223":1}}],["184",{"2":{"50":1}}],["1824",{"2":{"34":1}}],["1886",{"2":{"34":1}}],["180=u",{"2":{"174":1}}],["180",{"2":{"20":1,"41":2,"54":2,"79":1,"82":1,"85":1,"91":1,"94":1,"129":1,"174":1,"216":2}}],["199",{"2":{"34":1}}],["192",{"2":{"34":1}}],["1x3",{"2":{"33":1}}],["150",{"2":{"55":1}}],["152",{"2":{"50":1}}],["152629",{"2":{"29":1,"57":1}}],["15",{"2":{"29":1,"46":4,"48":8,"50":2,"174":4,"176":2}}],["11",{"2":{"25":1,"29":1,"133":1}}],["13423240",{"2":{"73":1}}],["1310",{"2":{"40":1}}],["13",{"2":{"21":5,"28":1,"29":3,"31":3,"33":15,"34":6,"37":7,"40":1,"41":1,"50":2,"55":1,"57":1,"73":1,"80":2,"83":1,"86":3,"92":3,"95":2,"98":2}}],["1",{"2":{"7":1,"14":2,"18":1,"27":2,"32":1,"33":1,"34":2,"35":2,"44":1,"46":2,"48":2,"50":1,"54":2,"82":2,"92":3,"95":1,"116":1,"117":1,"119":1,"137":2,"149":1,"162":1,"176":3,"177":3,"179":2,"181":1,"182":3,"184":3,"185":4,"191":1,"192":1,"193":1,"211":3,"215":2,"223":2,"229":2,"230":1}}],["0=straight",{"2":{"174":1}}],["0=true",{"2":{"54":1}}],["00",{"2":{"148":1,"182":1,"190":1,"191":1}}],["08",{"2":{"148":1,"182":1,"190":1,"191":1}}],["09",{"2":{"34":1}}],["0vmaklyiqm8tmwarvghaweaaqh1a66g",{"2":{"29":1,"57":1}}],["02z",{"2":{"25":1}}],["0",{"2":{"7":2,"14":2,"18":1,"20":3,"29":3,"32":3,"34":8,"35":2,"41":2,"44":12,"46":11,"47":1,"48":3,"50":1,"51":2,"54":3,"55":1,"79":4,"82":3,"83":1,"85":5,"89":3,"91":3,"92":1,"94":3,"115":1,"116":1,"117":1,"120":3,"148":1,"151":2,"160":1,"164":1,"168":1,"174":10,"176":5,"179":20,"181":3,"182":7,"184":2,"185":6,"191":2,"192":1,"193":1,"223":1,"224":2,"225":2,"227":4,"229":1}}],["gate",{"2":{"165":1,"190":1}}],["gap",{"2":{"121":1}}],["gaps",{"2":{"35":2,"91":2,"121":1}}],["gh",{"2":{"149":1}}],["glance",{"2":{"214":1}}],["globals",{"2":{"162":1}}],["global",{"2":{"162":3,"167":1,"180":1}}],["gl",{"2":{"39":1,"88":1}}],["grid",{"2":{"207":4,"208":3,"209":1,"211":2,"216":5,"217":2}}],["green",{"2":{"158":1,"190":1}}],["greenest",{"2":{"152":1}}],["greedy",{"2":{"36":1,"93":1}}],["greater",{"2":{"82":1}}],["grained",{"2":{"47":1}}],["graph",{"2":{"13":3,"20":1,"39":1,"79":1,"82":1,"85":1,"87":1,"91":1,"94":1,"124":1,"152":1,"211":1,"222":3,"223":1,"224":1,"225":1}}],["gps",{"2":{"35":3,"90":1,"91":2,"120":1}}],["go",{"2":{"58":1,"192":1}}],["going",{"2":{"30":1,"79":1,"171":1}}],["google",{"2":{"20":1}}],["good",{"2":{"13":1,"164":1}}],["g`e",{"2":{"21":1}}],["gt",{"2":{"12":2,"13":2,"14":6,"20":1,"27":1,"32":2,"35":2,"79":1,"82":1,"85":1,"90":1,"91":2,"94":1,"142":1,"148":1,"150":1,"174":2,"216":1,"220":2,"221":1,"222":5,"223":5,"224":5,"225":5,"227":3,"228":3,"229":9,"230":3}}],["guard",{"2":{"12":6,"13":2,"14":6}}],["guarantees",{"0":{"186":1},"1":{"187":1,"188":1},"2":{"162":1,"208":1}}],["guaranteed",{"2":{"30":1,"51":1,"79":1}}],["guarantee",{"2":{"11":1,"211":1}}],["guideline",{"2":{"205":1,"217":1}}],["guidelines",{"2":{"16":1,"210":1}}],["guide",{"0":{"132":1},"1":{"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1},"2":{"11":1,"15":1,"16":1,"215":1}}],["guidance",{"0":{"10":1,"178":1,"215":1},"1":{"11":1,"12":1,"13":1,"14":1,"179":1,"180":1,"216":1,"217":1,"218":1},"2":{"9":3,"10":1,"13":1,"161":2,"162":1,"171":5,"178":3,"206":2,"208":1,"209":1,"215":2,"217":1}}],["g",{"2":{"10":1,"51":1,"52":2,"54":1,"56":1,"64":1,"67":1,"73":2,"76":1,"126":1,"148":1,"149":1,"151":1,"162":1,"171":5,"172":2,"179":2,"181":2,"189":1,"191":1,"192":1,"193":1,"202":1,"214":1,"215":1,"216":1,"218":1,"222":1,"232":1}}],["geographical",{"2":{"173":1}}],["geometries",{"2":{"30":1,"35":1,"36":1,"39":1,"43":1,"49":1,"79":1,"87":1,"91":1,"94":1,"115":1}}],["geometries=",{"2":{"30":1,"35":1,"36":1,"114":1,"120":1,"122":1}}],["geometry=geojson",{"2":{"44":1}}],["geometry",{"2":{"30":3,"31":1,"35":3,"36":3,"43":6,"44":1,"45":1,"49":3,"50":1,"62":3,"64":3,"77":1,"79":2,"91":2,"94":2,"115":2,"208":1,"228":1,"230":1}}],["geojsonguard",{"2":{"14":1}}],["geojson",{"0":{"11":1},"2":{"10":1,"11":1,"12":6,"13":2,"14":9,"30":1,"35":1,"36":1,"49":2,"79":1,"91":1,"94":1,"114":1,"115":1,"120":1,"122":1,"222":1,"224":1,"225":1}}],["general",{"0":{"19":1},"1":{"20":1,"21":1,"22":1,"23":1,"24":1,"25":1},"2":{"27":2,"30":3,"32":1,"33":2,"35":3,"36":1,"38":2,"81":1,"161":1,"200":1,"205":1,"217":1}}],["generator",{"2":{"140":3,"143":1}}],["generation",{"2":{"97":1}}],["generating",{"2":{"10":1}}],["generates",{"2":{"39":1,"87":1,"124":1}}],["generate",{"2":{"20":2,"79":1,"82":1,"85":1,"91":1,"94":1,"126":1}}],["generated",{"2":{"6":1,"20":1,"39":1,"87":1,"146":1,"191":1,"193":1,"222":1}}],["getfbresult",{"2":{"59":1}}],["getaccuracy",{"2":{"35":1}}],["getting",{"0":{"15":1},"2":{"51":1,"64":1,"67":1}}],["gets",{"2":{"12":1,"73":1}}],["get",{"0":{"170":1},"2":{"10":1,"20":1,"27":1,"30":1,"32":1,"35":1,"36":1,"39":1,"41":2,"54":1,"73":2,"170":5,"175":1,"207":2,"208":3,"209":1,"216":2}}],["getenv",{"2":{"8":1}}],["git",{"2":{"146":1,"181":1,"184":2,"185":5,"191":1,"193":1,"194":1,"233":1}}],["github",{"2":{"3":2,"17":1,"134":1,"136":1,"138":1,"147":1,"150":1,"191":2,"193":2,"194":2,"232":1,"233":1}}],["gives",{"2":{"33":2,"54":1,"86":2}}],["give",{"2":{"12":1,"165":1}}],["given",{"2":{"8":1,"20":2,"30":1,"32":2,"33":2,"35":2,"43":1,"49":1,"51":3,"52":1,"54":1,"64":2,"67":2,"79":2,"82":2,"84":1,"85":4,"86":2,"90":1,"91":1,"94":2,"122":1,"168":2,"169":1,"171":1,"207":3,"208":9,"209":3,"211":2,"214":2,"216":4}}],["u",{"2":{"162":1,"174":3,"176":1}}],["ui",{"2":{"149":1}}],["uint64",{"2":{"70":2}}],["uint64pair",{"0":{"70":1},"2":{"61":1}}],["utc",{"2":{"148":1,"182":1,"190":1,"191":1,"224":2,"225":2}}],["utf",{"2":{"98":1}}],["uturn",{"2":{"51":1,"52":1,"66":1,"79":1}}],["uturns",{"2":{"30":1}}],["utilities",{"2":{"217":1}}],["utility",{"2":{"201":2}}],["util",{"2":{"12":6,"13":4,"14":12,"217":1}}],["url",{"2":{"23":1}}],["un",{"2":{"218":1}}],["unexpected",{"2":{"217":1}}],["unprocessed",{"2":{"217":1}}],["unprefixed",{"2":{"181":1}}],["unrelated",{"2":{"217":1}}],["unrestricted",{"2":{"20":1,"79":1,"82":1,"85":1,"94":1,"126":2}}],["unwanted",{"2":{"211":1}}],["unnamed",{"2":{"172":1}}],["unsigned",{"2":{"162":1,"171":1}}],["unsimplified",{"2":{"49":1}}],["unconnected",{"2":{"162":1}}],["undef",{"2":{"202":1}}],["undefined",{"2":{"30":1,"33":1,"35":1,"38":1,"45":1,"49":2,"51":1}}],["understanding",{"0":{"158":1,"214":1,"215":1},"1":{"216":1,"217":1,"218":1}}],["understand",{"2":{"155":1,"217":1}}],["under",{"2":{"136":1,"142":1,"162":1}}],["until",{"2":{"54":1}}],["unknown",{"2":{"51":1}}],["unavailable",{"2":{"49":1}}],["unambiguously",{"2":{"35":1,"92":1}}],["unit",{"0":{"200":1},"1":{"201":1,"202":1,"203":1,"204":1},"2":{"199":1,"201":3,"204":2}}],["units",{"2":{"41":1}}],["unified",{"2":{"181":1}}],["uniquely",{"2":{"214":1}}],["unique",{"2":{"56":1}}],["unix",{"2":{"35":2,"91":1,"121":1,"224":1,"225":1}}],["unlike",{"2":{"32":1}}],["unlimited",{"2":{"20":1,"77":6,"79":1,"82":1,"85":1,"94":1,"111":1,"112":1,"126":1,"229":2,"230":1}}],["unless",{"2":{"9":3,"41":1,"59":1,"214":1}}],["upgrade",{"2":{"197":1}}],["uploads",{"2":{"148":1}}],["updated",{"2":{"146":1,"191":1}}],["updates",{"2":{"56":1,"224":1,"225":2,"230":2}}],["update",{"2":{"41":1,"230":1}}],["up",{"2":{"6":1,"30":1,"56":1,"73":1,"79":1,"171":1,"173":1,"203":1,"227":1}}],["usr1",{"2":{"197":1}}],["usr",{"2":{"145":1}}],["ushort",{"2":{"71":2}}],["usually",{"2":{"51":1,"64":1,"67":1}}],["usage",{"2":{"11":1,"21":1,"73":1,"168":1,"169":1,"170":1}}],["using",{"0":{"154":1,"179":1,"202":1},"2":{"4":1,"20":3,"21":1,"27":1,"32":1,"36":1,"41":2,"72":1,"73":1,"77":1,"85":1,"93":1,"111":1,"149":1,"162":1,"167":2,"171":1,"178":1,"179":1,"199":1,"206":1,"208":1,"211":1}}],["user",{"2":{"32":1,"47":1,"85":1,"158":1,"164":1,"167":1,"174":4,"176":2,"222":1}}],["useless",{"2":{"27":1}}],["uses",{"2":{"20":1,"36":1,"41":2,"93":1,"137":1,"138":1,"140":1,"141":1,"151":1,"158":1,"178":2}}],["useful",{"2":{"20":1,"79":1,"192":1,"196":1,"198":1,"220":1,"227":1}}],["used",{"2":{"9":2,"12":1,"20":2,"33":1,"35":2,"36":3,"39":1,"41":1,"43":1,"45":1,"47":1,"54":2,"56":2,"70":1,"71":1,"72":1,"79":1,"82":1,"85":1,"86":1,"87":1,"91":2,"94":1,"97":1,"108":1,"140":1,"143":1,"155":1,"157":2,"158":1,"162":4,"171":1,"177":1,"179":1,"190":1,"197":1,"206":1,"214":1,"222":1,"223":1,"228":1}}],["use",{"0":{"11":1,"208":1,"211":1,"218":1},"2":{"2":2,"3":3,"7":1,"12":1,"14":2,"15":1,"19":1,"20":1,"32":5,"35":2,"51":1,"56":1,"72":1,"73":2,"75":1,"77":1,"79":3,"82":2,"85":6,"91":2,"94":1,"111":2,"112":3,"133":1,"136":1,"140":1,"142":1,"157":1,"161":1,"162":1,"163":1,"173":1,"175":1,"177":1,"179":3,"180":1,"181":1,"196":1,"202":2,"207":2,"211":2,"212":1,"217":1,"218":1,"220":1,"222":1,"223":1,"225":1,"230":1}}],["65536",{"2":{"223":1}}],["64",{"2":{"133":2,"142":1,"150":2}}],["60",{"2":{"44":1,"50":1,"55":1}}],["60s",{"2":{"35":1,"90":1}}],["6",{"2":{"5":1,"32":1,"34":1,"49":1,"50":2,"171":1}}],["evaluating",{"2":{"225":1}}],["evaluate",{"2":{"224":1}}],["evaluated",{"2":{"222":1,"223":1}}],["ever",{"2":{"72":1,"140":1,"213":1}}],["everything",{"2":{"25":1,"140":1,"141":1}}],["every",{"2":{"23":1,"24":1,"54":2,"59":1,"140":1,"148":1,"157":2,"173":1,"174":1,"191":1,"220":1,"234":1}}],["event",{"2":{"97":1}}],["even",{"2":{"30":2,"51":1,"79":2,"142":1,"158":1,"203":1}}],["echo",{"2":{"221":1}}],["ebg",{"2":{"221":1}}],["eb",{"2":{"214":1}}],["ebd",{"2":{"214":4}}],["effects",{"2":{"211":1}}],["efforts",{"2":{"12":1}}],["essentially",{"2":{"217":1}}],["essential",{"2":{"208":1}}],["es",{"2":{"162":1}}],["estimation",{"2":{"158":1}}],["estimates",{"2":{"85":1}}],["estimated",{"2":{"33":1,"43":1,"45":1,"49":1,"86":1,"158":1}}],["estimate",{"2":{"32":1,"158":1}}],["equivalent",{"2":{"112":1}}],["equals",{"2":{"217":1}}],["equality",{"2":{"202":1}}],["equal",{"2":{"32":1,"82":1,"171":1,"202":1}}],["err",{"2":{"80":3,"83":1,"86":1,"89":3,"92":3,"95":3,"98":3}}],["erroneous",{"2":{"59":2}}],["errors",{"2":{"209":1}}],["error",{"0":{"60":1},"2":{"23":2,"30":1,"33":1,"35":2,"38":1,"41":1,"59":4,"60":3,"73":3,"220":1}}],["ephemeral",{"2":{"56":1}}],["epoch",{"2":{"35":2}}],["elevation",{"2":{"157":2,"173":2,"179":1}}],["elem",{"2":{"32":2}}],["element",{"2":{"20":7,"32":1,"71":2}}],["elements",{"0":{"159":1},"1":{"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1},"2":{"20":2,"85":2}}],["else",{"2":{"51":1}}],["etc",{"2":{"41":2,"136":1,"157":1,"171":1,"182":2,"184":1,"202":1,"222":1}}],["eta",{"2":{"41":1}}],["emergency",{"2":{"192":1}}],["emitted",{"2":{"178":1}}],["emit",{"2":{"178":1}}],["empty",{"2":{"20":1,"45":3,"59":1,"73":1,"174":1}}],["embedded",{"2":{"15":1,"222":1}}],["earth",{"2":{"69":1}}],["easily",{"2":{"153":1,"215":1}}],["east",{"2":{"41":1,"207":1}}],["easy",{"2":{"10":1}}],["each",{"2":{"14":2,"20":1,"27":1,"30":2,"35":6,"36":2,"38":1,"45":1,"47":7,"52":1,"73":2,"79":2,"83":1,"91":1,"92":2,"94":1,"95":1,"115":1,"121":1,"140":1,"148":1,"157":1,"162":2,"171":2,"173":1,"182":1,"190":1,"191":1,"204":1}}],["ensure",{"2":{"160":1,"212":1}}],["env",{"2":{"145":1}}],["environments",{"2":{"145":1,"196":1}}],["environment",{"0":{"8":1,"195":1},"1":{"196":1,"197":1,"198":1},"2":{"7":3,"145":5,"196":1,"197":1,"198":1}}],["enabling",{"2":{"79":1,"91":1,"94":1}}],["enables",{"2":{"230":1}}],["enable",{"2":{"13":1,"171":1}}],["enum",{"2":{"66":1,"67":2,"165":1,"166":1,"171":3,"174":4,"176":2}}],["engine=",{"2":{"145":1}}],["engineconfig",{"2":{"73":2,"75":1}}],["engine",{"2":{"58":1,"59":1,"111":3,"113":1,"114":1,"116":1,"118":1,"120":1,"122":1,"124":1,"130":1,"204":1,"207":2,"217":1}}],["enough",{"2":{"51":1}}],["entries",{"2":{"51":1}}],["entry",{"2":{"27":1,"35":1,"50":2,"54":4,"55":1,"81":1,"92":1,"111":1}}],["entered",{"2":{"54":1}}],["entering",{"2":{"51":1,"64":1,"67":1}}],["enter",{"2":{"51":1,"64":1,"67":1,"209":6}}],["ended",{"2":{"182":1}}],["endofroad",{"2":{"64":1,"67":1}}],["endpoint",{"2":{"41":1}}],["ending",{"2":{"37":1}}],["end",{"2":{"36":2,"51":1,"157":1,"168":1,"169":3,"170":4,"171":1,"173":2,"177":3,"179":2,"212":1,"217":1}}],["ends",{"2":{"36":1,"51":1,"64":1,"67":1,"94":1}}],["encoded",{"2":{"32":1,"33":1,"41":1,"79":1,"82":1,"85":1,"89":1,"91":1,"94":1,"126":1}}],["encoding",{"2":{"20":1,"49":2}}],["edges",{"2":{"20":1,"79":2,"82":2,"85":2,"91":2,"94":2,"162":2,"221":1,"224":1,"225":1}}],["edge",{"2":{"13":3,"20":1,"79":1,"82":1,"85":1,"91":1,"94":1,"162":1,"176":1,"203":1,"211":1,"224":2,"225":2}}],["editable",{"0":{"140":1},"2":{"134":1,"141":2}}],["edit",{"2":{"7":1}}],["e",{"2":{"10":1,"51":1,"52":10,"54":1,"56":1,"64":1,"66":8,"67":1,"73":2,"76":1,"126":1,"134":1,"140":3,"146":1,"148":1,"149":1,"151":1,"162":1,"171":5,"172":2,"176":1,"179":2,"181":2,"189":1,"191":1,"192":1,"193":1,"202":1,"208":1,"211":4,"214":3,"215":1,"216":6,"218":1,"222":1,"232":1}}],["either",{"2":{"7":1,"30":1,"35":1,"36":1,"41":1,"49":1,"73":1,"79":3,"82":2,"85":3,"91":3,"94":2,"136":1,"161":1,"171":1,"214":1}}],["executables",{"2":{"144":1}}],["executed",{"2":{"9":6}}],["exes",{"2":{"142":1}}],["exist",{"2":{"207":1}}],["existing",{"2":{"141":1,"142":1,"188":1}}],["exists",{"2":{"51":1,"150":1}}],["existence",{"2":{"51":1}}],["exitrotary",{"2":{"64":1,"67":1}}],["exitroundabout",{"2":{"64":1,"67":1}}],["exiting",{"2":{"51":2,"54":1,"64":2,"67":2}}],["exit",{"2":{"49":2,"51":10,"64":4,"67":4,"171":1,"172":1,"209":6,"220":3,"227":1,"230":2}}],["exits",{"2":{"49":1,"171":1}}],["exact",{"2":{"215":1}}],["exactly",{"2":{"20":1,"58":1,"68":1}}],["examine",{"2":{"39":2,"87":2,"171":1}}],["examples",{"0":{"80":1,"83":1,"86":1,"89":1,"92":1,"95":1,"98":1,"185":1},"2":{"169":1,"170":1,"179":1}}],["example",{"0":{"21":1,"25":1,"28":1,"29":1,"31":1,"33":1,"34":1,"37":1,"40":1,"41":1,"44":1,"46":1,"48":1,"50":1,"53":1,"55":1,"57":1,"74":1},"2":{"13":2,"20":1,"32":1,"51":2,"64":2,"67":2,"72":2,"73":1,"74":1,"153":1,"157":2,"158":1,"168":1,"173":2,"176":1,"177":2,"179":1,"181":1,"207":1,"221":1}}],["exclusive",{"2":{"77":1}}],["excludable",{"2":{"162":1}}],["excluding",{"2":{"21":1,"47":1}}],["exclude=motorway",{"2":{"21":1}}],["exclude",{"2":{"20":2,"79":1,"126":1,"162":2}}],["except",{"2":{"19":1,"20":1}}],["ext",{"2":{"146":5}}],["external",{"2":{"101":1,"103":1,"105":1,"107":1,"109":1,"173":1}}],["extensions",{"2":{"220":1}}],["extension",{"2":{"18":1,"146":1,"153":1,"221":1}}],["extremely",{"2":{"41":1}}],["extractor",{"2":{"167":1,"171":2,"174":4,"176":2}}],["extracted",{"2":{"162":1,"225":1}}],["extracting",{"2":{"157":1}}],["extractionturnleg",{"2":{"174":4}}],["extraction",{"2":{"6":1,"43":1,"172":1,"222":1}}],["extract",{"0":{"222":1},"2":{"20":1,"24":1,"54":1,"76":1,"131":1,"153":1,"154":4,"155":1,"157":1,"203":1,"222":1}}],["expressed",{"2":{"171":1,"214":1}}],["expanded",{"2":{"145":1}}],["exposed",{"2":{"171":1}}],["exposes",{"2":{"41":1}}],["export",{"2":{"136":2,"138":1}}],["explicitly",{"2":{"36":1,"149":1}}],["explanations",{"2":{"2":1}}],["experimental",{"2":{"231":1}}],["experiences",{"2":{"210":1}}],["experience",{"2":{"10":1}}],["expects",{"2":{"73":1,"220":1}}],["expect",{"2":{"73":1,"216":1}}],["expected",{"0":{"216":1},"2":{"23":1,"164":1,"216":3}}],["egs",{"2":{"33":1}}],["eg",{"2":{"4":1,"9":1,"164":2}}],["blocks",{"2":{"230":2}}],["blob",{"2":{"41":1}}],["bz2",{"2":{"222":1}}],["bde",{"2":{"216":4}}],["bd",{"2":{"214":3}}],["bc",{"2":{"207":3,"208":3,"209":1,"214":1}}],["b",{"2":{"158":1,"176":2,"207":1,"208":3,"209":1,"211":4,"214":4,"216":4}}],["broad",{"2":{"215":1}}],["breaking",{"2":{"189":1}}],["brew",{"2":{"137":1}}],["branches",{"2":{"192":1}}],["branch",{"2":{"136":1,"148":1,"149":2,"190":2,"192":2,"193":1}}],["brute",{"2":{"36":1,"93":1}}],["boundaries",{"2":{"224":1,"225":1}}],["boundary",{"2":{"223":2}}],["bound",{"2":{"215":1}}],["box",{"2":{"153":1}}],["bootstrap",{"2":{"136":1,"138":2,"233":2}}],["bootstrapped",{"2":{"136":1}}],["boost",{"0":{"202":1},"2":{"136":1,"137":2,"199":1,"200":1,"202":7}}],["bool",{"2":{"59":1,"64":1,"112":2,"115":2,"121":1,"123":1,"126":1,"169":3}}],["boolean",{"2":{"41":2,"52":1,"77":2,"79":7,"82":1,"85":1,"91":5,"94":5,"162":4,"163":2,"171":8,"174":9,"176":5}}],["bonus",{"2":{"41":2}}],["both",{"2":{"14":1,"15":1,"32":2,"62":1,"64":1,"73":1,"84":1,"85":1,"147":1,"158":1,"164":1,"166":1,"167":1,"171":2,"199":1}}],["bisection",{"2":{"223":3}}],["bitwise",{"2":{"169":1,"170":1}}],["bit",{"2":{"158":1}}],["big",{"2":{"157":1}}],["bicycle",{"2":{"153":1,"154":2,"158":1}}],["bicycles",{"2":{"152":1}}],["biasing",{"2":{"41":1}}],["bike",{"2":{"20":1,"152":1}}],["bin",{"2":{"142":2}}],["binding",{"2":{"76":3,"140":1}}],["bindings=on",{"2":{"234":1}}],["bindings",{"0":{"132":1},"1":{"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1},"2":{"15":2,"110":2,"133":3,"146":1,"150":1}}],["binary",{"2":{"41":1,"58":1,"133":1,"136":1,"145":1,"197":1,"201":1,"234":1}}],["binaries",{"0":{"201":1},"2":{"7":1,"76":1,"204":1,"232":1}}],["bumping",{"2":{"194":1}}],["bump",{"2":{"148":1}}],["bumps",{"2":{"147":1}}],["bundle",{"2":{"142":3}}],["buffer",{"2":{"59":2,"89":3,"97":4,"98":1}}],["built",{"2":{"18":1,"133":3,"142":1,"147":1,"179":1,"232":1}}],["building",{"0":{"139":1,"141":1,"231":1,"234":1},"1":{"140":1,"141":1,"142":1,"143":1,"232":1,"233":1,"234":1},"2":{"142":1,"231":1}}],["buildsystems",{"2":{"136":1,"140":1,"145":1}}],["builds",{"2":{"133":1,"136":2,"140":1,"145":1,"148":1,"225":1}}],["build",{"0":{"135":1},"1":{"136":1,"137":1,"138":1},"2":{"7":2,"136":3,"138":1,"140":11,"141":3,"142":2,"143":3,"144":2,"145":3,"146":2,"189":1,"204":3,"234":2}}],["buildpath",{"2":{"7":1}}],["but",{"2":{"14":1,"20":2,"27":1,"32":1,"41":1,"51":2,"58":1,"61":2,"62":1,"63":2,"64":5,"65":1,"67":3,"73":1,"79":1,"140":1,"158":1,"188":1,"208":1,"209":1,"216":1}}],["balance",{"2":{"223":1}}],["barrier",{"2":{"163":2,"164":2,"165":1,"170":1}}],["batcmake",{"2":{"234":1}}],["batgit",{"2":{"233":1}}],["bat",{"2":{"138":1,"144":1,"233":1}}],["background",{"2":{"207":1,"208":3}}],["backports",{"2":{"192":1}}],["backward",{"2":{"162":2,"166":1,"171":11}}],["backend",{"2":{"76":1,"101":1,"103":1,"105":1,"107":1,"109":1,"134":2,"148":1}}],["back",{"2":{"8":1}}],["basis",{"2":{"191":1}}],["basic",{"0":{"157":1},"2":{"18":1,"51":1,"64":1,"67":1,"73":1}}],["bashbase=map",{"2":{"221":1}}],["bashbrew",{"2":{"137":1}}],["bashosrm",{"2":{"154":1}}],["bashcibw",{"2":{"145":1}}],["bashcibuildwheel",{"2":{"145":1}}],["bashgit",{"2":{"134":1,"136":1}}],["bashpytest",{"2":{"144":1}}],["bashpython",{"2":{"131":1,"144":1}}],["bashpre",{"2":{"134":1}}],["bashpip",{"2":{"133":2,"142":3,"145":1,"146":2}}],["bash",{"2":{"21":1,"28":1,"31":1,"33":1,"37":2,"40":1,"140":1,"141":1,"144":1}}],["bash$",{"2":{"1":1,"2":1,"5":1,"6":1,"9":1}}],["baseline",{"2":{"136":1,"232":1}}],["baseparameters",{"0":{"126":1},"2":{"73":3,"115":1,"117":1,"119":1,"121":1,"123":1}}],["base64",{"2":{"20":1,"79":1,"82":1,"85":1,"91":1,"94":1,"126":1}}],["based",{"2":{"13":3,"33":1,"35":1,"85":1,"91":1,"158":1,"173":1,"174":5,"176":3,"179":1,"182":1,"211":1,"222":1}}],["base",{"2":{"3":3,"73":1,"222":1,"226":1,"230":1}}],["bytes",{"2":{"124":1,"229":2}}],["by",{"2":{"3":1,"6":3,"7":1,"8":2,"20":4,"27":2,"30":4,"32":1,"35":4,"36":3,"39":1,"43":1,"45":2,"49":1,"51":3,"54":2,"56":1,"64":1,"67":1,"70":1,"76":2,"77":1,"79":2,"80":2,"82":1,"83":1,"85":2,"88":1,"91":1,"92":1,"94":2,"97":1,"104":1,"111":1,"126":1,"140":1,"146":1,"147":3,"154":1,"157":1,"162":1,"174":4,"176":2,"215":1,"219":1,"220":1,"222":2,"223":1,"224":1,"225":1,"228":1}}],["behavior",{"2":{"152":1}}],["behaviours",{"2":{"96":1}}],["behaviour",{"0":{"216":1},"2":{"77":2,"215":1}}],["being",{"2":{"77":1,"171":1,"207":1}}],["bend",{"2":{"52":7,"66":7}}],["belonging",{"2":{"49":1}}],["belongs",{"2":{"41":2}}],["below",{"2":{"23":1,"138":1,"210":1,"219":1,"223":1}}],["berlin",{"2":{"21":2,"31":1,"37":2,"80":1}}],["bearing",{"0":{"129":1},"2":{"20":5,"28":1,"41":3,"51":2,"54":5,"79":1,"82":1,"85":1,"91":1,"94":1,"126":1,"129":4}}],["bearings=0",{"2":{"28":1}}],["bearings",{"2":{"20":1,"50":2,"54":6,"55":1,"79":1,"82":1,"83":1,"85":1,"91":1,"94":1,"126":1}}],["before",{"2":{"13":1,"51":2,"54":2,"137":1,"145":1,"171":1,"174":1,"176":1,"179":1,"216":1,"230":1}}],["better",{"2":{"10":1,"35":1,"91":1}}],["between",{"2":{"7":1,"18":1,"28":1,"30":1,"32":4,"33":2,"35":2,"43":1,"45":1,"47":5,"51":1,"54":1,"78":1,"85":1,"91":1,"92":1,"102":1,"114":1,"116":1,"140":1,"167":1,"173":1,"178":1,"188":1,"202":1,"216":1,"223":1}}],["best",{"2":{"9":1,"158":3,"218":1}}],["because",{"2":{"7":1,"35":1,"38":1,"76":1,"92":1,"158":1}}],["be",{"2":{"3":1,"6":1,"7":1,"8":1,"9":11,"12":1,"13":3,"20":3,"23":4,"24":1,"27":2,"30":4,"32":2,"33":6,"35":10,"36":5,"38":1,"39":2,"41":3,"43":1,"45":1,"49":2,"51":6,"52":1,"54":3,"56":1,"58":1,"59":4,"64":2,"67":2,"71":4,"72":1,"77":1,"79":10,"82":7,"85":6,"86":1,"87":2,"90":3,"91":6,"92":1,"93":2,"94":6,"97":2,"140":1,"144":1,"152":1,"157":1,"158":6,"160":1,"162":9,"163":2,"164":2,"169":1,"170":1,"171":4,"173":1,"174":3,"176":2,"177":2,"178":4,"179":2,"188":2,"189":1,"190":3,"197":3,"198":1,"201":1,"206":1,"207":1,"208":1,"211":1,"213":1,"214":3,"215":2,"216":2,"217":1,"222":2,"224":1}}],["nbg",{"2":{"222":1}}],["nw",{"2":{"162":1}}],["nilsnolde",{"2":{"136":1}}],["num",{"2":{"171":1}}],["numbers",{"2":{"49":2,"171":1}}],["number=3",{"2":{"28":1}}],["number=",{"2":{"27":1}}],["number",{"2":{"4":1,"20":2,"27":3,"30":2,"32":2,"35":1,"43":1,"45":1,"49":2,"51":2,"71":2,"73":1,"77":9,"79":1,"82":3,"83":1,"85":3,"91":1,"92":1,"115":1,"118":1,"119":2,"171":5,"172":2,"174":4,"176":1,"179":2,"220":2,"223":1,"229":6}}],["null",{"2":{"33":2,"35":1,"71":1,"79":4,"82":3,"85":4,"91":2,"92":1,"94":3}}],["navigation",{"2":{"207":2}}],["napi",{"2":{"76":3}}],["nationen",{"2":{"34":2}}],["native",{"2":{"15":1,"234":1}}],["nanobind",{"2":{"15":1,"146":3}}],["namely",{"2":{"54":2}}],["named",{"2":{"51":1,"64":1,"67":1,"112":1,"215":1}}],["names",{"0":{"172":1,"208":1},"2":{"9":1,"45":1,"46":1,"47":4,"48":1,"49":2,"171":1,"172":3,"221":1}}],["name",{"2":{"3":1,"12":1,"20":1,"23":1,"29":3,"34":6,"41":2,"43":2,"44":1,"49":8,"50":1,"51":5,"56":2,"57":1,"64":2,"67":2,"77":3,"112":2,"162":3,"171":3,"172":8,"207":2,"208":4,"209":1,"214":1,"228":5,"230":4}}],["neighbor",{"2":{"222":1}}],["nearby",{"2":{"179":1}}],["nearestparameters",{"0":{"119":1},"2":{"118":1}}],["nearest=1",{"2":{"111":1}}],["nearest",{"0":{"27":1,"81":1,"118":1},"1":{"28":1,"29":1,"82":1,"83":1,"119":1},"2":{"20":1,"27":3,"28":2,"41":1,"56":1,"77":2,"81":1,"82":2,"83":1,"112":2,"118":2,"119":1,"126":1,"179":1,"222":1,"229":2}}],["necessary",{"2":{"177":1,"215":1}}],["necessarily",{"2":{"51":1,"64":1,"67":1,"217":1}}],["next",{"2":{"54":1,"148":1}}],["newname",{"2":{"64":1,"67":1}}],["new",{"0":{"181":1,"187":1,"188":1},"1":{"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1},"2":{"51":4,"76":1,"80":1,"83":1,"86":1,"89":1,"92":1,"95":1,"98":1,"150":1,"153":1,"163":1,"164":1,"168":1,"182":1,"188":1,"194":1,"197":1,"201":1,"203":1,"205":1,"218":1}}],["never",{"2":{"41":1,"216":1}}],["negative",{"2":{"41":2}}],["nest",{"2":{"14":1}}],["needed",{"2":{"77":1,"133":1,"145":1,"162":1,"221":1}}],["need",{"2":{"12":1,"14":1,"35":1,"73":2,"142":1,"154":1,"155":1,"158":1,"161":1,"203":1,"214":1,"225":1,"232":1}}],["needs",{"2":{"12":2,"136":1,"157":1,"188":1}}],["network",{"2":{"10":1,"20":2,"27":1,"35":1,"76":2,"79":1,"81":1,"82":1,"83":1,"85":1,"86":1,"89":1,"90":1,"92":1,"94":1,"95":1,"97":1,"98":1,"120":1,"157":1,"174":1,"207":1,"223":1}}],["noise",{"2":{"173":1}}],["noisy",{"2":{"35":1,"91":1,"120":1}}],["non",{"2":{"145":1,"171":2,"194":1}}],["none",{"2":{"20":1,"52":1,"66":1,"115":2,"126":7,"165":1,"166":1,"220":1,"222":1}}],["nomatch",{"2":{"35":1}}],["normalized",{"2":{"171":1}}],["normal",{"2":{"51":3,"64":1,"67":1}}],["normally",{"2":{"41":1,"158":1}}],["noroute",{"2":{"30":1}}],["north",{"2":{"20":1,"41":1,"51":2,"54":3,"79":1,"82":1,"85":1,"91":1,"94":1}}],["nosegment",{"2":{"23":1}}],["now",{"2":{"13":1,"36":1,"73":1,"93":1,"216":1,"224":1,"225":1}}],["nodeb",{"2":{"224":1,"225":1}}],["nodea",{"2":{"224":1,"225":1}}],["nodejs",{"2":{"96":1,"97":2}}],["nodes",{"2":{"27":1,"29":3,"30":1,"35":1,"36":1,"46":1,"47":1,"48":1,"61":2,"79":1,"91":1,"94":1,"115":1,"156":1,"167":4,"168":1,"169":2,"170":2,"173":1,"207":1,"208":4,"209":1,"211":3,"214":2,"221":1,"223":1}}],["nodeid",{"2":{"12":1,"174":3}}],["nodeidvectortolinestring",{"2":{"12":3,"13":2,"14":6}}],["node",{"0":{"163":2,"168":1},"2":{"12":3,"13":2,"14":2,"15":3,"27":1,"41":1,"45":1,"47":2,"76":5,"152":1,"157":3,"163":5,"167":3,"168":10,"169":6,"170":6,"174":3,"175":1,"187":1,"188":1,"207":1,"208":3,"209":1,"211":2,"214":5,"216":2,"222":3,"223":1,"224":3,"225":3,"234":1}}],["no",{"2":{"9":4,"18":1,"30":1,"31":1,"32":1,"33":3,"35":1,"36":1,"38":1,"49":2,"51":3,"52":2,"54":1,"64":1,"66":2,"67":1,"93":3,"117":1,"133":1,"140":3,"141":2,"142":2,"143":1,"145":1,"146":1,"151":1,"181":1,"182":1,"184":1,"187":1,"188":1,"190":1,"191":1,"194":1,"197":1,"207":1,"214":2,"217":1}}],["notation",{"2":{"73":2}}],["notable",{"2":{"33":1}}],["nothing",{"2":{"51":1,"171":1}}],["notification",{"2":{"51":2,"64":1,"67":1}}],["notimplemented",{"2":{"33":1,"38":1}}],["notrips",{"2":{"38":1}}],["not",{"2":{"3":1,"9":3,"14":1,"20":3,"23":2,"24":2,"30":1,"32":1,"33":2,"35":4,"36":3,"38":2,"43":2,"47":2,"51":2,"54":3,"56":1,"59":1,"64":2,"67":2,"77":1,"79":6,"82":1,"85":1,"90":3,"91":3,"93":2,"94":1,"140":1,"142":1,"143":1,"145":1,"147":1,"152":1,"155":1,"156":2,"157":1,"158":1,"160":1,"169":1,"170":1,"171":1,"174":6,"176":3,"177":1,"188":1,"198":1,"202":1,"203":2,"207":1,"208":2,"209":2,"214":1,"215":3,"216":1,"217":1}}],["notes",{"2":{"133":1,"161":1,"162":2,"163":1,"164":1,"168":1,"169":1,"170":1,"171":1,"172":2,"173":1,"174":1,"176":1,"189":1,"191":1,"193":1}}],["noted",{"2":{"19":1}}],["note",{"2":{"3":1,"4":1,"30":1,"32":1,"35":1,"36":1,"41":1,"51":1,"79":1,"81":1,"90":1,"93":1,"97":1,"145":2,"162":1,"163":1,"167":1,"169":1,"170":1,"176":1}}],["n",{"2":{"4":2,"27":1,"30":1,"81":1,"182":1,"220":1,"222":1,"223":2,"227":1,"229":6}}],["np",{"2":{"36":1,"93":1}}],["npx",{"2":{"2":1}}],["npmjs",{"2":{"150":1}}],["npm",{"2":{"1":1,"5":1,"9":1,"147":1,"148":3,"181":1,"184":1,"185":5,"191":1,"193":1,"194":2}}],["january",{"2":{"182":1,"185":1}}],["java",{"2":{"58":1}}],["javascriptvar",{"2":{"76":1,"80":1,"83":1,"86":1,"89":1,"92":1,"95":1,"98":1}}],["javascript",{"2":{"58":1,"76":1,"97":1}}],["journey",{"2":{"171":1}}],["job",{"2":{"148":2}}],["judgement",{"2":{"218":1}}],["junction",{"2":{"171":1,"172":2}}],["jumps",{"2":{"35":1,"90":1}}],["justified",{"2":{"216":1,"218":1}}],["just",{"2":{"3":1,"54":2,"156":1,"157":1,"164":1,"167":1,"172":1}}],["j",{"2":{"33":7,"86":4}}],["json",{"2":{"20":2,"25":1,"27":1,"29":1,"34":1,"44":1,"46":1,"48":1,"50":1,"53":1,"55":1,"57":1,"58":3,"61":3,"62":3,"63":2,"64":5,"65":2,"66":1,"67":2,"68":1,"71":1,"73":5,"75":1,"79":1,"82":1,"97":3,"130":1,"136":4,"148":2,"151":1,"191":2,"194":1,"232":2}}],["js",{"2":{"2":1,"15":3,"39":1,"88":1,"199":1,"209":5}}],["immutable",{"2":{"164":1}}],["immediately",{"2":{"51":2,"54":2,"97":1,"227":1}}],["image",{"2":{"136":3,"143":1,"145":1}}],["impossible",{"2":{"207":1}}],["importantly",{"2":{"73":1,"171":1}}],["important",{"0":{"73":1},"2":{"155":1,"207":1,"214":1}}],["improving",{"2":{"206":1}}],["improbable",{"2":{"35":1,"90":1}}],["implied",{"2":{"209":1}}],["implies",{"2":{"167":1}}],["implication",{"2":{"207":1}}],["implement",{"2":{"202":1}}],["implemented",{"2":{"20":1,"73":1}}],["implementation",{"2":{"3":1}}],["impassable",{"2":{"163":1,"164":1}}],["impacts",{"0":{"217":1},"2":{"217":1}}],["impact",{"2":{"10":2,"217":1}}],["iypwpavravadi",{"2":{"50":1}}],["identical",{"2":{"140":1,"209":1}}],["identifier",{"2":{"56":1}}],["identifiers",{"2":{"51":1}}],["id",{"2":{"47":2}}],["ids",{"2":{"12":3,"13":1,"14":2,"27":1,"45":1,"167":1,"175":1}}],["ios",{"2":{"35":1}}],["ignored",{"2":{"97":1,"158":1,"171":1}}],["ignore",{"2":{"35":1,"73":1,"91":1,"121":1,"214":1}}],["i",{"2":{"33":7,"52":8,"66":8,"86":4,"172":1,"207":2,"208":6,"209":2,"216":4,"227":1}}],["iq",{"2":{"33":1}}],["ik",{"2":{"21":1}}],["item",{"2":{"140":1}}],["items",{"2":{"3":1,"215":1}}],["iteration",{"2":{"130":1}}],["its",{"2":{"73":2,"136":2,"140":1,"161":1,"162":1,"197":1,"200":1}}],["itself",{"2":{"12":1,"51":2,"58":1,"64":2,"67":2,"133":1,"178":1,"213":1,"216":1}}],["it",{"2":{"9":1,"10":1,"11":1,"12":4,"13":1,"24":1,"27":1,"30":2,"35":2,"36":3,"41":3,"43":1,"51":2,"59":1,"64":2,"67":2,"72":2,"73":5,"76":1,"79":2,"91":1,"92":1,"93":1,"97":1,"111":1,"138":1,"140":2,"142":1,"145":2,"152":1,"155":1,"156":1,"157":2,"158":2,"162":2,"163":4,"167":1,"168":1,"171":4,"172":1,"173":1,"174":1,"176":1,"179":1,"196":1,"197":1,"202":2,"206":1,"208":1,"209":1,"214":2,"216":2,"230":1,"233":1}}],["ipa",{"2":{"49":1}}],["ip",{"2":{"7":4,"227":2}}],["isolation",{"2":{"140":3,"141":2,"143":1,"146":1}}],["isolated",{"2":{"9":2,"140":1,"145":1}}],["issues",{"2":{"210":1,"212":1}}],["issue",{"2":{"17":1}}],["is",{"2":{"4":1,"5":1,"6":1,"7":3,"8":2,"9":2,"10":1,"11":2,"12":1,"13":1,"18":1,"20":5,"23":5,"24":1,"27":2,"30":1,"33":2,"35":7,"36":6,"38":1,"41":8,"43":3,"45":1,"47":2,"49":7,"51":7,"52":3,"54":3,"56":1,"58":4,"59":3,"64":1,"66":2,"67":1,"71":3,"72":3,"73":9,"76":2,"77":3,"79":1,"82":1,"83":1,"85":4,"86":1,"91":1,"92":5,"93":2,"94":2,"96":1,"97":5,"111":1,"140":2,"142":1,"143":2,"145":3,"146":1,"148":1,"150":1,"152":1,"156":2,"157":6,"158":4,"160":3,"162":3,"163":4,"164":1,"167":1,"168":1,"171":9,"172":4,"173":2,"174":18,"176":15,"177":2,"178":5,"179":1,"189":1,"190":2,"191":4,"192":1,"193":3,"194":1,"196":2,"197":1,"198":1,"202":1,"203":3,"206":1,"207":2,"208":1,"211":2,"213":1,"214":4,"215":3,"216":3,"217":3,"223":2,"231":1,"232":1}}],["iff",{"2":{"9":3}}],["if",{"2":{"3":1,"12":1,"13":2,"14":1,"20":2,"24":1,"27":1,"30":3,"32":1,"33":4,"35":5,"36":2,"38":1,"45":1,"49":6,"51":4,"54":1,"64":2,"67":2,"71":1,"73":1,"77":1,"79":4,"80":1,"85":1,"86":1,"89":1,"90":2,"91":2,"92":2,"95":1,"97":2,"98":1,"140":2,"145":1,"148":2,"153":1,"157":1,"158":5,"160":1,"161":1,"162":1,"163":1,"169":4,"170":1,"171":1,"174":1,"176":1,"177":4,"178":3,"179":1,"196":1,"197":1,"198":1,"201":1,"202":3,"203":1,"207":1,"208":2,"212":1,"215":2,"216":5,"217":2,"218":2}}],["involved",{"2":{"177":1}}],["invoking",{"2":{"145":1}}],["invocation",{"2":{"140":1}}],["invalidvalue",{"2":{"23":1}}],["invalidversion",{"2":{"23":1}}],["invalidquery",{"2":{"23":1}}],["invalidoptions",{"2":{"23":1}}],["invalidservice",{"2":{"23":1}}],["invalid",{"2":{"23":4,"179":4}}],["invalidurl",{"2":{"23":1}}],["inherited",{"2":{"126":1}}],["inherits",{"2":{"115":1,"117":1,"119":1,"121":1,"123":1}}],["inherit",{"2":{"73":1}}],["inheriting",{"2":{"73":1}}],["initialized",{"2":{"75":1}}],["initialize",{"2":{"73":1}}],["initializing",{"2":{"73":1}}],["initialisation",{"2":{"12":1}}],["info",{"2":{"220":1}}],["information",{"2":{"47":1,"54":1,"60":1,"171":1,"173":1,"174":2,"176":1,"177":1}}],["influence",{"2":{"212":1}}],["influences",{"2":{"30":1,"35":1,"36":1,"79":1,"91":1,"94":1,"152":1,"178":1}}],["incoming",{"2":{"174":1,"176":2,"197":1}}],["incurs",{"2":{"163":2}}],["included",{"2":{"49":3,"157":1}}],["include",{"2":{"47":2,"58":1,"59":1,"79":1,"91":1,"115":1,"126":1,"145":1,"171":2,"174":4,"176":2}}],["inclusion",{"2":{"12":1}}],["increase",{"2":{"158":1}}],["increasing",{"2":{"35":1}}],["incremental",{"2":{"35":1,"92":1,"184":1}}],["independent",{"2":{"203":1,"212":1}}],["index",{"2":{"30":3,"32":9,"35":7,"38":4,"47":1,"54":2,"79":1,"85":4,"91":1,"92":4,"95":4}}],["individually",{"2":{"204":1}}],["individual",{"2":{"171":1}}],["indication",{"2":{"52":10,"66":9}}],["indications",{"2":{"50":4,"52":4,"53":1,"55":1,"66":1}}],["indicating",{"2":{"33":1,"49":1,"51":3,"52":7,"66":6,"73":2,"86":1}}],["indicate",{"2":{"92":1,"171":1,"178":1,"208":1}}],["indicates",{"2":{"35":1,"51":6,"54":2,"64":3,"67":3}}],["indicated",{"2":{"30":1,"35":1,"189":1}}],["indices",{"2":{"30":1,"35":1,"73":1,"79":1,"91":1,"115":1,"117":2,"121":1,"176":1}}],["inputs",{"0":{"221":1},"2":{"56":1,"149":1,"220":1,"221":2}}],["input",{"0":{"154":1},"2":{"20":1,"23":1,"27":1,"30":2,"32":3,"35":5,"36":2,"38":2,"44":1,"56":1,"59":1,"79":1,"82":1,"83":2,"85":4,"91":3,"93":1,"94":1,"95":1,"117":1,"136":1,"154":1,"157":1,"163":1,"171":1,"179":1,"220":1,"222":2,"223":1,"224":1,"225":1}}],["insertion",{"2":{"36":1,"93":1}}],["inside",{"2":{"35":1,"92":1,"136":1,"145":2,"168":1,"169":1,"170":1}}],["instruction",{"2":{"51":2,"54":1,"64":2,"67":2,"217":1}}],["instructions",{"2":{"36":1,"45":1,"51":2,"172":2,"178":1,"206":4,"207":2,"208":1}}],["instead",{"2":{"20":1,"71":1,"72":1,"112":1,"136":1,"149":1,"158":1,"171":1,"172":1,"173":2,"196":1,"202":1,"216":2,"225":1,"228":1}}],["installed",{"2":{"142":2,"143":2,"144":1}}],["installing",{"0":{"133":1,"134":1}}],["installs",{"2":{"131":1}}],["install",{"0":{"140":1},"2":{"110":2,"133":3,"134":4,"136":2,"137":2,"140":3,"141":2,"142":3,"145":2,"146":2,"233":1}}],["installations",{"2":{"20":1}}],["instance",{"2":{"12":1,"73":1,"75":1,"76":2}}],["inspecting",{"2":{"216":1,"217":1}}],["inspect",{"2":{"10":2,"142":4,"218":1}}],["int",{"2":{"112":6,"115":2,"117":2,"119":1,"121":2,"125":3,"126":2}}],["introduction",{"0":{"72":1},"2":{"72":1,"200":1,"205":1}}],["introduced",{"2":{"51":2,"205":1}}],["introduce",{"2":{"10":1,"188":1}}],["intermediate",{"2":{"222":1}}],["interaction",{"2":{"217":1}}],["interpolate",{"2":{"179":2}}],["interpolating",{"2":{"179":1}}],["interpreter",{"2":{"162":1}}],["interpreters",{"2":{"162":1}}],["interface",{"0":{"73":1},"2":{"72":1}}],["internal",{"2":{"41":1,"56":1,"124":1,"130":1,"167":2,"169":1,"170":1,"222":1}}],["intersections",{"2":{"49":1,"50":1,"54":2,"64":2}}],["intersection",{"0":{"54":1,"65":1},"1":{"55":1},"2":{"41":1,"49":1,"51":2,"54":10,"64":2,"65":1,"67":1,"174":4,"176":2,"211":2}}],["interested",{"2":{"20":1,"79":1}}],["interesting",{"2":{"4":1}}],["integers",{"2":{"70":1,"73":1,"91":1,"179":1}}],["integer",{"2":{"20":2,"27":1,"32":1,"35":1,"41":5,"51":1,"79":2,"82":3,"85":4,"91":2,"94":2,"171":1,"174":9,"176":4}}],["into",{"0":{"12":1},"1":{"13":1},"2":{"2":1,"3":1,"12":2,"14":1,"51":1,"54":2,"64":1,"67":1,"72":1,"73":1,"77":2,"85":1,"112":1,"148":1,"152":1,"173":1,"205":1,"207":1,"211":1,"214":1,"215":1,"223":1,"228":1,"230":1}}],["in",{"0":{"156":1,"187":1},"2":{"0":1,"3":2,"6":2,"7":4,"8":1,"9":1,"10":1,"12":1,"13":2,"18":1,"20":8,"23":1,"27":2,"30":6,"32":5,"33":8,"35":11,"36":4,"37":2,"38":4,"39":2,"41":8,"43":3,"45":2,"47":3,"49":5,"50":2,"51":11,"52":2,"54":4,"55":1,"56":1,"58":4,"59":1,"64":6,"65":1,"67":7,"71":2,"72":2,"73":3,"74":1,"76":3,"77":7,"78":1,"79":9,"80":2,"81":1,"82":7,"83":1,"85":11,"86":8,"87":2,"90":2,"91":5,"92":2,"94":7,"95":2,"101":1,"103":1,"105":1,"107":1,"109":1,"112":6,"126":3,"130":2,"134":1,"136":2,"137":1,"138":1,"140":1,"141":2,"142":2,"143":1,"145":5,"147":1,"153":1,"155":1,"156":2,"157":6,"158":2,"162":10,"163":2,"164":3,"167":4,"168":2,"170":2,"171":15,"172":1,"173":3,"174":12,"176":7,"177":3,"178":3,"179":6,"180":1,"182":1,"188":1,"189":3,"190":1,"193":1,"194":1,"196":1,"198":1,"201":2,"203":3,"204":1,"205":1,"206":1,"207":5,"208":1,"209":1,"210":2,"211":2,"212":1,"213":1,"214":1,"215":5,"216":3,"217":3,"218":1,"221":2,"222":1,"227":1,"229":7,"230":3,"232":2}}],["f",{"2":{"176":1}}],["fmt",{"2":{"137":1}}],["fst",{"2":{"202":1}}],["fs",{"2":{"89":1}}],["fbresult",{"2":{"59":1}}],["fundamentally",{"2":{"216":1}}],["function",{"2":{"73":3,"75":1,"79":1,"80":1,"82":1,"83":1,"85":1,"86":1,"88":1,"89":1,"91":1,"92":1,"94":1,"95":1,"98":1,"157":5,"161":5,"162":5,"168":2,"169":1,"170":2,"171":2,"172":2,"173":2,"174":1,"177":3,"179":2,"202":1}}],["functions",{"0":{"180":1},"2":{"73":3,"157":6,"161":4,"171":1,"180":1,"201":1}}],["furthermore",{"2":{"203":1}}],["further",{"2":{"52":1,"54":1,"76":1}}],["future",{"2":{"51":1}}],["fully",{"2":{"52":1,"66":1,"227":1}}],["full",{"2":{"30":2,"35":2,"36":2,"43":2,"54":1,"79":1,"91":1,"94":1,"114":1,"115":1,"133":1,"140":1,"146":1,"219":1,"230":1}}],["full|simplified|false",{"2":{"30":1}}],["fly",{"2":{"197":1}}],["flow",{"0":{"155":1},"2":{"155":1}}],["floating",{"2":{"73":2}}],["float",{"2":{"35":1,"41":4,"43":2,"45":2,"49":2,"69":2,"71":2,"92":1,"112":1,"117":2,"126":3,"162":2,"164":2,"171":6,"173":7,"174":3}}],["flat",{"2":{"71":2}}],["flatbuffers",{"0":{"58":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1},"2":{"20":1,"58":3,"59":1,"79":1,"82":1,"97":3,"137":1}}],["flags",{"2":{"54":1,"140":2,"178":2,"220":1}}],["flag",{"2":{"52":1,"220":1,"222":1,"223":1,"224":1,"225":1,"227":1,"228":1,"229":1,"230":1}}],["flies",{"2":{"32":1,"85":2,"117":1}}],["fixture",{"0":{"203":1}}],["fix",{"2":{"189":1}}],["fixed",{"2":{"73":1,"158":1,"203":1}}],["fixing",{"2":{"36":1}}],["fill",{"2":{"73":1}}],["filled",{"2":{"73":1}}],["file=$env",{"2":{"140":1}}],["file=$vcpkg",{"2":{"136":1,"145":1}}],["filenames",{"2":{"47":1}}],["filename",{"2":{"41":1,"222":1}}],["file",{"0":{"12":1},"1":{"13":1},"2":{"12":1,"14":1,"24":2,"47":2,"77":3,"89":1,"111":1,"112":1,"136":1,"137":1,"145":1,"154":2,"157":2,"161":1,"179":2,"196":1,"220":1,"221":1,"222":4,"224":8,"225":7}}],["files",{"0":{"161":1},"2":{"2":2,"3":1,"6":1,"9":1,"14":2,"73":1,"76":1,"77":2,"112":1,"137":1,"140":1,"156":1,"157":2,"161":1,"196":1,"221":1,"222":3,"224":1,"228":1}}],["finishes",{"2":{"150":1}}],["finish",{"2":{"148":1,"230":1}}],["finding",{"2":{"161":2}}],["find",{"2":{"72":1,"137":1,"179":1,"215":1,"217":1}}],["finds",{"2":{"30":1,"114":1,"118":1,"141":1}}],["fine",{"2":{"47":1,"72":1,"214":1}}],["first",{"2":{"36":11,"37":1,"47":1,"49":1,"54":1,"70":2,"79":1,"91":1,"93":4,"94":1,"95":1,"115":1,"122":1,"123":2,"140":1,"172":1,"181":1,"182":1,"214":1,"223":1,"234":1}}],["fields",{"2":{"59":1,"62":1,"64":1}}],["fieldset",{"2":{"59":1}}],["field",{"2":{"12":1,"24":1,"27":1,"41":1,"47":1,"61":2,"62":2,"63":2,"64":4,"71":2,"217":1}}],["frequent",{"2":{"230":1}}],["free",{"2":{"4":1}}],["fraction",{"2":{"223":2}}],["france",{"2":{"73":2}}],["francisco",{"2":{"40":1}}],["friedrichstraße",{"2":{"29":3,"34":2,"57":1}}],["from",{"0":{"169":1,"170":1,"175":1},"2":{"12":1,"20":2,"24":1,"33":3,"35":1,"39":1,"41":2,"49":1,"51":3,"54":2,"56":1,"59":1,"64":1,"67":1,"73":5,"77":1,"79":1,"86":2,"87":1,"111":1,"126":1,"133":1,"136":1,"140":3,"143":1,"145":3,"149":2,"158":1,"167":1,"169":6,"170":6,"173":1,"174":2,"176":1,"192":1,"196":1,"207":1,"208":3,"209":4,"214":3,"215":1,"216":1,"219":1,"222":1,"223":1,"224":3,"225":3,"228":1,"234":2}}],["feat",{"2":{"189":2}}],["features",{"2":{"12":1,"14":1,"203":1,"205":1,"206":2,"209":6,"210":1}}],["feature",{"0":{"206":1},"2":{"9":2,"12":1,"41":1,"77":2,"206":1,"209":1,"213":1,"228":1,"230":1}}],["ferries",{"2":{"162":1}}],["ferry",{"2":{"162":1,"171":2}}],["feel",{"2":{"216":1}}],["feeling",{"2":{"10":1}}],["feeds",{"2":{"152":1}}],["fetches",{"2":{"40":1}}],["few",{"2":{"10":1,"12":1,"73":2,"180":1}}],["folder",{"2":{"74":1,"161":1}}],["follows",{"2":{"20":1,"157":1,"172":1,"176":1}}],["followed",{"2":{"3":1,"49":1,"104":1,"162":1,"219":1}}],["following",{"2":{"3":1,"9":1,"19":1,"20":2,"27":2,"30":2,"32":1,"33":1,"35":4,"36":2,"38":2,"51":1,"52":1,"59":1,"61":1,"62":1,"63":1,"64":2,"65":1,"66":1,"67":2,"92":1,"93":1,"95":1,"162":2,"163":1,"165":1,"166":1,"168":1,"171":1,"172":1,"173":1,"174":1,"177":1,"178":1,"208":1,"209":1,"214":1}}],["follow",{"2":{"2":1,"20":1,"51":1,"64":1,"67":1,"71":1,"158":1,"178":1,"189":1,"210":1,"214":1}}],["four",{"2":{"37":1,"211":1}}],["found",{"2":{"23":1,"30":1,"32":1,"33":3,"35":2,"38":1,"90":1,"117":1,"156":1,"211":1}}],["footway=sidewalk",{"2":{"172":1}}],["foot",{"2":{"20":1,"152":1,"153":1,"154":2}}],["forcibly",{"2":{"230":1}}],["force",{"2":{"36":1,"93":1,"115":1,"140":1,"162":1}}],["forces",{"2":{"30":1,"79":1,"162":1}}],["forbidding",{"2":{"214":1}}],["forbidden",{"2":{"214":2}}],["forward",{"2":{"162":2,"164":2,"166":1,"168":1,"171":13,"188":4}}],["forwarding",{"2":{"145":1}}],["forks",{"2":{"178":1}}],["fork",{"2":{"51":2,"64":2,"67":2,"178":1}}],["for",{"0":{"133":1,"134":1,"140":1,"212":1,"231":1},"1":{"232":1,"233":1,"234":1},"2":{"7":2,"10":1,"12":4,"13":2,"14":8,"15":2,"20":3,"27":1,"30":5,"32":2,"33":2,"35":10,"36":6,"40":1,"41":4,"43":1,"47":3,"49":5,"51":4,"54":5,"56":1,"58":1,"59":2,"62":1,"64":5,"67":3,"72":1,"73":9,"76":3,"77":3,"79":7,"82":2,"84":2,"85":4,"91":7,"92":2,"93":3,"94":4,"97":2,"115":2,"117":1,"118":1,"121":1,"122":1,"126":2,"130":1,"133":3,"136":2,"138":1,"142":1,"143":2,"145":1,"148":1,"152":2,"153":2,"155":1,"156":1,"157":3,"158":2,"161":9,"162":7,"163":1,"170":2,"171":6,"172":5,"173":5,"174":3,"178":2,"179":3,"181":1,"185":1,"190":1,"192":1,"193":1,"194":1,"196":1,"197":1,"199":1,"200":1,"201":2,"202":2,"203":2,"205":1,"207":1,"209":1,"212":2,"215":3,"216":2,"220":1,"221":1,"222":4,"224":1,"225":2,"229":2,"230":3,"231":1,"234":1}}],["formats",{"2":{"62":1,"64":1,"187":1}}],["format",{"0":{"58":1,"184":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1},"2":{"4":1,"20":5,"30":1,"35":1,"36":1,"43":1,"58":5,"61":2,"62":1,"63":2,"64":3,"65":1,"67":1,"79":3,"82":2,"91":1,"94":1,"97":6,"98":1,"115":1,"146":1,"179":1,"181":1,"189":1,"191":1,"192":1,"193":1,"214":2,"221":1}}],["farthest",{"2":{"36":1,"93":1}}],["far",{"2":{"35":1}}],["factoring",{"2":{"179":1}}],["factors",{"2":{"158":1}}],["factor",{"2":{"32":1,"85":1,"117":1,"223":1,"224":2,"225":2}}],["factory",{"2":{"13":3}}],["fallback",{"2":{"32":3,"33":3,"34":1,"51":1,"85":4,"86":2,"117":3,"172":2}}],["false",{"2":{"20":2,"30":5,"35":4,"36":8,"43":1,"45":3,"50":4,"53":1,"54":1,"55":2,"79":6,"91":4,"93":4,"94":3,"95":1,"115":2,"121":1,"162":3,"171":1}}],["faster",{"2":{"30":1,"58":1,"79":1}}],["fastest",{"2":{"30":1,"32":2,"36":1,"78":1,"114":1,"152":2,"158":2,"171":1}}],["fast",{"2":{"2":1,"4":1}}],["failure",{"2":{"216":1}}],["failing",{"0":{"215":1},"1":{"216":1,"217":1,"218":1}}],["failed",{"2":{"148":1,"202":2}}],["fails",{"2":{"136":1,"148":1}}],["fail",{"2":{"2":1,"4":1}}],["89",{"2":{"34":1}}],["872438",{"2":{"29":1}}],["811961",{"2":{"29":1}}],["8",{"2":{"2":1,"34":1,"98":1,"209":1}}],["pinned",{"2":{"136":1,"232":1}}],["pipeline",{"2":{"219":1}}],["pip",{"2":{"110":1,"134":1,"140":4,"141":2}}],["pyi",{"2":{"146":5}}],["pyproject",{"2":{"145":2,"151":1}}],["pypi",{"2":{"133":1,"147":1,"148":3,"150":1}}],["pythonbearing",{"2":{"129":1}}],["pythoncoord",{"2":{"128":1}}],["pythonparams",{"2":{"114":1,"116":1,"118":1,"120":1,"122":1,"124":1}}],["pythonresult",{"2":{"113":1,"130":1}}],["pythonimport",{"2":{"111":1}}],["python",{"0":{"110":1,"132":1},"1":{"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1},"2":{"15":2,"58":1,"110":1,"131":6,"133":2,"136":1,"144":1,"146":5,"151":1}}],["pbf>",{"2":{"222":1}}],["pbf",{"2":{"76":1,"89":1,"131":1,"153":1,"154":3,"222":1}}],["php",{"2":{"58":1}}],["phonetic",{"2":{"49":1}}],["phase",{"2":{"43":1}}],["penalty",{"2":{"157":1,"162":1,"171":1,"174":2,"224":3,"225":2}}],["penalized",{"2":{"35":1}}],["pep",{"2":{"140":1}}],["person",{"2":{"218":1}}],["persist",{"2":{"196":1}}],["persistent",{"2":{"18":1,"77":2,"140":1}}],["perceived",{"2":{"215":1}}],["performance",{"2":{"222":1}}],["performed",{"2":{"97":1}}],["perfectly",{"2":{"214":1}}],["perf",{"2":{"189":1}}],["per",{"2":{"12":1,"18":1,"30":1,"35":1,"36":1,"79":1,"91":1,"94":1,"126":1,"182":1,"184":1,"219":1,"221":1,"223":1}}],["periodically",{"2":{"6":1}}],["plus",{"2":{"136":1}}],["plugins",{"2":{"96":1}}],["plugin",{"2":{"36":1,"93":1,"97":4}}],["planet",{"2":{"153":1,"154":3}}],["platform",{"0":{"135":1},"1":{"136":1,"137":1,"138":1},"2":{"133":2,"140":1,"142":1,"145":5,"150":1}}],["platz",{"2":{"34":2}}],["placed",{"2":{"153":1}}],["place",{"2":{"47":1,"164":1}}],["plausible",{"2":{"35":1,"90":1}}],["please",{"2":{"30":1,"35":1,"51":1,"79":1,"90":1,"178":1}}],["plenty",{"2":{"7":1}}],["publication",{"2":{"193":1,"194":1}}],["publishing",{"2":{"194":1}}],["publish",{"2":{"148":4}}],["publisher",{"2":{"148":1}}],["publishes",{"2":{"147":1}}],["published",{"2":{"133":1,"150":1,"191":2,"194":1,"232":1}}],["pure",{"2":{"211":1}}],["purely",{"2":{"178":1}}],["purpose",{"2":{"136":1}}],["pushed",{"2":{"191":1}}],["push",{"2":{"148":1}}],["pushing",{"2":{"147":1}}],["put",{"2":{"13":1,"59":1}}],["pull",{"2":{"8":1,"189":1}}],["pr",{"2":{"189":1}}],["primitives",{"0":{"202":1},"2":{"202":1}}],["primary",{"2":{"172":1,"177":2,"207":3,"208":10,"211":8}}],["private",{"2":{"171":1}}],["priority",{"2":{"171":2,"174":4,"176":2,"178":5}}],["prioritize",{"2":{"158":1}}],["prior",{"2":{"77":2}}],["prints",{"2":{"221":1}}],["print",{"2":{"13":1,"113":2,"128":1,"129":1,"130":1,"202":2,"217":1,"218":1,"220":1}}],["printing",{"2":{"12":1}}],["preset",{"2":{"234":2}}],["presence",{"2":{"212":1}}],["present",{"2":{"54":1,"59":5,"164":1,"174":1,"208":1}}],["prefix",{"2":{"184":1,"191":1}}],["prefixed",{"2":{"181":1}}],["preferable",{"2":{"158":1}}],["prefer",{"2":{"158":4,"203":1}}],["preferences",{"2":{"158":1}}],["prevent",{"0":{"210":1},"1":{"211":1,"212":1,"213":1},"2":{"207":1,"210":1}}],["prevents",{"2":{"171":1}}],["previously",{"2":{"140":1}}],["previous",{"2":{"20":1,"126":1,"182":1}}],["preparation",{"2":{"222":1}}],["prepared",{"2":{"76":1,"77":1,"111":1,"226":1,"230":1}}],["prepare",{"2":{"20":1,"203":1}}],["preprocessing",{"2":{"153":1,"155":1}}],["prerequisites",{"0":{"233":1},"2":{"133":1}}],["precompiled",{"2":{"58":1}}],["preceded",{"2":{"51":1,"64":1,"67":1}}],["precision",{"2":{"20":1,"35":1,"49":2,"91":1,"162":2}}],["pre",{"2":{"13":1,"133":2,"134":1,"136":2,"143":1}}],["prompt",{"2":{"234":1}}],["progress",{"2":{"178":1}}],["production",{"0":{"133":1}}],["produces",{"2":{"222":1}}],["produce",{"2":{"14":1,"141":1}}],["providing",{"2":{"75":1}}],["provides",{"2":{"15":1,"58":1}}],["provide",{"2":{"5":1,"12":2,"14":1,"58":1,"73":1,"110":1}}],["pronounce",{"2":{"49":1}}],["pronunciation",{"2":{"49":5,"51":1,"64":1,"67":1,"171":2,"172":2}}],["proceeds",{"2":{"49":1}}],["processes",{"2":{"157":1,"172":1,"230":1}}],["processed",{"2":{"23":1}}],["processing",{"0":{"155":1,"217":1},"2":{"13":1,"155":1,"157":3,"161":3,"162":3,"167":1,"173":1,"188":1,"217":2}}],["process",{"0":{"163":1,"171":1,"173":1,"174":1,"191":1},"1":{"175":1,"176":1,"177":1},"2":{"12":1,"157":6,"162":2,"163":3,"167":5,"168":4,"169":2,"170":2,"171":6,"173":3,"174":4,"176":1,"177":3,"179":1,"182":1}}],["protozero",{"2":{"137":1}}],["protobuf",{"2":{"41":1}}],["protocol",{"2":{"20":1,"58":2,"89":1}}],["properties",{"2":{"27":1,"30":1,"33":1,"35":3,"38":2,"43":1,"45":1,"47":1,"49":1,"51":2,"52":1,"54":1,"56":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"69":1,"70":1,"73":2,"92":1,"95":1,"162":3,"188":2}}],["property",{"2":{"23":1,"24":1,"41":2,"43":1,"49":2,"51":4,"54":1,"64":1,"65":1,"67":2,"83":1,"92":1,"162":1}}],["project",{"2":{"17":1,"21":3,"28":1,"31":1,"33":6,"37":2,"40":1,"41":1,"134":1,"150":2,"201":1}}],["probable",{"2":{"7":1,"35":1,"92":1}}],["probably",{"2":{"4":1}}],["problems",{"2":{"10":1}}],["problem",{"2":{"7":1,"36":1,"93":1,"122":1,"148":1}}],["profile",{"0":{"163":1,"171":1,"173":1,"174":1},"1":{"175":1,"176":1,"177":1},"2":{"3":12,"8":2,"16":1,"20":5,"27":1,"30":2,"32":1,"35":1,"36":1,"39":1,"41":1,"43":1,"46":3,"47":3,"48":3,"54":1,"79":2,"82":1,"85":1,"91":1,"94":1,"152":3,"153":3,"154":3,"155":1,"157":6,"160":2,"162":3,"163":1,"168":1,"169":1,"170":1,"171":2,"177":1,"179":3,"207":1,"208":3,"209":1,"222":3}}],["profilespath",{"2":{"7":1}}],["profiles",{"0":{"3":1,"152":1,"153":1,"154":1,"156":1,"157":1},"1":{"153":1,"154":2,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1},"2":{"3":9,"7":3,"8":1,"16":1,"20":1,"41":1,"76":3,"131":1,"152":3,"153":4,"154":4,"155":1,"156":1,"157":1,"158":1,"160":1,"161":1,"178":1,"180":1,"222":1}}],["power",{"2":{"171":1}}],["powershelldelvewheel",{"2":{"142":1}}],["powershellremove",{"2":{"140":1}}],["powershell",{"2":{"140":1,"141":1}}],["powershellgit",{"2":{"138":1}}],["powerful",{"2":{"15":1,"156":1}}],["potentially",{"2":{"43":1,"51":1,"100":1,"217":1}}],["pointing",{"2":{"52":1}}],["point",{"2":{"35":2,"38":2,"51":2,"69":3,"92":3,"95":2,"111":1,"136":1,"162":1,"164":1,"171":1,"173":1,"179":1}}],["points",{"2":{"35":6,"36":1,"73":1,"85":1,"90":2,"91":1,"92":2,"179":1}}],["post",{"0":{"217":1},"2":{"217":2}}],["possibilities",{"2":{"178":1}}],["possibility",{"2":{"52":1,"66":1}}],["possible",{"0":{"13":1},"2":{"13":1,"27":1,"36":2,"51":1,"64":1,"67":1,"93":1,"152":1,"156":2,"157":1,"158":1,"173":1,"174":1,"211":1,"214":1,"218":1}}],["position",{"0":{"69":1},"2":{"20":1,"51":1,"61":1,"62":1,"64":1,"65":1,"67":1}}],["pollution",{"2":{"173":1}}],["polyline|polyline6|geojson",{"2":{"30":1,"35":1,"36":1}}],["polyline6",{"2":{"20":2,"30":1,"35":1,"36":1,"49":1,"62":1,"64":1,"115":1}}],["polyline",{"2":{"20":4,"21":2,"30":1,"33":2,"35":1,"36":1,"49":3,"62":2,"64":2,"79":1,"91":1,"94":1,"115":2}}],["policy",{"2":{"12":3,"14":1}}],["policies",{"2":{"12":1}}],["portable",{"2":{"142":1}}],["port",{"2":{"4":1,"7":3,"136":1,"227":2}}],["ports",{"2":{"4":2,"136":1}}],["patch",{"0":{"187":1},"2":{"182":1,"190":1,"192":1}}],["patchlevel",{"0":{"187":1},"2":{"148":1,"149":1,"181":2,"184":3,"191":1,"192":1,"193":1}}],["path=",{"2":{"145":1}}],["path",{"2":{"7":5,"36":1,"54":1,"73":1,"77":3,"93":2,"111":2,"112":1,"142":2,"145":2,"154":1,"158":2,"206":1,"222":4}}],["pamagevjaoauaaaaiaaaaacaaaaaaaaarss0qa7lnehivira4lseqaoaaaaqaaaabaaaaaaaaadmaaaaaezmaklyiqm8tmwarvghawea3wps52d3",{"2":{"34":2}}],["pair",{"2":{"32":1,"47":5,"51":1,"54":1,"56":1,"70":3,"73":1}}],["pairs",{"2":{"32":2,"33":1,"126":2,"170":2}}],["parent",{"0":{"197":1},"2":{"197":2}}],["parsing",{"2":{"161":1,"224":1,"225":1}}],["parse",{"2":{"222":2,"224":1,"225":1}}],["parser",{"2":{"58":1}}],["parsers",{"2":{"58":1}}],["parseduration",{"2":{"180":1}}],["parsed",{"2":{"23":1}}],["parks",{"2":{"158":1}}],["parts",{"2":{"173":2,"214":1}}],["particular",{"2":{"152":2,"158":1}}],["partitioning",{"2":{"224":1}}],["partitioned",{"2":{"224":1}}],["partitions",{"2":{"223":1}}],["partition",{"0":{"223":1},"2":{"131":1,"223":1,"225":1}}],["partial",{"2":{"41":1}}],["part",{"2":{"20":1,"79":1,"171":2,"216":1}}],["paradigm",{"2":{"215":1}}],["params",{"2":{"113":1,"114":1,"116":1,"118":1,"120":1,"122":1,"124":1,"130":1}}],["parameter",{"2":{"20":3,"24":1,"35":1,"43":3,"45":2,"49":1,"51":1,"64":1,"67":1,"73":2}}],["parameters",{"0":{"77":1,"79":1,"82":1,"85":1,"88":1,"91":1,"94":1,"97":1,"101":1,"103":1,"105":1,"107":1,"109":1,"112":1},"2":{"6":1,"12":2,"14":2,"20":1,"23":1,"51":1,"64":1,"67":1,"73":4,"75":1,"79":1,"82":1,"85":1,"91":1,"94":1,"97":1,"113":1,"126":1,"178":1,"187":1,"188":1}}],["parallelized",{"2":{"162":1}}],["parallel",{"2":{"2":1,"4":2,"9":1}}],["packages",{"2":{"181":1,"184":1}}],["package",{"2":{"20":1,"110":1,"131":1,"133":1,"137":1,"144":1,"148":2,"150":1,"151":1,"191":3,"194":2}}],["passes",{"2":{"54":1}}],["passed",{"2":{"49":1,"163":1,"168":1}}],["passing",{"2":{"20":1,"30":1,"54":2,"158":1,"163":1,"212":1}}],["pass",{"2":{"4":1,"5":1,"20":3,"138":1,"142":1,"152":1,"173":1,"193":1}}],["p",{"2":{"2":3,"3":1,"76":1,"131":1,"153":1,"222":1,"227":1}}],["l",{"2":{"220":1}}],["ll",{"2":{"152":1}}],["ld",{"2":{"145":3}}],["lu",{"2":{"50":1}}],["luaobstacle",{"2":{"170":1}}],["luabool",{"2":{"169":1}}],["luafunction",{"2":{"168":1,"169":1,"170":1,"179":2}}],["lualocal",{"2":{"164":1}}],["lua",{"0":{"156":1},"2":{"3":1,"8":1,"16":1,"20":1,"41":2,"46":3,"47":1,"48":3,"58":1,"76":1,"131":1,"137":1,"153":2,"154":3,"156":2,"157":1,"161":9,"162":2,"172":1,"173":1,"176":1,"177":1,"179":2,"222":3}}],["len",{"2":{"130":1}}],["lengths",{"2":{"207":1}}],["length",{"2":{"32":1,"41":1,"158":2,"173":1,"176":1}}],["left",{"0":{"176":1},"2":{"41":2,"49":1,"50":1,"51":8,"52":7,"53":1,"55":1,"64":3,"66":4,"67":2,"162":2,"174":5,"176":4}}],["lets",{"2":{"73":1}}],["let",{"2":{"39":1,"87":1}}],["less",{"2":{"35":1,"36":1,"72":1,"93":1,"202":1}}],["leaves",{"2":{"51":1,"64":1,"67":1}}],["leading",{"2":{"169":1,"170":1,"174":1,"181":1,"182":1,"184":1,"191":1}}],["lead",{"2":{"35":1,"90":1}}],["least",{"2":{"27":1}}],["legal",{"2":{"49":1}}],["legs",{"2":{"30":1,"35":1,"36":1,"43":2,"44":1,"62":1,"79":1,"94":1}}],["leg",{"0":{"63":1},"2":{"30":2,"35":1,"36":1,"45":2,"47":1,"51":2,"62":2,"63":1,"64":2,"67":2,"79":2,"115":1,"176":1}}],["level",{"2":{"2":1,"30":1,"35":1,"36":1,"41":1,"43":1,"79":1,"91":1,"125":1,"220":1,"223":3,"228":1}}],["launcher",{"2":{"143":1}}],["language",{"2":{"156":1,"171":1}}],["land",{"2":{"145":1}}],["lands",{"2":{"141":1}}],["lane",{"0":{"52":1,"66":1},"1":{"53":1},"2":{"51":1,"52":4,"54":2,"65":2,"66":1}}],["lanes",{"2":{"50":2,"51":1,"54":3,"55":1,"65":1,"171":6,"174":4,"176":2}}],["later",{"2":{"157":1,"161":1,"177":1}}],["latest",{"2":{"80":1,"153":1}}],["latter",{"2":{"97":1}}],["lat",{"2":{"73":2,"79":1,"82":1,"85":1,"91":1,"94":1,"128":1,"173":2,"179":2}}],["latitude",{"2":{"20":3,"27":1,"49":2,"51":1,"54":1,"56":1,"69":2,"73":2,"81":1,"126":1,"179":2}}],["layout",{"2":{"58":1}}],["layer",{"2":{"41":2}}],["layers",{"2":{"41":1}}],["last",{"2":{"36":9,"37":1,"47":1,"79":1,"91":1,"93":4,"94":1,"95":1,"115":1,"122":1,"123":1,"182":1}}],["larger",{"2":{"35":2,"51":1,"64":1,"67":1}}],["large",{"2":{"35":1,"41":1,"51":1,"64":1,"67":1,"90":1,"178":1,"217":1,"222":1}}],["labeled",{"2":{"9":1}}],["lt",{"2":{"12":2,"13":2,"14":6,"32":2,"41":1,"85":4,"91":1,"142":1,"148":1,"150":1,"174":2,"202":2,"220":2,"221":1,"222":5,"223":5,"224":5,"225":5,"227":3,"228":3,"229":9,"230":3}}],["light",{"2":{"163":1,"164":1,"174":2}}],["lights",{"2":{"163":1}}],["live",{"2":{"142":1,"224":1,"225":1,"230":1}}],["lives",{"2":{"12":1,"72":1,"145":1}}],["literal",{"2":{"79":1,"82":1,"85":1,"91":1,"94":1,"97":1}}],["lifting",{"2":{"73":1}}],["lifetime",{"2":{"12":2}}],["lib64",{"2":{"145":1}}],["libs",{"2":{"142":1}}],["libraries",{"2":{"142":1}}],["library",{"0":{"161":1},"2":{"72":1,"133":1,"142":1,"145":3,"157":2,"161":1,"187":1,"188":1,"199":1,"203":1}}],["libosmium",{"2":{"137":1}}],["libosrm",{"2":{"72":3}}],["lib",{"2":{"76":3,"161":1}}],["links",{"2":{"154":1}}],["link",{"2":{"137":1,"142":1,"171":2,"174":4,"176":2,"178":1}}],["linux=",{"2":{"145":1}}],["linux",{"0":{"136":1},"2":{"133":2,"136":1,"140":1,"141":1,"142":2,"143":1,"144":1,"145":7}}],["linux|darwin|win32",{"2":{"9":2}}],["line",{"0":{"219":1},"1":{"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1},"2":{"131":1,"145":1,"171":1,"173":1,"219":1,"221":2}}],["linestring",{"2":{"44":1,"49":1}}],["limits",{"0":{"229":1},"2":{"20":2,"79":2,"82":2,"85":2,"91":1,"94":2,"222":1}}],["limited",{"2":{"18":1,"51":1}}],["limitations",{"0":{"14":1}}],["listen",{"2":{"227":2}}],["listed",{"2":{"54":1}}],["listdeps",{"2":{"142":1}}],["list",{"0":{"221":1},"2":{"12":2,"13":1,"14":2,"20":1,"41":1,"49":1,"51":1,"54":2,"79":1,"115":2,"117":3,"121":2,"126":7,"130":1,"162":2,"171":1,"220":1,"221":2,"223":1,"230":4}}],["likely",{"2":{"35":1,"168":1,"169":1,"170":1}}],["like",{"2":{"12":1,"20":1,"39":1,"41":1,"47":1,"51":1,"88":2,"91":1,"113":1,"130":2,"152":2,"153":1,"157":2,"158":1,"162":1,"164":4,"173":2,"216":1,"217":1}}],["low",{"2":{"158":1}}],["locks",{"2":{"230":2}}],["lock",{"0":{"196":1},"2":{"148":1,"191":1,"196":3,"230":1}}],["locally",{"0":{"139":1,"145":1},"1":{"140":1,"141":1,"142":1,"143":1},"2":{"142":2}}],["local",{"2":{"136":1,"143":1,"145":1,"151":2,"157":1,"171":1,"179":3}}],["locations",{"2":{"20":1,"28":1,"32":2,"33":1,"35":1,"73":1,"77":8,"84":1,"111":4,"112":8,"211":1,"217":1,"229":3}}],["location",{"0":{"13":1},"2":{"12":1,"13":3,"20":2,"29":3,"32":3,"34":6,"35":3,"36":1,"49":1,"50":2,"51":4,"52":1,"54":3,"55":1,"56":1,"57":1,"61":2,"65":2,"67":2,"85":2,"91":1,"123":1,"173":1,"212":2,"217":1,"222":5}}],["located",{"2":{"6":1,"51":2,"58":1,"64":2,"67":2,"206":1}}],["loop",{"2":{"97":1,"164":1,"165":1}}],["lookups",{"2":{"222":1}}],["looking",{"2":{"157":1,"216":1}}],["look",{"2":{"72":1,"173":1,"200":1,"202":1,"205":1,"216":1,"217":1}}],["looks",{"2":{"12":1,"214":1,"216":1}}],["lon",{"2":{"73":2,"79":1,"82":1,"85":1,"91":1,"94":1,"128":1,"173":2,"179":2}}],["longer",{"2":{"158":1}}],["longitude",{"2":{"20":3,"27":1,"49":2,"51":1,"54":1,"56":1,"69":2,"73":2,"81":1,"126":1,"179":2}}],["long",{"2":{"12":1,"41":2,"70":2,"133":1,"173":1}}],["lobster",{"2":{"58":1}}],["lortzingstraße",{"2":{"50":1}}],["logical",{"2":{"220":1}}],["log",{"2":{"13":1,"80":2,"83":1,"86":4,"92":2,"95":2,"98":1,"198":1,"202":1,"220":1,"224":1,"225":1}}],["logger",{"2":{"12":1,"14":1}}],["logging",{"0":{"198":1},"2":{"11":2,"12":3,"13":2,"198":1}}],["logs",{"2":{"7":3}}],["logspath",{"2":{"7":1}}],["lost",{"2":{"7":1,"197":1}}],["loads",{"2":{"226":1,"230":1}}],["loaded",{"2":{"77":1,"157":1,"162":1,"230":1}}],["loading",{"0":{"228":1},"2":{"77":1,"112":1,"157":1,"162":1,"179":1,"196":1,"228":2,"230":1}}],["loadmethod",{"2":{"7":1}}],["load",{"2":{"2":3,"3":3,"7":2,"9":3,"73":1,"144":1,"161":1,"179":4,"228":1}}],["mm",{"0":{"188":1}}],["mmap=true",{"2":{"112":1}}],["mmap",{"2":{"2":2,"3":2,"77":4,"112":1,"228":1}}],["md",{"2":{"140":1,"142":3}}],["m",{"2":{"131":7,"144":1,"146":2,"148":1,"149":1,"162":1,"181":3,"184":4,"191":2,"192":2,"193":1,"216":4,"228":1,"229":2}}],["middle",{"2":{"215":1}}],["micro",{"2":{"214":1}}],["microsoft",{"2":{"136":1,"138":1,"233":1}}],["min",{"2":{"179":2}}],["minimum",{"2":{"222":1}}],["minimality",{"2":{"203":1}}],["minimize",{"2":{"58":1}}],["mini",{"2":{"164":1,"165":1,"209":7}}],["mismatches",{"2":{"202":1}}],["mismatch",{"2":{"140":1}}],["missing",{"2":{"136":1}}],["misses",{"2":{"136":1}}],["mix",{"2":{"73":1}}],["might",{"2":{"30":1,"33":1,"35":3,"38":1,"51":1,"52":1,"90":2,"158":1,"215":1,"217":1}}],["myst",{"2":{"209":10}}],["my",{"0":{"215":1},"1":{"216":1,"217":1,"218":1},"2":{"51":2,"64":2,"67":2}}],["mvt",{"2":{"39":1,"40":1}}],["movement",{"2":{"157":1,"174":1}}],["mount",{"2":{"145":1}}],["monitor",{"2":{"194":1}}],["month",{"0":{"187":1,"188":1},"2":{"148":1,"181":1,"182":3,"184":2,"190":2,"191":2,"192":1,"193":1}}],["monthly",{"0":{"148":1},"2":{"147":2,"149":1,"151":1,"181":1,"182":2,"190":2,"192":1}}],["monaco",{"2":{"144":1}}],["monotonically",{"2":{"35":1}}],["motorway",{"2":{"126":1,"162":2,"171":2,"174":4,"176":2,"177":1,"178":2}}],["motorways",{"2":{"21":1,"162":2}}],["modifying",{"2":{"155":1,"157":1}}],["modify",{"2":{"153":1,"163":1,"171":1,"208":1}}],["modifier",{"2":{"41":2,"50":1,"51":18,"64":11,"67":12,"215":1}}],["modification",{"2":{"35":1,"91":1}}],["modules",{"2":{"76":5}}],["modern",{"2":{"232":1}}],["modes",{"2":{"152":1}}],["modelling",{"2":{"209":1}}],["model",{"2":{"41":2,"214":1}}],["mode",{"2":{"20":1,"49":2,"50":1,"51":2,"64":1,"67":1,"134":1,"138":1,"164":1,"171":7,"174":6,"176":3,"232":1}}],["most",{"2":{"14":1,"35":1,"73":1,"90":1}}],["more",{"2":{"3":2,"18":1,"35":2,"36":1,"78":1,"85":1,"93":1,"114":1,"155":1,"224":1,"225":1,"230":1}}],["mutually",{"2":{"77":1}}],["much",{"2":{"58":1,"72":1,"218":1}}],["must",{"2":{"13":1,"20":1,"79":1,"82":1,"91":1,"115":1,"140":1,"162":2,"179":2,"189":1}}],["multiply",{"2":{"85":1}}],["multiple",{"0":{"154":1},"2":{"3":1,"14":1,"35":1,"43":1,"52":1,"56":1,"90":1,"100":1,"209":5,"230":1}}],["multi",{"2":{"2":1,"223":1,"228":1}}],["ms",{"2":{"7":2}}],["making",{"2":{"215":1}}],["makes",{"2":{"173":1}}],["make",{"2":{"4":1,"10":1,"12":1,"41":2,"77":1,"140":1,"142":1,"144":1,"145":1,"158":1,"203":1,"204":1,"209":1,"217":1}}],["master",{"2":{"148":1,"149":1,"190":3,"192":1}}],["macos",{"0":{"137":1},"2":{"133":2,"137":1,"140":1,"141":1,"142":1,"143":2,"144":1,"145":1,"150":1}}],["machine",{"2":{"3":1,"73":4}}],["managed",{"2":{"228":1,"232":1}}],["management",{"0":{"190":1}}],["mandatory",{"2":{"171":2}}],["manual",{"0":{"149":1,"192":1},"2":{"182":1,"193":2,"194":1}}],["manually",{"2":{"146":1,"190":1,"192":1,"202":1}}],["mangle",{"2":{"142":2}}],["manifest",{"2":{"138":1,"232":1}}],["manylinux",{"2":{"136":4,"142":2,"143":1,"145":1,"150":1}}],["many",{"2":{"79":1,"157":1,"158":1,"161":1,"168":1,"173":2,"174":2,"176":1,"208":1}}],["maneuvertype",{"2":{"67":1}}],["maneuvers",{"2":{"54":2,"208":1}}],["maneuver",{"2":{"49":4,"50":1,"51":6,"52":1,"54":2,"64":4,"67":4,"104":1}}],["maxspeed",{"2":{"161":1}}],["max",{"2":{"77":14,"111":6,"112":12,"162":2,"179":2,"223":1,"229":8,"230":1}}],["maximum",{"2":{"73":1,"161":1,"162":2,"223":2,"229":8}}],["main",{"2":{"71":1,"73":1,"76":1,"97":1,"111":1,"143":1,"172":1}}],["markers",{"2":{"172":1}}],["marked",{"2":{"79":1,"82":1,"85":1,"91":1,"94":1,"148":1,"172":1}}],["mark",{"2":{"171":1}}],["marks",{"2":{"59":1}}],["marking",{"2":{"52":1}}],["may",{"2":{"41":3,"51":1,"59":3,"164":2,"169":1,"170":1,"171":1,"178":1,"185":1,"188":3,"203":1,"222":1}}],["major",{"2":{"33":2,"45":1,"86":4,"178":1}}],["malformed",{"2":{"23":1}}],["matrices",{"2":{"71":2,"116":1}}],["matrix",{"2":{"33":9,"71":2,"73":1,"85":4,"86":4}}],["matter",{"2":{"20":1,"79":1}}],["matchparameters",{"0":{"121":1},"2":{"120":1}}],["matched",{"2":{"35":4,"38":1,"90":1,"92":3,"95":1}}],["matches",{"2":{"9":6,"27":1,"35":1,"81":1,"90":1}}],["matching=3",{"2":{"111":1}}],["matchings",{"2":{"35":5,"92":6}}],["matching",{"2":{"12":1,"35":8,"77":4,"90":2,"91":2,"92":4,"112":1,"150":1,"151":1,"162":2,"229":4}}],["match",{"0":{"35":1,"90":1,"120":1},"1":{"91":1,"92":1,"121":1},"2":{"12":1,"20":2,"30":1,"35":3,"59":1,"90":1,"91":1,"92":1,"112":1,"120":1,"126":1,"136":1,"140":1,"145":1}}],["maps",{"2":{"203":1}}],["mappings",{"2":{"156":1}}],["mapped",{"2":{"2":1,"172":1}}],["map",{"0":{"167":1,"168":1,"169":1,"170":1},"1":{"168":1,"169":1,"170":1},"2":{"35":4,"39":2,"41":1,"77":5,"87":1,"88":1,"90":1,"91":1,"92":2,"111":1,"112":2,"162":1,"163":1,"168":1,"169":5,"170":5,"175":1,"207":1,"208":3,"209":1,"211":2,"214":2,"216":2,"228":1,"229":2}}],["mapbox",{"2":{"10":1,"39":2,"87":1,"88":1}}],["mjs",{"2":{"3":1,"7":2}}],["mechanics",{"0":{"151":1}}],["mechanism",{"2":{"11":1}}],["member",{"2":{"73":2,"163":1,"164":1,"171":1}}],["memory=true",{"2":{"111":1}}],["memory=false",{"2":{"111":1}}],["memory",{"2":{"2":3,"39":1,"77":11,"87":1,"111":1,"112":5,"144":1,"196":2,"228":6,"230":6}}],["merges",{"2":{"145":1}}],["merge",{"2":{"49":1,"51":3,"64":3,"67":3,"104":1}}],["merged",{"2":{"3":1}}],["measure",{"2":{"158":1}}],["measures",{"2":{"158":1}}],["measured",{"2":{"35":1}}],["meaning",{"2":{"51":1,"171":1}}],["means",{"2":{"35":2,"73":2,"140":1,"155":1}}],["message",{"2":{"23":2,"25":1,"58":1,"60":2,"220":1}}],["metric",{"2":{"212":1,"230":2}}],["metres",{"2":{"85":1,"229":1}}],["metadata",{"2":{"30":1,"35":1,"36":1,"39":1,"46":1,"47":3,"48":1,"87":1,"115":1,"222":2}}],["meters",{"2":{"20":1,"32":1,"33":1,"35":1,"43":1,"45":1,"47":1,"49":1,"56":1,"79":1,"82":1,"83":1,"85":1,"86":1,"91":1,"94":1,"112":1,"126":1,"171":2,"207":3,"208":3,"209":1,"216":1,"217":1}}],["methods",{"2":{"2":1,"113":1}}],["method",{"2":{"2":1,"3":3,"7":2,"9":3,"76":1}}],["mentioned",{"2":{"5":1}}],["mld",{"2":{"2":2,"3":2,"77":1,"111":1,"112":1,"223":1,"224":1,"228":1,"229":1}}],["hsgr",{"2":{"221":1}}],["hwloc",{"2":{"142":3}}],["h",{"2":{"41":1,"171":1,"174":2,"176":1,"220":1}}],["huge",{"2":{"35":1,"91":1}}],["human",{"2":{"23":1}}],["having",{"2":{"169":1,"170":1}}],["have",{"2":{"36":2,"39":1,"52":1,"76":1,"87":1,"93":2,"148":1,"153":1,"162":1,"167":2,"173":3,"174":2,"176":1,"177":1,"200":1,"202":2,"205":1,"216":1}}],["hand",{"2":{"147":1,"162":1,"174":2}}],["handling",{"2":{"121":1,"161":3}}],["handles",{"2":{"172":1,"194":1}}],["handle",{"2":{"156":1,"157":2,"158":1}}],["handled",{"2":{"51":1}}],["handlers",{"2":{"161":1,"172":1}}],["handler",{"2":{"13":1}}],["hard",{"2":{"36":1,"41":1,"93":1}}],["hash",{"2":{"157":1,"162":2,"171":1,"179":1}}],["hashes",{"2":{"140":1}}],["has",{"2":{"23":1,"24":2,"27":1,"35":2,"38":1,"54":1,"72":1,"73":1,"83":1,"92":2,"95":1,"97":1,"141":1,"157":1,"172":1,"174":1,"179":1,"209":1}}],["history",{"0":{"182":1},"2":{"189":1}}],["hills",{"2":{"173":1}}],["hits",{"2":{"136":1}}],["high",{"2":{"158":1,"171":1,"198":1}}],["highway=path",{"2":{"172":1}}],["highway=cycleway",{"2":{"172":1}}],["highway=footway",{"2":{"172":1}}],["highway",{"0":{"177":1},"2":{"51":3,"64":3,"67":3,"162":2,"171":1,"174":4,"176":2,"177":9,"207":1,"208":3,"209":1,"211":2}}],["higher",{"2":{"41":1}}],["highest",{"2":{"30":1,"35":1,"36":1,"43":1,"79":1,"91":1,"158":1}}],["hint",{"2":{"20":6,"29":3,"34":6,"49":1,"56":3,"57":1,"79":1,"82":1,"85":1,"91":1,"94":1,"172":1}}],["hints",{"2":{"20":4,"79":3,"82":3,"85":3,"91":3,"94":3,"126":4}}],["hierarchy",{"2":{"2":1,"223":1,"225":1,"228":1}}],["hpp",{"2":{"12":2,"171":2,"174":4,"176":2,"217":2}}],["https",{"2":{"39":1,"134":1,"136":1,"138":1,"233":1}}],["http",{"0":{"18":1},"1":{"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1},"2":{"7":2,"15":2,"16":1,"18":2,"19":1,"21":3,"23":2,"27":1,"28":1,"31":1,"33":6,"37":2,"40":1,"41":1,"72":1,"73":1,"187":1,"188":1,"198":1,"226":2,"227":1,"229":1}}],["httptimeout",{"2":{"7":1}}],["headers",{"2":{"217":1}}],["header",{"2":{"214":1,"229":2}}],["heavy",{"2":{"73":1}}],["help",{"2":{"220":2}}],["helpful",{"2":{"207":1}}],["helps",{"2":{"189":1}}],["helper",{"0":{"180":1},"2":{"161":2,"180":1}}],["held",{"2":{"6":1}}],["heuristic",{"2":{"36":1,"93":1}}],["here",{"2":{"4":1,"13":1,"59":1,"72":2,"73":1,"214":1}}],["hosted",{"2":{"232":1}}],["host",{"2":{"145":3}}],["hosts",{"2":{"145":1}}],["hooks",{"2":{"134":1}}],["holds",{"2":{"73":1}}],["horizontalaccuracy",{"2":{"35":1}}],["homebrew",{"2":{"137":1,"143":1}}],["home",{"2":{"2":1,"3":1}}],["however",{"2":{"36":1,"173":1,"177":1,"214":1,"216":1}}],["how",{"0":{"11":1},"2":{"0":1,"5":1,"10":1,"35":1,"41":4,"49":1,"72":1,"152":1,"174":2,"176":1,"201":1,"203":1,"205":1}}],["r",{"2":{"211":1,"230":1}}],["ruff",{"2":{"146":2}}],["rust",{"2":{"58":1}}],["rules",{"2":{"51":1,"64":1,"67":1}}],["runners",{"2":{"232":1}}],["running",{"0":{"144":1,"145":1,"204":1},"2":{"9":1,"76":1,"77":1,"153":1,"162":1,"197":1,"219":1,"230":1}}],["runs",{"2":{"6":1,"9":1,"140":4,"142":1,"148":2,"191":1}}],["run",{"2":{"1":1,"5":2,"9":4,"13":1,"77":2,"136":1,"140":1,"144":1,"148":3,"149":1,"150":1,"192":2,"203":1,"204":1,"207":1,"224":1}}],["root=c",{"2":{"233":1}}],["root=$pwd",{"2":{"136":1}}],["root",{"0":{"59":1},"2":{"59":1,"71":1,"136":1,"138":2,"140":2,"145":4,"232":1,"234":1}}],["rotated",{"2":{"54":1}}],["rotary",{"2":{"49":8,"51":6,"64":4,"67":4}}],["rounding",{"2":{"212":1}}],["roundabouts",{"2":{"209":5}}],["roundaboutturn",{"2":{"64":1,"67":1}}],["roundabout",{"2":{"51":16,"64":11,"67":11,"164":1,"165":1,"171":3,"209":4}}],["rounded",{"2":{"41":1,"47":1}}],["round",{"2":{"36":1,"37":2}}],["roundtrip",{"2":{"36":4,"93":2,"94":2,"95":1,"123":1}}],["roundtrip=true",{"2":{"122":1}}],["roundtrip=",{"2":{"36":1}}],["routable",{"2":{"39":1,"87":1,"157":1}}],["routeparameters",{"0":{"115":1},"2":{"73":1,"114":1,"121":1,"123":1}}],["routeobject",{"0":{"62":1},"2":{"59":2}}],["routeleg",{"0":{"45":1,"102":1},"1":{"46":1,"103":1},"2":{"43":1}}],["routestep",{"0":{"49":1,"104":1},"1":{"50":1,"105":1},"2":{"43":1,"45":1,"51":1,"64":1,"67":1,"171":1}}],["routes",{"2":{"30":4,"32":1,"41":1,"59":1,"76":1,"77":1,"79":3,"80":1,"112":1,"113":1,"115":1,"130":1,"152":1,"155":1,"179":1,"211":2,"213":1,"229":1}}],["router",{"2":{"21":3,"28":1,"31":1,"33":6,"37":2,"40":1}}],["route",{"0":{"30":1,"43":1,"78":1,"100":1,"114":1},"1":{"31":1,"44":1,"79":1,"80":1,"101":1,"115":1},"2":{"20":1,"21":3,"30":9,"31":1,"32":2,"33":3,"35":8,"36":7,"38":1,"41":1,"43":4,"45":6,"47":2,"49":1,"51":1,"54":1,"56":2,"59":1,"62":1,"64":1,"67":1,"73":2,"76":1,"77":2,"78":1,"79":5,"80":3,"85":1,"91":3,"92":5,"94":6,"95":2,"98":1,"100":1,"102":1,"108":1,"112":1,"113":2,"114":2,"115":2,"117":1,"126":1,"130":4,"152":1,"158":4,"162":1,"171":3,"178":1,"207":3,"208":6,"209":4,"213":1,"216":6,"228":2,"229":1,"230":2}}],["routed",{"0":{"226":1},"1":{"227":1,"228":1,"229":1},"2":{"7":2,"9":1,"16":1,"72":1,"131":1,"197":2,"198":1,"221":3,"226":1,"230":1}}],["routine",{"2":{"12":1}}],["routing",{"2":{"2":2,"7":1,"15":2,"39":2,"41":2,"73":4,"77":1,"79":1,"82":1,"85":1,"87":2,"91":1,"94":1,"110":1,"112":1,"124":1,"152":2,"155":1,"158":4,"162":1,"171":1,"172":2,"173":1,"174":1,"209":1,"219":1,"222":1,"228":1}}],["rows",{"2":{"71":2,"179":2}}],["row",{"2":{"33":2,"71":4,"86":5}}],["roads",{"0":{"176":2},"2":{"39":1,"45":1,"54":1,"87":1,"158":1,"174":5,"176":11,"177":1,"178":2,"207":1,"213":1}}],["road",{"0":{"176":2},"2":{"20":1,"35":1,"39":1,"41":2,"51":6,"52":2,"54":3,"64":5,"67":5,"76":1,"79":1,"82":1,"85":1,"87":1,"90":1,"94":1,"120":1,"126":1,"162":1,"164":1,"171":13,"172":1,"174":18,"176":18,"178":6,"207":5,"208":21,"209":1,"215":1,"223":1}}],["rapidjson",{"2":{"137":1}}],["ram",{"2":{"77":1,"112":1,"228":1}}],["ramps",{"2":{"178":2}}],["ramp",{"2":{"51":8,"64":3,"67":3,"171":1}}],["raw",{"2":{"59":1,"219":1,"222":1}}],["ratio",{"2":{"223":1}}],["rate",{"0":{"158":1},"2":{"41":1,"158":10,"171":2}}],["rather",{"2":{"32":1,"41":1,"77":1}}],["random",{"2":{"213":1}}],["randomness",{"0":{"210":1},"1":{"211":1,"212":1,"213":1}}],["rank",{"2":{"30":1,"80":2}}],["range",{"2":{"20":1,"51":2,"79":1,"82":1,"85":1,"91":1,"94":1,"126":1,"129":1}}],["radius=",{"2":{"111":1}}],["radius",{"2":{"20":5,"35":7,"77":4,"79":1,"82":1,"85":1,"94":1,"112":2,"126":1,"229":4}}],["radiuses=",{"2":{"120":1}}],["radiuses",{"2":{"20":1,"35":1,"79":1,"82":1,"85":1,"91":1,"94":1,"126":1}}],["rastersource",{"2":{"179":1}}],["rasterbotinterp",{"2":{"179":1}}],["rasterbot",{"2":{"173":1,"179":1}}],["raster",{"0":{"179":1},"2":{"8":3,"179":11}}],["right",{"0":{"176":1},"2":{"13":1,"36":1,"41":1,"49":1,"50":3,"51":8,"52":6,"64":2,"66":4,"67":2,"93":1,"172":2,"174":3,"176":5,"202":1,"208":1,"214":3,"215":2,"216":10}}],["reduce",{"2":{"206":1,"222":1}}],["regions",{"2":{"230":1}}],["region",{"2":{"222":1,"228":1}}],["registry",{"2":{"194":1}}],["registered",{"2":{"168":1,"170":1,"201":1}}],["register",{"2":{"168":3,"201":1}}],["regenerate",{"2":{"146":1}}],["regenerates",{"2":{"146":1}}],["remember",{"2":{"145":1,"217":1}}],["remove",{"2":{"121":1,"189":1,"230":3}}],["removed",{"2":{"35":1,"90":1,"188":1}}],["removes",{"2":{"20":1,"79":1}}],["retrieves",{"2":{"170":1}}],["retrieve",{"2":{"167":3,"168":1,"175":1}}],["retag",{"2":{"142":1}}],["returning",{"2":{"41":1}}],["return",{"2":{"32":1,"41":1,"73":1,"75":1,"79":1,"85":4,"91":1,"94":4,"97":1,"113":1,"115":1,"119":1,"123":1,"157":1,"161":1,"162":3,"169":1,"171":1,"177":1,"179":1}}],["returned",{"2":{"27":3,"30":3,"31":1,"35":3,"36":8,"41":1,"79":1,"82":1,"91":1,"93":1,"94":1,"130":1,"157":1,"163":1,"171":1}}],["returns",{"2":{"27":1,"30":1,"32":1,"33":6,"35":1,"36":3,"78":1,"80":1,"81":1,"83":1,"84":1,"86":1,"89":1,"92":1,"95":1,"97":1,"124":1,"157":1,"169":1,"170":1}}],["rebuild",{"2":{"140":1,"146":2}}],["rebuilding",{"2":{"136":1}}],["reuse",{"2":{"140":1,"143":1,"234":1}}],["reverse",{"2":{"52":1,"66":1}}],["reversal",{"2":{"51":1}}],["rely",{"0":{"213":1}}],["reload",{"2":{"155":1,"230":1}}],["releasable",{"2":{"193":1}}],["releasing",{"0":{"147":1,"181":1},"1":{"148":1,"149":1,"150":1,"151":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1},"2":{"193":1}}],["released",{"2":{"190":2}}],["releases",{"2":{"147":1,"181":1,"182":2,"190":1,"191":1,"192":2,"193":1,"194":1}}],["release",{"0":{"148":1,"149":1,"186":1,"190":1,"191":1,"192":1,"193":1,"194":1},"1":{"187":1,"188":1},"2":{"136":2,"145":1,"147":2,"149":2,"150":1,"151":1,"181":1,"182":3,"185":5,"189":1,"190":1,"191":2,"192":2,"193":3,"194":2}}],["relevant",{"2":{"51":1,"161":2}}],["relations",{"0":{"163":1,"171":1},"2":{"162":2,"163":3,"168":1,"171":3,"214":2}}],["relationship",{"2":{"54":1}}],["relation",{"2":{"51":1,"162":1}}],["relative",{"2":{"20":1,"41":1,"54":1,"79":1,"82":1,"85":1,"94":1}}],["related",{"2":{"9":1,"13":1,"47":1,"217":1}}],["refer",{"2":{"214":1}}],["referencing",{"2":{"171":1}}],["referenced",{"2":{"162":1}}],["references",{"2":{"157":1}}],["reference",{"2":{"13":1,"49":1,"73":1,"161":1,"172":2,"219":1}}],["refactor",{"2":{"189":1}}],["ref",{"2":{"49":2,"73":1,"171":5,"172":2}}],["re",{"2":{"41":1,"73":1,"145":1,"201":1,"224":1}}],["recurse",{"2":{"140":1}}],["records",{"2":{"140":1}}],["recompilation",{"2":{"141":1}}],["recompile",{"2":{"140":1}}],["recompiled",{"2":{"140":1}}],["recompiling",{"2":{"136":1,"141":1}}],["recommended",{"0":{"140":1}}],["recommendation",{"2":{"30":1,"80":2}}],["recent",{"2":{"14":1}}],["repeatedly",{"2":{"224":1}}],["repeatable",{"2":{"222":1,"224":2,"225":2}}],["reproducibility",{"2":{"203":1}}],["represent",{"2":{"152":1,"215":1}}],["representation",{"2":{"54":1,"71":2}}],["represents",{"2":{"43":1,"45":1,"52":1,"100":1,"102":1,"164":2,"181":1}}],["representing",{"2":{"30":1,"35":1,"38":1,"49":1,"80":2,"88":1,"92":1,"95":1,"171":1}}],["repair",{"0":{"142":1},"2":{"142":5}}],["repo",{"2":{"134":1,"136":3,"232":1,"234":1}}],["reported",{"2":{"217":1}}],["reports",{"2":{"216":2}}],["reporting",{"2":{"202":1}}],["report",{"2":{"51":1,"215":2,"216":1}}],["repository",{"2":{"17":1,"74":1,"146":1}}],["replacing",{"2":{"230":1}}],["replaces",{"2":{"145":1}}],["replace",{"2":{"85":1}}],["replaced",{"2":{"51":2}}],["replication",{"2":{"24":1}}],["resistance",{"2":{"158":1}}],["reside",{"2":{"3":1}}],["resolves",{"2":{"151":1}}],["resolve",{"2":{"137":1,"142":1}}],["resources",{"0":{"17":1}}],["resembling",{"2":{"73":1}}],["responsibility",{"2":{"168":1}}],["responses",{"0":{"22":1,"99":1},"1":{"23":1,"24":1,"25":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1},"2":{"85":1,"188":1}}],["response",{"0":{"25":1,"29":1,"34":1,"38":1,"41":1},"2":{"20":3,"23":1,"24":1,"27":1,"30":1,"32":1,"33":1,"35":1,"41":2,"58":1,"59":2,"79":3,"82":1,"83":2,"85":2,"86":5,"89":2,"91":1,"92":3,"94":1,"95":3,"98":2,"126":1,"187":1,"188":1}}],["respectively",{"2":{"73":1}}],["respective",{"2":{"54":2}}],["results=3",{"2":{"118":1}}],["results",{"2":{"39":1,"77":2,"87":1,"111":1,"112":2,"119":1,"130":1,"155":1,"211":1,"229":1}}],["result",{"0":{"42":1,"163":1,"171":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"30":1,"35":1,"73":2,"75":1,"79":1,"80":3,"85":1,"90":1,"97":1,"113":2,"114":1,"116":1,"118":1,"120":1,"122":1,"124":1,"130":1,"158":3,"163":2,"168":1,"171":11,"173":1,"174":1,"179":1,"207":1,"210":1,"215":1,"216":1,"218":1}}],["restarting",{"2":{"230":1}}],["restarts",{"2":{"196":1}}],["restricted",{"2":{"55":1,"171":3,"174":4,"176":2}}],["restriction",{"2":{"54":1,"214":7,"224":1,"225":1}}],["restrictions",{"0":{"214":1},"2":{"23":1,"162":4,"214":4,"222":2,"224":1,"225":1}}],["restrict",{"2":{"20":1,"79":1,"82":1,"85":1,"94":1}}],["restful",{"2":{"15":1}}],["require",{"2":{"157":1,"161":1,"202":1,"214":1}}],["requirements",{"0":{"135":1},"1":{"136":1,"137":1,"138":1},"2":{"140":1}}],["requires",{"2":{"12":2,"14":1,"76":1,"77":2,"111":2,"112":1,"144":1,"145":1,"214":1,"224":1}}],["required|optional",{"2":{"221":1}}],["required",{"2":{"12":2,"137":1,"157":5,"178":1,"194":1,"220":1,"221":3,"224":1,"225":1}}],["requested",{"2":{"30":1,"32":1,"79":1,"85":1}}],["requests",{"0":{"20":1,"21":1,"28":1,"37":1},"1":{"21":1},"2":{"18":2,"19":1,"20":1,"56":1,"79":1,"82":1,"85":1,"91":1,"94":1,"126":1,"197":2,"198":1}}],["request",{"0":{"31":1,"33":1,"40":1},"2":{"8":1,"20":2,"23":4,"27":1,"30":1,"33":2,"35":2,"38":2,"79":1,"82":1,"85":1,"90":1,"91":1,"94":1,"189":1}}],["real",{"2":{"203":1}}],["really",{"2":{"73":1}}],["reasonable",{"2":{"207":1,"216":1}}],["reason",{"2":{"156":1}}],["reasons",{"2":{"7":1}}],["ready",{"0":{"197":1},"2":{"197":1}}],["reads",{"2":{"145":1,"222":1}}],["readme",{"2":{"136":1}}],["readable",{"2":{"23":1}}],["read",{"2":{"8":1,"163":1,"164":4,"171":1,"173":9,"174":34,"176":14,"222":1}}],["rf",{"2":{"6":1}}],["rm",{"2":{"6":1}}],["csv",{"2":{"224":2,"225":2}}],["cb",{"2":{"214":1}}],["cycleway=sidepath",{"2":{"172":1}}],["cxx",{"2":{"143":1}}],["ccache",{"2":{"143":1,"145":5}}],["cmakecache",{"2":{"140":1}}],["cmakelists",{"2":{"137":1,"201":1}}],["cmake",{"2":{"136":3,"137":1,"138":2,"140":3,"141":2,"143":1,"145":4,"204":1,"234":1}}],["cd",{"2":{"134":1,"144":2,"203":1,"204":1,"207":6,"208":3,"209":1}}],["cpus",{"2":{"220":1}}],["cp312",{"2":{"133":1,"140":1,"142":1}}],["cpython",{"2":{"133":1}}],["cell",{"2":{"223":2}}],["cells",{"2":{"33":2,"34":1,"86":2,"221":1,"223":1}}],["certain",{"2":{"73":1,"158":2}}],["c++",{"2":{"58":1,"72":1,"133":1,"137":1,"138":1,"146":1,"187":1,"188":1,"233":1}}],["c",{"2":{"58":1,"176":1,"207":1,"208":3,"209":1,"211":4,"214":2,"216":2,"233":2}}],["criteria",{"2":{"169":1}}],["creation",{"2":{"194":1}}],["creating",{"2":{"76":1,"77":3,"151":1}}],["creates",{"2":{"140":1,"147":1}}],["created",{"2":{"12":1,"152":1,"191":2,"193":1}}],["create",{"2":{"12":1,"13":1,"75":1,"76":1,"145":1,"148":1,"152":1,"153":1,"154":1,"217":1}}],["cron",{"2":{"148":1}}],["crossing",{"2":{"165":1}}],["cross",{"2":{"54":2}}],["crow",{"2":{"32":1,"85":2,"117":1}}],["click",{"2":{"192":2}}],["cli",{"0":{"131":1}}],["client",{"2":{"51":1}}],["clone",{"2":{"134":2,"136":1,"138":2,"233":2}}],["closely",{"2":{"145":1}}],["close",{"2":{"51":1,"208":1}}],["clockwise",{"2":{"20":1,"51":2,"54":2,"79":1,"82":1,"85":1,"91":1,"94":1,"176":1}}],["cllocation",{"2":{"35":1}}],["classification",{"0":{"177":2},"2":{"171":6,"174":14,"176":7,"177":9,"178":1}}],["classes",{"2":{"20":1,"51":1,"54":2,"55":1,"64":1,"67":1,"79":1,"126":1,"162":3,"171":4,"178":1}}],["class",{"2":{"20":4,"111":1,"162":1,"171":4,"174":4,"176":2}}],["cleanly",{"2":{"151":1}}],["clean",{"2":{"9":1,"230":1}}],["cleaned",{"2":{"6":1}}],["caution",{"0":{"218":1}}],["category",{"2":{"178":3}}],["capable",{"2":{"39":1,"87":1}}],["calming",{"2":{"164":1,"165":1}}],["calculation",{"2":{"47":1,"149":1,"215":1,"216":1}}],["calculating",{"2":{"32":1,"85":1}}],["calculate",{"2":{"32":1,"41":1,"54":1,"76":1}}],["calculated",{"2":{"20":1,"43":1,"45":1,"49":1,"79":1,"158":1,"191":1}}],["calling",{"2":{"171":1}}],["callback",{"2":{"79":1,"82":1,"85":1,"88":1,"91":1,"94":1}}],["called",{"2":{"13":1,"157":2,"162":3,"173":1,"174":1,"189":1,"211":1}}],["call",{"2":{"12":2,"13":1,"59":4,"75":1,"168":1,"169":1,"170":1,"202":1}}],["calls",{"2":{"9":1,"13":1,"14":1,"97":1,"137":1}}],["care",{"2":{"73":1}}],["car",{"2":{"20":1,"40":1,"76":1,"131":1,"152":2,"153":2,"154":2,"157":2,"171":1,"207":1,"208":3,"209":1,"222":1}}],["cases",{"2":{"203":1}}],["case",{"2":{"12":1,"20":1,"23":1,"27":1,"30":1,"33":1,"35":1,"38":1,"41":1,"51":1,"59":1,"73":2,"79":1,"158":1,"209":1,"216":2,"217":1}}],["cached",{"2":{"162":1}}],["cachepath",{"2":{"7":1}}],["cache",{"0":{"6":1,"143":1},"2":{"6":4,"7":3,"136":4,"145":1,"222":2,"234":1}}],["canonicalizestringlist",{"2":{"180":1}}],["canonical",{"2":{"167":1}}],["cancelled",{"2":{"148":1}}],["candidate",{"2":{"35":2,"223":1}}],["candidates",{"2":{"35":3,"190":1}}],["cannot",{"2":{"14":1,"30":1,"79":1,"97":1,"167":1,"173":1,"213":1}}],["can",{"0":{"215":1},"1":{"216":1,"217":1,"218":1},"2":{"4":1,"5":1,"7":2,"9":3,"12":1,"13":1,"20":3,"24":1,"32":1,"33":4,"35":1,"36":1,"39":2,"41":1,"43":1,"45":1,"51":3,"52":1,"56":2,"59":1,"64":2,"67":2,"71":2,"72":1,"73":3,"76":2,"77":1,"79":7,"82":5,"85":6,"87":2,"90":1,"91":5,"94":6,"97":1,"142":1,"146":1,"152":2,"153":1,"154":1,"157":5,"158":4,"161":2,"162":4,"163":2,"164":1,"167":1,"168":2,"171":2,"173":1,"174":1,"176":1,"177":2,"178":3,"179":2,"180":1,"190":1,"192":1,"198":1,"202":1,"204":1,"206":1,"209":1,"210":1,"211":1,"212":1,"215":1,"216":2,"217":4,"222":1,"224":1,"230":1}}],["circular",{"2":{"171":2}}],["circle",{"2":{"51":1,"64":1,"67":1,"164":1,"165":1}}],["cibw",{"2":{"145":2}}],["cibuildwheel",{"0":{"145":1},"2":{"137":1,"142":1,"145":8,"148":1}}],["ci",{"2":{"3":1,"5":1,"136":1,"142":1,"143":1,"145":1,"147":1,"148":1,"189":2,"193":1,"234":2}}],["coexist",{"2":{"230":1}}],["cover",{"2":{"219":1}}],["copy",{"2":{"217":1,"230":1}}],["co",{"2":{"173":2}}],["core",{"2":{"140":2,"143":1}}],["correspond",{"2":{"207":1}}],["corresponds",{"2":{"54":1}}],["corresponding",{"2":{"52":1,"54":1,"202":1}}],["correctly",{"2":{"214":2}}],["correct",{"2":{"35":2,"51":1,"77":1,"92":1,"193":1,"215":1}}],["coord",{"2":{"128":2}}],["coordinate",{"0":{"128":1},"2":{"13":1,"20":1,"27":2,"30":1,"32":3,"35":1,"36":9,"45":1,"47":1,"56":4,"73":1,"79":4,"81":1,"82":3,"83":2,"85":6,"91":2,"94":5,"117":1,"118":1,"121":1,"125":2,"126":1,"128":1}}],["coordinates=",{"2":{"114":1,"116":1,"118":1,"120":1,"122":1}}],["coordinates",{"2":{"12":1,"20":2,"21":1,"23":1,"27":2,"30":4,"31":1,"32":3,"35":3,"36":3,"38":1,"44":2,"47":6,"62":2,"64":2,"73":4,"78":1,"79":5,"80":1,"81":1,"82":3,"83":1,"85":5,"86":1,"88":1,"91":5,"92":1,"93":1,"94":3,"95":1,"98":1,"114":1,"115":1,"116":1,"117":2,"121":1,"122":1,"126":1}}],["collect",{"2":{"221":1}}],["collection",{"2":{"12":1}}],["collapsed",{"2":{"218":1}}],["collapsing",{"2":{"217":1}}],["columns",{"2":{"179":1,"224":1,"225":1}}],["column",{"2":{"86":1}}],["cols",{"2":{"71":4}}],["col",{"2":{"71":4}}],["costs",{"2":{"47":1}}],["cost",{"2":{"41":1,"158":1}}],["course",{"2":{"167":1,"206":1,"216":2}}],["counter",{"2":{"176":1,"184":1}}],["counting",{"2":{"51":1,"64":1,"67":1}}],["count",{"2":{"35":1,"92":1,"222":1,"223":1}}],["could",{"2":{"20":1,"23":2,"30":1,"35":2,"36":1,"54":1,"58":1,"79":2,"90":1,"91":1,"197":1,"207":1,"214":2,"216":1,"217":2}}],["combination",{"2":{"169":1,"170":1}}],["combinations",{"2":{"36":2,"93":2,"156":1,"162":1}}],["coming",{"2":{"169":1,"170":1}}],["com",{"2":{"134":1,"136":1,"138":1,"150":1,"233":1}}],["comes",{"2":{"153":1,"199":1}}],["come",{"2":{"73":1,"157":1}}],["compensate",{"2":{"216":1}}],["compatible",{"2":{"187":4,"188":4}}],["compatibility",{"0":{"186":1},"1":{"187":1,"188":1},"2":{"188":1}}],["comparing",{"2":{"58":1}}],["computing",{"2":{"158":1,"179":1}}],["computed",{"2":{"155":1,"158":1}}],["compute",{"2":{"148":1}}],["computes",{"2":{"32":1,"84":1,"116":1}}],["complex",{"2":{"156":1}}],["completed",{"2":{"194":1}}],["completely",{"2":{"164":1,"217":1}}],["complete",{"2":{"35":1,"76":1,"90":1}}],["compiling",{"2":{"146":1}}],["compiler",{"0":{"143":1},"2":{"143":1}}],["compiles",{"2":{"140":1}}],["compile",{"2":{"133":1,"140":1}}],["compiled",{"2":{"58":1,"136":1,"141":1,"204":1}}],["component",{"2":{"41":1,"222":2,"223":2}}],["comma",{"2":{"223":1}}],["commands",{"2":{"142":1,"153":1}}],["command",{"0":{"219":1},"1":{"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1},"2":{"131":1,"219":1,"234":1}}],["commandline",{"2":{"3":2}}],["commits",{"0":{"189":1},"2":{"189":1}}],["committed",{"2":{"146":1,"151":1}}],["commit",{"2":{"134":2,"146":1,"148":1,"189":1,"194":1,"232":1}}],["common",{"0":{"220":1},"1":{"221":1},"2":{"19":1,"161":1,"219":1}}],["coded",{"2":{"41":1}}],["codes",{"2":{"27":1,"30":2,"33":2,"35":2,"38":2}}],["code",{"0":{"10":1,"23":1},"1":{"11":1,"12":1,"13":1,"14":1},"2":{"10":1,"23":5,"25":1,"27":2,"29":1,"30":1,"33":1,"34":1,"35":1,"38":1,"49":1,"59":2,"60":2,"72":1,"75":1,"163":1}}],["conditionals",{"2":{"224":1,"225":1}}],["conditional",{"2":{"222":2,"224":2,"225":2}}],["condition",{"2":{"202":2}}],["conditions",{"2":{"51":1,"64":1,"67":1}}],["concepts",{"2":{"158":1}}],["conclusion",{"2":{"148":1}}],["concurrently",{"2":{"9":1}}],["converts",{"2":{"211":1}}],["conversion",{"2":{"12":2,"14":4}}],["conventional",{"0":{"189":1},"2":{"189":1}}],["convenience",{"2":{"47":1}}],["connectivity",{"2":{"178":1}}],["connection",{"2":{"18":1,"215":1}}],["connections",{"2":{"18":1,"215":1}}],["connects",{"2":{"77":2}}],["connect",{"2":{"56":1,"112":1,"228":1}}],["connected",{"2":{"36":1,"38":1,"41":1,"93":1,"174":2,"176":1,"222":1}}],["conjunction",{"2":{"32":1}}],["consumed",{"2":{"222":1}}],["consult",{"2":{"76":1}}],["console",{"2":{"80":2,"83":1,"86":4,"92":2,"95":2,"98":1}}],["constant",{"2":{"56":1}}],["constraints",{"2":{"73":2}}],["constraining",{"2":{"30":1}}],["constructor",{"2":{"76":1}}],["construct",{"2":{"73":1}}],["constructed",{"2":{"41":2,"59":1,"164":1}}],["constructing",{"2":{"12":1}}],["considerations",{"2":{"178":1}}],["consider",{"0":{"217":1},"2":{"157":1,"207":2,"208":1,"214":1,"216":1,"217":1}}],["considered",{"2":{"35":2,"178":2}}],["consisting",{"2":{"88":1}}],["consists",{"2":{"2":1,"49":1,"104":1}}],["context",{"2":{"207":1}}],["content",{"2":{"41":1}}],["contribute",{"2":{"214":1}}],["controlled",{"2":{"85":1}}],["contract",{"0":{"225":1},"2":{"47":2,"76":1,"131":1,"155":1,"225":1}}],["contraction",{"2":{"2":1,"213":1,"222":1,"223":1,"225":1,"228":1}}],["continue",{"2":{"30":1,"41":1,"51":1,"64":1,"67":1,"79":1,"115":2,"162":2,"208":1}}],["contiguous",{"2":{"4":1}}],["containerized",{"2":{"196":1}}],["container",{"2":{"145":2,"196":1}}],["contains",{"2":{"41":1,"56":1,"60":1,"76":1,"89":1,"161":1,"162":1}}],["containing",{"2":{"23":1,"24":1,"33":1,"45":1,"49":1,"52":1,"79":1,"82":1,"83":1,"85":1,"86":1,"91":1,"92":1,"94":1,"95":1,"97":2,"199":1,"222":1}}],["contain",{"2":{"14":1,"33":1,"39":1,"41":1,"86":1,"87":1,"203":1}}],["confirm",{"2":{"194":1}}],["config=",{"2":{"111":1}}],["config",{"2":{"73":1,"97":3,"112":1,"137":2,"140":1}}],["configures",{"2":{"234":1}}],["configure",{"2":{"73":1,"96":1,"234":1}}],["configured",{"2":{"4":1}}],["configurations",{"0":{"5":1},"2":{"5":1,"157":2,"162":1}}],["configuration",{"0":{"2":1,"7":1,"96":1},"1":{"3":1,"4":1,"8":1,"97":1,"98":1},"2":{"2":2,"3":2,"7":1,"16":2,"136":2,"140":1,"156":1,"157":1,"163":1,"171":2,"178":1,"179":1,"232":1}}],["confident",{"2":{"35":1,"92":1}}],["confidence",{"2":{"35":2,"92":2}}],["conform",{"2":{"9":1}}],["confused",{"2":{"3":1}}],["checking",{"2":{"202":1}}],["checks",{"2":{"193":1}}],["checklist",{"0":{"193":1}}],["checked",{"2":{"172":1}}],["checkout",{"2":{"151":1}}],["check",{"2":{"75":1,"150":1,"179":1,"202":4,"209":1}}],["chore",{"2":{"189":1}}],["choose",{"2":{"158":1}}],["choices",{"2":{"178":1,"207":1}}],["choice",{"2":{"52":1,"178":1}}],["chosen",{"2":{"3":1,"35":1,"171":1,"212":1}}],["ch|mld",{"2":{"9":2}}],["chance",{"2":{"207":1,"211":2}}],["changing",{"2":{"10":1,"146":1,"215":1}}],["changes",{"2":{"10":3,"51":1,"64":1,"67":1,"136":1,"140":1,"155":1,"160":1,"188":1,"189":1,"190":1,"207":2,"216":1,"217":3}}],["changed",{"2":{"7":1,"140":1,"188":1,"224":1,"225":1}}],["change",{"0":{"187":1,"188":1,"215":1,"216":2},"1":{"216":1,"217":1,"218":1},"2":{"3":1,"51":7,"52":1,"64":1,"67":1,"173":1,"178":1,"187":1,"206":1,"208":1,"215":3,"216":6,"224":1}}],["chain",{"2":{"6":1}}],["ch",{"2":{"2":1,"3":2,"7":1,"33":2,"77":2,"111":1,"112":2,"144":1,"225":1,"228":2}}],["cuts",{"2":{"223":2}}],["custom",{"2":{"136":1}}],["customize",{"0":{"224":1},"2":{"47":2,"131":1,"224":1,"225":1}}],["current",{"2":{"51":1,"52":1,"72":1,"77":1,"145":1,"160":1}}],["currently",{"2":{"2":1,"36":1,"73":1,"93":1,"157":1,"178":1,"230":2}}],["curl",{"2":{"21":3,"28":1,"31":1,"33":6,"37":2,"40":1}}],["curb",{"2":{"20":1,"79":1,"82":1,"85":1,"94":1,"126":1}}],["cucumber",{"0":{"0":1,"205":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"206":1,"207":1,"208":1,"209":1,"210":1,"211":1,"212":1,"213":1,"214":1},"2":{"0":4,"1":1,"2":1,"3":4,"4":1,"6":1,"7":10,"199":1,"203":1,"205":2}}],["w",{"2":{"141":2,"142":4}}],["writing",{"2":{"206":1}}],["written",{"0":{"156":1},"2":{"73":1,"156":1}}],["writefilesync",{"2":{"89":1}}],["write",{"0":{"207":1},"2":{"0":1,"12":3,"13":1,"14":3,"89":1,"173":3,"174":3,"176":1,"201":1,"205":1,"222":1}}],["wrappers",{"2":{"73":1,"130":1}}],["wrapper",{"2":{"73":1}}],["wrapping",{"2":{"73":2}}],["workload",{"2":{"233":1}}],["works",{"2":{"140":1,"168":1,"169":1,"170":1}}],["workflows",{"2":{"147":1}}],["workflow",{"0":{"75":1},"2":{"136":1,"147":2,"148":1,"149":2,"167":1,"191":1,"192":3,"194":1}}],["work",{"2":{"36":1,"73":1,"93":1,"146":1,"178":1}}],["worked",{"2":{"25":1}}],["worldparameters",{"2":{"7":2}}],["wouldn",{"2":{"171":1}}],["would",{"2":{"13":4,"30":1,"54":1,"79":1,"171":1,"173":1,"207":1,"215":1,"216":3,"217":1}}],["warning",{"2":{"220":1}}],["warmed",{"2":{"136":1}}],["waiting",{"2":{"197":1}}],["wait",{"2":{"148":1,"230":2}}],["wanted",{"2":{"72":1}}],["want",{"2":{"13":1,"14":1,"20":2,"73":1,"79":2,"157":1,"158":2,"171":1,"201":1,"202":1}}],["wayhandlers",{"2":{"172":1}}],["waypoints",{"0":{"211":1},"2":{"20":3,"27":3,"29":1,"30":6,"32":1,"35":3,"36":2,"38":2,"43":2,"45":1,"59":2,"71":2,"78":1,"79":7,"80":3,"83":3,"91":3,"93":2,"95":4,"100":1,"102":1,"113":1,"115":3,"121":2,"211":2,"212":1,"216":2,"229":1}}],["waypoint",{"0":{"56":1,"61":1,"108":1},"1":{"57":1,"109":1},"2":{"20":1,"27":1,"30":1,"33":2,"35":4,"38":3,"56":1,"59":2,"61":1,"70":1,"71":2,"79":1,"80":2,"82":1,"83":1,"85":1,"86":6,"92":4,"94":1,"95":4,"108":1,"162":1,"211":1,"212":1}}],["way",{"0":{"171":2,"172":1},"2":{"12":1,"14":1,"35":1,"49":6,"51":1,"54":2,"64":1,"67":1,"90":1,"104":1,"152":2,"156":1,"157":5,"158":4,"161":2,"162":2,"165":1,"171":25,"172":5,"173":6,"174":2,"176":1,"214":6,"215":1,"216":1}}],["ways",{"2":{"10":1,"73":1,"156":1,"157":2,"158":8,"162":1,"171":1,"173":4,"174":1,"207":1,"208":3,"209":1,"211":2,"214":2}}],["waste",{"2":{"20":1,"79":1}}],["was",{"2":{"7":1,"24":1,"27":1,"30":1,"33":1,"35":4,"38":2,"58":1,"92":3,"95":1}}],["whose",{"2":{"224":1,"225":1}}],["whole",{"2":{"7":1,"9":1,"43":1,"47":1,"171":2}}],["why",{"2":{"158":1}}],["whl",{"2":{"142":7}}],["what",{"0":{"215":1},"1":{"216":1,"217":1,"218":1},"2":{"39":1,"72":1,"87":1,"157":3,"158":1,"203":1,"217":1}}],["wheelhouse",{"2":{"145":1}}],["wheel",{"0":{"141":1,"142":1},"2":{"133":1,"136":3,"140":1,"141":4,"142":3,"145":1}}],["wheels",{"2":{"133":1,"142":2,"145":2,"147":1,"148":3,"150":1}}],["whether",{"2":{"41":2,"52":1,"79":1,"82":1,"85":1,"91":1,"94":1,"152":2,"163":2,"178":2,"179":1}}],["where",{"2":{"20":1,"27":1,"72":1,"73":1,"145":1,"157":1,"162":1,"163":1,"164":1,"171":1,"172":1,"181":1,"184":1,"196":1,"216":2}}],["whenever",{"2":{"212":1}}],["when",{"0":{"197":1},"2":{"4":1,"10":2,"32":1,"36":2,"41":1,"59":1,"77":1,"117":1,"133":1,"136":1,"142":1,"151":1,"152":1,"153":1,"155":2,"157":3,"158":2,"160":1,"161":1,"162":1,"169":1,"170":1,"172":2,"174":6,"176":4,"177":1,"178":3,"179":1,"193":1,"196":1,"197":2,"206":1,"207":1,"208":3,"209":1,"216":3,"223":1,"224":1,"225":1}}],["which",{"2":{"13":1,"20":1,"33":1,"35":1,"39":1,"41":1,"49":1,"58":2,"73":1,"76":1,"79":3,"82":3,"83":1,"85":2,"86":1,"87":1,"91":2,"92":1,"94":2,"97":2,"143":1,"157":3,"162":3,"178":3,"211":1,"215":1,"223":1,"224":1,"234":1}}],["while",{"2":{"9":2,"51":1,"64":1,"67":1,"78":1,"234":1}}],["were",{"2":{"209":1}}],["weighting",{"2":{"171":1}}],["weights",{"2":{"39":1,"45":1,"47":1,"87":1,"162":1,"177":1,"224":2,"225":2,"230":1}}],["weight",{"0":{"158":1},"2":{"30":1,"35":1,"36":1,"41":5,"43":4,"44":2,"45":2,"46":1,"47":1,"48":1,"49":2,"50":1,"79":1,"91":1,"94":1,"115":1,"158":5,"162":5,"164":2,"171":4,"173":3,"174":3,"177":3,"179":1,"224":2,"225":2}}],["website",{"2":{"17":1}}],["well",{"2":{"14":1,"171":1,"208":1,"214":1}}],["we",{"2":{"5":1,"7":1,"9":1,"10":1,"12":2,"13":1,"14":3,"41":2,"73":5,"76":1,"152":3,"171":1,"177":1,"181":1,"208":1,"209":1,"214":2,"215":1,"216":5}}],["wish",{"2":{"168":1}}],["wiring",{"2":{"145":1}}],["win",{"2":{"140":1,"142":1,"150":1}}],["windows",{"0":{"138":1,"231":1},"1":{"232":1,"233":1,"234":1},"2":{"133":1,"138":1,"140":2,"141":1,"142":4,"143":2,"144":2,"145":3,"231":1,"232":2,"234":2}}],["wipes",{"2":{"140":1}}],["wiqbgl6maoaeaaaabgaaaaaaaaa7aaaahu6pqhvhj0iaaaaaqbyyqgqaaaagaaaaaaaaadsaaadmaaaaf27mabijiqocbswa",{"2":{"34":2}}],["will",{"2":{"9":7,"14":3,"20":1,"23":3,"27":1,"32":1,"33":1,"35":1,"36":2,"49":2,"51":2,"54":1,"59":1,"64":1,"67":1,"71":2,"79":2,"82":2,"85":2,"86":1,"91":2,"92":1,"94":2,"97":1,"155":1,"157":2,"158":7,"160":1,"162":6,"163":1,"169":1,"170":1,"171":7,"176":1,"178":1,"190":1,"196":1,"197":3,"198":1,"206":1,"208":1,"214":1,"215":3,"216":1,"232":1,"234":1}}],["without",{"2":{"51":3,"52":1,"133":1,"137":1,"141":1,"146":2,"173":1,"184":1,"191":1,"197":1,"217":1,"224":1,"227":1,"230":2}}],["within",{"2":{"13":1,"171":1,"190":1,"192":1}}],["with",{"0":{"154":1},"2":{"1":1,"2":1,"3":3,"6":1,"7":1,"9":5,"10":1,"12":2,"20":2,"21":1,"27":1,"28":1,"31":1,"32":4,"33":1,"37":2,"39":2,"41":2,"45":1,"46":1,"47":1,"49":2,"58":2,"59":1,"73":4,"75":1,"76":1,"77":2,"79":3,"82":2,"85":5,"87":2,"91":3,"94":3,"97":1,"110":1,"111":1,"124":1,"134":1,"145":2,"148":1,"149":1,"150":1,"151":1,"153":2,"154":1,"157":2,"158":3,"165":1,"166":1,"168":1,"169":3,"170":3,"171":1,"174":2,"179":1,"181":1,"182":1,"189":2,"191":2,"192":1,"193":3,"199":1,"202":1,"203":1,"209":2,"214":1,"217":1,"222":2,"224":3,"225":3,"228":1,"230":1,"232":1,"233":2}}],["wiki",{"2":{"0":1,"39":2,"88":2,"205":1}}],["affects",{"2":{"222":1}}],["after",{"0":{"194":1},"2":{"51":2,"54":2,"141":1,"146":1,"150":1,"155":1,"174":1,"202":1}}],["ae",{"2":{"211":2}}],["aims",{"2":{"205":1}}],["aware",{"2":{"178":1}}],["away",{"2":{"35":1}}],["a1",{"2":{"172":1}}],["again",{"2":{"155":1}}],["against",{"2":{"136":1,"142":1,"148":1}}],["aarch64",{"2":{"133":1}}],["ambiguous",{"2":{"214":1}}],["amd64",{"2":{"133":1,"140":1,"142":1,"150":1}}],["amp",{"2":{"36":1}}],["ad",{"2":{"211":2}}],["adjust",{"2":{"158":2,"173":1,"179":1,"216":3}}],["adjustments",{"2":{"157":1}}],["advantage",{"2":{"97":1}}],["adding",{"2":{"214":1,"217":1}}],["addition",{"2":{"27":1,"30":2,"32":1,"33":1,"35":2,"36":1,"38":1,"51":1,"64":1,"67":1,"214":1}}],["additional",{"2":{"3":9,"27":1,"30":1,"35":3,"36":1,"38":1,"45":1,"51":1,"64":1,"67":1,"83":1,"92":2,"95":1,"96":1,"115":1,"162":1,"194":1}}],["additive",{"2":{"20":1}}],["added",{"2":{"43":1,"52":1,"188":1}}],["add",{"0":{"168":1},"2":{"30":1,"35":1,"36":1,"79":1,"91":1,"94":1,"142":3,"146":2,"168":1,"201":1,"203":1}}],["adds",{"2":{"20":1,"79":1,"82":1,"85":1,"91":1,"94":1}}],["addresses",{"2":{"77":1}}],["addressed",{"2":{"71":2}}],["address",{"2":{"7":1,"227":2}}],["auditwheel",{"2":{"142":4}}],["auxiliary",{"2":{"73":1}}],["automatic",{"2":{"182":1}}],["automatically",{"2":{"142":1,"143":1,"190":1,"191":1,"193":1}}],["automated",{"0":{"191":1},"2":{"182":1,"190":1,"193":1,"194":2}}],["auto",{"2":{"59":1,"146":1,"191":1,"193":1,"229":1}}],["availability",{"2":{"207":1}}],["available",{"0":{"153":1},"1":{"154":1},"2":{"49":3,"54":4,"59":1,"96":1,"144":1}}],["avoids",{"2":{"20":1,"154":1}}],["avoid",{"2":{"20":1,"41":1,"79":1,"126":1,"206":1}}],["ahead",{"2":{"41":1}}],["abc",{"2":{"214":4,"216":2}}],["ab",{"2":{"207":4,"208":3,"209":1,"211":2,"214":3}}],["abi3",{"2":{"133":1,"140":1,"142":1}}],["abi",{"2":{"133":1}}],["abstract",{"2":{"158":1}}],["absolute",{"2":{"41":1}}],["absent",{"2":{"33":1,"59":2,"71":1}}],["able",{"2":{"35":1,"90":1}}],["aborting",{"2":{"202":1}}],["above",{"2":{"5":1,"97":1,"141":1,"214":1}}],["about",{"2":{"0":1,"45":1,"47":1,"72":1,"73":2,"173":1,"174":2,"177":1,"203":1}}],["aqapphzbhulfzeme`euvkpncgla",{"2":{"33":1}}],["april",{"2":{"181":1,"185":2}}],["applyaccesstokens",{"2":{"180":1}}],["application",{"2":{"41":1}}],["applicable",{"2":{"35":1,"91":1}}],["applies",{"2":{"19":1,"224":1}}],["applied",{"2":{"9":1,"39":1,"41":1,"87":1,"172":1,"174":2}}],["appropriate",{"2":{"177":1}}],["approximation",{"2":{"36":1,"93":1}}],["approach",{"2":{"20":4}}],["approaches",{"2":{"20":1,"41":1,"79":1,"82":1,"85":1,"94":1,"126":1}}],["api",{"0":{"110":1,"160":1},"1":{"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1},"2":{"15":4,"41":1,"51":2,"52":1,"58":1,"59":1,"73":1,"97":1,"157":2,"160":4,"171":1,"187":3,"188":3,"189":1,"226":1}}],["apis",{"2":{"15":1}}],["acquiring",{"2":{"230":1}}],["ac",{"2":{"211":2}}],["across",{"2":{"140":2,"196":1}}],["actions",{"2":{"149":1,"191":1,"192":1,"193":1,"194":1}}],["acts",{"2":{"73":1}}],["actual",{"2":{"39":1,"41":2,"51":1,"64":1,"67":1,"87":1,"158":1,"207":1,"215":2,"216":1}}],["actually",{"2":{"12":1,"14":2,"39":1,"87":1,"207":1,"214":1}}],["accompanying",{"2":{"206":1}}],["accomplished",{"2":{"51":1}}],["accordingly",{"2":{"73":1,"158":1,"173":1}}],["according",{"2":{"30":1,"35":1,"36":1,"43":1,"79":1,"91":1,"201":1}}],["accidentally",{"2":{"41":1,"73":1}}],["accuracy",{"2":{"35":1,"91":1}}],["accepted",{"2":{"220":1}}],["accepting",{"2":{"12":1}}],["accessible",{"2":{"131":1}}],["access",{"0":{"177":1,"198":1},"2":{"13":1,"23":1,"110":1,"161":2,"163":1,"171":2,"173":1,"174":6,"176":3,"177":3,"179":1,"198":1,"230":1}}],["asc",{"2":{"179":1}}],["ascii",{"2":{"179":2,"215":1}}],["associated",{"2":{"172":1,"209":1}}],["assembly",{"2":{"217":1}}],["assemblesteps",{"2":{"217":1}}],["assemble",{"2":{"35":1,"38":1,"92":1,"95":1,"217":1}}],["assert",{"2":{"164":1}}],["assumed",{"2":{"160":1,"162":2,"213":1}}],["assign",{"2":{"158":1,"174":1}}],["ask",{"2":{"73":1,"218":1}}],["asymmetric",{"2":{"33":1,"84":1}}],["as",{"2":{"5":1,"12":1,"13":2,"14":2,"19":1,"23":1,"27":1,"30":2,"32":3,"35":3,"36":4,"39":1,"41":1,"45":1,"49":1,"51":1,"54":1,"56":1,"58":1,"59":1,"61":3,"62":3,"63":3,"64":6,"65":2,"66":1,"67":3,"68":1,"71":3,"72":1,"73":6,"77":1,"79":3,"82":2,"85":6,"91":3,"93":1,"94":2,"97":1,"104":1,"115":1,"121":1,"130":1,"141":1,"142":2,"148":2,"157":2,"158":3,"162":1,"168":3,"171":7,"172":1,"176":1,"178":1,"184":1,"191":1,"196":1,"208":2,"209":1,"211":3,"212":1,"214":1,"218":2,"222":1,"223":2}}],["aspects",{"2":{"0":1}}],["attribute",{"2":{"162":2,"163":1,"171":1,"173":1,"174":1,"176":1}}],["attributes",{"2":{"73":2,"161":1,"163":1,"171":2,"173":1,"174":1}}],["at",{"2":{"4":2,"12":1,"13":1,"20":1,"27":1,"30":2,"35":2,"36":4,"37":2,"39":1,"49":1,"51":3,"52":1,"54":3,"58":1,"64":3,"67":3,"71":2,"72":1,"79":3,"82":1,"85":1,"91":1,"92":1,"94":3,"115":1,"136":2,"138":1,"145":1,"146":1,"148":1,"155":1,"157":4,"160":1,"162":4,"163":1,"168":1,"169":1,"170":1,"171":2,"174":4,"182":1,"184":1,"190":2,"191":1,"200":1,"202":2,"205":1,"206":1,"207":2,"214":1,"215":1,"216":3,"217":2,"232":1,"234":1}}],["art",{"2":{"215":1}}],["artifact",{"2":{"148":1}}],["artifacts",{"2":{"141":1,"148":1}}],["artificial",{"2":{"41":1}}],["args",{"2":{"138":1,"140":1,"141":1,"145":2}}],["args=",{"2":{"136":1,"145":1}}],["arguments",{"0":{"4":1},"2":{"4":1,"5":1,"111":1}}],["argument",{"2":{"3":2,"163":1,"168":1,"169":1,"170":1,"171":1}}],["arm64",{"2":{"133":1}}],["around",{"2":{"73":2,"130":1,"164":1,"216":1}}],["arrow",{"2":{"52":9,"66":8}}],["arriving",{"2":{"171":1}}],["arrival",{"2":{"51":1}}],["arrive|",{"2":{"216":2}}],["arrived",{"2":{"207":1}}],["arrive",{"2":{"51":4,"54":1,"64":1,"67":1,"207":1,"208":4,"209":4}}],["arrays",{"2":{"32":1,"33":3,"86":5,"176":1}}],["array",{"0":{"130":1},"2":{"20":1,"27":2,"30":2,"32":1,"33":5,"35":2,"38":2,"43":1,"45":2,"47":1,"52":1,"54":4,"56":1,"59":3,"62":1,"65":1,"66":1,"71":1,"77":1,"79":11,"80":4,"82":7,"83":2,"85":12,"86":9,"88":2,"91":10,"92":4,"94":9,"95":4,"130":1}}],["arbitrary",{"2":{"12":1}}],["arbitrarily",{"2":{"9":1}}],["area",{"2":{"35":1}}],["areas",{"2":{"10":1,"158":1}}],["are",{"0":{"156":1,"215":1},"1":{"216":1,"217":1,"218":1},"2":{"3":3,"4":2,"5":1,"6":1,"7":2,"18":1,"20":2,"23":3,"27":1,"30":3,"32":4,"33":3,"35":4,"36":3,"38":2,"39":5,"41":1,"47":3,"49":3,"51":1,"52":1,"54":4,"73":4,"79":4,"86":2,"87":3,"88":1,"90":1,"91":1,"93":2,"97":1,"130":1,"133":1,"142":1,"144":1,"147":1,"153":1,"155":2,"156":2,"157":5,"158":3,"160":1,"162":5,"169":2,"171":1,"173":1,"174":6,"176":5,"177":2,"178":1,"180":1,"189":1,"190":1,"191":2,"194":1,"208":1,"212":2,"215":1,"216":1,"220":1,"232":2}}],["alias",{"2":{"97":1}}],["alive",{"2":{"13":1,"18":1,"227":1}}],["almost",{"2":{"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"71":1}}],["along",{"2":{"30":1,"35":1,"36":1,"45":1,"47":1,"49":3,"104":1,"152":1,"157":1}}],["alter",{"2":{"216":1}}],["alternative",{"2":{"30":3,"35":1,"77":1,"79":3,"92":1,"112":1,"115":1,"171":2,"172":1,"213":1,"229":1}}],["alternatives",{"0":{"213":1},"2":{"30":1,"35":1,"77":2,"79":2,"92":1,"112":1,"115":1,"229":1}}],["alternatives=2",{"2":{"114":1}}],["alternatives=1",{"2":{"111":1}}],["alternatives=n",{"2":{"30":1}}],["alternatives=",{"2":{"30":1}}],["although",{"2":{"9":1}}],["already",{"2":{"9":1}}],["always",{"2":{"3":1,"190":1,"207":2,"208":1,"215":1}}],["allowed",{"2":{"73":1,"162":2,"174":4,"176":2,"209":1,"223":1}}],["allows",{"2":{"35":2,"72":1,"84":1,"91":2,"172":1,"230":1}}],["allow",{"0":{"212":1},"2":{"3":1,"18":1,"79":1,"82":1,"85":1,"91":1,"94":1,"162":1,"212":1}}],["all",{"0":{"5":1,"209":1},"2":{"2":1,"3":3,"4":1,"5":1,"12":2,"13":1,"19":2,"20":1,"23":1,"30":4,"32":3,"33":3,"35":5,"36":3,"38":2,"51":2,"54":1,"59":1,"71":1,"72":1,"73":3,"79":3,"80":2,"85":2,"86":2,"90":1,"91":3,"92":1,"93":2,"94":1,"95":1,"96":1,"113":1,"115":2,"117":4,"119":1,"121":1,"123":1,"137":2,"156":1,"158":2,"161":1,"162":1,"163":1,"168":1,"169":1,"170":2,"171":1,"176":1,"190":1,"193":1,"203":1,"206":2,"207":1,"208":1,"209":1,"211":1,"215":1,"219":1,"220":1,"221":1,"229":1,"230":3}}],["algorithm=",{"2":{"111":1}}],["algorithms",{"2":{"2":1}}],["algorithm",{"2":{"2":1,"3":2,"7":3,"9":2,"35":1,"36":1,"77":2,"90":1,"93":1,"112":2,"223":1,"228":2}}],["also",{"2":{"0":3,"9":1,"41":1,"73":1,"79":1,"91":1,"94":1,"97":1,"131":1,"152":1,"157":3,"158":1,"162":1,"164":1,"171":1,"172":1,"174":2,"178":1,"192":1,"223":1}}],["a",{"0":{"12":1,"141":1,"181":1},"1":{"13":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1},"2":{"2":3,"3":1,"4":1,"5":1,"6":1,"7":1,"9":3,"10":2,"11":1,"12":10,"13":3,"14":2,"18":2,"19":1,"20":5,"23":3,"24":2,"27":3,"28":1,"30":2,"32":2,"33":7,"35":2,"36":2,"39":1,"40":1,"41":8,"43":1,"45":1,"49":14,"51":32,"52":11,"54":9,"56":1,"58":1,"59":2,"64":22,"65":1,"66":6,"67":24,"69":1,"70":1,"71":2,"72":4,"73":14,"75":1,"76":3,"77":2,"79":4,"81":2,"82":2,"85":4,"87":1,"89":2,"90":1,"91":1,"92":1,"93":1,"94":3,"96":1,"97":3,"100":1,"102":1,"104":5,"108":1,"111":1,"113":2,"118":1,"133":2,"136":3,"137":1,"140":2,"141":1,"145":1,"146":1,"147":1,"148":1,"149":1,"151":1,"152":4,"153":1,"155":1,"156":1,"157":7,"158":10,"160":1,"161":2,"162":3,"163":3,"164":10,"167":1,"168":2,"169":1,"170":2,"171":12,"172":1,"173":4,"174":9,"176":6,"177":2,"178":9,"179":1,"180":1,"181":1,"191":4,"192":1,"193":1,"197":1,"199":1,"200":2,"202":5,"203":3,"205":3,"206":2,"207":7,"208":11,"209":10,"211":9,"212":3,"213":1,"214":6,"215":1,"216":15,"217":7,"219":2,"222":3,"223":4,"224":1,"225":1,"226":1,"227":1,"228":2,"229":5,"230":2,"232":1,"234":2}}],["announce",{"2":{"207":1}}],["annotated",{"2":{"148":1}}],["annotation",{"0":{"47":1,"68":1},"1":{"48":1},"2":{"45":2,"46":1,"47":1,"63":3,"68":1}}],["annotations",{"2":{"30":1,"32":1,"35":1,"36":1,"45":1,"47":1,"63":1,"79":1,"85":1,"91":1,"94":1,"115":1,"117":1}}],["annotations=true",{"2":{"46":1}}],["annotations=distance",{"2":{"33":2}}],["annotations=duration",{"2":{"33":1}}],["annotations=durations",{"2":{"32":1}}],["annotations=",{"2":{"30":1,"32":1,"35":1,"36":1,"114":1,"116":1,"120":1,"122":1}}],["another",{"2":{"173":1,"218":1}}],["analyze",{"2":{"142":1}}],["analogous",{"2":{"41":1}}],["angles",{"2":{"215":5,"216":4,"218":1}}],["angle",{"2":{"41":2,"51":2,"54":2,"157":1,"174":3,"209":1,"215":2,"216":2}}],["anymore",{"2":{"177":1,"215":1}}],["any|last",{"2":{"36":1}}],["any|first",{"2":{"36":1}}],["anywhere",{"2":{"13":1}}],["any",{"0":{"169":1},"2":{"9":2,"13":2,"20":4,"36":14,"47":2,"54":1,"79":3,"82":3,"85":3,"91":3,"93":8,"94":7,"123":4,"126":1,"133":1,"136":1,"168":2,"169":7,"173":1,"190":1,"192":1,"197":1,"198":1}}],["android",{"2":{"35":1}}],["and",{"0":{"158":1,"175":1,"176":1,"177":1},"2":{"2":4,"4":1,"6":2,"7":1,"8":1,"9":1,"12":2,"13":1,"14":1,"15":1,"18":1,"20":4,"23":1,"27":2,"30":2,"31":1,"32":3,"33":4,"35":4,"36":4,"38":1,"39":5,"41":1,"45":1,"46":1,"49":2,"51":5,"52":1,"56":1,"64":1,"67":1,"71":1,"72":3,"73":11,"75":1,"76":2,"79":4,"80":1,"81":1,"84":1,"85":1,"86":1,"87":3,"88":2,"91":2,"92":2,"93":2,"94":1,"95":2,"97":2,"113":1,"115":1,"121":1,"123":1,"126":1,"130":2,"133":2,"134":1,"136":1,"138":1,"140":2,"141":1,"142":3,"143":1,"145":2,"146":2,"147":2,"148":3,"150":2,"152":3,"153":2,"155":2,"156":2,"157":7,"158":4,"161":1,"162":5,"163":1,"167":3,"169":1,"170":1,"171":4,"172":1,"173":4,"174":3,"176":2,"177":6,"178":5,"179":5,"185":1,"188":1,"189":1,"190":1,"191":2,"194":1,"197":1,"199":1,"202":2,"203":4,"206":2,"207":5,"208":4,"209":2,"211":6,"213":1,"214":6,"216":5,"217":1,"218":2,"220":3,"222":2,"224":1,"226":1,"230":2,"233":1}}],["an",{"2":{"2":1,"12":2,"13":1,"20":2,"23":2,"30":1,"35":2,"36":1,"38":1,"41":1,"43":1,"45":1,"49":1,"51":6,"52":11,"54":3,"59":1,"64":2,"66":7,"67":2,"73":2,"75":1,"76":2,"77":3,"79":2,"80":2,"82":2,"83":1,"85":3,"86":1,"88":1,"91":2,"92":3,"93":1,"94":2,"95":2,"136":1,"150":1,"154":1,"157":3,"158":1,"163":3,"164":3,"165":1,"166":1,"167":1,"168":1,"171":1,"173":3,"176":2,"179":2,"207":1,"209":1,"217":1,"222":1,"228":1,"230":1}}],["snd",{"2":{"202":1}}],["snapped",{"2":{"28":1,"32":3,"56":3,"79":1,"82":1,"85":4,"91":1,"94":1,"117":1}}],["snapping",{"2":{"20":2,"79":4,"82":4,"85":4,"91":3,"94":4,"126":1,"171":1,"212":1,"222":1}}],["snaps",{"2":{"27":1,"35":1,"79":1,"81":1,"82":1,"85":1,"91":1,"94":1,"120":1}}],["snap",{"2":{"20":1,"23":1,"229":1}}],["switches",{"2":{"167":1}}],["skewed",{"2":{"158":1}}],["skips",{"2":{"141":1}}],["skipped",{"2":{"32":1}}],["skip",{"2":{"20":1,"27":1,"32":1,"59":1,"71":1,"79":1,"228":1,"230":1}}],["sdist",{"2":{"148":1,"150":1}}],["src",{"2":{"146":4}}],["slows",{"2":{"164":1}}],["slow",{"2":{"136":1,"140":1}}],["slip",{"2":{"171":1}}],["slippy",{"2":{"39":2,"87":1,"88":1}}],["slightleft",{"2":{"66":1}}],["slightly",{"2":{"52":2,"58":1,"66":2}}],["slightright",{"2":{"66":1}}],["slight",{"2":{"51":4,"52":4,"66":2,"216":6}}],["symbolic",{"2":{"154":1}}],["symmetric",{"2":{"84":1}}],["system",{"2":{"142":1,"196":1}}],["syntactically",{"2":{"23":1}}],["syntax",{"2":{"19":1}}],["synchronized",{"2":{"11":1}}],["sync",{"2":{"7":1,"39":1,"87":1,"203":1}}],["smallest",{"2":{"214":1}}],["smaller",{"2":{"32":1,"173":1}}],["small",{"0":{"212":1},"2":{"41":2,"51":1,"64":1,"67":1,"203":1,"207":1,"215":1,"222":1,"223":2}}],["s",{"2":{"20":1,"43":1,"69":2,"71":1,"110":1,"130":1,"136":4,"137":1,"138":1,"142":1,"145":1,"152":1,"155":1,"156":1,"158":3,"162":2,"171":2,"227":1,"228":1,"230":2,"234":1}}],["scenic",{"2":{"173":1}}],["scenario",{"2":{"7":1,"9":2,"199":1,"207":1,"208":4,"209":1,"211":2,"214":2}}],["scenarios",{"2":{"2":1,"9":1,"207":1}}],["schedule",{"2":{"192":1}}],["scheduled",{"0":{"148":1},"2":{"191":1}}],["scheme",{"0":{"183":1},"1":{"184":1,"185":1},"2":{"151":1,"181":1,"182":2}}],["scm",{"2":{"151":1}}],["scikit",{"2":{"140":2,"143":1}}],["scripting",{"2":{"156":2,"171":1}}],["scripts",{"2":{"136":1,"140":1,"145":1,"156":1,"220":1}}],["scratch",{"2":{"140":3}}],["scales",{"2":{"32":1,"117":1}}],["scale",{"0":{"207":1},"2":{"32":1,"85":1,"117":1}}],["scope",{"2":{"180":1}}],["scopeguard",{"0":{"13":1},"2":{"13":2}}],["scopedgeojsonloggerguard",{"2":{"12":3,"13":2,"14":7}}],["scoped",{"2":{"12":1}}],["sol2",{"2":{"137":1}}],["solver",{"2":{"85":1}}],["solves",{"2":{"36":1,"93":1,"122":1}}],["sorted",{"2":{"27":1,"83":1}}],["something",{"2":{"171":1}}],["some",{"2":{"20":2,"41":2,"59":1,"79":1,"96":1,"157":1,"158":1,"210":2,"215":2,"217":1}}],["somewhere",{"2":{"10":1}}],["so",{"2":{"12":2,"39":1,"73":1,"87":1,"137":1,"142":1,"144":1,"145":1,"146":1,"148":1,"171":2,"189":1,"202":1,"208":1,"211":1,"218":1,"222":1,"230":1}}],["sourcedata",{"2":{"179":3}}],["source=first",{"2":{"37":1}}],["source=any",{"2":{"36":1}}],["source=",{"2":{"36":1,"122":1}}],["sources=",{"2":{"116":1}}],["sources=0",{"2":{"32":1,"33":2}}],["sources",{"2":{"32":4,"33":2,"34":1,"47":1,"59":1,"71":1,"73":3,"85":1,"86":4,"117":1,"162":1,"223":1}}],["source",{"0":{"176":1},"2":{"8":3,"32":2,"33":2,"36":4,"41":1,"47":1,"51":1,"85":1,"93":2,"94":1,"95":1,"117":1,"123":1,"133":2,"136":2,"157":1,"173":3,"174":15,"176":1,"177":2,"179":7,"234":1}}],["splitting",{"2":{"35":1,"91":1}}],["splits",{"2":{"35":1,"90":1}}],["split",{"2":{"30":1,"35":3,"36":1,"91":2,"92":1,"121":2,"162":2,"173":1,"214":1}}],["span",{"2":{"12":1}}],["spring",{"2":{"9":1,"230":1}}],["speech",{"2":{"172":1}}],["speeds",{"2":{"41":1,"76":1,"158":1,"173":1,"224":1}}],["speed",{"0":{"158":1},"2":{"6":1,"30":1,"32":3,"33":3,"34":1,"35":1,"36":1,"41":5,"46":1,"47":5,"56":1,"79":1,"85":3,"86":2,"91":1,"94":1,"114":1,"115":1,"117":2,"120":1,"143":1,"157":3,"158":6,"161":1,"162":2,"171":8,"174":4,"176":2,"222":1,"224":4,"225":2}}],["specified",{"2":{"54":1}}],["specifies",{"2":{"51":2,"64":2,"67":2}}],["specific",{"0":{"135":1},"1":{"136":1,"137":1,"138":1},"2":{"23":1,"73":2,"75":1,"96":1,"133":1,"140":1,"142":1,"171":1,"178":1,"208":1,"214":1}}],["specifying",{"2":{"52":1,"154":1,"157":1}}],["specify",{"2":{"36":1,"153":1,"208":1,"214":1}}],["special",{"2":{"9":1}}],["six",{"2":{"219":1}}],["signal",{"0":{"197":1},"2":{"168":1,"169":1,"170":1,"197":2}}],["signals",{"2":{"164":1,"165":1}}],["signaling",{"2":{"52":1,"66":1}}],["sign",{"2":{"164":1}}],["significantly",{"2":{"56":1}}],["signifying",{"2":{"49":1,"54":1}}],["similar",{"2":{"51":1,"64":1,"67":1,"178":1}}],["simplified|full|false",{"2":{"35":1,"36":1}}],["simplified",{"2":{"30":2,"35":2,"36":2,"43":3,"79":2,"91":2,"94":2,"115":2}}],["simply",{"2":{"12":2,"156":1,"158":1,"203":1,"207":1}}],["simple",{"2":{"12":1,"171":1}}],["sides",{"2":{"223":1}}],["sidestep",{"2":{"202":1}}],["sidepath=yes",{"2":{"172":1}}],["sidepath",{"2":{"172":4}}],["sidepaths",{"2":{"172":1}}],["sidewalks",{"2":{"172":2}}],["side",{"2":{"49":2,"51":1,"64":3,"67":1,"211":1}}],["sinks",{"2":{"223":1}}],["since",{"2":{"35":2,"207":1,"215":1,"216":1}}],["single",{"0":{"2":1,"12":1},"1":{"3":1,"4":1,"13":1},"2":{"2":1,"7":1,"9":1,"14":1,"27":2,"49":1,"81":1,"104":1,"161":1,"208":1,"223":2}}],["size",{"2":{"23":2,"58":1,"77":1,"207":3,"208":3,"209":1,"216":5,"222":1,"223":2,"229":7}}],["sizes",{"2":{"7":1,"207":1,"223":2}}],["save",{"2":{"222":1,"228":1}}],["sadly",{"2":{"217":1}}],["said",{"2":{"216":1}}],["satisfiying",{"2":{"169":1}}],["san",{"2":{"40":1}}],["salesman",{"2":{"36":1,"93":1,"122":1}}],["safest",{"2":{"152":1}}],["safe",{"2":{"11":1}}],["same",{"0":{"154":1,"187":1},"2":{"5":1,"6":1,"14":1,"39":1,"51":1,"58":1,"61":3,"62":3,"63":3,"64":6,"65":2,"66":1,"67":3,"68":1,"71":1,"77":1,"137":1,"141":1,"154":1,"158":1,"162":2,"168":2,"184":1,"185":1,"190":1,"192":1}}],["say",{"2":{"2":1,"207":1,"214":1}}],["style",{"2":{"189":1}}],["study",{"2":{"217":2}}],["studio",{"2":{"10":1,"143":1,"232":1,"233":1}}],["stuff",{"2":{"215":1}}],["stubgen",{"2":{"146":1}}],["stub",{"2":{"146":2}}],["stubs",{"0":{"146":1}}],["std",{"2":{"73":3}}],["stem",{"2":{"41":1}}],["stepmaneuver",{"0":{"51":1,"67":1,"106":1},"1":{"107":1},"2":{"41":1,"49":2,"51":1,"54":1,"64":2,"67":2}}],["step",{"0":{"64":1},"2":{"30":1,"35":1,"36":1,"49":8,"54":1,"63":2,"64":1,"79":1,"91":1,"94":1,"104":2,"168":1,"209":5,"217":1}}],["steps=true",{"2":{"114":1}}],["steps=false",{"2":{"44":1,"46":1}}],["steps=",{"2":{"30":1,"35":1,"36":1}}],["steps",{"2":{"12":1,"30":2,"35":2,"36":1,"44":2,"45":5,"46":1,"63":1,"77":1,"79":2,"91":2,"94":2,"115":2,"148":1,"194":1,"217":2,"218":1,"228":1,"230":1}}],["stored",{"2":{"167":1}}],["store",{"2":{"77":1,"161":2,"167":2,"179":1}}],["stores",{"2":{"33":2,"86":2,"167":1}}],["storage",{"2":{"73":1,"111":1,"112":1,"163":1,"171":1}}],["stop",{"2":{"37":1,"164":1,"165":1}}],["stops",{"2":{"37":2}}],["stock",{"2":{"3":1}}],["still",{"2":{"20":1,"27":1,"36":1,"43":1,"79":1,"148":1,"160":1,"212":1}}],["stack",{"2":{"232":1}}],["stale",{"2":{"230":1}}],["stable",{"2":{"133":1}}],["stands",{"2":{"64":1}}],["standard",{"2":{"35":2,"91":1,"97":1,"140":1,"198":1}}],["stays",{"2":{"148":1}}],["stay",{"2":{"51":1,"64":1,"67":1}}],["stage",{"2":{"24":1,"167":2}}],["state",{"2":{"193":1}}],["static",{"2":{"140":1,"142":3,"211":1}}],["statically",{"2":{"20":1}}],["status",{"2":{"23":3,"27":1,"30":1,"33":1,"35":1,"38":1,"73":2}}],["starting",{"2":{"37":1,"184":1,"211":2,"223":1}}],["start",{"2":{"36":4,"41":1,"171":3,"173":2,"212":2,"227":1}}],["starts",{"2":{"36":1,"94":1,"140":1}}],["startpoint",{"2":{"20":1,"41":1,"79":1,"82":1,"85":1,"91":1,"94":1,"171":1}}],["started",{"0":{"15":1},"2":{"182":1}}],["stronger",{"2":{"215":1}}],["strongly",{"2":{"41":1,"52":2,"66":2,"222":1}}],["strange",{"2":{"210":1}}],["straight",{"2":{"30":2,"41":1,"50":2,"51":1,"52":3,"53":1,"55":1,"66":2,"79":2,"115":2,"162":2,"173":1,"207":1,"208":3}}],["str",{"2":{"112":4,"115":3,"117":2,"121":1,"123":2,"126":4}}],["strictly",{"2":{"73":1}}],["strings",{"2":{"23":1,"54":1,"79":2,"82":1,"85":1,"91":2,"94":2}}],["string",{"2":{"20":2,"23":2,"41":4,"45":2,"47":1,"49":2,"51":2,"60":2,"62":1,"64":1,"77":6,"79":4,"82":2,"85":2,"91":4,"94":5,"97":3,"162":1,"171":9,"220":1,"222":2}}],["streets",{"2":{"79":1,"82":1,"85":1,"94":1,"158":1,"215":1}}],["street",{"2":{"20":1,"23":1,"27":1,"51":1,"56":1,"64":1,"67":1,"81":1,"118":1,"172":5}}],["stress",{"2":{"3":2}}],["structure",{"0":{"157":1},"2":{"19":1,"73":2}}],["shm",{"0":{"196":1},"2":{"196":1}}],["shell",{"2":{"145":1}}],["sh",{"2":{"136":1}}],["sha",{"2":{"136":2}}],["share",{"2":{"219":1}}],["shared",{"2":{"2":1,"77":5,"111":3,"112":3,"126":1,"142":4,"144":1,"196":2,"228":4,"230":6}}],["sharpleft",{"2":{"66":1}}],["sharpright",{"2":{"66":1}}],["sharp",{"2":{"41":1,"51":4,"52":4,"66":2,"209":1}}],["ships",{"2":{"136":1,"219":1}}],["ship",{"2":{"76":1,"137":1}}],["shot",{"2":{"147":1}}],["shows",{"2":{"150":2}}],["show",{"2":{"142":2,"172":1,"220":2}}],["shown",{"2":{"52":2,"66":2}}],["shorthand",{"2":{"153":1}}],["shortest",{"2":{"32":1,"93":1,"152":1,"158":2}}],["short",{"2":{"11":1,"45":1,"72":1,"216":1,"220":1,"222":1,"227":1,"228":1,"230":1}}],["shortcut",{"2":{"5":1}}],["should",{"2":{"3":2,"6":1,"9":4,"27":1,"35":3,"51":2,"59":4,"64":1,"67":1,"82":1,"158":1,"160":1,"162":1,"189":1,"190":1,"196":1,"201":1,"204":1,"206":2,"207":2,"208":3,"209":1,"216":5,"217":1}}],["separated",{"2":{"223":1}}],["separate",{"0":{"201":1}}],["separately",{"2":{"172":1}}],["send",{"2":{"197":1}}],["sent",{"2":{"97":1}}],["semantic",{"2":{"182":1}}],["semver",{"2":{"181":2}}],["sequences",{"2":{"161":1}}],["sequence",{"2":{"161":2,"162":5}}],["several",{"2":{"76":1,"162":1,"173":1}}],["second",{"2":{"70":2,"85":1,"96":1,"171":1}}],["seconds",{"2":{"7":1,"18":1,"32":1,"33":1,"35":2,"41":2,"43":1,"45":1,"47":1,"49":1,"86":1,"164":1,"227":1,"230":1}}],["sections",{"2":{"219":1}}],["section",{"2":{"24":1,"215":1}}],["segmentation",{"2":{"214":1}}],["segment",{"0":{"173":2},"2":{"23":1,"41":7,"47":3,"49":2,"56":1,"118":1,"157":1,"162":1,"173":12,"179":7,"208":1,"224":2,"225":1}}],["segments",{"2":{"20":1,"27":1,"79":1,"82":2,"85":1,"91":1,"94":1,"119":1,"162":1,"214":1}}],["series",{"2":{"217":1}}],["serialization",{"2":{"58":1}}],["serialized",{"2":{"20":1,"79":1,"97":1}}],["serving",{"2":{"227":1}}],["service",{"0":{"27":1,"30":1,"32":1,"35":1,"36":1,"39":1},"1":{"28":1,"29":1,"31":1,"33":1,"34":1,"37":1,"38":1,"40":1,"41":1},"2":{"16":1,"20":3,"23":4,"27":3,"30":2,"32":1,"33":1,"35":2,"36":2,"38":1,"39":1,"59":3,"73":2,"75":2,"93":1,"113":1,"130":1,"197":1}}],["services",{"0":{"26":1,"113":1},"1":{"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1},"2":{"15":2,"19":1,"56":1,"59":1,"73":3,"110":1}}],["serve",{"2":{"230":1}}],["serves",{"2":{"226":1}}],["server",{"0":{"18":1,"227":1},"1":{"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1},"2":{"3":1,"5":1,"16":1,"18":2,"27":1,"203":1,"219":1,"226":1,"230":1,"232":1}}],["searches",{"2":{"30":1}}],["search",{"2":{"20":2,"30":1,"35":1,"79":3,"82":1,"85":1,"91":1,"94":1,"112":1,"115":1,"126":1,"229":1}}],["selecting",{"2":{"211":1}}],["select",{"2":{"192":1}}],["selected",{"2":{"9":1}}],["selects",{"2":{"3":8}}],["setter",{"2":{"171":2}}],["setting",{"2":{"7":1,"76":1,"77":3,"177":1,"214":1}}],["sets",{"2":{"157":1,"161":1,"162":1}}],["setup",{"0":{"162":1},"2":{"157":5,"162":5,"163":1,"171":1,"174":4,"176":2,"177":3,"179":2,"198":1}}],["setuptools",{"2":{"151":1}}],["set",{"2":{"3":1,"8":1,"12":1,"14":1,"24":1,"27":1,"32":1,"36":3,"59":1,"71":1,"73":1,"97":2,"137":1,"140":1,"145":1,"149":1,"158":4,"160":1,"161":2,"162":6,"163":1,"171":8,"173":1,"174":5,"176":2,"177":3,"196":1,"197":1,"198":1,"219":1,"233":1}}],["seems",{"2":{"218":1}}],["seen",{"2":{"178":1}}],["see",{"2":{"0":3,"8":1,"20":2,"27":1,"30":1,"33":1,"35":2,"38":1,"41":1,"43":1,"73":2,"74":1,"133":1,"136":1,"138":1,"140":2,"155":2,"157":1,"171":1,"173":1,"174":2,"175":1,"176":1,"179":1,"201":1,"203":2,"204":1,"208":1,"212":1,"215":2,"216":3,"217":4,"232":1}}],["superfluous",{"2":{"214":1}}],["suppress",{"2":{"209":5}}],["supply",{"2":{"205":1}}],["supplied",{"2":{"20":1,"23":1,"30":1,"32":2,"41":1,"47":3,"54":2,"58":1,"79":1,"83":1,"85":1,"91":1}}],["supported",{"2":{"27":1,"30":2,"32":1,"33":2,"35":2,"36":3,"38":2,"39":1,"77":7,"88":1,"93":2,"160":1,"162":1}}],["support",{"2":{"9":1,"20":1,"96":1,"130":1,"143":1,"179":1,"231":1}}],["supports",{"2":{"2":1,"18":1,"27":1,"58":1,"81":1,"133":1,"152":1,"172":1}}],["supposed",{"2":{"8":1,"215":1}}],["surprises",{"2":{"207":1}}],["sure",{"2":{"4":1,"10":1,"12":1,"73":1,"77":1,"145":1,"209":1}}],["suffixes",{"2":{"162":1}}],["suffix",{"2":{"162":1,"189":1}}],["sum",{"2":{"73":2}}],["summary",{"2":{"45":2}}],["succession",{"2":{"208":1}}],["success",{"2":{"73":2,"148":1}}],["successful",{"2":{"27":1,"30":1,"33":1,"35":1,"38":1,"213":1}}],["successfully",{"2":{"23":1,"35":1,"90":1,"194":1}}],["such",{"2":{"35":1,"49":1,"73":5,"76":1,"104":1,"207":1,"216":2,"217":1}}],["sub",{"2":{"35":2,"38":1,"90":1,"92":1,"95":1,"201":1}}],["subsequent",{"2":{"6":1,"20":1,"49":2,"56":1,"79":1,"82":1,"85":1,"91":1,"94":1,"104":1,"140":1,"234":1}}],["suite",{"2":{"0":1,"144":1,"204":1}}],["omit",{"2":{"214":1}}],["omitted",{"2":{"24":1,"35":1,"49":1,"92":1,"178":1,"207":1}}],["occur",{"2":{"190":1}}],["oidc",{"2":{"148":1}}],["o",{"2":{"146":1,"222":1}}],["older",{"2":{"160":1,"192":1}}],["old",{"2":{"77":1}}],["obviously",{"2":{"215":1,"216":1}}],["obvious",{"2":{"178":3,"208":1}}],["obs",{"2":{"164":2,"170":5}}],["obstacles",{"2":{"167":2,"168":2,"169":2,"170":2,"175":1}}],["obstacle",{"0":{"164":1,"165":1,"166":1,"167":1,"168":2,"169":1,"170":1},"1":{"165":1,"166":1,"168":1,"169":1,"170":1},"2":{"163":2,"164":12,"167":1,"168":9,"169":9,"170":9,"175":1}}],["obtained",{"2":{"56":1}}],["obtain",{"2":{"35":1,"91":1}}],["objects",{"0":{"42":1,"73":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1},"2":{"27":1,"30":2,"33":2,"35":2,"38":2,"43":1,"45":1,"49":1,"54":1,"59":2,"62":1,"65":1,"71":1,"80":4,"83":2,"86":4,"92":4,"95":4}}],["object",{"0":{"43":1,"45":1,"47":1,"49":1,"51":1,"52":1,"54":1,"56":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"71":1,"130":1},"1":{"44":1,"46":1,"48":1,"50":1,"53":1,"55":1,"57":1},"2":{"13":1,"23":1,"24":1,"27":1,"30":1,"35":4,"38":1,"41":1,"45":1,"49":1,"51":2,"56":1,"59":4,"61":1,"62":1,"63":1,"64":3,"65":1,"66":1,"67":3,"68":1,"70":1,"71":2,"75":1,"76":1,"77":4,"79":2,"80":1,"82":2,"83":2,"85":2,"86":1,"91":2,"92":4,"94":2,"95":2,"96":1,"97":8,"108":1,"113":2,"130":1,"164":1}}],["ok",{"2":{"23":2,"25":1,"27":1,"29":1,"30":1,"33":1,"34":1,"35":1,"38":1,"73":1}}],["overall",{"2":{"148":1}}],["overlay",{"2":{"136":1}}],["overhead",{"2":{"72":1}}],["over",{"2":{"56":1,"97":1,"171":1,"173":1,"206":1,"216":1,"224":1,"225":1}}],["overview",{"2":{"30":3,"31":1,"35":3,"36":3,"43":2,"79":4,"91":3,"94":3,"115":2}}],["overview=",{"2":{"30":1,"35":1,"36":1,"114":1}}],["overview=false",{"2":{"21":2,"31":1}}],["override",{"2":{"7":1,"145":1,"149":1,"192":1,"224":2,"225":2}}],["optimisation",{"2":{"143":1}}],["optimizing",{"2":{"223":2}}],["optimization",{"2":{"85":1}}],["optimized",{"2":{"58":1,"230":1}}],["option",{"2":{"20":4,"27":2,"30":1,"32":1,"35":1,"36":1,"77":1,"97":1,"153":1,"162":1}}],["optionally",{"2":{"49":3,"84":1,"192":1}}],["optional",{"2":{"20":2,"23":1,"24":1,"33":1,"51":2,"73":1,"77":1,"79":8,"82":2,"85":1,"86":1,"91":7,"94":8,"149":1,"157":1,"169":1,"170":1,"220":1,"221":2,"228":1,"230":1}}],["option=value",{"2":{"20":3}}],["options",{"0":{"19":1,"220":1},"1":{"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"221":1},"2":{"20":2,"23":1,"27":2,"30":2,"32":4,"35":2,"36":2,"77":19,"79":19,"81":1,"82":10,"83":2,"85":14,"86":2,"91":15,"92":2,"94":15,"95":2,"97":4,"98":2,"219":1,"222":1,"223":1,"224":1,"225":1,"226":1,"228":1,"230":2}}],["openstreetmap",{"2":{"24":1,"27":1,"39":1,"88":1,"156":2,"157":1,"171":1,"173":1}}],["operator",{"2":{"12":1,"202":1}}],["opposite",{"2":{"20":1,"79":1,"82":1,"85":1,"94":1}}],["own",{"2":{"12":1,"73":2,"136":1,"162":1}}],["osmnode",{"2":{"168":1}}],["osmosis",{"2":{"24":1,"222":1}}],["osm",{"2":{"24":1,"47":1,"73":2,"76":1,"131":1,"153":1,"154":4,"155":1,"157":3,"161":1,"163":1,"167":2,"168":1,"169":1,"170":1,"171":1,"172":1,"173":4,"177":1,"203":1,"215":1,"219":1,"222":6}}],["os",{"2":{"8":1,"9":2}}],["osrm>",{"2":{"223":1,"224":1,"225":1,"226":1,"230":1}}],["osrmref",{"2":{"136":1}}],["osrm",{"0":{"2":1,"5":1,"18":1,"76":1,"111":1,"152":1,"181":1,"222":1,"223":1,"224":1,"225":1,"226":1,"230":1,"231":1},"1":{"3":1,"4":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"112":1,"113":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1,"194":1,"227":1,"228":1,"229":1,"232":1,"233":1,"234":1},"2":{"0":1,"2":3,"3":2,"6":1,"7":8,"8":3,"9":2,"10":1,"15":1,"19":1,"20":2,"21":3,"24":1,"28":1,"31":1,"33":6,"37":2,"40":1,"41":2,"47":4,"58":2,"59":2,"72":3,"73":4,"74":1,"75":2,"76":21,"77":8,"80":4,"83":4,"86":4,"89":4,"92":4,"95":4,"98":4,"101":1,"103":1,"105":1,"107":1,"109":1,"110":3,"111":13,"112":2,"114":1,"116":1,"118":1,"120":1,"122":1,"124":1,"128":1,"129":1,"130":1,"131":13,"133":4,"134":3,"136":1,"137":1,"138":1,"140":2,"144":2,"146":10,"148":1,"150":3,"152":1,"153":3,"154":2,"157":1,"158":1,"179":1,"187":2,"188":2,"196":1,"197":2,"198":1,"199":1,"205":1,"207":1,"208":1,"210":1,"211":1,"214":1,"219":1,"221":8,"222":3,"223":1,"224":1,"225":3,"226":2,"228":1,"230":3,"231":1}}],["others",{"2":{"158":1}}],["otherwise",{"2":{"23":1,"27":1,"30":1,"33":1,"35":1,"38":1,"136":1}}],["other",{"0":{"8":1},"2":{"9":2,"20":1,"23":1,"30":1,"32":1,"33":1,"35":1,"38":1,"47":3,"59":1,"71":1,"73":5,"79":1,"149":1,"157":1,"158":3,"162":1,"171":2,"174":2,"176":1,"192":1,"206":1,"207":1,"216":1,"217":1}}],["outgoing",{"2":{"174":1,"176":2}}],["outside",{"2":{"97":1,"136":1}}],["outlier",{"2":{"35":1,"92":1}}],["outliers",{"2":{"35":1,"90":1}}],["outputting",{"0":{"12":1},"1":{"13":1},"2":{"12":1}}],["output",{"2":{"10":1,"12":2,"14":2,"36":3,"79":1,"82":1,"152":1,"154":4,"162":1,"163":1,"171":1,"198":1,"222":2}}],["out",{"2":{"7":1,"12":1,"50":2,"54":1,"55":1,"73":2,"153":1,"189":1,"192":1}}],["our",{"2":{"0":1,"3":1,"11":1,"12":2,"205":1}}],["ordinates",{"2":{"173":2}}],["ordered",{"2":{"30":1,"80":2}}],["order",{"2":{"20":1,"30":2,"33":4,"35":1,"38":1,"78":1,"79":1,"80":2,"86":6,"92":1,"95":1,"171":1,"176":1,"211":1,"213":1}}],["original",{"2":{"24":1,"177":1}}],["organize",{"2":{"189":1}}],["org",{"2":{"21":3,"28":1,"31":1,"33":6,"37":2,"39":1,"40":1,"41":1,"88":1,"150":1}}],["or",{"2":{"3":1,"7":2,"9":2,"12":1,"20":7,"23":1,"24":1,"30":2,"32":9,"35":3,"36":6,"41":1,"47":3,"49":5,"51":2,"59":1,"62":1,"64":3,"67":2,"73":5,"77":2,"78":1,"79":8,"82":7,"85":9,"90":1,"91":7,"93":1,"94":9,"97":1,"104":1,"111":1,"112":1,"114":1,"117":1,"121":1,"123":2,"126":2,"133":1,"136":2,"142":1,"149":1,"152":2,"153":2,"158":3,"161":1,"162":2,"164":5,"169":1,"170":1,"171":3,"172":2,"173":1,"179":1,"187":1,"188":1,"193":1,"202":1,"203":2,"211":1,"214":1,"228":1,"230":1}}],["once",{"2":{"76":1,"157":1,"162":2,"164":1,"168":1}}],["onramp",{"2":{"64":1,"67":1}}],["onto",{"2":{"51":1,"54":1,"64":1,"67":1,"172":1}}],["only",{"2":{"3":2,"9":1,"14":2,"27":2,"36":1,"41":1,"51":1,"59":2,"70":1,"79":1,"81":1,"82":1,"85":1,"91":1,"93":1,"94":1,"136":1,"140":1,"142":1,"161":1,"162":1,"163":1,"164":5,"167":2,"168":1,"169":1,"170":1,"171":3,"172":1,"178":1,"202":1,"206":1,"208":1,"229":1,"230":2}}],["oneway",{"2":{"209":1,"211":2,"214":2}}],["ones",{"2":{"4":1,"30":1,"33":1,"35":1,"38":1,"153":1}}],["one",{"2":{"3":4,"20":2,"23":3,"36":1,"47":1,"52":1,"62":1,"64":1,"147":1,"164":1,"171":1,"172":1,"211":1,"221":1,"230":1}}],["on",{"0":{"176":2,"213":1},"2":{"0":1,"3":2,"5":1,"20":1,"21":2,"24":1,"30":2,"31":1,"33":1,"35":4,"36":1,"41":3,"43":2,"45":2,"49":1,"51":10,"52":2,"54":1,"56":2,"64":4,"67":4,"69":1,"72":1,"73":2,"75":1,"76":1,"77":2,"79":3,"82":1,"85":2,"91":2,"94":1,"108":1,"133":1,"136":1,"142":1,"143":2,"145":1,"148":2,"151":1,"157":1,"158":6,"162":3,"163":1,"164":1,"168":2,"171":6,"173":4,"174":12,"176":12,"177":2,"178":2,"179":1,"182":1,"190":1,"191":2,"192":1,"197":1,"200":1,"203":2,"205":2,"207":1,"211":1,"213":1,"217":1,"218":1,"227":2,"231":1}}],["often",{"2":{"206":1}}],["offsets",{"0":{"212":1}}],["offset",{"2":{"182":1,"184":1,"212":1,"216":2}}],["offramp",{"2":{"64":1,"67":1}}],["off",{"2":{"51":2,"178":1,"228":2}}],["offer",{"2":{"10":1,"51":2,"64":1,"67":1}}],["offers",{"2":{"3":1,"12":1,"156":1,"211":1}}],["ofp",{"2":{"21":1}}],["of",{"0":{"157":1},"2":{"0":1,"2":1,"4":1,"7":1,"10":3,"11":1,"12":9,"13":3,"14":3,"20":9,"21":1,"23":4,"27":3,"28":1,"30":3,"32":5,"33":6,"35":11,"36":5,"38":5,"41":7,"43":5,"45":5,"47":10,"49":12,"51":22,"52":1,"54":13,"56":3,"59":3,"62":1,"64":9,"65":1,"66":1,"67":10,"70":1,"71":5,"72":2,"73":3,"77":1,"79":5,"80":4,"82":3,"83":2,"85":4,"86":10,"88":1,"91":5,"92":9,"93":1,"94":3,"95":6,"97":2,"104":2,"112":1,"115":2,"117":2,"118":1,"119":2,"121":1,"126":1,"136":1,"148":1,"149":1,"152":1,"153":1,"157":4,"158":7,"160":1,"161":4,"162":8,"163":1,"164":1,"167":1,"169":1,"170":2,"171":12,"172":6,"173":10,"174":14,"176":9,"177":1,"178":2,"179":3,"182":1,"187":1,"190":1,"191":1,"192":1,"196":1,"202":1,"206":1,"207":3,"208":3,"209":1,"210":1,"211":2,"212":2,"213":2,"215":2,"216":8,"217":5,"218":1,"219":1,"220":2,"223":4,"225":1,"228":1,"229":6}}],["tcp",{"2":{"227":1}}],["twice",{"2":{"203":1}}],["two",{"2":{"14":1,"32":1,"41":1,"45":2,"73":2,"78":1,"85":1,"102":1,"114":1,"173":1,"223":1}}],["tmp",{"2":{"145":1}}],["txt",{"2":{"137":1,"140":1,"201":1}}],["tbb12",{"2":{"142":2}}],["tbb",{"2":{"136":1,"137":1,"142":1}}],["tuple",{"2":{"126":2}}],["tuning",{"2":{"72":1}}],["turning",{"2":{"164":3,"165":2,"176":1}}],["turns",{"2":{"41":3,"47":1,"51":1,"162":1,"208":4,"209":2,"215":1,"216":2,"217":2}}],["turn",{"0":{"174":2,"177":2,"214":1},"1":{"175":2,"176":2,"177":2},"2":{"13":1,"41":8,"45":2,"47":1,"49":1,"50":1,"51":23,"52":9,"54":6,"64":12,"66":8,"67":14,"104":1,"157":3,"162":5,"163":1,"164":1,"167":2,"168":1,"169":8,"170":10,"171":4,"172":2,"174":23,"176":5,"177":24,"208":1,"214":10,"215":4,"216":8,"217":3,"218":1,"222":1,"224":4,"225":3}}],["tsp",{"2":{"36":1,"93":1}}],["typed",{"2":{"73":1}}],["typescript",{"2":{"58":1}}],["types",{"0":{"127":1},"1":{"128":1,"129":1,"130":1},"2":{"23":1,"41":1,"51":1,"52":1,"72":1,"73":2,"76":1,"130":1,"157":1,"158":1,"162":2,"167":1,"169":2,"170":2,"189":1}}],["type",{"0":{"146":1,"165":1,"169":1,"170":1},"2":{"23":1,"30":1,"33":1,"35":1,"38":1,"41":5,"44":1,"50":1,"51":7,"64":1,"67":3,"73":6,"117":1,"152":1,"162":2,"163":1,"164":7,"167":1,"168":2,"169":8,"170":10,"171":1,"173":1,"174":4,"176":2,"178":1,"202":1,"214":3}}],["typically",{"2":{"20":1,"157":1,"158":1,"171":1}}],["t",{"0":{"213":1,"216":1},"2":{"20":1,"51":1,"64":1,"67":1,"73":3,"79":1,"158":1,"171":1,"173":1,"220":1,"225":1}}],["tiny",{"2":{"212":1}}],["title",{"2":{"189":1}}],["titles",{"2":{"189":1}}],["tip",{"2":{"142":1}}],["ticket",{"2":{"35":1}}],["tidy",{"2":{"35":1,"91":1,"121":1}}],["tileparameters",{"0":{"125":1},"2":{"124":1}}],["tilenames",{"2":{"39":1,"88":1}}],["tiles",{"2":{"39":3,"41":3,"87":3,"124":1}}],["tile",{"0":{"39":1,"87":1,"124":1},"1":{"40":1,"41":1,"88":1,"89":1,"125":1},"2":{"20":1,"39":4,"40":3,"87":1,"88":2,"89":3,"97":1,"124":1,"125":3}}],["times",{"2":{"158":1}}],["timestamps=",{"2":{"120":1}}],["timestamps",{"2":{"35":4,"90":1,"91":1,"92":1,"121":2}}],["timestamp",{"2":{"24":2,"35":5,"91":3,"222":2,"224":2,"225":2}}],["time",{"2":{"33":1,"35":1,"41":1,"43":1,"45":1,"49":1,"86":2,"133":1,"138":1,"140":1,"145":1,"146":1,"155":1,"158":1,"162":2,"190":1,"224":2,"225":2}}],["timeout",{"2":{"7":7,"227":2}}],["timing",{"2":{"7":1}}],["try",{"2":{"215":1,"216":1}}],["tree",{"2":{"211":1}}],["treated",{"2":{"51":1,"64":1,"67":1,"222":1,"223":1}}],["treat",{"2":{"30":1,"35":1,"79":1,"91":1,"115":1,"121":1}}],["treats",{"2":{"30":1,"35":1}}],["trusted",{"2":{"148":1}}],["true|false",{"2":{"30":2,"35":2,"36":3}}],["true|false|number",{"2":{"30":1}}],["true",{"2":{"20":3,"27":1,"30":4,"32":1,"35":4,"36":7,"45":3,"50":7,"51":2,"54":3,"55":3,"59":2,"64":1,"71":1,"77":3,"79":3,"82":2,"85":2,"91":2,"93":4,"94":3,"112":1,"123":1,"126":1,"162":2,"169":2,"171":1}}],["trial",{"2":{"227":1}}],["tries",{"2":{"215":1}}],["tried",{"2":{"23":1}}],["trimlanestring",{"2":{"180":1}}],["trigger",{"0":{"192":1},"2":{"149":1,"192":1}}],["triplet=x64",{"2":{"136":1,"140":1,"145":1}}],["triplet",{"2":{"136":1,"142":1,"145":1}}],["tripparameters",{"0":{"123":1},"2":{"122":1}}],["trip=3",{"2":{"111":1}}],["trips",{"2":{"38":4,"95":5}}],["trip",{"0":{"36":1,"93":1,"122":1},"1":{"37":1,"38":1,"94":1,"95":1,"123":1},"2":{"20":1,"36":8,"37":4,"38":2,"59":1,"77":2,"93":2,"94":1,"95":3,"97":1,"112":2,"122":1,"126":1,"229":2}}],["traditional",{"2":{"182":1}}],["trailing",{"2":{"174":1}}],["traversing",{"2":{"171":1}}],["traverse",{"2":{"41":2,"51":1,"64":1,"67":1}}],["traveled",{"2":{"43":1,"45":1}}],["traveling",{"2":{"36":1,"93":1,"122":1,"152":1}}],["travel",{"2":{"33":2,"43":1,"45":1,"49":4,"51":4,"54":2,"64":1,"67":1,"86":2,"104":1,"158":1,"171":3,"174":4,"176":2}}],["traffic",{"2":{"41":1,"46":2,"48":2,"51":1,"64":1,"67":1,"163":2,"164":3,"165":2,"168":1,"169":1,"170":1,"174":3,"198":1,"224":1,"225":1,"227":1,"230":2}}],["tracks",{"2":{"35":1,"91":1}}],["track",{"2":{"35":2,"91":2}}],["tracker",{"2":{"17":1}}],["tracepoint",{"2":{"35":2}}],["tracepoints",{"2":{"35":1,"92":3}}],["trace",{"2":{"35":5,"38":1,"90":1,"92":6,"95":1}}],["traces",{"2":{"35":1,"90":1,"120":1}}],["translated",{"2":{"215":1}}],["transport",{"2":{"152":1}}],["transportation",{"2":{"20":1,"49":1}}],["transcription",{"2":{"49":1}}],["transitions",{"2":{"35":1,"90":1}}],["transfer",{"2":{"20":1,"58":1,"79":1}}],["tasks",{"2":{"161":1}}],["targetdata",{"2":{"179":2}}],["target",{"0":{"176":1},"2":{"51":1,"136":1,"140":1,"145":2,"173":2,"174":16,"176":1,"177":2,"179":2,"193":1}}],["take",{"2":{"51":6,"64":4,"67":4,"72":1,"73":1,"113":1}}],["taken",{"2":{"45":1,"51":1,"64":1,"67":1}}],["takes",{"2":{"41":4,"51":1,"64":1,"67":1,"73":2,"133":1,"136":1,"234":1}}],["table=3",{"2":{"111":1}}],["tableparameters",{"0":{"117":1},"2":{"73":4,"116":1}}],["tables",{"2":{"32":1,"84":1,"85":1,"209":1}}],["table",{"0":{"32":1,"71":1,"84":1,"116":1},"1":{"33":1,"34":1,"85":1,"86":1,"117":1},"2":{"20":1,"32":3,"33":6,"59":5,"71":1,"73":3,"77":2,"84":2,"85":4,"86":1,"112":2,"116":1,"126":1,"157":4,"161":2,"162":1,"163":1,"170":2,"171":3,"214":1,"229":2}}],["tag",{"2":{"9":5,"140":1,"142":1,"147":2,"148":3,"150":1,"151":2,"156":2,"171":1,"172":3,"174":4,"176":2,"184":1,"185":4,"191":1,"193":1,"194":1,"209":1,"222":1}}],["tagged",{"2":{"9":2,"142":1,"174":2,"176":1}}],["tags",{"0":{"9":1},"2":{"4":1,"9":3,"161":5,"172":2,"173":3,"177":2,"181":1,"184":1,"185":1,"203":1}}],["tl",{"0":{"1":1}}],["top",{"2":{"157":1,"160":1}}],["toml",{"2":{"145":2,"151":1}}],["tostring",{"2":{"98":1}}],["toll",{"2":{"55":1,"171":1}}],["tool",{"2":{"145":2,"219":1,"220":2}}],["tools",{"0":{"219":1},"1":{"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1},"2":{"131":1,"142":1,"146":1,"219":2,"222":1,"234":1}}],["toolchain",{"2":{"76":1,"77":1,"111":1,"136":2,"137":1,"138":1,"140":1,"145":4}}],["too",{"2":{"45":1}}],["toobig",{"2":{"23":1}}],["total",{"2":{"41":1,"171":1}}],["torstraße",{"2":{"34":2}}],["towards",{"2":{"20":1,"79":1,"82":1,"85":1,"91":1,"94":1}}],["todo",{"2":{"3":2}}],["to",{"0":{"11":1,"169":1,"170":1,"175":1,"207":1},"2":{"0":1,"2":1,"3":3,"4":1,"5":1,"6":1,"7":3,"8":1,"9":4,"10":4,"11":2,"12":7,"13":3,"14":3,"18":1,"19":1,"20":13,"23":2,"27":4,"30":6,"32":4,"33":3,"35":13,"36":9,"38":3,"39":1,"41":15,"43":1,"47":4,"49":4,"51":19,"52":1,"54":9,"56":5,"58":3,"59":1,"64":5,"66":1,"67":5,"71":1,"72":3,"73":6,"76":1,"77":13,"79":15,"81":1,"82":9,"83":2,"85":11,"86":2,"87":1,"89":1,"90":3,"91":9,"92":2,"93":3,"94":7,"95":2,"96":1,"97":4,"104":1,"108":1,"110":1,"111":2,"112":3,"115":3,"119":1,"120":1,"121":1,"123":1,"126":1,"133":1,"136":1,"138":1,"140":2,"142":3,"143":1,"144":1,"145":1,"146":2,"147":1,"148":2,"151":1,"152":1,"154":2,"155":3,"156":2,"157":6,"158":10,"160":1,"161":1,"162":3,"163":3,"167":2,"168":3,"169":6,"170":6,"171":10,"172":2,"173":3,"174":5,"175":1,"176":1,"177":4,"178":3,"179":6,"191":1,"192":3,"194":2,"197":3,"198":1,"201":4,"202":2,"203":4,"204":1,"205":2,"206":2,"207":6,"208":7,"209":6,"210":1,"211":1,"212":1,"214":11,"215":3,"216":5,"217":5,"219":1,"220":1,"221":1,"222":5,"223":1,"224":5,"225":3,"227":3,"228":3,"230":3}}],["termination",{"2":{"223":1}}],["tertiary",{"2":{"209":2}}],["text",{"2":{"172":1}}],["tempted",{"2":{"216":1}}],["tempting",{"2":{"206":1}}],["temporary",{"2":{"140":1,"164":1,"196":1}}],["template",{"2":{"14":2}}],["te",{"2":{"21":1}}],["testcases",{"2":{"210":1}}],["testbot",{"2":{"207":1,"208":3,"211":2}}],["testing",{"2":{"9":1,"16":2,"199":1,"212":1,"216":1}}],["testpath",{"2":{"7":1}}],["testsuite",{"0":{"199":1},"1":{"200":1,"201":1,"202":1,"203":1,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1,"211":1,"212":1,"213":1,"214":1,"215":1,"216":1,"217":1,"218":1},"2":{"199":1,"205":1}}],["tests",{"0":{"144":1,"200":1,"204":1,"207":1,"215":1},"1":{"201":1,"202":1,"203":1,"204":1,"216":1,"217":1,"218":1},"2":{"0":1,"1":1,"3":3,"5":1,"9":1,"199":1,"201":3,"203":3,"204":4,"205":1,"207":2,"215":4,"216":1}}],["test",{"0":{"201":1,"202":1,"203":1,"206":1,"209":1,"216":1},"2":{"0":1,"1":1,"2":1,"5":1,"6":2,"7":6,"9":4,"144":7,"189":1,"200":1,"201":2,"202":4,"203":4,"205":1,"206":1,"212":1,"216":4,"217":3}}],["technical",{"2":{"0":1}}],["thought",{"2":{"158":1}}],["though",{"2":{"51":1,"158":1,"216":1}}],["those",{"2":{"9":1,"58":1,"209":1}}],["th",{"2":{"33":4,"86":4}}],["things",{"2":{"157":1}}],["thing",{"2":{"27":1}}],["think",{"2":{"13":1,"41":2,"203":1}}],["this",{"2":{"0":1,"5":1,"6":1,"7":1,"11":1,"12":2,"13":1,"20":2,"24":1,"27":1,"30":1,"32":3,"33":1,"35":5,"36":1,"38":1,"39":1,"40":1,"41":11,"45":1,"49":2,"56":1,"72":1,"73":9,"76":1,"77":4,"79":2,"82":1,"85":2,"87":1,"91":1,"92":2,"94":1,"97":1,"133":1,"136":2,"140":1,"152":1,"154":1,"155":1,"156":1,"157":2,"158":3,"160":1,"161":1,"162":2,"163":1,"164":3,"167":1,"168":2,"169":2,"170":3,"171":11,"172":1,"173":2,"174":6,"176":1,"178":1,"179":1,"189":1,"192":1,"196":1,"197":1,"198":1,"202":1,"203":3,"205":1,"207":1,"214":1,"215":2,"216":3,"225":1,"230":1}}],["throws",{"2":{"202":1}}],["throw",{"2":{"80":1,"89":1,"92":1,"95":1,"98":1}}],["through",{"2":{"12":1,"15":1,"43":1,"51":1,"72":1,"100":1,"110":1}}],["threshold",{"2":{"223":2}}],["three",{"2":{"21":1,"28":1,"31":1,"37":1,"44":1,"150":1,"178":1}}],["threads",{"2":{"220":2}}],["thread",{"2":{"11":1}}],["thus",{"2":{"9":3,"152":1}}],["that",{"2":{"3":8,"7":2,"9":2,"12":1,"13":1,"18":1,"20":1,"27":3,"30":1,"32":1,"33":2,"35":4,"36":1,"38":1,"39":2,"41":7,"49":1,"51":2,"54":4,"56":1,"64":1,"67":1,"71":1,"72":2,"73":5,"79":1,"82":1,"86":2,"87":2,"92":3,"93":1,"95":1,"96":1,"97":2,"136":3,"142":1,"145":1,"148":1,"151":1,"155":2,"156":1,"157":1,"158":4,"160":1,"161":1,"162":4,"163":1,"164":2,"167":1,"169":1,"170":1,"171":2,"174":2,"176":2,"177":1,"180":1,"202":1,"205":1,"207":1,"208":2,"214":3,"215":3,"216":2,"219":1,"230":1}}],["than",{"2":{"3":1,"18":1,"36":1,"41":1,"77":1,"82":1,"93":1,"149":1,"158":1,"202":1,"215":1,"224":1,"225":1}}],["their",{"2":{"142":1,"202":1,"203":1,"215":1}}],["them",{"2":{"73":2,"142":2,"148":1,"161":1,"167":1,"201":1,"214":2,"228":1}}],["these",{"2":{"14":1,"35":1,"73":2,"92":1,"142":1,"153":1,"158":1,"172":1,"175":1,"210":1,"220":1}}],["then",{"2":{"13":1,"32":1,"138":1,"140":1,"148":1,"157":3,"169":2,"170":1,"177":2,"179":2,"203":1,"204":1,"214":1,"215":1,"220":1,"227":1}}],["therefore",{"2":{"133":1}}],["there",{"2":{"4":1,"30":1,"49":2,"51":2,"64":1,"67":1,"73":1,"158":3,"169":2,"180":1,"202":1,"203":1,"217":1,"231":1}}],["they",{"2":{"3":1,"35":1,"39":1,"51":1,"87":1,"90":1,"130":1,"133":1,"156":1,"161":1,"178":1,"189":1,"201":1,"222":1}}],["the",{"0":{"154":1,"176":2,"206":1,"216":2},"2":{"0":3,"1":1,"2":3,"3":8,"4":2,"5":3,"6":4,"7":11,"8":1,"9":12,"10":4,"12":13,"13":5,"14":4,"18":1,"19":1,"20":23,"21":1,"23":10,"24":4,"27":10,"30":11,"32":16,"33":13,"35":35,"36":26,"37":2,"38":10,"39":6,"41":29,"43":15,"45":11,"47":18,"49":34,"51":69,"52":8,"54":40,"56":13,"58":3,"59":3,"61":2,"62":2,"63":2,"64":33,"65":2,"66":3,"67":33,"68":1,"71":4,"72":5,"73":15,"74":2,"75":4,"76":5,"77":10,"78":2,"79":16,"81":3,"82":12,"83":3,"84":1,"85":24,"86":8,"87":4,"89":1,"90":5,"91":10,"92":13,"93":6,"94":12,"95":6,"97":10,"104":1,"110":2,"111":3,"112":1,"114":1,"118":1,"120":1,"122":2,"131":1,"133":3,"134":1,"136":10,"137":3,"138":1,"140":7,"141":6,"142":2,"143":4,"144":5,"145":8,"146":4,"147":5,"148":10,"149":4,"150":4,"151":3,"152":3,"153":4,"154":3,"155":3,"156":3,"157":19,"158":25,"160":3,"161":3,"162":18,"163":5,"164":4,"165":1,"166":1,"167":5,"168":3,"169":6,"170":6,"171":23,"172":10,"173":9,"174":38,"176":29,"177":9,"178":7,"179":5,"180":1,"182":1,"184":1,"185":1,"189":3,"190":5,"191":2,"192":2,"193":3,"194":3,"196":4,"197":3,"198":1,"199":1,"201":3,"202":2,"203":3,"204":2,"205":1,"206":2,"207":10,"208":12,"209":4,"210":1,"211":10,"212":3,"213":2,"214":17,"215":13,"216":18,"217":7,"218":2,"219":1,"220":3,"221":1,"222":9,"223":5,"225":1,"226":2,"228":1,"230":4,"232":3,"233":1,"234":2}}],["d",{"2":{"176":1,"207":2,"208":6,"209":8,"211":4,"214":2,"216":3,"222":1}}],["dll",{"2":{"142":6}}],["dlls",{"2":{"142":1}}],["dylibs",{"2":{"142":1}}],["dvcpkg",{"2":{"136":1,"140":1,"145":1}}],["dcmake",{"2":{"136":1,"140":1,"145":1}}],["dump",{"2":{"222":1}}],["due",{"2":{"158":1}}],["duplicates",{"2":{"121":1}}],["durationisvalid",{"2":{"180":1}}],["duration|distance|duration",{"2":{"32":1}}],["durations",{"2":{"32":2,"33":2,"34":1,"45":1,"71":4,"86":4,"212":1,"230":1}}],["duration",{"2":{"30":1,"32":5,"33":6,"35":1,"36":1,"41":3,"43":1,"44":4,"45":1,"46":2,"47":4,"48":1,"49":1,"50":1,"79":1,"84":1,"85":5,"91":1,"94":1,"114":1,"115":1,"116":2,"117":3,"122":1,"130":1,"158":1,"162":1,"164":2,"169":2,"170":6,"171":2,"173":3,"174":3,"177":1,"179":1,"212":1}}],["during",{"2":{"13":1,"43":1,"162":1,"174":4,"176":2,"177":2,"210":1,"222":1,"223":1}}],["date",{"2":{"182":1,"203":1}}],["datum",{"2":{"179":2}}],["datasource",{"2":{"41":1,"46":1,"47":2,"48":1,"221":1}}],["datasources",{"2":{"30":1,"35":1,"36":1,"46":1,"47":1,"48":1,"79":1,"91":1,"94":1,"115":1}}],["datasets",{"2":{"187":1,"188":1,"230":2}}],["dataset",{"2":{"23":1,"76":3,"77":6,"111":1,"112":4,"203":6,"222":1,"226":1,"227":1,"228":4,"230":6}}],["datastructures",{"2":{"12":1}}],["datastore|directly|mmap",{"2":{"9":2}}],["datastore",{"0":{"230":1},"2":{"2":1,"3":2,"7":2,"9":3,"77":5,"111":1,"112":2,"131":1,"144":2,"228":1,"230":1}}],["data",{"0":{"24":1,"179":1,"228":1},"2":{"2":2,"3":3,"7":1,"12":4,"14":4,"20":2,"24":2,"25":1,"39":1,"41":2,"47":2,"49":2,"56":1,"58":1,"76":2,"79":1,"87":1,"111":2,"124":1,"131":6,"144":5,"154":3,"155":2,"156":1,"157":3,"162":2,"173":4,"179":6,"203":3,"209":4,"218":1,"219":2,"222":4,"224":1,"228":2}}],["dart",{"2":{"58":1}}],["doubt",{"2":{"218":1}}],["double",{"2":{"20":1,"32":2,"35":1,"79":1,"82":1,"85":1,"91":1,"94":1,"176":1}}],["downtime",{"2":{"197":1}}],["downtown",{"2":{"40":1}}],["download",{"2":{"148":1}}],["downloads",{"2":{"147":1}}],["down",{"2":{"73":1,"164":1}}],["dont",{"2":{"202":1}}],["don",{"0":{"213":1,"216":1},"2":{"20":1,"73":3,"79":1,"173":1,"225":1}}],["done",{"2":{"7":1,"157":1,"160":1,"221":1}}],["doesn",{"2":{"158":1}}],["does",{"2":{"20":1,"36":1,"47":2,"51":1,"64":1,"67":1,"73":1,"79":1,"93":1,"140":1,"143":1,"174":2,"176":1,"177":1,"208":1,"217":1}}],["do",{"2":{"10":1,"12":1,"13":1,"20":1,"72":1,"79":2,"152":1,"157":1,"162":1,"170":2,"202":2,"221":1}}],["docker",{"2":{"145":2,"196":1}}],["docs",{"2":{"0":1,"189":1,"200":1}}],["documentation",{"0":{"16":1},"2":{"0":1,"43":1,"72":1,"76":1,"101":1,"103":1,"105":1,"107":1,"109":1,"146":1,"205":1}}],["denable",{"2":{"234":1}}],["denote",{"2":{"54":1}}],["demo",{"2":{"203":1}}],["december",{"2":{"182":1}}],["decide",{"2":{"178":1}}],["decision",{"2":{"178":1}}],["decisions",{"2":{"13":2,"215":1}}],["deciseconds",{"2":{"174":1}}],["decimal",{"2":{"47":1,"79":1,"82":1,"85":1,"91":1,"94":1,"162":1}}],["deliveries",{"2":{"171":1}}],["delay",{"2":{"163":2,"164":1}}],["delvewheel",{"2":{"142":5}}],["delocate",{"2":{"142":4}}],["delete",{"2":{"140":1}}],["dedicated",{"2":{"52":2,"66":2}}],["deploy",{"2":{"221":1}}],["deployment",{"2":{"220":1}}],["deprecated",{"2":{"51":2,"77":1,"97":1,"112":1,"189":1}}],["departure",{"2":{"51":2,"64":1,"67":1}}],["depart",{"2":{"51":4,"54":1,"64":1,"67":1,"207":2,"208":4,"209":4,"216":2}}],["dependency",{"2":{"234":1}}],["dependencies",{"0":{"232":1},"2":{"134":1,"137":1,"138":1,"142":4,"232":1}}],["dependent",{"2":{"23":2,"27":1,"30":1,"33":1,"35":1,"38":1,"203":1,"222":3}}],["depending",{"2":{"41":2,"43":2,"49":1,"51":2,"64":1,"67":1,"157":1}}],["depends",{"2":{"30":1,"45":2,"51":1,"79":1,"211":1,"213":1}}],["detect",{"2":{"140":1}}],["determining",{"2":{"76":1,"161":1,"162":1}}],["determines",{"2":{"162":4}}],["determine",{"2":{"35":1,"157":1,"163":1}}],["determined",{"2":{"20":2}}],["detailed",{"2":{"60":1}}],["details",{"2":{"35":1,"45":1,"76":1}}],["dev",{"2":{"134":2}}],["deviation",{"2":{"35":1,"91":1}}],["development",{"0":{"132":1,"134":1,"140":1},"1":{"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1},"2":{"15":1,"16":1,"143":1,"190":1,"232":1,"233":1}}],["developing",{"0":{"10":1},"1":{"11":1,"12":1,"13":1,"14":1},"2":{"16":1}}],["developer",{"2":{"3":1}}],["der",{"2":{"34":2}}],["derived",{"2":{"222":1}}],["derive",{"2":{"20":1,"73":1}}],["degrees",{"2":{"20":1,"41":1,"79":2,"82":2,"85":2,"91":2,"94":2,"126":1,"174":3,"216":1}}],["desktop",{"2":{"233":1}}],["deserialization",{"2":{"58":1}}],["destination=last",{"2":{"37":1}}],["destination=any",{"2":{"36":1}}],["destination=",{"2":{"36":1,"122":1}}],["destination",{"2":{"32":2,"33":2,"36":5,"51":2,"64":1,"67":1,"85":1,"93":2,"94":1,"95":1,"117":1,"123":1,"161":2}}],["destinations=",{"2":{"116":1}}],["destinations=2",{"2":{"33":1}}],["destinations=5",{"2":{"32":1}}],["destinations",{"2":{"32":4,"33":2,"34":1,"49":3,"71":4,"73":3,"85":1,"86":4,"117":1,"171":2}}],["descending",{"2":{"30":1,"80":2}}],["descriptors",{"2":{"58":2}}],["description",{"2":{"4":1,"20":2,"23":1,"27":1,"30":2,"32":1,"33":1,"35":2,"36":1,"38":1,"41":2,"43":1,"51":3,"52":1,"59":1,"64":1,"66":1,"67":1,"72":1,"163":1,"171":1,"220":1,"222":1,"223":1,"224":1,"225":1,"227":1,"228":1,"229":1,"230":1}}],["describing",{"2":{"33":2,"45":1,"51":1,"54":1,"86":2}}],["described",{"2":{"39":1,"58":1,"97":1,"219":1}}],["describe",{"2":{"11":1,"54":1,"56":1,"108":1}}],["describes",{"2":{"0":1,"51":4,"64":4,"67":4,"152":1}}],["desired",{"2":{"14":1}}],["debug",{"2":{"11":1,"12":4,"13":1,"14":5,"41":1,"217":1,"220":1}}],["debugging",{"0":{"10":1,"11":1},"1":{"11":1,"12":1,"13":1,"14":1},"2":{"12":1,"14":1,"217":1,"222":1}}],["dealing",{"2":{"7":1}}],["definitions",{"2":{"209":5}}],["definition",{"2":{"174":2,"176":1}}],["defines",{"2":{"161":2}}],["define",{"2":{"156":1,"157":5,"202":1}}],["defined",{"2":{"3":1,"77":1,"157":2,"160":1,"171":2,"174":8,"176":4,"180":1,"214":1}}],["defaults",{"2":{"7":2,"20":1,"143":1,"169":1,"170":1,"192":1}}],["default",{"2":{"6":1,"7":2,"12":1,"20":10,"27":1,"30":9,"32":4,"35":8,"36":8,"47":2,"58":1,"76":1,"77":12,"79":13,"82":6,"85":9,"91":10,"94":12,"97":2,"111":1,"112":4,"115":5,"117":4,"119":1,"121":2,"123":3,"126":4,"140":1,"145":1,"162":6,"174":6,"176":3,"220":2,"222":1,"223":1,"224":1,"225":1,"227":1,"228":1,"229":3,"230":1}}],["difficulty",{"2":{"215":1}}],["differences",{"2":{"71":1,"157":1}}],["difference",{"2":{"71":1,"178":1,"202":1}}],["different",{"2":{"14":1,"58":1,"61":2,"62":1,"63":2,"64":3,"65":1,"67":1,"152":1,"154":1,"157":1,"158":4,"167":1,"168":1,"173":4,"216":1}}],["differ",{"2":{"41":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"140":1}}],["dict",{"2":{"113":1,"130":1}}],["dispatched",{"2":{"148":1}}],["dispatch",{"2":{"148":1}}],["display",{"2":{"91":1}}],["displayed",{"2":{"30":1,"35":1,"36":1,"43":1,"79":1}}],["distinction",{"2":{"216":1}}],["distribution",{"2":{"142":1}}],["dist",{"2":{"141":3,"142":11,"148":1}}],["distances",{"2":{"32":5,"33":2,"34":1,"45":1,"71":1,"86":4,"212":1}}],["distance",{"2":{"27":1,"29":3,"30":1,"32":5,"33":3,"35":1,"36":1,"43":2,"44":3,"45":2,"46":2,"47":3,"48":1,"49":3,"50":1,"56":2,"57":1,"77":2,"79":1,"83":3,"84":1,"85":5,"91":1,"94":1,"104":1,"111":1,"112":1,"115":1,"116":2,"117":1,"130":1,"158":1,"173":1,"176":1}}],["discovered",{"2":{"211":1}}],["discovery",{"2":{"211":1,"213":2}}],["discover",{"2":{"178":1,"209":1}}],["discouraged",{"2":{"7":1}}],["discards",{"2":{"140":1}}],["disabling",{"2":{"79":1,"91":1,"94":1}}],["disables",{"2":{"77":1}}],["disable",{"0":{"198":1},"2":{"77":1,"198":1,"222":2,"228":1,"230":1}}],["disabled",{"2":{"23":1,"217":1,"224":2,"225":2}}],["disableddataset",{"2":{"23":1}}],["disk",{"2":{"77":2,"97":1,"222":1}}],["died",{"2":{"7":1}}],["dir=",{"2":{"145":1}}],["dir",{"0":{"196":1},"2":{"7":1,"143":1,"196":1}}],["directions",{"0":{"209":1},"2":{"164":1,"171":3,"209":1}}],["direction",{"0":{"166":1},"2":{"20":2,"41":1,"51":16,"54":3,"64":9,"67":9,"79":2,"82":2,"85":2,"91":1,"94":2,"157":1,"164":5,"168":1,"171":3,"215":1}}],["directory",{"2":{"6":1,"7":4,"12":1,"58":1,"72":1,"140":4,"141":1,"153":1,"196":3,"201":1}}],["directly",{"2":{"2":1,"3":2,"39":1,"87":1,"161":1}}],["dijkstra",{"2":{"2":1,"223":1,"228":1}}],["drive",{"2":{"162":1}}],["drives",{"2":{"147":1}}],["driven",{"2":{"147":1,"199":1}}],["driving",{"2":{"21":3,"28":1,"31":1,"33":6,"37":2,"49":2,"50":1,"51":1,"54":1,"64":3,"67":1,"162":1,"174":1}}],["dr",{"0":{"1":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/docs/v26.5.0/assets/chunks/VPLocalSearchBox.DGlmokQH.js b/docs/v26.5.0/assets/chunks/VPLocalSearchBox.DGnxHqzH.js similarity index 99% rename from docs/v26.5.0/assets/chunks/VPLocalSearchBox.DGlmokQH.js rename to docs/v26.5.0/assets/chunks/VPLocalSearchBox.DGnxHqzH.js index 74a475c..6a4a4b4 100644 --- a/docs/v26.5.0/assets/chunks/VPLocalSearchBox.DGlmokQH.js +++ b/docs/v26.5.0/assets/chunks/VPLocalSearchBox.DGnxHqzH.js @@ -1,4 +1,4 @@ -var Ot=Object.defineProperty;var At=(a,e,t)=>e in a?Ot(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Me=(a,e,t)=>At(a,typeof e!="symbol"?e+"":e,t);import{V as Ct,q as Be,ah as Mt,h as be,ai as nt,aj as Lt,ak as Dt,al as Pt,G as ce,d as zt,am as rt,p as he,an as Vt,ao as jt,s as $t,ap as Bt,v as Le,P as ve,O as xe,aq as Wt,ar as Kt,W as Jt,R as qt,$ as Ut,o as q,b as Ht,j as T,a0 as Gt,k as P,as as Qt,at as Yt,au as Zt,c as Q,n as st,e as _e,B as it,F as at,a as pe,t as me,av as Xt,aw as ot,ax as en,a5 as tn,aa as nn,ay as rn,_ as sn}from"./framework.C2NLiVii.js";import{u as an,c as on}from"./theme.CRHW4GoY.js";const ln={root:()=>Ct(()=>import("./@localSearchIndexroot.D9qikBrG.js"),[])};/*! +var Ot=Object.defineProperty;var At=(a,e,t)=>e in a?Ot(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Me=(a,e,t)=>At(a,typeof e!="symbol"?e+"":e,t);import{V as Ct,q as Be,ah as Mt,h as be,ai as nt,aj as Lt,ak as Dt,al as Pt,G as ce,d as zt,am as rt,p as he,an as Vt,ao as jt,s as $t,ap as Bt,v as Le,P as ve,O as xe,aq as Wt,ar as Kt,W as Jt,R as qt,$ as Ut,o as q,b as Ht,j as T,a0 as Gt,k as P,as as Qt,at as Yt,au as Zt,c as Q,n as st,e as _e,B as it,F as at,a as pe,t as me,av as Xt,aw as ot,ax as en,a5 as tn,aa as nn,ay as rn,_ as sn}from"./framework.K54bclBu.js";import{u as an,c as on}from"./theme.H8GjM6k9.js";const ln={root:()=>Ct(()=>import("./@localSearchIndexroot.CL7jhrei.js"),[])};/*! * tabbable 6.4.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var gt=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],ke=gt.join(","),bt=typeof Element>"u",ae=bt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ne=!bt&&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},Fe=function(e,t){var n;t===void 0&&(t=!0);var r=e==null||(n=e.getAttribute)===null||n===void 0?void 0:n.call(e,"inert"),i=r===""||r==="true",s=i||t&&e&&(typeof e.closest=="function"?e.closest("[inert]"):Fe(e.parentNode));return s},cn=function(e){var t,n=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return n===""||n==="true"},yt=function(e,t,n){if(Fe(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(ke));return t&&ae.call(e,ke)&&r.unshift(e),r=r.filter(n),r},Re=function(e,t,n){for(var r=[],i=Array.from(e);i.length;){var s=i.shift();if(!Fe(s,!1))if(s.tagName==="SLOT"){var o=s.assignedElements(),l=o.length?o:s.children,c=Re(l,!0,n);n.flatten?r.push.apply(r,c):r.push({scopeParent:s,candidates:c})}else{var h=ae.call(s,ke);h&&n.filter(s)&&(t||!e.includes(s))&&r.push(s);var m=s.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(s),p=!Fe(m,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(s));if(m&&p){var b=Re(m===!0?s.children:m.children,!0,n);n.flatten?r.push.apply(r,b):r.push({scopeParent:s,candidates:b})}else i.unshift.apply(i,s.children)}}return r},wt=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)||cn(e))&&!wt(e)?0:e.tabIndex},un=function(e,t){var n=ie(e);return n<0&&t&&!wt(e)?0:n},dn=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},St=function(e){return e.tagName==="INPUT"},fn=function(e){return St(e)&&e.type==="hidden"},hn=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(n){return n.tagName==="SUMMARY"});return t},vn=function(e,t){for(var n=0;nsummary:first-of-type"),o=s?e.parentElement:e;if(ae.call(o,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="full-native"||n==="legacy-full"){if(typeof r=="function"){for(var l=e;e;){var c=e.parentElement,h=Ne(e);if(c&&!c.shadowRoot&&r(c)===!0)return lt(e);e.assignedSlot?e=e.assignedSlot:!c&&h!==e.ownerDocument?e=h.host:e=c}e=l}if(bn(e))return!e.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return lt(e);return!1},wn=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var n=0;n=0)},xt=function(e){var t=[],n=[];return e.forEach(function(r,i){var s=!!r.scopeParent,o=s?r.scopeParent:r,l=un(o,s),c=s?xt(r.candidates):o;l===0?s?t.push.apply(t,c):t.push(o):n.push({documentOrder:i,tabIndex:l,item:r,isScope:s,content:c})}),n.sort(dn).reduce(function(r,i){return i.isScope?r.push.apply(r,i.content):r.push(i.content),r},[]).concat(t)},xn=function(e,t){t=t||{};var n;return t.getShadowRoot?n=Re([e],t.includeContainer,{filter:We.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:Sn}):n=yt(e,t.includeContainer,We.bind(null,t)),xt(n)},_n=function(e,t){t=t||{};var n;return t.getShadowRoot?n=Re([e],t.includeContainer,{filter:Oe.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):n=yt(e,t.includeContainer,Oe.bind(null,t)),n},oe=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,ke)===!1?!1:We(t,e)},Tn=gt.concat("iframe:not([inert]):not([inert] *)").join(","),De=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,Tn)===!1?!1:Oe(t,e)};/*! diff --git a/docs/v26.5.0/assets/chunks/framework.C2NLiVii.js b/docs/v26.5.0/assets/chunks/framework.K54bclBu.js similarity index 90% rename from docs/v26.5.0/assets/chunks/framework.C2NLiVii.js rename to docs/v26.5.0/assets/chunks/framework.K54bclBu.js index a725f03..2ee410a 100644 --- a/docs/v26.5.0/assets/chunks/framework.C2NLiVii.js +++ b/docs/v26.5.0/assets/chunks/framework.K54bclBu.js @@ -16,4 +16,4 @@ * @vue/runtime-dom v3.5.28 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Us;const Wr=typeof window<"u"&&window.trustedTypes;if(Wr)try{Us=Wr.createPolicy("vue",{createHTML:e=>e})}catch{}const jo=Us?e=>Us.createHTML(e):e=>e,fa="http://www.w3.org/2000/svg",da="http://www.w3.org/1998/Math/MathML",Ye=typeof document<"u"?document:null,Ur=Ye&&Ye.createElement("template"),ha={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Ye.createElementNS(fa,e):t==="mathml"?Ye.createElementNS(da,e):n?Ye.createElement(e,{is:n}):Ye.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Ye.createTextNode(e),createComment:e=>Ye.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ye.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Ur.innerHTML=jo(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const l=Ur.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},rt="transition",Bt="animation",ln=Symbol("_vtc"),Vo={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},pa=fe({},eo,Vo),ga=e=>(e.displayName="Transition",e.props=pa,e),tf=ga((e,{slots:t})=>Ws(dc,ma(e),t)),pt=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Br=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function ma(e){const t={};for(const w in e)w in Vo||(t[w]=e[w]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:u=o,appearToClass:a=l,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,b=ya(r),y=b&&b[0],D=b&&b[1],{onBeforeEnter:P,onEnter:I,onEnterCancelled:p,onLeave:g,onLeaveCancelled:R,onBeforeAppear:j=P,onAppear:M=I,onAppearCancelled:k=p}=t,T=(w,H,Y,oe)=>{w._enterCancelled=oe,gt(w,H?a:l),gt(w,H?u:o),Y&&Y()},O=(w,H)=>{w._isLeaving=!1,gt(w,d),gt(w,_),gt(w,m),H&&H()},A=w=>(H,Y)=>{const oe=w?M:I,U=()=>T(H,w,Y);pt(oe,[H,U]),Kr(()=>{gt(H,w?c:i),Xe(H,w?a:l),Br(oe)||qr(H,s,y,U)})};return fe(t,{onBeforeEnter(w){pt(P,[w]),Xe(w,i),Xe(w,o)},onBeforeAppear(w){pt(j,[w]),Xe(w,c),Xe(w,u)},onEnter:A(!1),onAppear:A(!0),onLeave(w,H){w._isLeaving=!0;const Y=()=>O(w,H);Xe(w,d),w._enterCancelled?(Xe(w,m),Yr(w)):(Yr(w),Xe(w,m)),Kr(()=>{w._isLeaving&&(gt(w,d),Xe(w,_),Br(g)||qr(w,s,D,Y))}),pt(g,[w,Y])},onEnterCancelled(w){T(w,!1,void 0,!0),pt(p,[w])},onAppearCancelled(w){T(w,!0,void 0,!0),pt(k,[w])},onLeaveCancelled(w){O(w),pt(R,[w])}})}function ya(e){if(e==null)return null;if(Q(e))return[gs(e.enter),gs(e.leave)];{const t=gs(e);return[t,t]}}function gs(e){return dl(e)}function Xe(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[ln]||(e[ln]=new Set)).add(t)}function gt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[ln];n&&(n.delete(t),n.size||(e[ln]=void 0))}function Kr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let va=0;function qr(e,t,n,s){const r=e._endId=++va,i=()=>{r===e._endId&&s()};if(n!=null)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=_a(e,t);if(!o)return s();const u=o+"end";let a=0;const d=()=>{e.removeEventListener(u,m),i()},m=_=>{_.target===e&&++a>=c&&d()};setTimeout(()=>{a(n[b]||"").split(", "),r=s(`${rt}Delay`),i=s(`${rt}Duration`),o=Gr(r,i),l=s(`${Bt}Delay`),c=s(`${Bt}Duration`),u=Gr(l,c);let a=null,d=0,m=0;t===rt?o>0&&(a=rt,d=o,m=i.length):t===Bt?u>0&&(a=Bt,d=u,m=c.length):(d=Math.max(o,u),a=d>0?o>u?rt:Bt:null,m=a?a===rt?i.length:c.length:0);const _=a===rt&&/\b(?:transform|all)(?:,|$)/.test(s(`${rt}Property`).toString());return{type:a,timeout:d,propCount:m,hasTransform:_}}function Gr(e,t){for(;e.lengthXr(n)+Xr(e[s])))}function Xr(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Yr(e){return(e?e.ownerDocument:document).body.offsetHeight}function ba(e,t,n){const s=e[ln];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Jr=Symbol("_vod"),wa=Symbol("_vsh"),Sa=Symbol(""),Ta=/(?:^|;)\s*display\s*:/;function Ea(e,t,n){const s=e.style,r=le(n);let i=!1;if(n&&!r){if(t)if(le(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&Ln(s,l,"")}else for(const o in t)n[o]==null&&Ln(s,o,"");for(const o in n)o==="display"&&(i=!0),Ln(s,o,n[o])}else if(r){if(t!==n){const o=s[Sa];o&&(n+=";"+o),s.cssText=n,i=Ta.test(n)}}else t&&e.removeAttribute("style");Jr in e&&(e[Jr]=i?s.display:"",e[wa]&&(s.display="none"))}const zr=/\s*!important$/;function Ln(e,t,n){if(K(n))n.forEach(s=>Ln(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=xa(e,t);zr.test(n)?e.setProperty(ft(s),n.replace(zr,""),"important"):e[s]=n}}const Qr=["Webkit","Moz","ms"],ms={};function xa(e,t){const n=ms[t];if(n)return n;let s=Ie(t);if(s!=="filter"&&s in e)return ms[t]=s;s=Kn(s);for(let r=0;rys||(Ma.then(()=>ys=0),ys=Date.now());function Pa(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;je(La(s,n.value),t,5,[s])};return n.value=e,n.attached=Oa(),n}function La(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const ri=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ia=(e,t,n,s,r,i)=>{const o=r==="svg";t==="class"?ba(e,s,o):t==="style"?Ea(e,n,s):cn(t)?Ks(t)||Aa(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Na(e,t,s,o))?(ti(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ei(e,t,s,o,i,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!le(s))?ti(e,Ie(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),ei(e,t,s,o))};function Na(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&ri(t)&&q(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return ri(t)&&le(n)?!1:t in e}const ii=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>Rn(t,n):t};function Fa(e){e.target.composing=!0}function oi(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const vs=Symbol("_assign");function li(e,t,n){return t&&(e=e.trim()),n&&(e=Gs(e)),e}const nf={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[vs]=ii(r);const i=s||r.props&&r.props.type==="number";Ot(e,t?"change":"input",o=>{o.target.composing||e[vs](li(e.value,n,i))}),(n||i)&&Ot(e,"change",()=>{e.value=li(e.value,n,i)}),t||(Ot(e,"compositionstart",Fa),Ot(e,"compositionend",oi),Ot(e,"change",oi))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:i}},o){if(e[vs]=ii(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?Gs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===c)||(e.value=c))}},Ha=["ctrl","shift","alt","meta"],Da={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)=>Ha.some(n=>e[`${n}Key`]&&!t.includes(n))},sf=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=((r,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=(r=>{if(!("key"in r))return;const i=ft(r.key);if(t.some(o=>o===i||$a[o]===i))return e(r)}))},ko=fe({patchProp:Ia},ha);let Qt,ci=!1;function ja(){return Qt||(Qt=Yc(ko))}function Va(){return Qt=ci?Qt:Jc(ko),ci=!0,Qt}const of=((...e)=>{const t=ja().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Uo(s);if(!r)return;const i=t._component;!q(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,Wo(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t}),lf=((...e)=>{const t=Va().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Uo(s);if(r)return n(r,!0,Wo(r))},t});function Wo(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Uo(e){return le(e)?document.querySelector(e):e}const ka=window.__VP_SITE_DATA__;function Bo(e){return Ri()?(Sl(e),!0):!1}const _s=new WeakMap,Wa=(...e)=>{var t;const n=e[0],s=(t=xt())==null?void 0:t.proxy;if(s==null&&!Yi())throw new Error("injectLocal must be called in setup");return s&&_s.has(s)&&n in _s.get(s)?_s.get(s)[n]:bt(...e)},Ko=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const cf=e=>e!=null,Ua=Object.prototype.toString,Ba=e=>Ua.call(e)==="[object Object]",ut=()=>{},ai=Ka();function Ka(){var e,t;return Ko&&((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 ur(e,t){function n(...s){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,s),{fn:t,thisArg:this,args:s})).then(r).catch(i)})}return n}const qo=e=>e();function Go(e,t={}){let n,s,r=ut;const i=c=>{clearTimeout(c),r(),r=ut};let o;return c=>{const u=ce(e),a=ce(t.maxWait);return n&&i(n),u<=0||a!==void 0&&a<=0?(s&&(i(s),s=null),Promise.resolve(c())):new Promise((d,m)=>{r=t.rejectOnCancel?m:d,o=c,a&&!s&&(s=setTimeout(()=>{n&&i(n),s=null,d(o())},a)),n=setTimeout(()=>{s&&i(s),s=null,d(c())},u)})}}function qa(...e){let t=0,n,s=!0,r=ut,i,o,l,c,u;!ae(e[0])&&typeof e[0]=="object"?{delay:o,trailing:l=!0,leading:c=!0,rejectOnCancel:u=!1}=e[0]:[o,l=!0,c=!0,u=!1]=e;const a=()=>{n&&(clearTimeout(n),n=void 0,r(),r=ut)};return m=>{const _=ce(o),b=Date.now()-t,y=()=>i=m();return a(),_<=0?(t=Date.now(),y()):(b>_&&(c||!s)?(t=Date.now(),y()):l&&(i=new Promise((D,P)=>{r=u?P:D,n=setTimeout(()=>{t=Date.now(),s=!0,D(y()),a()},Math.max(0,_-b))})),!c&&!n&&(n=setTimeout(()=>s=!0,_)),s=!1,i)}}function Ga(e=qo,t={}){const{initialState:n="active"}=t,s=fr(n==="active");function r(){s.value=!1}function i(){s.value=!0}return{isActive:tn(s),pause:r,resume:i,eventFilter:(...l)=>{s.value&&e(...l)}}}function ui(e){return e.endsWith("rem")?Number.parseFloat(e)*16:Number.parseFloat(e)}function Xa(e){return xt()}function bs(e){return Array.isArray(e)?e:[e]}function fr(...e){if(e.length!==1)return Yl(...e);const t=e[0];return typeof t=="function"?tn(ql(()=>({get:t,set:ut}))):He(t)}function Ya(e,t=200,n={}){return ur(Go(t,n),e)}function Ja(e,t=200,n=!1,s=!0,r=!1){return ur(qa(t,n,s,r),e)}function Xo(e,t,n={}){const{eventFilter:s=qo,...r}=n;return Le(e,ur(s,t),r)}function za(e,t,n={}){const{eventFilter:s,initialState:r="active",...i}=n,{eventFilter:o,pause:l,resume:c,isActive:u}=Ga(s,{initialState:r});return{stop:Xo(e,t,{...i,eventFilter:o}),pause:l,resume:c,isActive:u}}function ss(e,t=!0,n){Xa()?jt(e,n):t?e():zn(e)}function af(e,t,n={}){const{debounce:s=0,maxWait:r=void 0,...i}=n;return Xo(e,t,{...i,eventFilter:Go(s,{maxWait:r})})}function Qa(e,t,n){return Le(e,t,{...n,immediate:!0})}function uf(e,t,n){let s;ae(n)?s={evaluating:n}:s={};const{lazy:r=!1,evaluating:i=void 0,shallow:o=!0,onError:l=ut}=s,c=Ee(!r),u=o?Ee(t):He(t);let a=0;return sr(async d=>{if(!c.value)return;a++;const m=a;let _=!1;i&&Promise.resolve().then(()=>{i.value=!0});try{const b=await e(y=>{d(()=>{i&&(i.value=!1),_||y()})});m===a&&(u.value=b)}catch(b){l(b)}finally{i&&m===a&&(i.value=!1),_=!0}}),r?ie(()=>(c.value=!0,u.value)):u}const Ve=Ko?window:void 0;function dr(e){var t;const n=ce(e);return(t=n==null?void 0:n.$el)!=null?t:n}function nt(...e){const t=[],n=()=>{t.forEach(l=>l()),t.length=0},s=(l,c,u,a)=>(l.addEventListener(c,u,a),()=>l.removeEventListener(c,u,a)),r=ie(()=>{const l=bs(ce(e[0])).filter(c=>c!=null);return l.every(c=>typeof c!="string")?l:void 0}),i=Qa(()=>{var l,c;return[(c=(l=r.value)==null?void 0:l.map(u=>dr(u)))!=null?c:[Ve].filter(u=>u!=null),bs(ce(r.value?e[1]:e[0])),bs(Jn(r.value?e[2]:e[1])),ce(r.value?e[3]:e[2])]},([l,c,u,a])=>{if(n(),!(l!=null&&l.length)||!(c!=null&&c.length)||!(u!=null&&u.length))return;const d=Ba(a)?{...a}:a;t.push(...l.flatMap(m=>c.flatMap(_=>u.map(b=>s(m,_,b,d)))))},{flush:"post"}),o=()=>{i(),n()};return Bo(n),o}function Za(){const e=Ee(!1),t=xt();return t&&jt(()=>{e.value=!0},t),e}function eu(e){const t=Za();return ie(()=>(t.value,!!e()))}function tu(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function ff(...e){let t,n,s={};e.length===3?(t=e[0],n=e[1],s=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],s=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=Ve,eventName:i="keydown",passive:o=!1,dedupe:l=!1}=s,c=tu(t);return nt(r,i,a=>{a.repeat&&ce(l)||c(a)&&n(a)},o)}const nu=Symbol("vueuse-ssr-width");function su(){const e=Yi()?Wa(nu,null):null;return typeof e=="number"?e:void 0}function Yo(e,t={}){const{window:n=Ve,ssrWidth:s=su()}=t,r=eu(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function"),i=Ee(typeof s=="number"),o=Ee(),l=Ee(!1),c=u=>{l.value=u.matches};return sr(()=>{if(i.value){i.value=!r.value;const u=ce(e).split(",");l.value=u.some(a=>{const d=a.includes("not all"),m=a.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),_=a.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let b=!!(m||_);return m&&b&&(b=s>=ui(m[1])),_&&b&&(b=s<=ui(_[1])),d?!b:b});return}r.value&&(o.value=n.matchMedia(ce(e)),l.value=o.value.matches)}),nt(o,"change",c,{passive:!0}),ie(()=>l.value)}const Tn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},En="__vueuse_ssr_handlers__",ru=iu();function iu(){return En in Tn||(Tn[En]=Tn[En]||{}),Tn[En]}function Jo(e,t){return ru[e]||t}function zo(e){return Yo("(prefers-color-scheme: dark)",e)}function ou(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 lu={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()}},fi="vueuse-storage";function hr(e,t,n,s={}){var r;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:u=!1,shallow:a,window:d=Ve,eventFilter:m,onError:_=A=>{console.error(A)},initOnMounted:b}=s,y=(a?Ee:He)(typeof t=="function"?t():t),D=ie(()=>ce(e));if(!n)try{n=Jo("getDefaultStorage",()=>{var A;return(A=Ve)==null?void 0:A.localStorage})()}catch(A){_(A)}if(!n)return y;const P=ce(t),I=ou(P),p=(r=s.serializer)!=null?r:lu[I],{pause:g,resume:R}=za(y,()=>M(y.value),{flush:i,deep:o,eventFilter:m});Le(D,()=>T(),{flush:i}),d&&l&&ss(()=>{n instanceof Storage?nt(d,"storage",T,{passive:!0}):nt(d,fi,O),b&&T()}),b||T();function j(A,w){if(d){const H={key:D.value,oldValue:A,newValue:w,storageArea:n};d.dispatchEvent(n instanceof Storage?new StorageEvent("storage",H):new CustomEvent(fi,{detail:H}))}}function M(A){try{const w=n.getItem(D.value);if(A==null)j(w,null),n.removeItem(D.value);else{const H=p.write(A);w!==H&&(n.setItem(D.value,H),j(w,H))}}catch(w){_(w)}}function k(A){const w=A?A.newValue:n.getItem(D.value);if(w==null)return c&&P!=null&&n.setItem(D.value,p.write(P)),P;if(!A&&u){const H=p.read(w);return typeof u=="function"?u(H,P):I==="object"&&!Array.isArray(H)?{...P,...H}:H}else return typeof w!="string"?w:p.read(w)}function T(A){if(!(A&&A.storageArea!==n)){if(A&&A.key==null){y.value=P;return}if(!(A&&A.key!==D.value)){g();try{(A==null?void 0:A.newValue)!==p.write(y.value)&&(y.value=k(A))}catch(w){_(w)}finally{A?zn(R):R()}}}}function O(A){T(A.detail)}return y}const cu="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function au(e={}){const{selector:t="html",attribute:n="class",initialValue:s="auto",window:r=Ve,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:u,disableTransition:a=!0}=e,d={auto:"",light:"light",dark:"dark",...e.modes||{}},m=zo({window:r}),_=ie(()=>m.value?"dark":"light"),b=c||(o==null?fr(s):hr(o,s,i,{window:r,listenToStorageChanges:l})),y=ie(()=>b.value==="auto"?_.value:b.value),D=Jo("updateHTMLAttrs",(g,R,j)=>{const M=typeof g=="string"?r==null?void 0:r.document.querySelector(g):dr(g);if(!M)return;const k=new Set,T=new Set;let O=null;if(R==="class"){const w=j.split(/\s/g);Object.values(d).flatMap(H=>(H||"").split(/\s/g)).filter(Boolean).forEach(H=>{w.includes(H)?k.add(H):T.add(H)})}else O={key:R,value:j};if(k.size===0&&T.size===0&&O===null)return;let A;a&&(A=r.document.createElement("style"),A.appendChild(document.createTextNode(cu)),r.document.head.appendChild(A));for(const w of k)M.classList.add(w);for(const w of T)M.classList.remove(w);O&&M.setAttribute(O.key,O.value),a&&(r.getComputedStyle(A).opacity,document.head.removeChild(A))});function P(g){var R;D(t,n,(R=d[g])!=null?R:g)}function I(g){e.onChanged?e.onChanged(g,P):P(g)}Le(y,I,{flush:"post",immediate:!0}),ss(()=>I(y.value));const p=ie({get(){return u?b.value:y.value},set(g){b.value=g}});return Object.assign(p,{store:b,system:_,state:y})}function uu(e={}){const{valueDark:t="dark",valueLight:n=""}=e,s=au({...e,onChanged:(o,l)=>{var c;e.onChanged?(c=e.onChanged)==null||c.call(e,o==="dark",l,o):l(o)},modes:{dark:t,light:n}}),r=ie(()=>s.system.value);return ie({get(){return s.value==="dark"},set(o){const l=o?"dark":"light";r.value===l?s.value="auto":s.value=l}})}function ws(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}const di=1;function fu(e,t={}){const{throttle:n=0,idle:s=200,onStop:r=ut,onScroll:i=ut,offset:o={left:0,right:0,top:0,bottom:0},eventListenerOptions:l={capture:!1,passive:!0},behavior:c="auto",window:u=Ve,onError:a=M=>{console.error(M)}}=t,d=Ee(0),m=Ee(0),_=ie({get(){return d.value},set(M){y(M,void 0)}}),b=ie({get(){return m.value},set(M){y(void 0,M)}});function y(M,k){var T,O,A,w;if(!u)return;const H=ce(e);if(!H)return;(A=H instanceof Document?u.document.body:H)==null||A.scrollTo({top:(T=ce(k))!=null?T:b.value,left:(O=ce(M))!=null?O:_.value,behavior:ce(c)});const Y=((w=H==null?void 0:H.document)==null?void 0:w.documentElement)||(H==null?void 0:H.documentElement)||H;_!=null&&(d.value=Y.scrollLeft),b!=null&&(m.value=Y.scrollTop)}const D=Ee(!1),P=Ht({left:!0,right:!1,top:!0,bottom:!1}),I=Ht({left:!1,right:!1,top:!1,bottom:!1}),p=M=>{D.value&&(D.value=!1,I.left=!1,I.right=!1,I.top=!1,I.bottom=!1,r(M))},g=Ya(p,n+s),R=M=>{var k;if(!u)return;const T=((k=M==null?void 0:M.document)==null?void 0:k.documentElement)||(M==null?void 0:M.documentElement)||dr(M),{display:O,flexDirection:A,direction:w}=getComputedStyle(T),H=w==="rtl"?-1:1,Y=T.scrollLeft;I.left=Yd.value;const oe=Math.abs(Y*H)<=(o.left||0),U=Math.abs(Y*H)+T.clientWidth>=T.scrollWidth-(o.right||0)-di;O==="flex"&&A==="row-reverse"?(P.left=U,P.right=oe):(P.left=oe,P.right=U),d.value=Y;let X=T.scrollTop;M===u.document&&!X&&(X=u.document.body.scrollTop),I.top=Xm.value;const V=Math.abs(X)<=(o.top||0),te=Math.abs(X)+T.clientHeight>=T.scrollHeight-(o.bottom||0)-di;O==="flex"&&A==="column-reverse"?(P.top=te,P.bottom=V):(P.top=V,P.bottom=te),m.value=X},j=M=>{var k;if(!u)return;const T=(k=M.target.documentElement)!=null?k:M.target;R(T),D.value=!0,g(M),i(M)};return nt(e,"scroll",n?Ja(j,n,!0,!1):j,l),ss(()=>{try{const M=ce(e);if(!M)return;R(M)}catch(M){a(M)}}),nt(e,"scrollend",p,l),{x:_,y:b,isScrolling:D,arrivedState:P,directions:I,measure(){const M=ce(e);u&&M&&R(M)}}}function df(e,t,n={}){const{window:s=Ve}=n;return hr(e,t,s==null?void 0:s.localStorage,n)}function Qo(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 Ss=new WeakMap;function hf(e,t=!1){const n=Ee(t);let s=null,r="";Le(fr(e),l=>{const c=ws(ce(l));if(c){const u=c;if(Ss.get(u)||Ss.set(u,u.style.overflow),u.style.overflow!=="hidden"&&(r=u.style.overflow),u.style.overflow==="hidden")return n.value=!0;if(n.value)return u.style.overflow="hidden"}},{immediate:!0});const i=()=>{const l=ws(ce(e));!l||n.value||(ai&&(s=nt(l,"touchmove",c=>{du(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},o=()=>{const l=ws(ce(e));!l||!n.value||(ai&&(s==null||s()),l.style.overflow=r,Ss.delete(l),n.value=!1)};return Bo(o),ie({get(){return n.value},set(l){l?i():o()}})}function pf(e,t,n={}){const{window:s=Ve}=n;return hr(e,t,s==null?void 0:s.sessionStorage,n)}function gf(e={}){const{window:t=Ve,...n}=e;return fu(t,n)}function mf(e={}){const{window:t=Ve,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:s=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:i=!0,type:o="inner"}=e,l=Ee(n),c=Ee(s),u=()=>{if(t)if(o==="outer")l.value=t.outerWidth,c.value=t.outerHeight;else if(o==="visual"&&t.visualViewport){const{width:d,height:m,scale:_}=t.visualViewport;l.value=Math.round(d*_),c.value=Math.round(m*_)}else i?(l.value=t.innerWidth,c.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight)};u(),ss(u);const a={passive:!0};if(nt("resize",u,a),t&&o==="visual"&&t.visualViewport&&nt(t.visualViewport,"resize",u,a),r){const d=Yo("(orientation: portrait)");Le(d,()=>u())}return{width:l,height:c}}const Ts={};var Es={};const Zo=/^(?:[a-z]+:|\/\/)/i,hu="vitepress-theme-appearance",pu=/#.*$/,gu=/[?#].*$/,mu=/(?:(^|\/)index)?\.(?:md|html)$/,ve=typeof document<"u",el={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function yu(e,t,n=!1){if(t===void 0)return!1;if(e=hi(`/${e}`),n)return new RegExp(t).test(e);if(hi(t)!==e)return!1;const s=t.match(pu);return s?(ve?location.hash:"")===s[0]:!0}function hi(e){return decodeURI(e).replace(gu,"").replace(mu,"$1")}function vu(e){return Zo.test(e)}function _u(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!vu(n)&&yu(t,`/${n}/`,!0))||"root"}function bu(e,t){var s,r,i,o,l,c,u;const n=_u(e,t);return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:nl(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(u=e.locales[n])==null?void 0:u.themeConfig}})}function tl(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=wu(e.title,s);return n===r.slice(3)?n:`${n}${r}`}function wu(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Su(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function nl(e,t){return[...e.filter(n=>!Su(t,n)),...t]}const Tu=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Eu=/^[a-z]:/i;function pi(e){const t=Eu.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Tu,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const xs=new Set;function xu(e){if(xs.size===0){const n=typeof process=="object"&&(Es==null?void 0:Es.VITE_EXTRA_EXTENSIONS)||(Ts==null?void 0:Ts.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(s=>xs.add(s))}const t=e.split(".").pop();return t==null||!xs.has(t.toLowerCase())}function yf(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const Cu=Symbol(),Et=Ee(ka);function vf(e){const t=ie(()=>bu(Et.value,e.data.relativePath)),n=t.value.appearance,s=n==="force-dark"?He(!0):n==="force-auto"?zo():n?uu({storageKey:hu,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):He(!1),r=He(ve?location.hash:"");return ve&&window.addEventListener("hashchange",()=>{r.value=location.hash}),Le(()=>e.data,()=>{r.value=ve?location.hash:""}),{site:t,theme:ie(()=>t.value.themeConfig),page:ie(()=>e.data),frontmatter:ie(()=>e.data.frontmatter),params:ie(()=>e.data.params),lang:ie(()=>t.value.lang),dir:ie(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:ie(()=>t.value.localeIndex||"root"),title:ie(()=>tl(t.value,e.data)),description:ie(()=>e.data.description||t.value.description),isDark:s,hash:ie(()=>r.value)}}function Au(){const e=bt(Cu);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Ru(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function gi(e){return Zo.test(e)||!e.startsWith("/")?e:Ru(Et.value.base,e)}function Mu(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),ve){t=pi(t.slice(1).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];if(s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),!s)return null;t=`/assets/${t}.${s}.js`}else t=`./${pi(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let In=[];function _f(e){In.push(e),es(()=>{In=In.filter(t=>t!==e)})}function Ou(){let e=Et.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=mi(e,n);else if(Array.isArray(e))for(const s of e){const r=mi(s,n);if(r){t=r;break}}return t}function mi(e,t){const n=document.querySelector(e);if(!n)return 0;const s=n.getBoundingClientRect().bottom;return s<0?0:s+t}const Pu=Symbol(),sl="http://a.com",Lu=()=>({path:"/",component:null,data:el});function bf(e,t){const n=Ht(Lu()),s={route:n,go:r};async function r(l=ve?location.href:"/"){var c,u;l=Cs(l),await((c=s.onBeforeRouteChange)==null?void 0:c.call(s,l))!==!1&&(ve&&l!==Cs(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await o(l),await((u=s.onAfterRouteChange??s.onAfterRouteChanged)==null?void 0:u(l)))}let i=null;async function o(l,c=0,u=!1){var m,_;if(await((m=s.onBeforePageLoad)==null?void 0:m.call(s,l))===!1)return;const a=new URL(l,sl),d=i=a.pathname;try{let b=await e(d);if(!b)throw new Error(`Page not found: ${d}`);if(i===d){i=null;const{default:y,__pageData:D}=b;if(!y)throw new Error(`Invalid route component: ${y}`);await((_=s.onAfterPageLoad)==null?void 0:_.call(s,l)),n.path=ve?d:gi(d),n.component=Mn(y),n.data=Mn(D),ve&&zn(()=>{let P=Et.value.base+D.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!Et.value.cleanUrls&&!P.endsWith("/")&&(P+=".html"),P!==a.pathname&&(a.pathname=P,l=P+a.search+a.hash,history.replaceState({},"",l)),a.hash&&!c){let I=null;try{I=document.getElementById(decodeURIComponent(a.hash).slice(1))}catch(p){console.warn(p)}if(I){yi(I,a.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 y=await fetch(Et.value.base+"hashmap.json");window.__VP_HASH_MAP__=await y.json(),await o(l,c,!0);return}catch{}if(i===d){i=null,n.path=ve?d:gi(d),n.component=t?Mn(t):null;const y=ve?d.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...el,relativePath:y}}}}return ve&&(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:a,origin:d,pathname:m,hash:_,search:b}=new URL(u,c.baseURI),y=new URL(location.href);d===y.origin&&xu(m)&&(l.preventDefault(),m===y.pathname&&b===y.search?(_!==y.hash&&(history.pushState({},"",a),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:y.href,newURL:a}))),_?yi(c,_,c.classList.contains("header-anchor")):window.scrollTo(0,0)):r(a))},{capture:!0}),window.addEventListener("popstate",async l=>{var u;if(l.state===null)return;const c=Cs(location.href);await o(c,l.state&&l.state.scrollPosition||0),await((u=s.onAfterRouteChange??s.onAfterRouteChanged)==null?void 0:u(c))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function Iu(){const e=bt(Pu);if(!e)throw new Error("useRouter() is called without provider.");return e}function rl(){return Iu().route}function yi(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(r){console.warn(r)}if(s){let r=function(){!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})};const i=parseInt(window.getComputedStyle(s).paddingTop,10),o=window.scrollY+s.getBoundingClientRect().top-Ou()+i;requestAnimationFrame(r)}}function Cs(e){const t=new URL(e,sl);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),Et.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 xn=()=>In.forEach(e=>e()),wf=rr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=rl(),{frontmatter:n,site:s}=Au();return Le(n,xn,{deep:!0,flush:"post"}),()=>Ws(e.as,s.value.contentProps??{style:{position:"relative"}},[t.component?Ws(t.component,{onVnodeMounted:xn,onVnodeUpdated:xn,onVnodeUnmounted:xn}):"404 Page Not Found"])}}),Sf=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Nu="modulepreload",Fu=function(e){return"/"+e},vi={},Tf=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){let o=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),c=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));r=o(n.map(u=>{if(u=Fu(u),u in vi)return;vi[u]=!0;const a=u.endsWith(".css"),d=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${d}`))return;const m=document.createElement("link");if(m.rel=a?"stylesheet":Nu,a||(m.as="script"),m.crossOrigin="",m.href=u,c&&m.setAttribute("nonce",c),document.head.appendChild(m),a)return new Promise((_,b)=>{m.addEventListener("load",_),m.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${u}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return r.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})},Ef=rr({setup(e,{slots:t}){const n=He(!1);return jt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function xf(){ve&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const s=(n=t.parentElement)==null?void 0:n.parentElement;if(!s)return;const r=Array.from(s.querySelectorAll("input")).indexOf(t);if(r<0)return;const i=s.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(u=>u.classList.contains("active"));if(!o)return;const l=i.children[r];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=s==null?void 0:s.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Cf(){if(ve){const e=new WeakMap;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className),l=[".vp-copy-ignore",".diff.remove"],c=i.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(a=>a.remove());let u=c.textContent||"";o&&(u=u.replace(/^ *(\$|>) /gm,"").trim()),Hu(u).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const a=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,a)})}})}}async function Hu(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 s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function Af(e,t){let n=!0,s=[];const r=i=>{if(n){n=!1,i.forEach(l=>{const c=As(l);for(const u of document.head.children)if(u.isEqualNode(c)){s.push(u);return}});return}const o=i.map(As);s.forEach((l,c)=>{const u=o.findIndex(a=>a==null?void 0:a.isEqualNode(l??null));u!==-1?delete o[u]:(l==null||l.remove(),delete s[c])}),o.forEach(l=>l&&document.head.appendChild(l)),s=[...s,...o].filter(Boolean)};sr(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],u=tl(o,i);u!==document.title&&(document.title=u);const a=l||o.description;let d=document.querySelector("meta[name=description]");d?d.getAttribute("content")!==a&&d.setAttribute("content",a):As(["meta",{name:"description",content:a}]),r(nl(o.head,$u(c)))})}function As([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),e==="script"&&t.async==null&&(s.async=!1),s}function Du(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function $u(e){return e.filter(t=>!Du(t))}const Rs=new Set,il=()=>document.createElement("link"),ju=e=>{const t=il();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Vu=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let Cn;const ku=ve&&(Cn=il())&&Cn.relList&&Cn.relList.supports&&Cn.relList.supports("prefetch")?ju:Vu;function Rf(){if(!ve||!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 s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!Rs.has(c)){Rs.add(c);const u=Mu(c);u&&ku(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):Rs.add(l))})})};jt(s);const r=rl();Le(()=>r.path,s),es(()=>{n&&n.disconnect()})}export{oo as $,Ou as A,Xu as B,qu as C,_f as D,ue as E,Se as F,Ee as G,Gu as H,Zo as I,rl as J,ta as K,bt as L,mf as M,Xs as N,ff as O,zn as P,gf as Q,ve as R,tn as S,tf as T,Ku as U,Tf as V,hf as W,ic as X,Ju as Y,rf as Z,Sf as _,Fo as a,sf as a0,zu as a1,Af as a2,Pu as a3,vf as a4,Cu as a5,wf as a6,Ef as a7,Et as a8,bf as a9,Mu as aa,lf as ab,Rf as ac,Cf as ad,xf as ae,Ws as af,Zu as ag,Bo as ah,ce as ai,bs as aj,dr as ak,cf as al,uf as am,pf as an,df as ao,af as ap,Iu as aq,nt as ar,Wu as as,nf as at,ae as au,Bu as av,Mn as aw,of as ax,yf as ay,Vs as b,Qu as c,rr as d,ef as e,xu as f,gi as g,ie as h,vu as i,No as j,Jn as k,yu as l,Yo as m,Ys as n,js as o,He as p,Le as q,Yu as r,sr as s,bl as t,Au as u,jt as v,rc as w,es as x,Uu as y,Tc as z}; +**/let Us;const Wr=typeof window<"u"&&window.trustedTypes;if(Wr)try{Us=Wr.createPolicy("vue",{createHTML:e=>e})}catch{}const jo=Us?e=>Us.createHTML(e):e=>e,fa="http://www.w3.org/2000/svg",da="http://www.w3.org/1998/Math/MathML",Ye=typeof document<"u"?document:null,Ur=Ye&&Ye.createElement("template"),ha={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Ye.createElementNS(fa,e):t==="mathml"?Ye.createElementNS(da,e):n?Ye.createElement(e,{is:n}):Ye.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Ye.createTextNode(e),createComment:e=>Ye.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ye.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Ur.innerHTML=jo(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const l=Ur.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},rt="transition",Bt="animation",ln=Symbol("_vtc"),Vo={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},pa=fe({},eo,Vo),ga=e=>(e.displayName="Transition",e.props=pa,e),tf=ga((e,{slots:t})=>Ws(dc,ma(e),t)),pt=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Br=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function ma(e){const t={};for(const w in e)w in Vo||(t[w]=e[w]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:u=o,appearToClass:a=l,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,b=ya(r),y=b&&b[0],D=b&&b[1],{onBeforeEnter:P,onEnter:I,onEnterCancelled:p,onLeave:g,onLeaveCancelled:R,onBeforeAppear:j=P,onAppear:M=I,onAppearCancelled:k=p}=t,T=(w,H,Y,oe)=>{w._enterCancelled=oe,gt(w,H?a:l),gt(w,H?u:o),Y&&Y()},O=(w,H)=>{w._isLeaving=!1,gt(w,d),gt(w,_),gt(w,m),H&&H()},A=w=>(H,Y)=>{const oe=w?M:I,U=()=>T(H,w,Y);pt(oe,[H,U]),Kr(()=>{gt(H,w?c:i),Xe(H,w?a:l),Br(oe)||qr(H,s,y,U)})};return fe(t,{onBeforeEnter(w){pt(P,[w]),Xe(w,i),Xe(w,o)},onBeforeAppear(w){pt(j,[w]),Xe(w,c),Xe(w,u)},onEnter:A(!1),onAppear:A(!0),onLeave(w,H){w._isLeaving=!0;const Y=()=>O(w,H);Xe(w,d),w._enterCancelled?(Xe(w,m),Yr(w)):(Yr(w),Xe(w,m)),Kr(()=>{w._isLeaving&&(gt(w,d),Xe(w,_),Br(g)||qr(w,s,D,Y))}),pt(g,[w,Y])},onEnterCancelled(w){T(w,!1,void 0,!0),pt(p,[w])},onAppearCancelled(w){T(w,!0,void 0,!0),pt(k,[w])},onLeaveCancelled(w){O(w),pt(R,[w])}})}function ya(e){if(e==null)return null;if(Q(e))return[gs(e.enter),gs(e.leave)];{const t=gs(e);return[t,t]}}function gs(e){return dl(e)}function Xe(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[ln]||(e[ln]=new Set)).add(t)}function gt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[ln];n&&(n.delete(t),n.size||(e[ln]=void 0))}function Kr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let va=0;function qr(e,t,n,s){const r=e._endId=++va,i=()=>{r===e._endId&&s()};if(n!=null)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=_a(e,t);if(!o)return s();const u=o+"end";let a=0;const d=()=>{e.removeEventListener(u,m),i()},m=_=>{_.target===e&&++a>=c&&d()};setTimeout(()=>{a(n[b]||"").split(", "),r=s(`${rt}Delay`),i=s(`${rt}Duration`),o=Gr(r,i),l=s(`${Bt}Delay`),c=s(`${Bt}Duration`),u=Gr(l,c);let a=null,d=0,m=0;t===rt?o>0&&(a=rt,d=o,m=i.length):t===Bt?u>0&&(a=Bt,d=u,m=c.length):(d=Math.max(o,u),a=d>0?o>u?rt:Bt:null,m=a?a===rt?i.length:c.length:0);const _=a===rt&&/\b(?:transform|all)(?:,|$)/.test(s(`${rt}Property`).toString());return{type:a,timeout:d,propCount:m,hasTransform:_}}function Gr(e,t){for(;e.lengthXr(n)+Xr(e[s])))}function Xr(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Yr(e){return(e?e.ownerDocument:document).body.offsetHeight}function ba(e,t,n){const s=e[ln];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Jr=Symbol("_vod"),wa=Symbol("_vsh"),Sa=Symbol(""),Ta=/(?:^|;)\s*display\s*:/;function Ea(e,t,n){const s=e.style,r=le(n);let i=!1;if(n&&!r){if(t)if(le(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&Ln(s,l,"")}else for(const o in t)n[o]==null&&Ln(s,o,"");for(const o in n)o==="display"&&(i=!0),Ln(s,o,n[o])}else if(r){if(t!==n){const o=s[Sa];o&&(n+=";"+o),s.cssText=n,i=Ta.test(n)}}else t&&e.removeAttribute("style");Jr in e&&(e[Jr]=i?s.display:"",e[wa]&&(s.display="none"))}const zr=/\s*!important$/;function Ln(e,t,n){if(K(n))n.forEach(s=>Ln(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=xa(e,t);zr.test(n)?e.setProperty(ft(s),n.replace(zr,""),"important"):e[s]=n}}const Qr=["Webkit","Moz","ms"],ms={};function xa(e,t){const n=ms[t];if(n)return n;let s=Ie(t);if(s!=="filter"&&s in e)return ms[t]=s;s=Kn(s);for(let r=0;rys||(Ma.then(()=>ys=0),ys=Date.now());function Pa(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;je(La(s,n.value),t,5,[s])};return n.value=e,n.attached=Oa(),n}function La(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const ri=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ia=(e,t,n,s,r,i)=>{const o=r==="svg";t==="class"?ba(e,s,o):t==="style"?Ea(e,n,s):cn(t)?Ks(t)||Aa(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Na(e,t,s,o))?(ti(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ei(e,t,s,o,i,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!le(s))?ti(e,Ie(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),ei(e,t,s,o))};function Na(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&ri(t)&&q(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return ri(t)&&le(n)?!1:t in e}const ii=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>Rn(t,n):t};function Fa(e){e.target.composing=!0}function oi(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const vs=Symbol("_assign");function li(e,t,n){return t&&(e=e.trim()),n&&(e=Gs(e)),e}const nf={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[vs]=ii(r);const i=s||r.props&&r.props.type==="number";Ot(e,t?"change":"input",o=>{o.target.composing||e[vs](li(e.value,n,i))}),(n||i)&&Ot(e,"change",()=>{e.value=li(e.value,n,i)}),t||(Ot(e,"compositionstart",Fa),Ot(e,"compositionend",oi),Ot(e,"change",oi))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:i}},o){if(e[vs]=ii(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?Gs(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===c)||(e.value=c))}},Ha=["ctrl","shift","alt","meta"],Da={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)=>Ha.some(n=>e[`${n}Key`]&&!t.includes(n))},sf=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=((r,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=(r=>{if(!("key"in r))return;const i=ft(r.key);if(t.some(o=>o===i||$a[o]===i))return e(r)}))},ko=fe({patchProp:Ia},ha);let Qt,ci=!1;function ja(){return Qt||(Qt=Yc(ko))}function Va(){return Qt=ci?Qt:Jc(ko),ci=!0,Qt}const of=((...e)=>{const t=ja().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Uo(s);if(!r)return;const i=t._component;!q(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,Wo(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t}),lf=((...e)=>{const t=Va().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Uo(s);if(r)return n(r,!0,Wo(r))},t});function Wo(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Uo(e){return le(e)?document.querySelector(e):e}const ka=window.__VP_SITE_DATA__;function Bo(e){return Ri()?(Sl(e),!0):!1}const _s=new WeakMap,Wa=(...e)=>{var t;const n=e[0],s=(t=xt())==null?void 0:t.proxy;if(s==null&&!Yi())throw new Error("injectLocal must be called in setup");return s&&_s.has(s)&&n in _s.get(s)?_s.get(s)[n]:bt(...e)},Ko=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const cf=e=>e!=null,Ua=Object.prototype.toString,Ba=e=>Ua.call(e)==="[object Object]",ut=()=>{},ai=Ka();function Ka(){var e,t;return Ko&&((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 ur(e,t){function n(...s){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,s),{fn:t,thisArg:this,args:s})).then(r).catch(i)})}return n}const qo=e=>e();function Go(e,t={}){let n,s,r=ut;const i=c=>{clearTimeout(c),r(),r=ut};let o;return c=>{const u=ce(e),a=ce(t.maxWait);return n&&i(n),u<=0||a!==void 0&&a<=0?(s&&(i(s),s=null),Promise.resolve(c())):new Promise((d,m)=>{r=t.rejectOnCancel?m:d,o=c,a&&!s&&(s=setTimeout(()=>{n&&i(n),s=null,d(o())},a)),n=setTimeout(()=>{s&&i(s),s=null,d(c())},u)})}}function qa(...e){let t=0,n,s=!0,r=ut,i,o,l,c,u;!ae(e[0])&&typeof e[0]=="object"?{delay:o,trailing:l=!0,leading:c=!0,rejectOnCancel:u=!1}=e[0]:[o,l=!0,c=!0,u=!1]=e;const a=()=>{n&&(clearTimeout(n),n=void 0,r(),r=ut)};return m=>{const _=ce(o),b=Date.now()-t,y=()=>i=m();return a(),_<=0?(t=Date.now(),y()):(b>_&&(c||!s)?(t=Date.now(),y()):l&&(i=new Promise((D,P)=>{r=u?P:D,n=setTimeout(()=>{t=Date.now(),s=!0,D(y()),a()},Math.max(0,_-b))})),!c&&!n&&(n=setTimeout(()=>s=!0,_)),s=!1,i)}}function Ga(e=qo,t={}){const{initialState:n="active"}=t,s=fr(n==="active");function r(){s.value=!1}function i(){s.value=!0}return{isActive:tn(s),pause:r,resume:i,eventFilter:(...l)=>{s.value&&e(...l)}}}function ui(e){return e.endsWith("rem")?Number.parseFloat(e)*16:Number.parseFloat(e)}function Xa(e){return xt()}function bs(e){return Array.isArray(e)?e:[e]}function fr(...e){if(e.length!==1)return Yl(...e);const t=e[0];return typeof t=="function"?tn(ql(()=>({get:t,set:ut}))):He(t)}function Ya(e,t=200,n={}){return ur(Go(t,n),e)}function Ja(e,t=200,n=!1,s=!0,r=!1){return ur(qa(t,n,s,r),e)}function Xo(e,t,n={}){const{eventFilter:s=qo,...r}=n;return Le(e,ur(s,t),r)}function za(e,t,n={}){const{eventFilter:s,initialState:r="active",...i}=n,{eventFilter:o,pause:l,resume:c,isActive:u}=Ga(s,{initialState:r});return{stop:Xo(e,t,{...i,eventFilter:o}),pause:l,resume:c,isActive:u}}function ss(e,t=!0,n){Xa()?jt(e,n):t?e():zn(e)}function af(e,t,n={}){const{debounce:s=0,maxWait:r=void 0,...i}=n;return Xo(e,t,{...i,eventFilter:Go(s,{maxWait:r})})}function Qa(e,t,n){return Le(e,t,{...n,immediate:!0})}function uf(e,t,n){let s;ae(n)?s={evaluating:n}:s={};const{lazy:r=!1,evaluating:i=void 0,shallow:o=!0,onError:l=ut}=s,c=Ee(!r),u=o?Ee(t):He(t);let a=0;return sr(async d=>{if(!c.value)return;a++;const m=a;let _=!1;i&&Promise.resolve().then(()=>{i.value=!0});try{const b=await e(y=>{d(()=>{i&&(i.value=!1),_||y()})});m===a&&(u.value=b)}catch(b){l(b)}finally{i&&m===a&&(i.value=!1),_=!0}}),r?ie(()=>(c.value=!0,u.value)):u}const Ve=Ko?window:void 0;function dr(e){var t;const n=ce(e);return(t=n==null?void 0:n.$el)!=null?t:n}function nt(...e){const t=[],n=()=>{t.forEach(l=>l()),t.length=0},s=(l,c,u,a)=>(l.addEventListener(c,u,a),()=>l.removeEventListener(c,u,a)),r=ie(()=>{const l=bs(ce(e[0])).filter(c=>c!=null);return l.every(c=>typeof c!="string")?l:void 0}),i=Qa(()=>{var l,c;return[(c=(l=r.value)==null?void 0:l.map(u=>dr(u)))!=null?c:[Ve].filter(u=>u!=null),bs(ce(r.value?e[1]:e[0])),bs(Jn(r.value?e[2]:e[1])),ce(r.value?e[3]:e[2])]},([l,c,u,a])=>{if(n(),!(l!=null&&l.length)||!(c!=null&&c.length)||!(u!=null&&u.length))return;const d=Ba(a)?{...a}:a;t.push(...l.flatMap(m=>c.flatMap(_=>u.map(b=>s(m,_,b,d)))))},{flush:"post"}),o=()=>{i(),n()};return Bo(n),o}function Za(){const e=Ee(!1),t=xt();return t&&jt(()=>{e.value=!0},t),e}function eu(e){const t=Za();return ie(()=>(t.value,!!e()))}function tu(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function ff(...e){let t,n,s={};e.length===3?(t=e[0],n=e[1],s=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],s=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=Ve,eventName:i="keydown",passive:o=!1,dedupe:l=!1}=s,c=tu(t);return nt(r,i,a=>{a.repeat&&ce(l)||c(a)&&n(a)},o)}const nu=Symbol("vueuse-ssr-width");function su(){const e=Yi()?Wa(nu,null):null;return typeof e=="number"?e:void 0}function Yo(e,t={}){const{window:n=Ve,ssrWidth:s=su()}=t,r=eu(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function"),i=Ee(typeof s=="number"),o=Ee(),l=Ee(!1),c=u=>{l.value=u.matches};return sr(()=>{if(i.value){i.value=!r.value;const u=ce(e).split(",");l.value=u.some(a=>{const d=a.includes("not all"),m=a.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),_=a.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let b=!!(m||_);return m&&b&&(b=s>=ui(m[1])),_&&b&&(b=s<=ui(_[1])),d?!b:b});return}r.value&&(o.value=n.matchMedia(ce(e)),l.value=o.value.matches)}),nt(o,"change",c,{passive:!0}),ie(()=>l.value)}const Tn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},En="__vueuse_ssr_handlers__",ru=iu();function iu(){return En in Tn||(Tn[En]=Tn[En]||{}),Tn[En]}function Jo(e,t){return ru[e]||t}function zo(e){return Yo("(prefers-color-scheme: dark)",e)}function ou(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 lu={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()}},fi="vueuse-storage";function hr(e,t,n,s={}){var r;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:u=!1,shallow:a,window:d=Ve,eventFilter:m,onError:_=A=>{console.error(A)},initOnMounted:b}=s,y=(a?Ee:He)(typeof t=="function"?t():t),D=ie(()=>ce(e));if(!n)try{n=Jo("getDefaultStorage",()=>{var A;return(A=Ve)==null?void 0:A.localStorage})()}catch(A){_(A)}if(!n)return y;const P=ce(t),I=ou(P),p=(r=s.serializer)!=null?r:lu[I],{pause:g,resume:R}=za(y,()=>M(y.value),{flush:i,deep:o,eventFilter:m});Le(D,()=>T(),{flush:i}),d&&l&&ss(()=>{n instanceof Storage?nt(d,"storage",T,{passive:!0}):nt(d,fi,O),b&&T()}),b||T();function j(A,w){if(d){const H={key:D.value,oldValue:A,newValue:w,storageArea:n};d.dispatchEvent(n instanceof Storage?new StorageEvent("storage",H):new CustomEvent(fi,{detail:H}))}}function M(A){try{const w=n.getItem(D.value);if(A==null)j(w,null),n.removeItem(D.value);else{const H=p.write(A);w!==H&&(n.setItem(D.value,H),j(w,H))}}catch(w){_(w)}}function k(A){const w=A?A.newValue:n.getItem(D.value);if(w==null)return c&&P!=null&&n.setItem(D.value,p.write(P)),P;if(!A&&u){const H=p.read(w);return typeof u=="function"?u(H,P):I==="object"&&!Array.isArray(H)?{...P,...H}:H}else return typeof w!="string"?w:p.read(w)}function T(A){if(!(A&&A.storageArea!==n)){if(A&&A.key==null){y.value=P;return}if(!(A&&A.key!==D.value)){g();try{(A==null?void 0:A.newValue)!==p.write(y.value)&&(y.value=k(A))}catch(w){_(w)}finally{A?zn(R):R()}}}}function O(A){T(A.detail)}return y}const cu="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function au(e={}){const{selector:t="html",attribute:n="class",initialValue:s="auto",window:r=Ve,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:u,disableTransition:a=!0}=e,d={auto:"",light:"light",dark:"dark",...e.modes||{}},m=zo({window:r}),_=ie(()=>m.value?"dark":"light"),b=c||(o==null?fr(s):hr(o,s,i,{window:r,listenToStorageChanges:l})),y=ie(()=>b.value==="auto"?_.value:b.value),D=Jo("updateHTMLAttrs",(g,R,j)=>{const M=typeof g=="string"?r==null?void 0:r.document.querySelector(g):dr(g);if(!M)return;const k=new Set,T=new Set;let O=null;if(R==="class"){const w=j.split(/\s/g);Object.values(d).flatMap(H=>(H||"").split(/\s/g)).filter(Boolean).forEach(H=>{w.includes(H)?k.add(H):T.add(H)})}else O={key:R,value:j};if(k.size===0&&T.size===0&&O===null)return;let A;a&&(A=r.document.createElement("style"),A.appendChild(document.createTextNode(cu)),r.document.head.appendChild(A));for(const w of k)M.classList.add(w);for(const w of T)M.classList.remove(w);O&&M.setAttribute(O.key,O.value),a&&(r.getComputedStyle(A).opacity,document.head.removeChild(A))});function P(g){var R;D(t,n,(R=d[g])!=null?R:g)}function I(g){e.onChanged?e.onChanged(g,P):P(g)}Le(y,I,{flush:"post",immediate:!0}),ss(()=>I(y.value));const p=ie({get(){return u?b.value:y.value},set(g){b.value=g}});return Object.assign(p,{store:b,system:_,state:y})}function uu(e={}){const{valueDark:t="dark",valueLight:n=""}=e,s=au({...e,onChanged:(o,l)=>{var c;e.onChanged?(c=e.onChanged)==null||c.call(e,o==="dark",l,o):l(o)},modes:{dark:t,light:n}}),r=ie(()=>s.system.value);return ie({get(){return s.value==="dark"},set(o){const l=o?"dark":"light";r.value===l?s.value="auto":s.value=l}})}function ws(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}const di=1;function fu(e,t={}){const{throttle:n=0,idle:s=200,onStop:r=ut,onScroll:i=ut,offset:o={left:0,right:0,top:0,bottom:0},eventListenerOptions:l={capture:!1,passive:!0},behavior:c="auto",window:u=Ve,onError:a=M=>{console.error(M)}}=t,d=Ee(0),m=Ee(0),_=ie({get(){return d.value},set(M){y(M,void 0)}}),b=ie({get(){return m.value},set(M){y(void 0,M)}});function y(M,k){var T,O,A,w;if(!u)return;const H=ce(e);if(!H)return;(A=H instanceof Document?u.document.body:H)==null||A.scrollTo({top:(T=ce(k))!=null?T:b.value,left:(O=ce(M))!=null?O:_.value,behavior:ce(c)});const Y=((w=H==null?void 0:H.document)==null?void 0:w.documentElement)||(H==null?void 0:H.documentElement)||H;_!=null&&(d.value=Y.scrollLeft),b!=null&&(m.value=Y.scrollTop)}const D=Ee(!1),P=Ht({left:!0,right:!1,top:!0,bottom:!1}),I=Ht({left:!1,right:!1,top:!1,bottom:!1}),p=M=>{D.value&&(D.value=!1,I.left=!1,I.right=!1,I.top=!1,I.bottom=!1,r(M))},g=Ya(p,n+s),R=M=>{var k;if(!u)return;const T=((k=M==null?void 0:M.document)==null?void 0:k.documentElement)||(M==null?void 0:M.documentElement)||dr(M),{display:O,flexDirection:A,direction:w}=getComputedStyle(T),H=w==="rtl"?-1:1,Y=T.scrollLeft;I.left=Yd.value;const oe=Math.abs(Y*H)<=(o.left||0),U=Math.abs(Y*H)+T.clientWidth>=T.scrollWidth-(o.right||0)-di;O==="flex"&&A==="row-reverse"?(P.left=U,P.right=oe):(P.left=oe,P.right=U),d.value=Y;let X=T.scrollTop;M===u.document&&!X&&(X=u.document.body.scrollTop),I.top=Xm.value;const V=Math.abs(X)<=(o.top||0),te=Math.abs(X)+T.clientHeight>=T.scrollHeight-(o.bottom||0)-di;O==="flex"&&A==="column-reverse"?(P.top=te,P.bottom=V):(P.top=V,P.bottom=te),m.value=X},j=M=>{var k;if(!u)return;const T=(k=M.target.documentElement)!=null?k:M.target;R(T),D.value=!0,g(M),i(M)};return nt(e,"scroll",n?Ja(j,n,!0,!1):j,l),ss(()=>{try{const M=ce(e);if(!M)return;R(M)}catch(M){a(M)}}),nt(e,"scrollend",p,l),{x:_,y:b,isScrolling:D,arrivedState:P,directions:I,measure(){const M=ce(e);u&&M&&R(M)}}}function df(e,t,n={}){const{window:s=Ve}=n;return hr(e,t,s==null?void 0:s.localStorage,n)}function Qo(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 Ss=new WeakMap;function hf(e,t=!1){const n=Ee(t);let s=null,r="";Le(fr(e),l=>{const c=ws(ce(l));if(c){const u=c;if(Ss.get(u)||Ss.set(u,u.style.overflow),u.style.overflow!=="hidden"&&(r=u.style.overflow),u.style.overflow==="hidden")return n.value=!0;if(n.value)return u.style.overflow="hidden"}},{immediate:!0});const i=()=>{const l=ws(ce(e));!l||n.value||(ai&&(s=nt(l,"touchmove",c=>{du(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},o=()=>{const l=ws(ce(e));!l||!n.value||(ai&&(s==null||s()),l.style.overflow=r,Ss.delete(l),n.value=!1)};return Bo(o),ie({get(){return n.value},set(l){l?i():o()}})}function pf(e,t,n={}){const{window:s=Ve}=n;return hr(e,t,s==null?void 0:s.sessionStorage,n)}function gf(e={}){const{window:t=Ve,...n}=e;return fu(t,n)}function mf(e={}){const{window:t=Ve,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:s=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:i=!0,type:o="inner"}=e,l=Ee(n),c=Ee(s),u=()=>{if(t)if(o==="outer")l.value=t.outerWidth,c.value=t.outerHeight;else if(o==="visual"&&t.visualViewport){const{width:d,height:m,scale:_}=t.visualViewport;l.value=Math.round(d*_),c.value=Math.round(m*_)}else i?(l.value=t.innerWidth,c.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight)};u(),ss(u);const a={passive:!0};if(nt("resize",u,a),t&&o==="visual"&&t.visualViewport&&nt(t.visualViewport,"resize",u,a),r){const d=Yo("(orientation: portrait)");Le(d,()=>u())}return{width:l,height:c}}const Ts={};var Es={};const Zo=/^(?:[a-z]+:|\/\/)/i,hu="vitepress-theme-appearance",pu=/#.*$/,gu=/[?#].*$/,mu=/(?:(^|\/)index)?\.(?:md|html)$/,ve=typeof document<"u",el={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function yu(e,t,n=!1){if(t===void 0)return!1;if(e=hi(`/${e}`),n)return new RegExp(t).test(e);if(hi(t)!==e)return!1;const s=t.match(pu);return s?(ve?location.hash:"")===s[0]:!0}function hi(e){return decodeURI(e).replace(gu,"").replace(mu,"$1")}function vu(e){return Zo.test(e)}function _u(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!vu(n)&&yu(t,`/${n}/`,!0))||"root"}function bu(e,t){var s,r,i,o,l,c,u;const n=_u(e,t);return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:nl(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(u=e.locales[n])==null?void 0:u.themeConfig}})}function tl(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=wu(e.title,s);return n===r.slice(3)?n:`${n}${r}`}function wu(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Su(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function nl(e,t){return[...e.filter(n=>!Su(t,n)),...t]}const Tu=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Eu=/^[a-z]:/i;function pi(e){const t=Eu.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Tu,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const xs=new Set;function xu(e){if(xs.size===0){const n=typeof process=="object"&&(Es==null?void 0:Es.VITE_EXTRA_EXTENSIONS)||(Ts==null?void 0:Ts.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(s=>xs.add(s))}const t=e.split(".").pop();return t==null||!xs.has(t.toLowerCase())}function yf(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const Cu=Symbol(),Et=Ee(ka);function vf(e){const t=ie(()=>bu(Et.value,e.data.relativePath)),n=t.value.appearance,s=n==="force-dark"?He(!0):n==="force-auto"?zo():n?uu({storageKey:hu,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):He(!1),r=He(ve?location.hash:"");return ve&&window.addEventListener("hashchange",()=>{r.value=location.hash}),Le(()=>e.data,()=>{r.value=ve?location.hash:""}),{site:t,theme:ie(()=>t.value.themeConfig),page:ie(()=>e.data),frontmatter:ie(()=>e.data.frontmatter),params:ie(()=>e.data.params),lang:ie(()=>t.value.lang),dir:ie(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:ie(()=>t.value.localeIndex||"root"),title:ie(()=>tl(t.value,e.data)),description:ie(()=>e.data.description||t.value.description),isDark:s,hash:ie(()=>r.value)}}function Au(){const e=bt(Cu);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Ru(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function gi(e){return Zo.test(e)||!e.startsWith("/")?e:Ru(Et.value.base,e)}function Mu(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),ve){const n="/docs/v26.5.0/";t=pi(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];if(s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),!s)return null;t=`${n}assets/${t}.${s}.js`}else t=`./${pi(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let In=[];function _f(e){In.push(e),es(()=>{In=In.filter(t=>t!==e)})}function Ou(){let e=Et.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=mi(e,n);else if(Array.isArray(e))for(const s of e){const r=mi(s,n);if(r){t=r;break}}return t}function mi(e,t){const n=document.querySelector(e);if(!n)return 0;const s=n.getBoundingClientRect().bottom;return s<0?0:s+t}const Pu=Symbol(),sl="http://a.com",Lu=()=>({path:"/",component:null,data:el});function bf(e,t){const n=Ht(Lu()),s={route:n,go:r};async function r(l=ve?location.href:"/"){var c,u;l=Cs(l),await((c=s.onBeforeRouteChange)==null?void 0:c.call(s,l))!==!1&&(ve&&l!==Cs(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await o(l),await((u=s.onAfterRouteChange??s.onAfterRouteChanged)==null?void 0:u(l)))}let i=null;async function o(l,c=0,u=!1){var m,_;if(await((m=s.onBeforePageLoad)==null?void 0:m.call(s,l))===!1)return;const a=new URL(l,sl),d=i=a.pathname;try{let b=await e(d);if(!b)throw new Error(`Page not found: ${d}`);if(i===d){i=null;const{default:y,__pageData:D}=b;if(!y)throw new Error(`Invalid route component: ${y}`);await((_=s.onAfterPageLoad)==null?void 0:_.call(s,l)),n.path=ve?d:gi(d),n.component=Mn(y),n.data=Mn(D),ve&&zn(()=>{let P=Et.value.base+D.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!Et.value.cleanUrls&&!P.endsWith("/")&&(P+=".html"),P!==a.pathname&&(a.pathname=P,l=P+a.search+a.hash,history.replaceState({},"",l)),a.hash&&!c){let I=null;try{I=document.getElementById(decodeURIComponent(a.hash).slice(1))}catch(p){console.warn(p)}if(I){yi(I,a.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 y=await fetch(Et.value.base+"hashmap.json");window.__VP_HASH_MAP__=await y.json(),await o(l,c,!0);return}catch{}if(i===d){i=null,n.path=ve?d:gi(d),n.component=t?Mn(t):null;const y=ve?d.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...el,relativePath:y}}}}return ve&&(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:a,origin:d,pathname:m,hash:_,search:b}=new URL(u,c.baseURI),y=new URL(location.href);d===y.origin&&xu(m)&&(l.preventDefault(),m===y.pathname&&b===y.search?(_!==y.hash&&(history.pushState({},"",a),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:y.href,newURL:a}))),_?yi(c,_,c.classList.contains("header-anchor")):window.scrollTo(0,0)):r(a))},{capture:!0}),window.addEventListener("popstate",async l=>{var u;if(l.state===null)return;const c=Cs(location.href);await o(c,l.state&&l.state.scrollPosition||0),await((u=s.onAfterRouteChange??s.onAfterRouteChanged)==null?void 0:u(c))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function Iu(){const e=bt(Pu);if(!e)throw new Error("useRouter() is called without provider.");return e}function rl(){return Iu().route}function yi(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(r){console.warn(r)}if(s){let r=function(){!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})};const i=parseInt(window.getComputedStyle(s).paddingTop,10),o=window.scrollY+s.getBoundingClientRect().top-Ou()+i;requestAnimationFrame(r)}}function Cs(e){const t=new URL(e,sl);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),Et.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 xn=()=>In.forEach(e=>e()),wf=rr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=rl(),{frontmatter:n,site:s}=Au();return Le(n,xn,{deep:!0,flush:"post"}),()=>Ws(e.as,s.value.contentProps??{style:{position:"relative"}},[t.component?Ws(t.component,{onVnodeMounted:xn,onVnodeUpdated:xn,onVnodeUnmounted:xn}):"404 Page Not Found"])}}),Sf=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Nu="modulepreload",Fu=function(e){return"/docs/v26.5.0/"+e},vi={},Tf=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){let o=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),c=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));r=o(n.map(u=>{if(u=Fu(u),u in vi)return;vi[u]=!0;const a=u.endsWith(".css"),d=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${d}`))return;const m=document.createElement("link");if(m.rel=a?"stylesheet":Nu,a||(m.as="script"),m.crossOrigin="",m.href=u,c&&m.setAttribute("nonce",c),document.head.appendChild(m),a)return new Promise((_,b)=>{m.addEventListener("load",_),m.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${u}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return r.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})},Ef=rr({setup(e,{slots:t}){const n=He(!1);return jt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function xf(){ve&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const s=(n=t.parentElement)==null?void 0:n.parentElement;if(!s)return;const r=Array.from(s.querySelectorAll("input")).indexOf(t);if(r<0)return;const i=s.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(u=>u.classList.contains("active"));if(!o)return;const l=i.children[r];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=s==null?void 0:s.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Cf(){if(ve){const e=new WeakMap;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className),l=[".vp-copy-ignore",".diff.remove"],c=i.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(a=>a.remove());let u=c.textContent||"";o&&(u=u.replace(/^ *(\$|>) /gm,"").trim()),Hu(u).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const a=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,a)})}})}}async function Hu(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 s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function Af(e,t){let n=!0,s=[];const r=i=>{if(n){n=!1,i.forEach(l=>{const c=As(l);for(const u of document.head.children)if(u.isEqualNode(c)){s.push(u);return}});return}const o=i.map(As);s.forEach((l,c)=>{const u=o.findIndex(a=>a==null?void 0:a.isEqualNode(l??null));u!==-1?delete o[u]:(l==null||l.remove(),delete s[c])}),o.forEach(l=>l&&document.head.appendChild(l)),s=[...s,...o].filter(Boolean)};sr(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],u=tl(o,i);u!==document.title&&(document.title=u);const a=l||o.description;let d=document.querySelector("meta[name=description]");d?d.getAttribute("content")!==a&&d.setAttribute("content",a):As(["meta",{name:"description",content:a}]),r(nl(o.head,$u(c)))})}function As([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),e==="script"&&t.async==null&&(s.async=!1),s}function Du(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function $u(e){return e.filter(t=>!Du(t))}const Rs=new Set,il=()=>document.createElement("link"),ju=e=>{const t=il();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Vu=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let Cn;const ku=ve&&(Cn=il())&&Cn.relList&&Cn.relList.supports&&Cn.relList.supports("prefetch")?ju:Vu;function Rf(){if(!ve||!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 s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!Rs.has(c)){Rs.add(c);const u=Mu(c);u&&ku(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):Rs.add(l))})})};jt(s);const r=rl();Le(()=>r.path,s),es(()=>{n&&n.disconnect()})}export{oo as $,Ou as A,Xu as B,qu as C,_f as D,ue as E,Se as F,Ee as G,Gu as H,Zo as I,rl as J,ta as K,bt as L,mf as M,Xs as N,ff as O,zn as P,gf as Q,ve as R,tn as S,tf as T,Ku as U,Tf as V,hf as W,ic as X,Ju as Y,rf as Z,Sf as _,Fo as a,sf as a0,zu as a1,Af as a2,Pu as a3,vf as a4,Cu as a5,wf as a6,Ef as a7,Et as a8,bf as a9,Mu as aa,lf as ab,Rf as ac,Cf as ad,xf as ae,Ws as af,Zu as ag,Bo as ah,ce as ai,bs as aj,dr as ak,cf as al,uf as am,pf as an,df as ao,af as ap,Iu as aq,nt as ar,Wu as as,nf as at,ae as au,Bu as av,Mn as aw,of as ax,yf as ay,Vs as b,Qu as c,rr as d,ef as e,xu as f,gi as g,ie as h,vu as i,No as j,Jn as k,yu as l,Yo as m,Ys as n,js as o,He as p,Le as q,Yu as r,sr as s,bl as t,Au as u,jt as v,rc as w,es as x,Uu as y,Tc as z}; diff --git a/docs/v26.5.0/assets/chunks/theme.CRHW4GoY.js b/docs/v26.5.0/assets/chunks/theme.H8GjM6k9.js similarity index 99% rename from docs/v26.5.0/assets/chunks/theme.CRHW4GoY.js rename to docs/v26.5.0/assets/chunks/theme.H8GjM6k9.js index 159923b..5e72dff 100644 --- a/docs/v26.5.0/assets/chunks/theme.CRHW4GoY.js +++ b/docs/v26.5.0/assets/chunks/theme.H8GjM6k9.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.DGlmokQH.js","assets/chunks/framework.C2NLiVii.js"])))=>i.map(i=>d[i]); -import{d as p,c as u,r as c,n as N,o as s,a as j,t as M,b as _,w as h,T as ue,e as m,_ as g,u as Ce,i as He,f as Be,g as de,h as y,j as d,k as i,l as z,m as se,p as S,q as F,s as X,v as U,x as ve,y as fe,z as Ee,A as Fe,F as x,B as A,C as W,D as Y,E as k,G as $e,H as B,I as ye,J as Q,K as G,L as Z,M as De,N as Pe,O as ie,P as Le,Q as Ve,R as ee,S as Oe,U as Ge,V as Ue,W as Se,X as Te,Y as je,Z as ze,$ as We,a0 as Ke,a1 as qe}from"./framework.C2NLiVii.js";const Re=p({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(e){return(t,n)=>(s(),u("span",{class:N(["VPBadge",e.type])},[c(t.$slots,"default",{},()=>[j(M(e.text),1)])],2))}}),Je={key:0,class:"VPBackdrop"},Xe=p({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(e){return(t,n)=>(s(),_(ue,{name:"fade"},{default:h(()=>[e.show?(s(),u("div",Je)):m("",!0)]),_:1}))}}),Ye=g(Xe,[["__scopeId","data-v-c79a1216"]]),L=Ce;function Qe(e,t){let n,a=!1;return()=>{n&&clearTimeout(n),a?n=setTimeout(e,t):(e(),(a=!0)&&setTimeout(()=>a=!1,t))}}function re(e){return e.startsWith("/")?e:`/${e}`}function he(e){const{pathname:t,search:n,hash:a,protocol:o}=new URL(e,"http://a.com");if(He(e)||e.startsWith("#")||!o.startsWith("http")||!Be(t))return e;const{site:r}=L(),l=t.endsWith("/")||t.endsWith(".html")?e:e.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${n}${a}`);return de(l)}function q({correspondingLink:e=!1}={}){const{site:t,localeIndex:n,page:a,theme:o,hash:r}=L(),l=y(()=>{var f,$;return{label:(f=t.value.locales[n.value])==null?void 0:f.label,link:(($=t.value.locales[n.value])==null?void 0:$.link)||(n.value==="root"?"/":`/${n.value}/`)}});return{localeLinks:y(()=>Object.entries(t.value.locales).flatMap(([f,$])=>l.value.label===$.label?[]:{text:$.label,link:Ze($.link||(f==="root"?"/":`/${f}/`),o.value.i18nRouting!==!1&&e,a.value.relativePath.slice(l.value.link.length-1),!t.value.cleanUrls)+r.value})),currentLang:l}}function Ze(e,t,n,a){return t?e.replace(/\/$/,"")+re(n.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,a?".html":"")):e}const et={class:"NotFound"},tt={class:"code"},nt={class:"title"},at={class:"quote"},ot={class:"action"},st=["href","aria-label"],it=p({__name:"NotFound",setup(e){const{theme:t}=L(),{currentLang:n}=q();return(a,o)=>{var r,l,v,f,$;return s(),u("div",et,[d("p",tt,M(((r=i(t).notFound)==null?void 0:r.code)??"404"),1),d("h1",nt,M(((l=i(t).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),o[0]||(o[0]=d("div",{class:"divider"},null,-1)),d("blockquote",at,M(((v=i(t).notFound)==null?void 0:v.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",ot,[d("a",{class:"link",href:i(de)(i(n).link),"aria-label":((f=i(t).notFound)==null?void 0:f.linkLabel)??"go to home"},M((($=i(t).notFound)==null?void 0:$.linkText)??"Take me home"),9,st)])])}}}),rt=g(it,[["__scopeId","data-v-d6be1790"]]);function Ne(e,t){if(Array.isArray(e))return R(e);if(e==null)return[];t=re(t);const n=Object.keys(e).sort((o,r)=>r.split("/").length-o.split("/").length).find(o=>t.startsWith(re(o))),a=n?e[n]:[];return Array.isArray(a)?R(a):R(a.items,a.base)}function lt(e){const t=[];let n=0;for(const a in e){const o=e[a];if(o.items){n=t.push(o);continue}t[n]||t.push({items:[]}),t[n].items.push(o)}return t}function ct(e){const t=[];function n(a){for(const o of a)o.text&&o.link&&t.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&n(o.items)}return n(e),t}function le(e,t){return Array.isArray(t)?t.some(n=>le(e,n)):z(e,t.link)?!0:t.items?le(e,t.items):!1}function R(e,t){return[...e].map(n=>{const a={...n},o=a.base||t;return o&&a.link&&(a.link=o+a.link),a.items&&(a.items=R(a.items,o)),a})}function D(){const{frontmatter:e,page:t,theme:n}=L(),a=se("(min-width: 960px)"),o=S(!1),r=y(()=>{const w=n.value.sidebar,C=t.value.relativePath;return w?Ne(w,C):[]}),l=S(r.value);F(r,(w,C)=>{JSON.stringify(w)!==JSON.stringify(C)&&(l.value=r.value)});const v=y(()=>e.value.sidebar!==!1&&l.value.length>0&&e.value.layout!=="home"),f=y(()=>$?e.value.aside==null?n.value.aside==="left":e.value.aside==="left":!1),$=y(()=>e.value.layout==="home"?!1:e.value.aside!=null?!!e.value.aside:n.value.aside!==!1),V=y(()=>v.value&&a.value),b=y(()=>v.value?lt(l.value):[]);function P(){o.value=!0}function T(){o.value=!1}function I(){o.value?T():P()}return{isOpen:o,sidebar:l,sidebarGroups:b,hasSidebar:v,hasAside:$,leftAside:f,isSidebarEnabled:V,open:P,close:T,toggle:I}}function ut(e,t){let n;X(()=>{n=e.value?document.activeElement:void 0}),U(()=>{window.addEventListener("keyup",a)}),ve(()=>{window.removeEventListener("keyup",a)});function a(o){o.key==="Escape"&&e.value&&(t(),n==null||n.focus())}}function dt(e){const{page:t,hash:n}=L(),a=S(!1),o=y(()=>e.value.collapsed!=null),r=y(()=>!!e.value.link),l=S(!1),v=()=>{l.value=z(t.value.relativePath,e.value.link)};F([t,e,n],v),U(v);const f=y(()=>l.value?!0:e.value.items?le(t.value.relativePath,e.value.items):!1),$=y(()=>!!(e.value.items&&e.value.items.length));X(()=>{a.value=!!(o.value&&e.value.collapsed)}),fe(()=>{(l.value||f.value)&&(a.value=!1)});function V(){o.value&&(a.value=!a.value)}return{collapsed:a,collapsible:o,isLink:r,isActiveLink:l,hasActiveLink:f,hasChildren:$,toggle:V}}function vt(){const{hasSidebar:e}=D(),t=se("(min-width: 960px)"),n=se("(min-width: 1280px)");return{isAsideEnabled:y(()=>!n.value&&!t.value?!1:e.value?n.value:t.value)}}const ft=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,ce=[];function Me(e){return typeof e.outline=="object"&&!Array.isArray(e.outline)&&e.outline.label||e.outlineTitle||"On this page"}function me(e){const t=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(n=>n.id&&n.hasChildNodes()).map(n=>{const a=Number(n.tagName[1]);return{element:n,title:ht(n),link:"#"+n.id,level:a}});return mt(t,e)}function ht(e){let t="";for(const n of e.childNodes)if(n.nodeType===1){if(ft.test(n.className))continue;t+=n.textContent}else n.nodeType===3&&(t+=n.textContent);return t.trim()}function mt(e,t){if(t===!1)return[];const n=(typeof t=="object"&&!Array.isArray(t)?t.level:t)||2,[a,o]=typeof n=="number"?[n,n]:n==="deep"?[2,6]:n;return _t(e,a,o)}function pt(e,t){const{isAsideEnabled:n}=vt(),a=Qe(r,100);let o=null;U(()=>{requestAnimationFrame(r),window.addEventListener("scroll",a)}),Ee(()=>{l(location.hash)}),ve(()=>{window.removeEventListener("scroll",a)});function r(){if(!n.value)return;const v=window.scrollY,f=window.innerHeight,$=document.body.offsetHeight,V=Math.abs(v+f-$)<1,b=ce.map(({element:T,link:I})=>({link:I,top:kt(T)})).filter(({top:T})=>!Number.isNaN(T)).sort((T,I)=>T.top-I.top);if(!b.length){l(null);return}if(v<1){l(null);return}if(V){l(b[b.length-1].link);return}let P=null;for(const{link:T,top:I}of b){if(I>v+Fe()+4)break;P=T}l(P)}function l(v){o&&o.classList.remove("active"),v==null?o=null:o=e.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const f=o;f?(f.classList.add("active"),t.value.style.top=f.offsetTop+39+"px",t.value.style.opacity="1"):(t.value.style.top="33px",t.value.style.opacity="0")}}function kt(e){let t=0;for(;e!==document.body;){if(e===null)return NaN;t+=e.offsetTop,e=e.offsetParent}return t}function _t(e,t,n){ce.length=0;const a=[],o=[];return e.forEach(r=>{const l={...r,children:[]};let v=o[o.length-1];for(;v&&v.level>=l.level;)o.pop(),v=o[o.length-1];if(l.element.classList.contains("ignore-header")||v&&"shouldIgnore"in v){o.push({level:l.level,shouldIgnore:!0});return}l.level>n||l.level{const o=W("VPDocOutlineItem",!0);return s(),u("ul",{class:N(["VPDocOutlineItem",e.root?"root":"nested"])},[(s(!0),u(x,null,A(e.headers,({children:r,link:l,title:v})=>(s(),u("li",null,[d("a",{class:"outline-link",href:l,onClick:t,title:v},M(v),9,bt),r!=null&&r.length?(s(),_(o,{key:0,headers:r},null,8,["headers"])):m("",!0)]))),256))],2)}}}),xe=g(gt,[["__scopeId","data-v-b933a997"]]),$t={class:"content"},yt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Pt=p({__name:"VPDocAsideOutline",setup(e){const{frontmatter:t,theme:n}=L(),a=$e([]);Y(()=>{a.value=me(t.value.outline??n.value.outline)});const o=S(),r=S();return pt(o,r),(l,v)=>(s(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":a.value.length>0}]),ref_key:"container",ref:o},[d("div",$t,[d("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),d("div",yt,M(i(Me)(i(n))),1),k(xe,{headers:a.value,root:!0},null,8,["headers"])])],2))}}),Lt=g(Pt,[["__scopeId","data-v-a5bbad30"]]),Vt={class:"VPDocAsideCarbonAds"},St=p({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(e){const t=()=>null;return(n,a)=>(s(),u("div",Vt,[k(i(t),{"carbon-ads":e.carbonAds},null,8,["carbon-ads"])]))}}),Tt={class:"VPDocAside"},Nt=p({__name:"VPDocAside",setup(e){const{theme:t}=L();return(n,a)=>(s(),u("div",Tt,[c(n.$slots,"aside-top",{},void 0,!0),c(n.$slots,"aside-outline-before",{},void 0,!0),k(Lt),c(n.$slots,"aside-outline-after",{},void 0,!0),a[0]||(a[0]=d("div",{class:"spacer"},null,-1)),c(n.$slots,"aside-ads-before",{},void 0,!0),i(t).carbonAds?(s(),_(St,{key:0,"carbon-ads":i(t).carbonAds},null,8,["carbon-ads"])):m("",!0),c(n.$slots,"aside-ads-after",{},void 0,!0),c(n.$slots,"aside-bottom",{},void 0,!0)]))}}),Mt=g(Nt,[["__scopeId","data-v-3f215769"]]);function xt(){const{theme:e,page:t}=L();return y(()=>{const{text:n="Edit this page",pattern:a=""}=e.value.editLink||{};let o;return typeof a=="function"?o=a(t.value):o=a.replace(/:path/g,t.value.filePath),{url:o,text:n}})}function It(){const{page:e,theme:t,frontmatter:n}=L();return y(()=>{var $,V,b,P,T,I,w,C;const a=Ne(t.value.sidebar,e.value.relativePath),o=ct(a),r=wt(o,H=>H.link.replace(/[?#].*$/,"")),l=r.findIndex(H=>z(e.value.relativePath,H.link)),v=(($=t.value.docFooter)==null?void 0:$.prev)===!1&&!n.value.prev||n.value.prev===!1,f=((V=t.value.docFooter)==null?void 0:V.next)===!1&&!n.value.next||n.value.next===!1;return{prev:v?void 0:{text:(typeof n.value.prev=="string"?n.value.prev:typeof n.value.prev=="object"?n.value.prev.text:void 0)??((b=r[l-1])==null?void 0:b.docFooterText)??((P=r[l-1])==null?void 0:P.text),link:(typeof n.value.prev=="object"?n.value.prev.link:void 0)??((T=r[l-1])==null?void 0:T.link)},next:f?void 0:{text:(typeof n.value.next=="string"?n.value.next:typeof n.value.next=="object"?n.value.next.text:void 0)??((I=r[l+1])==null?void 0:I.docFooterText)??((w=r[l+1])==null?void 0:w.text),link:(typeof n.value.next=="object"?n.value.next.link:void 0)??((C=r[l+1])==null?void 0:C.link)}}})}function wt(e,t){const n=new Set;return e.filter(a=>{const o=t(a);return n.has(o)?!1:n.add(o)})}const E=p({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(e){const t=e,n=y(()=>t.tag??(t.href?"a":"span")),a=y(()=>t.href&&ye.test(t.href)||t.target==="_blank");return(o,r)=>(s(),_(B(n.value),{class:N(["VPLink",{link:e.href,"vp-external-link-icon":a.value,"no-icon":e.noIcon}]),href:e.href?i(he)(e.href):void 0,target:e.target??(a.value?"_blank":void 0),rel:e.rel??(a.value?"noreferrer":void 0)},{default:h(()=>[c(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),At={class:"VPLastUpdated"},Ct=["datetime"],Ht=p({__name:"VPDocFooterLastUpdated",setup(e){const{theme:t,page:n,lang:a}=L(),o=y(()=>new Date(n.value.lastUpdated)),r=y(()=>o.value.toISOString()),l=S("");return U(()=>{X(()=>{var v,f,$;l.value=new Intl.DateTimeFormat((f=(v=t.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&f.forceLocale?a.value:void 0,(($=t.value.lastUpdated)==null?void 0:$.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(v,f)=>{var $;return s(),u("p",At,[j(M((($=i(t).lastUpdated)==null?void 0:$.text)||i(t).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:r.value},M(l.value),9,Ct)])}}}),Bt=g(Ht,[["__scopeId","data-v-e98dd255"]]),Et={key:0,class:"VPDocFooter"},Ft={key:0,class:"edit-info"},Dt={key:0,class:"edit-link"},Ot={key:1,class:"last-updated"},Gt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Ut={class:"pager"},jt=["innerHTML"],zt=["innerHTML"],Wt={class:"pager"},Kt=["innerHTML"],qt=["innerHTML"],Rt=p({__name:"VPDocFooter",setup(e){const{theme:t,page:n,frontmatter:a}=L(),o=xt(),r=It(),l=y(()=>t.value.editLink&&a.value.editLink!==!1),v=y(()=>n.value.lastUpdated),f=y(()=>l.value||v.value||r.value.prev||r.value.next);return($,V)=>{var b,P,T,I;return f.value?(s(),u("footer",Et,[c($.$slots,"doc-footer-before",{},void 0,!0),l.value||v.value?(s(),u("div",Ft,[l.value?(s(),u("div",Dt,[k(E,{class:"edit-link-button",href:i(o).url,"no-icon":!0},{default:h(()=>[V[0]||(V[0]=d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),j(" "+M(i(o).text),1)]),_:1},8,["href"])])):m("",!0),v.value?(s(),u("div",Ot,[k(Bt)])):m("",!0)])):m("",!0),(b=i(r).prev)!=null&&b.link||(P=i(r).next)!=null&&P.link?(s(),u("nav",Gt,[V[1]||(V[1]=d("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),d("div",Ut,[(T=i(r).prev)!=null&&T.link?(s(),_(E,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:h(()=>{var w;return[d("span",{class:"desc",innerHTML:((w=i(t).docFooter)==null?void 0:w.prev)||"Previous page"},null,8,jt),d("span",{class:"title",innerHTML:i(r).prev.text},null,8,zt)]}),_:1},8,["href"])):m("",!0)]),d("div",Wt,[(I=i(r).next)!=null&&I.link?(s(),_(E,{key:0,class:"pager-link next",href:i(r).next.link},{default:h(()=>{var w;return[d("span",{class:"desc",innerHTML:((w=i(t).docFooter)==null?void 0:w.next)||"Next page"},null,8,Kt),d("span",{class:"title",innerHTML:i(r).next.text},null,8,qt)]}),_:1},8,["href"])):m("",!0)])])):m("",!0)])):m("",!0)}}}),Jt=g(Rt,[["__scopeId","data-v-e257564d"]]),Xt={class:"container"},Yt={class:"aside-container"},Qt={class:"aside-content"},Zt={class:"content"},en={class:"content-container"},tn={class:"main"},nn=p({__name:"VPDoc",setup(e){const{theme:t}=L(),n=Q(),{hasSidebar:a,hasAside:o,leftAside:r}=D(),l=y(()=>n.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,f)=>{const $=W("Content");return s(),u("div",{class:N(["VPDoc",{"has-sidebar":i(a),"has-aside":i(o)}])},[c(v.$slots,"doc-top",{},void 0,!0),d("div",Xt,[i(o)?(s(),u("div",{key:0,class:N(["aside",{"left-aside":i(r)}])},[f[0]||(f[0]=d("div",{class:"aside-curtain"},null,-1)),d("div",Yt,[d("div",Qt,[k(Mt,null,{"aside-top":h(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":h(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":h(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),d("div",Zt,[d("div",en,[c(v.$slots,"doc-before",{},void 0,!0),d("main",tn,[k($,{class:N(["vp-doc",[l.value,i(t).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(Jt,null,{"doc-footer-before":h(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(v.$slots,"doc-after",{},void 0,!0)])])]),c(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),an=g(nn,[["__scopeId","data-v-39a288b8"]]),on=p({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(e){const t=e,n=y(()=>t.href&&ye.test(t.href)),a=y(()=>t.tag||(t.href?"a":"button"));return(o,r)=>(s(),_(B(a.value),{class:N(["VPButton",[e.size,e.theme]]),href:e.href?i(he)(e.href):void 0,target:t.target??(n.value?"_blank":void 0),rel:t.rel??(n.value?"noreferrer":void 0)},{default:h(()=>[j(M(e.text),1)]),_:1},8,["class","href","target","rel"]))}}),sn=g(on,[["__scopeId","data-v-fa7799d5"]]),rn=["src","alt"],ln=p({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(e){return(t,n)=>{const a=W("VPImage",!0);return e.image?(s(),u(x,{key:0},[typeof e.image=="string"||"src"in e.image?(s(),u("img",G({key:0,class:"VPImage"},typeof e.image=="string"?t.$attrs:{...e.image,...t.$attrs},{src:i(de)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,rn)):(s(),u(x,{key:1},[k(a,G({class:"dark",image:e.image.dark,alt:e.image.alt},t.$attrs),null,16,["image","alt"]),k(a,G({class:"light",image:e.image.light,alt:e.image.alt},t.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}}),J=g(ln,[["__scopeId","data-v-8426fc1a"]]),cn={class:"container"},un={class:"main"},dn={class:"heading"},vn=["innerHTML"],fn=["innerHTML"],hn=["innerHTML"],mn={key:0,class:"actions"},pn={key:0,class:"image"},kn={class:"image-container"},_n=p({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(e){const t=Z("hero-image-slot-exists");return(n,a)=>(s(),u("div",{class:N(["VPHero",{"has-image":e.image||i(t)}])},[d("div",cn,[d("div",un,[c(n.$slots,"home-hero-info-before",{},void 0,!0),c(n.$slots,"home-hero-info",{},()=>[d("h1",dn,[e.name?(s(),u("span",{key:0,innerHTML:e.name,class:"name clip"},null,8,vn)):m("",!0),e.text?(s(),u("span",{key:1,innerHTML:e.text,class:"text"},null,8,fn)):m("",!0)]),e.tagline?(s(),u("p",{key:0,innerHTML:e.tagline,class:"tagline"},null,8,hn)):m("",!0)],!0),c(n.$slots,"home-hero-info-after",{},void 0,!0),e.actions?(s(),u("div",mn,[(s(!0),u(x,null,A(e.actions,o=>(s(),u("div",{key:o.link,class:"action"},[k(sn,{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))])):m("",!0),c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),e.image||i(t)?(s(),u("div",pn,[d("div",kn,[a[0]||(a[0]=d("div",{class:"image-bg"},null,-1)),c(n.$slots,"home-hero-image",{},()=>[e.image?(s(),_(J,{key:0,class:"image-src",image:e.image},null,8,["image"])):m("",!0)],!0)])])):m("",!0)])],2))}}),bn=g(_n,[["__scopeId","data-v-4f9c455b"]]),gn=p({__name:"VPHomeHero",setup(e){const{frontmatter:t}=L();return(n,a)=>i(t).hero?(s(),_(bn,{key:0,class:"VPHomeHero",name:i(t).hero.name,text:i(t).hero.text,tagline:i(t).hero.tagline,image:i(t).hero.image,actions:i(t).hero.actions},{"home-hero-info-before":h(()=>[c(n.$slots,"home-hero-info-before")]),"home-hero-info":h(()=>[c(n.$slots,"home-hero-info")]),"home-hero-info-after":h(()=>[c(n.$slots,"home-hero-info-after")]),"home-hero-actions-after":h(()=>[c(n.$slots,"home-hero-actions-after")]),"home-hero-image":h(()=>[c(n.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),$n={class:"box"},yn={key:0,class:"icon"},Pn=["innerHTML"],Ln=["innerHTML"],Vn=["innerHTML"],Sn={key:4,class:"link-text"},Tn={class:"link-text-value"},Nn=p({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(e){return(t,n)=>(s(),_(E,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:h(()=>[d("article",$n,[typeof e.icon=="object"&&e.icon.wrap?(s(),u("div",yn,[k(J,{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"?(s(),_(J,{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?(s(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Pn)):m("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,Ln),e.details?(s(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Vn)):m("",!0),e.linkText?(s(),u("div",Sn,[d("p",Tn,[j(M(e.linkText)+" ",1),n[0]||(n[0]=d("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):m("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Mn=g(Nn,[["__scopeId","data-v-a3976bdc"]]),xn={key:0,class:"VPFeatures"},In={class:"container"},wn={class:"items"},An=p({__name:"VPFeatures",props:{features:{}},setup(e){const t=e,n=y(()=>{const a=t.features.length;if(a){if(a===2)return"grid-2";if(a===3)return"grid-3";if(a%3===0)return"grid-6";if(a>3)return"grid-4"}else return});return(a,o)=>e.features?(s(),u("div",xn,[d("div",In,[d("div",wn,[(s(!0),u(x,null,A(e.features,r=>(s(),u("div",{key:r.title,class:N(["item",[n.value]])},[k(Mn,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):m("",!0)}}),Cn=g(An,[["__scopeId","data-v-a6181336"]]),Hn=p({__name:"VPHomeFeatures",setup(e){const{frontmatter:t}=L();return(n,a)=>i(t).features?(s(),_(Cn,{key:0,class:"VPHomeFeatures",features:i(t).features},null,8,["features"])):m("",!0)}}),Bn=p({__name:"VPHomeContent",setup(e){const{width:t}=De({initialWidth:0,includeScrollbar:!1});return(n,a)=>(s(),u("div",{class:"vp-doc container",style:Pe(i(t)?{"--vp-offset":`calc(50% - ${i(t)/2}px)`}:{})},[c(n.$slots,"default",{},void 0,!0)],4))}}),En=g(Bn,[["__scopeId","data-v-8e2d4988"]]),Fn=p({__name:"VPHome",setup(e){const{frontmatter:t,theme:n}=L();return(a,o)=>{const r=W("Content");return s(),u("div",{class:N(["VPHome",{"external-link-icon-enabled":i(n).externalLinkIcon}])},[c(a.$slots,"home-hero-before",{},void 0,!0),k(gn,null,{"home-hero-info-before":h(()=>[c(a.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[c(a.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[c(a.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[c(a.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[c(a.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(a.$slots,"home-hero-after",{},void 0,!0),c(a.$slots,"home-features-before",{},void 0,!0),k(Hn),c(a.$slots,"home-features-after",{},void 0,!0),i(t).markdownStyles!==!1?(s(),_(En,{key:0},{default:h(()=>[k(r)]),_:1})):(s(),_(r,{key:1}))],2)}}}),Dn=g(Fn,[["__scopeId","data-v-8b561e3d"]]),On={},Gn={class:"VPPage"};function Un(e,t){const n=W("Content");return s(),u("div",Gn,[c(e.$slots,"page-top"),k(n),c(e.$slots,"page-bottom")])}const jn=g(On,[["render",Un]]),zn=p({__name:"VPContent",setup(e){const{page:t,frontmatter:n}=L(),{hasSidebar:a}=D();return(o,r)=>(s(),u("div",{class:N(["VPContent",{"has-sidebar":i(a),"is-home":i(n).layout==="home"}]),id:"VPContent"},[i(t).isNotFound?c(o.$slots,"not-found",{key:0},()=>[k(rt)],!0):i(n).layout==="page"?(s(),_(jn,{key:1},{"page-top":h(()=>[c(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":h(()=>[c(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(n).layout==="home"?(s(),_(Dn,{key:2},{"home-hero-before":h(()=>[c(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":h(()=>[c(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[c(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[c(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":h(()=>[c(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":h(()=>[c(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":h(()=>[c(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(n).layout&&i(n).layout!=="doc"?(s(),_(B(i(n).layout),{key:3})):(s(),_(an,{key:4},{"doc-top":h(()=>[c(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":h(()=>[c(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":h(()=>[c(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":h(()=>[c(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":h(()=>[c(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":h(()=>[c(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":h(()=>[c(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[c(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[c(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[c(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":h(()=>[c(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),Wn=g(zn,[["__scopeId","data-v-1428d186"]]),Kn={class:"container"},qn=["innerHTML"],Rn=["innerHTML"],Jn=p({__name:"VPFooter",setup(e){const{theme:t,frontmatter:n}=L(),{hasSidebar:a}=D();return(o,r)=>i(t).footer&&i(n).footer!==!1?(s(),u("footer",{key:0,class:N(["VPFooter",{"has-sidebar":i(a)}])},[d("div",Kn,[i(t).footer.message?(s(),u("p",{key:0,class:"message",innerHTML:i(t).footer.message},null,8,qn)):m("",!0),i(t).footer.copyright?(s(),u("p",{key:1,class:"copyright",innerHTML:i(t).footer.copyright},null,8,Rn)):m("",!0)])],2)):m("",!0)}}),Xn=g(Jn,[["__scopeId","data-v-e315a0ad"]]);function Yn(){const{theme:e,frontmatter:t}=L(),n=$e([]),a=y(()=>n.value.length>0);return Y(()=>{n.value=me(t.value.outline??e.value.outline)}),{headers:n,hasLocalNav:a}}const Qn={class:"menu-text"},Zn={class:"header"},ea={class:"outline"},ta=p({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(e){const t=e,{theme:n}=L(),a=S(!1),o=S(0),r=S(),l=S();function v(b){var P;(P=r.value)!=null&&P.contains(b.target)||(a.value=!1)}F(a,b=>{if(b){document.addEventListener("click",v);return}document.removeEventListener("click",v)}),ie("Escape",()=>{a.value=!1}),Y(()=>{a.value=!1});function f(){a.value=!a.value,o.value=window.innerHeight+Math.min(window.scrollY-t.navHeight,0)}function $(b){b.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Le(()=>{a.value=!1}))}function V(){a.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(s(),u("div",{class:"VPLocalNavOutlineDropdown",style:Pe({"--vp-vh":o.value+"px"}),ref_key:"main",ref:r},[e.headers.length>0?(s(),u("button",{key:0,onClick:f,class:N({open:a.value})},[d("span",Qn,M(i(Me)(i(n))),1),P[0]||(P[0]=d("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(s(),u("button",{key:1,onClick:V},M(i(n).returnToTopLabel||"Return to top"),1)),k(ue,{name:"flyout"},{default:h(()=>[a.value?(s(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:$},[d("div",Zn,[d("a",{class:"top-link",href:"#",onClick:V},M(i(n).returnToTopLabel||"Return to top"),1)]),d("div",ea,[k(xe,{headers:e.headers},null,8,["headers"])])],512)):m("",!0)]),_:1})],4))}}),na=g(ta,[["__scopeId","data-v-8a42e2b4"]]),aa={class:"container"},oa=["aria-expanded"],sa={class:"menu-text"},ia=p({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(e){const{theme:t,frontmatter:n}=L(),{hasSidebar:a}=D(),{headers:o}=Yn(),{y:r}=Ve(),l=S(0);U(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),Y(()=>{o.value=me(n.value.outline??t.value.outline)});const v=y(()=>o.value.length===0),f=y(()=>v.value&&!a.value),$=y(()=>({VPLocalNav:!0,"has-sidebar":a.value,empty:v.value,fixed:f.value}));return(V,b)=>i(n).layout!=="home"&&(!f.value||i(r)>=l.value)?(s(),u("div",{key:0,class:N($.value)},[d("div",aa,[i(a)?(s(),u("button",{key:0,class:"menu","aria-expanded":e.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>V.$emit("open-menu"))},[b[1]||(b[1]=d("span",{class:"vpi-align-left menu-icon"},null,-1)),d("span",sa,M(i(t).sidebarMenuLabel||"Menu"),1)],8,oa)):m("",!0),k(na,{headers:i(o),navHeight:l.value},null,8,["headers","navHeight"])])],2)):m("",!0)}}),ra=g(ia,[["__scopeId","data-v-a6f0e41e"]]);function la(){const e=S(!1);function t(){e.value=!0,window.addEventListener("resize",o)}function n(){e.value=!1,window.removeEventListener("resize",o)}function a(){e.value?n():t()}function o(){window.outerWidth>=768&&n()}const r=Q();return F(()=>r.path,n),{isScreenOpen:e,openScreen:t,closeScreen:n,toggleScreen:a}}const ca={},ua={class:"VPSwitch",type:"button",role:"switch"},da={class:"check"},va={key:0,class:"icon"};function fa(e,t){return s(),u("button",ua,[d("span",da,[e.$slots.default?(s(),u("span",va,[c(e.$slots,"default",{},void 0,!0)])):m("",!0)])])}const ha=g(ca,[["render",fa],["__scopeId","data-v-1d5665e3"]]),ma=p({__name:"VPSwitchAppearance",setup(e){const{isDark:t,theme:n}=L(),a=Z("toggle-appearance",()=>{t.value=!t.value}),o=S("");return fe(()=>{o.value=t.value?n.value.lightModeSwitchTitle||"Switch to light theme":n.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,l)=>(s(),_(ha,{title:o.value,class:"VPSwitchAppearance","aria-checked":i(t),onClick:i(a)},{default:h(()=>[...l[0]||(l[0]=[d("span",{class:"vpi-sun sun"},null,-1),d("span",{class:"vpi-moon moon"},null,-1)])]),_:1},8,["title","aria-checked","onClick"]))}}),pe=g(ma,[["__scopeId","data-v-5337faa4"]]),pa={key:0,class:"VPNavBarAppearance"},ka=p({__name:"VPNavBarAppearance",setup(e){const{site:t}=L();return(n,a)=>i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(s(),u("div",pa,[k(pe)])):m("",!0)}}),_a=g(ka,[["__scopeId","data-v-6c893767"]]),ke=S();let Ie=!1,oe=0;function ba(e){const t=S(!1);if(ee){!Ie&&ga(),oe++;const n=F(ke,a=>{var o,r,l;a===e.el.value||(o=e.el.value)!=null&&o.contains(a)?(t.value=!0,(r=e.onFocus)==null||r.call(e)):(t.value=!1,(l=e.onBlur)==null||l.call(e))});ve(()=>{n(),oe--,oe||$a()})}return Oe(t)}function ga(){document.addEventListener("focusin",we),Ie=!0,ke.value=document.activeElement}function $a(){document.removeEventListener("focusin",we)}function we(){ke.value=document.activeElement}const ya={class:"VPMenuLink"},Pa=["innerHTML"],La=p({__name:"VPMenuLink",props:{item:{}},setup(e){const{page:t}=L();return(n,a)=>(s(),u("div",ya,[k(E,{class:N({active:i(z)(i(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,Pa)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),te=g(La,[["__scopeId","data-v-35975db6"]]),Va={class:"VPMenuGroup"},Sa={key:0,class:"title"},Ta=p({__name:"VPMenuGroup",props:{text:{},items:{}},setup(e){return(t,n)=>(s(),u("div",Va,[e.text?(s(),u("p",Sa,M(e.text),1)):m("",!0),(s(!0),u(x,null,A(e.items,a=>(s(),u(x,null,["link"in a?(s(),_(te,{key:0,item:a},null,8,["item"])):m("",!0)],64))),256))]))}}),Na=g(Ta,[["__scopeId","data-v-69e747b5"]]),Ma={class:"VPMenu"},xa={key:0,class:"items"},Ia=p({__name:"VPMenu",props:{items:{}},setup(e){return(t,n)=>(s(),u("div",Ma,[e.items?(s(),u("div",xa,[(s(!0),u(x,null,A(e.items,a=>(s(),u(x,{key:JSON.stringify(a)},["link"in a?(s(),_(te,{key:0,item:a},null,8,["item"])):"component"in a?(s(),_(B(a.component),G({key:1,ref_for:!0},a.props),null,16)):(s(),_(Na,{key:2,text:a.text,items:a.items},null,8,["text","items"]))],64))),128))])):m("",!0),c(t.$slots,"default",{},void 0,!0)]))}}),wa=g(Ia,[["__scopeId","data-v-b98bc113"]]),Aa=["aria-expanded","aria-label"],Ca={key:0,class:"text"},Ha=["innerHTML"],Ba={key:1,class:"vpi-more-horizontal icon"},Ea={class:"menu"},Fa=p({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(e){const t=S(!1),n=S();ba({el:n,onBlur:a});function a(){t.value=!1}return(o,r)=>(s(),u("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:r[1]||(r[1]=l=>t.value=!0),onMouseleave:r[2]||(r[2]=l=>t.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":t.value,"aria-label":e.label,onClick:r[0]||(r[0]=l=>t.value=!t.value)},[e.button||e.icon?(s(),u("span",Ca,[e.icon?(s(),u("span",{key:0,class:N([e.icon,"option-icon"])},null,2)):m("",!0),e.button?(s(),u("span",{key:1,innerHTML:e.button},null,8,Ha)):m("",!0),r[3]||(r[3]=d("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(s(),u("span",Ba))],8,Aa),d("div",Ea,[k(wa,{items:e.items},{default:h(()=>[c(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),_e=g(Fa,[["__scopeId","data-v-cf11d7a2"]]),Da=["href","aria-label","innerHTML"],Oa=p({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(e){const t=e,n=S();U(async()=>{var r;await Le();const o=(r=n.value)==null?void 0:r.children[0];o instanceof HTMLElement&&o.className.startsWith("vpi-social-")&&(getComputedStyle(o).maskImage||getComputedStyle(o).webkitMaskImage)==="none"&&o.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${t.icon}.svg')`)});const a=y(()=>typeof t.icon=="object"?t.icon.svg:``);return(o,r)=>(s(),u("a",{ref_key:"el",ref:n,class:"VPSocialLink no-icon",href:e.link,"aria-label":e.ariaLabel??(typeof e.icon=="string"?e.icon:""),target:"_blank",rel:"noopener",innerHTML:a.value},null,8,Da))}}),Ga=g(Oa,[["__scopeId","data-v-bd121fe5"]]),Ua={class:"VPSocialLinks"},ja=p({__name:"VPSocialLinks",props:{links:{}},setup(e){return(t,n)=>(s(),u("div",Ua,[(s(!0),u(x,null,A(e.links,({link:a,icon:o,ariaLabel:r})=>(s(),_(Ga,{key:a,icon:o,link:a,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),be=g(ja,[["__scopeId","data-v-7bc22406"]]),za={key:0,class:"group translations"},Wa={class:"trans-title"},Ka={key:1,class:"group"},qa={class:"item appearance"},Ra={class:"label"},Ja={class:"appearance-action"},Xa={key:2,class:"group"},Ya={class:"item social-links"},Qa=p({__name:"VPNavBarExtra",setup(e){const{site:t,theme:n}=L(),{localeLinks:a,currentLang:o}=q({correspondingLink:!0}),r=y(()=>a.value.length&&o.value.label||t.value.appearance||n.value.socialLinks);return(l,v)=>r.value?(s(),_(_e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:h(()=>[i(a).length&&i(o).label?(s(),u("div",za,[d("p",Wa,M(i(o).label),1),(s(!0),u(x,null,A(i(a),f=>(s(),_(te,{key:f.link,item:f},null,8,["item"]))),128))])):m("",!0),i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(s(),u("div",Ka,[d("div",qa,[d("p",Ra,M(i(n).darkModeSwitchLabel||"Appearance"),1),d("div",Ja,[k(pe)])])])):m("",!0),i(n).socialLinks?(s(),u("div",Xa,[d("div",Ya,[k(be,{class:"social-links-list",links:i(n).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}}),Za=g(Qa,[["__scopeId","data-v-bb2aa2f0"]]),eo=["aria-expanded"],to=p({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(e){return(t,n)=>(s(),u("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:n[0]||(n[0]=a=>t.$emit("click"))},[...n[1]||(n[1]=[d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)])],10,eo))}}),no=g(to,[["__scopeId","data-v-e5dd9c1c"]]),ao=["innerHTML"],oo=p({__name:"VPNavBarMenuLink",props:{item:{}},setup(e){const{page:t}=L();return(n,a)=>(s(),_(E,{class:N({VPNavBarMenuLink:!0,active:i(z)(i(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,tabindex:"0"},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,ao)]),_:1},8,["class","href","target","rel","no-icon"]))}}),so=g(oo,[["__scopeId","data-v-e56f3d57"]]),io=p({__name:"VPNavBarMenuGroup",props:{item:{}},setup(e){const t=e,{page:n}=L(),a=r=>"component"in r?!1:"link"in r?z(n.value.relativePath,r.link,!!t.item.activeMatch):r.items.some(a),o=y(()=>a(t.item));return(r,l)=>(s(),_(_e,{class:N({VPNavBarMenuGroup:!0,active:i(z)(i(n).relativePath,e.item.activeMatch,!!e.item.activeMatch)||o.value}),button:e.item.text,items:e.item.items},null,8,["class","button","items"]))}}),ro={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},lo=p({__name:"VPNavBarMenu",setup(e){const{theme:t}=L();return(n,a)=>i(t).nav?(s(),u("nav",ro,[a[0]||(a[0]=d("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(s(!0),u(x,null,A(i(t).nav,o=>(s(),u(x,{key:JSON.stringify(o)},["link"in o?(s(),_(so,{key:0,item:o},null,8,["item"])):"component"in o?(s(),_(B(o.component),G({key:1,ref_for:!0},o.props),null,16)):(s(),_(io,{key:2,item:o},null,8,["item"]))],64))),128))])):m("",!0)}}),co=g(lo,[["__scopeId","data-v-dc692963"]]);function uo(e){const{localeIndex:t,theme:n}=L();function a(o){var I,w,C;const r=o.split("."),l=(I=n.value.search)==null?void 0:I.options,v=l&&typeof l=="object",f=v&&((C=(w=l.locales)==null?void 0:w[t.value])==null?void 0:C.translations)||null,$=v&&l.translations||null;let V=f,b=$,P=e;const T=r.pop();for(const H of r){let O=null;const K=P==null?void 0:P[H];K&&(O=P=K);const ne=b==null?void 0:b[H];ne&&(O=b=ne);const ae=V==null?void 0:V[H];ae&&(O=V=ae),K||(P=O),ne||(b=O),ae||(V=O)}return(V==null?void 0:V[T])??(b==null?void 0:b[T])??(P==null?void 0:P[T])??""}return a}const vo=["aria-label"],fo={class:"DocSearch-Button-Container"},ho={class:"DocSearch-Button-Placeholder"},ge=p({__name:"VPNavBarSearchButton",setup(e){const n=uo({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(a,o)=>(s(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(n)("button.buttonAriaLabel")},[d("span",fo,[o[0]||(o[0]=d("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),d("span",ho,M(i(n)("button.buttonText")),1)]),o[1]||(o[1]=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,vo))}}),mo={class:"VPNavBarSearch"},po={id:"local-search"},ko={key:1,id:"docsearch"},_o=p({__name:"VPNavBarSearch",setup(e){const t=Ge(()=>Ue(()=>import("./VPLocalSearchBox.DGlmokQH.js"),__vite__mapDeps([0,1]))),n=()=>null,{theme:a}=L(),o=S(!1),r=S(!1);U(()=>{});function l(){o.value||(o.value=!0,setTimeout(v,16))}function v(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||v()},16)}function f(b){const P=b.target,T=P.tagName;return P.isContentEditable||T==="INPUT"||T==="SELECT"||T==="TEXTAREA"}const $=S(!1);ie("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),$.value=!0)}),ie("/",b=>{f(b)||(b.preventDefault(),$.value=!0)});const V="local";return(b,P)=>{var T;return s(),u("div",mo,[i(V)==="local"?(s(),u(x,{key:0},[$.value?(s(),_(i(t),{key:0,onClose:P[0]||(P[0]=I=>$.value=!1)})):m("",!0),d("div",po,[k(ge,{onClick:P[1]||(P[1]=I=>$.value=!0)})])],64)):i(V)==="algolia"?(s(),u(x,{key:1},[o.value?(s(),_(i(n),{key:0,algolia:((T=i(a).search)==null?void 0:T.options)??i(a).algolia,onVnodeBeforeMount:P[2]||(P[2]=I=>r.value=!0)},null,8,["algolia"])):m("",!0),r.value?m("",!0):(s(),u("div",ko,[k(ge,{onClick:l})]))],64)):m("",!0)])}}}),bo=p({__name:"VPNavBarSocialLinks",setup(e){const{theme:t}=L();return(n,a)=>i(t).socialLinks?(s(),_(be,{key:0,class:"VPNavBarSocialLinks",links:i(t).socialLinks},null,8,["links"])):m("",!0)}}),go=g(bo,[["__scopeId","data-v-0394ad82"]]),$o=["href","rel","target"],yo=["innerHTML"],Po={key:2},Lo=p({__name:"VPNavBarTitle",setup(e){const{site:t,theme:n}=L(),{hasSidebar:a}=D(),{currentLang:o}=q(),r=y(()=>{var f;return typeof n.value.logoLink=="string"?n.value.logoLink:(f=n.value.logoLink)==null?void 0:f.link}),l=y(()=>{var f;return typeof n.value.logoLink=="string"||(f=n.value.logoLink)==null?void 0:f.rel}),v=y(()=>{var f;return typeof n.value.logoLink=="string"||(f=n.value.logoLink)==null?void 0:f.target});return(f,$)=>(s(),u("div",{class:N(["VPNavBarTitle",{"has-sidebar":i(a)}])},[d("a",{class:"title",href:r.value??i(he)(i(o).link),rel:l.value,target:v.value},[c(f.$slots,"nav-bar-title-before",{},void 0,!0),i(n).logo?(s(),_(J,{key:0,class:"logo",image:i(n).logo},null,8,["image"])):m("",!0),i(n).siteTitle?(s(),u("span",{key:1,innerHTML:i(n).siteTitle},null,8,yo)):i(n).siteTitle===void 0?(s(),u("span",Po,M(i(t).title),1)):m("",!0),c(f.$slots,"nav-bar-title-after",{},void 0,!0)],8,$o)],2))}}),Vo=g(Lo,[["__scopeId","data-v-1168a8e4"]]),So={class:"items"},To={class:"title"},No=p({__name:"VPNavBarTranslations",setup(e){const{theme:t}=L(),{localeLinks:n,currentLang:a}=q({correspondingLink:!0});return(o,r)=>i(n).length&&i(a).label?(s(),_(_e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(t).langMenuLabel||"Change language"},{default:h(()=>[d("div",So,[d("p",To,M(i(a).label),1),(s(!0),u(x,null,A(i(n),l=>(s(),_(te,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}}),Mo=g(No,[["__scopeId","data-v-88af2de4"]]),xo={class:"wrapper"},Io={class:"container"},wo={class:"title"},Ao={class:"content"},Co={class:"content-body"},Ho=p({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(e){const t=e,{y:n}=Ve(),{hasSidebar:a}=D(),{frontmatter:o}=L(),r=S({});return fe(()=>{r.value={"has-sidebar":a.value,home:o.value.layout==="home",top:n.value===0,"screen-open":t.isScreenOpen}}),(l,v)=>(s(),u("div",{class:N(["VPNavBar",r.value])},[d("div",xo,[d("div",Io,[d("div",wo,[k(Vo,null,{"nav-bar-title-before":h(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",Ao,[d("div",Co,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),k(_o,{class:"search"}),k(co,{class:"menu"}),k(Mo,{class:"translations"}),k(_a,{class:"appearance"}),k(go,{class:"social-links"}),k(Za,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),k(no,{class:"hamburger",active:e.isScreenOpen,onClick:v[0]||(v[0]=f=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),v[1]||(v[1]=d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1))],2))}}),Bo=g(Ho,[["__scopeId","data-v-6aa21345"]]),Eo={key:0,class:"VPNavScreenAppearance"},Fo={class:"text"},Do=p({__name:"VPNavScreenAppearance",setup(e){const{site:t,theme:n}=L();return(a,o)=>i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(s(),u("div",Eo,[d("p",Fo,M(i(n).darkModeSwitchLabel||"Appearance"),1),k(pe)])):m("",!0)}}),Oo=g(Do,[["__scopeId","data-v-b44890b2"]]),Go=["innerHTML"],Uo=p({__name:"VPNavScreenMenuLink",props:{item:{}},setup(e){const t=Z("close-screen");return(n,a)=>(s(),_(E,{class:"VPNavScreenMenuLink",href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,onClick:i(t)},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,Go)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),jo=g(Uo,[["__scopeId","data-v-df37e6dd"]]),zo=["innerHTML"],Wo=p({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(e){const t=Z("close-screen");return(n,a)=>(s(),_(E,{class:"VPNavScreenMenuGroupLink",href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,onClick:i(t)},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,zo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Ae=g(Wo,[["__scopeId","data-v-3e9c20e4"]]),Ko={class:"VPNavScreenMenuGroupSection"},qo={key:0,class:"title"},Ro=p({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(e){return(t,n)=>(s(),u("div",Ko,[e.text?(s(),u("p",qo,M(e.text),1)):m("",!0),(s(!0),u(x,null,A(e.items,a=>(s(),_(Ae,{key:a.text,item:a},null,8,["item"]))),128))]))}}),Jo=g(Ro,[["__scopeId","data-v-8133b170"]]),Xo=["aria-controls","aria-expanded"],Yo=["innerHTML"],Qo=["id"],Zo={key:0,class:"item"},es={key:1,class:"item"},ts={key:2,class:"group"},ns=p({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(e){const t=e,n=S(!1),a=y(()=>`NavScreenGroup-${t.text.replace(" ","-").toLowerCase()}`);function o(){n.value=!n.value}return(r,l)=>(s(),u("div",{class:N(["VPNavScreenMenuGroup",{open:n.value}])},[d("button",{class:"button","aria-controls":a.value,"aria-expanded":n.value,onClick:o},[d("span",{class:"button-text",innerHTML:e.text},null,8,Yo),l[0]||(l[0]=d("span",{class:"vpi-plus button-icon"},null,-1))],8,Xo),d("div",{id:a.value,class:"items"},[(s(!0),u(x,null,A(e.items,v=>(s(),u(x,{key:JSON.stringify(v)},["link"in v?(s(),u("div",Zo,[k(Ae,{item:v},null,8,["item"])])):"component"in v?(s(),u("div",es,[(s(),_(B(v.component),G({ref_for:!0},v.props,{"screen-menu":""}),null,16))])):(s(),u("div",ts,[k(Jo,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,Qo)],2))}}),as=g(ns,[["__scopeId","data-v-b9ab8c58"]]),os={key:0,class:"VPNavScreenMenu"},ss=p({__name:"VPNavScreenMenu",setup(e){const{theme:t}=L();return(n,a)=>i(t).nav?(s(),u("nav",os,[(s(!0),u(x,null,A(i(t).nav,o=>(s(),u(x,{key:JSON.stringify(o)},["link"in o?(s(),_(jo,{key:0,item:o},null,8,["item"])):"component"in o?(s(),_(B(o.component),G({key:1,ref_for:!0},o.props,{"screen-menu":""}),null,16)):(s(),_(as,{key:2,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),is=p({__name:"VPNavScreenSocialLinks",setup(e){const{theme:t}=L();return(n,a)=>i(t).socialLinks?(s(),_(be,{key:0,class:"VPNavScreenSocialLinks",links:i(t).socialLinks},null,8,["links"])):m("",!0)}}),rs={class:"list"},ls=p({__name:"VPNavScreenTranslations",setup(e){const{localeLinks:t,currentLang:n}=q({correspondingLink:!0}),a=S(!1);function o(){a.value=!a.value}return(r,l)=>i(t).length&&i(n).label?(s(),u("div",{key:0,class:N(["VPNavScreenTranslations",{open:a.value}])},[d("button",{class:"title",onClick:o},[l[0]||(l[0]=d("span",{class:"vpi-languages icon lang"},null,-1)),j(" "+M(i(n).label)+" ",1),l[1]||(l[1]=d("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),d("ul",rs,[(s(!0),u(x,null,A(i(t),v=>(s(),u("li",{key:v.link,class:"item"},[k(E,{class:"link",href:v.link},{default:h(()=>[j(M(v.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}}),cs=g(ls,[["__scopeId","data-v-858fe1a4"]]),us={class:"container"},ds=p({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(e){const t=S(null),n=Se(ee?document.body:null);return(a,o)=>(s(),_(ue,{name:"fade",onEnter:o[0]||(o[0]=r=>n.value=!0),onAfterLeave:o[1]||(o[1]=r=>n.value=!1)},{default:h(()=>[e.open?(s(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:t,id:"VPNavScreen"},[d("div",us,[c(a.$slots,"nav-screen-content-before",{},void 0,!0),k(ss,{class:"menu"}),k(cs,{class:"translations"}),k(Oo,{class:"appearance"}),k(is,{class:"social-links"}),c(a.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}}),vs=g(ds,[["__scopeId","data-v-f2779853"]]),fs={key:0,class:"VPNav"},hs=p({__name:"VPNav",setup(e){const{isScreenOpen:t,closeScreen:n,toggleScreen:a}=la(),{frontmatter:o}=L(),r=y(()=>o.value.navbar!==!1);return Te("close-screen",n),X(()=>{ee&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(l,v)=>r.value?(s(),u("header",fs,[k(Bo,{"is-screen-open":i(t),onToggleScreen:i(a)},{"nav-bar-title-before":h(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":h(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":h(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(vs,{open:i(t)},{"nav-screen-content-before":h(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":h(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):m("",!0)}}),ms=g(hs,[["__scopeId","data-v-ae24b3ad"]]),ps=["role","tabindex"],ks={key:1,class:"items"},_s=p({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(e){const t=e,{collapsed:n,collapsible:a,isLink:o,isActiveLink:r,hasActiveLink:l,hasChildren:v,toggle:f}=dt(y(()=>t.item)),$=y(()=>v.value?"section":"div"),V=y(()=>o.value?"a":"div"),b=y(()=>v.value?t.depth+2===7?"p":`h${t.depth+2}`:"p"),P=y(()=>o.value?void 0:"button"),T=y(()=>[[`level-${t.depth}`],{collapsible:a.value},{collapsed:n.value},{"is-link":o.value},{"is-active":r.value},{"has-active":l.value}]);function I(C){"key"in C&&C.key!=="Enter"||!t.item.link&&f()}function w(){t.item.link&&f()}return(C,H)=>{const O=W("VPSidebarItem",!0);return s(),_(B($.value),{class:N(["VPSidebarItem",T.value])},{default:h(()=>[e.item.text?(s(),u("div",G({key:0,class:"item",role:P.value},je(e.item.items?{click:I,keydown:I}:{},!0),{tabindex:e.item.items&&0}),[H[1]||(H[1]=d("div",{class:"indicator"},null,-1)),e.item.link?(s(),_(E,{key:0,tag:V.value,class:"link",href:e.item.link,rel:e.item.rel,target:e.item.target},{default:h(()=>[(s(),_(B(b.value),{class:"text",innerHTML:e.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(s(),_(B(b.value),{key:1,class:"text",innerHTML:e.item.text},null,8,["innerHTML"])),e.item.collapsed!=null&&e.item.items&&e.item.items.length?(s(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:w,onKeydown:ze(w,["enter"]),tabindex:"0"},[...H[0]||(H[0]=[d("span",{class:"vpi-chevron-right caret-icon"},null,-1)])],32)):m("",!0)],16,ps)):m("",!0),e.item.items&&e.item.items.length?(s(),u("div",ks,[e.depth<5?(s(!0),u(x,{key:0},A(e.item.items,K=>(s(),_(O,{key:K.text,item:K,depth:e.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}}),bs=g(_s,[["__scopeId","data-v-b3fd67f8"]]),gs=p({__name:"VPSidebarGroup",props:{items:{}},setup(e){const t=S(!0);let n=null;return U(()=>{n=setTimeout(()=>{n=null,t.value=!1},300)}),We(()=>{n!=null&&(clearTimeout(n),n=null)}),(a,o)=>(s(!0),u(x,null,A(e.items,r=>(s(),u("div",{key:r.text,class:N(["group",{"no-transition":t.value}])},[k(bs,{item:r,depth:0},null,8,["item"])],2))),128))}}),$s=g(gs,[["__scopeId","data-v-c40bc020"]]),ys={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Ps=p({__name:"VPSidebar",props:{open:{type:Boolean}},setup(e){const{sidebarGroups:t,hasSidebar:n}=D(),a=e,o=S(null),r=Se(ee?document.body:null);F([a,o],()=>{var v;a.open?(r.value=!0,(v=o.value)==null||v.focus()):r.value=!1},{immediate:!0,flush:"post"});const l=S(0);return F(t,()=>{l.value+=1},{deep:!0}),(v,f)=>i(n)?(s(),u("aside",{key:0,class:N(["VPSidebar",{open:e.open}]),ref_key:"navEl",ref:o,onClick:f[0]||(f[0]=Ke(()=>{},["stop"]))},[f[2]||(f[2]=d("div",{class:"curtain"},null,-1)),d("nav",ys,[f[1]||(f[1]=d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),c(v.$slots,"sidebar-nav-before",{},void 0,!0),(s(),_($s,{items:i(t),key:l.value},null,8,["items"])),c(v.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}}),Ls=g(Ps,[["__scopeId","data-v-319d5ca6"]]),Vs=p({__name:"VPSkipLink",setup(e){const{theme:t}=L(),n=Q(),a=S();F(()=>n.path,()=>a.value.focus());function o({target:r}){const l=document.getElementById(decodeURIComponent(r.hash).slice(1));if(l){const v=()=>{l.removeAttribute("tabindex"),l.removeEventListener("blur",v)};l.setAttribute("tabindex","-1"),l.addEventListener("blur",v),l.focus(),window.scrollTo(0,0)}}return(r,l)=>(s(),u(x,null,[d("span",{ref_key:"backToTop",ref:a,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o},M(i(t).skipToContentLabel||"Skip to content"),1)],64))}}),Ss=g(Vs,[["__scopeId","data-v-0b0ada53"]]),Ts=p({__name:"Layout",setup(e){const{isOpen:t,open:n,close:a}=D(),o=Q();F(()=>o.path,a),ut(t,a);const{frontmatter:r}=L(),l=qe(),v=y(()=>!!l["home-hero-image"]);return Te("hero-image-slot-exists",v),(f,$)=>{const V=W("Content");return i(r).layout!==!1?(s(),u("div",{key:0,class:N(["Layout",i(r).pageClass])},[c(f.$slots,"layout-top",{},void 0,!0),k(Ss),k(Ye,{class:"backdrop",show:i(t),onClick:i(a)},null,8,["show","onClick"]),k(ms,null,{"nav-bar-title-before":h(()=>[c(f.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[c(f.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":h(()=>[c(f.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":h(()=>[c(f.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":h(()=>[c(f.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":h(()=>[c(f.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(ra,{open:i(t),onOpenMenu:i(n)},null,8,["open","onOpenMenu"]),k(Ls,{open:i(t)},{"sidebar-nav-before":h(()=>[c(f.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":h(()=>[c(f.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(Wn,null,{"page-top":h(()=>[c(f.$slots,"page-top",{},void 0,!0)]),"page-bottom":h(()=>[c(f.$slots,"page-bottom",{},void 0,!0)]),"not-found":h(()=>[c(f.$slots,"not-found",{},void 0,!0)]),"home-hero-before":h(()=>[c(f.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":h(()=>[c(f.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[c(f.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[c(f.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[c(f.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[c(f.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":h(()=>[c(f.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":h(()=>[c(f.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":h(()=>[c(f.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":h(()=>[c(f.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":h(()=>[c(f.$slots,"doc-before",{},void 0,!0)]),"doc-after":h(()=>[c(f.$slots,"doc-after",{},void 0,!0)]),"doc-top":h(()=>[c(f.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":h(()=>[c(f.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":h(()=>[c(f.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":h(()=>[c(f.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":h(()=>[c(f.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[c(f.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[c(f.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[c(f.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(Xn),c(f.$slots,"layout-bottom",{},void 0,!0)],2)):(s(),_(V,{key:1}))}}}),Ns=g(Ts,[["__scopeId","data-v-5d98c3a5"]]),xs={Layout:Ns,enhanceApp:({app:e})=>{e.component("Badge",Re)}};export{uo as c,xs as t,L as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.DGnxHqzH.js","assets/chunks/framework.K54bclBu.js"])))=>i.map(i=>d[i]); +import{d as p,c as u,r as c,n as N,o as s,a as j,t as M,b as _,w as h,T as ue,e as m,_ as g,u as Ce,i as He,f as Be,g as de,h as y,j as d,k as i,l as z,m as se,p as S,q as F,s as X,v as U,x as ve,y as fe,z as Ee,A as Fe,F as x,B as A,C as W,D as Y,E as k,G as $e,H as B,I as ye,J as Q,K as G,L as Z,M as De,N as Pe,O as ie,P as Le,Q as Ve,R as ee,S as Oe,U as Ge,V as Ue,W as Se,X as Te,Y as je,Z as ze,$ as We,a0 as Ke,a1 as qe}from"./framework.K54bclBu.js";const Re=p({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(e){return(t,n)=>(s(),u("span",{class:N(["VPBadge",e.type])},[c(t.$slots,"default",{},()=>[j(M(e.text),1)])],2))}}),Je={key:0,class:"VPBackdrop"},Xe=p({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(e){return(t,n)=>(s(),_(ue,{name:"fade"},{default:h(()=>[e.show?(s(),u("div",Je)):m("",!0)]),_:1}))}}),Ye=g(Xe,[["__scopeId","data-v-c79a1216"]]),L=Ce;function Qe(e,t){let n,a=!1;return()=>{n&&clearTimeout(n),a?n=setTimeout(e,t):(e(),(a=!0)&&setTimeout(()=>a=!1,t))}}function re(e){return e.startsWith("/")?e:`/${e}`}function he(e){const{pathname:t,search:n,hash:a,protocol:o}=new URL(e,"http://a.com");if(He(e)||e.startsWith("#")||!o.startsWith("http")||!Be(t))return e;const{site:r}=L(),l=t.endsWith("/")||t.endsWith(".html")?e:e.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${n}${a}`);return de(l)}function q({correspondingLink:e=!1}={}){const{site:t,localeIndex:n,page:a,theme:o,hash:r}=L(),l=y(()=>{var f,$;return{label:(f=t.value.locales[n.value])==null?void 0:f.label,link:(($=t.value.locales[n.value])==null?void 0:$.link)||(n.value==="root"?"/":`/${n.value}/`)}});return{localeLinks:y(()=>Object.entries(t.value.locales).flatMap(([f,$])=>l.value.label===$.label?[]:{text:$.label,link:Ze($.link||(f==="root"?"/":`/${f}/`),o.value.i18nRouting!==!1&&e,a.value.relativePath.slice(l.value.link.length-1),!t.value.cleanUrls)+r.value})),currentLang:l}}function Ze(e,t,n,a){return t?e.replace(/\/$/,"")+re(n.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,a?".html":"")):e}const et={class:"NotFound"},tt={class:"code"},nt={class:"title"},at={class:"quote"},ot={class:"action"},st=["href","aria-label"],it=p({__name:"NotFound",setup(e){const{theme:t}=L(),{currentLang:n}=q();return(a,o)=>{var r,l,v,f,$;return s(),u("div",et,[d("p",tt,M(((r=i(t).notFound)==null?void 0:r.code)??"404"),1),d("h1",nt,M(((l=i(t).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),o[0]||(o[0]=d("div",{class:"divider"},null,-1)),d("blockquote",at,M(((v=i(t).notFound)==null?void 0:v.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",ot,[d("a",{class:"link",href:i(de)(i(n).link),"aria-label":((f=i(t).notFound)==null?void 0:f.linkLabel)??"go to home"},M((($=i(t).notFound)==null?void 0:$.linkText)??"Take me home"),9,st)])])}}}),rt=g(it,[["__scopeId","data-v-d6be1790"]]);function Ne(e,t){if(Array.isArray(e))return R(e);if(e==null)return[];t=re(t);const n=Object.keys(e).sort((o,r)=>r.split("/").length-o.split("/").length).find(o=>t.startsWith(re(o))),a=n?e[n]:[];return Array.isArray(a)?R(a):R(a.items,a.base)}function lt(e){const t=[];let n=0;for(const a in e){const o=e[a];if(o.items){n=t.push(o);continue}t[n]||t.push({items:[]}),t[n].items.push(o)}return t}function ct(e){const t=[];function n(a){for(const o of a)o.text&&o.link&&t.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&n(o.items)}return n(e),t}function le(e,t){return Array.isArray(t)?t.some(n=>le(e,n)):z(e,t.link)?!0:t.items?le(e,t.items):!1}function R(e,t){return[...e].map(n=>{const a={...n},o=a.base||t;return o&&a.link&&(a.link=o+a.link),a.items&&(a.items=R(a.items,o)),a})}function D(){const{frontmatter:e,page:t,theme:n}=L(),a=se("(min-width: 960px)"),o=S(!1),r=y(()=>{const w=n.value.sidebar,C=t.value.relativePath;return w?Ne(w,C):[]}),l=S(r.value);F(r,(w,C)=>{JSON.stringify(w)!==JSON.stringify(C)&&(l.value=r.value)});const v=y(()=>e.value.sidebar!==!1&&l.value.length>0&&e.value.layout!=="home"),f=y(()=>$?e.value.aside==null?n.value.aside==="left":e.value.aside==="left":!1),$=y(()=>e.value.layout==="home"?!1:e.value.aside!=null?!!e.value.aside:n.value.aside!==!1),V=y(()=>v.value&&a.value),b=y(()=>v.value?lt(l.value):[]);function P(){o.value=!0}function T(){o.value=!1}function I(){o.value?T():P()}return{isOpen:o,sidebar:l,sidebarGroups:b,hasSidebar:v,hasAside:$,leftAside:f,isSidebarEnabled:V,open:P,close:T,toggle:I}}function ut(e,t){let n;X(()=>{n=e.value?document.activeElement:void 0}),U(()=>{window.addEventListener("keyup",a)}),ve(()=>{window.removeEventListener("keyup",a)});function a(o){o.key==="Escape"&&e.value&&(t(),n==null||n.focus())}}function dt(e){const{page:t,hash:n}=L(),a=S(!1),o=y(()=>e.value.collapsed!=null),r=y(()=>!!e.value.link),l=S(!1),v=()=>{l.value=z(t.value.relativePath,e.value.link)};F([t,e,n],v),U(v);const f=y(()=>l.value?!0:e.value.items?le(t.value.relativePath,e.value.items):!1),$=y(()=>!!(e.value.items&&e.value.items.length));X(()=>{a.value=!!(o.value&&e.value.collapsed)}),fe(()=>{(l.value||f.value)&&(a.value=!1)});function V(){o.value&&(a.value=!a.value)}return{collapsed:a,collapsible:o,isLink:r,isActiveLink:l,hasActiveLink:f,hasChildren:$,toggle:V}}function vt(){const{hasSidebar:e}=D(),t=se("(min-width: 960px)"),n=se("(min-width: 1280px)");return{isAsideEnabled:y(()=>!n.value&&!t.value?!1:e.value?n.value:t.value)}}const ft=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,ce=[];function Me(e){return typeof e.outline=="object"&&!Array.isArray(e.outline)&&e.outline.label||e.outlineTitle||"On this page"}function me(e){const t=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(n=>n.id&&n.hasChildNodes()).map(n=>{const a=Number(n.tagName[1]);return{element:n,title:ht(n),link:"#"+n.id,level:a}});return mt(t,e)}function ht(e){let t="";for(const n of e.childNodes)if(n.nodeType===1){if(ft.test(n.className))continue;t+=n.textContent}else n.nodeType===3&&(t+=n.textContent);return t.trim()}function mt(e,t){if(t===!1)return[];const n=(typeof t=="object"&&!Array.isArray(t)?t.level:t)||2,[a,o]=typeof n=="number"?[n,n]:n==="deep"?[2,6]:n;return _t(e,a,o)}function pt(e,t){const{isAsideEnabled:n}=vt(),a=Qe(r,100);let o=null;U(()=>{requestAnimationFrame(r),window.addEventListener("scroll",a)}),Ee(()=>{l(location.hash)}),ve(()=>{window.removeEventListener("scroll",a)});function r(){if(!n.value)return;const v=window.scrollY,f=window.innerHeight,$=document.body.offsetHeight,V=Math.abs(v+f-$)<1,b=ce.map(({element:T,link:I})=>({link:I,top:kt(T)})).filter(({top:T})=>!Number.isNaN(T)).sort((T,I)=>T.top-I.top);if(!b.length){l(null);return}if(v<1){l(null);return}if(V){l(b[b.length-1].link);return}let P=null;for(const{link:T,top:I}of b){if(I>v+Fe()+4)break;P=T}l(P)}function l(v){o&&o.classList.remove("active"),v==null?o=null:o=e.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const f=o;f?(f.classList.add("active"),t.value.style.top=f.offsetTop+39+"px",t.value.style.opacity="1"):(t.value.style.top="33px",t.value.style.opacity="0")}}function kt(e){let t=0;for(;e!==document.body;){if(e===null)return NaN;t+=e.offsetTop,e=e.offsetParent}return t}function _t(e,t,n){ce.length=0;const a=[],o=[];return e.forEach(r=>{const l={...r,children:[]};let v=o[o.length-1];for(;v&&v.level>=l.level;)o.pop(),v=o[o.length-1];if(l.element.classList.contains("ignore-header")||v&&"shouldIgnore"in v){o.push({level:l.level,shouldIgnore:!0});return}l.level>n||l.level{const o=W("VPDocOutlineItem",!0);return s(),u("ul",{class:N(["VPDocOutlineItem",e.root?"root":"nested"])},[(s(!0),u(x,null,A(e.headers,({children:r,link:l,title:v})=>(s(),u("li",null,[d("a",{class:"outline-link",href:l,onClick:t,title:v},M(v),9,bt),r!=null&&r.length?(s(),_(o,{key:0,headers:r},null,8,["headers"])):m("",!0)]))),256))],2)}}}),xe=g(gt,[["__scopeId","data-v-b933a997"]]),$t={class:"content"},yt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Pt=p({__name:"VPDocAsideOutline",setup(e){const{frontmatter:t,theme:n}=L(),a=$e([]);Y(()=>{a.value=me(t.value.outline??n.value.outline)});const o=S(),r=S();return pt(o,r),(l,v)=>(s(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":a.value.length>0}]),ref_key:"container",ref:o},[d("div",$t,[d("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),d("div",yt,M(i(Me)(i(n))),1),k(xe,{headers:a.value,root:!0},null,8,["headers"])])],2))}}),Lt=g(Pt,[["__scopeId","data-v-a5bbad30"]]),Vt={class:"VPDocAsideCarbonAds"},St=p({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(e){const t=()=>null;return(n,a)=>(s(),u("div",Vt,[k(i(t),{"carbon-ads":e.carbonAds},null,8,["carbon-ads"])]))}}),Tt={class:"VPDocAside"},Nt=p({__name:"VPDocAside",setup(e){const{theme:t}=L();return(n,a)=>(s(),u("div",Tt,[c(n.$slots,"aside-top",{},void 0,!0),c(n.$slots,"aside-outline-before",{},void 0,!0),k(Lt),c(n.$slots,"aside-outline-after",{},void 0,!0),a[0]||(a[0]=d("div",{class:"spacer"},null,-1)),c(n.$slots,"aside-ads-before",{},void 0,!0),i(t).carbonAds?(s(),_(St,{key:0,"carbon-ads":i(t).carbonAds},null,8,["carbon-ads"])):m("",!0),c(n.$slots,"aside-ads-after",{},void 0,!0),c(n.$slots,"aside-bottom",{},void 0,!0)]))}}),Mt=g(Nt,[["__scopeId","data-v-3f215769"]]);function xt(){const{theme:e,page:t}=L();return y(()=>{const{text:n="Edit this page",pattern:a=""}=e.value.editLink||{};let o;return typeof a=="function"?o=a(t.value):o=a.replace(/:path/g,t.value.filePath),{url:o,text:n}})}function It(){const{page:e,theme:t,frontmatter:n}=L();return y(()=>{var $,V,b,P,T,I,w,C;const a=Ne(t.value.sidebar,e.value.relativePath),o=ct(a),r=wt(o,H=>H.link.replace(/[?#].*$/,"")),l=r.findIndex(H=>z(e.value.relativePath,H.link)),v=(($=t.value.docFooter)==null?void 0:$.prev)===!1&&!n.value.prev||n.value.prev===!1,f=((V=t.value.docFooter)==null?void 0:V.next)===!1&&!n.value.next||n.value.next===!1;return{prev:v?void 0:{text:(typeof n.value.prev=="string"?n.value.prev:typeof n.value.prev=="object"?n.value.prev.text:void 0)??((b=r[l-1])==null?void 0:b.docFooterText)??((P=r[l-1])==null?void 0:P.text),link:(typeof n.value.prev=="object"?n.value.prev.link:void 0)??((T=r[l-1])==null?void 0:T.link)},next:f?void 0:{text:(typeof n.value.next=="string"?n.value.next:typeof n.value.next=="object"?n.value.next.text:void 0)??((I=r[l+1])==null?void 0:I.docFooterText)??((w=r[l+1])==null?void 0:w.text),link:(typeof n.value.next=="object"?n.value.next.link:void 0)??((C=r[l+1])==null?void 0:C.link)}}})}function wt(e,t){const n=new Set;return e.filter(a=>{const o=t(a);return n.has(o)?!1:n.add(o)})}const E=p({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(e){const t=e,n=y(()=>t.tag??(t.href?"a":"span")),a=y(()=>t.href&&ye.test(t.href)||t.target==="_blank");return(o,r)=>(s(),_(B(n.value),{class:N(["VPLink",{link:e.href,"vp-external-link-icon":a.value,"no-icon":e.noIcon}]),href:e.href?i(he)(e.href):void 0,target:e.target??(a.value?"_blank":void 0),rel:e.rel??(a.value?"noreferrer":void 0)},{default:h(()=>[c(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),At={class:"VPLastUpdated"},Ct=["datetime"],Ht=p({__name:"VPDocFooterLastUpdated",setup(e){const{theme:t,page:n,lang:a}=L(),o=y(()=>new Date(n.value.lastUpdated)),r=y(()=>o.value.toISOString()),l=S("");return U(()=>{X(()=>{var v,f,$;l.value=new Intl.DateTimeFormat((f=(v=t.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&f.forceLocale?a.value:void 0,(($=t.value.lastUpdated)==null?void 0:$.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(v,f)=>{var $;return s(),u("p",At,[j(M((($=i(t).lastUpdated)==null?void 0:$.text)||i(t).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:r.value},M(l.value),9,Ct)])}}}),Bt=g(Ht,[["__scopeId","data-v-e98dd255"]]),Et={key:0,class:"VPDocFooter"},Ft={key:0,class:"edit-info"},Dt={key:0,class:"edit-link"},Ot={key:1,class:"last-updated"},Gt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Ut={class:"pager"},jt=["innerHTML"],zt=["innerHTML"],Wt={class:"pager"},Kt=["innerHTML"],qt=["innerHTML"],Rt=p({__name:"VPDocFooter",setup(e){const{theme:t,page:n,frontmatter:a}=L(),o=xt(),r=It(),l=y(()=>t.value.editLink&&a.value.editLink!==!1),v=y(()=>n.value.lastUpdated),f=y(()=>l.value||v.value||r.value.prev||r.value.next);return($,V)=>{var b,P,T,I;return f.value?(s(),u("footer",Et,[c($.$slots,"doc-footer-before",{},void 0,!0),l.value||v.value?(s(),u("div",Ft,[l.value?(s(),u("div",Dt,[k(E,{class:"edit-link-button",href:i(o).url,"no-icon":!0},{default:h(()=>[V[0]||(V[0]=d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),j(" "+M(i(o).text),1)]),_:1},8,["href"])])):m("",!0),v.value?(s(),u("div",Ot,[k(Bt)])):m("",!0)])):m("",!0),(b=i(r).prev)!=null&&b.link||(P=i(r).next)!=null&&P.link?(s(),u("nav",Gt,[V[1]||(V[1]=d("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),d("div",Ut,[(T=i(r).prev)!=null&&T.link?(s(),_(E,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:h(()=>{var w;return[d("span",{class:"desc",innerHTML:((w=i(t).docFooter)==null?void 0:w.prev)||"Previous page"},null,8,jt),d("span",{class:"title",innerHTML:i(r).prev.text},null,8,zt)]}),_:1},8,["href"])):m("",!0)]),d("div",Wt,[(I=i(r).next)!=null&&I.link?(s(),_(E,{key:0,class:"pager-link next",href:i(r).next.link},{default:h(()=>{var w;return[d("span",{class:"desc",innerHTML:((w=i(t).docFooter)==null?void 0:w.next)||"Next page"},null,8,Kt),d("span",{class:"title",innerHTML:i(r).next.text},null,8,qt)]}),_:1},8,["href"])):m("",!0)])])):m("",!0)])):m("",!0)}}}),Jt=g(Rt,[["__scopeId","data-v-e257564d"]]),Xt={class:"container"},Yt={class:"aside-container"},Qt={class:"aside-content"},Zt={class:"content"},en={class:"content-container"},tn={class:"main"},nn=p({__name:"VPDoc",setup(e){const{theme:t}=L(),n=Q(),{hasSidebar:a,hasAside:o,leftAside:r}=D(),l=y(()=>n.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,f)=>{const $=W("Content");return s(),u("div",{class:N(["VPDoc",{"has-sidebar":i(a),"has-aside":i(o)}])},[c(v.$slots,"doc-top",{},void 0,!0),d("div",Xt,[i(o)?(s(),u("div",{key:0,class:N(["aside",{"left-aside":i(r)}])},[f[0]||(f[0]=d("div",{class:"aside-curtain"},null,-1)),d("div",Yt,[d("div",Qt,[k(Mt,null,{"aside-top":h(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":h(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":h(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),d("div",Zt,[d("div",en,[c(v.$slots,"doc-before",{},void 0,!0),d("main",tn,[k($,{class:N(["vp-doc",[l.value,i(t).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(Jt,null,{"doc-footer-before":h(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(v.$slots,"doc-after",{},void 0,!0)])])]),c(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),an=g(nn,[["__scopeId","data-v-39a288b8"]]),on=p({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(e){const t=e,n=y(()=>t.href&&ye.test(t.href)),a=y(()=>t.tag||(t.href?"a":"button"));return(o,r)=>(s(),_(B(a.value),{class:N(["VPButton",[e.size,e.theme]]),href:e.href?i(he)(e.href):void 0,target:t.target??(n.value?"_blank":void 0),rel:t.rel??(n.value?"noreferrer":void 0)},{default:h(()=>[j(M(e.text),1)]),_:1},8,["class","href","target","rel"]))}}),sn=g(on,[["__scopeId","data-v-fa7799d5"]]),rn=["src","alt"],ln=p({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(e){return(t,n)=>{const a=W("VPImage",!0);return e.image?(s(),u(x,{key:0},[typeof e.image=="string"||"src"in e.image?(s(),u("img",G({key:0,class:"VPImage"},typeof e.image=="string"?t.$attrs:{...e.image,...t.$attrs},{src:i(de)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,rn)):(s(),u(x,{key:1},[k(a,G({class:"dark",image:e.image.dark,alt:e.image.alt},t.$attrs),null,16,["image","alt"]),k(a,G({class:"light",image:e.image.light,alt:e.image.alt},t.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}}),J=g(ln,[["__scopeId","data-v-8426fc1a"]]),cn={class:"container"},un={class:"main"},dn={class:"heading"},vn=["innerHTML"],fn=["innerHTML"],hn=["innerHTML"],mn={key:0,class:"actions"},pn={key:0,class:"image"},kn={class:"image-container"},_n=p({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(e){const t=Z("hero-image-slot-exists");return(n,a)=>(s(),u("div",{class:N(["VPHero",{"has-image":e.image||i(t)}])},[d("div",cn,[d("div",un,[c(n.$slots,"home-hero-info-before",{},void 0,!0),c(n.$slots,"home-hero-info",{},()=>[d("h1",dn,[e.name?(s(),u("span",{key:0,innerHTML:e.name,class:"name clip"},null,8,vn)):m("",!0),e.text?(s(),u("span",{key:1,innerHTML:e.text,class:"text"},null,8,fn)):m("",!0)]),e.tagline?(s(),u("p",{key:0,innerHTML:e.tagline,class:"tagline"},null,8,hn)):m("",!0)],!0),c(n.$slots,"home-hero-info-after",{},void 0,!0),e.actions?(s(),u("div",mn,[(s(!0),u(x,null,A(e.actions,o=>(s(),u("div",{key:o.link,class:"action"},[k(sn,{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))])):m("",!0),c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),e.image||i(t)?(s(),u("div",pn,[d("div",kn,[a[0]||(a[0]=d("div",{class:"image-bg"},null,-1)),c(n.$slots,"home-hero-image",{},()=>[e.image?(s(),_(J,{key:0,class:"image-src",image:e.image},null,8,["image"])):m("",!0)],!0)])])):m("",!0)])],2))}}),bn=g(_n,[["__scopeId","data-v-4f9c455b"]]),gn=p({__name:"VPHomeHero",setup(e){const{frontmatter:t}=L();return(n,a)=>i(t).hero?(s(),_(bn,{key:0,class:"VPHomeHero",name:i(t).hero.name,text:i(t).hero.text,tagline:i(t).hero.tagline,image:i(t).hero.image,actions:i(t).hero.actions},{"home-hero-info-before":h(()=>[c(n.$slots,"home-hero-info-before")]),"home-hero-info":h(()=>[c(n.$slots,"home-hero-info")]),"home-hero-info-after":h(()=>[c(n.$slots,"home-hero-info-after")]),"home-hero-actions-after":h(()=>[c(n.$slots,"home-hero-actions-after")]),"home-hero-image":h(()=>[c(n.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),$n={class:"box"},yn={key:0,class:"icon"},Pn=["innerHTML"],Ln=["innerHTML"],Vn=["innerHTML"],Sn={key:4,class:"link-text"},Tn={class:"link-text-value"},Nn=p({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(e){return(t,n)=>(s(),_(E,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:h(()=>[d("article",$n,[typeof e.icon=="object"&&e.icon.wrap?(s(),u("div",yn,[k(J,{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"?(s(),_(J,{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?(s(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Pn)):m("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,Ln),e.details?(s(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Vn)):m("",!0),e.linkText?(s(),u("div",Sn,[d("p",Tn,[j(M(e.linkText)+" ",1),n[0]||(n[0]=d("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):m("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Mn=g(Nn,[["__scopeId","data-v-a3976bdc"]]),xn={key:0,class:"VPFeatures"},In={class:"container"},wn={class:"items"},An=p({__name:"VPFeatures",props:{features:{}},setup(e){const t=e,n=y(()=>{const a=t.features.length;if(a){if(a===2)return"grid-2";if(a===3)return"grid-3";if(a%3===0)return"grid-6";if(a>3)return"grid-4"}else return});return(a,o)=>e.features?(s(),u("div",xn,[d("div",In,[d("div",wn,[(s(!0),u(x,null,A(e.features,r=>(s(),u("div",{key:r.title,class:N(["item",[n.value]])},[k(Mn,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):m("",!0)}}),Cn=g(An,[["__scopeId","data-v-a6181336"]]),Hn=p({__name:"VPHomeFeatures",setup(e){const{frontmatter:t}=L();return(n,a)=>i(t).features?(s(),_(Cn,{key:0,class:"VPHomeFeatures",features:i(t).features},null,8,["features"])):m("",!0)}}),Bn=p({__name:"VPHomeContent",setup(e){const{width:t}=De({initialWidth:0,includeScrollbar:!1});return(n,a)=>(s(),u("div",{class:"vp-doc container",style:Pe(i(t)?{"--vp-offset":`calc(50% - ${i(t)/2}px)`}:{})},[c(n.$slots,"default",{},void 0,!0)],4))}}),En=g(Bn,[["__scopeId","data-v-8e2d4988"]]),Fn=p({__name:"VPHome",setup(e){const{frontmatter:t,theme:n}=L();return(a,o)=>{const r=W("Content");return s(),u("div",{class:N(["VPHome",{"external-link-icon-enabled":i(n).externalLinkIcon}])},[c(a.$slots,"home-hero-before",{},void 0,!0),k(gn,null,{"home-hero-info-before":h(()=>[c(a.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[c(a.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[c(a.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[c(a.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[c(a.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(a.$slots,"home-hero-after",{},void 0,!0),c(a.$slots,"home-features-before",{},void 0,!0),k(Hn),c(a.$slots,"home-features-after",{},void 0,!0),i(t).markdownStyles!==!1?(s(),_(En,{key:0},{default:h(()=>[k(r)]),_:1})):(s(),_(r,{key:1}))],2)}}}),Dn=g(Fn,[["__scopeId","data-v-8b561e3d"]]),On={},Gn={class:"VPPage"};function Un(e,t){const n=W("Content");return s(),u("div",Gn,[c(e.$slots,"page-top"),k(n),c(e.$slots,"page-bottom")])}const jn=g(On,[["render",Un]]),zn=p({__name:"VPContent",setup(e){const{page:t,frontmatter:n}=L(),{hasSidebar:a}=D();return(o,r)=>(s(),u("div",{class:N(["VPContent",{"has-sidebar":i(a),"is-home":i(n).layout==="home"}]),id:"VPContent"},[i(t).isNotFound?c(o.$slots,"not-found",{key:0},()=>[k(rt)],!0):i(n).layout==="page"?(s(),_(jn,{key:1},{"page-top":h(()=>[c(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":h(()=>[c(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(n).layout==="home"?(s(),_(Dn,{key:2},{"home-hero-before":h(()=>[c(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":h(()=>[c(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[c(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[c(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":h(()=>[c(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":h(()=>[c(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":h(()=>[c(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(n).layout&&i(n).layout!=="doc"?(s(),_(B(i(n).layout),{key:3})):(s(),_(an,{key:4},{"doc-top":h(()=>[c(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":h(()=>[c(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":h(()=>[c(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":h(()=>[c(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":h(()=>[c(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":h(()=>[c(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":h(()=>[c(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[c(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[c(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[c(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":h(()=>[c(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),Wn=g(zn,[["__scopeId","data-v-1428d186"]]),Kn={class:"container"},qn=["innerHTML"],Rn=["innerHTML"],Jn=p({__name:"VPFooter",setup(e){const{theme:t,frontmatter:n}=L(),{hasSidebar:a}=D();return(o,r)=>i(t).footer&&i(n).footer!==!1?(s(),u("footer",{key:0,class:N(["VPFooter",{"has-sidebar":i(a)}])},[d("div",Kn,[i(t).footer.message?(s(),u("p",{key:0,class:"message",innerHTML:i(t).footer.message},null,8,qn)):m("",!0),i(t).footer.copyright?(s(),u("p",{key:1,class:"copyright",innerHTML:i(t).footer.copyright},null,8,Rn)):m("",!0)])],2)):m("",!0)}}),Xn=g(Jn,[["__scopeId","data-v-e315a0ad"]]);function Yn(){const{theme:e,frontmatter:t}=L(),n=$e([]),a=y(()=>n.value.length>0);return Y(()=>{n.value=me(t.value.outline??e.value.outline)}),{headers:n,hasLocalNav:a}}const Qn={class:"menu-text"},Zn={class:"header"},ea={class:"outline"},ta=p({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(e){const t=e,{theme:n}=L(),a=S(!1),o=S(0),r=S(),l=S();function v(b){var P;(P=r.value)!=null&&P.contains(b.target)||(a.value=!1)}F(a,b=>{if(b){document.addEventListener("click",v);return}document.removeEventListener("click",v)}),ie("Escape",()=>{a.value=!1}),Y(()=>{a.value=!1});function f(){a.value=!a.value,o.value=window.innerHeight+Math.min(window.scrollY-t.navHeight,0)}function $(b){b.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Le(()=>{a.value=!1}))}function V(){a.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(s(),u("div",{class:"VPLocalNavOutlineDropdown",style:Pe({"--vp-vh":o.value+"px"}),ref_key:"main",ref:r},[e.headers.length>0?(s(),u("button",{key:0,onClick:f,class:N({open:a.value})},[d("span",Qn,M(i(Me)(i(n))),1),P[0]||(P[0]=d("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(s(),u("button",{key:1,onClick:V},M(i(n).returnToTopLabel||"Return to top"),1)),k(ue,{name:"flyout"},{default:h(()=>[a.value?(s(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:$},[d("div",Zn,[d("a",{class:"top-link",href:"#",onClick:V},M(i(n).returnToTopLabel||"Return to top"),1)]),d("div",ea,[k(xe,{headers:e.headers},null,8,["headers"])])],512)):m("",!0)]),_:1})],4))}}),na=g(ta,[["__scopeId","data-v-8a42e2b4"]]),aa={class:"container"},oa=["aria-expanded"],sa={class:"menu-text"},ia=p({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(e){const{theme:t,frontmatter:n}=L(),{hasSidebar:a}=D(),{headers:o}=Yn(),{y:r}=Ve(),l=S(0);U(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),Y(()=>{o.value=me(n.value.outline??t.value.outline)});const v=y(()=>o.value.length===0),f=y(()=>v.value&&!a.value),$=y(()=>({VPLocalNav:!0,"has-sidebar":a.value,empty:v.value,fixed:f.value}));return(V,b)=>i(n).layout!=="home"&&(!f.value||i(r)>=l.value)?(s(),u("div",{key:0,class:N($.value)},[d("div",aa,[i(a)?(s(),u("button",{key:0,class:"menu","aria-expanded":e.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>V.$emit("open-menu"))},[b[1]||(b[1]=d("span",{class:"vpi-align-left menu-icon"},null,-1)),d("span",sa,M(i(t).sidebarMenuLabel||"Menu"),1)],8,oa)):m("",!0),k(na,{headers:i(o),navHeight:l.value},null,8,["headers","navHeight"])])],2)):m("",!0)}}),ra=g(ia,[["__scopeId","data-v-a6f0e41e"]]);function la(){const e=S(!1);function t(){e.value=!0,window.addEventListener("resize",o)}function n(){e.value=!1,window.removeEventListener("resize",o)}function a(){e.value?n():t()}function o(){window.outerWidth>=768&&n()}const r=Q();return F(()=>r.path,n),{isScreenOpen:e,openScreen:t,closeScreen:n,toggleScreen:a}}const ca={},ua={class:"VPSwitch",type:"button",role:"switch"},da={class:"check"},va={key:0,class:"icon"};function fa(e,t){return s(),u("button",ua,[d("span",da,[e.$slots.default?(s(),u("span",va,[c(e.$slots,"default",{},void 0,!0)])):m("",!0)])])}const ha=g(ca,[["render",fa],["__scopeId","data-v-1d5665e3"]]),ma=p({__name:"VPSwitchAppearance",setup(e){const{isDark:t,theme:n}=L(),a=Z("toggle-appearance",()=>{t.value=!t.value}),o=S("");return fe(()=>{o.value=t.value?n.value.lightModeSwitchTitle||"Switch to light theme":n.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,l)=>(s(),_(ha,{title:o.value,class:"VPSwitchAppearance","aria-checked":i(t),onClick:i(a)},{default:h(()=>[...l[0]||(l[0]=[d("span",{class:"vpi-sun sun"},null,-1),d("span",{class:"vpi-moon moon"},null,-1)])]),_:1},8,["title","aria-checked","onClick"]))}}),pe=g(ma,[["__scopeId","data-v-5337faa4"]]),pa={key:0,class:"VPNavBarAppearance"},ka=p({__name:"VPNavBarAppearance",setup(e){const{site:t}=L();return(n,a)=>i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(s(),u("div",pa,[k(pe)])):m("",!0)}}),_a=g(ka,[["__scopeId","data-v-6c893767"]]),ke=S();let Ie=!1,oe=0;function ba(e){const t=S(!1);if(ee){!Ie&&ga(),oe++;const n=F(ke,a=>{var o,r,l;a===e.el.value||(o=e.el.value)!=null&&o.contains(a)?(t.value=!0,(r=e.onFocus)==null||r.call(e)):(t.value=!1,(l=e.onBlur)==null||l.call(e))});ve(()=>{n(),oe--,oe||$a()})}return Oe(t)}function ga(){document.addEventListener("focusin",we),Ie=!0,ke.value=document.activeElement}function $a(){document.removeEventListener("focusin",we)}function we(){ke.value=document.activeElement}const ya={class:"VPMenuLink"},Pa=["innerHTML"],La=p({__name:"VPMenuLink",props:{item:{}},setup(e){const{page:t}=L();return(n,a)=>(s(),u("div",ya,[k(E,{class:N({active:i(z)(i(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,Pa)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),te=g(La,[["__scopeId","data-v-35975db6"]]),Va={class:"VPMenuGroup"},Sa={key:0,class:"title"},Ta=p({__name:"VPMenuGroup",props:{text:{},items:{}},setup(e){return(t,n)=>(s(),u("div",Va,[e.text?(s(),u("p",Sa,M(e.text),1)):m("",!0),(s(!0),u(x,null,A(e.items,a=>(s(),u(x,null,["link"in a?(s(),_(te,{key:0,item:a},null,8,["item"])):m("",!0)],64))),256))]))}}),Na=g(Ta,[["__scopeId","data-v-69e747b5"]]),Ma={class:"VPMenu"},xa={key:0,class:"items"},Ia=p({__name:"VPMenu",props:{items:{}},setup(e){return(t,n)=>(s(),u("div",Ma,[e.items?(s(),u("div",xa,[(s(!0),u(x,null,A(e.items,a=>(s(),u(x,{key:JSON.stringify(a)},["link"in a?(s(),_(te,{key:0,item:a},null,8,["item"])):"component"in a?(s(),_(B(a.component),G({key:1,ref_for:!0},a.props),null,16)):(s(),_(Na,{key:2,text:a.text,items:a.items},null,8,["text","items"]))],64))),128))])):m("",!0),c(t.$slots,"default",{},void 0,!0)]))}}),wa=g(Ia,[["__scopeId","data-v-b98bc113"]]),Aa=["aria-expanded","aria-label"],Ca={key:0,class:"text"},Ha=["innerHTML"],Ba={key:1,class:"vpi-more-horizontal icon"},Ea={class:"menu"},Fa=p({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(e){const t=S(!1),n=S();ba({el:n,onBlur:a});function a(){t.value=!1}return(o,r)=>(s(),u("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:r[1]||(r[1]=l=>t.value=!0),onMouseleave:r[2]||(r[2]=l=>t.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":t.value,"aria-label":e.label,onClick:r[0]||(r[0]=l=>t.value=!t.value)},[e.button||e.icon?(s(),u("span",Ca,[e.icon?(s(),u("span",{key:0,class:N([e.icon,"option-icon"])},null,2)):m("",!0),e.button?(s(),u("span",{key:1,innerHTML:e.button},null,8,Ha)):m("",!0),r[3]||(r[3]=d("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(s(),u("span",Ba))],8,Aa),d("div",Ea,[k(wa,{items:e.items},{default:h(()=>[c(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),_e=g(Fa,[["__scopeId","data-v-cf11d7a2"]]),Da=["href","aria-label","innerHTML"],Oa=p({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(e){const t=e,n=S();U(async()=>{var r;await Le();const o=(r=n.value)==null?void 0:r.children[0];o instanceof HTMLElement&&o.className.startsWith("vpi-social-")&&(getComputedStyle(o).maskImage||getComputedStyle(o).webkitMaskImage)==="none"&&o.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${t.icon}.svg')`)});const a=y(()=>typeof t.icon=="object"?t.icon.svg:``);return(o,r)=>(s(),u("a",{ref_key:"el",ref:n,class:"VPSocialLink no-icon",href:e.link,"aria-label":e.ariaLabel??(typeof e.icon=="string"?e.icon:""),target:"_blank",rel:"noopener",innerHTML:a.value},null,8,Da))}}),Ga=g(Oa,[["__scopeId","data-v-bd121fe5"]]),Ua={class:"VPSocialLinks"},ja=p({__name:"VPSocialLinks",props:{links:{}},setup(e){return(t,n)=>(s(),u("div",Ua,[(s(!0),u(x,null,A(e.links,({link:a,icon:o,ariaLabel:r})=>(s(),_(Ga,{key:a,icon:o,link:a,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),be=g(ja,[["__scopeId","data-v-7bc22406"]]),za={key:0,class:"group translations"},Wa={class:"trans-title"},Ka={key:1,class:"group"},qa={class:"item appearance"},Ra={class:"label"},Ja={class:"appearance-action"},Xa={key:2,class:"group"},Ya={class:"item social-links"},Qa=p({__name:"VPNavBarExtra",setup(e){const{site:t,theme:n}=L(),{localeLinks:a,currentLang:o}=q({correspondingLink:!0}),r=y(()=>a.value.length&&o.value.label||t.value.appearance||n.value.socialLinks);return(l,v)=>r.value?(s(),_(_e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:h(()=>[i(a).length&&i(o).label?(s(),u("div",za,[d("p",Wa,M(i(o).label),1),(s(!0),u(x,null,A(i(a),f=>(s(),_(te,{key:f.link,item:f},null,8,["item"]))),128))])):m("",!0),i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(s(),u("div",Ka,[d("div",qa,[d("p",Ra,M(i(n).darkModeSwitchLabel||"Appearance"),1),d("div",Ja,[k(pe)])])])):m("",!0),i(n).socialLinks?(s(),u("div",Xa,[d("div",Ya,[k(be,{class:"social-links-list",links:i(n).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}}),Za=g(Qa,[["__scopeId","data-v-bb2aa2f0"]]),eo=["aria-expanded"],to=p({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(e){return(t,n)=>(s(),u("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:n[0]||(n[0]=a=>t.$emit("click"))},[...n[1]||(n[1]=[d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)])],10,eo))}}),no=g(to,[["__scopeId","data-v-e5dd9c1c"]]),ao=["innerHTML"],oo=p({__name:"VPNavBarMenuLink",props:{item:{}},setup(e){const{page:t}=L();return(n,a)=>(s(),_(E,{class:N({VPNavBarMenuLink:!0,active:i(z)(i(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,tabindex:"0"},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,ao)]),_:1},8,["class","href","target","rel","no-icon"]))}}),so=g(oo,[["__scopeId","data-v-e56f3d57"]]),io=p({__name:"VPNavBarMenuGroup",props:{item:{}},setup(e){const t=e,{page:n}=L(),a=r=>"component"in r?!1:"link"in r?z(n.value.relativePath,r.link,!!t.item.activeMatch):r.items.some(a),o=y(()=>a(t.item));return(r,l)=>(s(),_(_e,{class:N({VPNavBarMenuGroup:!0,active:i(z)(i(n).relativePath,e.item.activeMatch,!!e.item.activeMatch)||o.value}),button:e.item.text,items:e.item.items},null,8,["class","button","items"]))}}),ro={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},lo=p({__name:"VPNavBarMenu",setup(e){const{theme:t}=L();return(n,a)=>i(t).nav?(s(),u("nav",ro,[a[0]||(a[0]=d("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(s(!0),u(x,null,A(i(t).nav,o=>(s(),u(x,{key:JSON.stringify(o)},["link"in o?(s(),_(so,{key:0,item:o},null,8,["item"])):"component"in o?(s(),_(B(o.component),G({key:1,ref_for:!0},o.props),null,16)):(s(),_(io,{key:2,item:o},null,8,["item"]))],64))),128))])):m("",!0)}}),co=g(lo,[["__scopeId","data-v-dc692963"]]);function uo(e){const{localeIndex:t,theme:n}=L();function a(o){var I,w,C;const r=o.split("."),l=(I=n.value.search)==null?void 0:I.options,v=l&&typeof l=="object",f=v&&((C=(w=l.locales)==null?void 0:w[t.value])==null?void 0:C.translations)||null,$=v&&l.translations||null;let V=f,b=$,P=e;const T=r.pop();for(const H of r){let O=null;const K=P==null?void 0:P[H];K&&(O=P=K);const ne=b==null?void 0:b[H];ne&&(O=b=ne);const ae=V==null?void 0:V[H];ae&&(O=V=ae),K||(P=O),ne||(b=O),ae||(V=O)}return(V==null?void 0:V[T])??(b==null?void 0:b[T])??(P==null?void 0:P[T])??""}return a}const vo=["aria-label"],fo={class:"DocSearch-Button-Container"},ho={class:"DocSearch-Button-Placeholder"},ge=p({__name:"VPNavBarSearchButton",setup(e){const n=uo({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(a,o)=>(s(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(n)("button.buttonAriaLabel")},[d("span",fo,[o[0]||(o[0]=d("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),d("span",ho,M(i(n)("button.buttonText")),1)]),o[1]||(o[1]=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,vo))}}),mo={class:"VPNavBarSearch"},po={id:"local-search"},ko={key:1,id:"docsearch"},_o=p({__name:"VPNavBarSearch",setup(e){const t=Ge(()=>Ue(()=>import("./VPLocalSearchBox.DGnxHqzH.js"),__vite__mapDeps([0,1]))),n=()=>null,{theme:a}=L(),o=S(!1),r=S(!1);U(()=>{});function l(){o.value||(o.value=!0,setTimeout(v,16))}function v(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||v()},16)}function f(b){const P=b.target,T=P.tagName;return P.isContentEditable||T==="INPUT"||T==="SELECT"||T==="TEXTAREA"}const $=S(!1);ie("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),$.value=!0)}),ie("/",b=>{f(b)||(b.preventDefault(),$.value=!0)});const V="local";return(b,P)=>{var T;return s(),u("div",mo,[i(V)==="local"?(s(),u(x,{key:0},[$.value?(s(),_(i(t),{key:0,onClose:P[0]||(P[0]=I=>$.value=!1)})):m("",!0),d("div",po,[k(ge,{onClick:P[1]||(P[1]=I=>$.value=!0)})])],64)):i(V)==="algolia"?(s(),u(x,{key:1},[o.value?(s(),_(i(n),{key:0,algolia:((T=i(a).search)==null?void 0:T.options)??i(a).algolia,onVnodeBeforeMount:P[2]||(P[2]=I=>r.value=!0)},null,8,["algolia"])):m("",!0),r.value?m("",!0):(s(),u("div",ko,[k(ge,{onClick:l})]))],64)):m("",!0)])}}}),bo=p({__name:"VPNavBarSocialLinks",setup(e){const{theme:t}=L();return(n,a)=>i(t).socialLinks?(s(),_(be,{key:0,class:"VPNavBarSocialLinks",links:i(t).socialLinks},null,8,["links"])):m("",!0)}}),go=g(bo,[["__scopeId","data-v-0394ad82"]]),$o=["href","rel","target"],yo=["innerHTML"],Po={key:2},Lo=p({__name:"VPNavBarTitle",setup(e){const{site:t,theme:n}=L(),{hasSidebar:a}=D(),{currentLang:o}=q(),r=y(()=>{var f;return typeof n.value.logoLink=="string"?n.value.logoLink:(f=n.value.logoLink)==null?void 0:f.link}),l=y(()=>{var f;return typeof n.value.logoLink=="string"||(f=n.value.logoLink)==null?void 0:f.rel}),v=y(()=>{var f;return typeof n.value.logoLink=="string"||(f=n.value.logoLink)==null?void 0:f.target});return(f,$)=>(s(),u("div",{class:N(["VPNavBarTitle",{"has-sidebar":i(a)}])},[d("a",{class:"title",href:r.value??i(he)(i(o).link),rel:l.value,target:v.value},[c(f.$slots,"nav-bar-title-before",{},void 0,!0),i(n).logo?(s(),_(J,{key:0,class:"logo",image:i(n).logo},null,8,["image"])):m("",!0),i(n).siteTitle?(s(),u("span",{key:1,innerHTML:i(n).siteTitle},null,8,yo)):i(n).siteTitle===void 0?(s(),u("span",Po,M(i(t).title),1)):m("",!0),c(f.$slots,"nav-bar-title-after",{},void 0,!0)],8,$o)],2))}}),Vo=g(Lo,[["__scopeId","data-v-1168a8e4"]]),So={class:"items"},To={class:"title"},No=p({__name:"VPNavBarTranslations",setup(e){const{theme:t}=L(),{localeLinks:n,currentLang:a}=q({correspondingLink:!0});return(o,r)=>i(n).length&&i(a).label?(s(),_(_e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(t).langMenuLabel||"Change language"},{default:h(()=>[d("div",So,[d("p",To,M(i(a).label),1),(s(!0),u(x,null,A(i(n),l=>(s(),_(te,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}}),Mo=g(No,[["__scopeId","data-v-88af2de4"]]),xo={class:"wrapper"},Io={class:"container"},wo={class:"title"},Ao={class:"content"},Co={class:"content-body"},Ho=p({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(e){const t=e,{y:n}=Ve(),{hasSidebar:a}=D(),{frontmatter:o}=L(),r=S({});return fe(()=>{r.value={"has-sidebar":a.value,home:o.value.layout==="home",top:n.value===0,"screen-open":t.isScreenOpen}}),(l,v)=>(s(),u("div",{class:N(["VPNavBar",r.value])},[d("div",xo,[d("div",Io,[d("div",wo,[k(Vo,null,{"nav-bar-title-before":h(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",Ao,[d("div",Co,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),k(_o,{class:"search"}),k(co,{class:"menu"}),k(Mo,{class:"translations"}),k(_a,{class:"appearance"}),k(go,{class:"social-links"}),k(Za,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),k(no,{class:"hamburger",active:e.isScreenOpen,onClick:v[0]||(v[0]=f=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),v[1]||(v[1]=d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1))],2))}}),Bo=g(Ho,[["__scopeId","data-v-6aa21345"]]),Eo={key:0,class:"VPNavScreenAppearance"},Fo={class:"text"},Do=p({__name:"VPNavScreenAppearance",setup(e){const{site:t,theme:n}=L();return(a,o)=>i(t).appearance&&i(t).appearance!=="force-dark"&&i(t).appearance!=="force-auto"?(s(),u("div",Eo,[d("p",Fo,M(i(n).darkModeSwitchLabel||"Appearance"),1),k(pe)])):m("",!0)}}),Oo=g(Do,[["__scopeId","data-v-b44890b2"]]),Go=["innerHTML"],Uo=p({__name:"VPNavScreenMenuLink",props:{item:{}},setup(e){const t=Z("close-screen");return(n,a)=>(s(),_(E,{class:"VPNavScreenMenuLink",href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,onClick:i(t)},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,Go)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),jo=g(Uo,[["__scopeId","data-v-df37e6dd"]]),zo=["innerHTML"],Wo=p({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(e){const t=Z("close-screen");return(n,a)=>(s(),_(E,{class:"VPNavScreenMenuGroupLink",href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,onClick:i(t)},{default:h(()=>[d("span",{innerHTML:e.item.text},null,8,zo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Ae=g(Wo,[["__scopeId","data-v-3e9c20e4"]]),Ko={class:"VPNavScreenMenuGroupSection"},qo={key:0,class:"title"},Ro=p({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(e){return(t,n)=>(s(),u("div",Ko,[e.text?(s(),u("p",qo,M(e.text),1)):m("",!0),(s(!0),u(x,null,A(e.items,a=>(s(),_(Ae,{key:a.text,item:a},null,8,["item"]))),128))]))}}),Jo=g(Ro,[["__scopeId","data-v-8133b170"]]),Xo=["aria-controls","aria-expanded"],Yo=["innerHTML"],Qo=["id"],Zo={key:0,class:"item"},es={key:1,class:"item"},ts={key:2,class:"group"},ns=p({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(e){const t=e,n=S(!1),a=y(()=>`NavScreenGroup-${t.text.replace(" ","-").toLowerCase()}`);function o(){n.value=!n.value}return(r,l)=>(s(),u("div",{class:N(["VPNavScreenMenuGroup",{open:n.value}])},[d("button",{class:"button","aria-controls":a.value,"aria-expanded":n.value,onClick:o},[d("span",{class:"button-text",innerHTML:e.text},null,8,Yo),l[0]||(l[0]=d("span",{class:"vpi-plus button-icon"},null,-1))],8,Xo),d("div",{id:a.value,class:"items"},[(s(!0),u(x,null,A(e.items,v=>(s(),u(x,{key:JSON.stringify(v)},["link"in v?(s(),u("div",Zo,[k(Ae,{item:v},null,8,["item"])])):"component"in v?(s(),u("div",es,[(s(),_(B(v.component),G({ref_for:!0},v.props,{"screen-menu":""}),null,16))])):(s(),u("div",ts,[k(Jo,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,Qo)],2))}}),as=g(ns,[["__scopeId","data-v-b9ab8c58"]]),os={key:0,class:"VPNavScreenMenu"},ss=p({__name:"VPNavScreenMenu",setup(e){const{theme:t}=L();return(n,a)=>i(t).nav?(s(),u("nav",os,[(s(!0),u(x,null,A(i(t).nav,o=>(s(),u(x,{key:JSON.stringify(o)},["link"in o?(s(),_(jo,{key:0,item:o},null,8,["item"])):"component"in o?(s(),_(B(o.component),G({key:1,ref_for:!0},o.props,{"screen-menu":""}),null,16)):(s(),_(as,{key:2,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),is=p({__name:"VPNavScreenSocialLinks",setup(e){const{theme:t}=L();return(n,a)=>i(t).socialLinks?(s(),_(be,{key:0,class:"VPNavScreenSocialLinks",links:i(t).socialLinks},null,8,["links"])):m("",!0)}}),rs={class:"list"},ls=p({__name:"VPNavScreenTranslations",setup(e){const{localeLinks:t,currentLang:n}=q({correspondingLink:!0}),a=S(!1);function o(){a.value=!a.value}return(r,l)=>i(t).length&&i(n).label?(s(),u("div",{key:0,class:N(["VPNavScreenTranslations",{open:a.value}])},[d("button",{class:"title",onClick:o},[l[0]||(l[0]=d("span",{class:"vpi-languages icon lang"},null,-1)),j(" "+M(i(n).label)+" ",1),l[1]||(l[1]=d("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),d("ul",rs,[(s(!0),u(x,null,A(i(t),v=>(s(),u("li",{key:v.link,class:"item"},[k(E,{class:"link",href:v.link},{default:h(()=>[j(M(v.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}}),cs=g(ls,[["__scopeId","data-v-858fe1a4"]]),us={class:"container"},ds=p({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(e){const t=S(null),n=Se(ee?document.body:null);return(a,o)=>(s(),_(ue,{name:"fade",onEnter:o[0]||(o[0]=r=>n.value=!0),onAfterLeave:o[1]||(o[1]=r=>n.value=!1)},{default:h(()=>[e.open?(s(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:t,id:"VPNavScreen"},[d("div",us,[c(a.$slots,"nav-screen-content-before",{},void 0,!0),k(ss,{class:"menu"}),k(cs,{class:"translations"}),k(Oo,{class:"appearance"}),k(is,{class:"social-links"}),c(a.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}}),vs=g(ds,[["__scopeId","data-v-f2779853"]]),fs={key:0,class:"VPNav"},hs=p({__name:"VPNav",setup(e){const{isScreenOpen:t,closeScreen:n,toggleScreen:a}=la(),{frontmatter:o}=L(),r=y(()=>o.value.navbar!==!1);return Te("close-screen",n),X(()=>{ee&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(l,v)=>r.value?(s(),u("header",fs,[k(Bo,{"is-screen-open":i(t),onToggleScreen:i(a)},{"nav-bar-title-before":h(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":h(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":h(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(vs,{open:i(t)},{"nav-screen-content-before":h(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":h(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):m("",!0)}}),ms=g(hs,[["__scopeId","data-v-ae24b3ad"]]),ps=["role","tabindex"],ks={key:1,class:"items"},_s=p({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(e){const t=e,{collapsed:n,collapsible:a,isLink:o,isActiveLink:r,hasActiveLink:l,hasChildren:v,toggle:f}=dt(y(()=>t.item)),$=y(()=>v.value?"section":"div"),V=y(()=>o.value?"a":"div"),b=y(()=>v.value?t.depth+2===7?"p":`h${t.depth+2}`:"p"),P=y(()=>o.value?void 0:"button"),T=y(()=>[[`level-${t.depth}`],{collapsible:a.value},{collapsed:n.value},{"is-link":o.value},{"is-active":r.value},{"has-active":l.value}]);function I(C){"key"in C&&C.key!=="Enter"||!t.item.link&&f()}function w(){t.item.link&&f()}return(C,H)=>{const O=W("VPSidebarItem",!0);return s(),_(B($.value),{class:N(["VPSidebarItem",T.value])},{default:h(()=>[e.item.text?(s(),u("div",G({key:0,class:"item",role:P.value},je(e.item.items?{click:I,keydown:I}:{},!0),{tabindex:e.item.items&&0}),[H[1]||(H[1]=d("div",{class:"indicator"},null,-1)),e.item.link?(s(),_(E,{key:0,tag:V.value,class:"link",href:e.item.link,rel:e.item.rel,target:e.item.target},{default:h(()=>[(s(),_(B(b.value),{class:"text",innerHTML:e.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(s(),_(B(b.value),{key:1,class:"text",innerHTML:e.item.text},null,8,["innerHTML"])),e.item.collapsed!=null&&e.item.items&&e.item.items.length?(s(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:w,onKeydown:ze(w,["enter"]),tabindex:"0"},[...H[0]||(H[0]=[d("span",{class:"vpi-chevron-right caret-icon"},null,-1)])],32)):m("",!0)],16,ps)):m("",!0),e.item.items&&e.item.items.length?(s(),u("div",ks,[e.depth<5?(s(!0),u(x,{key:0},A(e.item.items,K=>(s(),_(O,{key:K.text,item:K,depth:e.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}}),bs=g(_s,[["__scopeId","data-v-b3fd67f8"]]),gs=p({__name:"VPSidebarGroup",props:{items:{}},setup(e){const t=S(!0);let n=null;return U(()=>{n=setTimeout(()=>{n=null,t.value=!1},300)}),We(()=>{n!=null&&(clearTimeout(n),n=null)}),(a,o)=>(s(!0),u(x,null,A(e.items,r=>(s(),u("div",{key:r.text,class:N(["group",{"no-transition":t.value}])},[k(bs,{item:r,depth:0},null,8,["item"])],2))),128))}}),$s=g(gs,[["__scopeId","data-v-c40bc020"]]),ys={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Ps=p({__name:"VPSidebar",props:{open:{type:Boolean}},setup(e){const{sidebarGroups:t,hasSidebar:n}=D(),a=e,o=S(null),r=Se(ee?document.body:null);F([a,o],()=>{var v;a.open?(r.value=!0,(v=o.value)==null||v.focus()):r.value=!1},{immediate:!0,flush:"post"});const l=S(0);return F(t,()=>{l.value+=1},{deep:!0}),(v,f)=>i(n)?(s(),u("aside",{key:0,class:N(["VPSidebar",{open:e.open}]),ref_key:"navEl",ref:o,onClick:f[0]||(f[0]=Ke(()=>{},["stop"]))},[f[2]||(f[2]=d("div",{class:"curtain"},null,-1)),d("nav",ys,[f[1]||(f[1]=d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),c(v.$slots,"sidebar-nav-before",{},void 0,!0),(s(),_($s,{items:i(t),key:l.value},null,8,["items"])),c(v.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}}),Ls=g(Ps,[["__scopeId","data-v-319d5ca6"]]),Vs=p({__name:"VPSkipLink",setup(e){const{theme:t}=L(),n=Q(),a=S();F(()=>n.path,()=>a.value.focus());function o({target:r}){const l=document.getElementById(decodeURIComponent(r.hash).slice(1));if(l){const v=()=>{l.removeAttribute("tabindex"),l.removeEventListener("blur",v)};l.setAttribute("tabindex","-1"),l.addEventListener("blur",v),l.focus(),window.scrollTo(0,0)}}return(r,l)=>(s(),u(x,null,[d("span",{ref_key:"backToTop",ref:a,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o},M(i(t).skipToContentLabel||"Skip to content"),1)],64))}}),Ss=g(Vs,[["__scopeId","data-v-0b0ada53"]]),Ts=p({__name:"Layout",setup(e){const{isOpen:t,open:n,close:a}=D(),o=Q();F(()=>o.path,a),ut(t,a);const{frontmatter:r}=L(),l=qe(),v=y(()=>!!l["home-hero-image"]);return Te("hero-image-slot-exists",v),(f,$)=>{const V=W("Content");return i(r).layout!==!1?(s(),u("div",{key:0,class:N(["Layout",i(r).pageClass])},[c(f.$slots,"layout-top",{},void 0,!0),k(Ss),k(Ye,{class:"backdrop",show:i(t),onClick:i(a)},null,8,["show","onClick"]),k(ms,null,{"nav-bar-title-before":h(()=>[c(f.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[c(f.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":h(()=>[c(f.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":h(()=>[c(f.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":h(()=>[c(f.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":h(()=>[c(f.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(ra,{open:i(t),onOpenMenu:i(n)},null,8,["open","onOpenMenu"]),k(Ls,{open:i(t)},{"sidebar-nav-before":h(()=>[c(f.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":h(()=>[c(f.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(Wn,null,{"page-top":h(()=>[c(f.$slots,"page-top",{},void 0,!0)]),"page-bottom":h(()=>[c(f.$slots,"page-bottom",{},void 0,!0)]),"not-found":h(()=>[c(f.$slots,"not-found",{},void 0,!0)]),"home-hero-before":h(()=>[c(f.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":h(()=>[c(f.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[c(f.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[c(f.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[c(f.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[c(f.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":h(()=>[c(f.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":h(()=>[c(f.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":h(()=>[c(f.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":h(()=>[c(f.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":h(()=>[c(f.$slots,"doc-before",{},void 0,!0)]),"doc-after":h(()=>[c(f.$slots,"doc-after",{},void 0,!0)]),"doc-top":h(()=>[c(f.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":h(()=>[c(f.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":h(()=>[c(f.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":h(()=>[c(f.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":h(()=>[c(f.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[c(f.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[c(f.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[c(f.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(Xn),c(f.$slots,"layout-bottom",{},void 0,!0)],2)):(s(),_(V,{key:1}))}}}),Ns=g(Ts,[["__scopeId","data-v-5d98c3a5"]]),xs={Layout:Ns,enhanceApp:({app:e})=>{e.component("Badge",Re)}};export{uo as c,xs as t,L as u}; diff --git a/docs/v26.5.0/assets/cucumber.md.B5iBKzmw.js b/docs/v26.5.0/assets/cucumber.md.CPJj3-i4.js similarity index 98% rename from docs/v26.5.0/assets/cucumber.md.B5iBKzmw.js rename to docs/v26.5.0/assets/cucumber.md.CPJj3-i4.js index 21343dc..0d773b2 100644 --- a/docs/v26.5.0/assets/cucumber.md.B5iBKzmw.js +++ b/docs/v26.5.0/assets/cucumber.md.CPJj3-i4.js @@ -1 +1 @@ -import{_ as e,o as a,c as d,ag as s}from"./chunks/framework.C2NLiVii.js";const p=JSON.parse('{"title":"Cucumber","description":"","frontmatter":{},"headers":[],"relativePath":"cucumber.md","filePath":"cucumber.md"}'),o={name:"cucumber.md"};function i(r,t,l,n,c,h){return a(),d("div",null,[...t[0]||(t[0]=[s('

Cucumber

This documentation describes the technical aspects of our cucumber test suite.

tl;dr

Run the Cucumber tests with:

bash
$ npm test

Single OSRM Configuration

An OSRM configuration consists of a routing algorithm and a data load method. OSRM currently supports the routing algorithms:

  • ch (Contraction Hierarchy), and
  • mld (Multi-Level-Dijkstra)

and the data load methods:

  • directly (load the files into memory),
  • mmap (use memory mapped files), and
  • datastore (use shared memory).

To test all scenarios with a single OSRM configuration, say:

bash
$ npx cucumber-js -p home -p mld -p mmap --parallel 8 --fail-fast

Explanations follow:

Profiles

Profiles are chosen with the -p commandline argument. Cucumber profiles allow you to change multiple configuration items with just one commandline argument. If you set more than one profile they are all merged into one configuration.

Note: Cucumber profiles should not be confused with OSRM profiles. Cucumber profiles are defined in cucumber.mjs. OSRM profiles reside in the profiles/*.lua files.

Our implementation offers following stock profiles. You should always use one base profile followed by zero or more additional profiles.

Name
homeBase profile to use on a developer machine
githubBase profile to use on the github CI server
chAdditional profile that selects the CH algorithm
mldAdditional profile that selects the MLD algorithm
mmapAdditional profile that selects the mmap data load method
directlyAdditional profile that selects the directly data load method
datastoreAdditional profile that selects the datastore data load method
stressAdditional profile that selects only @stress tests
todoAdditional profile that selects only @todo tests
allAdditional profile that selects all tests

Arguments

Here is a description of all arguments you can pass to Cucumber. The interesting ones probably are: --fail-fast, --format, --parallel, and --tags.

Note: when using --parallel N make sure there are N contiguous free ports at the configured port number (eg. at ports 5000--5000+N).

All OSRM Configurations

We provide a shortcut to run all 6 configurations:

bash
$ npm test

This is how the tests are run on the CI server. You can pass the same arguments as mentioned above.

Cache

To speed up subsequent runs with the same parameters, the files generated by Cucumber and the by the OSRM extraction chain are held in a cache directory. This cache is located by default in test/cache and should be cleaned periodically:

bash
$ rm -rf test/cache

Configuration

The whole configuration is done in cucumber.mjs. You can either edit worldParameters in cucumber.mjs or use environment variables to override single defaults.

worldParametersEnvironment VariableDefaults to
CUCUMBER_TIMEOUT5000Scenario timeout in ms.
httpTimeoutCUCUMBER_HTTP_TIMEOUT2000HTTP timeout in ms.
testPathCUCUMBER_TEST_PATHtestThe test directory
profilesPathCUCUMBER_PROFILES_PATHprofilesThe profiles directory
logsPathCUCUMBER_LOGS_PATHtest/logsThe logs directory
cachePathCUCUMBER_CACHE_PATHtest/cacheThe cache directory
buildPathOSRM_BUILD_DIRbuildPath to the binaries
loadMethodOSRM_LOAD_METHODdatastoreData load method
algorithmOSRM_ALGORITHMchRouting algorithm
ipOSRM_IP127.0.0.1IP Address
portOSRM_PORT5000IP Port

The default Cucumber timeout can be changed by setting the environment variable CUCUMBER_TIMEOUT. This is discouraged, because the default timeout of 5 seconds is plenty for the problem sizes we are dealing with. The probable reasons for a test timing out are that osrm-routed died or that sync between osrm-datastore and osrm-routed was lost.

Other environment variables

OSRM_RASTER_SOURCE is set by 'Given the raster source' and is supposed to be read back in your profiles/*.lua profile by os.getenv('OSRM_RASTER_SOURCE').

OSRM_PROFILE See: Pull Request #4516

Tags

Single scenarios or whole feature files can be tagged. Tag names can be selected arbitrarily although it is best to conform to the tags already used. Eg. the tag @guidance can be used to run only those tests related to the guidance feature:

bash
$ npm test -- --tags @guidance

We also support following special tags:

TagA scenario thus tagged ...
@isolatedwill not run while any other scenario is running in parallel
@with_(datastore|directly|mmap)will be executed iff the load method matches
@no_(datastore|directly|mmap)will be executed unless the load method matches
@with_(ch|mld)will be executed iff the algorithm matches
@no_(ch|mld)will be executed unless the algorithm matches
@with_(linux|darwin|win32)will be executed iff the OS matches
@no_(linux|darwin|win32)will be executed unless the OS matches

A test that calls osrm-datastore --spring-clean should not run concurrently with any other test, thus the tag @isolated should be applied. A test that runs or kills osrm-routed should not run while testing the datastore load method, and thus should be labeled with the tag @no_datastore.

',42)])])}const m=e(o,[["render",i]]);export{p as __pageData,m as default}; +import{_ as e,o as a,c as d,ag as s}from"./chunks/framework.K54bclBu.js";const p=JSON.parse('{"title":"Cucumber","description":"","frontmatter":{},"headers":[],"relativePath":"cucumber.md","filePath":"cucumber.md"}'),o={name:"cucumber.md"};function i(r,t,l,n,c,h){return a(),d("div",null,[...t[0]||(t[0]=[s('

Cucumber

This documentation describes the technical aspects of our cucumber test suite.

tl;dr

Run the Cucumber tests with:

bash
$ npm test

Single OSRM Configuration

An OSRM configuration consists of a routing algorithm and a data load method. OSRM currently supports the routing algorithms:

  • ch (Contraction Hierarchy), and
  • mld (Multi-Level-Dijkstra)

and the data load methods:

  • directly (load the files into memory),
  • mmap (use memory mapped files), and
  • datastore (use shared memory).

To test all scenarios with a single OSRM configuration, say:

bash
$ npx cucumber-js -p home -p mld -p mmap --parallel 8 --fail-fast

Explanations follow:

Profiles

Profiles are chosen with the -p commandline argument. Cucumber profiles allow you to change multiple configuration items with just one commandline argument. If you set more than one profile they are all merged into one configuration.

Note: Cucumber profiles should not be confused with OSRM profiles. Cucumber profiles are defined in cucumber.mjs. OSRM profiles reside in the profiles/*.lua files.

Our implementation offers following stock profiles. You should always use one base profile followed by zero or more additional profiles.

Name
homeBase profile to use on a developer machine
githubBase profile to use on the github CI server
chAdditional profile that selects the CH algorithm
mldAdditional profile that selects the MLD algorithm
mmapAdditional profile that selects the mmap data load method
directlyAdditional profile that selects the directly data load method
datastoreAdditional profile that selects the datastore data load method
stressAdditional profile that selects only @stress tests
todoAdditional profile that selects only @todo tests
allAdditional profile that selects all tests

Arguments

Here is a description of all arguments you can pass to Cucumber. The interesting ones probably are: --fail-fast, --format, --parallel, and --tags.

Note: when using --parallel N make sure there are N contiguous free ports at the configured port number (eg. at ports 5000--5000+N).

All OSRM Configurations

We provide a shortcut to run all 6 configurations:

bash
$ npm test

This is how the tests are run on the CI server. You can pass the same arguments as mentioned above.

Cache

To speed up subsequent runs with the same parameters, the files generated by Cucumber and the by the OSRM extraction chain are held in a cache directory. This cache is located by default in test/cache and should be cleaned periodically:

bash
$ rm -rf test/cache

Configuration

The whole configuration is done in cucumber.mjs. You can either edit worldParameters in cucumber.mjs or use environment variables to override single defaults.

worldParametersEnvironment VariableDefaults to
CUCUMBER_TIMEOUT5000Scenario timeout in ms.
httpTimeoutCUCUMBER_HTTP_TIMEOUT2000HTTP timeout in ms.
testPathCUCUMBER_TEST_PATHtestThe test directory
profilesPathCUCUMBER_PROFILES_PATHprofilesThe profiles directory
logsPathCUCUMBER_LOGS_PATHtest/logsThe logs directory
cachePathCUCUMBER_CACHE_PATHtest/cacheThe cache directory
buildPathOSRM_BUILD_DIRbuildPath to the binaries
loadMethodOSRM_LOAD_METHODdatastoreData load method
algorithmOSRM_ALGORITHMchRouting algorithm
ipOSRM_IP127.0.0.1IP Address
portOSRM_PORT5000IP Port

The default Cucumber timeout can be changed by setting the environment variable CUCUMBER_TIMEOUT. This is discouraged, because the default timeout of 5 seconds is plenty for the problem sizes we are dealing with. The probable reasons for a test timing out are that osrm-routed died or that sync between osrm-datastore and osrm-routed was lost.

Other environment variables

OSRM_RASTER_SOURCE is set by 'Given the raster source' and is supposed to be read back in your profiles/*.lua profile by os.getenv('OSRM_RASTER_SOURCE').

OSRM_PROFILE See: Pull Request #4516

Tags

Single scenarios or whole feature files can be tagged. Tag names can be selected arbitrarily although it is best to conform to the tags already used. Eg. the tag @guidance can be used to run only those tests related to the guidance feature:

bash
$ npm test -- --tags @guidance

We also support following special tags:

TagA scenario thus tagged ...
@isolatedwill not run while any other scenario is running in parallel
@with_(datastore|directly|mmap)will be executed iff the load method matches
@no_(datastore|directly|mmap)will be executed unless the load method matches
@with_(ch|mld)will be executed iff the algorithm matches
@no_(ch|mld)will be executed unless the algorithm matches
@with_(linux|darwin|win32)will be executed iff the OS matches
@no_(linux|darwin|win32)will be executed unless the OS matches

A test that calls osrm-datastore --spring-clean should not run concurrently with any other test, thus the tag @isolated should be applied. A test that runs or kills osrm-routed should not run while testing the datastore load method, and thus should be labeled with the tag @no_datastore.

',42)])])}const m=e(o,[["render",i]]);export{p as __pageData,m as default}; diff --git a/docs/v26.5.0/assets/cucumber.md.B5iBKzmw.lean.js b/docs/v26.5.0/assets/cucumber.md.CPJj3-i4.lean.js similarity index 66% rename from docs/v26.5.0/assets/cucumber.md.B5iBKzmw.lean.js rename to docs/v26.5.0/assets/cucumber.md.CPJj3-i4.lean.js index 76505d4..37a0793 100644 --- a/docs/v26.5.0/assets/cucumber.md.B5iBKzmw.lean.js +++ b/docs/v26.5.0/assets/cucumber.md.CPJj3-i4.lean.js @@ -1 +1 @@ -import{_ as e,o as a,c as d,ag as s}from"./chunks/framework.C2NLiVii.js";const p=JSON.parse('{"title":"Cucumber","description":"","frontmatter":{},"headers":[],"relativePath":"cucumber.md","filePath":"cucumber.md"}'),o={name:"cucumber.md"};function i(r,t,l,n,c,h){return a(),d("div",null,[...t[0]||(t[0]=[s("",42)])])}const m=e(o,[["render",i]]);export{p as __pageData,m as default}; +import{_ as e,o as a,c as d,ag as s}from"./chunks/framework.K54bclBu.js";const p=JSON.parse('{"title":"Cucumber","description":"","frontmatter":{},"headers":[],"relativePath":"cucumber.md","filePath":"cucumber.md"}'),o={name:"cucumber.md"};function i(r,t,l,n,c,h){return a(),d("div",null,[...t[0]||(t[0]=[s("",42)])])}const m=e(o,[["render",i]]);export{p as __pageData,m as default}; diff --git a/docs/v26.5.0/assets/developing.md.CHbv2cLk.js b/docs/v26.5.0/assets/developing.md.DuNcRcq_.js similarity index 97% rename from docs/v26.5.0/assets/developing.md.CHbv2cLk.js rename to docs/v26.5.0/assets/developing.md.DuNcRcq_.js index fbeb9f1..ae74852 100644 --- a/docs/v26.5.0/assets/developing.md.CHbv2cLk.js +++ b/docs/v26.5.0/assets/developing.md.DuNcRcq_.js @@ -1 +1 @@ -import{_ as o,o as t,c as i,ag as a}from"./chunks/framework.C2NLiVii.js";const p=JSON.parse('{"title":"Developing / Debugging guidance code","description":"","frontmatter":{},"headers":[],"relativePath":"developing.md","filePath":"developing.md"}'),n={name:"developing.md"};function r(d,e,g,s,c,u){return t(),i("div",null,[...e[0]||(e[0]=[a('

Developing / Debugging guidance code

When changing guidance code, it is easy to introduce problems somewhere in the network. To get a better feeling of how your changes impact the OSRM experience, we offer ways of generating geojson output to inspect (e.g. with Mapbox Studio). When you do changes, make sure to inspect a few areas for the impact of the changes.

How to use GeoJson-Debugging

This is a short guide to describe usage of our GeoJson debug logging mechanism. It is synchronized to guarantee thread-safe logging.

Outputting into a single file

To use it, the inclusion of geojson_debug_logger.hpp geojson_debug_policies.hpp from the util directory is required.

Geojson debugging requires a few simple steps to output data into a feature collection.

  • Create a Scoped Guard that lives through the process and provide it with all required datastructures (it needs to span the lifetime of all your logging efforts)
  • At the location of the output, simply call Write with your own parameters.

A guard (ScopedGeojsonLoggerGuard) requires a logging policy. Per default we provide a way of printing out node-ids as coordinates.

The initialisation to do so looks like this: util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", data-for-conversion); Make sure to give the guard a name, so it actually gets a lifetime.

The field data-for-conversion can be an arbitrary long set of features and needs to match the parameters used for constructing our policy (in this case util::NodeIdVectorToLineString).

The policy itself offers a operator() accepting a vector of NodeID.

For outputting data into our file (debug.geojson), we simply need to call the matching logging routine of the guard: util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString>::Write(list_of_node_ids); (or guard.Write(list_of_node_ids) if you created an instance).

Possible Scopeguard Location

Think of the scopeguard as you would do of any reference. If you want to access logging during a call, the guard object must be alive and valid.

As an example: a good location to create a scopeguard to log decisions in the edge-based-graph-factory would be right before we run it (here). If you put util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", node_coordinate_vector); at that location, you can then print util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString>::Write(list_of_node_ids); anywhere within the edge-based-graph-factory.

This location would enable calls for all guidance related pre-processing which is called in the edge-based-graph-factory. Logging any turn-handler decisions, for example, would now be possible.

Limitations

GeoJson debugging requires a single GeoJsonGuard (ScopedGeojsonLoggerGuard) for each desired output file. For each set of template parameters, only the most recent guard will actually produce output.

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", data-for-conversion);

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug-2.geojson", data-for-conversion);

Will not provide a way to write into two files, but only debug-2 will actually contain features.

We cannot nest these calls.

If we want to use the same policy for multiple files, we need to use different template parameters both for the logger and the guard.

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,0> geojson_guard( "debug.geojson", data-for-conversion);

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,1> geojson_guard( "debug-2.geojson", data-for-conversion);

as well as,

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,0>::Write(list_of_node_ids);

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,1>::Write(list_of_node_ids);

',29)])])}const h=o(n,[["render",r]]);export{p as __pageData,h as default}; +import{_ as o,o as t,c as i,ag as a}from"./chunks/framework.K54bclBu.js";const p=JSON.parse('{"title":"Developing / Debugging guidance code","description":"","frontmatter":{},"headers":[],"relativePath":"developing.md","filePath":"developing.md"}'),n={name:"developing.md"};function r(d,e,g,s,c,u){return t(),i("div",null,[...e[0]||(e[0]=[a('

Developing / Debugging guidance code

When changing guidance code, it is easy to introduce problems somewhere in the network. To get a better feeling of how your changes impact the OSRM experience, we offer ways of generating geojson output to inspect (e.g. with Mapbox Studio). When you do changes, make sure to inspect a few areas for the impact of the changes.

How to use GeoJson-Debugging

This is a short guide to describe usage of our GeoJson debug logging mechanism. It is synchronized to guarantee thread-safe logging.

Outputting into a single file

To use it, the inclusion of geojson_debug_logger.hpp geojson_debug_policies.hpp from the util directory is required.

Geojson debugging requires a few simple steps to output data into a feature collection.

  • Create a Scoped Guard that lives through the process and provide it with all required datastructures (it needs to span the lifetime of all your logging efforts)
  • At the location of the output, simply call Write with your own parameters.

A guard (ScopedGeojsonLoggerGuard) requires a logging policy. Per default we provide a way of printing out node-ids as coordinates.

The initialisation to do so looks like this: util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", data-for-conversion); Make sure to give the guard a name, so it actually gets a lifetime.

The field data-for-conversion can be an arbitrary long set of features and needs to match the parameters used for constructing our policy (in this case util::NodeIdVectorToLineString).

The policy itself offers a operator() accepting a vector of NodeID.

For outputting data into our file (debug.geojson), we simply need to call the matching logging routine of the guard: util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString>::Write(list_of_node_ids); (or guard.Write(list_of_node_ids) if you created an instance).

Possible Scopeguard Location

Think of the scopeguard as you would do of any reference. If you want to access logging during a call, the guard object must be alive and valid.

As an example: a good location to create a scopeguard to log decisions in the edge-based-graph-factory would be right before we run it (here). If you put util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", node_coordinate_vector); at that location, you can then print util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString>::Write(list_of_node_ids); anywhere within the edge-based-graph-factory.

This location would enable calls for all guidance related pre-processing which is called in the edge-based-graph-factory. Logging any turn-handler decisions, for example, would now be possible.

Limitations

GeoJson debugging requires a single GeoJsonGuard (ScopedGeojsonLoggerGuard) for each desired output file. For each set of template parameters, only the most recent guard will actually produce output.

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", data-for-conversion);

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug-2.geojson", data-for-conversion);

Will not provide a way to write into two files, but only debug-2 will actually contain features.

We cannot nest these calls.

If we want to use the same policy for multiple files, we need to use different template parameters both for the logger and the guard.

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,0> geojson_guard( "debug.geojson", data-for-conversion);

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,1> geojson_guard( "debug-2.geojson", data-for-conversion);

as well as,

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,0>::Write(list_of_node_ids);

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,1>::Write(list_of_node_ids);

',29)])])}const h=o(n,[["render",r]]);export{p as __pageData,h as default}; diff --git a/docs/v26.5.0/assets/developing.md.CHbv2cLk.lean.js b/docs/v26.5.0/assets/developing.md.DuNcRcq_.lean.js similarity index 69% rename from docs/v26.5.0/assets/developing.md.CHbv2cLk.lean.js rename to docs/v26.5.0/assets/developing.md.DuNcRcq_.lean.js index 88b62f6..4fc7bf4 100644 --- a/docs/v26.5.0/assets/developing.md.CHbv2cLk.lean.js +++ b/docs/v26.5.0/assets/developing.md.DuNcRcq_.lean.js @@ -1 +1 @@ -import{_ as o,o as t,c as i,ag as a}from"./chunks/framework.C2NLiVii.js";const p=JSON.parse('{"title":"Developing / Debugging guidance code","description":"","frontmatter":{},"headers":[],"relativePath":"developing.md","filePath":"developing.md"}'),n={name:"developing.md"};function r(d,e,g,s,c,u){return t(),i("div",null,[...e[0]||(e[0]=[a("",29)])])}const h=o(n,[["render",r]]);export{p as __pageData,h as default}; +import{_ as o,o as t,c as i,ag as a}from"./chunks/framework.K54bclBu.js";const p=JSON.parse('{"title":"Developing / Debugging guidance code","description":"","frontmatter":{},"headers":[],"relativePath":"developing.md","filePath":"developing.md"}'),n={name:"developing.md"};function r(d,e,g,s,c,u){return t(),i("div",null,[...e[0]||(e[0]=[a("",29)])])}const h=o(n,[["render",r]]);export{p as __pageData,h as default}; diff --git a/docs/v26.5.0/assets/http.md.B98BbSjI.js b/docs/v26.5.0/assets/http.md.B26Skzz9.js similarity index 95% rename from docs/v26.5.0/assets/http.md.B98BbSjI.js rename to docs/v26.5.0/assets/http.md.B26Skzz9.js index 6113305..d08e9c7 100644 --- a/docs/v26.5.0/assets/http.md.B98BbSjI.js +++ b/docs/v26.5.0/assets/http.md.B26Skzz9.js @@ -1,4 +1,4 @@ -import{_ as t,o as s,c as i,ag as a}from"./chunks/framework.C2NLiVii.js";const n="/assets/example-tile-response.Edf9KoW6.png",u=JSON.parse('{"title":"OSRM HTTP server","description":"","frontmatter":{},"headers":[],"relativePath":"http.md","filePath":"http.md"}'),o={name:"http.md"};function d(l,e,r,h,p,c){return s(),i("div",null,[...e[0]||(e[0]=[a(`

OSRM HTTP server

The built-in HTTP server is a basic HTTP/1.0 server that supports a 'keep-alive' extension. Persistent connections are limited to 512 requests per connection and allow no more than 5 seconds between requests.

General options

All OSRM HTTP requests use a common structure.

The following syntax applies to all services, except as noted.

Requests

GET
/{service}/{version}/{profile}/{coordinates}[.{format}]?option=value&option=value
ParameterDescription
serviceOne of the following values: route, nearest, table, match, trip, tile
versionVersion of the protocol implemented by the service. v1 for all OSRM 5.x installations
profileMode of transportation, is determined statically by the Lua profile that is used to prepare the data using osrm-extract. Typically car, bike or foot if using one of the supplied profiles.
coordinatesString of format {longitude},{latitude};{longitude},{latitude}[;{longitude},{latitude} ...] or polyline({polyline}) or polyline6({polyline6}).
formatjson or flatbuffers. This parameter is optional and defaults to json.

Passing any option=value is optional. polyline follows Google's polyline format with precision 5 by default and can be generated using this package.

To pass parameters to each location some options support an array-like encoding:

Request options

OptionValuesDescription
bearings{bearing};{bearing}[;{bearing} ...]Limits the search to segments with given bearing in degrees towards true north in a clockwise direction.
radiuses{radius};{radius}[;{radius} ...]Limits the search to given radius in meters.
generate_hintstrue (default), falseAdds a Hint to the response which can be used in subsequent requests, see hints parameter.
hints{hint};{hint}[;{hint} ...]Hint from previous request to derive position in street network.
approaches{approach};{approach}[;{approach} ...]Restrict the direction on the road network at a waypoint, relative to the input coordinate.
exclude{class}[,{class}]Additive list of classes to avoid, the order does not matter.
snappingdefault (default), anyDefault snapping avoids is_startpoint (see profile) edges, any will snap to any edge in the graph
skip_waypointstrue, false (default)Removes waypoints from the response. Waypoints are still calculated, but not serialized. Could be useful in case you are interested in some other part of the response and do not want to transfer waste data.

Where the elements follow the following format:

ElementValues
bearing{value},{range} integer 0 .. 360,integer 0 .. 180
radiusdouble >= 0 or unlimited (default)
hintBase64 string
approachcurb, opposite or unrestricted (default)
classA class name determined by the profile or none.
{option}={element};{element}[;{element} ... ]

The number of elements must match exactly the number of locations (except for generate_hints and exclude). If you don't want to pass a value but instead use the default you can pass an empty element.

Example: 2nd location uses the default value for option:

{option}={element};;{element}

Example Requests

bash
# Query on Berlin with three coordinates:
+import{_ as t,o as s,c as i,ag as a}from"./chunks/framework.K54bclBu.js";const n="/docs/v26.5.0/assets/example-tile-response.Edf9KoW6.png",u=JSON.parse('{"title":"OSRM HTTP server","description":"","frontmatter":{},"headers":[],"relativePath":"http.md","filePath":"http.md"}'),o={name:"http.md"};function d(l,e,r,h,p,c){return s(),i("div",null,[...e[0]||(e[0]=[a(`

OSRM HTTP server

The built-in HTTP server is a basic HTTP/1.0 server that supports a 'keep-alive' extension. Persistent connections are limited to 512 requests per connection and allow no more than 5 seconds between requests.

General options

All OSRM HTTP requests use a common structure.

The following syntax applies to all services, except as noted.

Requests

GET
/{service}/{version}/{profile}/{coordinates}[.{format}]?option=value&option=value
ParameterDescription
serviceOne of the following values: route, nearest, table, match, trip, tile
versionVersion of the protocol implemented by the service. v1 for all OSRM 5.x installations
profileMode of transportation, is determined statically by the Lua profile that is used to prepare the data using osrm-extract. Typically car, bike or foot if using one of the supplied profiles.
coordinatesString of format {longitude},{latitude};{longitude},{latitude}[;{longitude},{latitude} ...] or polyline({polyline}) or polyline6({polyline6}).
formatjson or flatbuffers. This parameter is optional and defaults to json.

Passing any option=value is optional. polyline follows Google's polyline format with precision 5 by default and can be generated using this package.

To pass parameters to each location some options support an array-like encoding:

Request options

OptionValuesDescription
bearings{bearing};{bearing}[;{bearing} ...]Limits the search to segments with given bearing in degrees towards true north in a clockwise direction.
radiuses{radius};{radius}[;{radius} ...]Limits the search to given radius in meters.
generate_hintstrue (default), falseAdds a Hint to the response which can be used in subsequent requests, see hints parameter.
hints{hint};{hint}[;{hint} ...]Hint from previous request to derive position in street network.
approaches{approach};{approach}[;{approach} ...]Restrict the direction on the road network at a waypoint, relative to the input coordinate.
exclude{class}[,{class}]Additive list of classes to avoid, the order does not matter.
snappingdefault (default), anyDefault snapping avoids is_startpoint (see profile) edges, any will snap to any edge in the graph
skip_waypointstrue, false (default)Removes waypoints from the response. Waypoints are still calculated, but not serialized. Could be useful in case you are interested in some other part of the response and do not want to transfer waste data.

Where the elements follow the following format:

ElementValues
bearing{value},{range} integer 0 .. 360,integer 0 .. 180
radiusdouble >= 0 or unlimited (default)
hintBase64 string
approachcurb, opposite or unrestricted (default)
classA class name determined by the profile or none.
{option}={element};{element}[;{element} ... ]

The number of elements must match exactly the number of locations (except for generate_hints and exclude). If you don't want to pass a value but instead use the default you can pass an empty element.

Example: 2nd location uses the default value for option:

{option}={element};;{element}

Example Requests

bash
# Query on Berlin with three coordinates:
 curl 'http://router.project-osrm.org/route/v1/driving/13.388860,52.517037;13.397634,52.529407;13.428555,52.523219?overview=false'
 
 # Query on Berlin excluding the usage of motorways:
diff --git a/docs/v26.5.0/assets/http.md.B26Skzz9.lean.js b/docs/v26.5.0/assets/http.md.B26Skzz9.lean.js
new file mode 100644
index 0000000..7d9ffdd
--- /dev/null
+++ b/docs/v26.5.0/assets/http.md.B26Skzz9.lean.js
@@ -0,0 +1 @@
+import{_ as t,o as s,c as i,ag as a}from"./chunks/framework.K54bclBu.js";const n="/docs/v26.5.0/assets/example-tile-response.Edf9KoW6.png",u=JSON.parse('{"title":"OSRM HTTP server","description":"","frontmatter":{},"headers":[],"relativePath":"http.md","filePath":"http.md"}'),o={name:"http.md"};function d(l,e,r,h,p,c){return s(),i("div",null,[...e[0]||(e[0]=[a("",240)])])}const E=t(o,[["render",d]]);export{u as __pageData,E as default};
diff --git a/docs/v26.5.0/assets/http.md.B98BbSjI.lean.js b/docs/v26.5.0/assets/http.md.B98BbSjI.lean.js
deleted file mode 100644
index 577bb1e..0000000
--- a/docs/v26.5.0/assets/http.md.B98BbSjI.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as t,o as s,c as i,ag as a}from"./chunks/framework.C2NLiVii.js";const n="/assets/example-tile-response.Edf9KoW6.png",u=JSON.parse('{"title":"OSRM HTTP server","description":"","frontmatter":{},"headers":[],"relativePath":"http.md","filePath":"http.md"}'),o={name:"http.md"};function d(l,e,r,h,p,c){return s(),i("div",null,[...e[0]||(e[0]=[a("",240)])])}const E=t(o,[["render",d]]);export{u as __pageData,E as default};
diff --git a/docs/v26.5.0/assets/index.md.BuTlAqVr.js b/docs/v26.5.0/assets/index.md.B-SvR98-.js
similarity index 96%
rename from docs/v26.5.0/assets/index.md.BuTlAqVr.js
rename to docs/v26.5.0/assets/index.md.B-SvR98-.js
index ea27414..87dcbcb 100644
--- a/docs/v26.5.0/assets/index.md.BuTlAqVr.js
+++ b/docs/v26.5.0/assets/index.md.B-SvR98-.js
@@ -1 +1 @@
-import{_ as t,o as i,c as r,ag as a}from"./chunks/framework.C2NLiVii.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"OSRM","text":"API Documentation","tagline":"The Open Source Routing Machine - High performance routing engine for OpenStreetMap data","actions":[{"theme":"brand","text":"HTTP API","link":"/http"},{"theme":"alt","text":"Node.js API","link":"/nodejs/api"},{"theme":"alt","text":"Python API","link":"/python/api"},{"theme":"alt","text":"View on GitHub","link":"https://github.com/Project-OSRM/osrm-backend"},{"theme":"alt","text":"Sponsor ❤","link":"https://github.com/sponsors/Project-OSRM"}]},"features":[{"icon":"🚗","title":"Route Service","details":"Find the fastest path between coordinates with support for alternative routes and turn-by-turn instructions."},{"icon":"📊","title":"Table Service","details":"Compute time and distance matrices between multiple locations for optimization problems."},{"icon":"🗺️","title":"Map Matching","details":"Match GPS traces to the road network with high accuracy using the Match service."},{"icon":"🎯","title":"Trip Planning","details":"Solve the traveling salesman problem with the Trip service for optimal route ordering."},{"icon":"📍","title":"Nearest Service","details":"Snap coordinates to the street network and find the nearest road segments."},{"icon":"🎨","title":"Tile Service","details":"Generate vector tiles for visualizing the road network and routing data."}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),o={name:"index.md"};function n(s,e,l,c,d,h){return i(),r("div",null,[...e[0]||(e[0]=[a('

Getting Started

OSRM provides powerful routing services through both HTTP and Node.js APIs:

Documentation

Resources

',7)])])}const g=t(o,[["render",n]]);export{p as __pageData,g as default}; +import{_ as t,o as i,c as r,ag as a}from"./chunks/framework.K54bclBu.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"OSRM","text":"API Documentation","tagline":"The Open Source Routing Machine - High performance routing engine for OpenStreetMap data","actions":[{"theme":"brand","text":"HTTP API","link":"/http"},{"theme":"alt","text":"Node.js API","link":"/nodejs/api"},{"theme":"alt","text":"Python API","link":"/python/api"},{"theme":"alt","text":"View on GitHub","link":"https://github.com/Project-OSRM/osrm-backend"},{"theme":"alt","text":"Sponsor ❤","link":"https://github.com/sponsors/Project-OSRM"}]},"features":[{"icon":"🚗","title":"Route Service","details":"Find the fastest path between coordinates with support for alternative routes and turn-by-turn instructions."},{"icon":"📊","title":"Table Service","details":"Compute time and distance matrices between multiple locations for optimization problems."},{"icon":"🗺️","title":"Map Matching","details":"Match GPS traces to the road network with high accuracy using the Match service."},{"icon":"🎯","title":"Trip Planning","details":"Solve the traveling salesman problem with the Trip service for optimal route ordering."},{"icon":"📍","title":"Nearest Service","details":"Snap coordinates to the street network and find the nearest road segments."},{"icon":"🎨","title":"Tile Service","details":"Generate vector tiles for visualizing the road network and routing data."}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),o={name:"index.md"};function n(s,e,l,c,d,h){return i(),r("div",null,[...e[0]||(e[0]=[a('

Getting Started

OSRM provides powerful routing services through both HTTP and Node.js APIs:

Documentation

Resources

',7)])])}const g=t(o,[["render",n]]);export{p as __pageData,g as default}; diff --git a/docs/v26.5.0/assets/index.md.BuTlAqVr.lean.js b/docs/v26.5.0/assets/index.md.B-SvR98-.lean.js similarity index 92% rename from docs/v26.5.0/assets/index.md.BuTlAqVr.lean.js rename to docs/v26.5.0/assets/index.md.B-SvR98-.lean.js index 5bf84c4..a2b217e 100644 --- a/docs/v26.5.0/assets/index.md.BuTlAqVr.lean.js +++ b/docs/v26.5.0/assets/index.md.B-SvR98-.lean.js @@ -1 +1 @@ -import{_ as t,o as i,c as r,ag as a}from"./chunks/framework.C2NLiVii.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"OSRM","text":"API Documentation","tagline":"The Open Source Routing Machine - High performance routing engine for OpenStreetMap data","actions":[{"theme":"brand","text":"HTTP API","link":"/http"},{"theme":"alt","text":"Node.js API","link":"/nodejs/api"},{"theme":"alt","text":"Python API","link":"/python/api"},{"theme":"alt","text":"View on GitHub","link":"https://github.com/Project-OSRM/osrm-backend"},{"theme":"alt","text":"Sponsor ❤","link":"https://github.com/sponsors/Project-OSRM"}]},"features":[{"icon":"🚗","title":"Route Service","details":"Find the fastest path between coordinates with support for alternative routes and turn-by-turn instructions."},{"icon":"📊","title":"Table Service","details":"Compute time and distance matrices between multiple locations for optimization problems."},{"icon":"🗺️","title":"Map Matching","details":"Match GPS traces to the road network with high accuracy using the Match service."},{"icon":"🎯","title":"Trip Planning","details":"Solve the traveling salesman problem with the Trip service for optimal route ordering."},{"icon":"📍","title":"Nearest Service","details":"Snap coordinates to the street network and find the nearest road segments."},{"icon":"🎨","title":"Tile Service","details":"Generate vector tiles for visualizing the road network and routing data."}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),o={name:"index.md"};function n(s,e,l,c,d,h){return i(),r("div",null,[...e[0]||(e[0]=[a("",7)])])}const g=t(o,[["render",n]]);export{p as __pageData,g as default}; +import{_ as t,o as i,c as r,ag as a}from"./chunks/framework.K54bclBu.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"OSRM","text":"API Documentation","tagline":"The Open Source Routing Machine - High performance routing engine for OpenStreetMap data","actions":[{"theme":"brand","text":"HTTP API","link":"/http"},{"theme":"alt","text":"Node.js API","link":"/nodejs/api"},{"theme":"alt","text":"Python API","link":"/python/api"},{"theme":"alt","text":"View on GitHub","link":"https://github.com/Project-OSRM/osrm-backend"},{"theme":"alt","text":"Sponsor ❤","link":"https://github.com/sponsors/Project-OSRM"}]},"features":[{"icon":"🚗","title":"Route Service","details":"Find the fastest path between coordinates with support for alternative routes and turn-by-turn instructions."},{"icon":"📊","title":"Table Service","details":"Compute time and distance matrices between multiple locations for optimization problems."},{"icon":"🗺️","title":"Map Matching","details":"Match GPS traces to the road network with high accuracy using the Match service."},{"icon":"🎯","title":"Trip Planning","details":"Solve the traveling salesman problem with the Trip service for optimal route ordering."},{"icon":"📍","title":"Nearest Service","details":"Snap coordinates to the street network and find the nearest road segments."},{"icon":"🎨","title":"Tile Service","details":"Generate vector tiles for visualizing the road network and routing data."}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),o={name:"index.md"};function n(s,e,l,c,d,h){return i(),r("div",null,[...e[0]||(e[0]=[a("",7)])])}const g=t(o,[["render",n]]);export{p as __pageData,g as default}; diff --git a/docs/v26.5.0/assets/libosrm.md.BKkADM6U.js b/docs/v26.5.0/assets/libosrm.md.DJV8RZ0M.js similarity index 98% rename from docs/v26.5.0/assets/libosrm.md.BKkADM6U.js rename to docs/v26.5.0/assets/libosrm.md.DJV8RZ0M.js index d88ab6e..d46b614 100644 --- a/docs/v26.5.0/assets/libosrm.md.BKkADM6U.js +++ b/docs/v26.5.0/assets/libosrm.md.DJV8RZ0M.js @@ -1 +1 @@ -import{_ as t,o,c as a,ag as r}from"./chunks/framework.C2NLiVii.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"libosrm.md","filePath":"libosrm.md"}'),i={name:"libosrm.md"};function n(s,e,c,d,l,h){return o(),a("div",null,[...e[0]||(e[0]=[r('

Introduction

OSRM can be used as a library (libosrm) via C++ instead of using it through the HTTP interface and osrm-routed. This allows for fine-tuning OSRM and has much less overhead. Here is a quick introduction into how to use libosrm in the current version.

Take a look at the example code that lives in the example directory. Here is all you ever wanted to know about libosrm, that is a short description of what the types do and where to find documentation on it:

Important interface objects

  • EngineConfig - for initializing an OSRM instance we can configure certain properties and constraints. E.g. the storage config is the base path such as france.osm.osrm from which we derive and load france.osm.osrm.* auxiliary files. This also lets you set constraints such as the maximum number of locations allowed for specific services.

  • OSRM - this is the main Routing Machine type with functions such as Route and Table. You initialize it with a EngineConfig. It does all the heavy lifting for you. Each function takes its own parameters, e.g. the Route function takes RouteParameters, and a out-reference to a JSON result that gets filled. The return value is a Status, indicating error or success.

  • Status - this is a type wrapping Error or Ok for indicating error or success, respectively.

  • TableParameters - this is an example of parameter types the Routing Machine functions expect. In this case Table expects its own parameters as TableParameters. You can see it wrapping two vectors, sources and destinations --- these are indices into your coordinates for the table service to construct a matrix from (empty sources or destinations means: use all of them). If you ask yourself where coordinates come from, you can see TableParameters inheriting from BaseParameters.

  • BaseParameters - this most importantly holds coordinates (and a few other optional properties that you don't need for basic usage); the specific parameter types inherit from BaseParameters to get these member attributes. That means your TableParameters type has coordinates, sources and destinations member attributes (and a few other that we ignore for now).

  • Coordinate - this is a wrapper around a (longitude, latitude) pair. We really don't care about (lon, lat) vs (lat, lon) but we don't want you to accidentally mix them up, so both latitude and longitude are strictly typed wrappers around integers (fixed notation such as 13423240) and floating points (floating notation such as 13.42324).

  • Parameters for other services - here are all other *Parameters you need for other Routing Machine services.

  • JSON - this is a sum type resembling JSON. The Routing Machine service functions take a out-ref to a JSON result and fill it accordingly. It is currently implemented using std::variant. There are two ways to work with this sum type: either provide a visitor that acts on each type on visitation (with std::visit) or use the std::get function in case you're sure about the structure. The JSON structure is written down in the HTTP API.

Example

See the example folder in the OSRM repository.

Workflow

  • Create an OSRM instance initialized with a EngineConfig
  • Call the service function on the OSRM object providing service specific *Parameters
  • Check the return code and use the JSON result
',9)])])}const m=t(i,[["render",n]]);export{p as __pageData,m as default}; +import{_ as t,o,c as a,ag as r}from"./chunks/framework.K54bclBu.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"libosrm.md","filePath":"libosrm.md"}'),i={name:"libosrm.md"};function n(s,e,c,d,l,h){return o(),a("div",null,[...e[0]||(e[0]=[r('

Introduction

OSRM can be used as a library (libosrm) via C++ instead of using it through the HTTP interface and osrm-routed. This allows for fine-tuning OSRM and has much less overhead. Here is a quick introduction into how to use libosrm in the current version.

Take a look at the example code that lives in the example directory. Here is all you ever wanted to know about libosrm, that is a short description of what the types do and where to find documentation on it:

Important interface objects

  • EngineConfig - for initializing an OSRM instance we can configure certain properties and constraints. E.g. the storage config is the base path such as france.osm.osrm from which we derive and load france.osm.osrm.* auxiliary files. This also lets you set constraints such as the maximum number of locations allowed for specific services.

  • OSRM - this is the main Routing Machine type with functions such as Route and Table. You initialize it with a EngineConfig. It does all the heavy lifting for you. Each function takes its own parameters, e.g. the Route function takes RouteParameters, and a out-reference to a JSON result that gets filled. The return value is a Status, indicating error or success.

  • Status - this is a type wrapping Error or Ok for indicating error or success, respectively.

  • TableParameters - this is an example of parameter types the Routing Machine functions expect. In this case Table expects its own parameters as TableParameters. You can see it wrapping two vectors, sources and destinations --- these are indices into your coordinates for the table service to construct a matrix from (empty sources or destinations means: use all of them). If you ask yourself where coordinates come from, you can see TableParameters inheriting from BaseParameters.

  • BaseParameters - this most importantly holds coordinates (and a few other optional properties that you don't need for basic usage); the specific parameter types inherit from BaseParameters to get these member attributes. That means your TableParameters type has coordinates, sources and destinations member attributes (and a few other that we ignore for now).

  • Coordinate - this is a wrapper around a (longitude, latitude) pair. We really don't care about (lon, lat) vs (lat, lon) but we don't want you to accidentally mix them up, so both latitude and longitude are strictly typed wrappers around integers (fixed notation such as 13423240) and floating points (floating notation such as 13.42324).

  • Parameters for other services - here are all other *Parameters you need for other Routing Machine services.

  • JSON - this is a sum type resembling JSON. The Routing Machine service functions take a out-ref to a JSON result and fill it accordingly. It is currently implemented using std::variant. There are two ways to work with this sum type: either provide a visitor that acts on each type on visitation (with std::visit) or use the std::get function in case you're sure about the structure. The JSON structure is written down in the HTTP API.

Example

See the example folder in the OSRM repository.

Workflow

  • Create an OSRM instance initialized with a EngineConfig
  • Call the service function on the OSRM object providing service specific *Parameters
  • Check the return code and use the JSON result
',9)])])}const m=t(i,[["render",n]]);export{p as __pageData,m as default}; diff --git a/docs/v26.5.0/assets/libosrm.md.BKkADM6U.lean.js b/docs/v26.5.0/assets/libosrm.md.DJV8RZ0M.lean.js similarity index 82% rename from docs/v26.5.0/assets/libosrm.md.BKkADM6U.lean.js rename to docs/v26.5.0/assets/libosrm.md.DJV8RZ0M.lean.js index 10e5788..4481b2c 100644 --- a/docs/v26.5.0/assets/libosrm.md.BKkADM6U.lean.js +++ b/docs/v26.5.0/assets/libosrm.md.DJV8RZ0M.lean.js @@ -1 +1 @@ -import{_ as t,o,c as a,ag as r}from"./chunks/framework.C2NLiVii.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"libosrm.md","filePath":"libosrm.md"}'),i={name:"libosrm.md"};function n(s,e,c,d,l,h){return o(),a("div",null,[...e[0]||(e[0]=[r("",9)])])}const m=t(i,[["render",n]]);export{p as __pageData,m as default}; +import{_ as t,o,c as a,ag as r}from"./chunks/framework.K54bclBu.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"libosrm.md","filePath":"libosrm.md"}'),i={name:"libosrm.md"};function n(s,e,c,d,l,h){return o(),a("div",null,[...e[0]||(e[0]=[r("",9)])])}const m=t(i,[["render",n]]);export{p as __pageData,m as default}; diff --git a/docs/v26.5.0/assets/nodejs_api.md.B1H4WFni.js b/docs/v26.5.0/assets/nodejs_api.md.VFRwkv3t.js similarity index 99% rename from docs/v26.5.0/assets/nodejs_api.md.B1H4WFni.js rename to docs/v26.5.0/assets/nodejs_api.md.VFRwkv3t.js index 0ec01ba..8e65933 100644 --- a/docs/v26.5.0/assets/nodejs_api.md.B1H4WFni.js +++ b/docs/v26.5.0/assets/nodejs_api.md.VFRwkv3t.js @@ -1,4 +1,4 @@ -import{_ as a,o as s,c as t,ag as i}from"./chunks/framework.C2NLiVii.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"nodejs/api.md","filePath":"nodejs/api.md"}'),r={name:"nodejs/api.md"};function o(n,e,l,d,p,h){return s(),t("div",null,[...e[0]||(e[0]=[i(`

OSRM

The OSRM method is the main constructor for creating an OSRM instance. An OSRM instance requires a .osrm.* dataset(.osrm.* because it contains several files), which is prepared by the OSRM toolchain. You can create such a .osrm.* dataset by running the OSRM binaries we ship in node_modules/osrm/lib/binding_napi_v8/ and default profiles (e.g. for setting speeds and determining road types to route on) in node_modules/osrm/profiles/:

node_modules/osrm/lib/binding_napi_v8/osrm-extract data.osm.pbf -p node_modules/osrm/profiles/car.lua
+import{_ as a,o as s,c as t,ag as i}from"./chunks/framework.K54bclBu.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"nodejs/api.md","filePath":"nodejs/api.md"}'),r={name:"nodejs/api.md"};function o(n,e,l,d,p,h){return s(),t("div",null,[...e[0]||(e[0]=[i(`

OSRM

The OSRM method is the main constructor for creating an OSRM instance. An OSRM instance requires a .osrm.* dataset(.osrm.* because it contains several files), which is prepared by the OSRM toolchain. You can create such a .osrm.* dataset by running the OSRM binaries we ship in node_modules/osrm/lib/binding_napi_v8/ and default profiles (e.g. for setting speeds and determining road types to route on) in node_modules/osrm/profiles/:

node_modules/osrm/lib/binding_napi_v8/osrm-extract data.osm.pbf -p node_modules/osrm/profiles/car.lua
 node_modules/osrm/lib/binding_napi_v8/osrm-contract data.osrm
 

Consult the osrm-backend documentation for further details.

Once you have a complete network.osrm.* dataset, you can calculate routes in javascript with this object.

javascript
var osrm = new OSRM('network.osrm');

Parameters

  • options (Object | String) Options for creating an OSRM object or string to the .osrm file. (optional, default {shared_memory:true})

    • options.algorithm String? The algorithm to use for routing. Can be 'CH', or 'MLD'. Default is 'CH'. Make sure you prepared the dataset with the correct toolchain.
    • options.shared_memory Boolean? Connects to the persistent shared memory datastore. This requires you to run osrm-datastore prior to creating an OSRM object.
    • options.dataset_name String? Connects to the persistent shared memory datastore defined by --dataset_name option when running osrm-datastore. This requires you to run osrm-datastore --dataset_name prior to creating an OSRM object.
    • options.memory_file String? DEPRECATED Old behaviour: Path to a file on disk to store the memory using mmap. Current behaviour: setting this value is the same as setting mmap_memory: true.
    • options.mmap_memory Boolean? Map on-disk files to virtual memory addresses (mmap), rather than loading into RAM.
    • options.path String? The path to the .osrm files. This is mutually exclusive with setting {options.shared_memory} to true.
    • options.disable_feature_dataset Array? Disables a feature dataset from being loaded into memory if not needed. Options: ROUTE_STEPS, ROUTE_GEOMETRY.
    • options.max_locations_trip Number? Max. locations supported in trip query (default: unlimited).
    • options.max_locations_viaroute Number? Max. locations supported in viaroute query (default: unlimited).
    • options.max_locations_distance_table Number? Max. locations supported in distance table query (default: unlimited).
    • options.max_locations_map_matching Number? Max. locations supported in map-matching query (default: unlimited).
    • options.max_radius_map_matching Number? Max. radius size supported in map matching query (default: 5).
    • options.max_results_nearest Number? Max. results supported in nearest query (default: unlimited).
    • options.max_alternatives Number? Max. number of alternatives supported in alternative routes query (default: 3).
    • options.default_radius Number? Default radius for queries (default: unlimited).

route

Returns the fastest route between two or more coordinates while visiting the waypoints in order.

Parameters

  • options Object Object literal containing parameters for the route query.

    • options.coordinates Array? The coordinates this request will use, coordinates as [{lon},{lat}] values, in decimal degrees.
    • options.bearings Array? Limits the search to segments with given bearing in degrees towards true north in clockwise direction. Can be null or an array of [{value},{range}] with integer 0 .. 360,integer 0 .. 180.
    • options.radiuses Array? Limits the coordinate snapping to streets in the given radius in meters. Can be null (unlimited, default) or double >= 0.
    • options.hints Array? Hints for the coordinate snapping. Array of base64 encoded strings.
    • options.exclude Array? List of classes to avoid, order does not matter.
    • options.generate_hints Boolean Whether or not adds a Hint to the response which can be used in subsequent requests. (optional, default true)
    • options.alternatives Boolean Search for alternative routes. (optional, default false)
    • options.alternatives Number Search for up to this many alternative routes. Please note that even if alternative routes are requested, a result cannot be guaranteed. (optional, default 0)
    • options.steps Boolean Return route steps for each route leg. (optional, default false)
    • options.annotations (Array | Boolean) An array with strings of duration, nodes, distance, weight, datasources, speed or boolean for enabling/disabling all. (optional, default false)
    • options.geometries String Returned route geometry format (influences overview and per step). Can also be geojson. (optional, default polyline)
    • options.overview String Add overview geometry either full, simplified according to highest zoom level it could be displayed on, or not at all (false). If you want the overview for each leg, you can use by_legs. (optional, default simplified)
    • options.continue_straight Boolean? Forces the route to keep going straight at waypoints and don't do a uturn even if it would be faster. Default value depends on the profile.
    • options.approaches Array? Restrict the direction on the road network at a waypoint, relative to the input coordinate. Can be null (unrestricted, default), curb or opposite. null/true/false
    • options.waypoints Array? Indices to coordinates to treat as waypoints. If not supplied, all coordinates are waypoints. Must include first and last coordinate index.
    • options.format String? Which output format to use, either json, or flatbuffers.
    • options.snapping String? Which edges can be snapped to, either default, or any. default only snaps to edges marked by the profile as is_startpoint, any will allow snapping to any edge in the routing graph.
    • options.skip_waypoints Boolean Removes waypoints from the response. Waypoints are still calculated, but not serialized. Could be useful in case you are interested in some other part of response and do not want to transfer waste data. (optional, default false)
  • callback Function

Examples

javascript
var osrm = new OSRM("berlin-latest.osrm");
 osrm.route({coordinates: [[52.519930,13.438640], [52.513191,13.415852]]}, function(err, result) {
diff --git a/docs/v26.5.0/assets/nodejs_api.md.B1H4WFni.lean.js b/docs/v26.5.0/assets/nodejs_api.md.VFRwkv3t.lean.js
similarity index 66%
rename from docs/v26.5.0/assets/nodejs_api.md.B1H4WFni.lean.js
rename to docs/v26.5.0/assets/nodejs_api.md.VFRwkv3t.lean.js
index a298662..f8febce 100644
--- a/docs/v26.5.0/assets/nodejs_api.md.B1H4WFni.lean.js
+++ b/docs/v26.5.0/assets/nodejs_api.md.VFRwkv3t.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as t,ag as i}from"./chunks/framework.C2NLiVii.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"nodejs/api.md","filePath":"nodejs/api.md"}'),r={name:"nodejs/api.md"};function o(n,e,l,d,p,h){return s(),t("div",null,[...e[0]||(e[0]=[i("",79)])])}const k=a(r,[["render",o]]);export{g as __pageData,k as default};
+import{_ as a,o as s,c as t,ag as i}from"./chunks/framework.K54bclBu.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"nodejs/api.md","filePath":"nodejs/api.md"}'),r={name:"nodejs/api.md"};function o(n,e,l,d,p,h){return s(),t("div",null,[...e[0]||(e[0]=[i("",79)])])}const k=a(r,[["render",o]]);export{g as __pageData,k as default};
diff --git a/docs/v26.5.0/assets/profiles.md.PHAThxX1.js b/docs/v26.5.0/assets/profiles.md.CEdsuSs_.js
similarity index 99%
rename from docs/v26.5.0/assets/profiles.md.PHAThxX1.js
rename to docs/v26.5.0/assets/profiles.md.CEdsuSs_.js
index b733825..ef5d02b 100644
--- a/docs/v26.5.0/assets/profiles.md.PHAThxX1.js
+++ b/docs/v26.5.0/assets/profiles.md.CEdsuSs_.js
@@ -1,4 +1,4 @@
-import{_ as e,o as a,c as s,ag as i}from"./chunks/framework.C2NLiVii.js";const k=JSON.parse('{"title":"OSRM profiles","description":"","frontmatter":{},"headers":[],"relativePath":"profiles.md","filePath":"profiles.md"}'),n={name:"profiles.md"};function d(r,t,o,l,h,p){return a(),s("div",null,[...t[0]||(t[0]=[i(`

OSRM profiles

OSRM supports "profiles". Profiles represent routing behavior for different transport modes like car, bike and foot. You can also create profiles for variations like a fastest/shortest car profile or fastest/safest/greenest bicycles profile.

A profile describes whether or not it's possible to route along a particular type of way, whether we can pass a particular node, and how quickly we'll be traveling when we do. This feeds into the way the routing graph is created and thus influences the output routes.

Available profiles

Out-of-the-box OSRM comes with profiles for car, bicycle and foot. You can easily modify these or create new ones if you like.

Profiles have a 'lua' extension, and are placed in 'profiles' directory.

When running OSRM preprocessing commands you specify the profile with the --profile (or the shorthand -p) option, for example:

osrm-extract --profile ../profiles/car.lua planet-latest.osm.pbf

Using Multiple Profiles with the Same Input

You can extract the same OSM file with different profiles by specifying an output path:

bash
osrm-extract --profile profiles/car.lua planet.osm.pbf --output /data/car
+import{_ as e,o as a,c as s,ag as i}from"./chunks/framework.K54bclBu.js";const k=JSON.parse('{"title":"OSRM profiles","description":"","frontmatter":{},"headers":[],"relativePath":"profiles.md","filePath":"profiles.md"}'),n={name:"profiles.md"};function d(r,t,o,l,h,p){return a(),s("div",null,[...t[0]||(t[0]=[i(`

OSRM profiles

OSRM supports "profiles". Profiles represent routing behavior for different transport modes like car, bike and foot. You can also create profiles for variations like a fastest/shortest car profile or fastest/safest/greenest bicycles profile.

A profile describes whether or not it's possible to route along a particular type of way, whether we can pass a particular node, and how quickly we'll be traveling when we do. This feeds into the way the routing graph is created and thus influences the output routes.

Available profiles

Out-of-the-box OSRM comes with profiles for car, bicycle and foot. You can easily modify these or create new ones if you like.

Profiles have a 'lua' extension, and are placed in 'profiles' directory.

When running OSRM preprocessing commands you specify the profile with the --profile (or the shorthand -p) option, for example:

osrm-extract --profile ../profiles/car.lua planet-latest.osm.pbf

Using Multiple Profiles with the Same Input

You can extract the same OSM file with different profiles by specifying an output path:

bash
osrm-extract --profile profiles/car.lua planet.osm.pbf --output /data/car
 osrm-extract --profile profiles/bicycle.lua planet.osm.pbf --output /data/bicycle
 osrm-extract --profile profiles/foot.lua planet.osm.pbf --output /data/foot

This avoids the need to create symbolic links to the input file.

Processing flow

It's important to understand that profiles are used when preprocessing the OSM data, NOT at query time when routes are computed.

This means that after modifying a profile you will need to extract, contract and reload the data again and to see changes in the routing results. See Processing Flow for more.

Profiles are written in Lua

Profiles are not just configuration files. They are scripts written in the Lua scripting language. The reason for this is that OpenStreetMap data is complex, and it's not possible to simply define tag mappings. Lua scripting offers a powerful way to handle all the possible tag combinations found in OpenStreetMap nodes and ways.

Basic structure of profiles

A profile will process every node and way in the OSM input data to determine what ways are routable in which direction, at what speed, etc.

A profile will typically:

  • Define api version (required)
  • Require library files (optional)
  • Define setup function (required)
  • Define process functions (some are required)
  • Return functions table (required)

A profile can also define various local functions it needs.

Looking at car.lua as an example, at the top of the file the api version is defined and then required library files are included.

Then follows the setup function, which is called once when the profile is loaded. It returns a big hash table of configurations, specifying things like what speed to use for different way types. The configurations are used later in the various processing functions. Many adjustments can be done just by modifying this configuration table.

The setup function is also where you can do other setup, like loading an elevation data source if you want to consider that when processing ways.

Then come the process_node and process_way functions, which are called for each OSM node and way when extracting OpenStreetMap data with osrm-extract.

The process_turn function processes every possible turn in the network, and sets a penalty depending on the angle and turn of the movement.

Profiles can also define a process_segment function to handle differences in speed along an OSM way, for example to handle elevation. As you can see, this is not currently used in the car profile.

At the end of the file, a table is returned with references to the setup and processing functions the profile has defined.

Understanding speed, weight and rate

When computing a route from A to B there can be different measures of what is the best route. That's why there's a need for different profiles.

Because speeds vary on different types of roads, the shortest and the fastest route are typically different. But there are many other possible preferences. For example a user might prefer a bicycle route that follow parks or other green areas, even though both duration and distance are a bit longer.

To handle this, OSRM doesn't simply choose the ways with the highest speed. Instead it uses the concepts of weight and rate. The rate is an abstract measure that you can assign to ways as you like to make some ways preferable to others. Routing will prefer ways with high rate.

The weight of a way is normally computed as length / rate. The weight can be thought of as the resistance or cost when passing the way. Routing will prefer ways with low weight.

You can also set the weight of a way to a fixed value. In this case it's not calculated based on the length or rate, and the rate is ignored.

You should set the speed to your best estimate of the actual speed that will be used on a particular way. This will result in the best estimated travel times.

If you want to prefer certain ways due to other factors than the speed, adjust the rate accordingly. If you adjust the speed, the time estimation will be skewed.

If you set the same rate on all ways, the result will be shortest path routing. If you set rate = speed on all ways, the result will be fastest path routing. If you want to prioritize certain streets, increase the rate on these.

Elements

api_version

A profile should set api_version at the top of your profile. This is done to ensure that older profiles are still supported when the api changes. If api_version is not defined, 0 will be assumed. The current api version is 4.

Library files

The folder profiles/lib/ contains Lua library files for handling many common processing tasks.

FileNotes
way_handlers.luaFunctions for processing way tags
tags.luaFunctions for general parsing of OSM tags
set.luaDefines the Set helper for handling sets of values
sequence.luaDefines the Sequence helper for handling sequences of values
access.luaFunction for finding relevant access tags
destination.luaFunction for finding relevant destination tags
maxspeed.luaFunction for determining maximum speed
guidance.luaFunction for processing guidance attributes

They all return a table of functions when you use require to load them. You can either store this table and reference its functions later, or if you need only a single function you can store that directly.

setup()

The setup function is called once when the profile is loaded and must return a table of configurations. It's also where you can do other global setup, like loading data sources that are used during processing.

Note that processing of data is parallelized and several unconnected Lua interpreters will be running at the same time. The setup function will be called once for each. Each Lua interpreter will have its own set of globals.

The following global properties can be set under properties in the hash you return in the setup function:

AttributeTypeNotes
weight_nameStringName used in output for the routing weight property (default 'duration')
weight_precisionUnsignedDecimal precision of edge weights (default 1)
left_hand_drivingBooleanAre vehicles assumed to drive on the left? (used in guidance, default false)
use_turn_restrictionsBooleanAre turn restrictions followed? (default false)
continue_straight_at_waypointBooleanMust the route continue straight on at a via point, or are U-turns allowed? (default true)
max_speed_for_map_matchingFloatMaximum vehicle speed to be assumed in matching (in m/s)
max_turn_weightFloatMaximum turn penalty weight
force_split_edgesBooleanTrue value forces a split of forward and backward edges of extracted ways and guarantees that process_segment will be called for all segments (default false)

The following additional global properties can be set in the hash you return in the setup function:

AttributeTypeNotes
excludableSequence of SetsDetermines which class-combinations are supported by the exclude option at query time. E.g. Sequence{Set{"ferry", "motorway"}, Set{"motorway"}} will allow you to exclude ferries and motorways, or only motorways.
classesSequenceDetermines the allowed classes that can be referenced using {forward,backward}_classes on the way in the process_way function.
restrictionsSequenceDetermines which turn restrictions will be used for this profile.
suffix_listSetList of name suffixes needed for determining if "Highway 101 NW" the same road as "Highway 101 ES".
relation_typesSequenceDetermines which relations should be cached for processing in this profile. It contains relations types

process_node(profile, node, result, relations)

Process an OSM node to determine whether this node is an obstacle, if it can be passed at all and whether passing it incurs a delay.

ArgumentDescription
profileThe configuration table you returned in setup.
nodeThe input node to process (read-only).
resultThe output that you will modify.
relationsStorage of relations to access relations, where node is a member.

The following attributes can be set on result: (Note: for new code use the obstacle_map.

AttributeTypeNotes
barrierBooleanIs it an impassable barrier?
traffic_lightsBooleanIs it a traffic light (incurs delay in process_turn)?

Obstacle

A user type that represents an obstacle on the road or a place where you can turn around.

This may be a completely impassable obstacle like a barrier, a temporary obstacle like a traffic light or a stop sign, or an obstacle that just slows you down like a traffic_calming. The obstacle may be present in both directions or in one direction only.

This also represents a good turning point like a mini_roundabout, turning_loop, or turning_circle.

An object of this type is immutable once constructed.

lua
local obs = Obstacle.new(
   obstacle_type.traffic_signals,
diff --git a/docs/v26.5.0/assets/profiles.md.PHAThxX1.lean.js b/docs/v26.5.0/assets/profiles.md.CEdsuSs_.lean.js
similarity index 67%
rename from docs/v26.5.0/assets/profiles.md.PHAThxX1.lean.js
rename to docs/v26.5.0/assets/profiles.md.CEdsuSs_.lean.js
index 3edea49..a4333ee 100644
--- a/docs/v26.5.0/assets/profiles.md.PHAThxX1.lean.js
+++ b/docs/v26.5.0/assets/profiles.md.CEdsuSs_.lean.js
@@ -1 +1 @@
-import{_ as e,o as a,c as s,ag as i}from"./chunks/framework.C2NLiVii.js";const k=JSON.parse('{"title":"OSRM profiles","description":"","frontmatter":{},"headers":[],"relativePath":"profiles.md","filePath":"profiles.md"}'),n={name:"profiles.md"};function d(r,t,o,l,h,p){return a(),s("div",null,[...t[0]||(t[0]=[i("",154)])])}const u=e(n,[["render",d]]);export{k as __pageData,u as default};
+import{_ as e,o as a,c as s,ag as i}from"./chunks/framework.K54bclBu.js";const k=JSON.parse('{"title":"OSRM profiles","description":"","frontmatter":{},"headers":[],"relativePath":"profiles.md","filePath":"profiles.md"}'),n={name:"profiles.md"};function d(r,t,o,l,h,p){return a(),s("div",null,[...t[0]||(t[0]=[i("",154)])])}const u=e(n,[["render",d]]);export{k as __pageData,u as default};
diff --git a/docs/v26.5.0/assets/python_api.md.BMYgTnwH.js b/docs/v26.5.0/assets/python_api.md.D_vXIkcy.js
similarity index 99%
rename from docs/v26.5.0/assets/python_api.md.BMYgTnwH.js
rename to docs/v26.5.0/assets/python_api.md.D_vXIkcy.js
index f4ca499..cbb9956 100644
--- a/docs/v26.5.0/assets/python_api.md.BMYgTnwH.js
+++ b/docs/v26.5.0/assets/python_api.md.D_vXIkcy.js
@@ -1,4 +1,4 @@
-import{_ as i,o as a,c as t,ag as e}from"./chunks/framework.C2NLiVii.js";const c=JSON.parse('{"title":"Python API","description":"","frontmatter":{},"headers":[],"relativePath":"python/api.md","filePath":"python/api.md"}'),n={name:"python/api.md"};function l(h,s,p,o,k,r){return a(),t("div",null,[...s[0]||(s[0]=[e(`

Python API

The Python bindings provide access to OSRM's routing services through the osrm package. Install with pip install osrm-bindings.

OSRM

The OSRM class is the main entry point. It requires a .osrm.* dataset prepared by the OSRM toolchain.

python
import osrm
+import{_ as i,o as a,c as t,ag as e}from"./chunks/framework.K54bclBu.js";const c=JSON.parse('{"title":"Python API","description":"","frontmatter":{},"headers":[],"relativePath":"python/api.md","filePath":"python/api.md"}'),n={name:"python/api.md"};function l(h,s,p,o,k,r){return a(),t("div",null,[...s[0]||(s[0]=[e(`

Python API

The Python bindings provide access to OSRM's routing services through the osrm package. Install with pip install osrm-bindings.

OSRM

The OSRM class is the main entry point. It requires a .osrm.* dataset prepared by the OSRM toolchain.

python
import osrm
 
 # From file
 engine = osrm.OSRM("path/to/data.osrm")
diff --git a/docs/v26.5.0/assets/python_api.md.BMYgTnwH.lean.js b/docs/v26.5.0/assets/python_api.md.D_vXIkcy.lean.js
similarity index 67%
rename from docs/v26.5.0/assets/python_api.md.BMYgTnwH.lean.js
rename to docs/v26.5.0/assets/python_api.md.D_vXIkcy.lean.js
index 50dd264..4b8c17e 100644
--- a/docs/v26.5.0/assets/python_api.md.BMYgTnwH.lean.js
+++ b/docs/v26.5.0/assets/python_api.md.D_vXIkcy.lean.js
@@ -1 +1 @@
-import{_ as i,o as a,c as t,ag as e}from"./chunks/framework.C2NLiVii.js";const c=JSON.parse('{"title":"Python API","description":"","frontmatter":{},"headers":[],"relativePath":"python/api.md","filePath":"python/api.md"}'),n={name:"python/api.md"};function l(h,s,p,o,k,r){return a(),t("div",null,[...s[0]||(s[0]=[e("",59)])])}const E=i(n,[["render",l]]);export{c as __pageData,E as default};
+import{_ as i,o as a,c as t,ag as e}from"./chunks/framework.K54bclBu.js";const c=JSON.parse('{"title":"Python API","description":"","frontmatter":{},"headers":[],"relativePath":"python/api.md","filePath":"python/api.md"}'),n={name:"python/api.md"};function l(h,s,p,o,k,r){return a(),t("div",null,[...s[0]||(s[0]=[e("",59)])])}const E=i(n,[["render",l]]);export{c as __pageData,E as default};
diff --git a/docs/v26.5.0/assets/python_development.md.DMJOl9Fk.js b/docs/v26.5.0/assets/python_development.md.ceDaNHXn.js
similarity index 99%
rename from docs/v26.5.0/assets/python_development.md.DMJOl9Fk.js
rename to docs/v26.5.0/assets/python_development.md.ceDaNHXn.js
index 44331f2..87fd0ff 100644
--- a/docs/v26.5.0/assets/python_development.md.DMJOl9Fk.js
+++ b/docs/v26.5.0/assets/python_development.md.ceDaNHXn.js
@@ -1,4 +1,4 @@
-import{_ as i,o as a,c as e,ag as t}from"./chunks/framework.C2NLiVii.js";const c=JSON.parse('{"title":"Python Bindings Development Guide","description":"","frontmatter":{},"headers":[],"relativePath":"python/development.md","filePath":"python/development.md"}'),n={name:"python/development.md"};function l(h,s,p,d,o,k){return a(),e("div",null,[...s[0]||(s[0]=[t(`

Python Bindings Development Guide

Installing for production

Pre-built wheels are published to PyPI for Linux (x86_64), macOS (x86_64), and Windows (amd64). They use the CPython 3.12 stable ABI (cp312-abi3) and therefore install on Python 3.12+:

bash
pip install osrm-bindings

The package itself supports Python 3.10+ when built from source — needed for 3.10/3.11, aarch64 Linux, arm64 macOS, or any platform without a pre-built wheel:

bash
pip install osrm-bindings --no-binary osrm-bindings

Source builds compile the full OSRM C++ library — this takes a long time. See platform-specific notes for prerequisites.

Installing for development

Clone the repo and install in editable mode with dev dependencies:

bash
git clone https://github.com/Project-OSRM/osrm-backend
+import{_ as i,o as a,c as e,ag as t}from"./chunks/framework.K54bclBu.js";const c=JSON.parse('{"title":"Python Bindings Development Guide","description":"","frontmatter":{},"headers":[],"relativePath":"python/development.md","filePath":"python/development.md"}'),n={name:"python/development.md"};function l(h,s,p,d,o,k){return a(),e("div",null,[...s[0]||(s[0]=[t(`

Python Bindings Development Guide

Installing for production

Pre-built wheels are published to PyPI for Linux (x86_64), macOS (x86_64), and Windows (amd64). They use the CPython 3.12 stable ABI (cp312-abi3) and therefore install on Python 3.12+:

bash
pip install osrm-bindings

The package itself supports Python 3.10+ when built from source — needed for 3.10/3.11, aarch64 Linux, arm64 macOS, or any platform without a pre-built wheel:

bash
pip install osrm-bindings --no-binary osrm-bindings

Source builds compile the full OSRM C++ library — this takes a long time. See platform-specific notes for prerequisites.

Installing for development

Clone the repo and install in editable mode with dev dependencies:

bash
git clone https://github.com/Project-OSRM/osrm-backend
 cd osrm-backend
 pip install -e ".[dev]"

Install pre-commit hooks:

bash
pre-commit install

Platform-specific build requirements

Linux

CI wheel builds run inside a custom manylinux image (nilsnolde/manylinux, branch osrm_python) that ships vcpkg pre-bootstrapped at the SHA pinned in vcpkg-configuration.json, plus a pre-warmed vcpkg binary cache compiled against this repo's vcpkg.json. The wheel build's own vcpkg install hits that cache instead of recompiling boost/tbb/etc. from source.

The image needs rebuilding when this repo's vcpkg.json, the baseline SHA in vcpkg-configuration.json, or any file under vcpkg-overlay-ports/ changes — otherwise the wheel build either misses the cache (slow) or fails on a missing port. The manylinux repo's Build workflow takes an osrmRef input for that purpose; see its README.

For local source builds outside the manylinux image, install vcpkg yourself, point CMake at its toolchain, and use the release-only triplet to match the cache:

bash
git clone https://github.com/microsoft/vcpkg
 ./vcpkg/bootstrap-vcpkg.sh
diff --git a/docs/v26.5.0/assets/python_development.md.DMJOl9Fk.lean.js b/docs/v26.5.0/assets/python_development.md.ceDaNHXn.lean.js
similarity index 70%
rename from docs/v26.5.0/assets/python_development.md.DMJOl9Fk.lean.js
rename to docs/v26.5.0/assets/python_development.md.ceDaNHXn.lean.js
index a3927b7..a6feae9 100644
--- a/docs/v26.5.0/assets/python_development.md.DMJOl9Fk.lean.js
+++ b/docs/v26.5.0/assets/python_development.md.ceDaNHXn.lean.js
@@ -1 +1 @@
-import{_ as i,o as a,c as e,ag as t}from"./chunks/framework.C2NLiVii.js";const c=JSON.parse('{"title":"Python Bindings Development Guide","description":"","frontmatter":{},"headers":[],"relativePath":"python/development.md","filePath":"python/development.md"}'),n={name:"python/development.md"};function l(h,s,p,d,o,k){return a(),e("div",null,[...s[0]||(s[0]=[t("",87)])])}const g=i(n,[["render",l]]);export{c as __pageData,g as default};
+import{_ as i,o as a,c as e,ag as t}from"./chunks/framework.K54bclBu.js";const c=JSON.parse('{"title":"Python Bindings Development Guide","description":"","frontmatter":{},"headers":[],"relativePath":"python/development.md","filePath":"python/development.md"}'),n={name:"python/development.md"};function l(h,s,p,d,o,k){return a(),e("div",null,[...s[0]||(s[0]=[t("",87)])])}const g=i(n,[["render",l]]);export{c as __pageData,g as default};
diff --git a/docs/v26.5.0/assets/releasing.md.D_HqADus.js b/docs/v26.5.0/assets/releasing.md.PQlJEQ0e.js
similarity index 99%
rename from docs/v26.5.0/assets/releasing.md.D_HqADus.js
rename to docs/v26.5.0/assets/releasing.md.PQlJEQ0e.js
index 1885c70..5e54c4b 100644
--- a/docs/v26.5.0/assets/releasing.md.D_HqADus.js
+++ b/docs/v26.5.0/assets/releasing.md.PQlJEQ0e.js
@@ -1 +1 @@
-import{_ as a,o,c as t,ag as l}from"./chunks/framework.C2NLiVii.js";const u=JSON.parse('{"title":"Releasing a new OSRM version","description":"","frontmatter":{},"headers":[],"relativePath":"releasing.md","filePath":"releasing.md"}'),i={name:"releasing.md"};function r(s,e,n,c,d,h){return o(),t("div",null,[...e[0]||(e[0]=[l('

Releasing a new OSRM version

We use a unified semver versioning scheme for monthly releases: (YYYY-2000).M.patchlevel

  • Format: X.M.patchlevel where X = year - 2000, M = month (1-12, no leading zeros)
  • Example: 26.4.0 represents April 2026, first release
  • Git tags: Prefixed with v (e.g., v26.4.0)
  • npm packages: Unprefixed semver (e.g., 26.4.0)

Version History

Previous scheme (ended 2025): Traditional semantic versioning (v6.0, v6.0.1, v6.0.2, etc.)

  • Last release: v6.0.0 in December 2025
  • Manual release process

New scheme (started 2026): Monthly date-based versioning with automated releases

  • First release: v26.1.0 (January 2026)
  • Automatic monthly releases on the 1st of each month at 08:00 UTC
  • Year offset: 2026 → 26, 2027 → 27, etc.
  • Month: 1-12 (no leading zeros), patch: 0-N per month

Versioning Scheme

Format

Git tags: vX.M.patchlevel where X = year - 2000, M = 1-12

  • X: Year offset (26 = 2026, 27 = 2027, etc.)
  • M: Month (1-12, no leading zeros)
  • patchlevel: Incremental counter starting at 0 per month (0, 1, 2, ...)

npm packages: X.M.patchlevel (same as git tag without the v prefix)

Examples

Git tags and npm versions for the same release:

  • April 2026, 1st release: Git tag v26.4.0, npm 26.4.0
  • April 2026, 2nd release: Git tag v26.4.1, npm 26.4.1
  • May 2026, 1st release: Git tag v26.5.0, npm 26.5.0
  • January 2027, 1st release: Git tag v27.1.0, npm 27.1.0

Release Compatibility Guarantees

Patch version change (new patchlevel in same month)

  • No change of query parameters or response formats
  • Compatible HTTP API
  • Compatible C++ library API
  • Compatible node-osrm API
  • Compatible OSRM datasets

Month change (new YYYY-MM)

  • May introduce forward-compatible changes: query parameters and response properties may be added in responses, but existing properties may not be changed or removed
  • Forward-compatible HTTP API
  • Forward-compatible C++ library API
  • Forward-compatible node-osrm API
  • No compatibility between OSRM datasets (needs new processing)

Conventional Commits

Pull request titles must follow Conventional Commits format with types: feat, fix, docs, style, refactor, perf, test, ci, chore, build. This is validated in CI and helps organize the commit history.

Breaking changes should be indicated with the ! suffix in the PR title (e.g., feat!: remove deprecated API) so they are called out in release notes.

Release Management

  • The master branch is for development and should always be green
  • Automated monthly releases occur on the 1st of each month at 08:00 UTC
  • All changes in master will be automatically released monthly
  • No release candidates are used; the master branch is the quality gate
  • Patch versions within the same month can be released manually at any time

Automated Release Process

Releases are created automatically every month on a scheduled basis:

  1. A GitHub Actions workflow runs on the 1st of each month at 08:00 UTC
  2. Version is calculated as (YYYY-2000).M.patchlevel with M = 1-12 (no leading zeros)
  3. package.json and package-lock.json versions are updated
  4. A git tag is created and pushed (e.g., v26.4.0)
  5. A GitHub Release is published with auto-generated release notes
  6. The package is published to npm (format: 26.4.0 without v prefix)

Manual Release Trigger

You can also trigger a release manually on any branch:

  1. Go to ActionsMonthly Release workflow
  2. Click Run workflow
  3. Select your branch (defaults to master)
  4. Optionally override the version (format: X.M.patchlevel with M = 1-12, e.g., 26.4.0)
  5. Click Run workflow

This is useful for:

  • Out-of-schedule patch releases within the same month
  • Emergency releases from other branches
  • Backports to older versions

Release Checklist

When releasing (automated or manual):

  1. ✅ All GitHub Actions CI checks pass
  2. ✅ The target branch is in a releasable state
  3. ✅ For manual releases: verify the version format is correct (X.M.patchlevel with month 1-12, e.g., 26.4.0)
  4. ✅ The release is created automatically with:
    • Git tag
    • GitHub Release (with auto-generated release notes)
    • npm publication

After Release

No additional manual steps are required. The automated workflow handles:

  • Version bumping in package.json
  • Git commit and tag creation
  • GitHub Release publishing
  • npm package publication

For non-automated releases, monitor:

  • GitHub Actions to verify the release completed successfully
  • npm registry to confirm the new version is published
',42)])])}const p=a(i,[["render",r]]);export{u as __pageData,p as default}; +import{_ as a,o,c as t,ag as l}from"./chunks/framework.K54bclBu.js";const u=JSON.parse('{"title":"Releasing a new OSRM version","description":"","frontmatter":{},"headers":[],"relativePath":"releasing.md","filePath":"releasing.md"}'),i={name:"releasing.md"};function r(s,e,n,c,d,h){return o(),t("div",null,[...e[0]||(e[0]=[l('

Releasing a new OSRM version

We use a unified semver versioning scheme for monthly releases: (YYYY-2000).M.patchlevel

  • Format: X.M.patchlevel where X = year - 2000, M = month (1-12, no leading zeros)
  • Example: 26.4.0 represents April 2026, first release
  • Git tags: Prefixed with v (e.g., v26.4.0)
  • npm packages: Unprefixed semver (e.g., 26.4.0)

Version History

Previous scheme (ended 2025): Traditional semantic versioning (v6.0, v6.0.1, v6.0.2, etc.)

  • Last release: v6.0.0 in December 2025
  • Manual release process

New scheme (started 2026): Monthly date-based versioning with automated releases

  • First release: v26.1.0 (January 2026)
  • Automatic monthly releases on the 1st of each month at 08:00 UTC
  • Year offset: 2026 → 26, 2027 → 27, etc.
  • Month: 1-12 (no leading zeros), patch: 0-N per month

Versioning Scheme

Format

Git tags: vX.M.patchlevel where X = year - 2000, M = 1-12

  • X: Year offset (26 = 2026, 27 = 2027, etc.)
  • M: Month (1-12, no leading zeros)
  • patchlevel: Incremental counter starting at 0 per month (0, 1, 2, ...)

npm packages: X.M.patchlevel (same as git tag without the v prefix)

Examples

Git tags and npm versions for the same release:

  • April 2026, 1st release: Git tag v26.4.0, npm 26.4.0
  • April 2026, 2nd release: Git tag v26.4.1, npm 26.4.1
  • May 2026, 1st release: Git tag v26.5.0, npm 26.5.0
  • January 2027, 1st release: Git tag v27.1.0, npm 27.1.0

Release Compatibility Guarantees

Patch version change (new patchlevel in same month)

  • No change of query parameters or response formats
  • Compatible HTTP API
  • Compatible C++ library API
  • Compatible node-osrm API
  • Compatible OSRM datasets

Month change (new YYYY-MM)

  • May introduce forward-compatible changes: query parameters and response properties may be added in responses, but existing properties may not be changed or removed
  • Forward-compatible HTTP API
  • Forward-compatible C++ library API
  • Forward-compatible node-osrm API
  • No compatibility between OSRM datasets (needs new processing)

Conventional Commits

Pull request titles must follow Conventional Commits format with types: feat, fix, docs, style, refactor, perf, test, ci, chore, build. This is validated in CI and helps organize the commit history.

Breaking changes should be indicated with the ! suffix in the PR title (e.g., feat!: remove deprecated API) so they are called out in release notes.

Release Management

  • The master branch is for development and should always be green
  • Automated monthly releases occur on the 1st of each month at 08:00 UTC
  • All changes in master will be automatically released monthly
  • No release candidates are used; the master branch is the quality gate
  • Patch versions within the same month can be released manually at any time

Automated Release Process

Releases are created automatically every month on a scheduled basis:

  1. A GitHub Actions workflow runs on the 1st of each month at 08:00 UTC
  2. Version is calculated as (YYYY-2000).M.patchlevel with M = 1-12 (no leading zeros)
  3. package.json and package-lock.json versions are updated
  4. A git tag is created and pushed (e.g., v26.4.0)
  5. A GitHub Release is published with auto-generated release notes
  6. The package is published to npm (format: 26.4.0 without v prefix)

Manual Release Trigger

You can also trigger a release manually on any branch:

  1. Go to ActionsMonthly Release workflow
  2. Click Run workflow
  3. Select your branch (defaults to master)
  4. Optionally override the version (format: X.M.patchlevel with M = 1-12, e.g., 26.4.0)
  5. Click Run workflow

This is useful for:

  • Out-of-schedule patch releases within the same month
  • Emergency releases from other branches
  • Backports to older versions

Release Checklist

When releasing (automated or manual):

  1. ✅ All GitHub Actions CI checks pass
  2. ✅ The target branch is in a releasable state
  3. ✅ For manual releases: verify the version format is correct (X.M.patchlevel with month 1-12, e.g., 26.4.0)
  4. ✅ The release is created automatically with:
    • Git tag
    • GitHub Release (with auto-generated release notes)
    • npm publication

After Release

No additional manual steps are required. The automated workflow handles:

  • Version bumping in package.json
  • Git commit and tag creation
  • GitHub Release publishing
  • npm package publication

For non-automated releases, monitor:

  • GitHub Actions to verify the release completed successfully
  • npm registry to confirm the new version is published
',42)])])}const p=a(i,[["render",r]]);export{u as __pageData,p as default}; diff --git a/docs/v26.5.0/assets/releasing.md.D_HqADus.lean.js b/docs/v26.5.0/assets/releasing.md.PQlJEQ0e.lean.js similarity index 84% rename from docs/v26.5.0/assets/releasing.md.D_HqADus.lean.js rename to docs/v26.5.0/assets/releasing.md.PQlJEQ0e.lean.js index 03b3d29..ee2ec4e 100644 --- a/docs/v26.5.0/assets/releasing.md.D_HqADus.lean.js +++ b/docs/v26.5.0/assets/releasing.md.PQlJEQ0e.lean.js @@ -1 +1 @@ -import{_ as a,o,c as t,ag as l}from"./chunks/framework.C2NLiVii.js";const u=JSON.parse('{"title":"Releasing a new OSRM version","description":"","frontmatter":{},"headers":[],"relativePath":"releasing.md","filePath":"releasing.md"}'),i={name:"releasing.md"};function r(s,e,n,c,d,h){return o(),t("div",null,[...e[0]||(e[0]=[l("",42)])])}const p=a(i,[["render",r]]);export{u as __pageData,p as default}; +import{_ as a,o,c as t,ag as l}from"./chunks/framework.K54bclBu.js";const u=JSON.parse('{"title":"Releasing a new OSRM version","description":"","frontmatter":{},"headers":[],"relativePath":"releasing.md","filePath":"releasing.md"}'),i={name:"releasing.md"};function r(s,e,n,c,d,h){return o(),t("div",null,[...e[0]||(e[0]=[l("",42)])])}const p=a(i,[["render",r]]);export{u as __pageData,p as default}; diff --git a/docs/v26.5.0/assets/routed.md.B7b7kZju.js b/docs/v26.5.0/assets/routed.md.D1fkRXeU.js similarity index 93% rename from docs/v26.5.0/assets/routed.md.B7b7kZju.js rename to docs/v26.5.0/assets/routed.md.D1fkRXeU.js index 42f69b0..9451072 100644 --- a/docs/v26.5.0/assets/routed.md.B7b7kZju.js +++ b/docs/v26.5.0/assets/routed.md.D1fkRXeU.js @@ -1 +1 @@ -import{_ as t,o as a,c as r,ag as n}from"./chunks/framework.C2NLiVii.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"routed.md","filePath":"routed.md"}'),i={name:"routed.md"};function o(s,e,l,d,h,_){return a(),r("div",null,[...e[0]||(e[0]=[n('

Environment Variables

SHM_LOCK_DIR

If the SHM_LOCK_DIR environment variable is set, OSRM will use it as the directory for shared memory lock files instead of the system temporary directory. This is useful in containerized environments (Docker/Kubernetes) where the lock file directory should persist across container restarts when loading from shared memory.

SIGNAL_PARENT_WHEN_READY

If the SIGNAL_PARENT_WHEN_READY environment variable is set osrm-routed will send the USR1 signal to its parent when it will be running and waiting for requests. This could be used to upgrade osrm-routed to a new binary on the fly without any service downtime - no incoming requests will be lost.

DISABLE_ACCESS_LOGGING

If the DISABLE_ACCESS_LOGGING environment variable is set osrm-routed will not log any http requests to standard output. This can be useful in high traffic setup.

',7)])])}const m=t(i,[["render",o]]);export{u as __pageData,m as default}; +import{_ as t,o as a,c as r,ag as n}from"./chunks/framework.K54bclBu.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"routed.md","filePath":"routed.md"}'),i={name:"routed.md"};function o(s,e,l,d,h,_){return a(),r("div",null,[...e[0]||(e[0]=[n('

Environment Variables

SHM_LOCK_DIR

If the SHM_LOCK_DIR environment variable is set, OSRM will use it as the directory for shared memory lock files instead of the system temporary directory. This is useful in containerized environments (Docker/Kubernetes) where the lock file directory should persist across container restarts when loading from shared memory.

SIGNAL_PARENT_WHEN_READY

If the SIGNAL_PARENT_WHEN_READY environment variable is set osrm-routed will send the USR1 signal to its parent when it will be running and waiting for requests. This could be used to upgrade osrm-routed to a new binary on the fly without any service downtime - no incoming requests will be lost.

DISABLE_ACCESS_LOGGING

If the DISABLE_ACCESS_LOGGING environment variable is set osrm-routed will not log any http requests to standard output. This can be useful in high traffic setup.

',7)])])}const m=t(i,[["render",o]]);export{u as __pageData,m as default}; diff --git a/docs/v26.5.0/assets/routed.md.B7b7kZju.lean.js b/docs/v26.5.0/assets/routed.md.D1fkRXeU.lean.js similarity index 65% rename from docs/v26.5.0/assets/routed.md.B7b7kZju.lean.js rename to docs/v26.5.0/assets/routed.md.D1fkRXeU.lean.js index 6d83461..5aadde9 100644 --- a/docs/v26.5.0/assets/routed.md.B7b7kZju.lean.js +++ b/docs/v26.5.0/assets/routed.md.D1fkRXeU.lean.js @@ -1 +1 @@ -import{_ as t,o as a,c as r,ag as n}from"./chunks/framework.C2NLiVii.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"routed.md","filePath":"routed.md"}'),i={name:"routed.md"};function o(s,e,l,d,h,_){return a(),r("div",null,[...e[0]||(e[0]=[n("",7)])])}const m=t(i,[["render",o]]);export{u as __pageData,m as default}; +import{_ as t,o as a,c as r,ag as n}from"./chunks/framework.K54bclBu.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"routed.md","filePath":"routed.md"}'),i={name:"routed.md"};function o(s,e,l,d,h,_){return a(),r("div",null,[...e[0]||(e[0]=[n("",7)])])}const m=t(i,[["render",o]]);export{u as __pageData,m as default}; diff --git a/docs/v26.5.0/assets/style.CtqdTf0S.css b/docs/v26.5.0/assets/style.CtqdTf0S.css new file mode 100644 index 0000000..95cbda7 --- /dev/null +++ b/docs/v26.5.0/assets/style.CtqdTf0S.css @@ -0,0 +1 @@ +@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/docs/v26.5.0/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/docs/v26.5.0/assets/inter-roman-cyrillic.C5lxZ8CY.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/docs/v26.5.0/assets/inter-roman-greek-ext.CqjqNYQ-.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/docs/v26.5.0/assets/inter-roman-greek.BBVDIX6e.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/docs/v26.5.0/assets/inter-roman-vietnamese.BjW4sHH5.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/docs/v26.5.0/assets/inter-roman-latin-ext.4ZJIpNVo.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/docs/v26.5.0/assets/inter-roman-latin.Di8DUHzh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/docs/v26.5.0/assets/inter-italic-cyrillic-ext.r48I6akx.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/docs/v26.5.0/assets/inter-italic-cyrillic.By2_1cv3.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/docs/v26.5.0/assets/inter-italic-greek-ext.1u6EdAuj.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/docs/v26.5.0/assets/inter-italic-greek.DJ8dCoTZ.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/docs/v26.5.0/assets/inter-italic-vietnamese.BSbpV94h.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/docs/v26.5.0/assets/inter-italic-latin-ext.CN1xVJS-.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/docs/v26.5.0/assets/inter-italic-latin.C2AdPX0b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Punctuation SC;font-weight:400;src:local("PingFang SC Regular"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:500;src:local("PingFang SC Medium"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:600;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:700;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: #3c3c43;--vp-c-text-2: #67676c;--vp-c-text-3: #929295}.dark{--vp-c-text-1: #dfdfd6;--vp-c-text-2: #98989f;--vp-c-text-3: #6a6a71}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media(min-width:960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:lang(es),:lang(pt){--vp-code-copy-copied-text-content: "Copiado"}:lang(fa){--vp-code-copy-copied-text-content: "کپی شد"}:lang(ko){--vp-code-copy-copied-text-content: "복사됨"}:lang(ru){--vp-code-copy-copied-text-content: "Скопировано"}:lang(zh){--vp-code-copy-copied-text-content: "已复制"}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media(prefers-reduced-motion:reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media(min-width:640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc h4{margin:24px 0 0;letter-spacing:-.01em;line-height:24px;font-size:18px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media(min-width:768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s;color:var(--vp-c-text-2)}.vp-doc blockquote>p{margin:0;font-size:16px;transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code,.vp-doc h4>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media(min-width:640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media(max-width:639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;-webkit-user-select:none;user-select:none;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(:is(.no-icon,svg a,:has(img,svg))):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(:is(.no-icon,svg a,:has(img,svg))):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-c79a1216]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c79a1216],.VPBackdrop.fade-leave-to[data-v-c79a1216]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c79a1216]{transition-duration:.25s}@media(min-width:1280px){.VPBackdrop[data-v-c79a1216]{display:none}}.NotFound[data-v-d6be1790]{padding:64px 24px 96px;text-align:center}@media(min-width:768px){.NotFound[data-v-d6be1790]{padding:96px 32px 168px}}.code[data-v-d6be1790]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-d6be1790]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-d6be1790]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-d6be1790]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-d6be1790]{padding-top:20px}.link[data-v-d6be1790]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-d6be1790]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-b933a997]{position:relative;z-index:1}.nested[data-v-b933a997]{padding-right:16px;padding-left:16px}.outline-link[data-v-b933a997]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-b933a997]:hover,.outline-link.active[data-v-b933a997]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-b933a997]{padding-left:13px}.VPDocAsideOutline[data-v-a5bbad30]{display:none}.VPDocAsideOutline.has-outline[data-v-a5bbad30]{display:block}.content[data-v-a5bbad30]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-a5bbad30]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-a5bbad30]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-3f215769]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-3f215769]{flex-grow:1}.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-3f215769] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-e98dd255]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media(min-width:640px){.VPLastUpdated[data-v-e98dd255]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-e257564d]{margin-top:64px}.edit-info[data-v-e257564d]{padding-bottom:18px}@media(min-width:640px){.edit-info[data-v-e257564d]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-e257564d]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-e257564d]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-e257564d]{margin-right:8px}.prev-next[data-v-e257564d]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media(min-width:640px){.prev-next[data-v-e257564d]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-e257564d]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-e257564d]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-e257564d]{margin-left:auto;text-align:right}.desc[data-v-e257564d]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-e257564d]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-39a288b8]{padding:32px 24px 96px;width:100%}@media(min-width:768px){.VPDoc[data-v-39a288b8]{padding:48px 32px 128px}}@media(min-width:960px){.VPDoc[data-v-39a288b8]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-39a288b8]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-39a288b8]{max-width:752px}}@media(min-width:1280px){.VPDoc .container[data-v-39a288b8]{display:flex;justify-content:center}.VPDoc .aside[data-v-39a288b8]{display:block}}@media(min-width:1440px){.VPDoc:not(.has-sidebar) .content[data-v-39a288b8]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-39a288b8]{max-width:1104px}}.container[data-v-39a288b8]{margin:0 auto;width:100%}.aside[data-v-39a288b8]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-39a288b8]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-39a288b8]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-39a288b8]::-webkit-scrollbar{display:none}.aside-curtain[data-v-39a288b8]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-39a288b8]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-39a288b8]{position:relative;margin:0 auto;width:100%}@media(min-width:960px){.content[data-v-39a288b8]{padding:0 32px 128px}}@media(min-width:1280px){.content[data-v-39a288b8]{order:1;margin:0;min-width:640px}}.content-container[data-v-39a288b8]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-39a288b8]{max-width:688px}.VPButton[data-v-fa7799d5]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-fa7799d5]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-fa7799d5]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-fa7799d5]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-fa7799d5]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-fa7799d5]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-fa7799d5]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-fa7799d5]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-fa7799d5]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-fa7799d5]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-fa7799d5]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-fa7799d5]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-fa7799d5]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-8426fc1a]{display:none}.dark .VPImage.light[data-v-8426fc1a]{display:none}.VPHero[data-v-4f9c455b]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media(min-width:640px){.VPHero[data-v-4f9c455b]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media(min-width:960px){.VPHero[data-v-4f9c455b]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-4f9c455b]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media(min-width:960px){.container[data-v-4f9c455b]{flex-direction:row}}.main[data-v-4f9c455b]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-4f9c455b]{text-align:center}@media(min-width:960px){.VPHero.has-image .container[data-v-4f9c455b]{text-align:left}}@media(min-width:960px){.main[data-v-4f9c455b]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-4f9c455b]{max-width:592px}}.heading[data-v-4f9c455b]{display:flex;flex-direction:column}.name[data-v-4f9c455b],.text[data-v-4f9c455b]{width:fit-content;max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-4f9c455b],.VPHero.has-image .text[data-v-4f9c455b]{margin:0 auto}.name[data-v-4f9c455b]{color:var(--vp-home-hero-name-color)}.clip[data-v-4f9c455b]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media(min-width:640px){.name[data-v-4f9c455b],.text[data-v-4f9c455b]{max-width:576px;line-height:56px;font-size:48px}}@media(min-width:960px){.name[data-v-4f9c455b],.text[data-v-4f9c455b]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-4f9c455b],.VPHero.has-image .text[data-v-4f9c455b]{margin:0}}.tagline[data-v-4f9c455b]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-4f9c455b]{margin:0 auto}@media(min-width:640px){.tagline[data-v-4f9c455b]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media(min-width:960px){.tagline[data-v-4f9c455b]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-4f9c455b]{margin:0}}.actions[data-v-4f9c455b]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-4f9c455b]{justify-content:center}@media(min-width:640px){.actions[data-v-4f9c455b]{padding-top:32px}}@media(min-width:960px){.VPHero.has-image .actions[data-v-4f9c455b]{justify-content:flex-start}}.action[data-v-4f9c455b]{flex-shrink:0;padding:6px}.image[data-v-4f9c455b]{order:1;margin:-76px -24px -48px}@media(min-width:640px){.image[data-v-4f9c455b]{margin:-108px -24px -48px}}@media(min-width:960px){.image[data-v-4f9c455b]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-4f9c455b]{position:relative;margin:0 auto;width:320px;height:320px}@media(min-width:640px){.image-container[data-v-4f9c455b]{width:392px;height:392px}}@media(min-width:960px){.image-container[data-v-4f9c455b]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-4f9c455b]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media(min-width:640px){.image-bg[data-v-4f9c455b]{width:256px;height:256px}}@media(min-width:960px){.image-bg[data-v-4f9c455b]{width:320px;height:320px}}[data-v-4f9c455b] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media(min-width:640px){[data-v-4f9c455b] .image-src{max-width:256px;max-height:256px}}@media(min-width:960px){[data-v-4f9c455b] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-a3976bdc]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-a3976bdc]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-a3976bdc]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-a3976bdc]>.VPImage{margin-bottom:20px}.icon[data-v-a3976bdc]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-a3976bdc]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-a3976bdc]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-a3976bdc]{padding-top:8px}.link-text-value[data-v-a3976bdc]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-a3976bdc]{margin-left:6px}.VPFeatures[data-v-a6181336]{position:relative;padding:0 24px}@media(min-width:640px){.VPFeatures[data-v-a6181336]{padding:0 48px}}@media(min-width:960px){.VPFeatures[data-v-a6181336]{padding:0 64px}}.container[data-v-a6181336]{margin:0 auto;max-width:1152px}.items[data-v-a6181336]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-a6181336]{padding:8px;width:100%}@media(min-width:640px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:50%}}@media(min-width:768px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336]{width:50%}.item.grid-3[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:calc(100% / 3)}}@media(min-width:960px){.item.grid-4[data-v-a6181336]{width:25%}}.container[data-v-8e2d4988]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media(min-width:640px){.container[data-v-8e2d4988]{padding:0 48px}}@media(min-width:960px){.container[data-v-8e2d4988]{width:100%;padding:0 64px}}.vp-doc[data-v-8e2d4988] .VPHomeSponsors,.vp-doc[data-v-8e2d4988] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-8e2d4988] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-8e2d4988] .VPHomeSponsors a,.vp-doc[data-v-8e2d4988] .VPTeamPage a{text-decoration:none}.VPHome[data-v-8b561e3d]{margin-bottom:96px}@media(min-width:768px){.VPHome[data-v-8b561e3d]{margin-bottom:128px}}.VPContent[data-v-1428d186]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-1428d186]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-1428d186]{margin:0}@media(min-width:960px){.VPContent[data-v-1428d186]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-1428d186]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media(min-width:1440px){.VPContent.has-sidebar[data-v-1428d186]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-e315a0ad]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-e315a0ad]{display:none}.VPFooter[data-v-e315a0ad] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-e315a0ad] a:hover{color:var(--vp-c-text-1)}@media(min-width:768px){.VPFooter[data-v-e315a0ad]{padding:32px}}.container[data-v-e315a0ad]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-e315a0ad],.copyright[data-v-e315a0ad]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-8a42e2b4]{padding:12px 20px 11px}@media(min-width:960px){.VPLocalNavOutlineDropdown[data-v-8a42e2b4]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-8a42e2b4]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-8a42e2b4]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-8a42e2b4]{color:var(--vp-c-text-1)}.icon[data-v-8a42e2b4]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media(min-width:960px){.VPLocalNavOutlineDropdown button[data-v-8a42e2b4]{font-size:14px}.icon[data-v-8a42e2b4]{font-size:16px}}.open>.icon[data-v-8a42e2b4]{transform:rotate(90deg)}.items[data-v-8a42e2b4]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media(min-width:960px){.items[data-v-8a42e2b4]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-8a42e2b4]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-8a42e2b4]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-8a42e2b4]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-8a42e2b4]{transition:all .2s ease-out}.flyout-leave-active[data-v-8a42e2b4]{transition:all .15s ease-in}.flyout-enter-from[data-v-8a42e2b4],.flyout-leave-to[data-v-8a42e2b4]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-a6f0e41e]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-a6f0e41e]{position:fixed}@media(min-width:960px){.VPLocalNav[data-v-a6f0e41e]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-a6f0e41e]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-a6f0e41e]{display:none}}@media(min-width:1280px){.VPLocalNav[data-v-a6f0e41e]{display:none}}@media(min-width:1440px){.VPLocalNav.has-sidebar[data-v-a6f0e41e]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-a6f0e41e]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-a6f0e41e]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-a6f0e41e]:hover{color:var(--vp-c-text-1);transition:color .25s}@media(min-width:768px){.menu[data-v-a6f0e41e]{padding:0 32px}}@media(min-width:960px){.menu[data-v-a6f0e41e]{display:none}}.menu-icon[data-v-a6f0e41e]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-a6f0e41e]{padding:12px 24px 11px}@media(min-width:768px){.VPOutlineDropdown[data-v-a6f0e41e]{padding:12px 32px 11px}}.VPSwitch[data-v-1d5665e3]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-1d5665e3]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-1d5665e3]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-1d5665e3]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-1d5665e3] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-1d5665e3] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-5337faa4]{opacity:1}.moon[data-v-5337faa4],.dark .sun[data-v-5337faa4]{opacity:0}.dark .moon[data-v-5337faa4]{opacity:1}.dark .VPSwitchAppearance[data-v-5337faa4] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-6c893767]{display:none}@media(min-width:1280px){.VPNavBarAppearance[data-v-6c893767]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-35975db6]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-35975db6]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-35975db6]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-35975db6]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-69e747b5]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-69e747b5]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-69e747b5]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-69e747b5]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-b98bc113]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-b98bc113] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-b98bc113] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-b98bc113] .group:last-child{padding-bottom:0}.VPMenu[data-v-b98bc113] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-b98bc113] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-b98bc113] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-b98bc113] .action{padding-left:24px}.VPFlyout[data-v-cf11d7a2]{position:relative}.VPFlyout[data-v-cf11d7a2]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-cf11d7a2]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-cf11d7a2]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-cf11d7a2]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-cf11d7a2]{color:var(--vp-c-brand-2)}.button[aria-expanded=false]+.menu[data-v-cf11d7a2]{opacity:0;visibility:hidden;transform:translateY(0)}.VPFlyout:hover .menu[data-v-cf11d7a2],.button[aria-expanded=true]+.menu[data-v-cf11d7a2]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-cf11d7a2]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-cf11d7a2]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-cf11d7a2]{margin-right:0;font-size:16px}.text-icon[data-v-cf11d7a2]{margin-left:4px;font-size:14px}.icon[data-v-cf11d7a2]{font-size:20px;transition:fill .25s}.menu[data-v-cf11d7a2]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-bd121fe5]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-bd121fe5]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-bd121fe5]>svg,.VPSocialLink[data-v-bd121fe5]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-7bc22406]{display:flex;justify-content:center}.VPNavBarExtra[data-v-bb2aa2f0]{display:none;margin-right:-12px}@media(min-width:768px){.VPNavBarExtra[data-v-bb2aa2f0]{display:block}}@media(min-width:1280px){.VPNavBarExtra[data-v-bb2aa2f0]{display:none}}.trans-title[data-v-bb2aa2f0]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-bb2aa2f0],.item.social-links[data-v-bb2aa2f0]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-bb2aa2f0]{min-width:176px}.appearance-action[data-v-bb2aa2f0]{margin-right:-2px}.social-links-list[data-v-bb2aa2f0]{margin:-4px -8px}.VPNavBarHamburger[data-v-e5dd9c1c]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media(min-width:768px){.VPNavBarHamburger[data-v-e5dd9c1c]{display:none}}.container[data-v-e5dd9c1c]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e5dd9c1c]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e5dd9c1c],.middle[data-v-e5dd9c1c],.bottom[data-v-e5dd9c1c]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(0)}.middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-e56f3d57]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-e56f3d57],.VPNavBarMenuLink[data-v-e56f3d57]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-dc692963]{display:none}@media(min-width:768px){.VPNavBarMenu[data-v-dc692963]{display:flex}}/*! @docsearch/css 3.8.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch-Button-Key--pressed{box-shadow:var(--docsearch-key-pressed-shadow);transform:translate3d(0,1px,0)}@media(max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media(max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button-Key--pressed{transform:none;box-shadow:none}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media(min-width:768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media(min-width:768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media(min-width:768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media(min-width:768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.VPNavBarSearch{display:flex;align-items:center}@media(min-width:768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media(min-width:960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-0394ad82]{display:none}@media(min-width:1280px){.VPNavBarSocialLinks[data-v-0394ad82]{display:flex;align-items:center}}.title[data-v-1168a8e4]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media(min-width:960px){.title[data-v-1168a8e4]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-1168a8e4]{border-bottom-color:var(--vp-c-divider)}}[data-v-1168a8e4] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-88af2de4]{display:none}@media(min-width:1280px){.VPNavBarTranslations[data-v-88af2de4]{display:flex;align-items:center}}.title[data-v-88af2de4]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-6aa21345]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .25s}.VPNavBar.screen-open[data-v-6aa21345]{transition:none;background-color:var(--vp-nav-bg-color);border-bottom:1px solid var(--vp-c-divider)}.VPNavBar[data-v-6aa21345]:not(.home){background-color:var(--vp-nav-bg-color)}@media(min-width:960px){.VPNavBar[data-v-6aa21345]:not(.home){background-color:transparent}.VPNavBar[data-v-6aa21345]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-6aa21345]{padding:0 8px 0 24px}@media(min-width:768px){.wrapper[data-v-6aa21345]{padding:0 32px}}@media(min-width:960px){.VPNavBar.has-sidebar .wrapper[data-v-6aa21345]{padding:0}}.container[data-v-6aa21345]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-6aa21345],.container>.content[data-v-6aa21345]{pointer-events:none}.container[data-v-6aa21345] *{pointer-events:auto}@media(min-width:960px){.VPNavBar.has-sidebar .container[data-v-6aa21345]{max-width:100%}}.title[data-v-6aa21345]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media(min-width:960px){.VPNavBar.has-sidebar .title[data-v-6aa21345]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media(min-width:1440px){.VPNavBar.has-sidebar .title[data-v-6aa21345]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-6aa21345]{flex-grow:1}@media(min-width:960px){.VPNavBar.has-sidebar .content[data-v-6aa21345]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media(min-width:1440px){.VPNavBar.has-sidebar .content[data-v-6aa21345]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-6aa21345]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media(min-width:960px){.VPNavBar:not(.home.top) .content-body[data-v-6aa21345]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-6aa21345]{background-color:transparent}}@media(max-width:767px){.content-body[data-v-6aa21345]{column-gap:.5rem}}.menu+.translations[data-v-6aa21345]:before,.menu+.appearance[data-v-6aa21345]:before,.menu+.social-links[data-v-6aa21345]:before,.translations+.appearance[data-v-6aa21345]:before,.appearance+.social-links[data-v-6aa21345]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-6aa21345]:before,.translations+.appearance[data-v-6aa21345]:before{margin-right:16px}.appearance+.social-links[data-v-6aa21345]:before{margin-left:16px}.social-links[data-v-6aa21345]{margin-right:-8px}.divider[data-v-6aa21345]{width:100%;height:1px}@media(min-width:960px){.VPNavBar.has-sidebar .divider[data-v-6aa21345]{padding-left:var(--vp-sidebar-width)}}@media(min-width:1440px){.VPNavBar.has-sidebar .divider[data-v-6aa21345]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-6aa21345]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-6aa21345]{background-color:var(--vp-c-gutter)}@media(min-width:960px){.VPNavBar:not(.home.top) .divider-line[data-v-6aa21345]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-6aa21345]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-b44890b2]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-b44890b2]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-df37e6dd]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-df37e6dd]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-3e9c20e4]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-3e9c20e4]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-8133b170]{display:block}.title[data-v-8133b170]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-b9ab8c58]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-b9ab8c58]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-b9ab8c58]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-b9ab8c58]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-b9ab8c58]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-b9ab8c58]{transform:rotate(45deg)}.button[data-v-b9ab8c58]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-b9ab8c58]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-b9ab8c58]{transition:transform .25s}.group[data-v-b9ab8c58]:first-child{padding-top:0}.group+.group[data-v-b9ab8c58],.group+.item[data-v-b9ab8c58]{padding-top:4px}.VPNavScreenTranslations[data-v-858fe1a4]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-858fe1a4]{height:auto}.title[data-v-858fe1a4]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-858fe1a4]{font-size:16px}.icon.lang[data-v-858fe1a4]{margin-right:8px}.icon.chevron[data-v-858fe1a4]{margin-left:4px}.list[data-v-858fe1a4]{padding:4px 0 0 24px}.link[data-v-858fe1a4]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-f2779853]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px));right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .25s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-f2779853],.VPNavScreen.fade-leave-active[data-v-f2779853]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-f2779853],.VPNavScreen.fade-leave-active .container[data-v-f2779853]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-f2779853],.VPNavScreen.fade-leave-to[data-v-f2779853]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-f2779853],.VPNavScreen.fade-leave-to .container[data-v-f2779853]{transform:translateY(-8px)}@media(min-width:768px){.VPNavScreen[data-v-f2779853]{display:none}}.container[data-v-f2779853]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-f2779853],.menu+.appearance[data-v-f2779853],.translations+.appearance[data-v-f2779853]{margin-top:24px}.menu+.social-links[data-v-f2779853]{margin-top:16px}.appearance+.social-links[data-v-f2779853]{margin-top:16px}.VPNav[data-v-ae24b3ad]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media(min-width:960px){.VPNav[data-v-ae24b3ad]{position:fixed}}.VPSidebarItem.level-0[data-v-b3fd67f8]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-b3fd67f8]{padding-bottom:10px}.item[data-v-b3fd67f8]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-b3fd67f8]{cursor:pointer}.indicator[data-v-b3fd67f8]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-b3fd67f8],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-b3fd67f8],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-b3fd67f8],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-b3fd67f8]{background-color:var(--vp-c-brand-1)}.link[data-v-b3fd67f8]{display:flex;align-items:center;flex-grow:1}.text[data-v-b3fd67f8]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-b3fd67f8]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-b3fd67f8],.VPSidebarItem.level-2 .text[data-v-b3fd67f8],.VPSidebarItem.level-3 .text[data-v-b3fd67f8],.VPSidebarItem.level-4 .text[data-v-b3fd67f8],.VPSidebarItem.level-5 .text[data-v-b3fd67f8]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-b3fd67f8]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-1.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-2.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-3.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-4.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-5.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-b3fd67f8]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-b3fd67f8]{color:var(--vp-c-brand-1)}.caret[data-v-b3fd67f8]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-b3fd67f8]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-b3fd67f8]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-b3fd67f8]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-b3fd67f8]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-b3fd67f8],.VPSidebarItem.level-2 .items[data-v-b3fd67f8],.VPSidebarItem.level-3 .items[data-v-b3fd67f8],.VPSidebarItem.level-4 .items[data-v-b3fd67f8],.VPSidebarItem.level-5 .items[data-v-b3fd67f8]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-b3fd67f8]{display:none}.no-transition[data-v-c40bc020] .caret-icon{transition:none}.group+.group[data-v-c40bc020]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media(min-width:960px){.group[data-v-c40bc020]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSidebar[data-v-319d5ca6]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-319d5ca6]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-319d5ca6]{box-shadow:var(--vp-shadow-1)}@media(min-width:960px){.VPSidebar[data-v-319d5ca6]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media(min-width:1440px){.VPSidebar[data-v-319d5ca6]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media(min-width:960px){.curtain[data-v-319d5ca6]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-319d5ca6]{outline:0}.VPSkipLink[data-v-0b0ada53]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-0b0ada53]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media(min-width:1280px){.VPSkipLink[data-v-0b0ada53]{top:14px;left:16px}}.Layout[data-v-5d98c3a5]{display:flex;flex-direction:column;min-height:100vh}.endpoint{display:flex;align-items:stretch;margin:1rem 0;border-radius:6px;overflow:hidden;background-color:var(--vp-c-bg-soft);border:1px solid var(--vp-c-divider)}.endpoint-method{padding:.75rem 1rem;font-weight:700;font-family:var(--vp-font-family-mono);font-size:.875rem;background-color:var(--vp-c-brand-1);color:#fff;display:flex;align-items:center;white-space:nowrap}.endpoint-url{padding:.75rem 1rem;font-family:var(--vp-font-family-mono);font-size:.875rem;display:flex;align-items:center;flex:1;overflow-x:auto}.endpoint-url .strong{font-weight:700;color:var(--vp-c-brand-1)}.dark .endpoint{background-color:var(--vp-c-bg-soft)}.dark .endpoint-method{background-color:var(--vp-c-brand-2)}.VPLocalSearchBox[data-v-ce626c7c]{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex}.backdrop[data-v-ce626c7c]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-ce626c7c]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media(max-width:767px){.shell[data-v-ce626c7c]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-ce626c7c]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media(max-width:767px){.search-bar[data-v-ce626c7c]{padding:0 8px}}.search-bar[data-v-ce626c7c]:focus-within{border-color:var(--vp-c-brand-1)}.local-search-icon[data-v-ce626c7c]{display:block;font-size:18px}.navigate-icon[data-v-ce626c7c]{display:block;font-size:14px}.search-icon[data-v-ce626c7c]{margin:8px}@media(max-width:767px){.search-icon[data-v-ce626c7c]{display:none}}.search-input[data-v-ce626c7c]{padding:6px 12px;font-size:inherit;width:100%}@media(max-width:767px){.search-input[data-v-ce626c7c]{padding:6px 4px}}.search-actions[data-v-ce626c7c]{display:flex;gap:4px}@media(any-pointer:coarse){.search-actions[data-v-ce626c7c]{gap:8px}}@media(min-width:769px){.search-actions.before[data-v-ce626c7c]{display:none}}.search-actions button[data-v-ce626c7c]{padding:8px}.search-actions button[data-v-ce626c7c]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-ce626c7c]{color:var(--vp-c-brand-1)}.search-actions button.clear-button[data-v-ce626c7c]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-ce626c7c]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-ce626c7c]{display:flex;align-items:center;gap:4px}@media(max-width:767px){.search-keyboard-shortcuts[data-v-ce626c7c]{display:none}}.search-keyboard-shortcuts kbd[data-v-ce626c7c]{background:#8080801a;border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-ce626c7c]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-ce626c7c]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-ce626c7c]{margin:12px;width:100%;overflow:hidden}@media(max-width:767px){.result>div[data-v-ce626c7c]{margin:8px}}.titles[data-v-ce626c7c]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-ce626c7c]{display:flex;align-items:center;gap:4px}.title.main[data-v-ce626c7c]{font-weight:500}.title-icon[data-v-ce626c7c]{opacity:.5;font-weight:500;color:var(--vp-c-brand-1)}.title svg[data-v-ce626c7c]{opacity:.5}.result.selected[data-v-ce626c7c]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-ce626c7c]{position:relative}.excerpt[data-v-ce626c7c]{opacity:50%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;margin-top:4px}.result.selected .excerpt[data-v-ce626c7c]{opacity:1}.excerpt[data-v-ce626c7c] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-ce626c7c] mark,.excerpt[data-v-ce626c7c] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-ce626c7c] .vp-code-group .tabs{display:none}.excerpt[data-v-ce626c7c] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-ce626c7c]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-ce626c7c]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-ce626c7c],.result.selected .title-icon[data-v-ce626c7c]{color:var(--vp-c-brand-1)!important}.no-results[data-v-ce626c7c]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-ce626c7c]{flex:none} diff --git a/docs/v26.5.0/assets/style.aohmNY8E.css b/docs/v26.5.0/assets/style.aohmNY8E.css deleted file mode 100644 index 0ac839e..0000000 --- a/docs/v26.5.0/assets/style.aohmNY8E.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-cyrillic.C5lxZ8CY.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-greek-ext.CqjqNYQ-.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-greek.BBVDIX6e.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-vietnamese.BjW4sHH5.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-latin-ext.4ZJIpNVo.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-latin.Di8DUHzh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-cyrillic-ext.r48I6akx.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-cyrillic.By2_1cv3.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-greek-ext.1u6EdAuj.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-greek.DJ8dCoTZ.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-vietnamese.BSbpV94h.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-latin-ext.CN1xVJS-.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-latin.C2AdPX0b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Punctuation SC;font-weight:400;src:local("PingFang SC Regular"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:500;src:local("PingFang SC Medium"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:600;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:700;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: #3c3c43;--vp-c-text-2: #67676c;--vp-c-text-3: #929295}.dark{--vp-c-text-1: #dfdfd6;--vp-c-text-2: #98989f;--vp-c-text-3: #6a6a71}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media(min-width:960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:lang(es),:lang(pt){--vp-code-copy-copied-text-content: "Copiado"}:lang(fa){--vp-code-copy-copied-text-content: "کپی شد"}:lang(ko){--vp-code-copy-copied-text-content: "복사됨"}:lang(ru){--vp-code-copy-copied-text-content: "Скопировано"}:lang(zh){--vp-code-copy-copied-text-content: "已复制"}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media(prefers-reduced-motion:reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media(min-width:640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc h4{margin:24px 0 0;letter-spacing:-.01em;line-height:24px;font-size:18px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media(min-width:768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s;color:var(--vp-c-text-2)}.vp-doc blockquote>p{margin:0;font-size:16px;transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code,.vp-doc h4>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media(min-width:640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media(max-width:639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;-webkit-user-select:none;user-select:none;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(:is(.no-icon,svg a,:has(img,svg))):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(:is(.no-icon,svg a,:has(img,svg))):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-c79a1216]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c79a1216],.VPBackdrop.fade-leave-to[data-v-c79a1216]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c79a1216]{transition-duration:.25s}@media(min-width:1280px){.VPBackdrop[data-v-c79a1216]{display:none}}.NotFound[data-v-d6be1790]{padding:64px 24px 96px;text-align:center}@media(min-width:768px){.NotFound[data-v-d6be1790]{padding:96px 32px 168px}}.code[data-v-d6be1790]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-d6be1790]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-d6be1790]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-d6be1790]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-d6be1790]{padding-top:20px}.link[data-v-d6be1790]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-d6be1790]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-b933a997]{position:relative;z-index:1}.nested[data-v-b933a997]{padding-right:16px;padding-left:16px}.outline-link[data-v-b933a997]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-b933a997]:hover,.outline-link.active[data-v-b933a997]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-b933a997]{padding-left:13px}.VPDocAsideOutline[data-v-a5bbad30]{display:none}.VPDocAsideOutline.has-outline[data-v-a5bbad30]{display:block}.content[data-v-a5bbad30]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-a5bbad30]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-a5bbad30]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-3f215769]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-3f215769]{flex-grow:1}.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-3f215769] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-e98dd255]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media(min-width:640px){.VPLastUpdated[data-v-e98dd255]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-e257564d]{margin-top:64px}.edit-info[data-v-e257564d]{padding-bottom:18px}@media(min-width:640px){.edit-info[data-v-e257564d]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-e257564d]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-e257564d]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-e257564d]{margin-right:8px}.prev-next[data-v-e257564d]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media(min-width:640px){.prev-next[data-v-e257564d]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-e257564d]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-e257564d]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-e257564d]{margin-left:auto;text-align:right}.desc[data-v-e257564d]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-e257564d]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-39a288b8]{padding:32px 24px 96px;width:100%}@media(min-width:768px){.VPDoc[data-v-39a288b8]{padding:48px 32px 128px}}@media(min-width:960px){.VPDoc[data-v-39a288b8]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-39a288b8]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-39a288b8]{max-width:752px}}@media(min-width:1280px){.VPDoc .container[data-v-39a288b8]{display:flex;justify-content:center}.VPDoc .aside[data-v-39a288b8]{display:block}}@media(min-width:1440px){.VPDoc:not(.has-sidebar) .content[data-v-39a288b8]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-39a288b8]{max-width:1104px}}.container[data-v-39a288b8]{margin:0 auto;width:100%}.aside[data-v-39a288b8]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-39a288b8]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-39a288b8]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-39a288b8]::-webkit-scrollbar{display:none}.aside-curtain[data-v-39a288b8]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-39a288b8]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-39a288b8]{position:relative;margin:0 auto;width:100%}@media(min-width:960px){.content[data-v-39a288b8]{padding:0 32px 128px}}@media(min-width:1280px){.content[data-v-39a288b8]{order:1;margin:0;min-width:640px}}.content-container[data-v-39a288b8]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-39a288b8]{max-width:688px}.VPButton[data-v-fa7799d5]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-fa7799d5]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-fa7799d5]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-fa7799d5]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-fa7799d5]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-fa7799d5]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-fa7799d5]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-fa7799d5]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-fa7799d5]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-fa7799d5]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-fa7799d5]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-fa7799d5]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-fa7799d5]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-8426fc1a]{display:none}.dark .VPImage.light[data-v-8426fc1a]{display:none}.VPHero[data-v-4f9c455b]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media(min-width:640px){.VPHero[data-v-4f9c455b]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media(min-width:960px){.VPHero[data-v-4f9c455b]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-4f9c455b]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media(min-width:960px){.container[data-v-4f9c455b]{flex-direction:row}}.main[data-v-4f9c455b]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-4f9c455b]{text-align:center}@media(min-width:960px){.VPHero.has-image .container[data-v-4f9c455b]{text-align:left}}@media(min-width:960px){.main[data-v-4f9c455b]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-4f9c455b]{max-width:592px}}.heading[data-v-4f9c455b]{display:flex;flex-direction:column}.name[data-v-4f9c455b],.text[data-v-4f9c455b]{width:fit-content;max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-4f9c455b],.VPHero.has-image .text[data-v-4f9c455b]{margin:0 auto}.name[data-v-4f9c455b]{color:var(--vp-home-hero-name-color)}.clip[data-v-4f9c455b]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media(min-width:640px){.name[data-v-4f9c455b],.text[data-v-4f9c455b]{max-width:576px;line-height:56px;font-size:48px}}@media(min-width:960px){.name[data-v-4f9c455b],.text[data-v-4f9c455b]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-4f9c455b],.VPHero.has-image .text[data-v-4f9c455b]{margin:0}}.tagline[data-v-4f9c455b]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-4f9c455b]{margin:0 auto}@media(min-width:640px){.tagline[data-v-4f9c455b]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media(min-width:960px){.tagline[data-v-4f9c455b]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-4f9c455b]{margin:0}}.actions[data-v-4f9c455b]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-4f9c455b]{justify-content:center}@media(min-width:640px){.actions[data-v-4f9c455b]{padding-top:32px}}@media(min-width:960px){.VPHero.has-image .actions[data-v-4f9c455b]{justify-content:flex-start}}.action[data-v-4f9c455b]{flex-shrink:0;padding:6px}.image[data-v-4f9c455b]{order:1;margin:-76px -24px -48px}@media(min-width:640px){.image[data-v-4f9c455b]{margin:-108px -24px -48px}}@media(min-width:960px){.image[data-v-4f9c455b]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-4f9c455b]{position:relative;margin:0 auto;width:320px;height:320px}@media(min-width:640px){.image-container[data-v-4f9c455b]{width:392px;height:392px}}@media(min-width:960px){.image-container[data-v-4f9c455b]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-4f9c455b]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media(min-width:640px){.image-bg[data-v-4f9c455b]{width:256px;height:256px}}@media(min-width:960px){.image-bg[data-v-4f9c455b]{width:320px;height:320px}}[data-v-4f9c455b] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media(min-width:640px){[data-v-4f9c455b] .image-src{max-width:256px;max-height:256px}}@media(min-width:960px){[data-v-4f9c455b] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-a3976bdc]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-a3976bdc]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-a3976bdc]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-a3976bdc]>.VPImage{margin-bottom:20px}.icon[data-v-a3976bdc]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-a3976bdc]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-a3976bdc]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-a3976bdc]{padding-top:8px}.link-text-value[data-v-a3976bdc]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-a3976bdc]{margin-left:6px}.VPFeatures[data-v-a6181336]{position:relative;padding:0 24px}@media(min-width:640px){.VPFeatures[data-v-a6181336]{padding:0 48px}}@media(min-width:960px){.VPFeatures[data-v-a6181336]{padding:0 64px}}.container[data-v-a6181336]{margin:0 auto;max-width:1152px}.items[data-v-a6181336]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-a6181336]{padding:8px;width:100%}@media(min-width:640px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:50%}}@media(min-width:768px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336]{width:50%}.item.grid-3[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:calc(100% / 3)}}@media(min-width:960px){.item.grid-4[data-v-a6181336]{width:25%}}.container[data-v-8e2d4988]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media(min-width:640px){.container[data-v-8e2d4988]{padding:0 48px}}@media(min-width:960px){.container[data-v-8e2d4988]{width:100%;padding:0 64px}}.vp-doc[data-v-8e2d4988] .VPHomeSponsors,.vp-doc[data-v-8e2d4988] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-8e2d4988] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-8e2d4988] .VPHomeSponsors a,.vp-doc[data-v-8e2d4988] .VPTeamPage a{text-decoration:none}.VPHome[data-v-8b561e3d]{margin-bottom:96px}@media(min-width:768px){.VPHome[data-v-8b561e3d]{margin-bottom:128px}}.VPContent[data-v-1428d186]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-1428d186]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-1428d186]{margin:0}@media(min-width:960px){.VPContent[data-v-1428d186]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-1428d186]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media(min-width:1440px){.VPContent.has-sidebar[data-v-1428d186]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-e315a0ad]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-e315a0ad]{display:none}.VPFooter[data-v-e315a0ad] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-e315a0ad] a:hover{color:var(--vp-c-text-1)}@media(min-width:768px){.VPFooter[data-v-e315a0ad]{padding:32px}}.container[data-v-e315a0ad]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-e315a0ad],.copyright[data-v-e315a0ad]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-8a42e2b4]{padding:12px 20px 11px}@media(min-width:960px){.VPLocalNavOutlineDropdown[data-v-8a42e2b4]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-8a42e2b4]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-8a42e2b4]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-8a42e2b4]{color:var(--vp-c-text-1)}.icon[data-v-8a42e2b4]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media(min-width:960px){.VPLocalNavOutlineDropdown button[data-v-8a42e2b4]{font-size:14px}.icon[data-v-8a42e2b4]{font-size:16px}}.open>.icon[data-v-8a42e2b4]{transform:rotate(90deg)}.items[data-v-8a42e2b4]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media(min-width:960px){.items[data-v-8a42e2b4]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-8a42e2b4]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-8a42e2b4]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-8a42e2b4]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-8a42e2b4]{transition:all .2s ease-out}.flyout-leave-active[data-v-8a42e2b4]{transition:all .15s ease-in}.flyout-enter-from[data-v-8a42e2b4],.flyout-leave-to[data-v-8a42e2b4]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-a6f0e41e]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-a6f0e41e]{position:fixed}@media(min-width:960px){.VPLocalNav[data-v-a6f0e41e]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-a6f0e41e]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-a6f0e41e]{display:none}}@media(min-width:1280px){.VPLocalNav[data-v-a6f0e41e]{display:none}}@media(min-width:1440px){.VPLocalNav.has-sidebar[data-v-a6f0e41e]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-a6f0e41e]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-a6f0e41e]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-a6f0e41e]:hover{color:var(--vp-c-text-1);transition:color .25s}@media(min-width:768px){.menu[data-v-a6f0e41e]{padding:0 32px}}@media(min-width:960px){.menu[data-v-a6f0e41e]{display:none}}.menu-icon[data-v-a6f0e41e]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-a6f0e41e]{padding:12px 24px 11px}@media(min-width:768px){.VPOutlineDropdown[data-v-a6f0e41e]{padding:12px 32px 11px}}.VPSwitch[data-v-1d5665e3]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-1d5665e3]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-1d5665e3]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-1d5665e3]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-1d5665e3] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-1d5665e3] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-5337faa4]{opacity:1}.moon[data-v-5337faa4],.dark .sun[data-v-5337faa4]{opacity:0}.dark .moon[data-v-5337faa4]{opacity:1}.dark .VPSwitchAppearance[data-v-5337faa4] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-6c893767]{display:none}@media(min-width:1280px){.VPNavBarAppearance[data-v-6c893767]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-35975db6]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-35975db6]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-35975db6]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-35975db6]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-69e747b5]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-69e747b5]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-69e747b5]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-69e747b5]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-b98bc113]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-b98bc113] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-b98bc113] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-b98bc113] .group:last-child{padding-bottom:0}.VPMenu[data-v-b98bc113] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-b98bc113] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-b98bc113] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-b98bc113] .action{padding-left:24px}.VPFlyout[data-v-cf11d7a2]{position:relative}.VPFlyout[data-v-cf11d7a2]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-cf11d7a2]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-cf11d7a2]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-cf11d7a2]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-cf11d7a2]{color:var(--vp-c-brand-2)}.button[aria-expanded=false]+.menu[data-v-cf11d7a2]{opacity:0;visibility:hidden;transform:translateY(0)}.VPFlyout:hover .menu[data-v-cf11d7a2],.button[aria-expanded=true]+.menu[data-v-cf11d7a2]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-cf11d7a2]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-cf11d7a2]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-cf11d7a2]{margin-right:0;font-size:16px}.text-icon[data-v-cf11d7a2]{margin-left:4px;font-size:14px}.icon[data-v-cf11d7a2]{font-size:20px;transition:fill .25s}.menu[data-v-cf11d7a2]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-bd121fe5]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-bd121fe5]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-bd121fe5]>svg,.VPSocialLink[data-v-bd121fe5]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-7bc22406]{display:flex;justify-content:center}.VPNavBarExtra[data-v-bb2aa2f0]{display:none;margin-right:-12px}@media(min-width:768px){.VPNavBarExtra[data-v-bb2aa2f0]{display:block}}@media(min-width:1280px){.VPNavBarExtra[data-v-bb2aa2f0]{display:none}}.trans-title[data-v-bb2aa2f0]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-bb2aa2f0],.item.social-links[data-v-bb2aa2f0]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-bb2aa2f0]{min-width:176px}.appearance-action[data-v-bb2aa2f0]{margin-right:-2px}.social-links-list[data-v-bb2aa2f0]{margin:-4px -8px}.VPNavBarHamburger[data-v-e5dd9c1c]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media(min-width:768px){.VPNavBarHamburger[data-v-e5dd9c1c]{display:none}}.container[data-v-e5dd9c1c]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e5dd9c1c]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e5dd9c1c],.middle[data-v-e5dd9c1c],.bottom[data-v-e5dd9c1c]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(0)}.middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-e56f3d57]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-e56f3d57],.VPNavBarMenuLink[data-v-e56f3d57]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-dc692963]{display:none}@media(min-width:768px){.VPNavBarMenu[data-v-dc692963]{display:flex}}/*! @docsearch/css 3.8.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch-Button-Key--pressed{box-shadow:var(--docsearch-key-pressed-shadow);transform:translate3d(0,1px,0)}@media(max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media(max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button-Key--pressed{transform:none;box-shadow:none}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media(min-width:768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media(min-width:768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media(min-width:768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media(min-width:768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.VPNavBarSearch{display:flex;align-items:center}@media(min-width:768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media(min-width:960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-0394ad82]{display:none}@media(min-width:1280px){.VPNavBarSocialLinks[data-v-0394ad82]{display:flex;align-items:center}}.title[data-v-1168a8e4]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media(min-width:960px){.title[data-v-1168a8e4]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-1168a8e4]{border-bottom-color:var(--vp-c-divider)}}[data-v-1168a8e4] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-88af2de4]{display:none}@media(min-width:1280px){.VPNavBarTranslations[data-v-88af2de4]{display:flex;align-items:center}}.title[data-v-88af2de4]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-6aa21345]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .25s}.VPNavBar.screen-open[data-v-6aa21345]{transition:none;background-color:var(--vp-nav-bg-color);border-bottom:1px solid var(--vp-c-divider)}.VPNavBar[data-v-6aa21345]:not(.home){background-color:var(--vp-nav-bg-color)}@media(min-width:960px){.VPNavBar[data-v-6aa21345]:not(.home){background-color:transparent}.VPNavBar[data-v-6aa21345]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-6aa21345]{padding:0 8px 0 24px}@media(min-width:768px){.wrapper[data-v-6aa21345]{padding:0 32px}}@media(min-width:960px){.VPNavBar.has-sidebar .wrapper[data-v-6aa21345]{padding:0}}.container[data-v-6aa21345]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-6aa21345],.container>.content[data-v-6aa21345]{pointer-events:none}.container[data-v-6aa21345] *{pointer-events:auto}@media(min-width:960px){.VPNavBar.has-sidebar .container[data-v-6aa21345]{max-width:100%}}.title[data-v-6aa21345]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media(min-width:960px){.VPNavBar.has-sidebar .title[data-v-6aa21345]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media(min-width:1440px){.VPNavBar.has-sidebar .title[data-v-6aa21345]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-6aa21345]{flex-grow:1}@media(min-width:960px){.VPNavBar.has-sidebar .content[data-v-6aa21345]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media(min-width:1440px){.VPNavBar.has-sidebar .content[data-v-6aa21345]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-6aa21345]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media(min-width:960px){.VPNavBar:not(.home.top) .content-body[data-v-6aa21345]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-6aa21345]{background-color:transparent}}@media(max-width:767px){.content-body[data-v-6aa21345]{column-gap:.5rem}}.menu+.translations[data-v-6aa21345]:before,.menu+.appearance[data-v-6aa21345]:before,.menu+.social-links[data-v-6aa21345]:before,.translations+.appearance[data-v-6aa21345]:before,.appearance+.social-links[data-v-6aa21345]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-6aa21345]:before,.translations+.appearance[data-v-6aa21345]:before{margin-right:16px}.appearance+.social-links[data-v-6aa21345]:before{margin-left:16px}.social-links[data-v-6aa21345]{margin-right:-8px}.divider[data-v-6aa21345]{width:100%;height:1px}@media(min-width:960px){.VPNavBar.has-sidebar .divider[data-v-6aa21345]{padding-left:var(--vp-sidebar-width)}}@media(min-width:1440px){.VPNavBar.has-sidebar .divider[data-v-6aa21345]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-6aa21345]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-6aa21345]{background-color:var(--vp-c-gutter)}@media(min-width:960px){.VPNavBar:not(.home.top) .divider-line[data-v-6aa21345]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-6aa21345]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-b44890b2]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-b44890b2]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-df37e6dd]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-df37e6dd]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-3e9c20e4]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-3e9c20e4]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-8133b170]{display:block}.title[data-v-8133b170]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-b9ab8c58]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-b9ab8c58]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-b9ab8c58]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-b9ab8c58]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-b9ab8c58]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-b9ab8c58]{transform:rotate(45deg)}.button[data-v-b9ab8c58]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-b9ab8c58]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-b9ab8c58]{transition:transform .25s}.group[data-v-b9ab8c58]:first-child{padding-top:0}.group+.group[data-v-b9ab8c58],.group+.item[data-v-b9ab8c58]{padding-top:4px}.VPNavScreenTranslations[data-v-858fe1a4]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-858fe1a4]{height:auto}.title[data-v-858fe1a4]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-858fe1a4]{font-size:16px}.icon.lang[data-v-858fe1a4]{margin-right:8px}.icon.chevron[data-v-858fe1a4]{margin-left:4px}.list[data-v-858fe1a4]{padding:4px 0 0 24px}.link[data-v-858fe1a4]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-f2779853]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px));right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .25s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-f2779853],.VPNavScreen.fade-leave-active[data-v-f2779853]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-f2779853],.VPNavScreen.fade-leave-active .container[data-v-f2779853]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-f2779853],.VPNavScreen.fade-leave-to[data-v-f2779853]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-f2779853],.VPNavScreen.fade-leave-to .container[data-v-f2779853]{transform:translateY(-8px)}@media(min-width:768px){.VPNavScreen[data-v-f2779853]{display:none}}.container[data-v-f2779853]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-f2779853],.menu+.appearance[data-v-f2779853],.translations+.appearance[data-v-f2779853]{margin-top:24px}.menu+.social-links[data-v-f2779853]{margin-top:16px}.appearance+.social-links[data-v-f2779853]{margin-top:16px}.VPNav[data-v-ae24b3ad]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media(min-width:960px){.VPNav[data-v-ae24b3ad]{position:fixed}}.VPSidebarItem.level-0[data-v-b3fd67f8]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-b3fd67f8]{padding-bottom:10px}.item[data-v-b3fd67f8]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-b3fd67f8]{cursor:pointer}.indicator[data-v-b3fd67f8]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-b3fd67f8],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-b3fd67f8],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-b3fd67f8],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-b3fd67f8]{background-color:var(--vp-c-brand-1)}.link[data-v-b3fd67f8]{display:flex;align-items:center;flex-grow:1}.text[data-v-b3fd67f8]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-b3fd67f8]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-b3fd67f8],.VPSidebarItem.level-2 .text[data-v-b3fd67f8],.VPSidebarItem.level-3 .text[data-v-b3fd67f8],.VPSidebarItem.level-4 .text[data-v-b3fd67f8],.VPSidebarItem.level-5 .text[data-v-b3fd67f8]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-b3fd67f8]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-1.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-2.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-3.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-4.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-5.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-b3fd67f8]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-b3fd67f8]{color:var(--vp-c-brand-1)}.caret[data-v-b3fd67f8]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-b3fd67f8]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-b3fd67f8]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-b3fd67f8]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-b3fd67f8]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-b3fd67f8],.VPSidebarItem.level-2 .items[data-v-b3fd67f8],.VPSidebarItem.level-3 .items[data-v-b3fd67f8],.VPSidebarItem.level-4 .items[data-v-b3fd67f8],.VPSidebarItem.level-5 .items[data-v-b3fd67f8]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-b3fd67f8]{display:none}.no-transition[data-v-c40bc020] .caret-icon{transition:none}.group+.group[data-v-c40bc020]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media(min-width:960px){.group[data-v-c40bc020]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSidebar[data-v-319d5ca6]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-319d5ca6]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-319d5ca6]{box-shadow:var(--vp-shadow-1)}@media(min-width:960px){.VPSidebar[data-v-319d5ca6]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media(min-width:1440px){.VPSidebar[data-v-319d5ca6]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media(min-width:960px){.curtain[data-v-319d5ca6]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-319d5ca6]{outline:0}.VPSkipLink[data-v-0b0ada53]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-0b0ada53]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media(min-width:1280px){.VPSkipLink[data-v-0b0ada53]{top:14px;left:16px}}.Layout[data-v-5d98c3a5]{display:flex;flex-direction:column;min-height:100vh}.endpoint{display:flex;align-items:stretch;margin:1rem 0;border-radius:6px;overflow:hidden;background-color:var(--vp-c-bg-soft);border:1px solid var(--vp-c-divider)}.endpoint-method{padding:.75rem 1rem;font-weight:700;font-family:var(--vp-font-family-mono);font-size:.875rem;background-color:var(--vp-c-brand-1);color:#fff;display:flex;align-items:center;white-space:nowrap}.endpoint-url{padding:.75rem 1rem;font-family:var(--vp-font-family-mono);font-size:.875rem;display:flex;align-items:center;flex:1;overflow-x:auto}.endpoint-url .strong{font-weight:700;color:var(--vp-c-brand-1)}.dark .endpoint{background-color:var(--vp-c-bg-soft)}.dark .endpoint-method{background-color:var(--vp-c-brand-2)}.VPLocalSearchBox[data-v-ce626c7c]{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex}.backdrop[data-v-ce626c7c]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-ce626c7c]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media(max-width:767px){.shell[data-v-ce626c7c]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-ce626c7c]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media(max-width:767px){.search-bar[data-v-ce626c7c]{padding:0 8px}}.search-bar[data-v-ce626c7c]:focus-within{border-color:var(--vp-c-brand-1)}.local-search-icon[data-v-ce626c7c]{display:block;font-size:18px}.navigate-icon[data-v-ce626c7c]{display:block;font-size:14px}.search-icon[data-v-ce626c7c]{margin:8px}@media(max-width:767px){.search-icon[data-v-ce626c7c]{display:none}}.search-input[data-v-ce626c7c]{padding:6px 12px;font-size:inherit;width:100%}@media(max-width:767px){.search-input[data-v-ce626c7c]{padding:6px 4px}}.search-actions[data-v-ce626c7c]{display:flex;gap:4px}@media(any-pointer:coarse){.search-actions[data-v-ce626c7c]{gap:8px}}@media(min-width:769px){.search-actions.before[data-v-ce626c7c]{display:none}}.search-actions button[data-v-ce626c7c]{padding:8px}.search-actions button[data-v-ce626c7c]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-ce626c7c]{color:var(--vp-c-brand-1)}.search-actions button.clear-button[data-v-ce626c7c]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-ce626c7c]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-ce626c7c]{display:flex;align-items:center;gap:4px}@media(max-width:767px){.search-keyboard-shortcuts[data-v-ce626c7c]{display:none}}.search-keyboard-shortcuts kbd[data-v-ce626c7c]{background:#8080801a;border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-ce626c7c]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-ce626c7c]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-ce626c7c]{margin:12px;width:100%;overflow:hidden}@media(max-width:767px){.result>div[data-v-ce626c7c]{margin:8px}}.titles[data-v-ce626c7c]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-ce626c7c]{display:flex;align-items:center;gap:4px}.title.main[data-v-ce626c7c]{font-weight:500}.title-icon[data-v-ce626c7c]{opacity:.5;font-weight:500;color:var(--vp-c-brand-1)}.title svg[data-v-ce626c7c]{opacity:.5}.result.selected[data-v-ce626c7c]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-ce626c7c]{position:relative}.excerpt[data-v-ce626c7c]{opacity:50%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;margin-top:4px}.result.selected .excerpt[data-v-ce626c7c]{opacity:1}.excerpt[data-v-ce626c7c] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-ce626c7c] mark,.excerpt[data-v-ce626c7c] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-ce626c7c] .vp-code-group .tabs{display:none}.excerpt[data-v-ce626c7c] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-ce626c7c]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-ce626c7c]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-ce626c7c],.result.selected .title-icon[data-v-ce626c7c]{color:var(--vp-c-brand-1)!important}.no-results[data-v-ce626c7c]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-ce626c7c]{flex:none} diff --git a/docs/v26.5.0/assets/testing.md.CV2ZaUd4.js b/docs/v26.5.0/assets/testing.md.D-4lJh86.js similarity index 99% rename from docs/v26.5.0/assets/testing.md.CV2ZaUd4.js rename to docs/v26.5.0/assets/testing.md.D-4lJh86.js index dd7bca3..933321e 100644 --- a/docs/v26.5.0/assets/testing.md.CV2ZaUd4.js +++ b/docs/v26.5.0/assets/testing.md.D-4lJh86.js @@ -1,4 +1,4 @@ -import{_ as a,o as n,c as e,ag as t}from"./chunks/framework.C2NLiVii.js";const h=JSON.parse('{"title":"Testsuite","description":"","frontmatter":{},"headers":[],"relativePath":"testing.md","filePath":"testing.md"}'),p={name:"testing.md"};function i(o,s,l,r,c,d){return n(),e("div",null,[...s[0]||(s[0]=[t(`

Testsuite

OSRM comes with a testsuite containing both unit-tests using the Boost library and cucumber.js for scenario driven testing.

Unit Tests

For a general introduction on Boost.Test have a look at its docs.

Separate Test Binaries

Unit tests should be registered according to the sub-project they're in. If you want to write tests for utility functions, add them to the utility test binary. See CMakeLists.txt in the unit test directory for how to register new unit tests.

Using Boost.Test Primitives

There is a difference between only reporting a failed condition and aborting the test right at a failed condition. Have a look at BOOST_CHECK vs BOOST_REQUIRE. Instead of manually checking e.g. for equality, less than, if a function throws etc. use their corresponding Boost.Test primitives.

If you use BOOST_CHECK_EQUAL you have to implement operator<< for your type so that Boost.Test can print mismatches. If you do not want to do this, define BOOST_TEST_DONT_PRINT_LOG_VALUE (and undef it after the check call) or sidestep it with BOOST_CHECK(fst == snd);.

Test Fixture

If you need to test features on a real dataset (think about this twice: prefer cucumber and dataset-independent tests for their reproducibility and minimality), there is a fixed dataset in test/data. This dataset is a small extract and may not even contain all tags or edge cases. Furthermore this dataset is not in sync with what you see in up-to-date OSM maps or on the demo server. See the library tests for how to add new dataset dependent tests.

To prepare the test data simply cd test/data/ and then run make.

Running Tests

To build the unit tests:

cd build
+import{_ as a,o as n,c as e,ag as t}from"./chunks/framework.K54bclBu.js";const h=JSON.parse('{"title":"Testsuite","description":"","frontmatter":{},"headers":[],"relativePath":"testing.md","filePath":"testing.md"}'),p={name:"testing.md"};function i(o,s,l,r,c,d){return n(),e("div",null,[...s[0]||(s[0]=[t(`

Testsuite

OSRM comes with a testsuite containing both unit-tests using the Boost library and cucumber.js for scenario driven testing.

Unit Tests

For a general introduction on Boost.Test have a look at its docs.

Separate Test Binaries

Unit tests should be registered according to the sub-project they're in. If you want to write tests for utility functions, add them to the utility test binary. See CMakeLists.txt in the unit test directory for how to register new unit tests.

Using Boost.Test Primitives

There is a difference between only reporting a failed condition and aborting the test right at a failed condition. Have a look at BOOST_CHECK vs BOOST_REQUIRE. Instead of manually checking e.g. for equality, less than, if a function throws etc. use their corresponding Boost.Test primitives.

If you use BOOST_CHECK_EQUAL you have to implement operator<< for your type so that Boost.Test can print mismatches. If you do not want to do this, define BOOST_TEST_DONT_PRINT_LOG_VALUE (and undef it after the check call) or sidestep it with BOOST_CHECK(fst == snd);.

Test Fixture

If you need to test features on a real dataset (think about this twice: prefer cucumber and dataset-independent tests for their reproducibility and minimality), there is a fixed dataset in test/data. This dataset is a small extract and may not even contain all tags or edge cases. Furthermore this dataset is not in sync with what you see in up-to-date OSM maps or on the demo server. See the library tests for how to add new dataset dependent tests.

To prepare the test data simply cd test/data/ and then run make.

Running Tests

To build the unit tests:

cd build
 cmake ..
 make tests

You should see the compiled binaries in build/unit_tests, you can then run each suite individually:

./engine-tests

Cucumber

For a general introduction on cucumber in our testsuite, have a look at the wiki.

This documentation aims to supply a guideline on how to write cucumber tests that test new features introduced into osrm.

Test the feature

It is often tempting to reduce the test to a path and accompanying instructions. Instructions can and will change over the course of improving guidance.

Instructions should only be used when writing a feature located in features/guidance. All other features should avoid using instructions at all.

Write Tests to Scale

OSRM is a navigation engine. Tests should always consider this context.

An important implication is the grid size. If tests use a very small grid size, you run into the chance of instructions being omitted. For example:

Background:
     Given the profile "car"
diff --git a/docs/v26.5.0/assets/testing.md.CV2ZaUd4.lean.js b/docs/v26.5.0/assets/testing.md.D-4lJh86.lean.js
similarity index 66%
rename from docs/v26.5.0/assets/testing.md.CV2ZaUd4.lean.js
rename to docs/v26.5.0/assets/testing.md.D-4lJh86.lean.js
index f689ab8..1e48f5d 100644
--- a/docs/v26.5.0/assets/testing.md.CV2ZaUd4.lean.js
+++ b/docs/v26.5.0/assets/testing.md.D-4lJh86.lean.js
@@ -1 +1 @@
-import{_ as a,o as n,c as e,ag as t}from"./chunks/framework.C2NLiVii.js";const h=JSON.parse('{"title":"Testsuite","description":"","frontmatter":{},"headers":[],"relativePath":"testing.md","filePath":"testing.md"}'),p={name:"testing.md"};function i(o,s,l,r,c,d){return n(),e("div",null,[...s[0]||(s[0]=[t("",89)])])}const g=a(p,[["render",i]]);export{h as __pageData,g as default};
+import{_ as a,o as n,c as e,ag as t}from"./chunks/framework.K54bclBu.js";const h=JSON.parse('{"title":"Testsuite","description":"","frontmatter":{},"headers":[],"relativePath":"testing.md","filePath":"testing.md"}'),p={name:"testing.md"};function i(o,s,l,r,c,d){return n(),e("div",null,[...s[0]||(s[0]=[t("",89)])])}const g=a(p,[["render",i]]);export{h as __pageData,g as default};
diff --git a/docs/v26.5.0/assets/tools.md.DBA6o9B7.js b/docs/v26.5.0/assets/tools.md.C1AIXFhj.js
similarity index 99%
rename from docs/v26.5.0/assets/tools.md.DBA6o9B7.js
rename to docs/v26.5.0/assets/tools.md.C1AIXFhj.js
index 49275ff..0a3090c 100644
--- a/docs/v26.5.0/assets/tools.md.DBA6o9B7.js
+++ b/docs/v26.5.0/assets/tools.md.C1AIXFhj.js
@@ -1,4 +1,4 @@
-import{_ as e,o as d,c as o,ag as a}from"./chunks/framework.C2NLiVii.js";const m=JSON.parse('{"title":"Command-Line Tools","description":"","frontmatter":{},"headers":[],"relativePath":"tools.md","filePath":"tools.md"}'),s={name:"tools.md"};function i(r,t,n,c,l,h){return d(),o("div",null,[...t[0]||(t[0]=[a(`

Command-Line Tools

OSRM ships six command-line tools that cover the full data pipeline, from raw OSM data to a running routing server. All tools share a set of common options described below, followed by per-tool reference sections.

Common Options

These flags are accepted by every tool.

FlagShortDescription
--help-hShow the help message and exit.
--version-vShow the version string and exit.
--verbosity <level>-lLog verbosity: NONE, ERROR, WARNING, INFO (default), DEBUG.
--list-inputsPrint all required and optional input file extensions the tool expects, then exit. Useful for deployment scripts.
--threads <n>-tNumber of threads to use (default: number of logical CPUs).

--list-inputs

Prints one line per file in the format required|optional <extension>:

$ osrm-routed --list-inputs
+import{_ as e,o as d,c as o,ag as a}from"./chunks/framework.K54bclBu.js";const m=JSON.parse('{"title":"Command-Line Tools","description":"","frontmatter":{},"headers":[],"relativePath":"tools.md","filePath":"tools.md"}'),s={name:"tools.md"};function i(r,t,n,c,l,h){return d(),o("div",null,[...t[0]||(t[0]=[a(`

Command-Line Tools

OSRM ships six command-line tools that cover the full data pipeline, from raw OSM data to a running routing server. All tools share a set of common options described below, followed by per-tool reference sections.

Common Options

These flags are accepted by every tool.

FlagShortDescription
--help-hShow the help message and exit.
--version-vShow the version string and exit.
--verbosity <level>-lLog verbosity: NONE, ERROR, WARNING, INFO (default), DEBUG.
--list-inputsPrint all required and optional input file extensions the tool expects, then exit. Useful for deployment scripts.
--threads <n>-tNumber of threads to use (default: number of logical CPUs).

--list-inputs

Prints one line per file in the format required|optional <extension>:

$ osrm-routed --list-inputs
 required .osrm.datasource_names
 required .osrm.ebg_nodes
 required .osrm.edges
diff --git a/docs/v26.5.0/assets/tools.md.DBA6o9B7.lean.js b/docs/v26.5.0/assets/tools.md.C1AIXFhj.lean.js
similarity index 66%
rename from docs/v26.5.0/assets/tools.md.DBA6o9B7.lean.js
rename to docs/v26.5.0/assets/tools.md.C1AIXFhj.lean.js
index 8a71806..e273963 100644
--- a/docs/v26.5.0/assets/tools.md.DBA6o9B7.lean.js
+++ b/docs/v26.5.0/assets/tools.md.C1AIXFhj.lean.js
@@ -1 +1 @@
-import{_ as e,o as d,c as o,ag as a}from"./chunks/framework.C2NLiVii.js";const m=JSON.parse('{"title":"Command-Line Tools","description":"","frontmatter":{},"headers":[],"relativePath":"tools.md","filePath":"tools.md"}'),s={name:"tools.md"};function i(r,t,n,c,l,h){return d(),o("div",null,[...t[0]||(t[0]=[a("",45)])])}const u=e(s,[["render",i]]);export{m as __pageData,u as default};
+import{_ as e,o as d,c as o,ag as a}from"./chunks/framework.K54bclBu.js";const m=JSON.parse('{"title":"Command-Line Tools","description":"","frontmatter":{},"headers":[],"relativePath":"tools.md","filePath":"tools.md"}'),s={name:"tools.md"};function i(r,t,n,c,l,h){return d(),o("div",null,[...t[0]||(t[0]=[a("",45)])])}const u=e(s,[["render",i]]);export{m as __pageData,u as default};
diff --git a/docs/v26.5.0/assets/windows-deps.md.g5icV0ej.js b/docs/v26.5.0/assets/windows-deps.md.CiKv06OD.js
similarity index 96%
rename from docs/v26.5.0/assets/windows-deps.md.g5icV0ej.js
rename to docs/v26.5.0/assets/windows-deps.md.CiKv06OD.js
index ce463f2..4d88b6d 100644
--- a/docs/v26.5.0/assets/windows-deps.md.g5icV0ej.js
+++ b/docs/v26.5.0/assets/windows-deps.md.CiKv06OD.js
@@ -1,4 +1,4 @@
-import{_ as i,o as s,c as a,ag as n}from"./chunks/framework.C2NLiVii.js";const u=JSON.parse('{"title":"Building OSRM for Windows","description":"","frontmatter":{},"headers":[],"relativePath":"windows-deps.md","filePath":"windows-deps.md"}'),t={name:"windows-deps.md"};function o(r,e,d,l,p,h){return s(),a("div",null,[...e[0]||(e[0]=[n(`

Building OSRM for Windows

There is experimental support for building OSRM on Windows.

Dependencies

You will need a modern Windows development stack (e.g. Visual Studio 17). The published binaries are built with Windows Server 2025 Github hosted runners.

Dependencies are managed via vcpkg in manifest mode (see vcpkg.json at the repo root). The baseline commit is pinned in vcpkg-configuration.json.

Prerequisites

  1. Install Visual Studio 2022 with the "Desktop development with C++" workload.
  2. Clone vcpkg and bootstrap it:
bat
git clone https://github.com/microsoft/vcpkg.git C:\\vcpkg
+import{_ as i,o as s,c as a,ag as n}from"./chunks/framework.K54bclBu.js";const u=JSON.parse('{"title":"Building OSRM for Windows","description":"","frontmatter":{},"headers":[],"relativePath":"windows-deps.md","filePath":"windows-deps.md"}'),t={name:"windows-deps.md"};function o(r,e,d,l,p,h){return s(),a("div",null,[...e[0]||(e[0]=[n(`

Building OSRM for Windows

There is experimental support for building OSRM on Windows.

Dependencies

You will need a modern Windows development stack (e.g. Visual Studio 17). The published binaries are built with Windows Server 2025 Github hosted runners.

Dependencies are managed via vcpkg in manifest mode (see vcpkg.json at the repo root). The baseline commit is pinned in vcpkg-configuration.json.

Prerequisites

  1. Install Visual Studio 2022 with the "Desktop development with C++" workload.
  2. Clone vcpkg and bootstrap it:
bat
git clone https://github.com/microsoft/vcpkg.git C:\\vcpkg
 C:\\vcpkg\\bootstrap-vcpkg.bat
 set VCPKG_ROOT=C:\\vcpkg

Building

From a x64 Native Tools Command Prompt for VS 2022 at the repo root:

bat
cmake --preset ci-windows -DENABLE_NODE_BINDINGS=ON
 cmake --build --preset ci-windows

The first configure will build every dependency from source, which takes a while. Subsequent configures reuse vcpkg's binary cache.

`,12)])])}const g=i(t,[["render",o]]);export{u as __pageData,g as default}; diff --git a/docs/v26.5.0/assets/windows-deps.md.g5icV0ej.lean.js b/docs/v26.5.0/assets/windows-deps.md.CiKv06OD.lean.js similarity index 69% rename from docs/v26.5.0/assets/windows-deps.md.g5icV0ej.lean.js rename to docs/v26.5.0/assets/windows-deps.md.CiKv06OD.lean.js index a05e04e..1feb25f 100644 --- a/docs/v26.5.0/assets/windows-deps.md.g5icV0ej.lean.js +++ b/docs/v26.5.0/assets/windows-deps.md.CiKv06OD.lean.js @@ -1 +1 @@ -import{_ as i,o as s,c as a,ag as n}from"./chunks/framework.C2NLiVii.js";const u=JSON.parse('{"title":"Building OSRM for Windows","description":"","frontmatter":{},"headers":[],"relativePath":"windows-deps.md","filePath":"windows-deps.md"}'),t={name:"windows-deps.md"};function o(r,e,d,l,p,h){return s(),a("div",null,[...e[0]||(e[0]=[n("",12)])])}const g=i(t,[["render",o]]);export{u as __pageData,g as default}; +import{_ as i,o as s,c as a,ag as n}from"./chunks/framework.K54bclBu.js";const u=JSON.parse('{"title":"Building OSRM for Windows","description":"","frontmatter":{},"headers":[],"relativePath":"windows-deps.md","filePath":"windows-deps.md"}'),t={name:"windows-deps.md"};function o(r,e,d,l,p,h){return s(),a("div",null,[...e[0]||(e[0]=[n("",12)])])}const g=i(t,[["render",o]]);export{u as __pageData,g as default}; diff --git a/docs/v26.5.0/cucumber.html b/docs/v26.5.0/cucumber.html index 05b54f8..d771fd6 100644 --- a/docs/v26.5.0/cucumber.html +++ b/docs/v26.5.0/cucumber.html @@ -6,20 +6,20 @@ Cucumber | OSRM API Documentation - - + + - - - - - + + + + + -
Skip to content

Cucumber

This documentation describes the technical aspects of our cucumber test suite.

tl;dr

Run the Cucumber tests with:

bash
$ npm test

Single OSRM Configuration

An OSRM configuration consists of a routing algorithm and a data load method. OSRM currently supports the routing algorithms:

  • ch (Contraction Hierarchy), and
  • mld (Multi-Level-Dijkstra)

and the data load methods:

  • directly (load the files into memory),
  • mmap (use memory mapped files), and
  • datastore (use shared memory).

To test all scenarios with a single OSRM configuration, say:

bash
$ npx cucumber-js -p home -p mld -p mmap --parallel 8 --fail-fast

Explanations follow:

Profiles

Profiles are chosen with the -p commandline argument. Cucumber profiles allow you to change multiple configuration items with just one commandline argument. If you set more than one profile they are all merged into one configuration.

Note: Cucumber profiles should not be confused with OSRM profiles. Cucumber profiles are defined in cucumber.mjs. OSRM profiles reside in the profiles/*.lua files.

Our implementation offers following stock profiles. You should always use one base profile followed by zero or more additional profiles.

Name
homeBase profile to use on a developer machine
githubBase profile to use on the github CI server
chAdditional profile that selects the CH algorithm
mldAdditional profile that selects the MLD algorithm
mmapAdditional profile that selects the mmap data load method
directlyAdditional profile that selects the directly data load method
datastoreAdditional profile that selects the datastore data load method
stressAdditional profile that selects only @stress tests
todoAdditional profile that selects only @todo tests
allAdditional profile that selects all tests

Arguments

Here is a description of all arguments you can pass to Cucumber. The interesting ones probably are: --fail-fast, --format, --parallel, and --tags.

Note: when using --parallel N make sure there are N contiguous free ports at the configured port number (eg. at ports 5000--5000+N).

All OSRM Configurations

We provide a shortcut to run all 6 configurations:

bash
$ npm test

This is how the tests are run on the CI server. You can pass the same arguments as mentioned above.

Cache

To speed up subsequent runs with the same parameters, the files generated by Cucumber and the by the OSRM extraction chain are held in a cache directory. This cache is located by default in test/cache and should be cleaned periodically:

bash
$ rm -rf test/cache

Configuration

The whole configuration is done in cucumber.mjs. You can either edit worldParameters in cucumber.mjs or use environment variables to override single defaults.

worldParametersEnvironment VariableDefaults to
CUCUMBER_TIMEOUT5000Scenario timeout in ms.
httpTimeoutCUCUMBER_HTTP_TIMEOUT2000HTTP timeout in ms.
testPathCUCUMBER_TEST_PATHtestThe test directory
profilesPathCUCUMBER_PROFILES_PATHprofilesThe profiles directory
logsPathCUCUMBER_LOGS_PATHtest/logsThe logs directory
cachePathCUCUMBER_CACHE_PATHtest/cacheThe cache directory
buildPathOSRM_BUILD_DIRbuildPath to the binaries
loadMethodOSRM_LOAD_METHODdatastoreData load method
algorithmOSRM_ALGORITHMchRouting algorithm
ipOSRM_IP127.0.0.1IP Address
portOSRM_PORT5000IP Port

The default Cucumber timeout can be changed by setting the environment variable CUCUMBER_TIMEOUT. This is discouraged, because the default timeout of 5 seconds is plenty for the problem sizes we are dealing with. The probable reasons for a test timing out are that osrm-routed died or that sync between osrm-datastore and osrm-routed was lost.

Other environment variables

OSRM_RASTER_SOURCE is set by 'Given the raster source' and is supposed to be read back in your profiles/*.lua profile by os.getenv('OSRM_RASTER_SOURCE').

OSRM_PROFILE See: Pull Request #4516

Tags

Single scenarios or whole feature files can be tagged. Tag names can be selected arbitrarily although it is best to conform to the tags already used. Eg. the tag @guidance can be used to run only those tests related to the guidance feature:

bash
$ npm test -- --tags @guidance

We also support following special tags:

TagA scenario thus tagged ...
@isolatedwill not run while any other scenario is running in parallel
@with_(datastore|directly|mmap)will be executed iff the load method matches
@no_(datastore|directly|mmap)will be executed unless the load method matches
@with_(ch|mld)will be executed iff the algorithm matches
@no_(ch|mld)will be executed unless the algorithm matches
@with_(linux|darwin|win32)will be executed iff the OS matches
@no_(linux|darwin|win32)will be executed unless the OS matches

A test that calls osrm-datastore --spring-clean should not run concurrently with any other test, thus the tag @isolated should be applied. A test that runs or kills osrm-routed should not run while testing the datastore load method, and thus should be labeled with the tag @no_datastore.

- +
Skip to content

Cucumber

This documentation describes the technical aspects of our cucumber test suite.

tl;dr

Run the Cucumber tests with:

bash
$ npm test

Single OSRM Configuration

An OSRM configuration consists of a routing algorithm and a data load method. OSRM currently supports the routing algorithms:

  • ch (Contraction Hierarchy), and
  • mld (Multi-Level-Dijkstra)

and the data load methods:

  • directly (load the files into memory),
  • mmap (use memory mapped files), and
  • datastore (use shared memory).

To test all scenarios with a single OSRM configuration, say:

bash
$ npx cucumber-js -p home -p mld -p mmap --parallel 8 --fail-fast

Explanations follow:

Profiles

Profiles are chosen with the -p commandline argument. Cucumber profiles allow you to change multiple configuration items with just one commandline argument. If you set more than one profile they are all merged into one configuration.

Note: Cucumber profiles should not be confused with OSRM profiles. Cucumber profiles are defined in cucumber.mjs. OSRM profiles reside in the profiles/*.lua files.

Our implementation offers following stock profiles. You should always use one base profile followed by zero or more additional profiles.

Name
homeBase profile to use on a developer machine
githubBase profile to use on the github CI server
chAdditional profile that selects the CH algorithm
mldAdditional profile that selects the MLD algorithm
mmapAdditional profile that selects the mmap data load method
directlyAdditional profile that selects the directly data load method
datastoreAdditional profile that selects the datastore data load method
stressAdditional profile that selects only @stress tests
todoAdditional profile that selects only @todo tests
allAdditional profile that selects all tests

Arguments

Here is a description of all arguments you can pass to Cucumber. The interesting ones probably are: --fail-fast, --format, --parallel, and --tags.

Note: when using --parallel N make sure there are N contiguous free ports at the configured port number (eg. at ports 5000--5000+N).

All OSRM Configurations

We provide a shortcut to run all 6 configurations:

bash
$ npm test

This is how the tests are run on the CI server. You can pass the same arguments as mentioned above.

Cache

To speed up subsequent runs with the same parameters, the files generated by Cucumber and the by the OSRM extraction chain are held in a cache directory. This cache is located by default in test/cache and should be cleaned periodically:

bash
$ rm -rf test/cache

Configuration

The whole configuration is done in cucumber.mjs. You can either edit worldParameters in cucumber.mjs or use environment variables to override single defaults.

worldParametersEnvironment VariableDefaults to
CUCUMBER_TIMEOUT5000Scenario timeout in ms.
httpTimeoutCUCUMBER_HTTP_TIMEOUT2000HTTP timeout in ms.
testPathCUCUMBER_TEST_PATHtestThe test directory
profilesPathCUCUMBER_PROFILES_PATHprofilesThe profiles directory
logsPathCUCUMBER_LOGS_PATHtest/logsThe logs directory
cachePathCUCUMBER_CACHE_PATHtest/cacheThe cache directory
buildPathOSRM_BUILD_DIRbuildPath to the binaries
loadMethodOSRM_LOAD_METHODdatastoreData load method
algorithmOSRM_ALGORITHMchRouting algorithm
ipOSRM_IP127.0.0.1IP Address
portOSRM_PORT5000IP Port

The default Cucumber timeout can be changed by setting the environment variable CUCUMBER_TIMEOUT. This is discouraged, because the default timeout of 5 seconds is plenty for the problem sizes we are dealing with. The probable reasons for a test timing out are that osrm-routed died or that sync between osrm-datastore and osrm-routed was lost.

Other environment variables

OSRM_RASTER_SOURCE is set by 'Given the raster source' and is supposed to be read back in your profiles/*.lua profile by os.getenv('OSRM_RASTER_SOURCE').

OSRM_PROFILE See: Pull Request #4516

Tags

Single scenarios or whole feature files can be tagged. Tag names can be selected arbitrarily although it is best to conform to the tags already used. Eg. the tag @guidance can be used to run only those tests related to the guidance feature:

bash
$ npm test -- --tags @guidance

We also support following special tags:

TagA scenario thus tagged ...
@isolatedwill not run while any other scenario is running in parallel
@with_(datastore|directly|mmap)will be executed iff the load method matches
@no_(datastore|directly|mmap)will be executed unless the load method matches
@with_(ch|mld)will be executed iff the algorithm matches
@no_(ch|mld)will be executed unless the algorithm matches
@with_(linux|darwin|win32)will be executed iff the OS matches
@no_(linux|darwin|win32)will be executed unless the OS matches

A test that calls osrm-datastore --spring-clean should not run concurrently with any other test, thus the tag @isolated should be applied. A test that runs or kills osrm-routed should not run while testing the datastore load method, and thus should be labeled with the tag @no_datastore.

+ \ No newline at end of file diff --git a/docs/v26.5.0/developing.html b/docs/v26.5.0/developing.html index 7f793fb..149f33c 100644 --- a/docs/v26.5.0/developing.html +++ b/docs/v26.5.0/developing.html @@ -6,20 +6,20 @@ Developing / Debugging guidance code | OSRM API Documentation - - + + - - - - - + + + + + -
Skip to content

Developing / Debugging guidance code

When changing guidance code, it is easy to introduce problems somewhere in the network. To get a better feeling of how your changes impact the OSRM experience, we offer ways of generating geojson output to inspect (e.g. with Mapbox Studio). When you do changes, make sure to inspect a few areas for the impact of the changes.

How to use GeoJson-Debugging

This is a short guide to describe usage of our GeoJson debug logging mechanism. It is synchronized to guarantee thread-safe logging.

Outputting into a single file

To use it, the inclusion of geojson_debug_logger.hpp geojson_debug_policies.hpp from the util directory is required.

Geojson debugging requires a few simple steps to output data into a feature collection.

  • Create a Scoped Guard that lives through the process and provide it with all required datastructures (it needs to span the lifetime of all your logging efforts)
  • At the location of the output, simply call Write with your own parameters.

A guard (ScopedGeojsonLoggerGuard) requires a logging policy. Per default we provide a way of printing out node-ids as coordinates.

The initialisation to do so looks like this: util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", data-for-conversion); Make sure to give the guard a name, so it actually gets a lifetime.

The field data-for-conversion can be an arbitrary long set of features and needs to match the parameters used for constructing our policy (in this case util::NodeIdVectorToLineString).

The policy itself offers a operator() accepting a vector of NodeID.

For outputting data into our file (debug.geojson), we simply need to call the matching logging routine of the guard: util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString>::Write(list_of_node_ids); (or guard.Write(list_of_node_ids) if you created an instance).

Possible Scopeguard Location

Think of the scopeguard as you would do of any reference. If you want to access logging during a call, the guard object must be alive and valid.

As an example: a good location to create a scopeguard to log decisions in the edge-based-graph-factory would be right before we run it (here). If you put util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", node_coordinate_vector); at that location, you can then print util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString>::Write(list_of_node_ids); anywhere within the edge-based-graph-factory.

This location would enable calls for all guidance related pre-processing which is called in the edge-based-graph-factory. Logging any turn-handler decisions, for example, would now be possible.

Limitations

GeoJson debugging requires a single GeoJsonGuard (ScopedGeojsonLoggerGuard) for each desired output file. For each set of template parameters, only the most recent guard will actually produce output.

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", data-for-conversion);

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug-2.geojson", data-for-conversion);

Will not provide a way to write into two files, but only debug-2 will actually contain features.

We cannot nest these calls.

If we want to use the same policy for multiple files, we need to use different template parameters both for the logger and the guard.

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,0> geojson_guard( "debug.geojson", data-for-conversion);

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,1> geojson_guard( "debug-2.geojson", data-for-conversion);

as well as,

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,0>::Write(list_of_node_ids);

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,1>::Write(list_of_node_ids);

- +
Skip to content

Developing / Debugging guidance code

When changing guidance code, it is easy to introduce problems somewhere in the network. To get a better feeling of how your changes impact the OSRM experience, we offer ways of generating geojson output to inspect (e.g. with Mapbox Studio). When you do changes, make sure to inspect a few areas for the impact of the changes.

How to use GeoJson-Debugging

This is a short guide to describe usage of our GeoJson debug logging mechanism. It is synchronized to guarantee thread-safe logging.

Outputting into a single file

To use it, the inclusion of geojson_debug_logger.hpp geojson_debug_policies.hpp from the util directory is required.

Geojson debugging requires a few simple steps to output data into a feature collection.

  • Create a Scoped Guard that lives through the process and provide it with all required datastructures (it needs to span the lifetime of all your logging efforts)
  • At the location of the output, simply call Write with your own parameters.

A guard (ScopedGeojsonLoggerGuard) requires a logging policy. Per default we provide a way of printing out node-ids as coordinates.

The initialisation to do so looks like this: util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", data-for-conversion); Make sure to give the guard a name, so it actually gets a lifetime.

The field data-for-conversion can be an arbitrary long set of features and needs to match the parameters used for constructing our policy (in this case util::NodeIdVectorToLineString).

The policy itself offers a operator() accepting a vector of NodeID.

For outputting data into our file (debug.geojson), we simply need to call the matching logging routine of the guard: util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString>::Write(list_of_node_ids); (or guard.Write(list_of_node_ids) if you created an instance).

Possible Scopeguard Location

Think of the scopeguard as you would do of any reference. If you want to access logging during a call, the guard object must be alive and valid.

As an example: a good location to create a scopeguard to log decisions in the edge-based-graph-factory would be right before we run it (here). If you put util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", node_coordinate_vector); at that location, you can then print util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString>::Write(list_of_node_ids); anywhere within the edge-based-graph-factory.

This location would enable calls for all guidance related pre-processing which is called in the edge-based-graph-factory. Logging any turn-handler decisions, for example, would now be possible.

Limitations

GeoJson debugging requires a single GeoJsonGuard (ScopedGeojsonLoggerGuard) for each desired output file. For each set of template parameters, only the most recent guard will actually produce output.

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug.geojson", data-for-conversion);

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString> geojson_guard( "debug-2.geojson", data-for-conversion);

Will not provide a way to write into two files, but only debug-2 will actually contain features.

We cannot nest these calls.

If we want to use the same policy for multiple files, we need to use different template parameters both for the logger and the guard.

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,0> geojson_guard( "debug.geojson", data-for-conversion);

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,1> geojson_guard( "debug-2.geojson", data-for-conversion);

as well as,

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,0>::Write(list_of_node_ids);

util::ScopedGeojsonLoggerGuard<util::NodeIdVectorToLineString,1>::Write(list_of_node_ids);

+ \ No newline at end of file diff --git a/docs/v26.5.0/hashmap.json b/docs/v26.5.0/hashmap.json index 08411c8..1f43872 100644 --- a/docs/v26.5.0/hashmap.json +++ b/docs/v26.5.0/hashmap.json @@ -1 +1 @@ -{"cucumber.md":"B5iBKzmw","developing.md":"CHbv2cLk","http.md":"B98BbSjI","index.md":"BuTlAqVr","libosrm.md":"BKkADM6U","nodejs_api.md":"B1H4WFni","profiles.md":"PHAThxX1","python_api.md":"BMYgTnwH","python_development.md":"DMJOl9Fk","releasing.md":"D_HqADus","routed.md":"B7b7kZju","testing.md":"CV2ZaUd4","tools.md":"DBA6o9B7","windows-deps.md":"g5icV0ej"} +{"cucumber.md":"CPJj3-i4","developing.md":"DuNcRcq_","http.md":"B26Skzz9","index.md":"B-SvR98-","libosrm.md":"DJV8RZ0M","nodejs_api.md":"VFRwkv3t","profiles.md":"CEdsuSs_","python_api.md":"D_vXIkcy","python_development.md":"ceDaNHXn","releasing.md":"PQlJEQ0e","routed.md":"D1fkRXeU","testing.md":"D-4lJh86","tools.md":"C1AIXFhj","windows-deps.md":"CiKv06OD"} diff --git a/docs/v26.5.0/http.html b/docs/v26.5.0/http.html index 726765e..98603f2 100644 --- a/docs/v26.5.0/http.html +++ b/docs/v26.5.0/http.html @@ -6,19 +6,19 @@ OSRM HTTP server | OSRM API Documentation - - + + - - - - - + + + + + -
Skip to content

OSRM HTTP server

The built-in HTTP server is a basic HTTP/1.0 server that supports a 'keep-alive' extension. Persistent connections are limited to 512 requests per connection and allow no more than 5 seconds between requests.

General options

All OSRM HTTP requests use a common structure.

The following syntax applies to all services, except as noted.

Requests

GET
/{service}/{version}/{profile}/{coordinates}[.{format}]?option=value&option=value
ParameterDescription
serviceOne of the following values: route, nearest, table, match, trip, tile
versionVersion of the protocol implemented by the service. v1 for all OSRM 5.x installations
profileMode of transportation, is determined statically by the Lua profile that is used to prepare the data using osrm-extract. Typically car, bike or foot if using one of the supplied profiles.
coordinatesString of format {longitude},{latitude};{longitude},{latitude}[;{longitude},{latitude} ...] or polyline({polyline}) or polyline6({polyline6}).
formatjson or flatbuffers. This parameter is optional and defaults to json.

Passing any option=value is optional. polyline follows Google's polyline format with precision 5 by default and can be generated using this package.

To pass parameters to each location some options support an array-like encoding:

Request options

OptionValuesDescription
bearings{bearing};{bearing}[;{bearing} ...]Limits the search to segments with given bearing in degrees towards true north in a clockwise direction.
radiuses{radius};{radius}[;{radius} ...]Limits the search to given radius in meters.
generate_hintstrue (default), falseAdds a Hint to the response which can be used in subsequent requests, see hints parameter.
hints{hint};{hint}[;{hint} ...]Hint from previous request to derive position in street network.
approaches{approach};{approach}[;{approach} ...]Restrict the direction on the road network at a waypoint, relative to the input coordinate.
exclude{class}[,{class}]Additive list of classes to avoid, the order does not matter.
snappingdefault (default), anyDefault snapping avoids is_startpoint (see profile) edges, any will snap to any edge in the graph
skip_waypointstrue, false (default)Removes waypoints from the response. Waypoints are still calculated, but not serialized. Could be useful in case you are interested in some other part of the response and do not want to transfer waste data.

Where the elements follow the following format:

ElementValues
bearing{value},{range} integer 0 .. 360,integer 0 .. 180
radiusdouble >= 0 or unlimited (default)
hintBase64 string
approachcurb, opposite or unrestricted (default)
classA class name determined by the profile or none.
{option}={element};{element}[;{element} ... ]

The number of elements must match exactly the number of locations (except for generate_hints and exclude). If you don't want to pass a value but instead use the default you can pass an empty element.

Example: 2nd location uses the default value for option:

{option}={element};;{element}

Example Requests

bash
# Query on Berlin with three coordinates:
+    
Skip to content

OSRM HTTP server

The built-in HTTP server is a basic HTTP/1.0 server that supports a 'keep-alive' extension. Persistent connections are limited to 512 requests per connection and allow no more than 5 seconds between requests.

General options

All OSRM HTTP requests use a common structure.

The following syntax applies to all services, except as noted.

Requests

GET
/{service}/{version}/{profile}/{coordinates}[.{format}]?option=value&option=value
ParameterDescription
serviceOne of the following values: route, nearest, table, match, trip, tile
versionVersion of the protocol implemented by the service. v1 for all OSRM 5.x installations
profileMode of transportation, is determined statically by the Lua profile that is used to prepare the data using osrm-extract. Typically car, bike or foot if using one of the supplied profiles.
coordinatesString of format {longitude},{latitude};{longitude},{latitude}[;{longitude},{latitude} ...] or polyline({polyline}) or polyline6({polyline6}).
formatjson or flatbuffers. This parameter is optional and defaults to json.

Passing any option=value is optional. polyline follows Google's polyline format with precision 5 by default and can be generated using this package.

To pass parameters to each location some options support an array-like encoding:

Request options

OptionValuesDescription
bearings{bearing};{bearing}[;{bearing} ...]Limits the search to segments with given bearing in degrees towards true north in a clockwise direction.
radiuses{radius};{radius}[;{radius} ...]Limits the search to given radius in meters.
generate_hintstrue (default), falseAdds a Hint to the response which can be used in subsequent requests, see hints parameter.
hints{hint};{hint}[;{hint} ...]Hint from previous request to derive position in street network.
approaches{approach};{approach}[;{approach} ...]Restrict the direction on the road network at a waypoint, relative to the input coordinate.
exclude{class}[,{class}]Additive list of classes to avoid, the order does not matter.
snappingdefault (default), anyDefault snapping avoids is_startpoint (see profile) edges, any will snap to any edge in the graph
skip_waypointstrue, false (default)Removes waypoints from the response. Waypoints are still calculated, but not serialized. Could be useful in case you are interested in some other part of the response and do not want to transfer waste data.

Where the elements follow the following format:

ElementValues
bearing{value},{range} integer 0 .. 360,integer 0 .. 180
radiusdouble >= 0 or unlimited (default)
hintBase64 string
approachcurb, opposite or unrestricted (default)
classA class name determined by the profile or none.
{option}={element};{element}[;{element} ... ]

The number of elements must match exactly the number of locations (except for generate_hints and exclude). If you don't want to pass a value but instead use the default you can pass an empty element.

Example: 2nd location uses the default value for option:

{option}={element};;{element}

Example Requests

bash
# Query on Berlin with three coordinates:
 curl 'http://router.project-osrm.org/route/v1/driving/13.388860,52.517037;13.397634,52.529407;13.428555,52.523219?overview=false'
 
 # Query on Berlin excluding the usage of motorways:
@@ -185,7 +185,7 @@
 }

Match service

Map matching matches/snaps given GPS points to the road network in the most plausible way. Please note the request might result in multiple sub-traces. Large jumps in the timestamps (> 60s) or improbable transitions lead to trace splits if a complete matching could not be found. The algorithm might not be able to match all points. Outliers are removed if they can not be matched successfully.

GET
/match/v1/{profile}/{coordinates}?steps={true|false}&geometries={polyline|polyline6|geojson}&overview={simplified|full|false}&annotations={true|false}

In addition to the general options the following options are supported for this service:

OptionValuesDescription
stepstrue, false (default)Returned route steps for each route
geometriespolyline (default), polyline6, geojsonReturned route geometry format (influences overview and per step)
annotationstrue, false (default), nodes, distance, duration, datasources, weight, speedReturns additional metadata for each coordinate along the route geometry.
overviewsimplified (default), full, false, by_legsAdd overview geometry either full, simplified according to highest zoom level it could be displayed on, not at all, or split by leg.
timestamps{timestamp};{timestamp}[;{timestamp} ...]Timestamps for the input locations in seconds since UNIX epoch. Timestamps need to be monotonically increasing.
radiuses{radius};{radius}[;{radius} ...]Standard deviation of GPS precision used for map matching. If applicable use GPS accuracy.
gapssplit (default), ignoreAllows the input track splitting based on huge timestamp gaps between points.
tidytrue, false (default)Allows the input track modification to obtain better matching quality for noisy tracks.
waypoints{index};{index};{index}...Treats input coordinates indicated by given indices as waypoints in returned Match object. Default is to treat all input coordinates as waypoints.
ParameterValues
timestampinteger seconds since UNIX epoch
radiusdouble >= 0 (default 5m)

The radius for each point should be the standard error of the location measured in meters from the true location. Use Location.getAccuracy() on Android or CLLocation.horizontalAccuracy on iOS. This value is used to determine which points should be considered as candidates (larger radius means more candidates) and how likely each candidate is (larger radius means far-away candidates are penalized less). The area to search is chosen such that the correct candidate should be considered 99.9% of the time (for more details see this ticket).

Response

  • code if the request was successful Ok otherwise see the service dependent and general status codes.
  • tracepoints: Array of Waypoint objects representing all points of the trace in order. If the tracepoint was omitted by map matching because it is an outlier, the entry will be null. Each Waypoint object has the following additional properties:
    • matchings_index: Index to the Route object in matchings the sub-trace was matched to.
    • waypoint_index: Index of the waypoint inside the matched route.
    • alternatives_count: Number of probable alternative matchings for this tracepoint. A value of zero indicates that this point was matched unambiguously. Split the trace at these points for incremental map matching.
  • matchings: An array of Route objects that assemble the trace. Each Route object has the following additional properties:
    • confidence: Confidence of the matching. float value between 0 and 1. 1 is very confident that the matching is correct.

In case of error the following codes are supported in addition to the general ones:

TypeDescription
NoMatchNo matchings found.

All other properties might be undefined.

Trip service

The trip plugin solves the Traveling Salesman Problem using a greedy heuristic (farthest-insertion algorithm) for 10 or more waypoints and uses brute force for less than 10 waypoints. The returned path does not have to be the fastest one. As TSP is NP-hard it only returns an approximation. Note that all input coordinates have to be connected for the trip service to work.

GET
/trip/v1/{profile}/{coordinates}?roundtrip={true|false}&source={any|first}&destination={any|last}&steps={true|false}&geometries={polyline|polyline6|geojson}&overview={simplified|full|false}&annotations={true|false}

In addition to the general options the following options are supported for this service:

OptionValuesDescription
roundtriptrue (default), falseReturned route is a roundtrip (route returns to first location)
sourceany (default), firstReturned route starts at any or first coordinate
destinationany (default), lastReturned route ends at any or last coordinate
stepstrue, false (default)Returned route instructions for each trip
annotationstrue, false (default), nodes, distance, duration, datasources, weight, speedReturns additional metadata for each coordinate along the route geometry.
geometriespolyline (default), polyline6, geojsonReturned route geometry format (influences overview and per step)
overviewsimplified (default), full, false, by_legsAdd overview geometry either full, simplified according to highest zoom level it could be displayed on, not at all, or split by leg.

Fixing Start and End Points

It is possible to explicitly set the start or end coordinate of the trip. When the source is set to first, the first coordinate is used as the start coordinate of the trip in the output. When the destination is set to last, the last coordinate will be used as the destination of the trip in the returned output. If you specify any, any of the coordinates can be used as the first or last coordinate in the output.

However, if source=any&destination=any the returned round-trip will still start at the first input coordinate by default.

Currently, not all combinations of roundtrip, source, and destination are supported. Right now, the following combinations are possible:

roundtripsourcedestinationsupported
truefirstlastyes
truefirstanyyes
trueanylastyes
trueanyanyyes
falsefirstlastyes
falsefirstanyyes
falseanylastyes
falseanyanyno

Example Requests

bash
# Round trip in Berlin with three stops:
 curl 'http://router.project-osrm.org/trip/v1/driving/13.388860,52.517037;13.397634,52.529407;13.428555,52.523219'
bash
# Round trip in Berlin with four stops, starting at the first stop, ending at the last:
 curl 'http://router.project-osrm.org/trip/v1/driving/13.388860,52.517037;13.397634,52.529407;13.428555,52.523219;13.418555,52.523215?source=first&destination=last'

Response

  • code: if the request was successful Ok otherwise see the service dependent and general status codes.
  • waypoints: Array of Waypoint objects representing all waypoints in input order. Each Waypoint object has the following additional properties:
    • trips_index: Index to trips of the sub-trip the point was matched to.
    • waypoint_index: Index of the point in the trip.
  • trips: An array of Route objects that assemble the trace.

In case of error the following codes are supported in addition to the general ones:

TypeDescription
NoTripsNo trips found because input coordinates are not connected.
NotImplementedThis request is not supported

All other properties might be undefined.

Tile service

This service generates Mapbox Vector Tiles that can be viewed with a vector-tile capable slippy-map viewer. The tiles contain road geometries and metadata that can be used to examine the routing graph. The tiles are generated directly from the data in-memory, so are in sync with actual routing results, and let you examine which roads are actually routable, and what weights they have applied.

GET
/tile/v1/{profile}/tile({x},{y},{zoom}).mvt

The x, y, and zoom values are the same as described at https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames, and are supported by vector tile viewers like Mapbox GL JS.

Example request

bash
# This fetches a Z=13 tile for downtown San Francisco:
-curl 'http://router.project-osrm.org/tile/v1/car/tile(1310,3166,13).mvt'

Example response

example rendered tilehttp://map.project-osrm.org/debug/#14.33/52.5212/13.3919

The response object is either a binary encoded blob with a Content-Type of application/x-protobuf, or a 404 error. Note that OSRM is hard-coded to only return tiles from zoom level 12 and higher (to avoid accidentally returning extremely large vector tiles).

Vector tiles contain two layers:

speeds layer:

PropertyTypeDescription
speedintegerthe speed on that road segment, in km/h
is_smallbooleanwhether this segment belongs to a small (< 1000 node) strongly connected component
datasourcestringthe source for the speed value (normally lua profile unless you're using the traffic update feature, in which case it contains the stem of the filename that supplied the speed value for this segment
durationfloathow long this segment takes to traverse, in seconds. This value is to calculate the total route ETA.
weight integerhow long this segment takes to traverse, in units (may differ from duration when artificial biasing is applied in the Lua profiles). ACTUAL ROUTING USES THIS VALUE.
namestringthe name of the road this segment belongs to
ratefloatthe value of length/weight - analogous to speed, but using the weight value rather than duration, rounded to the nearest integer
is_startpointbooleanwhether this segment can be used as a start/endpoint for routes

turns layer:

PropertyTypeDescription
bearing_inintegerthe absolute bearing that approaches the intersection. -180 to +180, 0 = North, 90 = East
turn_angleintegerthe angle of the turn, relative to the bearing_in. -180 to +180, 0 = straight ahead, 90 = 90-degrees to the right
costfloatthe time we think it takes to make that turn, in seconds. May be negative, depending on how the data model is constructed (some turns get a "bonus").
weightfloatthe weight we think it takes to make that turn. May be negative, depending on how the data model is constructed (some turns get a "bonus"). ACTUAL ROUTING USES THIS VALUE
typestringthe type of this turn - values like turn, continue, etc. See the StepManeuver for a partial list, this field also exposes internal turn types that are never returned with an API response
modifierstringthe direction modifier of the turn (left, sharp left, etc)

Result objects

Route object

Represents a route through (potentially multiple) waypoints.

Properties

  • distance: The distance traveled by the route, in float meters.
  • duration: The estimated travel time, in float number of seconds.
  • geometry: The whole geometry of the route value depending on overview parameter, format depending on the geometries parameter. See RouteStep's geometry property for the parameter documentation.
  • weight: The calculated weight of the route.
  • weight_name: The name of the weight profile used during the extraction phase.
overviewDescription
simplifiedGeometry is simplified according to the highest zoom level it can still be displayed in full.
fullGeometry is not simplified.
falseGeometry is not added.
  • legs: The legs between the given waypoints, an array of RouteLeg objects.

Example

Three input coordinates, geometry=geojson, steps=false:

json
{
+curl 'http://router.project-osrm.org/tile/v1/car/tile(1310,3166,13).mvt'

Example response

example rendered tilehttp://map.project-osrm.org/debug/#14.33/52.5212/13.3919

The response object is either a binary encoded blob with a Content-Type of application/x-protobuf, or a 404 error. Note that OSRM is hard-coded to only return tiles from zoom level 12 and higher (to avoid accidentally returning extremely large vector tiles).

Vector tiles contain two layers:

speeds layer:

PropertyTypeDescription
speedintegerthe speed on that road segment, in km/h
is_smallbooleanwhether this segment belongs to a small (< 1000 node) strongly connected component
datasourcestringthe source for the speed value (normally lua profile unless you're using the traffic update feature, in which case it contains the stem of the filename that supplied the speed value for this segment
durationfloathow long this segment takes to traverse, in seconds. This value is to calculate the total route ETA.
weight integerhow long this segment takes to traverse, in units (may differ from duration when artificial biasing is applied in the Lua profiles). ACTUAL ROUTING USES THIS VALUE.
namestringthe name of the road this segment belongs to
ratefloatthe value of length/weight - analogous to speed, but using the weight value rather than duration, rounded to the nearest integer
is_startpointbooleanwhether this segment can be used as a start/endpoint for routes

turns layer:

PropertyTypeDescription
bearing_inintegerthe absolute bearing that approaches the intersection. -180 to +180, 0 = North, 90 = East
turn_angleintegerthe angle of the turn, relative to the bearing_in. -180 to +180, 0 = straight ahead, 90 = 90-degrees to the right
costfloatthe time we think it takes to make that turn, in seconds. May be negative, depending on how the data model is constructed (some turns get a "bonus").
weightfloatthe weight we think it takes to make that turn. May be negative, depending on how the data model is constructed (some turns get a "bonus"). ACTUAL ROUTING USES THIS VALUE
typestringthe type of this turn - values like turn, continue, etc. See the StepManeuver for a partial list, this field also exposes internal turn types that are never returned with an API response
modifierstringthe direction modifier of the turn (left, sharp left, etc)

Result objects

Route object

Represents a route through (potentially multiple) waypoints.

Properties

  • distance: The distance traveled by the route, in float meters.
  • duration: The estimated travel time, in float number of seconds.
  • geometry: The whole geometry of the route value depending on overview parameter, format depending on the geometries parameter. See RouteStep's geometry property for the parameter documentation.
  • weight: The calculated weight of the route.
  • weight_name: The name of the weight profile used during the extraction phase.
overviewDescription
simplifiedGeometry is simplified according to the highest zoom level it can still be displayed in full.
fullGeometry is not simplified.
falseGeometry is not added.
  • legs: The legs between the given waypoints, an array of RouteLeg objects.

Example

Three input coordinates, geometry=geojson, steps=false:

json
{
   "distance": 90.0,
   "duration": 300.0,
   "weight": 300.0,
@@ -283,8 +283,8 @@
       52.517033
    ]
 }

Flatbuffers format

The default response format is json, but OSRM supports binary flatbuffers format, which is much faster in serialization/deserialization, comparing to json.

The format itself is described in message descriptors, located at include/engine/api/flatbuffers directory. Those descriptors could be compiled to provide protocol parsers in Go/Javascript/Typescript/Java/Dart/C#/Python/Lobster/Lua/Rust/PHP/Kotlin. Precompiled protocol parser for C++ is supplied with OSRM.

Flatbuffers format provides exactly the same data, as json format with a slightly different layout, which was optimized to minimize in-transfer size.

Root object

Root object is the only object, available from a 'raw' flatbuffers buffer. It can be constructed with a following call:

     auto osrm = osrm::engine::api::fbresult::GetFBResult(some_input_buffer);
-

Properties

  • error: bool Marks response as erroneous. An erroneous response should include the code fieldset, all the other fields may not be present.
  • code: Error Error description object, only present, when error is true
  • waypoints: [Waypoint] Array of Waypoint objects. Should present for every service call, unless skip_waypoints is set to true. Table service will put sources array here.
  • routes: [RouteObject] Array of RouteObject objects. May be empty or absent. Should present for Route/Trip/Match services call.
  • table: Table Table object, may absent. Should be present in case of Table service call.

Error object

Contains error information.

Properties

  • code: string Error code
  • message: string Detailed error message

Waypoint object

Almost the same as json Waypoint object. The following properties differ:

  • location: Position Same as json location field, but different format.
  • nodes: Uint64Pair Same as json nodes field, but different format.

RouteObject object

Almost the same as json Route object. The following properties differ:

  • polyline: string Same as json geometry.polyline or geometry.polyline6 fields. One field for both formats.
  • coordinates: [Position] Same as json geometry.coordinates field, but different format.
  • legs: [Leg] Array of Leg objects.

Leg object

Almost the same as json Leg object. The following properties differ:

  • annotations: Annotation Same as json annotation field, but different format.
  • steps: [Step] Same as step annotation field, but different format.

Step object

Almost the same as json Step object. The following properties differ:

  • polyline: string Same as json geometry.polyline or geometry.polyline6 fields. One field for both formats.
  • coordinates: [Position] Same as json geometry.coordinates field, but different format.
  • maneuver: StepManeuver Same as json maneuver field, but different format.
typeDescription
Turna basic turn into the direction of the modifier
NewNameno turn is taken/possible, but the road name changes. The road can take a turn itself, following modifier.
Departindicates the departure of the leg
Arriveindicates the destination of the leg
Mergemerge onto a street (e.g. getting on the highway from a ramp, the modifier specifies the direction of the merge)
OnRamptake a ramp to enter a highway (direction given my modifier)
OffRamptake a ramp to exit a highway (direction given my modifier)
Forktake the left/right side at a fork depending on modifier
EndOfRoadroad ends in a T intersection turn in direction of modifier
ContinueTurn in direction of modifier to stay on the same road
Roundabouttraverse roundabout, if the route leaves the roundabout there will be an additional property exit for exit counting. The modifier specifies the direction of entering the roundabout.
Rotarya traffic circle. While very similar to a larger version of a roundabout, it does not necessarily follow roundabout rules for right of way. It can offer rotary_name and/or rotary_pronunciation parameters (located in the RouteStep object) in addition to the exit parameter (located on the StepManeuver object).
RoundaboutTurnDescribes a turn at a small roundabout that should be treated as a normal turn. The modifier indicates the turn direction. Example instruction: At the roundabout turn left.
Notificationnot an actual turn but a change in the driving conditions. For example the travel mode or classes. If the road takes a turn itself, the modifier describes the direction
ExitRoundaboutDescribes a maneuver exiting a roundabout (usually preceded by a roundabout instruction)
ExitRotaryDescribes the maneuver exiting a rotary (large named roundabout)
  • driving_side: bool True stands for left side driving.
  • intersections: [Intersection] Same as json intersections field, but different format.

Intersection object

Almost the same as json Intersection object. The following properties differ:

  • location: Position Same as json location property, but in a different format.
  • lanes: [Lane] Array of Lane objects.

Lane object

Almost the same as json Lane object. The following properties differ:

  • indications: Turn Array of Turn enum values.
valueDescription
NoneNo dedicated indication is shown.
UTurnAn indication signaling the possibility to reverse (i.e. fully bend arrow).
SharpRightAn indication indicating a sharp right turn (i.e. strongly bend arrow).
RightAn indication indicating a right turn (i.e. bend arrow).
SlightRightAn indication indicating a slight right turn (i.e. slightly bend arrow).
StraightNo dedicated indication is shown (i.e. straight arrow).
SlightLeftAn indication indicating a slight left turn (i.e. slightly bend arrow).
LeftAn indication indicating a left turn (i.e. bend arrow).
SharpLeftAn indication indicating a sharp left turn (i.e. strongly bend arrow).

StepManeuver object

Almost the same as json StepManeuver object. The following properties differ:

  • location: Position Same as json location property, but in a different format.
  • type: ManeuverType Type of a maneuver (enum)
typeDescription
Turna basic turn into the direction of the modifier
NewNameno turn is taken/possible, but the road name changes. The road can take a turn itself, following modifier.
Departindicates the departure of the leg
Arriveindicates the destination of the leg
Mergemerge onto a street (e.g. getting on the highway from a ramp, the modifier specifies the direction of the merge)
OnRamptake a ramp to enter a highway (direction given my modifier)
OffRamptake a ramp to exit a highway (direction given my modifier)
Forktake the left/right side at a fork depending on modifier
EndOfRoadroad ends in a T intersection turn in direction of modifier
ContinueTurn in direction of modifier to stay on the same road
Roundabouttraverse roundabout, if the route leaves the roundabout there will be an additional property exit for exit counting. The modifier specifies the direction of entering the roundabout.
Rotarya traffic circle. While very similar to a larger version of a roundabout, it does not necessarily follow roundabout rules for right of way. It can offer rotary_name and/or rotary_pronunciation parameters (located in the RouteStep object) in addition to the exit parameter (located on the StepManeuver object).
RoundaboutTurnDescribes a turn at a small roundabout that should be treated as a normal turn. The modifier indicates the turn direction. Example instruction: At the roundabout turn left.
Notificationnot an actual turn but a change in the driving conditions. For example the travel mode or classes. If the road takes a turn itself, the modifier describes the direction
ExitRoundaboutDescribes a maneuver exiting a roundabout (usually preceded by a roundabout instruction)
ExitRotaryDescribes the maneuver exiting a rotary (large named roundabout)
  • modifier: Turn Maneuver turn (enum)

Annotation object

Exactly the same as json annotation object.

Position object

A point on Earth.

Properties

  • longitude: float Point's longitude
  • latitude: float Point's latitude

Uint64Pair

A pair of long long integers. Used only by Waypoint object.

Properties

  • first: uint64 First pair value.
  • second: uint64 Second pair value.

Table object

Almost the same as json Table object. The main difference is that 'sources' field is absent and the root's object 'waypoints' field is used instead. All the other differences follow:

  • durations: [float] Flat representation of a durations matrix. Element at row;col can be addressed as [row * cols + col]
  • distances: [float] Flat representation of a destinations matrix. Element at row;col can be addressed as [row * cols + col]
  • destinations: [Waypoint] Array of Waypoint objects. Will be null if skip_waypoints will be set to true
  • rows: ushort Number of rows in durations/destinations matrices.
  • cols: ushort Number of cols in durations/destinations matrices.
- +

Properties

  • error: bool Marks response as erroneous. An erroneous response should include the code fieldset, all the other fields may not be present.
  • code: Error Error description object, only present, when error is true
  • waypoints: [Waypoint] Array of Waypoint objects. Should present for every service call, unless skip_waypoints is set to true. Table service will put sources array here.
  • routes: [RouteObject] Array of RouteObject objects. May be empty or absent. Should present for Route/Trip/Match services call.
  • table: Table Table object, may absent. Should be present in case of Table service call.

Error object

Contains error information.

Properties

  • code: string Error code
  • message: string Detailed error message

Waypoint object

Almost the same as json Waypoint object. The following properties differ:

  • location: Position Same as json location field, but different format.
  • nodes: Uint64Pair Same as json nodes field, but different format.

RouteObject object

Almost the same as json Route object. The following properties differ:

  • polyline: string Same as json geometry.polyline or geometry.polyline6 fields. One field for both formats.
  • coordinates: [Position] Same as json geometry.coordinates field, but different format.
  • legs: [Leg] Array of Leg objects.

Leg object

Almost the same as json Leg object. The following properties differ:

  • annotations: Annotation Same as json annotation field, but different format.
  • steps: [Step] Same as step annotation field, but different format.

Step object

Almost the same as json Step object. The following properties differ:

  • polyline: string Same as json geometry.polyline or geometry.polyline6 fields. One field for both formats.
  • coordinates: [Position] Same as json geometry.coordinates field, but different format.
  • maneuver: StepManeuver Same as json maneuver field, but different format.
typeDescription
Turna basic turn into the direction of the modifier
NewNameno turn is taken/possible, but the road name changes. The road can take a turn itself, following modifier.
Departindicates the departure of the leg
Arriveindicates the destination of the leg
Mergemerge onto a street (e.g. getting on the highway from a ramp, the modifier specifies the direction of the merge)
OnRamptake a ramp to enter a highway (direction given my modifier)
OffRamptake a ramp to exit a highway (direction given my modifier)
Forktake the left/right side at a fork depending on modifier
EndOfRoadroad ends in a T intersection turn in direction of modifier
ContinueTurn in direction of modifier to stay on the same road
Roundabouttraverse roundabout, if the route leaves the roundabout there will be an additional property exit for exit counting. The modifier specifies the direction of entering the roundabout.
Rotarya traffic circle. While very similar to a larger version of a roundabout, it does not necessarily follow roundabout rules for right of way. It can offer rotary_name and/or rotary_pronunciation parameters (located in the RouteStep object) in addition to the exit parameter (located on the StepManeuver object).
RoundaboutTurnDescribes a turn at a small roundabout that should be treated as a normal turn. The modifier indicates the turn direction. Example instruction: At the roundabout turn left.
Notificationnot an actual turn but a change in the driving conditions. For example the travel mode or classes. If the road takes a turn itself, the modifier describes the direction
ExitRoundaboutDescribes a maneuver exiting a roundabout (usually preceded by a roundabout instruction)
ExitRotaryDescribes the maneuver exiting a rotary (large named roundabout)
  • driving_side: bool True stands for left side driving.
  • intersections: [Intersection] Same as json intersections field, but different format.

Intersection object

Almost the same as json Intersection object. The following properties differ:

  • location: Position Same as json location property, but in a different format.
  • lanes: [Lane] Array of Lane objects.

Lane object

Almost the same as json Lane object. The following properties differ:

  • indications: Turn Array of Turn enum values.
valueDescription
NoneNo dedicated indication is shown.
UTurnAn indication signaling the possibility to reverse (i.e. fully bend arrow).
SharpRightAn indication indicating a sharp right turn (i.e. strongly bend arrow).
RightAn indication indicating a right turn (i.e. bend arrow).
SlightRightAn indication indicating a slight right turn (i.e. slightly bend arrow).
StraightNo dedicated indication is shown (i.e. straight arrow).
SlightLeftAn indication indicating a slight left turn (i.e. slightly bend arrow).
LeftAn indication indicating a left turn (i.e. bend arrow).
SharpLeftAn indication indicating a sharp left turn (i.e. strongly bend arrow).

StepManeuver object

Almost the same as json StepManeuver object. The following properties differ:

  • location: Position Same as json location property, but in a different format.
  • type: ManeuverType Type of a maneuver (enum)
typeDescription
Turna basic turn into the direction of the modifier
NewNameno turn is taken/possible, but the road name changes. The road can take a turn itself, following modifier.
Departindicates the departure of the leg
Arriveindicates the destination of the leg
Mergemerge onto a street (e.g. getting on the highway from a ramp, the modifier specifies the direction of the merge)
OnRamptake a ramp to enter a highway (direction given my modifier)
OffRamptake a ramp to exit a highway (direction given my modifier)
Forktake the left/right side at a fork depending on modifier
EndOfRoadroad ends in a T intersection turn in direction of modifier
ContinueTurn in direction of modifier to stay on the same road
Roundabouttraverse roundabout, if the route leaves the roundabout there will be an additional property exit for exit counting. The modifier specifies the direction of entering the roundabout.
Rotarya traffic circle. While very similar to a larger version of a roundabout, it does not necessarily follow roundabout rules for right of way. It can offer rotary_name and/or rotary_pronunciation parameters (located in the RouteStep object) in addition to the exit parameter (located on the StepManeuver object).
RoundaboutTurnDescribes a turn at a small roundabout that should be treated as a normal turn. The modifier indicates the turn direction. Example instruction: At the roundabout turn left.
Notificationnot an actual turn but a change in the driving conditions. For example the travel mode or classes. If the road takes a turn itself, the modifier describes the direction
ExitRoundaboutDescribes a maneuver exiting a roundabout (usually preceded by a roundabout instruction)
ExitRotaryDescribes the maneuver exiting a rotary (large named roundabout)
  • modifier: Turn Maneuver turn (enum)

Annotation object

Exactly the same as json annotation object.

Position object

A point on Earth.

Properties

  • longitude: float Point's longitude
  • latitude: float Point's latitude

Uint64Pair

A pair of long long integers. Used only by Waypoint object.

Properties

  • first: uint64 First pair value.
  • second: uint64 Second pair value.

Table object

Almost the same as json Table object. The main difference is that 'sources' field is absent and the root's object 'waypoints' field is used instead. All the other differences follow:

  • durations: [float] Flat representation of a durations matrix. Element at row;col can be addressed as [row * cols + col]
  • distances: [float] Flat representation of a destinations matrix. Element at row;col can be addressed as [row * cols + col]
  • destinations: [Waypoint] Array of Waypoint objects. Will be null if skip_waypoints will be set to true
  • rows: ushort Number of rows in durations/destinations matrices.
  • cols: ushort Number of cols in durations/destinations matrices.
+ \ No newline at end of file diff --git a/docs/v26.5.0/index.html b/docs/v26.5.0/index.html index 3f655e4..2baa859 100644 --- a/docs/v26.5.0/index.html +++ b/docs/v26.5.0/index.html @@ -6,20 +6,20 @@ OSRM API Documentation - - + + - - - - - + + + + + -
Skip to content

OSRMAPI Documentation

The Open Source Routing Machine - High performance routing engine for OpenStreetMap data

Getting Started

OSRM provides powerful routing services through both HTTP and Node.js APIs:

Documentation

Resources

- +
Skip to content

OSRMAPI Documentation

The Open Source Routing Machine - High performance routing engine for OpenStreetMap data

Getting Started

OSRM provides powerful routing services through both HTTP and Node.js APIs:

Documentation

Resources

+ \ No newline at end of file diff --git a/docs/v26.5.0/libosrm.html b/docs/v26.5.0/libosrm.html index 1ea49e9..bfd1f9f 100644 --- a/docs/v26.5.0/libosrm.html +++ b/docs/v26.5.0/libosrm.html @@ -6,20 +6,20 @@ OSRM API Documentation - - + + - - - - - + + + + + -
Skip to content

Introduction

OSRM can be used as a library (libosrm) via C++ instead of using it through the HTTP interface and osrm-routed. This allows for fine-tuning OSRM and has much less overhead. Here is a quick introduction into how to use libosrm in the current version.

Take a look at the example code that lives in the example directory. Here is all you ever wanted to know about libosrm, that is a short description of what the types do and where to find documentation on it:

Important interface objects

  • EngineConfig - for initializing an OSRM instance we can configure certain properties and constraints. E.g. the storage config is the base path such as france.osm.osrm from which we derive and load france.osm.osrm.* auxiliary files. This also lets you set constraints such as the maximum number of locations allowed for specific services.

  • OSRM - this is the main Routing Machine type with functions such as Route and Table. You initialize it with a EngineConfig. It does all the heavy lifting for you. Each function takes its own parameters, e.g. the Route function takes RouteParameters, and a out-reference to a JSON result that gets filled. The return value is a Status, indicating error or success.

  • Status - this is a type wrapping Error or Ok for indicating error or success, respectively.

  • TableParameters - this is an example of parameter types the Routing Machine functions expect. In this case Table expects its own parameters as TableParameters. You can see it wrapping two vectors, sources and destinations --- these are indices into your coordinates for the table service to construct a matrix from (empty sources or destinations means: use all of them). If you ask yourself where coordinates come from, you can see TableParameters inheriting from BaseParameters.

  • BaseParameters - this most importantly holds coordinates (and a few other optional properties that you don't need for basic usage); the specific parameter types inherit from BaseParameters to get these member attributes. That means your TableParameters type has coordinates, sources and destinations member attributes (and a few other that we ignore for now).

  • Coordinate - this is a wrapper around a (longitude, latitude) pair. We really don't care about (lon, lat) vs (lat, lon) but we don't want you to accidentally mix them up, so both latitude and longitude are strictly typed wrappers around integers (fixed notation such as 13423240) and floating points (floating notation such as 13.42324).

  • Parameters for other services - here are all other *Parameters you need for other Routing Machine services.

  • JSON - this is a sum type resembling JSON. The Routing Machine service functions take a out-ref to a JSON result and fill it accordingly. It is currently implemented using std::variant. There are two ways to work with this sum type: either provide a visitor that acts on each type on visitation (with std::visit) or use the std::get function in case you're sure about the structure. The JSON structure is written down in the HTTP API.

Example

See the example folder in the OSRM repository.

Workflow

  • Create an OSRM instance initialized with a EngineConfig
  • Call the service function on the OSRM object providing service specific *Parameters
  • Check the return code and use the JSON result
- +
Skip to content

Introduction

OSRM can be used as a library (libosrm) via C++ instead of using it through the HTTP interface and osrm-routed. This allows for fine-tuning OSRM and has much less overhead. Here is a quick introduction into how to use libosrm in the current version.

Take a look at the example code that lives in the example directory. Here is all you ever wanted to know about libosrm, that is a short description of what the types do and where to find documentation on it:

Important interface objects

  • EngineConfig - for initializing an OSRM instance we can configure certain properties and constraints. E.g. the storage config is the base path such as france.osm.osrm from which we derive and load france.osm.osrm.* auxiliary files. This also lets you set constraints such as the maximum number of locations allowed for specific services.

  • OSRM - this is the main Routing Machine type with functions such as Route and Table. You initialize it with a EngineConfig. It does all the heavy lifting for you. Each function takes its own parameters, e.g. the Route function takes RouteParameters, and a out-reference to a JSON result that gets filled. The return value is a Status, indicating error or success.

  • Status - this is a type wrapping Error or Ok for indicating error or success, respectively.

  • TableParameters - this is an example of parameter types the Routing Machine functions expect. In this case Table expects its own parameters as TableParameters. You can see it wrapping two vectors, sources and destinations --- these are indices into your coordinates for the table service to construct a matrix from (empty sources or destinations means: use all of them). If you ask yourself where coordinates come from, you can see TableParameters inheriting from BaseParameters.

  • BaseParameters - this most importantly holds coordinates (and a few other optional properties that you don't need for basic usage); the specific parameter types inherit from BaseParameters to get these member attributes. That means your TableParameters type has coordinates, sources and destinations member attributes (and a few other that we ignore for now).

  • Coordinate - this is a wrapper around a (longitude, latitude) pair. We really don't care about (lon, lat) vs (lat, lon) but we don't want you to accidentally mix them up, so both latitude and longitude are strictly typed wrappers around integers (fixed notation such as 13423240) and floating points (floating notation such as 13.42324).

  • Parameters for other services - here are all other *Parameters you need for other Routing Machine services.

  • JSON - this is a sum type resembling JSON. The Routing Machine service functions take a out-ref to a JSON result and fill it accordingly. It is currently implemented using std::variant. There are two ways to work with this sum type: either provide a visitor that acts on each type on visitation (with std::visit) or use the std::get function in case you're sure about the structure. The JSON structure is written down in the HTTP API.

Example

See the example folder in the OSRM repository.

Workflow

  • Create an OSRM instance initialized with a EngineConfig
  • Call the service function on the OSRM object providing service specific *Parameters
  • Check the return code and use the JSON result
+ \ No newline at end of file diff --git a/docs/v26.5.0/nodejs/api.html b/docs/v26.5.0/nodejs/api.html index 8e880ec..cfadbd0 100644 --- a/docs/v26.5.0/nodejs/api.html +++ b/docs/v26.5.0/nodejs/api.html @@ -6,19 +6,19 @@ OSRM API Documentation - - + + - - - - - + + + + + -
Skip to content

OSRM

The OSRM method is the main constructor for creating an OSRM instance. An OSRM instance requires a .osrm.* dataset(.osrm.* because it contains several files), which is prepared by the OSRM toolchain. You can create such a .osrm.* dataset by running the OSRM binaries we ship in node_modules/osrm/lib/binding_napi_v8/ and default profiles (e.g. for setting speeds and determining road types to route on) in node_modules/osrm/profiles/:

node_modules/osrm/lib/binding_napi_v8/osrm-extract data.osm.pbf -p node_modules/osrm/profiles/car.lua
+    
Skip to content

OSRM

The OSRM method is the main constructor for creating an OSRM instance. An OSRM instance requires a .osrm.* dataset(.osrm.* because it contains several files), which is prepared by the OSRM toolchain. You can create such a .osrm.* dataset by running the OSRM binaries we ship in node_modules/osrm/lib/binding_napi_v8/ and default profiles (e.g. for setting speeds and determining road types to route on) in node_modules/osrm/profiles/:

node_modules/osrm/lib/binding_napi_v8/osrm-extract data.osm.pbf -p node_modules/osrm/profiles/car.lua
 node_modules/osrm/lib/binding_napi_v8/osrm-contract data.osrm
 

Consult the osrm-backend documentation for further details.

Once you have a complete network.osrm.* dataset, you can calculate routes in javascript with this object.

javascript
var osrm = new OSRM('network.osrm');

Parameters

  • options (Object | String) Options for creating an OSRM object or string to the .osrm file. (optional, default {shared_memory:true})

    • options.algorithm String? The algorithm to use for routing. Can be 'CH', or 'MLD'. Default is 'CH'. Make sure you prepared the dataset with the correct toolchain.
    • options.shared_memory Boolean? Connects to the persistent shared memory datastore. This requires you to run osrm-datastore prior to creating an OSRM object.
    • options.dataset_name String? Connects to the persistent shared memory datastore defined by --dataset_name option when running osrm-datastore. This requires you to run osrm-datastore --dataset_name prior to creating an OSRM object.
    • options.memory_file String? DEPRECATED Old behaviour: Path to a file on disk to store the memory using mmap. Current behaviour: setting this value is the same as setting mmap_memory: true.
    • options.mmap_memory Boolean? Map on-disk files to virtual memory addresses (mmap), rather than loading into RAM.
    • options.path String? The path to the .osrm files. This is mutually exclusive with setting {options.shared_memory} to true.
    • options.disable_feature_dataset Array? Disables a feature dataset from being loaded into memory if not needed. Options: ROUTE_STEPS, ROUTE_GEOMETRY.
    • options.max_locations_trip Number? Max. locations supported in trip query (default: unlimited).
    • options.max_locations_viaroute Number? Max. locations supported in viaroute query (default: unlimited).
    • options.max_locations_distance_table Number? Max. locations supported in distance table query (default: unlimited).
    • options.max_locations_map_matching Number? Max. locations supported in map-matching query (default: unlimited).
    • options.max_radius_map_matching Number? Max. radius size supported in map matching query (default: 5).
    • options.max_results_nearest Number? Max. results supported in nearest query (default: unlimited).
    • options.max_alternatives Number? Max. number of alternatives supported in alternative routes query (default: 3).
    • options.default_radius Number? Default radius for queries (default: unlimited).

route

Returns the fastest route between two or more coordinates while visiting the waypoints in order.

Parameters

  • options Object Object literal containing parameters for the route query.

    • options.coordinates Array? The coordinates this request will use, coordinates as [{lon},{lat}] values, in decimal degrees.
    • options.bearings Array? Limits the search to segments with given bearing in degrees towards true north in clockwise direction. Can be null or an array of [{value},{range}] with integer 0 .. 360,integer 0 .. 180.
    • options.radiuses Array? Limits the coordinate snapping to streets in the given radius in meters. Can be null (unlimited, default) or double >= 0.
    • options.hints Array? Hints for the coordinate snapping. Array of base64 encoded strings.
    • options.exclude Array? List of classes to avoid, order does not matter.
    • options.generate_hints Boolean Whether or not adds a Hint to the response which can be used in subsequent requests. (optional, default true)
    • options.alternatives Boolean Search for alternative routes. (optional, default false)
    • options.alternatives Number Search for up to this many alternative routes. Please note that even if alternative routes are requested, a result cannot be guaranteed. (optional, default 0)
    • options.steps Boolean Return route steps for each route leg. (optional, default false)
    • options.annotations (Array | Boolean) An array with strings of duration, nodes, distance, weight, datasources, speed or boolean for enabling/disabling all. (optional, default false)
    • options.geometries String Returned route geometry format (influences overview and per step). Can also be geojson. (optional, default polyline)
    • options.overview String Add overview geometry either full, simplified according to highest zoom level it could be displayed on, or not at all (false). If you want the overview for each leg, you can use by_legs. (optional, default simplified)
    • options.continue_straight Boolean? Forces the route to keep going straight at waypoints and don't do a uturn even if it would be faster. Default value depends on the profile.
    • options.approaches Array? Restrict the direction on the road network at a waypoint, relative to the input coordinate. Can be null (unrestricted, default), curb or opposite. null/true/false
    • options.waypoints Array? Indices to coordinates to treat as waypoints. If not supplied, all coordinates are waypoints. Must include first and last coordinate index.
    • options.format String? Which output format to use, either json, or flatbuffers.
    • options.snapping String? Which edges can be snapped to, either default, or any. default only snaps to edges marked by the profile as is_startpoint, any will allow snapping to any edge in the routing graph.
    • options.skip_waypoints Boolean Removes waypoints from the response. Waypoints are still calculated, but not serialized. Could be useful in case you are interested in some other part of response and do not want to transfer waste data. (optional, default false)
  • callback Function

Examples

javascript
var osrm = new OSRM("berlin-latest.osrm");
 osrm.route({coordinates: [[52.519930,13.438640], [52.513191,13.415852]]}, function(err, result) {
@@ -83,8 +83,8 @@
 osrm.route(options, { format: "buffer" }, function(err, response) {
   if (err) throw err;
   console.log(response.toString("utf-8"));
-});

Responses

Route

Represents a route through (potentially multiple) waypoints.

Parameters

RouteLeg

Represents a route between two waypoints.

Parameters

RouteStep

A step consists of a maneuver such as a turn or merge, followed by a distance of travel along a single way to the subsequent step.

Parameters

StepManeuver

Parameters

Waypoint

Object used to describe waypoint on a route.

Parameters

- +});

Responses

Route

Represents a route through (potentially multiple) waypoints.

Parameters

RouteLeg

Represents a route between two waypoints.

Parameters

RouteStep

A step consists of a maneuver such as a turn or merge, followed by a distance of travel along a single way to the subsequent step.

Parameters

StepManeuver

Parameters

Waypoint

Object used to describe waypoint on a route.

Parameters

+ \ No newline at end of file diff --git a/docs/v26.5.0/profiles.html b/docs/v26.5.0/profiles.html index 7fd7ff7..cf655c5 100644 --- a/docs/v26.5.0/profiles.html +++ b/docs/v26.5.0/profiles.html @@ -6,19 +6,19 @@ OSRM profiles | OSRM API Documentation - - + + - - - - - + + + + + -
Skip to content

OSRM profiles

OSRM supports "profiles". Profiles represent routing behavior for different transport modes like car, bike and foot. You can also create profiles for variations like a fastest/shortest car profile or fastest/safest/greenest bicycles profile.

A profile describes whether or not it's possible to route along a particular type of way, whether we can pass a particular node, and how quickly we'll be traveling when we do. This feeds into the way the routing graph is created and thus influences the output routes.

Available profiles

Out-of-the-box OSRM comes with profiles for car, bicycle and foot. You can easily modify these or create new ones if you like.

Profiles have a 'lua' extension, and are placed in 'profiles' directory.

When running OSRM preprocessing commands you specify the profile with the --profile (or the shorthand -p) option, for example:

osrm-extract --profile ../profiles/car.lua planet-latest.osm.pbf

Using Multiple Profiles with the Same Input

You can extract the same OSM file with different profiles by specifying an output path:

bash
osrm-extract --profile profiles/car.lua planet.osm.pbf --output /data/car
+    
Skip to content

OSRM profiles

OSRM supports "profiles". Profiles represent routing behavior for different transport modes like car, bike and foot. You can also create profiles for variations like a fastest/shortest car profile or fastest/safest/greenest bicycles profile.

A profile describes whether or not it's possible to route along a particular type of way, whether we can pass a particular node, and how quickly we'll be traveling when we do. This feeds into the way the routing graph is created and thus influences the output routes.

Available profiles

Out-of-the-box OSRM comes with profiles for car, bicycle and foot. You can easily modify these or create new ones if you like.

Profiles have a 'lua' extension, and are placed in 'profiles' directory.

When running OSRM preprocessing commands you specify the profile with the --profile (or the shorthand -p) option, for example:

osrm-extract --profile ../profiles/car.lua planet-latest.osm.pbf

Using Multiple Profiles with the Same Input

You can extract the same OSM file with different profiles by specifying an output path:

bash
osrm-extract --profile profiles/car.lua planet.osm.pbf --output /data/car
 osrm-extract --profile profiles/bicycle.lua planet.osm.pbf --output /data/bicycle
 osrm-extract --profile profiles/foot.lua planet.osm.pbf --output /data/foot

This avoids the need to create symbolic links to the input file.

Processing flow

It's important to understand that profiles are used when preprocessing the OSM data, NOT at query time when routes are computed.

This means that after modifying a profile you will need to extract, contract and reload the data again and to see changes in the routing results. See Processing Flow for more.

Profiles are written in Lua

Profiles are not just configuration files. They are scripts written in the Lua scripting language. The reason for this is that OpenStreetMap data is complex, and it's not possible to simply define tag mappings. Lua scripting offers a powerful way to handle all the possible tag combinations found in OpenStreetMap nodes and ways.

Basic structure of profiles

A profile will process every node and way in the OSM input data to determine what ways are routable in which direction, at what speed, etc.

A profile will typically:

  • Define api version (required)
  • Require library files (optional)
  • Define setup function (required)
  • Define process functions (some are required)
  • Return functions table (required)

A profile can also define various local functions it needs.

Looking at car.lua as an example, at the top of the file the api version is defined and then required library files are included.

Then follows the setup function, which is called once when the profile is loaded. It returns a big hash table of configurations, specifying things like what speed to use for different way types. The configurations are used later in the various processing functions. Many adjustments can be done just by modifying this configuration table.

The setup function is also where you can do other setup, like loading an elevation data source if you want to consider that when processing ways.

Then come the process_node and process_way functions, which are called for each OSM node and way when extracting OpenStreetMap data with osrm-extract.

The process_turn function processes every possible turn in the network, and sets a penalty depending on the angle and turn of the movement.

Profiles can also define a process_segment function to handle differences in speed along an OSM way, for example to handle elevation. As you can see, this is not currently used in the car profile.

At the end of the file, a table is returned with references to the setup and processing functions the profile has defined.

Understanding speed, weight and rate

When computing a route from A to B there can be different measures of what is the best route. That's why there's a need for different profiles.

Because speeds vary on different types of roads, the shortest and the fastest route are typically different. But there are many other possible preferences. For example a user might prefer a bicycle route that follow parks or other green areas, even though both duration and distance are a bit longer.

To handle this, OSRM doesn't simply choose the ways with the highest speed. Instead it uses the concepts of weight and rate. The rate is an abstract measure that you can assign to ways as you like to make some ways preferable to others. Routing will prefer ways with high rate.

The weight of a way is normally computed as length / rate. The weight can be thought of as the resistance or cost when passing the way. Routing will prefer ways with low weight.

You can also set the weight of a way to a fixed value. In this case it's not calculated based on the length or rate, and the rate is ignored.

You should set the speed to your best estimate of the actual speed that will be used on a particular way. This will result in the best estimated travel times.

If you want to prefer certain ways due to other factors than the speed, adjust the rate accordingly. If you adjust the speed, the time estimation will be skewed.

If you set the same rate on all ways, the result will be shortest path routing. If you set rate = speed on all ways, the result will be fastest path routing. If you want to prioritize certain streets, increase the rate on these.

Elements

api_version

A profile should set api_version at the top of your profile. This is done to ensure that older profiles are still supported when the api changes. If api_version is not defined, 0 will be assumed. The current api version is 4.

Library files

The folder profiles/lib/ contains Lua library files for handling many common processing tasks.

FileNotes
way_handlers.luaFunctions for processing way tags
tags.luaFunctions for general parsing of OSM tags
set.luaDefines the Set helper for handling sets of values
sequence.luaDefines the Sequence helper for handling sequences of values
access.luaFunction for finding relevant access tags
destination.luaFunction for finding relevant destination tags
maxspeed.luaFunction for determining maximum speed
guidance.luaFunction for processing guidance attributes

They all return a table of functions when you use require to load them. You can either store this table and reference its functions later, or if you need only a single function you can store that directly.

setup()

The setup function is called once when the profile is loaded and must return a table of configurations. It's also where you can do other global setup, like loading data sources that are used during processing.

Note that processing of data is parallelized and several unconnected Lua interpreters will be running at the same time. The setup function will be called once for each. Each Lua interpreter will have its own set of globals.

The following global properties can be set under properties in the hash you return in the setup function:

AttributeTypeNotes
weight_nameStringName used in output for the routing weight property (default 'duration')
weight_precisionUnsignedDecimal precision of edge weights (default 1)
left_hand_drivingBooleanAre vehicles assumed to drive on the left? (used in guidance, default false)
use_turn_restrictionsBooleanAre turn restrictions followed? (default false)
continue_straight_at_waypointBooleanMust the route continue straight on at a via point, or are U-turns allowed? (default true)
max_speed_for_map_matchingFloatMaximum vehicle speed to be assumed in matching (in m/s)
max_turn_weightFloatMaximum turn penalty weight
force_split_edgesBooleanTrue value forces a split of forward and backward edges of extracted ways and guarantees that process_segment will be called for all segments (default false)

The following additional global properties can be set in the hash you return in the setup function:

AttributeTypeNotes
excludableSequence of SetsDetermines which class-combinations are supported by the exclude option at query time. E.g. Sequence{Set{"ferry", "motorway"}, Set{"motorway"}} will allow you to exclude ferries and motorways, or only motorways.
classesSequenceDetermines the allowed classes that can be referenced using {forward,backward}_classes on the way in the process_way function.
restrictionsSequenceDetermines which turn restrictions will be used for this profile.
suffix_listSetList of name suffixes needed for determining if "Highway 101 NW" the same road as "Highway 101 ES".
relation_typesSequenceDetermines which relations should be cached for processing in this profile. It contains relations types

process_node(profile, node, result, relations)

Process an OSM node to determine whether this node is an obstacle, if it can be passed at all and whether passing it incurs a delay.

ArgumentDescription
profileThe configuration table you returned in setup.
nodeThe input node to process (read-only).
resultThe output that you will modify.
relationsStorage of relations to access relations, where node is a member.

The following attributes can be set on result: (Note: for new code use the obstacle_map.

AttributeTypeNotes
barrierBooleanIs it an impassable barrier?
traffic_lightsBooleanIs it a traffic light (incurs delay in process_turn)?

Obstacle

A user type that represents an obstacle on the road or a place where you can turn around.

This may be a completely impassable obstacle like a barrier, a temporary obstacle like a traffic light or a stop sign, or an obstacle that just slows you down like a traffic_calming. The obstacle may be present in both directions or in one direction only.

This also represents a good turning point like a mini_roundabout, turning_loop, or turning_circle.

An object of this type is immutable once constructed.

lua
local obs = Obstacle.new(
   obstacle_type.traffic_signals,
@@ -100,8 +100,8 @@
   if sourceData.datum ~= invalid and targetData.datum ~= invalid then
       -- use values to adjust weight and duration
     [...]
-end

See rasterbot.lua and rasterbotinterp.lua for examples.

Helper functions

There are a few helper functions defined in the global scope that profiles can use:

  • durationIsValid
  • parseDuration
  • trimLaneString
  • applyAccessTokens
  • canonicalizeStringList
- +end

See rasterbot.lua and rasterbotinterp.lua for examples.

Helper functions

There are a few helper functions defined in the global scope that profiles can use:

  • durationIsValid
  • parseDuration
  • trimLaneString
  • applyAccessTokens
  • canonicalizeStringList
+ \ No newline at end of file diff --git a/docs/v26.5.0/python/api.html b/docs/v26.5.0/python/api.html index 07cdb34..cd5fbbd 100644 --- a/docs/v26.5.0/python/api.html +++ b/docs/v26.5.0/python/api.html @@ -6,19 +6,19 @@ Python API | OSRM API Documentation - - + + - - - - - + + + + + -
Skip to content

Python API

The Python bindings provide access to OSRM's routing services through the osrm package. Install with pip install osrm-bindings.

OSRM

The OSRM class is the main entry point. It requires a .osrm.* dataset prepared by the OSRM toolchain.

python
import osrm
+    
Skip to content

Python API

The Python bindings provide access to OSRM's routing services through the osrm package. Install with pip install osrm-bindings.

OSRM

The OSRM class is the main entry point. It requires a .osrm.* dataset prepared by the OSRM toolchain.

python
import osrm
 
 # From file
 engine = osrm.OSRM("path/to/data.osrm")
@@ -83,8 +83,8 @@
 python -m osrm partition data.osrm
 python -m osrm customize data.osrm
 python -m osrm datastore data.osrm
-python -m osrm routed data.osrm
- +python -m osrm routed data.osrm
+ \ No newline at end of file diff --git a/docs/v26.5.0/python/development.html b/docs/v26.5.0/python/development.html index 3348940..0f95cce 100644 --- a/docs/v26.5.0/python/development.html +++ b/docs/v26.5.0/python/development.html @@ -6,19 +6,19 @@ Python Bindings Development Guide | OSRM API Documentation - - + + - - - - - + + + + + -
Skip to content

Python Bindings Development Guide

Installing for production

Pre-built wheels are published to PyPI for Linux (x86_64), macOS (x86_64), and Windows (amd64). They use the CPython 3.12 stable ABI (cp312-abi3) and therefore install on Python 3.12+:

bash
pip install osrm-bindings

The package itself supports Python 3.10+ when built from source — needed for 3.10/3.11, aarch64 Linux, arm64 macOS, or any platform without a pre-built wheel:

bash
pip install osrm-bindings --no-binary osrm-bindings

Source builds compile the full OSRM C++ library — this takes a long time. See platform-specific notes for prerequisites.

Installing for development

Clone the repo and install in editable mode with dev dependencies:

bash
git clone https://github.com/Project-OSRM/osrm-backend
+    
Skip to content

Python Bindings Development Guide

Installing for production

Pre-built wheels are published to PyPI for Linux (x86_64), macOS (x86_64), and Windows (amd64). They use the CPython 3.12 stable ABI (cp312-abi3) and therefore install on Python 3.12+:

bash
pip install osrm-bindings

The package itself supports Python 3.10+ when built from source — needed for 3.10/3.11, aarch64 Linux, arm64 macOS, or any platform without a pre-built wheel:

bash
pip install osrm-bindings --no-binary osrm-bindings

Source builds compile the full OSRM C++ library — this takes a long time. See platform-specific notes for prerequisites.

Installing for development

Clone the repo and install in editable mode with dev dependencies:

bash
git clone https://github.com/Project-OSRM/osrm-backend
 cd osrm-backend
 pip install -e ".[dev]"

Install pre-commit hooks:

bash
pre-commit install

Platform-specific build requirements

Linux

CI wheel builds run inside a custom manylinux image (nilsnolde/manylinux, branch osrm_python) that ships vcpkg pre-bootstrapped at the SHA pinned in vcpkg-configuration.json, plus a pre-warmed vcpkg binary cache compiled against this repo's vcpkg.json. The wheel build's own vcpkg install hits that cache instead of recompiling boost/tbb/etc. from source.

The image needs rebuilding when this repo's vcpkg.json, the baseline SHA in vcpkg-configuration.json, or any file under vcpkg-overlay-ports/ changes — otherwise the wheel build either misses the cache (slow) or fails on a missing port. The manylinux repo's Build workflow takes an osrmRef input for that purpose; see its README.

For local source builds outside the manylinux image, install vcpkg yourself, point CMake at its toolchain, and use the release-only triplet to match the cache:

bash
git clone https://github.com/microsoft/vcpkg
 ./vcpkg/bootstrap-vcpkg.sh
@@ -57,8 +57,8 @@
 cibuildwheel --platform linux

Type stubs

src/python/osrm/osrm_ext.pyi is auto-generated by nanobind_add_stub() at build time and committed to the repository so documentation tools can work without compiling the extension.

After changing C++ bindings, rebuild and commit the updated stub:

bash
pip install -e . --no-build-isolation   # regenerates the .pyi
 git add src/python/osrm/osrm_ext.pyi

To regenerate manually without a full rebuild:

bash
pip install nanobind ruff
 python -m nanobind.stubgen -m osrm.osrm_ext -o src/python/osrm/osrm_ext.pyi
-ruff format src/python/osrm/osrm_ext.pyi

Releasing

Releases are driven by the monthly release workflow (.github/workflows/release-monthly.yml), not by pushing a tag by hand. The workflow bumps the version, creates the tag, drives CI, downloads the built wheels, and publishes to both PyPI and npm in one shot.

Scheduled monthly release

A cron on the 1st of each month at 08:00 UTC runs the workflow against master:

  1. Compute the next version as (YYYY-2000).M.patchlevel (e.g. 26.4.0).
  2. Bump package.json + package-lock.json, commit, create annotated tag v<version>, push branch and tag.
  3. Dispatch osrm-backend.yml on the tag. That run builds wheels + sdist via cibuildwheel and uploads them as wheels-* artifacts.
  4. Wait for the dispatched CI run to finish with conclusion success.
  5. Run the publish job: download every wheels-* artifact into dist/, publish to PyPI via trusted publisher (OIDC), then npm publish.

If PyPI fails, the npm publish still runs (the npm steps have if: ${{ !cancelled() }}), and the overall job is marked failed so the PyPI problem stays visible.

Manual release

Trigger the workflow from the Actions UI or gh workflow run release-monthly.yml with optional inputs:

  • version_override — set the version explicitly (e.g. 26.4.1) instead of using the (YYYY-2000).M.patchlevel calculation.
  • branch — release from a branch other than master.

Verification

After the run finishes, check:

Version mechanics

pyproject.toml uses setuptools-scm with local_scheme = "no-local-version". On a tag checkout (e.g. v26.4.0), the Python version resolves cleanly to 26.4.0, matching the package.json version that release-monthly.yml committed when creating the tag.

- +ruff format src/python/osrm/osrm_ext.pyi

Releasing

Releases are driven by the monthly release workflow (.github/workflows/release-monthly.yml), not by pushing a tag by hand. The workflow bumps the version, creates the tag, drives CI, downloads the built wheels, and publishes to both PyPI and npm in one shot.

Scheduled monthly release

A cron on the 1st of each month at 08:00 UTC runs the workflow against master:

  1. Compute the next version as (YYYY-2000).M.patchlevel (e.g. 26.4.0).
  2. Bump package.json + package-lock.json, commit, create annotated tag v<version>, push branch and tag.
  3. Dispatch osrm-backend.yml on the tag. That run builds wheels + sdist via cibuildwheel and uploads them as wheels-* artifacts.
  4. Wait for the dispatched CI run to finish with conclusion success.
  5. Run the publish job: download every wheels-* artifact into dist/, publish to PyPI via trusted publisher (OIDC), then npm publish.

If PyPI fails, the npm publish still runs (the npm steps have if: ${{ !cancelled() }}), and the overall job is marked failed so the PyPI problem stays visible.

Manual release

Trigger the workflow from the Actions UI or gh workflow run release-monthly.yml with optional inputs:

  • version_override — set the version explicitly (e.g. 26.4.1) instead of using the (YYYY-2000).M.patchlevel calculation.
  • branch — release from a branch other than master.

Verification

After the run finishes, check:

Version mechanics

pyproject.toml uses setuptools-scm with local_scheme = "no-local-version". On a tag checkout (e.g. v26.4.0), the Python version resolves cleanly to 26.4.0, matching the package.json version that release-monthly.yml committed when creating the tag.

+ \ No newline at end of file diff --git a/docs/v26.5.0/releasing.html b/docs/v26.5.0/releasing.html index 53bd46e..78e914b 100644 --- a/docs/v26.5.0/releasing.html +++ b/docs/v26.5.0/releasing.html @@ -6,20 +6,20 @@ Releasing a new OSRM version | OSRM API Documentation - - + + - - - - - + + + + + -
Skip to content

Releasing a new OSRM version

We use a unified semver versioning scheme for monthly releases: (YYYY-2000).M.patchlevel

  • Format: X.M.patchlevel where X = year - 2000, M = month (1-12, no leading zeros)
  • Example: 26.4.0 represents April 2026, first release
  • Git tags: Prefixed with v (e.g., v26.4.0)
  • npm packages: Unprefixed semver (e.g., 26.4.0)

Version History

Previous scheme (ended 2025): Traditional semantic versioning (v6.0, v6.0.1, v6.0.2, etc.)

  • Last release: v6.0.0 in December 2025
  • Manual release process

New scheme (started 2026): Monthly date-based versioning with automated releases

  • First release: v26.1.0 (January 2026)
  • Automatic monthly releases on the 1st of each month at 08:00 UTC
  • Year offset: 2026 → 26, 2027 → 27, etc.
  • Month: 1-12 (no leading zeros), patch: 0-N per month

Versioning Scheme

Format

Git tags: vX.M.patchlevel where X = year - 2000, M = 1-12

  • X: Year offset (26 = 2026, 27 = 2027, etc.)
  • M: Month (1-12, no leading zeros)
  • patchlevel: Incremental counter starting at 0 per month (0, 1, 2, ...)

npm packages: X.M.patchlevel (same as git tag without the v prefix)

Examples

Git tags and npm versions for the same release:

  • April 2026, 1st release: Git tag v26.4.0, npm 26.4.0
  • April 2026, 2nd release: Git tag v26.4.1, npm 26.4.1
  • May 2026, 1st release: Git tag v26.5.0, npm 26.5.0
  • January 2027, 1st release: Git tag v27.1.0, npm 27.1.0

Release Compatibility Guarantees

Patch version change (new patchlevel in same month)

  • No change of query parameters or response formats
  • Compatible HTTP API
  • Compatible C++ library API
  • Compatible node-osrm API
  • Compatible OSRM datasets

Month change (new YYYY-MM)

  • May introduce forward-compatible changes: query parameters and response properties may be added in responses, but existing properties may not be changed or removed
  • Forward-compatible HTTP API
  • Forward-compatible C++ library API
  • Forward-compatible node-osrm API
  • No compatibility between OSRM datasets (needs new processing)

Conventional Commits

Pull request titles must follow Conventional Commits format with types: feat, fix, docs, style, refactor, perf, test, ci, chore, build. This is validated in CI and helps organize the commit history.

Breaking changes should be indicated with the ! suffix in the PR title (e.g., feat!: remove deprecated API) so they are called out in release notes.

Release Management

  • The master branch is for development and should always be green
  • Automated monthly releases occur on the 1st of each month at 08:00 UTC
  • All changes in master will be automatically released monthly
  • No release candidates are used; the master branch is the quality gate
  • Patch versions within the same month can be released manually at any time

Automated Release Process

Releases are created automatically every month on a scheduled basis:

  1. A GitHub Actions workflow runs on the 1st of each month at 08:00 UTC
  2. Version is calculated as (YYYY-2000).M.patchlevel with M = 1-12 (no leading zeros)
  3. package.json and package-lock.json versions are updated
  4. A git tag is created and pushed (e.g., v26.4.0)
  5. A GitHub Release is published with auto-generated release notes
  6. The package is published to npm (format: 26.4.0 without v prefix)

Manual Release Trigger

You can also trigger a release manually on any branch:

  1. Go to ActionsMonthly Release workflow
  2. Click Run workflow
  3. Select your branch (defaults to master)
  4. Optionally override the version (format: X.M.patchlevel with M = 1-12, e.g., 26.4.0)
  5. Click Run workflow

This is useful for:

  • Out-of-schedule patch releases within the same month
  • Emergency releases from other branches
  • Backports to older versions

Release Checklist

When releasing (automated or manual):

  1. ✅ All GitHub Actions CI checks pass
  2. ✅ The target branch is in a releasable state
  3. ✅ For manual releases: verify the version format is correct (X.M.patchlevel with month 1-12, e.g., 26.4.0)
  4. ✅ The release is created automatically with:
    • Git tag
    • GitHub Release (with auto-generated release notes)
    • npm publication

After Release

No additional manual steps are required. The automated workflow handles:

  • Version bumping in package.json
  • Git commit and tag creation
  • GitHub Release publishing
  • npm package publication

For non-automated releases, monitor:

  • GitHub Actions to verify the release completed successfully
  • npm registry to confirm the new version is published
- +
Skip to content

Releasing a new OSRM version

We use a unified semver versioning scheme for monthly releases: (YYYY-2000).M.patchlevel

  • Format: X.M.patchlevel where X = year - 2000, M = month (1-12, no leading zeros)
  • Example: 26.4.0 represents April 2026, first release
  • Git tags: Prefixed with v (e.g., v26.4.0)
  • npm packages: Unprefixed semver (e.g., 26.4.0)

Version History

Previous scheme (ended 2025): Traditional semantic versioning (v6.0, v6.0.1, v6.0.2, etc.)

  • Last release: v6.0.0 in December 2025
  • Manual release process

New scheme (started 2026): Monthly date-based versioning with automated releases

  • First release: v26.1.0 (January 2026)
  • Automatic monthly releases on the 1st of each month at 08:00 UTC
  • Year offset: 2026 → 26, 2027 → 27, etc.
  • Month: 1-12 (no leading zeros), patch: 0-N per month

Versioning Scheme

Format

Git tags: vX.M.patchlevel where X = year - 2000, M = 1-12

  • X: Year offset (26 = 2026, 27 = 2027, etc.)
  • M: Month (1-12, no leading zeros)
  • patchlevel: Incremental counter starting at 0 per month (0, 1, 2, ...)

npm packages: X.M.patchlevel (same as git tag without the v prefix)

Examples

Git tags and npm versions for the same release:

  • April 2026, 1st release: Git tag v26.4.0, npm 26.4.0
  • April 2026, 2nd release: Git tag v26.4.1, npm 26.4.1
  • May 2026, 1st release: Git tag v26.5.0, npm 26.5.0
  • January 2027, 1st release: Git tag v27.1.0, npm 27.1.0

Release Compatibility Guarantees

Patch version change (new patchlevel in same month)

  • No change of query parameters or response formats
  • Compatible HTTP API
  • Compatible C++ library API
  • Compatible node-osrm API
  • Compatible OSRM datasets

Month change (new YYYY-MM)

  • May introduce forward-compatible changes: query parameters and response properties may be added in responses, but existing properties may not be changed or removed
  • Forward-compatible HTTP API
  • Forward-compatible C++ library API
  • Forward-compatible node-osrm API
  • No compatibility between OSRM datasets (needs new processing)

Conventional Commits

Pull request titles must follow Conventional Commits format with types: feat, fix, docs, style, refactor, perf, test, ci, chore, build. This is validated in CI and helps organize the commit history.

Breaking changes should be indicated with the ! suffix in the PR title (e.g., feat!: remove deprecated API) so they are called out in release notes.

Release Management

  • The master branch is for development and should always be green
  • Automated monthly releases occur on the 1st of each month at 08:00 UTC
  • All changes in master will be automatically released monthly
  • No release candidates are used; the master branch is the quality gate
  • Patch versions within the same month can be released manually at any time

Automated Release Process

Releases are created automatically every month on a scheduled basis:

  1. A GitHub Actions workflow runs on the 1st of each month at 08:00 UTC
  2. Version is calculated as (YYYY-2000).M.patchlevel with M = 1-12 (no leading zeros)
  3. package.json and package-lock.json versions are updated
  4. A git tag is created and pushed (e.g., v26.4.0)
  5. A GitHub Release is published with auto-generated release notes
  6. The package is published to npm (format: 26.4.0 without v prefix)

Manual Release Trigger

You can also trigger a release manually on any branch:

  1. Go to ActionsMonthly Release workflow
  2. Click Run workflow
  3. Select your branch (defaults to master)
  4. Optionally override the version (format: X.M.patchlevel with M = 1-12, e.g., 26.4.0)
  5. Click Run workflow

This is useful for:

  • Out-of-schedule patch releases within the same month
  • Emergency releases from other branches
  • Backports to older versions

Release Checklist

When releasing (automated or manual):

  1. ✅ All GitHub Actions CI checks pass
  2. ✅ The target branch is in a releasable state
  3. ✅ For manual releases: verify the version format is correct (X.M.patchlevel with month 1-12, e.g., 26.4.0)
  4. ✅ The release is created automatically with:
    • Git tag
    • GitHub Release (with auto-generated release notes)
    • npm publication

After Release

No additional manual steps are required. The automated workflow handles:

  • Version bumping in package.json
  • Git commit and tag creation
  • GitHub Release publishing
  • npm package publication

For non-automated releases, monitor:

  • GitHub Actions to verify the release completed successfully
  • npm registry to confirm the new version is published
+ \ No newline at end of file diff --git a/docs/v26.5.0/routed.html b/docs/v26.5.0/routed.html index 2edc319..6e8a03d 100644 --- a/docs/v26.5.0/routed.html +++ b/docs/v26.5.0/routed.html @@ -6,20 +6,20 @@ OSRM API Documentation - - + + - - - - - + + + + + -
Skip to content

Environment Variables

SHM_LOCK_DIR

If the SHM_LOCK_DIR environment variable is set, OSRM will use it as the directory for shared memory lock files instead of the system temporary directory. This is useful in containerized environments (Docker/Kubernetes) where the lock file directory should persist across container restarts when loading from shared memory.

SIGNAL_PARENT_WHEN_READY

If the SIGNAL_PARENT_WHEN_READY environment variable is set osrm-routed will send the USR1 signal to its parent when it will be running and waiting for requests. This could be used to upgrade osrm-routed to a new binary on the fly without any service downtime - no incoming requests will be lost.

DISABLE_ACCESS_LOGGING

If the DISABLE_ACCESS_LOGGING environment variable is set osrm-routed will not log any http requests to standard output. This can be useful in high traffic setup.

- +
Skip to content

Environment Variables

SHM_LOCK_DIR

If the SHM_LOCK_DIR environment variable is set, OSRM will use it as the directory for shared memory lock files instead of the system temporary directory. This is useful in containerized environments (Docker/Kubernetes) where the lock file directory should persist across container restarts when loading from shared memory.

SIGNAL_PARENT_WHEN_READY

If the SIGNAL_PARENT_WHEN_READY environment variable is set osrm-routed will send the USR1 signal to its parent when it will be running and waiting for requests. This could be used to upgrade osrm-routed to a new binary on the fly without any service downtime - no incoming requests will be lost.

DISABLE_ACCESS_LOGGING

If the DISABLE_ACCESS_LOGGING environment variable is set osrm-routed will not log any http requests to standard output. This can be useful in high traffic setup.

+ \ No newline at end of file diff --git a/docs/v26.5.0/testing.html b/docs/v26.5.0/testing.html index badc876..2c83af8 100644 --- a/docs/v26.5.0/testing.html +++ b/docs/v26.5.0/testing.html @@ -6,19 +6,19 @@ Testsuite | OSRM API Documentation - - + + - - - - - + + + + + -
Skip to content

Testsuite

OSRM comes with a testsuite containing both unit-tests using the Boost library and cucumber.js for scenario driven testing.

Unit Tests

For a general introduction on Boost.Test have a look at its docs.

Separate Test Binaries

Unit tests should be registered according to the sub-project they're in. If you want to write tests for utility functions, add them to the utility test binary. See CMakeLists.txt in the unit test directory for how to register new unit tests.

Using Boost.Test Primitives

There is a difference between only reporting a failed condition and aborting the test right at a failed condition. Have a look at BOOST_CHECK vs BOOST_REQUIRE. Instead of manually checking e.g. for equality, less than, if a function throws etc. use their corresponding Boost.Test primitives.

If you use BOOST_CHECK_EQUAL you have to implement operator<< for your type so that Boost.Test can print mismatches. If you do not want to do this, define BOOST_TEST_DONT_PRINT_LOG_VALUE (and undef it after the check call) or sidestep it with BOOST_CHECK(fst == snd);.

Test Fixture

If you need to test features on a real dataset (think about this twice: prefer cucumber and dataset-independent tests for their reproducibility and minimality), there is a fixed dataset in test/data. This dataset is a small extract and may not even contain all tags or edge cases. Furthermore this dataset is not in sync with what you see in up-to-date OSM maps or on the demo server. See the library tests for how to add new dataset dependent tests.

To prepare the test data simply cd test/data/ and then run make.

Running Tests

To build the unit tests:

cd build
+    
Skip to content

Testsuite

OSRM comes with a testsuite containing both unit-tests using the Boost library and cucumber.js for scenario driven testing.

Unit Tests

For a general introduction on Boost.Test have a look at its docs.

Separate Test Binaries

Unit tests should be registered according to the sub-project they're in. If you want to write tests for utility functions, add them to the utility test binary. See CMakeLists.txt in the unit test directory for how to register new unit tests.

Using Boost.Test Primitives

There is a difference between only reporting a failed condition and aborting the test right at a failed condition. Have a look at BOOST_CHECK vs BOOST_REQUIRE. Instead of manually checking e.g. for equality, less than, if a function throws etc. use their corresponding Boost.Test primitives.

If you use BOOST_CHECK_EQUAL you have to implement operator<< for your type so that Boost.Test can print mismatches. If you do not want to do this, define BOOST_TEST_DONT_PRINT_LOG_VALUE (and undef it after the check call) or sidestep it with BOOST_CHECK(fst == snd);.

Test Fixture

If you need to test features on a real dataset (think about this twice: prefer cucumber and dataset-independent tests for their reproducibility and minimality), there is a fixed dataset in test/data. This dataset is a small extract and may not even contain all tags or edge cases. Furthermore this dataset is not in sync with what you see in up-to-date OSM maps or on the demo server. See the library tests for how to add new dataset dependent tests.

To prepare the test data simply cd test/data/ and then run make.

Running Tests

To build the unit tests:

cd build
 cmake ..
 make tests

You should see the compiled binaries in build/unit_tests, you can then run each suite individually:

./engine-tests

Cucumber

For a general introduction on cucumber in our testsuite, have a look at the wiki.

This documentation aims to supply a guideline on how to write cucumber tests that test new features introduced into osrm.

Test the feature

It is often tempting to reduce the test to a path and accompanying instructions. Instructions can and will change over the course of improving guidance.

Instructions should only be used when writing a feature located in features/guidance. All other features should avoid using instructions at all.

Write Tests to Scale

OSRM is a navigation engine. Tests should always consider this context.

An important implication is the grid size. If tests use a very small grid size, you run into the chance of instructions being omitted. For example:

Background:
     Given the profile "car"
@@ -198,8 +198,8 @@
 
 When I route I should get
  | waypoints | route       | turns                   |
- | a,e       | abc,bde,bde | depart,turn right,arrive|

where we see a slight right, over the expected right. We could be tempted to adjust the grid size (e.g. from 10 m to 20 meters).

Such a change would fundamentally alter the tests, though. Since the part b-d is a short offset, when we are looking at a grid of size 5 m, the angle calculation will try and compensate for this offset.

In this case we would see a very slight turn angle. If your change now reports different turn angles, you can of course change the expected result. But you should not adjust the grid size. The test would be testing turn angles of 180 and 100 degrees, instead of 180 and 160.

Consider Post-Processing Impacts

Some changes you might see could look completely unrelated. To understand the impact of your changes, you can make use of the debugging utilities you can find in util/debug.hpp (and potentially other related headers).

If your test is inspecting a series of turns (remember, a turn does not necessarily equals an instruction), you could see interaction with post-processing. To see the unprocessed turns, you should print the steps at the end of step assembly (assembleSteps in engine/guidance/assemble_steps.hpp).

If you see unexpected changes, you can consider adding the locations field to your test to study what location a turn is reported at.

To study a test without post-processing impacts, you can create a copy of the case on a very large grid (like 2000 meters). In such a grid, turn collapsing would be essentially disabled.

Sadly, there is no general guideline.

Use Caution

If in doubt, ask another person. Inspect as much of the data as possible (e.g. print un-collapsed steps, turn angles and so on) and use your best judgement, if the new result seems justified.

- + | a,e | abc,bde,bde | depart,turn right,arrive|

where we see a slight right, over the expected right. We could be tempted to adjust the grid size (e.g. from 10 m to 20 meters).

Such a change would fundamentally alter the tests, though. Since the part b-d is a short offset, when we are looking at a grid of size 5 m, the angle calculation will try and compensate for this offset.

In this case we would see a very slight turn angle. If your change now reports different turn angles, you can of course change the expected result. But you should not adjust the grid size. The test would be testing turn angles of 180 and 100 degrees, instead of 180 and 160.

Consider Post-Processing Impacts

Some changes you might see could look completely unrelated. To understand the impact of your changes, you can make use of the debugging utilities you can find in util/debug.hpp (and potentially other related headers).

If your test is inspecting a series of turns (remember, a turn does not necessarily equals an instruction), you could see interaction with post-processing. To see the unprocessed turns, you should print the steps at the end of step assembly (assembleSteps in engine/guidance/assemble_steps.hpp).

If you see unexpected changes, you can consider adding the locations field to your test to study what location a turn is reported at.

To study a test without post-processing impacts, you can create a copy of the case on a very large grid (like 2000 meters). In such a grid, turn collapsing would be essentially disabled.

Sadly, there is no general guideline.

Use Caution

If in doubt, ask another person. Inspect as much of the data as possible (e.g. print un-collapsed steps, turn angles and so on) and use your best judgement, if the new result seems justified.

+ \ No newline at end of file diff --git a/docs/v26.5.0/tools.html b/docs/v26.5.0/tools.html index d3ff405..fb3d315 100644 --- a/docs/v26.5.0/tools.html +++ b/docs/v26.5.0/tools.html @@ -6,19 +6,19 @@ Command-Line Tools | OSRM API Documentation - - + + - - - - - + + + + + -
Skip to content

Command-Line Tools

OSRM ships six command-line tools that cover the full data pipeline, from raw OSM data to a running routing server. All tools share a set of common options described below, followed by per-tool reference sections.

Common Options

These flags are accepted by every tool.

FlagShortDescription
--help-hShow the help message and exit.
--version-vShow the version string and exit.
--verbosity <level>-lLog verbosity: NONE, ERROR, WARNING, INFO (default), DEBUG.
--list-inputsPrint all required and optional input file extensions the tool expects, then exit. Useful for deployment scripts.
--threads <n>-tNumber of threads to use (default: number of logical CPUs).

--list-inputs

Prints one line per file in the format required|optional <extension>:

$ osrm-routed --list-inputs
+    
Skip to content

Command-Line Tools

OSRM ships six command-line tools that cover the full data pipeline, from raw OSM data to a running routing server. All tools share a set of common options described below, followed by per-tool reference sections.

Common Options

These flags are accepted by every tool.

FlagShortDescription
--help-hShow the help message and exit.
--version-vShow the version string and exit.
--verbosity <level>-lLog verbosity: NONE, ERROR, WARNING, INFO (default), DEBUG.
--list-inputsPrint all required and optional input file extensions the tool expects, then exit. Useful for deployment scripts.
--threads <n>-tNumber of threads to use (default: number of logical CPUs).

--list-inputs

Prints one line per file in the format required|optional <extension>:

$ osrm-routed --list-inputs
 required .osrm.datasource_names
 required .osrm.ebg_nodes
 required .osrm.edges
@@ -27,8 +27,8 @@
 optional .osrm.cells

Example — collect all files needed to deploy osrm-routed:

bash
BASE=map
 for line in $(osrm-routed --list-inputs); do
     echo "$BASE$line"
-done

osrm-extract

Reads an OSM file and a Lua profile, and produces the intermediate .osrm.* files consumed by the graph-preparation tools.

osrm-extract <input.osm/.osm.bz2/.osm.pbf> [options]
FlagShortDefaultDescription
--profile <path>-pprofiles/car.luaPath to the Lua routing profile.
--output <path>-oDerived from input filenameBase path for generated output files.
--data_version <string>-d(none)Tag the dataset with a version string. Use osmosis to read the timestamp embedded in the PBF file.
--small-component-size <n>1000Minimum node count for a strongly-connected component to be treated as "large". Affects nearest-neighbor snapping.
--with-osm-metadataParse OSM metadata (user, timestamp, etc.). May reduce extraction performance.
--parse-conditional-restrictionsSave conditional turn restrictions to disk so they can be evaluated during contraction.
--location-dependent-data <file>GeoJSON files containing location-dependent data (e.g. speed limits by region). Repeatable.
--disable-location-cacheDisable the internal node-location cache used for location-dependent data lookups.
--dump-nbg-graphWrite the raw node-based graph to the .osrm file for debugging.

osrm-partition

Partitions the road network graph into a hierarchy of cells used by the Multi-Level Dijkstra (MLD) algorithm.

osrm-partition <input.osrm> [options]
FlagDefaultDescription
--max-cell-sizes <list>128,4096,65536,2097152Comma-separated maximum cell sizes per level, starting from level 1. The first value is also the bisection termination threshold.
--balance <factor>1.2Maximum allowed size ratio between the two sides of a single bisection.
--boundary <fraction>0.25Fraction of nodes to use as boundary sources/sinks during contraction.
--optimizing-cuts <n>10Number of candidate cuts evaluated when optimizing a single bisection.
--small-component-size <n>1000Node-count threshold below which a component is treated as small.

osrm-customize

Applies live traffic data (speed and turn-penalty files) to a partitioned MLD graph. Can be run repeatedly without re-partitioning when speeds change.

osrm-customize <input.osrm> [options]
FlagDefaultDescription
--segment-speed-file <file>CSV with nodeA,nodeB,speed columns to override edge weights. Repeatable.
--turn-penalty-file <file>CSV with from_node,via_node,to_node,penalty to override turn weights. Repeatable.
--edge-weight-updates-over-factor <x>0 (disabled)Log edges whose weight changed by more than factor x (requires --segment-speed-file).
--parse-conditionals-from-now <utc_timestamp>0 (disabled)UTC Unix timestamp from which to evaluate conditional turn restrictions.
--time-zone-file <file>GeoJSON file with time-zone boundaries, required for conditional restriction parsing.

osrm-contract

Builds a Contraction Hierarchy (CH) from the extracted graph. Use this instead of osrm-partition + osrm-customize when you don't need live traffic updates.

osrm-contract <input.osrm> [options]
FlagDefaultDescription
--segment-speed-file <file>CSV with nodeA,nodeB,speed columns to override edge weights. Repeatable.
--turn-penalty-file <file>CSV with from_node,via_node,to_node,penalty to override turn weights. Repeatable.
--edge-weight-updates-over-factor <x>0 (disabled)Log edges whose weight changed by more than factor x.
--parse-conditionals-from-now <utc_timestamp>0 (disabled)UTC Unix timestamp for evaluating conditional turn restrictions.
--time-zone-file <file>GeoJSON file with time-zone boundaries, required for conditional restriction parsing.

osrm-routed

The HTTP server. Loads a prepared dataset and serves the OSRM HTTP API.

osrm-routed <base.osrm> [options]

Server

FlagShortDefaultDescription
--ip <address>-i0.0.0.0IP address to listen on.
--port <n>-p5000TCP port to listen on.
--keepalive-timeout <s>-k5HTTP keep-alive timeout in seconds.
--trialStart up fully, then exit immediately. Useful to validate a dataset without serving traffic.

Data loading

FlagShortDefaultDescription
--algorithm <name>-aCHRouting algorithm: CH (Contraction Hierarchy) or MLD (Multi-Level Dijkstra).
--shared-memory-soffLoad data from a shared memory region managed by osrm-datastore.
--mmap-moffMemory-map the data files instead of loading them into RAM.
--dataset-name <name>Shared memory dataset name to connect to (used with --shared-memory).
--disable-feature-dataset <name>Skip loading an optional dataset to save memory. Options: ROUTE_STEPS, ROUTE_GEOMETRY.

Query limits

FlagDefaultDescription
--max-viaroute-size <n>500Maximum number of waypoints in a route query.
--max-trip-size <n>100Maximum number of locations in a trip query.
--max-table-size <n>100Maximum number of locations in a table query.
--max-matching-size <n>100Maximum number of locations in a map-matching query.
--max-nearest-size <n>100Maximum number of results in a nearest query.
--max-alternatives <n>3Maximum number of alternative routes (MLD only).
--max-matching-radius <m>-1 (unlimited)Maximum search radius in metres for map-matching.
--default-radius <m>-1 (unlimited)Default snap radius for all queries.
--max-header-size <bytes>0 (auto)Maximum HTTP header size in bytes.

osrm-datastore

Loads a prepared dataset into shared memory so that one or more osrm-routed processes can serve it with zero-copy access. Enables live traffic updates without restarting the server.

osrm-datastore [options] <base.osrm>
FlagShortDefaultDescription
--dataset-name <name>Name for this dataset in shared memory. Allows multiple datasets to coexist.
--max-wait <s>-1 (unlimited)Seconds to wait for a running update to finish before forcibly acquiring the lock.
--only-metricReload only the metric (weights/durations) without replacing the full dataset. Optimized for frequent traffic updates.
--disable-feature-dataset <name>Skip loading an optional dataset. Options: ROUTE_STEPS, ROUTE_GEOMETRY.
--remove-locks-rRemove stale shared-memory locks and exit.
--spring-clean-sRemove all OSRM shared memory regions and exit.
--listList all datasets currently loaded in shared memory.
--list-blocksList all shared memory blocks currently in use.
- +done

osrm-extract

Reads an OSM file and a Lua profile, and produces the intermediate .osrm.* files consumed by the graph-preparation tools.

osrm-extract <input.osm/.osm.bz2/.osm.pbf> [options]
FlagShortDefaultDescription
--profile <path>-pprofiles/car.luaPath to the Lua routing profile.
--output <path>-oDerived from input filenameBase path for generated output files.
--data_version <string>-d(none)Tag the dataset with a version string. Use osmosis to read the timestamp embedded in the PBF file.
--small-component-size <n>1000Minimum node count for a strongly-connected component to be treated as "large". Affects nearest-neighbor snapping.
--with-osm-metadataParse OSM metadata (user, timestamp, etc.). May reduce extraction performance.
--parse-conditional-restrictionsSave conditional turn restrictions to disk so they can be evaluated during contraction.
--location-dependent-data <file>GeoJSON files containing location-dependent data (e.g. speed limits by region). Repeatable.
--disable-location-cacheDisable the internal node-location cache used for location-dependent data lookups.
--dump-nbg-graphWrite the raw node-based graph to the .osrm file for debugging.

osrm-partition

Partitions the road network graph into a hierarchy of cells used by the Multi-Level Dijkstra (MLD) algorithm.

osrm-partition <input.osrm> [options]
FlagDefaultDescription
--max-cell-sizes <list>128,4096,65536,2097152Comma-separated maximum cell sizes per level, starting from level 1. The first value is also the bisection termination threshold.
--balance <factor>1.2Maximum allowed size ratio between the two sides of a single bisection.
--boundary <fraction>0.25Fraction of nodes to use as boundary sources/sinks during contraction.
--optimizing-cuts <n>10Number of candidate cuts evaluated when optimizing a single bisection.
--small-component-size <n>1000Node-count threshold below which a component is treated as small.

osrm-customize

Applies live traffic data (speed and turn-penalty files) to a partitioned MLD graph. Can be run repeatedly without re-partitioning when speeds change.

osrm-customize <input.osrm> [options]
FlagDefaultDescription
--segment-speed-file <file>CSV with nodeA,nodeB,speed columns to override edge weights. Repeatable.
--turn-penalty-file <file>CSV with from_node,via_node,to_node,penalty to override turn weights. Repeatable.
--edge-weight-updates-over-factor <x>0 (disabled)Log edges whose weight changed by more than factor x (requires --segment-speed-file).
--parse-conditionals-from-now <utc_timestamp>0 (disabled)UTC Unix timestamp from which to evaluate conditional turn restrictions.
--time-zone-file <file>GeoJSON file with time-zone boundaries, required for conditional restriction parsing.

osrm-contract

Builds a Contraction Hierarchy (CH) from the extracted graph. Use this instead of osrm-partition + osrm-customize when you don't need live traffic updates.

osrm-contract <input.osrm> [options]
FlagDefaultDescription
--segment-speed-file <file>CSV with nodeA,nodeB,speed columns to override edge weights. Repeatable.
--turn-penalty-file <file>CSV with from_node,via_node,to_node,penalty to override turn weights. Repeatable.
--edge-weight-updates-over-factor <x>0 (disabled)Log edges whose weight changed by more than factor x.
--parse-conditionals-from-now <utc_timestamp>0 (disabled)UTC Unix timestamp for evaluating conditional turn restrictions.
--time-zone-file <file>GeoJSON file with time-zone boundaries, required for conditional restriction parsing.

osrm-routed

The HTTP server. Loads a prepared dataset and serves the OSRM HTTP API.

osrm-routed <base.osrm> [options]

Server

FlagShortDefaultDescription
--ip <address>-i0.0.0.0IP address to listen on.
--port <n>-p5000TCP port to listen on.
--keepalive-timeout <s>-k5HTTP keep-alive timeout in seconds.
--trialStart up fully, then exit immediately. Useful to validate a dataset without serving traffic.

Data loading

FlagShortDefaultDescription
--algorithm <name>-aCHRouting algorithm: CH (Contraction Hierarchy) or MLD (Multi-Level Dijkstra).
--shared-memory-soffLoad data from a shared memory region managed by osrm-datastore.
--mmap-moffMemory-map the data files instead of loading them into RAM.
--dataset-name <name>Shared memory dataset name to connect to (used with --shared-memory).
--disable-feature-dataset <name>Skip loading an optional dataset to save memory. Options: ROUTE_STEPS, ROUTE_GEOMETRY.

Query limits

FlagDefaultDescription
--max-viaroute-size <n>500Maximum number of waypoints in a route query.
--max-trip-size <n>100Maximum number of locations in a trip query.
--max-table-size <n>100Maximum number of locations in a table query.
--max-matching-size <n>100Maximum number of locations in a map-matching query.
--max-nearest-size <n>100Maximum number of results in a nearest query.
--max-alternatives <n>3Maximum number of alternative routes (MLD only).
--max-matching-radius <m>-1 (unlimited)Maximum search radius in metres for map-matching.
--default-radius <m>-1 (unlimited)Default snap radius for all queries.
--max-header-size <bytes>0 (auto)Maximum HTTP header size in bytes.

osrm-datastore

Loads a prepared dataset into shared memory so that one or more osrm-routed processes can serve it with zero-copy access. Enables live traffic updates without restarting the server.

osrm-datastore [options] <base.osrm>
FlagShortDefaultDescription
--dataset-name <name>Name for this dataset in shared memory. Allows multiple datasets to coexist.
--max-wait <s>-1 (unlimited)Seconds to wait for a running update to finish before forcibly acquiring the lock.
--only-metricReload only the metric (weights/durations) without replacing the full dataset. Optimized for frequent traffic updates.
--disable-feature-dataset <name>Skip loading an optional dataset. Options: ROUTE_STEPS, ROUTE_GEOMETRY.
--remove-locks-rRemove stale shared-memory locks and exit.
--spring-clean-sRemove all OSRM shared memory regions and exit.
--listList all datasets currently loaded in shared memory.
--list-blocksList all shared memory blocks currently in use.
+ \ No newline at end of file diff --git a/docs/v26.5.0/windows-deps.html b/docs/v26.5.0/windows-deps.html index 26c38ce..13c4506 100644 --- a/docs/v26.5.0/windows-deps.html +++ b/docs/v26.5.0/windows-deps.html @@ -6,23 +6,23 @@ Building OSRM for Windows | OSRM API Documentation - - + + - - - - - + + + + + -
Skip to content

Building OSRM for Windows

There is experimental support for building OSRM on Windows.

Dependencies

You will need a modern Windows development stack (e.g. Visual Studio 17). The published binaries are built with Windows Server 2025 Github hosted runners.

Dependencies are managed via vcpkg in manifest mode (see vcpkg.json at the repo root). The baseline commit is pinned in vcpkg-configuration.json.

Prerequisites

  1. Install Visual Studio 2022 with the "Desktop development with C++" workload.
  2. Clone vcpkg and bootstrap it:
bat
git clone https://github.com/microsoft/vcpkg.git C:\vcpkg
+    
Skip to content

Building OSRM for Windows

There is experimental support for building OSRM on Windows.

Dependencies

You will need a modern Windows development stack (e.g. Visual Studio 17). The published binaries are built with Windows Server 2025 Github hosted runners.

Dependencies are managed via vcpkg in manifest mode (see vcpkg.json at the repo root). The baseline commit is pinned in vcpkg-configuration.json.

Prerequisites

  1. Install Visual Studio 2022 with the "Desktop development with C++" workload.
  2. Clone vcpkg and bootstrap it:
bat
git clone https://github.com/microsoft/vcpkg.git C:\vcpkg
 C:\vcpkg\bootstrap-vcpkg.bat
 set VCPKG_ROOT=C:\vcpkg

Building

From a x64 Native Tools Command Prompt for VS 2022 at the repo root:

bat
cmake --preset ci-windows -DENABLE_NODE_BINDINGS=ON
-cmake --build --preset ci-windows

The first configure will build every dependency from source, which takes a while. Subsequent configures reuse vcpkg's binary cache.

- +cmake --build --preset ci-windows

The first configure will build every dependency from source, which takes a while. Subsequent configures reuse vcpkg's binary cache.

+ \ No newline at end of file