From e01889f38fe47287dcd7dd281ff5f981f8629c5c Mon Sep 17 00:00:00 2001 From: oskar Date: Tue, 9 Sep 2025 23:57:54 +0200 Subject: [PATCH] device-60.home 2025-9-9:23:57:54 --- .obsidian/community-plugins.json | 3 +- .obsidian/core-plugins.json | 2 +- .../plugins/darlal-switcher-plus/main.js | 2 +- .../darlal-switcher-plus/manifest.json | 4 +- .obsidian/plugins/default-template/data.json | 3 + .obsidian/plugins/default-template/main.js | 6 + .../plugins/default-template/manifest.json | 1 + .obsidian/plugins/extended-graph/main.js | 76 +- .../plugins/extended-graph/manifest.json | 2 +- .obsidian/plugins/obsidian-asciimath/main.js | 828 +++++----- .../plugins/obsidian-asciimath/manifest.json | 2 +- .../obsidian-excalidraw-plugin/data.json | 2 +- .../obsidian-excalidraw-plugin/main.js | 4 +- .../obsidian-excalidraw-plugin/manifest.json | 2 +- .obsidian/plugins/obsidian-markmind/main.js | 10 +- .../plugins/obsidian-markmind/manifest.json | 2 +- .../plugins/obsidian-markmind/styles.css | 19 + .../plugins/obsidian-meta-bind-plugin/main.js | 16 +- .../obsidian-meta-bind-plugin/manifest.json | 2 +- .../obsidian-task-progress-bar/main.js | 1441 +++++++++++++---- .../obsidian-task-progress-bar/manifest.json | 2 +- .../obsidian-task-progress-bar/styles.css | 2 +- .obsidian/plugins/obsidian42-brat/data.json | 9 +- .obsidian/plugins/podnotes/main.js | 1 + .obsidian/plugins/podnotes/manifest.json | 2 +- .obsidian/plugins/quickadd/data.json | 4 +- .obsidian/plugins/quickadd/main.js | 94 +- .obsidian/plugins/quickadd/manifest.json | 2 +- .obsidian/plugins/quickadd/styles.css | 2 +- .../supercharged-links-obsidian/main.js | 96 +- .../supercharged-links-obsidian/manifest.json | 2 +- .obsidian/plugins/url-into-selection/main.js | 4 +- .../plugins/url-into-selection/manifest.json | 2 +- .obsidian/plugins/various-complements/main.js | 855 +++++----- .../plugins/various-complements/manifest.json | 2 +- templates/default new note.md | 4 +- 36 files changed, 2208 insertions(+), 1302 deletions(-) create mode 100644 .obsidian/plugins/default-template/data.json create mode 100644 .obsidian/plugins/default-template/main.js create mode 100644 .obsidian/plugins/default-template/manifest.json diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index 70974d34..e2fbdf19 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -40,5 +40,6 @@ "obsidian-spaced-repetition", "obsidian-minimal-settings", "github-sync", - "obsidian-completr" + "obsidian-completr", + "default-template" ] \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json index 7958ce90..ca31bbf8 100644 --- a/.obsidian/core-plugins.json +++ b/.obsidian/core-plugins.json @@ -27,7 +27,7 @@ "sync": false, "canvas": true, "bookmarks": true, - "properties": true, + "properties": false, "webviewer": true, "footnotes": true, "bases": true diff --git a/.obsidian/plugins/darlal-switcher-plus/main.js b/.obsidian/plugins/darlal-switcher-plus/main.js index e6c3e18a..d2e08fc8 100644 --- a/.obsidian/plugins/darlal-switcher-plus/main.js +++ b/.obsidian/plugins/darlal-switcher-plus/main.js @@ -1,3 +1,3 @@ -"use strict";var e,t,s,i,n=require("obsidian");!function(e){e[e.None=0]="None",e[e.Full=1]="Full",e[e.FolderOnly=2]="FolderOnly",e[e.FolderWithFilename=3]="FolderWithFilename",e[e.FolderPathFilenameOptional=4]="FolderPathFilenameOptional"}(e||(e={})),function(e){e[e.Standard=1]="Standard",e[e.EditorList=2]="EditorList",e[e.SymbolList=4]="SymbolList",e[e.WorkspaceList=8]="WorkspaceList",e[e.HeadingsList=16]="HeadingsList",e[e.BookmarksList=32]="BookmarksList",e[e.CommandList=64]="CommandList",e[e.RelatedItemsList=128]="RelatedItemsList",e[e.VaultList=256]="VaultList"}(t||(t={})),function(e){e[e.Link=1]="Link",e[e.Embed=2]="Embed",e[e.Tag=4]="Tag",e[e.Heading=8]="Heading",e[e.Callout=16]="Callout",e[e.CanvasNode=32]="CanvasNode"}(s||(s={})),function(e){e[e.None=0]="None",e[e.Normal=1]="Normal",e[e.Heading=2]="Heading",e[e.Block=4]="Block"}(i||(i={}));const a={};a[s.Link]="🔗",a[s.Embed]="!",a[s.Tag]="#",a[s.Heading]="H";const o={};var r,l,d;function c(e,t,s){let i=!1;return e&&void 0!==e[t]&&(i=!0,void 0!==s&&s!==e[t]&&(i=!1)),i}function h(e){return c(e,"type",r.SymbolList)}function u(e){return c(e,"type",r.HeadingsList)}function m(e){return c(e,"type",r.File)}function g(e){return c(e,"type",r.Alias)}function p(e){return c(e,"type",r.Unresolved)}function f(e){return e&&!(m(t=e)||p(t)||g(t));var t}function y(e){return c(e,"level")}function b(e){return c(e,"type","callout")}function S(e){return c(e,"extension")}function k(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function v(e,t){return e?.internalPlugins?.getEnabledPluginById(t)}function C(e){const t=function(e,t){return e?.internalPlugins?.getPluginById(t)}(e,"switcher");return t?.instance}function L(e){return v(e,"global-search")}function w(){return Object.values(t).filter((e=>isNaN(Number(e)))).sort()}function I(){return[t.RelatedItemsList,t.SymbolList]}function E(e){let t=null;if(e){const s=n.normalizePath(e),i=s.lastIndexOf("/");t=-1===i?s:s.slice(i+1)}return t}function T(e){e=e??[];const t=[];for(const s of e)try{const e=new RegExp(s);t.push(e)}catch(e){console.log(`Switcher++: error creating RegExp from string: ${s}`,e)}return e=>{for(const s of t)if(s.test(e))return!0;return!1}}function F(e){let t=i.None;if(e){const s=e.link.split("|")[0];t=s.includes("#^")?i.Block:s.includes("#")?i.Heading:i.Normal}return t}function A(e,t){return t?.getFileByPath(e)}function x(e){let t=null;if(!e)return t;if(e.isDeferred){const s=e.getViewState()?.state?.file;s&&(t=A(s,e.app?.vault))}else e.view?.file&&(t=e.view.file);return t}function O(e,t,s,i,a){let o=null;if(a=Object.assign({useBasenameAsAlias:!0,useHeadingAsAlias:!0},a),s){let l=M(s),d=null,h=null;switch(s.type){case r.Unresolved:o=B(s.linktext);break;case r.Alias:d=s.alias;break;case r.Bookmark:{const{item:e}=s;"file"===e.type&&e.title&&(d=e.title);break}case r.HeadingsList:{const{heading:e}=s.item;({subpath:h,alias:d}=P(e,a.useHeadingAsAlias));break}case r.SymbolList:{const{item:{symbol:r}}=s;if(y(r))({subpath:h,alias:d}=P(r.heading,a.useHeadingAsAlias));else if(c(r,"link")){o=new RegExp(/^\[(.*?)\]\((.+?)\)/).test(r.original)?r.original:function(e,t,s,i,a,o){const{link:r,displayText:l}=i,{path:d,subpath:c}=n.parseLinktext(r);let h=l,u=null,m=null;u=d?.length?A(d,t):a;u?(!h?.length&&o&&(h=u.basename),m=e.generateMarkdownLink(u,s,c,h)):m=B(d,h);return m}(e,t,i,r,l,a.useBasenameAsAlias)}else l=null;break}case r.RelatedItemsList:{const{item:e}=s;e.unresolvedText&&(o=B(e.unresolvedText));break}}l&&!o&&(!d&&a.useBasenameAsAlias&&(d=l.basename),o=e.generateMarkdownLink(l,i,h,d))}return o}function P(e,t){const s=n.stripHeadingForLink(e);return{subpath:`#${s}`,alias:t?s:null}}function M(e){let t=null;return[r.Alias,r.Bookmark,r.HeadingsList,r.SymbolList,r.RelatedItemsList,r.EditorList,r.File].includes(e?.type)&&(t=e.file),t}function B(e,t){return`[[${e}${t=t?.length?`|${t}`:""}]]`}function R(e,t){return e?.view?.getViewType()===t&&!e.isDeferred}o[1]="H₁",o[2]="H₂",o[3]="H₃",o[4]="H₄",o[5]="H₅",o[6]="H₆",function(e){e.EditorList="editorList",e.SymbolList="symbolList",e.WorkspaceList="workspaceList",e.HeadingsList="headingsList",e.Bookmark="bookmark",e.CommandList="commandList",e.RelatedItemsList="relatedItemsList",e.VaultList="vaultList",e.File="file",e.Alias="alias",e.Unresolved="unresolved"}(r||(r={})),function(e){e[e.None=0]="None",e[e.Primary=1]="Primary",e[e.Basename=2]="Basename",e[e.Path=3]="Path"}(l||(l={})),function(e){e.DiskLocation="disk-location",e.Backlink="backlink",e.OutgoingLink="outgoing-link"}(d||(d={}));class H{static getAliases(e){let t=[];return e&&(t=H.getValueForKey(e,/^alias(es)?$/i)),t}static getValueForKey(e,t){const s=[],i=Object.keys(e).find((e=>t.test(e)));if(i){let t=e[i];"string"==typeof t&&(t=t.split(",")),Array.isArray(t)&&t.forEach((e=>{"string"==typeof e&&s.push(e.trim())}))}return s}}class D{static getRootComponent(){return this.rootComponent||(this.rootComponent=new n.Component),this.rootComponent}static unload(){this.rootComponent?.unload()}}const W={file:"canvas-node-file",text:"canvas-node-text",link:"canvas-node-link",group:"canvas-node-group"},V=[{id:s[s.Heading],mode:t.SymbolList,label:"headings",isActive:!1,isAvailable:!0},{id:s[s.Tag],mode:t.SymbolList,label:"tags",isActive:!1,isAvailable:!0},{id:s[s.Callout],mode:t.SymbolList,label:"callouts",isActive:!1,isAvailable:!0},{id:s[s.Link],mode:t.SymbolList,label:"links",isActive:!1,isAvailable:!0},{id:s[s.Embed],mode:t.SymbolList,label:"embeds",isActive:!1,isAvailable:!0},{id:W.file,mode:t.SymbolList,label:"file cards",isActive:!1,isAvailable:!0},{id:W.text,mode:t.SymbolList,label:"text cards",isActive:!1,isAvailable:!0},{id:W.link,mode:t.SymbolList,label:"link cards",isActive:!1,isAvailable:!0},{id:W.group,mode:t.SymbolList,label:"groups",isActive:!1,isAvailable:!0}],q=[{id:d.Backlink,mode:t.RelatedItemsList,label:"backlinks",isActive:!1,isAvailable:!0},{id:d.OutgoingLink,mode:t.RelatedItemsList,label:"outgoing links",isActive:!1,isAvailable:!0},{id:d.DiskLocation,mode:t.RelatedItemsList,label:"disk location",isActive:!1,isAvailable:!0}],K={file:"bookmarks-file",folder:"bookmarks-folder",search:"bookmarks-search",group:"bookmarks-group"},N=[{id:K.file,mode:t.BookmarksList,label:"files",isActive:!1,isAvailable:!0},{id:K.folder,mode:t.BookmarksList,label:"folders",isActive:!1,isAvailable:!0},{id:K.search,mode:t.BookmarksList,label:"searches",isActive:!1,isAvailable:!0}];var j;!function(e){e.Pinned="pinnedCommands",e.Recent="recentCommands"}(j||(j={}));const $=[{id:j.Pinned,mode:t.CommandList,label:"pinned",isActive:!1,isAvailable:!0},{id:j.Recent,mode:t.CommandList,label:"recent",isActive:!1,isAvailable:!0}];var U;!function(e){e.RecentFiles="recentFilesSearch",e.Bookmarks="bookmarksSearch",e.Filenames="filenamesSearch",e.Headings="headingsSearch",e.ExternalFiles="externalFilesSearch"}(U||(U={}));const Q=[{id:U.RecentFiles,mode:t.HeadingsList,label:"recent files",isActive:!1,isAvailable:!0},{id:U.Bookmarks,mode:t.HeadingsList,label:"bookmarks",isActive:!1,isAvailable:!0},{id:U.Filenames,mode:t.HeadingsList,label:"filenames",isActive:!1,isAvailable:!0},{id:U.Headings,mode:t.HeadingsList,label:"headings",isActive:!1,isAvailable:!0},{id:U.ExternalFiles,mode:t.HeadingsList,label:"external files",isActive:!1,isAvailable:!0}];function z(){const e={};return[V,q,N,$,Q].flat().reduce(((e,t)=>(e[t.id]=Object.assign({},t),e)),e),e}const _=e=>{if("object"==typeof e&&null!==e){if("function"==typeof Object.getPrototypeOf){const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}return"[object Object]"===Object.prototype.toString.call(e)}return!1},G=(...e)=>e.reduce(((e,t)=>{if(Array.isArray(t))throw new TypeError("Arguments provided to ts-deepmerge must be objects, not arrays.");return Object.keys(t).forEach((s=>{["__proto__","constructor","prototype"].includes(s)||(Array.isArray(e[s])&&Array.isArray(t[s])?e[s]=G.options.mergeArrays?G.options.uniqueArrayItems?Array.from(new Set(e[s].concat(t[s]))):[...e[s],...t[s]]:t[s]:_(e[s])&&_(t[s])?e[s]=G(e[s],t[s]):e[s]=void 0===t[s]?G.options.allowUndefinedOverrides?t[s]:e[s]:t[s])})),e}),{}),J={allowUndefinedOverrides:!0,mergeArrays:!0,uniqueArrayItems:!0};G.options=J,G.withOptions=(e,...t)=>{G.options=Object.assign(Object.assign({},J),e);const s=G(...t);return G.options=J,s};class X{static get defaults(){const i={};return i[s.Link]=!0,i[s.Embed]=!0,i[s.Tag]=!0,i[s.Heading]=!0,i[s.Callout]=!0,{version:"2.0.0",onOpenPreferNewTab:!0,alwaysNewTabForSymbols:!1,useActiveTabForSymbolsOnMobile:!1,symbolsInLineOrder:!0,editorListCommand:"edt ",symbolListCommand:"@",symbolListActiveEditorCommand:"$ ",workspaceListCommand:"+",headingsListCommand:"#",bookmarksListCommand:"'",commandListCommand:">",recentCommandDisplayOrder:"desc",maxRecentCommands:25,vaultListCommand:"vault ",relatedItemsListCommand:"~",relatedItemsListActiveEditorCommand:"^ ",shouldSearchHeadings:!0,strictHeadingsOnly:!1,searchAllHeadings:!0,headingsSearchDebounceMilli:250,excludeViewTypes:["empty"],referenceViews:["backlink","localgraph","outgoing-link","outline"],limit:50,includeSidePanelViewTypes:["backlink","image","markdown","pdf"],enabledSymbolTypes:i,selectNearestHeading:!0,excludeFolders:[],excludeLinkSubTypes:0,excludeRelatedFolders:[""],excludeOpenRelatedFiles:!1,excludeObsidianIgnoredFiles:!1,shouldSearchFilenames:!1,shouldSearchBookmarks:!1,shouldSearchRecentFiles:!0,pathDisplayFormat:e.FolderWithFilename,hidePathIfRoot:!0,enabledRelatedItems:Object.values(d),showOptionalIndicatorIcons:!0,isFileExtensionIndicatorsEnabled:!0,excludeFileExtensionIndicators:["md"],overrideStandardModeBehaviors:!0,overrideStandardModeRendering:!0,enabledRibbonCommands:[t[t.HeadingsList],t[t.SymbolList]],fileExtAllowList:["canvas"],matchPriorityAdjustments:{isEnabled:!1,adjustments:{isOpenInEditor:{value:0,label:"Open items"},isBookmarked:{value:0,label:"Bookmarked items"},isRecent:{value:0,label:"Recent items"},isAttachment:{value:0,label:"Attachment file types"},file:{value:0,label:"Filenames"},alias:{value:0,label:"Aliases"},unresolved:{value:0,label:"Unresolved filenames"},h1:{value:0,label:"H₁ headings"}},fileExtAdjustments:{canvas:{value:0,label:"Canvas files"}}},quickFilters:{resetKey:"0",keyList:["1","2","3","4","5","6","7","8","9"],modifiers:["Ctrl","Alt"],facetList:z(),shouldResetActiveFacets:!1,shouldShowFacetInstructions:!0},preserveCommandPaletteLastInput:!1,preserveQuickSwitcherLastInput:!1,shouldCloseModalOnBackspace:!1,maxRecentFileSuggestionsOnInit:25,orderEditorListByAccessTime:!0,insertLinkInEditor:{isEnabled:!0,keymap:{modifiers:["Mod"],key:"i",purpose:"insert in editor"},insertableEditorTypes:["markdown"],useBasenameAsAlias:!0,useHeadingAsAlias:!0},removeDefaultTabBinding:!0,navigationKeys:{nextKeys:[{modifiers:["Ctrl"],key:"n"},{modifiers:["Ctrl"],key:"j"}],prevKeys:[{modifiers:["Ctrl"],key:"p"},{modifiers:["Ctrl"],key:"k"}]},preferredSourceForTitle:"H1",closeWhenEmptyKeys:[{modifiers:null,key:"Backspace"}],navigateToHotkeySelectorKeys:{modifiers:["Ctrl","Shift"],key:"h"},togglePinnedCommandKeys:{modifiers:["Ctrl","Shift"],key:"p"},escapeCmdChar:"!",mobileLauncher:{isEnabled:!1,isMobileButtonEnabled:!0,isEmptyTabButtonEnabled:!0,modeString:t[t.HeadingsList],iconName:"",coreLauncherButtonIconSelector:"span.clickable-icon",coreLauncherButtonSelector:".mobile-navbar-action.mobile-navbar-action-quick-switcher"},allowCreateNewFileInModeNames:[t[t.Standard],t[t.HeadingsList]],showModeTriggerInstructions:!0,renderMarkdownContentInSuggestions:{isEnabled:!1,renderHeadings:!1,toggleContentRenderingKeys:{modifiers:["Shift","Ctrl"],key:"m"}},quickOpen:{isEnabled:!0,modifiers:["Alt"],keyList:["1","2","3","4","5","6","7","8","9"]},openDefaultApp:{isEnabled:!0,openInDefaultAppKeys:{modifiers:["Shift","Ctrl"],key:"o"},excludeFileExtensions:[]},fulltextSearch:{isEnabled:!0,searchKeys:{modifiers:["Mod","Shift"],key:"f"}},openInBackground:{isEnabled:!0,openKeys:[{openType:"tab",hotkey:{modifiers:["Mod","Shift"],key:"t"}},{openType:"vertical",hotkey:null},{openType:"horizontal",hotkey:null},{openType:"window",hotkey:null}]},saveWorkspaceAndSwitchKeys:{modifiers:["Mod","Shift"],key:"s"}}}get version(){return this.data.version}set version(e){this.data.version=e}get builtInSystemOptions(){return C(this.plugin.app)?.options}get showAllFileTypes(){return this.builtInSystemOptions?.showAllFileTypes}get showAttachments(){return this.builtInSystemOptions?.showAttachments}get showExistingOnly(){return this.builtInSystemOptions?.showExistingOnly}get onOpenPreferNewTab(){return this.data.onOpenPreferNewTab}set onOpenPreferNewTab(e){this.data.onOpenPreferNewTab=e}get alwaysNewTabForSymbols(){return this.data.alwaysNewTabForSymbols}set alwaysNewTabForSymbols(e){this.data.alwaysNewTabForSymbols=e}get useActiveTabForSymbolsOnMobile(){return this.data.useActiveTabForSymbolsOnMobile}set useActiveTabForSymbolsOnMobile(e){this.data.useActiveTabForSymbolsOnMobile=e}get symbolsInLineOrder(){return this.data.symbolsInLineOrder}set symbolsInLineOrder(e){this.data.symbolsInLineOrder=e}get editorListPlaceholderText(){return X.defaults.editorListCommand}get editorListCommand(){return this.data.editorListCommand}set editorListCommand(e){this.data.editorListCommand=e}get symbolListPlaceholderText(){return X.defaults.symbolListCommand}get symbolListCommand(){return this.data.symbolListCommand}set symbolListCommand(e){this.data.symbolListCommand=e}get symbolListActiveEditorCommand(){return this.data.symbolListActiveEditorCommand}set symbolListActiveEditorCommand(e){this.data.symbolListActiveEditorCommand=e}get workspaceListCommand(){return this.data.workspaceListCommand}set workspaceListCommand(e){this.data.workspaceListCommand=e}get workspaceListPlaceholderText(){return X.defaults.workspaceListCommand}get headingsListCommand(){return this.data.headingsListCommand}set headingsListCommand(e){this.data.headingsListCommand=e}get headingsListPlaceholderText(){return X.defaults.headingsListCommand}get bookmarksListCommand(){return this.data.bookmarksListCommand}set bookmarksListCommand(e){this.data.bookmarksListCommand=e}get bookmarksListPlaceholderText(){return X.defaults.bookmarksListCommand}get commandListCommand(){return this.data.commandListCommand}set commandListCommand(e){this.data.commandListCommand=e}get recentCommandDisplayOrder(){return this.data.recentCommandDisplayOrder}set recentCommandDisplayOrder(e){this.data.recentCommandDisplayOrder=e}get maxRecentCommands(){return this.data.maxRecentCommands}set maxRecentCommands(e){this.data.maxRecentCommands=e}get commandListPlaceholderText(){return X.defaults.commandListCommand}get vaultListCommand(){return this.data.vaultListCommand}set vaultListCommand(e){this.data.vaultListCommand=e}get vaultListPlaceholderText(){return X.defaults.vaultListCommand}get relatedItemsListCommand(){return this.data.relatedItemsListCommand}set relatedItemsListCommand(e){this.data.relatedItemsListCommand=e}get relatedItemsListPlaceholderText(){return X.defaults.relatedItemsListCommand}get relatedItemsListActiveEditorCommand(){return this.data.relatedItemsListActiveEditorCommand}set relatedItemsListActiveEditorCommand(e){this.data.relatedItemsListActiveEditorCommand=e}get shouldSearchHeadings(){return this.data.shouldSearchHeadings}set shouldSearchHeadings(e){this.data.shouldSearchHeadings=e}get strictHeadingsOnly(){return this.data.strictHeadingsOnly}set strictHeadingsOnly(e){this.data.strictHeadingsOnly=e}get searchAllHeadings(){return this.data.searchAllHeadings}set searchAllHeadings(e){this.data.searchAllHeadings=e}get headingsSearchDebounceMilli(){return this.data.headingsSearchDebounceMilli}set headingsSearchDebounceMilli(e){this.data.headingsSearchDebounceMilli=e}get excludeViewTypes(){return this.data.excludeViewTypes}set excludeViewTypes(e){this.data.excludeViewTypes=e}get referenceViews(){return this.data.referenceViews}set referenceViews(e){this.data.referenceViews=e}get limit(){return this.data.limit}set limit(e){this.data.limit=e}get includeSidePanelViewTypes(){return this.data.includeSidePanelViewTypes}set includeSidePanelViewTypes(e){this.data.includeSidePanelViewTypes=[...new Set(e)]}get includeSidePanelViewTypesPlaceholder(){return X.defaults.includeSidePanelViewTypes.join("\n")}get selectNearestHeading(){return this.data.selectNearestHeading}set selectNearestHeading(e){this.data.selectNearestHeading=e}get excludeFolders(){return this.data.excludeFolders}set excludeFolders(e){this.data.excludeFolders=[...new Set(e)]}get excludeLinkSubTypes(){return this.data.excludeLinkSubTypes}set excludeLinkSubTypes(e){this.data.excludeLinkSubTypes=e}get excludeRelatedFolders(){return this.data.excludeRelatedFolders}set excludeRelatedFolders(e){this.data.excludeRelatedFolders=[...new Set(e)]}get excludeOpenRelatedFiles(){return this.data.excludeOpenRelatedFiles}set excludeOpenRelatedFiles(e){this.data.excludeOpenRelatedFiles=e}get excludeObsidianIgnoredFiles(){return this.data.excludeObsidianIgnoredFiles}set excludeObsidianIgnoredFiles(e){this.data.excludeObsidianIgnoredFiles=e}get shouldSearchFilenames(){return this.data.shouldSearchFilenames}set shouldSearchFilenames(e){this.data.shouldSearchFilenames=e}get shouldSearchBookmarks(){return this.data.shouldSearchBookmarks}set shouldSearchBookmarks(e){this.data.shouldSearchBookmarks=e}get shouldSearchRecentFiles(){return this.data.shouldSearchRecentFiles}set shouldSearchRecentFiles(e){this.data.shouldSearchRecentFiles=e}get pathDisplayFormat(){return this.data.pathDisplayFormat}set pathDisplayFormat(e){this.data.pathDisplayFormat=e}get hidePathIfRoot(){return this.data.hidePathIfRoot}set hidePathIfRoot(e){this.data.hidePathIfRoot=e}get enabledRelatedItems(){return this.data.enabledRelatedItems}set enabledRelatedItems(e){this.data.enabledRelatedItems=e}get showOptionalIndicatorIcons(){return this.data.showOptionalIndicatorIcons}set showOptionalIndicatorIcons(e){this.data.showOptionalIndicatorIcons=e}get isFileExtensionIndicatorsEnabled(){return this.data.isFileExtensionIndicatorsEnabled}set isFileExtensionIndicatorsEnabled(e){this.data.isFileExtensionIndicatorsEnabled=e}get excludeFileExtensionIndicators(){return this.data.excludeFileExtensionIndicators}set excludeFileExtensionIndicators(e){this.data.excludeFileExtensionIndicators=[...new Set(e)]}get overrideStandardModeBehaviors(){return this.data.overrideStandardModeBehaviors}set overrideStandardModeBehaviors(e){this.data.overrideStandardModeBehaviors=e}get overrideStandardModeRendering(){return this.data.overrideStandardModeRendering}set overrideStandardModeRendering(e){this.data.overrideStandardModeRendering=e}get enabledRibbonCommands(){return this.data.enabledRibbonCommands}set enabledRibbonCommands(e){this.data.enabledRibbonCommands=[...new Set(e)]}get fileExtAllowList(){return this.data.fileExtAllowList}set fileExtAllowList(e){this.data.fileExtAllowList=e}get matchPriorityAdjustments(){return this.data.matchPriorityAdjustments}set matchPriorityAdjustments(e){this.data.matchPriorityAdjustments=e}get quickFilters(){return this.data.quickFilters}set quickFilters(e){this.data.quickFilters=e}get preserveCommandPaletteLastInput(){return this.data.preserveCommandPaletteLastInput}set preserveCommandPaletteLastInput(e){this.data.preserveCommandPaletteLastInput=e}get preserveQuickSwitcherLastInput(){return this.data.preserveQuickSwitcherLastInput}set preserveQuickSwitcherLastInput(e){this.data.preserveQuickSwitcherLastInput=e}get shouldCloseModalOnBackspace(){return this.data.shouldCloseModalOnBackspace}set shouldCloseModalOnBackspace(e){this.data.shouldCloseModalOnBackspace=e}get maxRecentFileSuggestionsOnInit(){return this.data.maxRecentFileSuggestionsOnInit}set maxRecentFileSuggestionsOnInit(e){this.data.maxRecentFileSuggestionsOnInit=e}get orderEditorListByAccessTime(){return this.data.orderEditorListByAccessTime}set orderEditorListByAccessTime(e){this.data.orderEditorListByAccessTime=e}get insertLinkInEditor(){return this.data.insertLinkInEditor}set insertLinkInEditor(e){this.data.insertLinkInEditor=e}get removeDefaultTabBinding(){return this.data.removeDefaultTabBinding}set removeDefaultTabBinding(e){this.data.removeDefaultTabBinding=e}get navigationKeys(){return this.data.navigationKeys}set navigationKeys(e){this.data.navigationKeys=e}get preferredSourceForTitle(){return this.data.preferredSourceForTitle}set preferredSourceForTitle(e){this.data.preferredSourceForTitle=e}get closeWhenEmptyKeys(){return this.data.closeWhenEmptyKeys}set closeWhenEmptyKeys(e){this.data.closeWhenEmptyKeys=e}get navigateToHotkeySelectorKeys(){return this.data.navigateToHotkeySelectorKeys}set navigateToHotkeySelectorKeys(e){this.data.navigateToHotkeySelectorKeys=e}get togglePinnedCommandKeys(){return this.data.togglePinnedCommandKeys}set togglePinnedCommandKeys(e){this.data.togglePinnedCommandKeys=e}get escapeCmdChar(){return this.data.escapeCmdChar}set escapeCmdChar(e){this.data.escapeCmdChar=e}get mobileLauncher(){return this.data.mobileLauncher}set mobileLauncher(e){this.data.mobileLauncher=e}get allowCreateNewFileInModeNames(){return this.data.allowCreateNewFileInModeNames}set allowCreateNewFileInModeNames(e){this.data.allowCreateNewFileInModeNames=[...new Set(e)]}get showModeTriggerInstructions(){return this.data.showModeTriggerInstructions}set showModeTriggerInstructions(e){this.data.showModeTriggerInstructions=e}get renderMarkdownContentInSuggestions(){return this.data.renderMarkdownContentInSuggestions}set renderMarkdownContentInSuggestions(e){this.data.renderMarkdownContentInSuggestions=e}get quickOpen(){return this.data.quickOpen}set quickOpen(e){this.data.quickOpen=e}get openDefaultApp(){return this.data.openDefaultApp}set openDefaultApp(e){this.data.openDefaultApp=e}get fulltextSearch(){return this.data.fulltextSearch}set fulltextSearch(e){this.data.fulltextSearch=e}get openInBackground(){return this.data.openInBackground}set openInBackground(e){this.data.openInBackground=e}get saveWorkspaceAndSwitchKeys(){return this.data.saveWorkspaceAndSwitchKeys}set saveWorkspaceAndSwitchKeys(e){this.data.saveWorkspaceAndSwitchKeys=e}constructor(e){this.plugin=e,this.data=X.defaults}async updateDataAndLoadSettings(){return await X.transformDataFile(this.plugin,X.defaults),await this.loadSettings()}async loadSettings(){try{const e=await(this.plugin?.loadData());if(e){const t=Object.keys(X.defaults);((e,t,s)=>{const i=["matchPriorityAdjustments","quickFilters","mobileLauncher"],n=s=>G.withOptions({mergeArrays:!1},t[s],e[s]);for(const a of s)a in e&&(t[a]=i.includes(a)?n(a):e[a])})(e,this.data,t)}}catch(e){console.log("Switcher++: error loading settings, using defaults. ",e)}}async saveSettings(){const{plugin:e,data:t}=this;await(e?.saveData(t))}save(){this.saveSettings().catch((e=>{console.log("Switcher++: error saving changes to settings",e)}))}isSymbolTypeEnabled(e){const{enabledSymbolTypes:t}=this.data;let s=X.defaults.enabledSymbolTypes[e];return Object.prototype.hasOwnProperty.call(t,e)&&(s=t[e]),s}setSymbolTypeEnabled(e,t){this.data.enabledSymbolTypes[e]=t}static async transformDataFile(e,t){await X.transformDataFileToV1(e,t),await X.transformDataFileToV2(e,t)}static async transformDataFileToV1(e,t){let s=!1;try{const i=await(e?.loadData());if(i&&"object"==typeof i){const n="version";if(!Object.prototype.hasOwnProperty.call(i,n)){const a="starredListCommand";Object.prototype.hasOwnProperty.call(i,a)&&(i.bookmarksListCommand=i[a]??t.bookmarksListCommand,delete i[a]);const o="isStarred",r=i.matchPriorityAdjustments;r&&Object.prototype.hasOwnProperty.call(r,o)&&(r.isBookmarked=r[o],delete r[o]),i[n]="1.0.0",await(e?.saveData(i)),s=!0}}}catch(e){console.log("Switcher++: error transforming data.json to v1.0.0",e)}return s}static async transformDataFileToV2(e,t){let s=!1;try{const i=await(e?.loadData());if(i&&"object"==typeof i){const n="version";if("1.0.0"===i[n]){const a="matchPriorityAdjustments";if(Object.prototype.hasOwnProperty.call(i,a)){const e=i[a],s={};i[a]={isEnabled:!!i.enableMatchPriorityAdjustments,adjustments:s},delete i.enableMatchPriorityAdjustments,Object.entries(e).forEach((([e,i])=>{const n=t.matchPriorityAdjustments.adjustments[e]?.label??"";s[e]={value:i,label:n}}))}const o="quickFilters";if(Object.prototype.hasOwnProperty.call(i,o)){const e="facetList",t=i[o],s=t[e],n=s?.reduce(((e,t)=>(e[t.id]=t,e)),{});t[e]=n}i[n]="2.0.0",await(e?.saveData(i)),s=!0}}}catch(e){console.log("Switcher++: error transforming data.json to v2.0.0",e)}return s}}class Y{constructor(e,t,s){this.app=e,this.mainSettingsTab=t,this.config=s}createSetting(e,t,s){const i=new n.Setting(e);return i.setName(t),i.setDesc(s),i}addSectionTitle(e,t,s=""){const i=this.createSetting(e,t,s);return i.setHeading(),i}addTextSetting(e,t,s,i,n,a){const o=this.createSetting(e,t,s);return o.addText((e=>{e.setPlaceholder(a),e.setValue(i),e.onChange((e=>{const t=e.length?e:i;this.saveChangesToConfig(n,t)}))})),o}addToggleSetting(e,t,s,i,n,a){const o=this.createSetting(e,t,s);return o.addToggle((e=>{e.setValue(i),e.onChange((e=>{a?a(e,this.config):this.saveChangesToConfig(n,e)}))})),o}addTextAreaSetting(e,t,s,i,n,a){const o=this.createSetting(e,t,s);return o.addTextArea((e=>{e.setPlaceholder(a),e.setValue(i),e.onChange((e=>{const t=e.length?e:i,s=Array.isArray(this.config[n]);this.saveChangesToConfig(n,s?t.split("\n"):t)}))})),o}addDropdownSetting(e,t,s,i,n,a,o){const r=this.createSetting(e,t,s);return r.addDropdown((e=>{e.addOptions(n),e.setValue(i),e.onChange((e=>{o?o(e,this.config):this.saveChangesToConfig(a,e)}))})),r}addSliderSetting(e,t,s,i,n,a,o){const r=this.createSetting(e,t,s);return r.addExtraButton((e=>(e.setIcon("lucide-rotate-ccw"),e.setTooltip("Restore default"),e.onClick((()=>r.components[1].setValue(n[3]))),e))),r.addSlider((e=>{e.setLimits(n[0],n[1],n[2]),e.setValue(i),e.setDynamicTooltip(),e.onChange((e=>{o?o(e,this.config):this.saveChangesToConfig(a,e)}))})),r}saveChangesToConfig(e,t){if(e){const{config:s}=this;s[e]=t,s.save()}}}class Z extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"Bookmarks List Mode Settings"),this.addTextSetting(e,"Bookmarks list mode trigger","Character that will trigger bookmarks list mode in the switcher",t.bookmarksListCommand,"bookmarksListCommand",t.bookmarksListPlaceholderText)}}class ee extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"Command List Mode Settings"),this.addTextSetting(e,"Command list mode trigger","Character that will trigger command list mode in the switcher",t.commandListCommand,"commandListCommand",t.commandListPlaceholderText),this.addSliderSetting(e,"Max recent commands","The maximum number of commands to save in the recent list.",t.maxRecentCommands,[0,75,1,25],"maxRecentCommands"),this.showRecentCommandDisplayOrder(e,t)}showRecentCommandDisplayOrder(e,t){this.addDropdownSetting(e,"Recent commands display order","Select the sort order for recently used commands.",t.recentCommandDisplayOrder,{desc:"Most recent first (descending)",asc:"Most recent last (ascending)"},"recentCommandDisplayOrder")}}class te extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"Related Items List Mode Settings"),this.addTextSetting(e,"Related Items list mode trigger","Character that will trigger related items list mode in the switcher. This triggers a display of Related Items for the source file of the currently selected (highlighted) suggestion in the switcher. If there is not a suggestion, display results for the active editor.",t.relatedItemsListCommand,"relatedItemsListCommand",t.relatedItemsListPlaceholderText),this.addTextSetting(e,"Related Items list mode trigger - Active editor only","Character that will trigger related items list mode in the switcher. This always triggers a display of Related Items for the active editor only.",t.relatedItemsListActiveEditorCommand,"relatedItemsListActiveEditorCommand",t.relatedItemsListActiveEditorCommand),this.showEnabledRelatedItems(e,t),this.addToggleSetting(e,"Exclude open files","Enable, related files which are already open will not be displayed in the list. Disabled, All related files will be displayed in the list.",t.excludeOpenRelatedFiles,"excludeOpenRelatedFiles")}showEnabledRelatedItems(e,t){const s=Object.values(d).sort(),i=s.join(", "),n=`The types of related items to show in the list. Add one type per line. Available types: ${i}`;this.createSetting(e,"Show related item types",n).addTextArea((e=>{e.setValue(t.enabledRelatedItems.join("\n")),e.inputEl.addEventListener("focusout",(()=>{const n=e.getValue().split("\n").map((e=>e.trim())).filter((e=>e.length>0)),a=[...new Set(n)].filter((e=>!s.includes(e)));a?.length?this.showErrorPopup(a.join("
"),i):(t.enabledRelatedItems=n,t.save())}))}))}showErrorPopup(e,t){const s=new n.Modal(this.app);s.titleEl.setText("Invalid related item type"),s.contentEl.innerHTML=`Changes not saved. Available relation types are: ${t}. The following types are invalid:

${e}`,s.open()}}class se extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"General Settings"),this.showEnabledRibbonCommands(e,t),this.showLauncherButtonOverrides(e,t),this.showPreferredSourceForTitle(e,t),this.showPathDisplayFormat(e,t),this.addToggleSetting(e,"Hide path for root items","When enabled, path information will be hidden for items at the root of the vault.",t.hidePathIfRoot,"hidePathIfRoot").setClass("qsp-setting-item-indent"),this.addTextSetting(e,"Mode trigger escape character","Character to indicate that a mode trigger character should be treated just as a normal text.",t.escapeCmdChar,"escapeCmdChar"),this.addToggleSetting(e,"Default to open in new tab","When enabled, navigating to un-opened files will open a new editor tab whenever possible (as if cmd/ctrl were held). When the file is already open, the existing tab will be activated. This overrides all other tab settings.",t.onOpenPreferNewTab,"onOpenPreferNewTab"),this.addToggleSetting(e,"Override Standard mode file open behavior","When enabled, Switcher++ will change the default Obsidian builtin Switcher functionality (Standard mode) to inject custom file open behavior.",t.overrideStandardModeBehaviors,"overrideStandardModeBehaviors"),this.addToggleSetting(e,"Override Standard mode rendering","When enabled, Switcher++ will change the default Obsidian builtin Switcher functionality (Standard mode) to render suggestions as multi-line.",t.overrideStandardModeRendering,"overrideStandardModeRendering"),this.addToggleSetting(e,"Show indicator icons","Display icons to indicate that an item is recent, bookmarked, etc..",t.showOptionalIndicatorIcons,"showOptionalIndicatorIcons"),this.addToggleSetting(e,"Allow Backspace key to close the Switcher","When the search box is empty, pressing the backspace key will close Switcher++.",t.shouldCloseModalOnBackspace,"shouldCloseModalOnBackspace"),this.showMatchPriorityAdjustments(e,t),this.showInsertLinkInEditor(e,t),this.addToggleSetting(e,"Restore previous input in Command Mode","When enabled, restore the last typed input in Command Mode when launched via global command hotkey.",t.preserveCommandPaletteLastInput,"preserveCommandPaletteLastInput"),this.addToggleSetting(e,"Restore previous input","When enabled, restore the last typed input when launched via global command hotkey.",t.preserveQuickSwitcherLastInput,"preserveQuickSwitcherLastInput"),this.addToggleSetting(e,"Display mode trigger instructions","When enabled, the trigger key for each mode will be displayed in the instructions section of the Switcher.",t.showModeTriggerInstructions,"showModeTriggerInstructions"),this.showResetFacetEachSession(e,t),this.showRenderMarkdownContentAsHTML(e,t),this.showQuickOpen(e,t)}showPreferredSourceForTitle(e,t){this.addDropdownSetting(e,"Preferred suggestion title source",'The preferred source to use for the "title" text that will be searched and displayed for file based suggestions',t.preferredSourceForTitle,{H1:"First H₁ heading",Default:"Default"},"preferredSourceForTitle")}showPathDisplayFormat(t,s){const i={};i[e.None.toString()]="Hide path",i[e.Full.toString()]="Full path",i[e.FolderOnly.toString()]="Only parent folder",i[e.FolderWithFilename.toString()]="Parent folder & filename",i[e.FolderPathFilenameOptional.toString()]="Parent folder path (filename optional)",this.addDropdownSetting(t,"Preferred file path display format","The preferred way to display file paths in suggestions",s.pathDisplayFormat.toString(),i,null,((e,t)=>{t.pathDisplayFormat=Number(e),t.save()}))}showEnabledRibbonCommands(e,t){const s=w(),i=s.join(" "),n=`Display an icon in the ribbon menu to launch specific modes. Add one mode per line. Available modes: ${i}`;this.createSetting(e,"Show ribbon icons",n).addTextArea((e=>{e.setValue(t.enabledRibbonCommands.join("\n")),e.inputEl.addEventListener("focusout",(()=>{const n=e.getValue().split("\n").map((e=>e.trim())).filter((e=>e.length>0)),a=Array.from(new Set(n)).filter((e=>!s.includes(e)));a.length?this.showErrorPopup(a.join("
"),i):(t.enabledRibbonCommands=n,t.save(),this.mainSettingsTab.plugin.registerRibbonCommandIcons())}))}))}showErrorPopup(e,t){const s=new n.Modal(this.app);s.titleEl.setText("Invalid mode"),s.contentEl.innerHTML=`Changes not saved. Available modes are: ${t}. The following are invalid:

${e}`,s.open()}showLauncherButtonOverrides(e,t){const{mobileLauncher:s}=t,i="disabled",n={[i]:"Do not override"},a=w();a.forEach((e=>{n[e]=e}));let o=i;s.isEnabled&&a.includes(s.modeString)&&(o=s.modeString);let r=this.addDropdownSetting(e,"New tab and mobile launcher buttons",'Select the Mode to launch Switcher++ in from the empty tab page and mobile navigation Bar button, or select "Do not override" to disable the feature.',o,n,null,((e,t)=>{const s=e!==i;t.mobileLauncher.isEnabled=s,s&&(t.mobileLauncher.modeString=e),t.save(),this.mainSettingsTab.display(),this.mainSettingsTab.plugin.updateLauncherButtonOverrides(s)}));s.isEnabled&&(r=this.addToggleSetting(e,"Override default Switcher launch button on mobile platforms",'When enabled, override the "🔍" button (in the Navigation Bar) on mobile platforms to launch Switcher++ instead of the default system switcher.',s.isMobileButtonEnabled,null,((e,t)=>{t.mobileLauncher.isMobileButtonEnabled=e,t.save(),this.mainSettingsTab.plugin.updateLauncherButtonOverrides(t.mobileLauncher.isEnabled)})),r.setClass("qsp-setting-item-indent"),r=this.addToggleSetting(e,'Display launch button on the "New tab" page','When enabled, a button to launch Switcher++ using the selected mode above will be added to the default Obsidian "New tab" page.',s.isEmptyTabButtonEnabled,null,((e,t)=>{t.mobileLauncher.isEmptyTabButtonEnabled=e,t.save(),this.mainSettingsTab.plugin.updateLauncherButtonOverrides(t.mobileLauncher.isEnabled)})),r.setClass("qsp-setting-item-indent"))}showMatchPriorityAdjustments(e,t){const{matchPriorityAdjustments:{isEnabled:s,adjustments:i,fileExtAdjustments:n}}=t;this.addToggleSetting(e,"Result priority adjustments","Artificially increase the match score of the specified item types by a fixed percentage so they appear higher in the results list (does not apply to Standard Mode).",s,null,((e,t)=>{t.matchPriorityAdjustments.isEnabled=e,t.saveSettings().then((()=>{this.mainSettingsTab.display()}),(e=>console.log('Switcher++: error saving "Result Priority Adjustments" setting. ',e)))})),s&&[i,n].forEach((t=>{Object.entries(t).forEach((([s,i])=>{const{value:n,label:a}=i,o=this.addSliderSetting(e,a,i.desc??"",n,[-1,1,.05,0],null,((e,i)=>{t[s].value=e,i.save()}));o.setClass("qsp-setting-item-indent")}))}))}showResetFacetEachSession(e,t){this.addToggleSetting(e,"Reset active Quick Filters","When enabled, the switcher will reset all Quick Filters back to inactive for each session.",t.quickFilters.shouldResetActiveFacets,null,((e,t)=>{t.quickFilters.shouldResetActiveFacets=e,t.save()}))}showRenderMarkdownContentAsHTML(e,t){const s=this.addToggleSetting(e,"Display Headings as Live Preview",'When enabled, Headings will be rendered as HTML similar to the Obsidian "Live Preview" display. When disabled, Headings will be rendered as raw text. Use the "toggle preview (selected heading)" hotkey to toggle the display for individual headings.',t.renderMarkdownContentInSuggestions.renderHeadings,null,((e,t)=>{const{renderMarkdownContentInSuggestions:s}=t;s.renderHeadings=e,s.isEnabled=e,t.save()}));s?.nameEl?.createSpan({cls:["qsp-tag","qsp-warning"],text:"Experimental"})}showInsertLinkInEditor(e,t){this.createSetting(e,"Insert link in editor","");let s=this.addToggleSetting(e,"Use filename as alias","When enabled, the file basename will be set as the link alias.",t.insertLinkInEditor.useBasenameAsAlias,null,((e,t)=>{t.insertLinkInEditor.useBasenameAsAlias=e,t.save()}));s.setClass("qsp-setting-item-indent"),s=this.addToggleSetting(e,"Use heading as alias",'When enabled, the file heading will be set as the link alias. This overrides the "use filename as alias" setting.',t.insertLinkInEditor.useHeadingAsAlias,null,((e,t)=>{t.insertLinkInEditor.useHeadingAsAlias=e,t.save()})),s.setClass("qsp-setting-item-indent")}showQuickOpen(e,t){this.addToggleSetting(e,"Enable quick open hotkeys for top results","When enabled, hotkeys will be defined for each of the top N results displayed in the Switcher. These hotkeys can be used to quickly open the associated suggestion directly. when disabled, no hotkeys are defined.",t.quickOpen.isEnabled,null,((e,t)=>{t.quickOpen.isEnabled=e,t.save()}))}}class ie extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"Workspace List Mode Settings"),this.addTextSetting(e,"Workspace list mode trigger","Character that will trigger workspace list mode in the switcher",t.workspaceListCommand,"workspaceListCommand",t.workspaceListPlaceholderText)}}class ne extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"Editor List Mode Settings"),this.addTextSetting(e,"Editor list mode trigger","Character that will trigger editor list mode in the switcher",t.editorListCommand,"editorListCommand",t.editorListPlaceholderText),this.showIncludeSidePanelViews(e,t),this.addToggleSetting(e,"Order default editor list by most recently accessed","When there is no search term, order the list of editors by most recent access time.",t.orderEditorListByAccessTime,"orderEditorListByAccessTime")}showIncludeSidePanelViews(e,t){const s=`When in Editor list mode, show the following view types from the side panels. Add one view type per line. Available view types: ${Object.keys(this.app.viewRegistry.viewByType).sort().join(" ")}`;this.addTextAreaSetting(e,"Include side panel views",s,t.includeSidePanelViewTypes.join("\n"),"includeSidePanelViewTypes",t.includeSidePanelViewTypesPlaceholder)}}class ae extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"Headings List Mode Settings"),this.addTextSetting(e,"Headings list mode trigger","Character that will trigger headings list mode in the switcher",t.headingsListCommand,"headingsListCommand",t.headingsListPlaceholderText),this.showHeadingSettings(e,t),this.addToggleSetting(e,"Search Filenames","Enabled, search and show suggestions for filenames. Disabled, Don't search through filenames (except for fallback searches)",t.shouldSearchFilenames,"shouldSearchFilenames"),this.addToggleSetting(e,"Search Bookmarks","Enabled, search and show suggestions for Bookmarks. Disabled, Don't search through Bookmarks",t.shouldSearchBookmarks,"shouldSearchBookmarks"),this.addSliderSetting(e,"Max recent files to show","The maximum number of recent files to show when there is no search term",t.maxRecentFileSuggestionsOnInit,[0,75,1,25],"maxRecentFileSuggestionsOnInit"),this.showExcludeFolders(e,t),this.addToggleSetting(e,'Hide Obsidian "Excluded files"','Enabled, do not display suggestions for files that are in Obsidian\'s "Options > Files & Links > Excluded files" list. Disabled, suggestions for those files will be displayed but downranked.',t.excludeObsidianIgnoredFiles,"excludeObsidianIgnoredFiles"),this.showFileExtAllowList(e,t)}showHeadingSettings(e,t){const s=t.shouldSearchHeadings;if(this.addToggleSetting(e,"Search Headings","Enabled, search and show suggestions for Headings. Disabled, Don't search through Headings",s,null,((e,t)=>{t.shouldSearchHeadings=e,t.saveSettings().then((()=>{this.mainSettingsTab.display()}),(e=>console.log('Switcher++: error saving "Search Headings" setting. ',e)))})),s){let s=this.addToggleSetting(e,"Turn off filename fallback","Enabled, strictly search through only the headings contained in the file. Do not fallback to searching the filename when an H1 match is not found. Disabled, fallback to searching against the filename when there is not a match in the first H1 contained in the file.",t.strictHeadingsOnly,"strictHeadingsOnly");s.setClass("qsp-setting-item-indent"),s=this.addToggleSetting(e,"Search all headings","Enabled, search through all headings contained in each file. Disabled, only search through the first H1 in each file.",t.searchAllHeadings,"searchAllHeadings"),s.setClass("qsp-setting-item-indent")}}showFileExtAllowList(e,t){this.createSetting(e,"File extension override",'Override the "Show attachments" and the "Show all file types" builtin, system Switcher settings and always search files with the listed extensions. Add one path per line. For example to add ".canvas" file extension, just add "canvas".').addTextArea((e=>{e.setValue(t.fileExtAllowList.join("\n")),e.inputEl.addEventListener("focusout",(()=>{const s=e.getValue().split("\n").map((e=>e.trim())).filter((e=>e.length>0));t.fileExtAllowList=s,t.save()}))}))}showExcludeFolders(e,t){const s="Exclude folders";this.createSetting(e,s,"When in Headings list mode, folder path that match any regex listed here will not be searched for suggestions. Path should start from the Vault Root. Add one path per line.").addTextArea((e=>{e.setValue(t.excludeFolders.join("\n")),e.inputEl.addEventListener("focusout",(()=>{const i=e.getValue().split("\n").filter((e=>e.length>0));this.validateExcludeFolderList(s,i)&&(t.excludeFolders=i,t.save())}))}))}validateExcludeFolderList(e,t){let s=!0,i="";for(const e of t)try{new RegExp(e)}catch(t){i+=`${e}
${t}

`,s=!1}if(!s){const t=new n.Modal(this.app);t.titleEl.setText(e),t.contentEl.innerHTML=`Changes not saved. The following regex contain errors:

${i}`,t.open()}return s}}class oe extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"Symbol List Mode Settings"),this.addTextSetting(e,"Symbol list mode trigger","Character that will trigger symbol list mode in the switcher. This triggers a display of Symbols for the source file of the currently selected (highlighted) suggestion in the switcher. If there is not a suggestion, display results for the active editor.",t.symbolListCommand,"symbolListCommand",t.symbolListPlaceholderText),this.addTextSetting(e,"Symbol list mode trigger - Active editor only","Character that will trigger symbol list mode in the switcher. This always triggers a display of Symbols for the active editor only.",t.symbolListActiveEditorCommand,"symbolListActiveEditorCommand",t.symbolListActiveEditorCommand),this.addToggleSetting(e,"List symbols as indented outline","Enabled, symbols will be displayed in the (line) order they appear in the source text, indented under any preceding heading. Disabled, symbols will be grouped by type: Headings, Tags, Links, Embeds.",t.symbolsInLineOrder,"symbolsInLineOrder"),this.addToggleSetting(e,"Open Symbols in new tab","Enabled, always open a new tab when navigating to Symbols. Disabled, navigate in an already open tab (if one exists).",t.alwaysNewTabForSymbols,"alwaysNewTabForSymbols"),this.addToggleSetting(e,"Open Symbols in active tab on mobile devices","Enabled, navigate to the target file and symbol in the active editor tab. Disabled, open a new tab when navigating to Symbols, even on mobile devices.",t.useActiveTabForSymbolsOnMobile,"useActiveTabForSymbolsOnMobile"),this.addToggleSetting(e,"Auto-select nearest heading","Enabled, in an unfiltered symbol list, select the closest preceding Heading to the current cursor position. Disabled, the first symbol in the list is selected.",t.selectNearestHeading,"selectNearestHeading"),this.showEnableSymbolTypesToggle(e,t),this.showEnableLinksToggle(e,t)}showEnableSymbolTypesToggle(e,t){[["Show Headings",s.Heading],["Show Tags",s.Tag],["Show Embeds",s.Embed],["Show Callouts",s.Callout]].forEach((([s,i])=>{this.addToggleSetting(e,s,"",t.isSymbolTypeEnabled(i),null,(e=>{t.setSymbolTypeEnabled(i,e),t.save()}))}))}showEnableLinksToggle(e,t){const n=t.isSymbolTypeEnabled(s.Link);if(this.addToggleSetting(e,"Show Links","",n,null,(e=>{t.setSymbolTypeEnabled(s.Link,e),t.saveSettings().then((()=>{this.mainSettingsTab.display()}),(e=>console.log('Switcher++: error saving "Show Links" setting. ',e)))})),n){[["Links to headings",i.Heading],["Links to blocks",i.Block]].forEach((([s,i])=>{const n=(t.excludeLinkSubTypes&i)===i;this.addToggleSetting(e,s,"",!n,null,(e=>this.saveEnableSubLinkChange(i,e))).setClass("qsp-setting-item-indent")}))}}saveEnableSubLinkChange(e,t){const{config:s}=this;let i=s.excludeLinkSubTypes;t?i&=~e:i|=e,s.excludeLinkSubTypes=i,s.save()}}class re extends Y{display(e){const{config:t}=this,s=this.addSectionTitle(e,"Vault List Mode Settings");s.nameEl?.createSpan({cls:["qsp-tag","qsp-warning"],text:"Experimental"}),this.addTextSetting(e,"Vault list mode trigger","Character that will trigger vault list mode in the switcher",t.vaultListCommand,"vaultListCommand",t.vaultListPlaceholderText)}}class le extends n.PluginSettingTab{constructor(e,t,s){super(e,t),this.plugin=t,this.config=s}display(){const{containerEl:e}=this,t=[se,oe,ae,ne,te,Z,ee,ie,re];e.empty(),e.createEl("h2",{text:"Quick Switcher++ Settings"}),t.forEach((e=>{this.displayTabSection(e)}))}displayTabSection(e){const{app:t,config:s,containerEl:i}=this;new e(t,this,s).display(i)}}class de{static get defaultParsedCommand(){return{isValidated:!1,index:-1,parsedInput:null}}get parsedInputQuery(){const e=(this.parsedCommand()?.parsedInput??"").trim().toLowerCase();return{query:e,hasSearchTerm:!!e.length}}get inputTextSansEscapeChar(){return this._inputTextSansEscapeChar??this.inputText}set inputTextSansEscapeChar(e){this._inputTextSansEscapeChar=e}constructor(e="",s=t.Standard,i){this.inputText=e,this.mode=s,this._inputTextSansEscapeChar=null,this.currentWorkspaceEnvList={openWorkspaceLeaves:new Set,openWorkspaceFiles:new Set,fileBookmarks:new Map,nonFileBookmarks:new Set,mostRecentFiles:new Set,attachmentFileExtensions:new Set},this.sessionOpts=i??{};const n=I();this.parsedCommands={},w().forEach((e=>{const s=t[e];n.includes(s)?this.parsedCommands[s]={...de.defaultParsedCommand,source:null}:this.parsedCommands[s]=de.defaultParsedCommand}))}parsedCommand(e){return e=e??this.mode,this.parsedCommands[e]}}class ce{constructor(e,t){this.app=e,this.settings=t}reset(){}onNoResultsCreateAction(e,t){return!1}getFacets(e){if(!this.facets){const t=this.settings?.quickFilters?.facetList;t&&(this.facets=Object.values(t).filter((t=>t.mode===e)))}return this.facets??[]}getAvailableFacets(e){return this.getFacets(e.mode).filter((e=>e.isAvailable))}activateFacet(e,t){e.forEach((e=>e.isActive=t)),this.settings.quickFilters.shouldResetActiveFacets||this.settings.save()}getActiveFacetIds(e){const t=this.getAvailableFacets(e).filter((e=>e.isActive)).map((e=>e.id));return new Set(t)}isFacetedWith(e,t){const s=!!e.size;return s&&e.has(t)||!s}getEditorInfo(e){const{excludeViewTypes:t}=this.settings;let s=null,i=!1,n=null;if(e){s=x(e),n=this.getCursorPosition(e);i=!t.includes(e.view.getViewType())&&!!s}return{isValidSource:i,leaf:e,file:s,suggestion:null,cursor:n}}getSuggestionInfo(e){const t=this.getSourceInfoFromSuggestion(e);let s=t.leaf;t.isValidSource&&({leaf:s}=this.findMatchingLeaf(t.file,t.leaf));const i=this.getCursorPosition(s);return{...t,leaf:s,cursor:i}}getSourceInfoFromSuggestion(e){let t=null,s=null;const i=[r.SymbolList,r.Unresolved,r.WorkspaceList,r.CommandList,r.VaultList];e&&!i.includes(e.type)&&(t=e.file),c(e,"type",r.EditorList)&&(s=e.item);return{isValidSource:!!t,leaf:s,file:t,suggestion:e}}getCursorPosition(e){let t=null;if(R(e,"markdown")){const s=e.view;"preview"!==s.getMode()&&(t=s.editor.getCursor("head"))}return t}getTitleText(e){const t=function(e){let t=null;if(e){const{path:s}=e;if(t=s,"md"===e.extension){const e=s.lastIndexOf(".");-1!==e&&e!==s.length-1&&0!==e&&(t=s.slice(0,e))}}return t}(e),s=this.getFirstH1(e);return s?.heading??t}getFirstH1(e){return ce.getFirstH1(e,this.app.metadataCache)}static getFirstH1(e,t){let s=null;const i=t.getFileCache(e)?.headings?.filter((e=>1===e.level))??[];return i.length&&(s=i.reduce(((e,t)=>{const{line:s}=t.position.start;return s{let o=!1;if(i?.view){const r=a.includes(i.view.getViewType()),l=s||!r,d=n&&a.includes(t.view.getViewType());l&&(o=!n||!s&&d?x(i)===e:i===t)}return o},d=this.getActiveLeaf();if(l(d))i=d;else{const e=this.getOpenLeaves(o,r);i=[t,...e].find(l)}return{leaf:i??null,file:e,suggestion:null,isValidSource:!1}}extractTabNavigationType(e,t,s){const i=e?.shiftKey?"horizontal":"vertical",a=e?.key;let o=n.Keymap.isModEvent(e)??!1;return!0!==o&&"tab"!==o||("o"===a?o="window":"\\"===a&&(o="split")),o=this.applyTabCreationPreferences(o,t,s),{navType:o,splitDirection:i}}applyTabCreationPreferences(e,s=!1,i){let a=e;const{onOpenPreferNewTab:o,alwaysNewTabForSymbols:r,useActiveTabForSymbolsOnMobile:l}=this.settings;return!1===e&&(o?a=!s:i===t.SymbolList&&(a=n.Platform.isMobile?!l:r)),a}isMainPanelLeaf(e){const{workspace:t}=this.app,s=e?.getRoot();return s===t.rootSplit||s===t.floatingSplit}async activateLeaf(e,t){const{workspace:s}=this.app;try{await s.revealLeaf(e),s.setActiveLeaf(e,{focus:!0}),e.view.setEphemeralState({focus:!0,...t})}catch(t){const s=e?.getDisplayText();console.log(`Switcher++: error activating WorkspaceLeaf with title: ${s}`,t)}}getOpenLeaves(e,t,s){const i=[];return this.app.workspace.iterateAllLeaves((s=>{const n=s?.view?.getViewType();this.isMainPanelLeaf(s)?e?.includes(n)||i.push(s):t?.includes(n)&&i.push(s)})),s?.orderByAccessTime&&i.sort(((e,t)=>{const s=e?.activeTime??0;return(t?.activeTime??0)-s})),i}static async openFileInLeaf(e,t,s,i,n="vertical"){const a="split"===t?s.getLeaf(t,n):s.getLeaf(t);await a.openFile(e,i)}navigateToLeafOrOpenFile(e,t,s,i,n,a,o=!1){this.navigateToLeafOrOpenFileAsync(e,t,i,n,a,o).catch((e=>{console.log(`Switcher++: error navigating to open file. ${s}`,e)}))}async navigateToLeafOrOpenFileAsync(e,t,s,i,n,a=!1){const{leaf:o}=this.findMatchingLeaf(t,i,a),r=!!o,{navType:l,splitDirection:d}=this.extractTabNavigationType(e,r,n);await this.activateLeafOrOpenFile(l,t,o,s,d)}async activateLeafOrOpenFile(e,t,s,i,n){if(i=i??this.getOpenViewActiveState(),s&&!1===e){const e=i?.eState;await this.activateLeaf(s,e)}else await ce.openFileInLeaf(t,e,this.app.workspace,i,n)}renderPath(t,s,i,a,o){if(t&&s){const r=s.parent.isRoot();let l=this.settings.pathDisplayFormat,d=l===e.None||r&&this.settings.hidePathIfRoot;if(o&&(l=e.FolderPathFilenameOptional,d=!1),!d){const e=t.createDiv({cls:["suggestion-note","qsp-note"]}),o=this.getPathDisplayText(s,l,i),r=e.createSpan({cls:["qsp-path-indicator"]});n.setIcon(r,"folder");const d=e.createSpan({cls:"qsp-path"});n.renderResults(d,o,a)}}}getPathDisplayText(t,s,i){let a="";if(t){const{parent:o}=t,r=o.name,l=o.isRoot(),d=this.app.vault.getRoot().path;switch(s){case e.FolderWithFilename:a=l?`${t.name}`:n.normalizePath(`${r}/${t.name}`);break;case e.FolderOnly:a=l?d:r;break;case e.Full:a=t.path;break;case e.FolderPathFilenameOptional:i?(a=o.path,l||(a+=d)):a=this.getPathDisplayText(t,e.Full)}}return a}renderContent(e,t,s,i){const{contentEl:a,titleEl:o}=ce.createContentStructureElements(e);return n.renderResults(o,t,s,i),a}static createContentStructureElements(e){const t=e.createDiv({cls:["suggestion-content","qsp-content"]}),s=t.createDiv({cls:["suggestion-title","qsp-title"]});return{contentEl:t,titleEl:s}}static renderMarkdownContentAsync(e,t,s,i){ce.renderMarkdownContent(e,t,s,i,D.getRootComponent()).catch((e=>{console.log("Switcher++: error rendering markdown to html. ",e,`content: ${s}`)}))}static async renderMarkdownContent(e,t,s,i,a){const o=t.createSpan({cls:["qsp-rendered-container"]});if(await n.MarkdownRenderer.render(e,s,o,i,a),1===o.childNodes.length&&"P"===o.firstChild.nodeName){const e=o.firstChild;e.replaceWith(...Array.from(e.childNodes))}return o}addClassesToSuggestionContainer(e,t){const s=["mod-complex"];t&&s.push(...t),e?.addClasses(s)}splitSearchMatchesAtBasename(e,t){let s=null,i=null;const n=(e,t)=>{e.forEach((e=>{e[0]-=t,e[1]-=t}))};if(e&&t?.matches){const a=e.path.lastIndexOf(e.basename);if(a>=0){const{matches:e,score:o}=t,r=e[0][0],l=e[e.length-1][1];if(r>=a)s=t,n(s.matches,a);else if(l<=a)i=t;else{let t=e.length;for(;t--;){const r=e[t][0],l=t+1;if(e[t][1]<=a){i={score:o,matches:e.slice(0,l)},s={score:o,matches:e.slice(l)},n(s.matches,a);break}if(r{t=t??o;let s=0;return Object.prototype.hasOwnProperty.call(t,e)&&(s=Number(t[e]?.value)),isNaN(s)?0:s},h=(t,s)=>{let i=0;return(null!==t&&t===n||e[s])&&(i=c(s)),i};d+=h(r.Bookmark,"isBookmarked"),d+=h(r.EditorList,"isOpenInEditor"),d+=h(null,"isRecent"),d+=h(null,"isAttachment"),d+=c(a?.extension,l),u(e)&&(d+=c(`h${e.item?.level}`));const m=n.toString();d+=c(m),i.score+=Math.abs(i.score)/100*(100*d)}}return e}static updateWorkspaceEnvListStatus(e,t){if(e&&t?.file){const{file:s}=t;t.isOpenInEditor=e.openWorkspaceFiles?.has(s),t.isRecent=e.mostRecentFiles?.has(s),t.isBookmarked=e.fileBookmarks?.has(s),t.isAttachment=e.attachmentFileExtensions?.has(s.extension)}return t}renderFileCreationSuggestion(e,t){this.addClassesToSuggestionContainer(e);const s=this.renderContent(e,t,null),i=this.createFlairContainer(e);return i?.createSpan({cls:"suggestion-hotkey",text:"Enter to create"}),s}createFile(e,t){const{workspace:s}=this.app,{navType:i}=this.extractTabNavigationType(t),a=s.getActiveViewOfType(n.FileView);let o="";a?.file&&(o=a.file.path),s.openLinkText(e,o,i,{active:!0}).catch((e=>{console.log("Switcher++: error creating new file. ",e)}))}getOpenViewState(e,t){const s=this.getPreferredViewLinePosition(e),{eState:i}=this.getOpenViewLinePositionState(s),n=this.getOpenViewActiveState(t);return Object.assign(n.eState,i),n}getOpenViewActiveState(e){const{active:t,focus:s}=Object.assign({active:!0,focus:!0},e);return{active:t,eState:{active:t,focus:s}}}getPreferredViewLinePosition(e){const t={line:0,col:0,offset:0};return{start:t,end:t}}getOpenViewLinePositionState(e){const t=Object.assign({line:0,col:0,offset:0},e?.start),s=Object.assign({line:0,col:0,offset:0},e?.end),{line:i,col:n}=t;return{eState:{startLoc:t,endLoc:s,line:i,cursor:{from:{line:i,ch:n},to:{line:i,ch:n}}}}}}class he{constructor(e,t){this.useSimpleSearch=t,this.query=(e??"").trim().toLowerCase(),this.hasSearchTerm=!!this.query.length}static create(e,t=!1){return new he(e,t)}searchWithFallback(e,t){let s,i=l.None,n=null,a=this.searchAndDownrankSecondaryMatch(e);if(a.match)n=a.match,i=l.Primary,s=e;else if(t){const{basename:e,path:o}=t;a=this.searchAndDownrankSecondaryMatch(e,o),a.isPrimary?(i=l.Basename,s=e):a.match&&(i=l.Path,s=o),n=a.match}return{matchType:i,matchText:s,match:n}}searchAndDownrankSecondaryMatch(e,t){let s=!1,i=null;return e&&(i=this.executeSearch(e),s=!!i),!i&&t&&(i=this.executeSearch(t),i&&(i.score-=1)),{isPrimary:s,match:i}}executeSearch(e){const t=this.getSearchDelegate();return t?t(e):null}getSearchDelegate(){if(!this._searchDelegate){const{query:e,useSimpleSearch:t}=this;this._searchDelegate=t?n.prepareSimpleSearch(e):n.prepareFuzzySearch(e)}return this._searchDelegate}}class ue extends ce{getCommandString(e){return this.settings?.workspaceListCommand}validateCommand(e,s,i,n,a){const o=e.parsedCommand(t.WorkspaceList);return this.getEnabledWorkspacesPluginInstance()&&(e.mode=t.WorkspaceList,o.index=s,o.parsedInput=i,o.isValidated=!0),o}getSuggestions(e){const t=[];if(e){const{query:s,hasSearchTerm:i}=e.parsedInputQuery,a=he.create(s);this.getItems().forEach((e=>{let s=!0,n=null;i&&(({match:n}=a.searchWithFallback(e.id)),s=!!n),s&&t.push({type:r.WorkspaceList,item:e,match:n})})),i&&n.sortSearchResults(t)}return t}renderSuggestion(e,t){let s=!1;return e&&(this.addClassesToSuggestionContainer(t,["qsp-suggestion-workspace"]),this.renderContent(t,e.item.id,e.match),s=!0),s}onChooseSuggestion(e,t){let s=!1;if(e){const{id:t}=e.item,i=this.getEnabledWorkspacesPluginInstance();i&&i.loadWorkspace(t),s=!0}return s}onNoResultsCreateAction(e,s){const i=this.getEnabledWorkspacesPluginInstance();if(i){const s=e.parsedCommand(t.WorkspaceList)?.parsedInput;i.saveWorkspace(s),i.setActiveWorkspace(s)}return!0}getItems(){const e=[],t=this.getEnabledWorkspacesPluginInstance()?.workspaces;return t&&Object.keys(t).forEach((t=>e.push({id:t,type:"workspaceInfo"}))),e.sort(((e,t)=>e.id.localeCompare(t.id)))}getEnabledWorkspacesPluginInstance(){return ue.getEnabledWorkspacesPluginInstance(this.app)}static getEnabledWorkspacesPluginInstance(e){return v(e,"workspaces")}}class me extends ce{getCommandString(e){return""}validateCommand(e,t,s,i,n){throw new Error("Method not implemented.")}getSuggestions(e){throw new Error("Method not implemented.")}renderSuggestion(e,t){let s=!1;return m(e)?s=this.renderFileSuggestion(e,t):g(e)&&(s=this.renderAliasSuggestion(e,t)),e?.downranked&&t.addClass("mod-downranked"),s}onChooseSuggestion(e,t){let s=!1;if(e){const{file:i}=e;this.navigateToLeafOrOpenFile(t,i,`Unable to open file from SystemSuggestion ${i.path}`),s=!0}return s}renderFileSuggestion(e,t){let s=!1;if(e){const{file:i,matchType:n,match:a}=e;this.renderAsFileInfoPanel(t,["qsp-suggestion-file"],null,i,n,a),this.renderOptionalIndicators(t,e),s=!0}return s}renderAliasSuggestion(e,t){let s=!1;if(e){const{file:i,matchType:n,match:a}=e;this.renderAsFileInfoPanel(t,["qsp-suggestion-alias"],e.alias,i,n,a,!1);const o=this.renderOptionalIndicators(t,e);this.renderIndicator(o,["qsp-alias-indicator"],"lucide-forward"),s=!0}return s}addPropertiesToStandardSuggestions(e,t){const{match:s}=t;let i=l.None,n=null;s?.matches&&(g(t)?(i=l.Primary,n=t.alias):m(t)&&(i=l.Path,n=t.file.path)),t.matchType=i,t.matchText=n,ce.updateWorkspaceEnvListStatus(e,t)}static createUnresolvedSuggestion(e,t,s,i){const n={linktext:e,type:r.Unresolved,...t};return ce.applyMatchPriorityPreferences(n,s,i)}}class ge extends ce{getCommandString(e){return this.settings?.editorListCommand}validateCommand(e,s,i,n,a){e.mode=t.EditorList;const o=e.parsedCommand(t.EditorList);return o.index=s,o.parsedInput=i,o.isValidated=!0,o}getSuggestions(e){const t=[];if(e){const{query:s,hasSearchTerm:i}=e.parsedInputQuery,a=he.create(s);this.getItems().forEach((s=>{const n=x(s);let o=!0,r={matchType:l.None,match:null};const d=this.getPreferredTitle(s,this.settings.preferredSourceForTitle);i&&(r=a.searchWithFallback(d,n),o=r.matchType!==l.None),o&&t.push(this.createSuggestion(e.currentWorkspaceEnvList,s,n,r,d))})),i&&n.sortSearchResults(t)}return t}getPreferredTitle(e,t){return ge.getPreferredTitle(e,t,this.app.metadataCache)}static getPreferredTitle(e,t,s){const i=x(e);let n=e.getDisplayText();if("H1"===t&&i){const e=ge.getFirstH1(i,s);e&&(n=n.replace(i.basename,e.heading))}return n}getItems(){const{excludeViewTypes:e,includeSidePanelViewTypes:t,orderEditorListByAccessTime:s}=this.settings;return this.getOpenLeaves(e,t,{orderByAccessTime:s})}renderSuggestion(e,t){let s=!1;if(e){const{file:i,matchType:n,match:a}=e,o=[l.None,l.Primary].includes(n);this.renderAsFileInfoPanel(t,["qsp-suggestion-editor"],e.preferredTitle,i,n,a,o),this.renderOptionalIndicators(t,e),s=!0}return s}onChooseSuggestion(e,t){let s=!1;return e&&(this.navigateToLeafOrOpenFile(t,e.file,"Unable to reopen existing editor in new Leaf.",null,e.item,null,!0),s=!0),s}createSuggestion(e,t,s,i,n){return ge.createSuggestion(e,t,s,this.settings,this.app.metadataCache,n,i)}static createSuggestion(e,t,s,i,n,a,o){o=o??{matchType:l.None,match:null,matchText:null};let d={item:t,file:s,preferredTitle:a=a??null,type:r.EditorList,...o};return d=ce.updateWorkspaceEnvListStatus(e,d),ce.applyMatchPriorityPreferences(d,i,n)}}class pe extends ce{getCommandString(e){return this.settings?.bookmarksListCommand}validateCommand(e,s,i,n,a){const o=e.parsedCommand(t.BookmarksList);return this.getEnabledBookmarksPluginInstance()&&(e.mode=t.BookmarksList,o.index=s,o.parsedInput=i,o.isValidated=!0),o}getSuggestions(e){const t=[];if(e){const{query:s,hasSearchTerm:i}=e.parsedInputQuery,a=he.create(s),{allBookmarks:o}=this.getItems(e);o.forEach((s=>{let n=!0,o={matchType:l.None,match:null};i&&(o=a.searchWithFallback(s.bookmarkPath),n=o.matchType!==l.None),n&&t.push(this.createSuggestion(e.currentWorkspaceEnvList,s,o))})),i&&n.sortSearchResults(t)}return t}renderSuggestion(e,t){return!1}onChooseSuggestion(e,t){let s=!1;if(pe.isBookmarksPluginFileItem(e?.item)){const{file:i}=e;this.navigateToLeafOrOpenFile(t,i,`Unable to open file from BookmarkSuggestion ${i?.path}`),s=!0}return s}getPreferredTitle(e,t,s,i){let n=e.getItemTitle(t);if("H1"===i&&s){const e=this.getFirstH1(s);e&&(n=n.replace(/^[^#]*/,e.heading))}return n}getItems(e){const t=[],s=new Map,i=new Set,n=this.getEnabledBookmarksPluginInstance();if(n){const a=e?this.getActiveFacetIds(e):new Set,o=(e,r)=>{e?.forEach((e=>{if(pe.isBookmarksPluginGroupItem(e))o(e.items,`${r}${e.title}/`);else if(this.isFacetedWith(a,K[e.type])){let a;if(pe.isBookmarksPluginFileItem(e)){const t=this.getTFileByPath(e.path);if(t){a={item:e,bookmarkPath:null,file:t};const i=s.get(t)??[];i.push(a),s.set(t,i)}}else a={item:e,bookmarkPath:null,file:null},i.add(a);if(a){const s=this.getPreferredTitle(n,e,a.file,this.settings.preferredSourceForTitle);a.bookmarkPath=r+s,t.push(a)}}}))};o(n.items,"")}return{allBookmarks:t,fileBookmarks:s,nonFileBookmarks:i}}getEnabledBookmarksPluginInstance(){return v(this.app,"bookmarks")}createSuggestion(e,t,s){return pe.createSuggestion(e,t,this.settings,this.app.metadataCache,s)}static createSuggestion(e,t,s,i,n){let a={type:r.Bookmark,item:t.item,bookmarkPath:t.bookmarkPath,file:t.file,...n};return a=ce.updateWorkspaceEnvListStatus(e,a),ce.applyMatchPriorityPreferences(a,s,i)}static isBookmarksPluginFileItem(e){return c(e,"type","file")}static isBookmarksPluginGroupItem(e){return c(e,"type","group")}addPropertiesToStandardSuggestions(e,t){const{match:s,item:i}=t;let n=l.None,a=null;if(!t.file&&pe.isBookmarksPluginFileItem(i)){const e=i.path;t.file=this.getTFileByPath(e)}s?.matches&&(n=l.Primary,a=t.bookmarkPath),t.matchType=n,t.matchText=a,ce.updateWorkspaceEnvListStatus(e,t)}}class fe extends ce{getCommandString(e){return this.settings?.headingsListCommand}validateCommand(e,s,i,n,a){e.mode=t.HeadingsList;const o=e.parsedCommand(t.HeadingsList);return o.index=s,o.parsedInput=i,o.isValidated=!0,o}onChooseSuggestion(e,t){let s=!1;if(e){const i=this.getOpenViewState(e);this.navigateToLeafOrOpenFile(t,e.file,"Unable to navigate to heading for file.",i),s=!0}return s}getPreferredViewLinePosition(e){return e?.item?.position}renderSuggestion(e,t){let s=!1;if(e){const{item:i,file:n,match:a}=e,{app:r,settings:l}=this;this.addClassesToSuggestionContainer(t,["qsp-suggestion-headings",`qsp-headings-l${i.level}`]);const{contentEl:d,titleEl:c}=ce.createContentStructureElements(t);fe.renderHeadingContent(r,l,c,i,n,a),this.renderPath(d,n);const h=this.createFlairContainer(t);this.renderOptionalIndicators(t,e,h),this.renderIndicator(h,["qsp-headings-indicator"],null,o[i.level]),e.downranked&&t.addClass("mod-downranked"),s=!0}return s}static renderHeadingContent(e,t,s,i,a,o,r){const{heading:l}=i,{renderMarkdownContentInSuggestions:{isEnabled:d,renderHeadings:c}}=t;(r=r??(d&&c))?ce.renderMarkdownContentAsync(e,s,l,a.path):n.renderResults(s,l,o)}getAvailableFacets(e){const{settings:{shouldSearchHeadings:t,shouldSearchBookmarks:s,shouldSearchFilenames:i,shouldSearchRecentFiles:n,builtInSystemOptions:{showAttachments:a,showAllFileTypes:o}}}=this,r=a||o,l={[U.RecentFiles]:n,[U.Bookmarks]:s,[U.Filenames]:i,[U.Headings]:t,[U.ExternalFiles]:r};return this.getFacets(e.mode).filter((e=>(Object.prototype.hasOwnProperty.call(l,e.id)&&(e.isAvailable=l[e.id]),e.isAvailable)))}getSuggestions(e){let t=[];if(e){const{hasSearchTerm:s}=e.parsedInputQuery,{settings:i}=this,a=this.getActiveFacetIds(e),o=!!a.size;if(s||o){const{limit:s}=i,{app:{vault:o}}=this,r={headings:i.shouldSearchHeadings,allHeadings:i.searchAllHeadings,aliases:i.shouldShowAlias,bookmarks:i.shouldSearchBookmarks,filename:i.shouldSearchFilenames,filenameAsFallback:!i.strictHeadingsOnly,unresolved:!i.showExistingOnly};this.getItems([o.getRoot()],e,t,a,r),n.sortSearchResults(t),s>0&&t.length>s&&(t=t.slice(0,s))}else this.getSuggestionsForEditorsAndRecentFiles(e,t,new Set,{editors:!0,recentFiles:i.shouldSearchRecentFiles})}return t}getItems(e,t,s,i,n){const a=!!i.size,o=he.create(t.parsedInputQuery.query);this.getSuggestionsForEditorsAndRecentFiles(t,s,i,{editors:!1,recentFiles:!1});const r={fileBookmarks:n.bookmarks,nonFileBookmarks:n.bookmarks};this.getSuggestionsForBookmarks(t,o,s,i,r);const l={headings:n.headings,allHeadings:n.allHeadings,aliases:n.aliases,filename:n.filename,filenameAsFallback:n.filenameAsFallback};this.getSuggestionForFiles(t,o,e,s,i,l),n.unresolved&&!a&&this.addUnresolvedSuggestions(s,o)}getSuggestionsForBookmarks(e,t,s,i,n){const a=!!i.size,{fileBookmarks:o,nonFileBookmarks:r}=e.currentWorkspaceEnvList;if(a){const e=i.has(U.Bookmarks);n=Object.assign(n,{fileBookmarks:e,nonFileBookmarks:e})}const l=i=>{for(const n of i)this.addBookmarkSuggestion(e,s,t,n)};n.fileBookmarks&&o.forEach((e=>{l(e)})),n.nonFileBookmarks&&l(r)}getSuggestionForFiles(e,t,s,i,n,a){if(!!n.size){const e=this.isFacetedWith(n,U.Headings),t=this.isFacetedWith(n,U.ExternalFiles)||this.isFacetedWith(n,U.Filenames);let s=!1,i=!1;e&&(s=!0===a.allHeadings,i=!0===a.filenameAsFallback),a=Object.assign(a,{headings:e,aliases:!1,filename:t,allHeadings:s,filenameAsFallback:i})}else a=Object.assign({headings:!0,allHeadings:!0,aliases:!0,filename:!0,filenameAsFallback:!0},a);if([a.headings,a.aliases,a.filename].some((e=>!0===e))){const{excludeFolders:o}=this.settings,r=T(o);let l=Array.prototype.concat(s);for(;l.length>0;){const s=l.pop();S(s)?this.shouldIncludeFile(s,n)&&this.addSuggestionsForFile(e,t,i,s,a):r(s.path)||(l=l.concat(s.children))}}}addSuggestionsForFile(e,t,s,i,n){let a=!1;n.headings&&(a=this.addHeadingSuggestions(e,t,s,i,n.allHeadings)),(n.filename||!a&&n.filenameAsFallback)&&this.addFileSuggestions(e,t,s,i),n.aliases&&this.addAliasSuggestions(e,t,s,i)}shouldIncludeFile(e,t=new Set){let s=!1;if(e){const i=new Set(["md","canvas"]),{extension:n}=e,{app:{viewRegistry:a,metadataCache:o},settings:{excludeObsidianIgnoredFiles:r,fileExtAllowList:l,builtInSystemOptions:{showAttachments:d,showAllFileTypes:c}}}=this;if(!(r&&o.isUserIgnored(e.path)))if(t.has(U.ExternalFiles)){const e=d||c;s=!i.has(n)&&e}else{s=this.isExternalFileTypeAllowed(e,a,d,c,l)||i.has(n)}}return s}isExternalFileTypeAllowed(e,t,s,i,n){const{extension:a}=e;let o=t.isExtensionRegistered(a)?s:i;if(!o){o=new Set(n).has(a)}return o}addAliasSuggestions(e,t,s,i){const{metadataCache:n}=this.app,a=n.getFileCache(i)?.frontmatter;if(a){const n=H.getAliases(a);let o=n.length;for(;o--;){const a=n[o],{match:r}=t.searchWithFallback(a);r&&s.push(this.createAliasSuggestion(e,a,i,r))}}}addFileSuggestions(e,t,s,i){const{match:n,matchType:a,matchText:o}=t.searchWithFallback(null,i);n&&s.push(this.createFileSuggestion(e,i,n,a,o))}addBookmarkSuggestion(e,t,s,i){const n=s.searchWithFallback(i.bookmarkPath);if(n.match){const s=pe.createSuggestion(e.currentWorkspaceEnvList,i,this.settings,this.app.metadataCache,n);t.push(s)}}addHeadingSuggestions(e,t,s,i,n){const{metadataCache:a}=this.app,o=a.getFileCache(i)?.headings??[];let r=null,l=!1,d=o.length;for(;d--;){const a=o[d];let c=!1;if(n&&(c=this.matchAndPushHeading(e,t,s,i,a)),1===a.level){const{line:e}=a.position.start;(null===r||e{this.addOpenEditorSuggestions(s,e,a,t)}))}if(i.recentFiles){const i=e.currentWorkspaceEnvList?.mostRecentFiles;i?.forEach((i=>{this.shouldIncludeFile(i,s)&&this.addRecentFilesSuggestions(i,e,a,t)}))}}onNoResultsCreateAction(e,s){const i=e.parsedCommand(t.HeadingsList)?.parsedInput;return this.createFile(i,s),!0}}const ye={file:"lucide-file-text",text:"lucide-sticky-note",link:"lucide-globe",group:"create-group"};class be extends ce{getCommandString(e){const{settings:t}=this;return e?.useActiveEditorAsSource?t.symbolListActiveEditorCommand:t.symbolListCommand}validateCommand(e,s,i,n,a){const o=e.parsedCommand(t.SymbolList),r=this.getSourceInfoForSymbolOperation(n,a,0===s,e.sessionOpts);return r&&(e.mode=t.SymbolList,o.source=r,o.index=s,o.parsedInput=i,o.isValidated=!0),o}async getSuggestions(e){const s=[];if(e){this.inputInfo=e;const{query:i,hasSearchTerm:a}=e.parsedInputQuery,o=he.create(i),l=e.parsedCommand(t.SymbolList);(await this.getItems(l.source,a)).forEach((e=>{let t=!0,i=null;if(a){const s=be.getSuggestionTextForSymbol(e);({match:i}=o.searchWithFallback(s)),t=!!i}if(t){const{file:t}=l.source;s.push({type:r.SymbolList,file:t,item:e,match:i})}})),a&&n.sortSearchResults(s)}return s}renderSuggestion(e,t){let s=!1;if(e){const{item:i,file:a,match:o}=e,r=["qsp-suggestion-symbol"];Object.prototype.hasOwnProperty.call(i,"indentLevel")&&this.settings.symbolsInLineOrder&&!this.inputInfo?.parsedInputQuery?.hasSearchTerm&&r.push(`qsp-symbol-l${i.indentLevel}`),this.addClassesToSuggestionContainer(t,r);const{titleEl:l}=ce.createContentStructureElements(t);if(y(i.symbol))fe.renderHeadingContent(this.app,this.settings,l,i.symbol,a,o);else{const e=be.getSuggestionTextForSymbol(i);n.renderResults(l,e,o)}this.addSymbolIndicator(i,t),s=!0}return s}onChooseSuggestion(e,s){let i=!1;if(e){const n=this.inputInfo.parsedCommand(),{leaf:a,file:o}=n.source,r=this.getOpenViewState(e),{item:l}=e;this.navigateToLeafOrOpenFileAsync(s,o,r,a,t.SymbolList).then((()=>{const{symbol:e}=l;be.isCanvasSymbolPayload(l,e)&&this.zoomToCanvasNode(this.getActiveLeaf().view,e)}),(e=>{console.log(`Switcher++: Unable to navigate to symbols for file ${o?.path}`,e)})),i=!0}return i}reset(){this.inputInfo=null}getAvailableFacets(e){const i=e.parsedCommand(t.SymbolList),n=be.isCanvasFile(i?.source?.file),a=this.getFacets(e.mode),o=new Set(Object.values(W)),r=new Set(Object.values(s).filter((e=>isNaN(Number(e)))));return a.forEach((e=>{const{id:t}=e;e.isAvailable=n?o.has(t):r.has(t)})),a.filter((e=>e.isAvailable))}zoomToCanvasNode(e,t){if(be.isCanvasView(e)&&t){const s=e.canvas,i=s.nodes.get(t.id);s.selectOnly(i),s.zoomToSelection()}}getPreferredViewLinePosition(e){let t=super.getPreferredViewLinePosition();if(e?.item?.symbol){const{item:s}=e;be.isCanvasSymbolPayload(s,s.symbol)||(t=s.symbol.position)}return t}getSourceInfoForSymbolOperation(e,s,i,n){const a=this.inputInfo;let o=null,r=t.Standard;a&&(o=a.parsedCommand().source,r=a.mode);const l=r===t.SymbolList&&!!o,d=this.getEditorInfo(s),c=this.getSuggestionInfo(e);let h=null;return l?h=o:c.isValidSource&&!n.useActiveEditorAsSource?h=c:d.isValidSource&&i&&(h=d),h}async getItems(e,t){let s=[],i=!1,n=!1;return t||({selectNearestHeading:n,symbolsInLineOrder:i}=this.settings),s=await this.getSymbolsFromSource(e,i),n&&be.FindNearestHeadingSymbol(s,e),s}static FindNearestHeadingSymbol(e,t){const s=t?.cursor?.line;if(s){let t=null;const i=e.filter((e=>y(e.symbol)));i.length&&(t=i.reduce(((e,t)=>{const{line:i}=t.symbol.position.start;return i>(e?e.symbol.position.start.line:-1)&&i<=s?t:e}))),t&&(t.isSelected=!0)}}async getSymbolsFromSource(e,t){const{app:{metadataCache:i},inputInfo:n}=this,a=[];if(e?.file){const{file:o}=e,r=this.getActiveFacetIds(n);if(be.isCanvasFile(o))await this.addCanvasSymbolsFromSource(o,a,r);else{const e=i.getFileCache(o);if(e){const i=(e=[],t)=>{this.shouldIncludeSymbol(t,r)&&e.forEach((e=>a.push({type:"symbolInfo",symbol:e,symbolType:t})))};i(e.headings,s.Heading),i(e.tags,s.Tag),this.addLinksFromSource(e.links,a,r),i(e.embeds,s.Embed),await this.addCalloutsFromSource(o,e.sections?.filter((e=>"callout"===e.type)),a,r),t&&be.orderSymbolsByLineNumber(a)}}}return a}shouldIncludeSymbol(e,t){let i=!1;return i="string"==typeof e?this.isFacetedWith(t,e):this.settings.isSymbolTypeEnabled(e)&&this.isFacetedWith(t,s[e]),i}async addCanvasSymbolsFromSource(e,t,i){let n;try{const t=await this.app.vault.cachedRead(e);n=JSON.parse(t).nodes}catch(t){console.log(`Switcher++: error reading file to extract canvas node information. ${e.path} `,t)}Array.isArray(n)&&n.forEach((e=>{this.shouldIncludeSymbol(W[e.type],i)&&t.push({type:"symbolInfo",symbolType:s.CanvasNode,symbol:{...e}})}))}async addCalloutsFromSource(e,t,i,n){const{app:{vault:a}}=this;if(this.shouldIncludeSymbol(s.Callout,n)&&t?.length&&e){let n=null;try{n=await a.cachedRead(e)}catch(t){console.log(`Switcher++: error reading file to extract callout information. ${e.path} `,t)}if(n)for(const e of t){const{start:t,end:a}=e.position,o=n.slice(t.offset,a.offset).match(/^> \[!([^\]]+)\][+-]?(.*?)(?:\n>|$)/);if(o){const t=o[1],n={calloutTitle:o[o.length-1].trim(),calloutType:t,...e};i.push({type:"symbolInfo",symbolType:s.Callout,symbol:n})}}}}addLinksFromSource(e,t,i){const{settings:n}=this;if(e=e??[],this.shouldIncludeSymbol(s.Link,i))for(const i of e){const e=F(i);(n.excludeLinkSubTypes&e)===e||t.push({type:"symbolInfo",symbol:i,symbolType:s.Link})}}static orderSymbolsByLineNumber(e){const t=e.sort(((e,t)=>{const{start:s}=e.symbol.position,{start:i}=t.symbol.position,n=s.line-i.line;return 0===n?s.col-i.col:n}));let s=0;return t.forEach((e=>{let t=0;y(e.symbol)?(s=e.symbol.level,t=e.symbol.level-1):t=s,e.indentLevel=t})),t}static getSuggestionTextForSymbol(e){const{symbol:t}=e;let s;if(y(t))s=t.heading;else if(c(t,"tag"))s=t.tag.slice(1);else if(b(t))s=t.calloutTitle;else if(be.isCanvasSymbolPayload(e,t))s=be.getSuggestionTextForCanvasNode(t);else{const e=t;({link:s}=e);const{displayText:i}=e;i&&i!==s&&(s+=`|${i}`)}return s}static getSuggestionTextForCanvasNode(e){let t="";const s={file:()=>e.file,text:()=>e.text,link:()=>e.url,group:()=>e.label}[e?.type];return s&&(t=s()),t}addSymbolIndicator(e,t){const{symbolType:s,symbol:i}=e,r=["qsp-symbol-indicator"],l=this.createFlairContainer(t);if(b(i)){r.push("suggestion-flair","callout","callout-icon","svg-icon");const e=l.createSpan({cls:r,attr:{"data-callout":i.calloutType}}),t=e.getCssPropertyValue("--callout-icon");n.setIcon(e,t)}else if(be.isCanvasSymbolPayload(e,i)){const e=ye[i.type];this.renderIndicator(l,r,e,null)}else{let e;e=y(i)?o[i.level]:a[s],this.renderIndicator(l,r,null,e)}}static isCanvasSymbolPayload(e,t){return e.symbolType===s.CanvasNode}static isCanvasFile(e){return"canvas"===e?.extension}static isCanvasView(e){return"canvas"===e?.getViewType()}}class Se extends ce{getCommandString(e){return this.settings?.commandListCommand}validateCommand(e,s,i,n,a){const o=e.parsedCommand(t.CommandList);return this.getEnabledCommandPalettePluginInstance()&&(e.mode=t.CommandList,o.index=s,o.parsedInput=i,o.isValidated=!0),o}getSuggestions(e){const t=[];if(e){const{query:s,hasSearchTerm:i}=e.parsedInputQuery,a=he.create(s);this.getItems(e,i).forEach((e=>{let s=!0,n=null;i&&(({match:n}=a.searchWithFallback(e.cmd.name)),s=!!n),s&&t.push(this.createSuggestion(e,n))})),i&&n.sortSearchResults(t)}return t}renderSuggestion(e,t){let s=!1;if(e){const{item:i,match:n,isPinned:a,isRecent:o}=e;this.addClassesToSuggestionContainer(t,["qsp-suggestion-command"]),this.renderContent(t,i.name,n);const r=this.createFlairContainer(t);this.renderHotkeyForCommand(i.id,this.app,r),i.icon&&this.renderIndicator(r,[],i.icon),a?this.renderIndicator(r,[],"filled-pin"):o&&this.renderOptionalIndicators(t,e,r),s=!0}return s}renderHotkeyForCommand(e,t,s){try{const{hotkeyManager:i}=t;if(i.getHotkeys(e)||i.getDefaultHotkeys(e)){const t=i.printHotkeyForCommand(e);t?.length&&s.createEl("kbd",{cls:"suggestion-hotkey",text:t})}}catch(t){console.log("Switcher++: error rendering hotkey for command id: ",e,t)}}onChooseSuggestion(e){let t=!1;if(e){const{item:s}=e;this.app.commands.executeCommandById(s.id),this.saveUsageToList(s.id,Se.recentlyUsedCommandIds),t=!0}return t}saveUsageToList(e,t){if(t){const s=t.indexOf(e);s>-1&&t.splice(s,1),t.unshift(e),t.splice(this.settings.maxRecentCommands)}}getItems(e,t){let s=[];const i=this.getActiveFacetIds(e);if(!!i.size)s=this.getPinnedAndRecentCommands(i);else if(t)s=this.getAllCommands();else{const e=this.getPinnedAndRecentCommands(i);s=e.length?e:this.getAllCommands()}return s}getPinnedAndRecentCommands(e){const t=[],s=this.getPinnedCommandIds(),i=this.getRecentCommandIds(),n=e=>{let t=null;const n=this.app.commands.findCommand(e);return n&&(t={isPinned:s.has(e),isRecent:i.has(e),cmd:n}),t},a=(s,i)=>{this.isFacetedWith(e,s)&&i.forEach((e=>{const s=n(e);s&&t.push(s)}))};a(j.Pinned,Array.from(s));const o=this.isFacetedWith(e,j.Pinned),r=Array.from(i).filter((e=>!o||o&&!s.has(e)));return"asc"===this.settings.recentCommandDisplayOrder&&r.reverse(),a(j.Recent,r),t}getAllCommands(){const e=this.getPinnedCommandIds(),t=this.getRecentCommandIds();return this.app.commands.listCommands()?.sort(((e,t)=>e.name.localeCompare(t.name))).map((s=>({isPinned:e.has(s.id),isRecent:t.has(s.id),cmd:s})))}getPinnedCommandIds(){const e=this.getEnabledCommandPalettePluginInstance()?.options?.pinned;return new Set(e??[])}getRecentCommandIds(){return new Set(Se.recentlyUsedCommandIds)}createSuggestion(e,t){const{cmd:s,isPinned:i,isRecent:n}=e,a={type:r.CommandList,item:s,isPinned:i,isRecent:n,match:t};return this.applyMatchPriorityPreferences(a)}getEnabledCommandPalettePluginInstance(){return Se.getEnabledCommandPalettePluginInstance(this.app)}static getEnabledCommandPalettePluginInstance(e){return v(e,"command-palette")}}Se.recentlyUsedCommandIds=[];class ke extends ce{getCommandString(e){const{settings:t}=this;return e?.useActiveEditorAsSource?t.relatedItemsListActiveEditorCommand:t.relatedItemsListCommand}validateCommand(e,s,i,n,a){const o=e.parsedCommand(t.RelatedItemsList),r=this.getSourceInfo(n,a,0===s,e.sessionOpts);return r&&(e.mode=t.RelatedItemsList,o.source=r,o.index=s,o.parsedInput=i,o.isValidated=!0),o}getSuggestions(e){const s=[];if(e){this.inputInfo=e;const i=he.create(e.parsedInputQuery.query),a=e.parsedCommand(t.RelatedItemsList);this.getItems(a.source,e).forEach((t=>{const n=this.searchAndCreateSuggestion(e,i,t);n&&s.push(n)})),i.hasSearchTerm&&n.sortSearchResults(s)}return s}renderSuggestion(e,t){let s=!1;if(e){const{file:i,matchType:n,match:a,item:o}=e,r=new Map([[d.Backlink,"links-coming-in"],[d.DiskLocation,"folder-tree"],[d.OutgoingLink,"links-going-out"]]);t.setAttribute("data-relation-type",o.relationType),this.renderAsFileInfoPanel(t,["qsp-suggestion-related"],e.preferredTitle,i,n,a);const l=this.renderOptionalIndicators(t,e);e.item.count&&this.renderIndicator(l,[],null,`${e.item.count}`),this.renderIndicator(l,["qsp-related-indicator"],r.get(o.relationType)),s=!0}return s}onChooseSuggestion(e,t){let s=!1;if(e){const{file:i}=e;this.navigateToLeafOrOpenFile(t,i,`Unable to open related file ${i.path}`),s=!0}return s}getPreferredTitle(e,t){let s=null;const{file:i,unresolvedText:n}=e;if(i)"H1"===t&&(s=this.getFirstH1(i)?.heading??null);else{!!n?.length&&(s=n)}return s}searchAndCreateSuggestion(e,t,s){const{file:i,unresolvedText:n}=s;let a={matchType:l.None,match:null};const o=null===i&&n?.length,{currentWorkspaceEnvList:r}=e,{settings:d,app:{metadataCache:c}}=this,h=this.getPreferredTitle(s,d.preferredSourceForTitle);return t.hasSearchTerm&&(a=t.searchWithFallback(h,i),a.matchType===l.None)?null:o?me.createUnresolvedSuggestion(h,a,d,c):this.createSuggestion(r,s,a,h)}getItems(e,t){const s=[],{metadataCache:i}=this.app,{file:n,suggestion:a}=e,o=new Set(this.settings.enabledRelatedItems),r=this.getActiveFacetIds(t),l=e=>o.has(e)&&this.isFacetedWith(r,e);if(l(d.Backlink)){let e=n?.path,t=i.resolvedLinks;p(a)&&(e=a.linktext,t=i.unresolvedLinks),this.addBacklinks(e,t,s)}return l(d.DiskLocation)&&this.addRelatedDiskFiles(n,s),l(d.OutgoingLink)&&this.addOutgoingLinks(n,s),s}addRelatedDiskFiles(e,t){const{excludeRelatedFolders:s,excludeOpenRelatedFiles:i}=this.settings;if(e){const n=T(s);let a=[...e.parent.children];for(;a.length>0;){const s=a.pop();if(S(s)){s===e||i&&!!this.findMatchingLeaf(s).leaf||t.push({file:s,relationType:d.DiskLocation})}else n(s.path)||(a=a.concat(s.children))}}}addOutgoingLinks(e,t){if(e){const s=new Map,i=new Map,{metadataCache:n}=this.app,a=n.getFileCache(e).links??[],o=e=>!!e&&!!(e.count+=1);a.forEach((a=>{const r=a.link,l=n.getFirstLinkpathDest(r,e.path);let c;l?o(i.get(l))||l===e||(c={file:l,relationType:d.OutgoingLink,count:1},i.set(l,c),t.push(c)):o(s.get(r))||(c={file:null,relationType:d.OutgoingLink,unresolvedText:r,count:1},s.set(r,c),t.push(c))}))}}addBacklinks(e,t,s){for(const[i,n]of Object.entries(t))if(i!==e&&Object.prototype.hasOwnProperty.call(n,e)){const t=n[e],a=this.getTFileByPath(i);a&&s.push({count:t,file:a,relationType:d.Backlink})}}reset(){this.inputInfo=null}getSourceInfo(e,s,i,n){const a=this.inputInfo;let o=null,r=t.Standard;a&&(o=a.parsedCommand().source,r=a.mode);const l=r===t.RelatedItemsList&&!!o,d=this.getEditorInfo(s),c=this.getSuggestionInfo(e);!c.isValidSource&&p(e)&&(c.isValidSource=!0);let h=null;return l?h=o:c.isValidSource&&!n.useActiveEditorAsSource?h=c:d.isValidSource&&i&&(h=d),h}createSuggestion(e,t,s,i){let n={item:t,file:t?.file,type:r.RelatedItemsList,preferredTitle:i,...s};return n=ce.updateWorkspaceEnvListStatus(e,n),this.applyMatchPriorityPreferences(n)}}class ve extends ce{constructor(){super(...arguments),this.mobileVaultChooserMarker={type:r.VaultList,match:null,item:null,pathSegments:null}}getCommandString(e){return this.settings?.vaultListCommand}validateCommand(e,s,i,n,a){e.mode=t.VaultList;const o=e.parsedCommand(t.VaultList);return o.index=s,o.parsedInput=i,o.isValidated=!0,o}getSuggestions(e){const t=[];if(e){const{query:s,hasSearchTerm:i}=e.parsedInputQuery,a=he.create(s);this.getItems().forEach((e=>{let s=!0;if(i){const t=a.searchWithFallback(null,e.pathSegments);Object.assign(e,t),s=!!t.match}s&&t.push(e)})),i&&n.sortSearchResults(t)}return t}renderSuggestion(e,t){let s=!1;return e&&(this.addClassesToSuggestionContainer(t,["qsp-suggestion-vault"]),s=!0,n.Platform.isDesktop?this.renderVaultSuggestion(e,t):e===this.mobileVaultChooserMarker&&this.renderMobileHintSuggestion(t)),s}renderMobileHintSuggestion(e){this.renderContent(e,"Show mobile vault chooser",null)}renderVaultSuggestion(e,t){const{pathSegments:s,matchType:i}=e;let{match:a}=e,o=null;i===l.Basename&&(o=a,a=null);const r=this.renderContent(t,s.basename,o).createDiv({cls:["suggestion-note","qsp-note"]}),d=r.createSpan({cls:["qsp-path-indicator"]}),c=r.createSpan({cls:"qsp-path"});n.setIcon(d,"folder"),n.renderResults(c,s.path,a)}onChooseSuggestion(e,t){let s=!1;return e&&(n.Platform.isDesktop?(this.openVaultOnDesktop(e.pathSegments?.path),s=!0):e===this.mobileVaultChooserMarker&&(this.app.openVaultChooser(),s=!0)),s}getItems(){const e=[];if(n.Platform.isDesktop)try{const t=this.getVaultListDataOnDesktop();for(const[s,{path:i,open:n}]of Object.entries(t)){const t=E(i),a={type:r.VaultList,match:null,item:s,isOpen:!!n,pathSegments:{basename:t,path:i}};e.push(a)}}catch(e){console.log("Switcher++: error parsing vault data. ",e)}else e.push(this.mobileVaultChooserMarker);return e.sort(((e,t)=>e.pathSegments.basename.localeCompare(t.pathSegments.basename)))}openVaultOnDesktop(e){if(n.Platform.isDesktop)try{window.require("electron").ipcRenderer.sendSync("vault-open",e,!1)}catch(t){console.log(`Switcher++: error opening vault with path: ${e} `,t)}}getVaultListDataOnDesktop(){let e=null;if(n.Platform.isDesktop)try{e=window.require("electron").ipcRenderer.sendSync("vault-list")}catch(e){console.log("Switcher++: error retrieving list of available vaults. ",e)}return e}}const Ce={};class Le{get inputInfo(){return this._inputInfo}constructor(e,s,i){this.app=e,this.settings=s,this.exKeymap=i,this.sessionOpts={},this.noResultActionModes=[t.HeadingsList,t.WorkspaceList];const a=new Map([[t.SymbolList,new be(e,s)],[t.WorkspaceList,new ue(e,s)],[t.HeadingsList,new fe(e,s)],[t.EditorList,new ge(e,s)],[t.BookmarksList,new pe(e,s)],[t.CommandList,new Se(e,s)],[t.RelatedItemsList,new ke(e,s)],[t.VaultList,new ve(e,s)],[t.Standard,new me(e,s)]]);this.handlersByMode=a,this.handlersByType=new Map([[r.CommandList,a.get(t.CommandList)],[r.EditorList,a.get(t.EditorList)],[r.HeadingsList,a.get(t.HeadingsList)],[r.RelatedItemsList,a.get(t.RelatedItemsList)],[r.Bookmark,a.get(t.BookmarksList)],[r.SymbolList,a.get(t.SymbolList)],[r.WorkspaceList,a.get(t.WorkspaceList)],[r.VaultList,a.get(t.VaultList)],[r.File,a.get(t.Standard)],[r.Alias,a.get(t.Standard)]]),this.handlersByCommand=new Map([[s.editorListCommand,a.get(t.EditorList)],[s.workspaceListCommand,a.get(t.WorkspaceList)],[s.headingsListCommand,a.get(t.HeadingsList)],[s.bookmarksListCommand,a.get(t.BookmarksList)],[s.commandListCommand,a.get(t.CommandList)],[s.symbolListCommand,a.get(t.SymbolList)],[s.symbolListActiveEditorCommand,a.get(t.SymbolList)],[s.relatedItemsListCommand,a.get(t.RelatedItemsList)],[s.vaultListCommand,a.get(t.VaultList)],[s.relatedItemsListActiveEditorCommand,a.get(t.RelatedItemsList)]]),this.debouncedGetSuggestions=n.debounce(this.getSuggestions.bind(this),s.headingsSearchDebounceMilli,!0),this.reset()}onOpen(){const{exKeymap:e,settings:t}=this;e.isOpen=!0,t.quickFilters?.shouldResetActiveFacets&&Object.values(t.quickFilters.facetList).forEach((e=>e.isActive=!1))}onClose(){this.exKeymap.isOpen=!1,D.unload()}setSessionOpenMode(e,s,i){if(this.reset(),s?.setSuggestions([]),e!==t.Standard){const t=this.getHandler(e).getCommandString(i);Object.assign(this.sessionOpts,i,{openModeString:t})}if(Ce[e]&&(e===t.CommandList&&this.settings.preserveCommandPaletteLastInput||e!==t.CommandList&&this.settings.preserveQuickSwitcherLastInput)){const t=Ce[e];this.lastInput=t.inputText}}insertSessionOpenModeOrLastInputString(e){const{sessionOpts:t,lastInput:s}=this,i=t.openModeString??null;if(s&&s!==i){e.value=s;const t=i?i.length:0;e.setSelectionRange(t,e.value.length)}else null!==i&&""!==i&&(e.value=i,t.openModeString=null);this.lastInput=null}updateSuggestions(e,s,i){const{exKeymap:n,settings:a,sessionOpts:o}=this;let r=!1;this.debouncedGetSuggestions.cancel();const l=ce.getActiveLeaf(this.app.workspace),d=Le.getActiveSuggestion(s),c=this.determineRunMode(e,d,l,o);this._inputInfo=c;const{mode:h}=c;return Ce[h]=c,this.updatedKeymapForMode(c,s,i,n,a,l),this.toggleMobileCreateFileButton(i,h,a),h!==t.Standard&&(h===t.HeadingsList&&c.parsedCommand().parsedInput?.length?this.debouncedGetSuggestions(c,s,i):this.getSuggestions(c,s,i),r=!0),r}toggleMobileCreateFileButton(e,s,i){if(!n.Platform.isMobile)return;const a=t[s];e.allowCreateNewFile=i.allowCreateNewFileInModeNames.includes(a),e.allowCreateNewFile||e.createButtonEl?.detach()}updatedKeymapForMode(e,t,s,i,n,a){const{mode:o}=e,r=this.getHandler(o),l=r?.getAvailableFacets(e)??[],d={mode:o,activeLeaf:a,facets:{facetList:l,facetSettings:n.quickFilters,onToggleFacet:((o,l)=>{if(l){const e=o.some((e=>!0===e.isActive));r.activateFacet(o,!e)}else r.activateFacet(o,!o[0].isActive);return this.updatedKeymapForMode(e,t,s,i,n,a),this.getSuggestions(e,t,s),!1}).bind(this)}};i.updateKeymapForMode(d)}renderSuggestion(e,s){const{inputInfo:i,settings:{overrideStandardModeRendering:n}}=this,{mode:a}=i,o=a===t.HeadingsList;let l=!1;const d=new Set([r.Unresolved]);if(null===e){if(o){const e=this.getHandler(a),t=i.parsedCommand(a)?.parsedInput;e.renderFileCreationSuggestion(s,t),l=!0}}else if(!d.has(e.type)&&(n||o||f(e))){const t=this.getHandler(e);t&&(l=t.renderSuggestion(e,s))}return l}onChooseSuggestion(e,s){const{inputInfo:i,settings:{overrideStandardModeBehaviors:n}}=this,{mode:a}=i,o=a===t.HeadingsList;let l=!1;const d=new Set([r.Unresolved]);if(null===e){if(this.noResultActionModes.includes(a)){const e=this.getHandler(a);l=!!e?.onNoResultsCreateAction(i,s)}}else if(!d.has(e.type)&&(n||o||f(e))){const t=this.getHandler(e);t&&(l=t.onChooseSuggestion(e,s))}return l}determineRunMode(e,s,i,n){const a=e??"",o=new de(a,t.Standard,n);return this.addWorkspaceEnvLists(o),0===a.length&&this.reset(),this.validatePrefixCommands(o,s,i,this.settings),o}getSuggestions(e,t,s){t.setSuggestions([]);const{mode:i}=e,n=this.getHandler(i).getSuggestions(e),a=n=>{n?.length?(t.setSuggestions(n),Le.setActiveSuggestion(i,t),this.exKeymap?.renderQuickOpenFlairIcons(t.suggestions,this.settings)):this.noResultActionModes.includes(i)&&e.parsedCommand(i).parsedInput?s.onNoSuggestion():t.setSuggestions(null)};Array.isArray(n)?a(n):n.then((e=>{a(e)}),(e=>{console.log("Switcher++: error retrieving suggestions as Promise. ",e)}))}removeEscapeCommandCharFromInput(e,t,s){const i=e.inputTextSansEscapeChar.replace(new RegExp(`(?:${k(t)})(?:${k(s)})`),s);return e.inputTextSansEscapeChar=i,i}validatePrefixCommands(e,t,s,i){let n=null,a=null;const o=[i.symbolListActiveEditorCommand,i.relatedItemsListActiveEditorCommand],r=[i.editorListCommand,i.workspaceListCommand,i.headingsListCommand,i.bookmarksListCommand,i.commandListCommand,i.vaultListCommand].concat(o).map((e=>`(?:${k(e)})`)).sort(((e,t)=>t.length-e.length)),l=new RegExp(`^((?:${k(i.escapeCmdChar)})?)(${r.join("|")})`).exec(e.inputText);if(l){const t=!!l[1].length;n=l[2],t?(this.removeEscapeCommandCharFromInput(e,i.escapeCmdChar,n),n=null):a=this.getHandler(n)}if(!this.validateSourcedCommands(e,n,t,s,i)&&a){e.sessionOpts.useActiveEditorAsSource=o.includes(n);const i=e.inputTextSansEscapeChar.slice(n.length);a.validateCommand(e,l.index,i,t,s)}}validateSourcedCommands(e,t,s,i,n){let a=!1;const o=[],r=e.inputTextSansEscapeChar,l=[n.editorListCommand,n.headingsListCommand,n.bookmarksListCommand];if(!t||l.includes(t)){let t=null;const l=[n.symbolListCommand,n.relatedItemsListCommand].map((e=>`(?:${k(e)})`)).sort(((e,t)=>t.length-e.length)),d=new RegExp(`((?:${k(n.escapeCmdChar)})?)(${l.join("|")})`,"g");for(;null!==(t=d.exec(r));){const l=!!t[1].length,c=t[2];if(!l){const n=r.slice(d.lastIndex),l=this.getHandler(c);if(l){const r=l.validateCommand(e,t.index,n,s,i);a=!!r?.isValidated;const d=this.getSourcedHandlers().filter((e=>e!==l));o.push(...d)}break}this.removeEscapeCommandCharFromInput(e,n.escapeCmdChar,c)}}return this.resetSourcedHandlers(o.length?o:null),a}static setActiveSuggestion(e,s){if(e===t.SymbolList){const e=s.values.filter((e=>h(e))).findIndex((e=>e.item.isSelected));-1!==e&&(s.setSelectedItem(e,null),s.suggestions[s.selectedItem].scrollIntoView(!1))}}static getActiveSuggestion(e){let t=null;return e?.values&&(t=e.values[e.selectedItem]),t}reset(){this._inputInfo=new de,this.sessionOpts={},this.resetSourcedHandlers()}resetSourcedHandlers(e){(e=e??this.getSourcedHandlers()).forEach((e=>e?.reset()))}getSourcedHandlers(){return I().map((e=>this.getHandler(e)))}addWorkspaceEnvLists(e){if(e){const s=this.getHandler(t.EditorList).getItems(),i=s.map((e=>x(e))).filter((e=>!!e)).reduce(((e,t)=>e.add(t)),new Set),{fileBookmarks:n,nonFileBookmarks:a}=this.getHandler(t.BookmarksList).getItems(null),o=e.currentWorkspaceEnvList;o.openWorkspaceLeaves=new Set(s),o.openWorkspaceFiles=i,o.fileBookmarks=n,o.nonFileBookmarks=a,o.attachmentFileExtensions=this.getAttachmentFileExtensions(this.app.viewRegistry,this.settings.fileExtAllowList);const r=i.size+this.settings.maxRecentFileSuggestionsOnInit;o.mostRecentFiles=this.getRecentFiles(i,r)}return e}getAttachmentFileExtensions(e,t){const s=new Set;try{const i=new Set(["md","canvas",...t]);Object.keys(e.typeByExtension).reduce(((e,t)=>(i.has(t)||e.add(t),e)),s)}catch(e){console.log("Switcher++: error retrieving attachment list from ViewRegistry",e)}return s}getRecentFiles(e,t=75){e=e??new Set;const s=new Set;if(t>0){const{workspace:i,vault:n}=this.app,a=i.getRecentFiles({showMarkdown:!0,showCanvas:!0,showNonImageAttachments:!0,showImages:!0,maxCount:t});a?.forEach((t=>{const i=n.getAbstractFileByPath(t);S(i)&&!e.has(i)&&s.add(i)}))}return s}inputTextForStandardMode(e){const{mode:s,inputTextSansEscapeChar:i}=this.inputInfo;let n=e;return s===t.Standard&&i?.length&&(n=i),n}inputTextForFulltextSearch(){const{inputInfo:e}=this,s=e.mode;let i=null,n=e.inputTextSansEscapeChar;if(s!==t.Standard){const t=e.parsedCommand();n=t.parsedInput,I().includes(s)&&(i=t.source?.file)}return{mode:s,parsedInput:n,file:i}}addPropertiesToStandardSuggestions(e,s){if(!e||!s.overrideStandardModeBehaviors&&!s.overrideStandardModeRendering)return;const{currentWorkspaceEnvList:i}=this.inputInfo;for(let s=0;s{console.log(`Switcher++: error opening file (${i?.path}) in background. `,e)}))}getHandler(e){let t;const{handlersByMode:s,handlersByType:i,handlersByCommand:n}=this;return"number"==typeof e?t=s.get(e):c(e,"type")?t=i.get(e.type):"string"==typeof e&&(t=n.get(e)),t}}const we={Enter:"↵",Backspace:"⌫",ArrowLeft:"←",ArrowUp:"↑",ArrowDown:"↓",ArrowRight:"→",Tab:"↹"},Ie={...we,Mod:"Ctrl",Ctrl:"Ctrl",Meta:"Win",Alt:"Alt",Shift:"Shift"},Ee={...we,Mod:"⌘",Ctrl:"⌃",Meta:"⌘",Alt:"⌥",Shift:"⇧"},Te=[t.EditorList,t.HeadingsList,t.RelatedItemsList,t.BookmarksList,t.SymbolList],Fe=[t.CommandList,t.VaultList,t.WorkspaceList,...Te];class Ae{get isOpen(){return this._isOpen}set isOpen(e){this._isOpen=e}static get modKey(){return n.Platform.isMacOS?"Meta":"Ctrl"}static get keyDisplayStr(){return n.Platform.isMacOS?Ee:Ie}get exModeHandler(){return this.modal?.exMode}constructor(e,t,s,i,n){this.app=e,this.scope=t,this.chooser=s,this.modal=i,this.config=n,this.standardKeysInfo=[],this.customKeysInfo=[],this.savedStandardKeysInfo=[],this.customInstructionEls=new Map,this.facetKeysInfo=[],this.insertIntoEditorKeysInfo=[],this.initKeysInfo(n,t),this.renderModeTriggerInstructions(i.modalEl,n),this.standardInstructionsEl=i.modalEl.querySelector(".prompt-instructions")}initKeysInfo(e,t){this.standardKeysInfo.push(),this.addCustomKeymaps(this.config),this.removeDefaultTabKeyBinding(t,e),this.registerNavigationBindings(t,e.navigationKeys),this.registerEditorTabBindings(t),this.registerCloseWhenEmptyBindings(t,e),this.registerQuickOpenBindings(t,e),this.registerFulltextSearchBindings(t,e),this.registerOpenInBackgroundBindings(t,e)}removeDefaultTabKeyBinding(e,t){if(t?.removeDefaultTabBinding){const t=e.keys.find((({modifiers:e,key:t})=>null===e&&"Tab"===t));e.unregister(t)}}registerNavigationBindings(e,t){const s=(t,s)=>{t.forEach((({modifiers:t,key:i})=>{e.register(t,i,((e,t)=>(this.navigateItems(e,s),!1)))}))};s(t?.nextKeys??[],!0),s(t?.prevKeys??[],!1)}registerFacetBinding(e,s){const{mode:i,facets:n}=s;if(n?.facetList?.length){const{facetList:s,facetSettings:a,onToggleFacet:o}=n,{keyList:r,modifiers:l,resetKey:d,resetModifiers:c}=a;let h=0;const u=(t,s,i,n)=>e.register(t,s,(()=>o(i,n)));for(let e=0;e{e.register(t[0],t[1],this.useSelectedItem.bind(this))}))}registerCloseWhenEmptyBindings(e,t){const s=t.closeWhenEmptyKeys;s?.forEach((({modifiers:t,key:s})=>{e.register(t,s,this.closeModalIfEmpty.bind(this))}))}registerQuickOpenBindings(e,t){const{isEnabled:s,modifiers:i,keyList:n}=t.quickOpen;s&&n?.forEach((t=>{e.register(i,t,this.quickOpenByIndex.bind(this))}))}quickOpenByIndex(e,t){const s=this.config.quickOpen.keyList.indexOf(t.vkey);if(-1!==s){const{chooser:i}=this;i.values.length>s&&(i.setSelectedItem(s,e),this.useSelectedItem(e,t))}return!1}registerFulltextSearchBindings(e,t){const{isEnabled:s,searchKeys:i}=t.fulltextSearch;if(s){L(this.app)&&e.register(i.modifiers,i.key,this.LaunchSystemGlobalSearch.bind(this))}}LaunchSystemGlobalSearch(e,t){const{parsedInput:s,file:i}=this.modal.exMode.inputTextForFulltextSearch();let n="";return i&&(n=`path:"${i.path}" `),this.modal.close(),L(this.app)?.openGlobalSearch(`${n}${s}`),!1}registerOpenInBackgroundBindings(e,t){const{openInBackground:{isEnabled:s,openKeys:i}}=t;if(s){const t={tab:"open in background tab",vertical:"open in background to the right",horizontal:"open in background below",window:"open in background window"};i?.filter((e=>e.hotkey)).forEach((({openType:s,hotkey:i})=>{e.register(i.modifiers,i.key,(()=>this.openInBackground(this.chooser,s))),this.createCustomKeymap(t[s],Fe,i,null,!0,!0)}))}}openInBackground(e,t){let s,i="vertical";"vertical"===t||"horizontal"===t?(s="split",i=t):s=t;const n=e?.values?.[e.selectedItem];return this.exModeHandler.openSuggestionInBackground(n,s,i),!1}renderQuickOpenFlairIcons(e,t){const{isEnabled:s,modifiers:i,keyList:n}=t.quickOpen;if(s)for(let t=0;te.purpose===o.purpose)),!a){const{modifiers:e,key:t,purpose:s}=o;a={isInstructionOnly:!1,command:Ae.commandDisplayStr(e,t),modifiers:e,key:t,purpose:s},i.push(a)}a.eventListener=()=>{const{modal:e,chooser:t}=this;e.close();const i=t.values?.[t.selectedItem];return this.insertIntoEditorAsLink(i,s,n),!1},a.modes=[e]}}return a}updateKeymapForMode(e){const{mode:s,activeLeaf:i}=e,{modal:n,scope:a,customKeysInfo:o,facetKeysInfo:r,standardKeysInfo:l,savedStandardKeysInfo:d,config:{insertLinkInEditor:c,showModeTriggerInstructions:h}}=this;this.updateInsertIntoEditorCommand(s,i,o,c);const u=o.filter((e=>!e.isInstructionOnly));this.unregisterKeys(a,u),this.unregisterKeys(a,r),r.length=0;const m=u.filter((e=>e.modes?.includes(s)));s===t.Standard?this.updateKeymapForStandardMode(a,m,d):this.updateKeymapForCustomModes(a,m,l,e,n),this.showModeTriggerInstructions(n.modalEl,h)}updateKeymapForStandardMode(e,t,s){const i=s.map((([e,t])=>({eventListener:t.func,...e})));this.registerKeys(e,i),s.length=0,this.registerKeys(e,t),this.toggleStandardInstructions(!0)}updateKeymapForCustomModes(e,t,s,i,n){const{savedStandardKeysInfo:a,customKeysInfo:o,facetKeysInfo:r}=this,l=this.unregisterKeys(e,s);l.length&&a.push(...l),this.registerKeys(e,t),this.registerFacetBinding(e,i),this.showCustomInstructions(n,i,o,r)}registerKeys(e,t){t.forEach((({modifiers:t,key:s,eventListener:i})=>{e.register(t,s,i)}))}unregisterKeys(e,t){const s=[],i={};t.map((e=>{const{key:t,modifiers:s}=e,n=Ae.modifiersToKeymapInfoStr(s),a=i[t];a?a[n]=e:i[t]={[n]:e}}));let n=e.keys.length;for(;n--;){const t=e.keys[n],a=i[t.key],o=a?.[t.modifiers];o&&(e.unregister(t),s.push([o,t]))}return s}detachCustomInstructionEls(){this.customInstructionEls.forEach((e=>{e.detach()}))}toggleStandardInstructions(e){const{standardInstructionsEl:t}=this;let s="none";e&&(s="",this.detachCustomInstructionEls()),t&&(t.style.display=s)}showCustomInstructions(e,t,s,i){const{mode:n,facets:a}=t,{modalEl:o}=e,r=s.filter((e=>e.modes?.includes(n)));this.toggleStandardInstructions(!1),this.renderCustomInstructions(o,r),this.renderFacetInstructions(o,a?.facetSettings,i)}renderFacetInstructions(e,t,s){if(s?.length&&t.shouldShowFacetInstructions){const i=this.getCustomInstructionsEl("facets",e);i.empty(),e.appendChild(i);const n=`filters | ${Ae.commandDisplayStr(t.modifiers)}`;this.createPromptInstructionCommandEl(i,n),s.forEach((e=>{const{facet:s,command:n,purpose:a}=e;let o,r,l=null;s?(r=n,o=s.modifiers,s.isActive&&(l=["qsp-filter-active"])):(r=t.resetKey,o=t.resetModifiers);const d=o?`(${Ae.commandDisplayStr(o)}) ${r}`:`${r}`;this.createPromptInstructionCommandEl(i,d,a,[],l)}))}}renderCustomInstructions(e,t){const s=this.getCustomInstructionsEl("custom",e);s.empty(),e.appendChild(s),t.forEach((e=>{this.createPromptInstructionCommandEl(s,e.command,e.purpose)}))}showModeTriggerInstructions(e,t){if(t){const t=this.customInstructionEls.get("modes");t&&e.appendChild(t)}}renderModeTriggerInstructions(e,t){const s=new Map([[t.headingsListCommand,"heading list"],[t.editorListCommand,"editor list"],[t.bookmarksListCommand,"bookmark list"],[t.commandListCommand,"command list"],[t.workspaceListCommand,"workspace list"],[t.vaultListCommand,"vault list"],[t.symbolListActiveEditorCommand,"symbol list (active editor)"],[t.symbolListCommand,"symbol list (embedded)"],[t.relatedItemsListActiveEditorCommand,"related items (active editor)"],[t.relatedItemsListCommand,"related items (embedded)"]]),i=this.getCustomInstructionsEl("modes",e);i.detach(),i.empty(),this.createPromptInstructionCommandEl(i,"mode triggers |"),s.forEach(((e,t)=>{this.createPromptInstructionCommandEl(i,t,e)}))}getCustomInstructionsEl(e,t){let s=this.customInstructionEls.get(e);if(!s){const i={custom:["qsp-prompt-instructions"],facets:["qsp-prompt-instructions-facets"],modes:["qsp-prompt-instructions-modes"]};s=this.createPromptInstructionsEl(i[e],t),this.customInstructionEls.set(e,s)}return s}createPromptInstructionsEl(e,t){const s={cls:["prompt-instructions",...e]};return t.createDiv(s)}createPromptInstructionCommandEl(e,t,s,i,n){i=i??[];const a=e.createDiv();return a.createSpan({cls:["prompt-instruction-command",...i],text:t}),s&&(n=n??[],a.createSpan({cls:n,text:s})),a}closeModalIfEmpty(e,t){const{modal:s,config:i}=this;i.shouldCloseModalOnBackspace&&!s?.inputEl.value&&(s.close(),e.preventDefault())}navigateToCommandHotkeySelector(e,t){const{modal:s,chooser:i,app:{setting:n}}=this,a=i.values?.[i.selectedItem];if(a){n.open();const e=n.openTabById("hotkeys");if(e){s.close();const t=a.item.id;e.setQuery(`${t}`)}}return!1}togglePinnedCommand(e,t){const{app:s,config:i,chooser:n}=this,a=n.values?.[n.selectedItem],o=Se.getEnabledCommandPalettePluginInstance(s);if(a&&o){const e=a.item.id,t=n.suggestions[n.selectedItem];let r=o.options?.pinned;if(r){const t=r.indexOf(e);a.isPinned=-1===t,a.isPinned?r.push(e):r.splice(t,1)}else r=[e],o.options.pinned=r;o.saveSettings(o.plugin),t.empty(),new Se(s,i).renderSuggestion(a,t)}return!1}toggleMarkdownContentRendering(e,t){const{app:s,config:i,chooser:n}=this,a=n.values?.[n.selectedItem];let o=null,r=null;if(h(a)&&y(a.item.symbol)?(o=a.item.symbol,r=a.file):u(a)&&(o=a.item,r=a.file),o&&r){const e=n.suggestions[n.selectedItem].querySelector(".qsp-title"),t=!e.querySelector(".qsp-rendered-container");e.empty(),fe.renderHeadingContent(s,i,e,o,r,a.match,t)}return!1}openDefaultApp(e,t){const{app:s,config:{openDefaultApp:{excludeFileExtensions:i}},chooser:n}=this,a=n.values?.[n.selectedItem],o=M(a);if(o&&!i.includes(o.extension)){const e=`Switcher++: error opening file (${o.path}) in default app. `;s.openWithDefaultApp(o.path).catch((t=>{console.log(e,t)}))}return!1}saveCurrentAndOpenSelectedWorkspace(){const{app:e,chooser:t,modal:s}=this,i=t?.values?.[t.selectedItem];if(i&&i.item){const t=ue.getEnabledWorkspacesPluginInstance(e);t&&(t.saveWorkspace(t.activeWorkspace),t.loadWorkspace(i.item.id),s.close())}return!1}useSelectedItem(e,t){return this.chooser.useSelectedItem(e),!1}insertIntoEditorAsLink(e,t,s){const{app:{workspace:i,fileManager:a,vault:o}}=this,r=i.getActiveViewOfType(n.MarkdownView),l=r?.leaf===t,d=r?.file;if(l&&d){const t=O(a,o,e,d.path,s);t&&r.editor?.replaceSelection(t)}}navigateItems(e,t){const{isOpen:s,chooser:i}=this;if(s){let s=i.selectedItem;s=t?++s:--s,i.setSelectedItem(s,e)}}static commandDisplayStr(e,t){const{keyDisplayStr:s}=this;let i=null,n=null;return e&&(i=e.map((e=>s[e]?.toLocaleLowerCase())).sort().join(" ")),t&&(n=Object.prototype.hasOwnProperty.call(s,t)?s[t]:t),[i,n].filter((e=>e)).join(" ")}static modifiersToKeymapInfoStr(e){return e?.map((e=>"Mod"===e?this.modKey:e)).sort().join(",")}createCustomKeymap(e,t,s,i,n=!0,a=!1){let o=null;if(s){const{modifiers:r,key:l}=s;o={modes:t,modifiers:r,key:l,eventListener:i,purpose:e,command:Ae.commandDisplayStr(r,l),isInstructionOnly:a},n&&this.customKeysInfo.push(o)}return o}addCustomKeymaps(e){const{quickOpen:s}=e,i=s?.keyList;if(i?.length){const e=`${i[0]}~${i[i.length-1]}`;this.createCustomKeymap("open nth item",Fe,{modifiers:s.modifiers,key:e},null,s.isEnabled,!0)}this.createCustomKeymap("open in new tab",Te,{modifiers:["Mod"],key:"Enter"},null,!0,!0),this.createCustomKeymap("open to the right",Te,{modifiers:["Mod"],key:"\\"},null,!0,!0),this.createCustomKeymap("open below",Te,{modifiers:["Mod","Shift"],key:"\\"},null,!0,!0),this.createCustomKeymap("open in new window",Te,{modifiers:["Mod"],key:"o"},null,!0,!0),this.createCustomKeymap("execute command",[t.CommandList],{modifiers:[],key:"Enter"},null,!0,!0),this.createCustomKeymap("open workspace",[t.WorkspaceList],{modifiers:[],key:"Enter"},null,!0,!0),this.createCustomKeymap("save and switch workspace",[t.WorkspaceList],e.saveWorkspaceAndSwitchKeys,this.saveCurrentAndOpenSelectedWorkspace.bind(this)),this.createCustomKeymap("set hotkey",[t.CommandList],e.navigateToHotkeySelectorKeys,this.navigateToCommandHotkeySelector.bind(this)),this.createCustomKeymap("toggle pinned",[t.CommandList],e.togglePinnedCommandKeys,this.togglePinnedCommand.bind(this));const{renderMarkdownContentInSuggestions:n}=e;this.createCustomKeymap("toggle preview (selected heading)",[t.HeadingsList,t.SymbolList],n.toggleContentRenderingKeys,this.toggleMarkdownContentRendering.bind(this),n.isEnabled);const{openDefaultApp:a}=e;this.createCustomKeymap("open default app",Te,a.openInDefaultAppKeys,this.openDefaultApp.bind(this),a.isEnabled);const{fulltextSearch:o}=e;this.createCustomKeymap("fulltext search",Fe,o.searchKeys,null,o.isEnabled,!0)}}class xe{static installMobileLauncherOverride(e,t,s){let i=null;if(!(n.Platform.isMobile&&t.isEnabled&&t.isMobileButtonEnabled)||xe.coreMobileLauncherButtonEl)return null;const a=function(e,t){let s=null;const i=e?.mobileNavbar?.containerEl;return i&&(s=i.querySelector(X.defaults.mobileLauncher.coreLauncherButtonSelector),s||(s=i.querySelector(t.coreLauncherButtonSelector))),s}(e,t);if(a){const e=function(e,t,s){let i=null;if(e&&(i=e.cloneNode(!0),i)){const{iconName:e,coreLauncherButtonIconSelector:a}=t;if(i.addClass("qsp-mobile-launcher-button"),i.addEventListener("click",s),e?.length){const t=i.querySelector(a);t&&n.setIcon(t,e)}}return i}(a,t,s);(function(e,t){let s=!1;if(e&&t){const i=t.style.display;t.style.display="none",e.insertAdjacentElement("beforebegin",t)&&(e.remove(),s=!0),t.style.display=i}return s})(a,e)&&(xe.coreMobileLauncherButtonEl=a,xe.qspMobileLauncherButtonEl=e,i=e)}return i}static removeMobileLauncherOverride(){let e=!1;if(!xe.coreMobileLauncherButtonEl)return e;if(xe.qspMobileLauncherButtonEl?.parentElement){const t=xe.qspMobileLauncherButtonEl,s=xe.coreMobileLauncherButtonEl,i=s.style.display;s.style.display="none",t.insertAdjacentElement("beforebegin",s)&&(t.remove(),xe.qspMobileLauncherButtonEl=null,xe.coreMobileLauncherButtonEl=null,e=!0),s.style.display=i}return e}}class Oe{static installEmptyTabMonitor(e,t){if(!t?.isEnabled)return;const{workspace:s}=e.app;Oe.layoutChangeEventRef=s.on("layout-change",(()=>{Oe.updateEmptyTabs(s,t)})),e.registerEvent(Oe.layoutChangeEventRef),s.onLayoutReady((()=>{Oe.updateEmptyTabs(s,t)}))}static removeEmptyTabButtons(e){e.offref(Oe.layoutChangeEventRef),Oe.layoutChangeEventRef=null;const{emptyLeaves:t}=Oe;for(const e of t.keys())t.get(e)?.detach(),t.delete(e)}static updateEmptyTabs(e,t){if(!t.isEnabled)return;const{buttonLabel:s,onclickListener:i}=t;e.iterateAllLeaves((e=>{const{emptyLeaves:t}=Oe;if(R(e,"empty")&&!t.has(e)){const{containerEl:n}=e.view,a=function(e,t,s){let i=null;const n=e.querySelector(".empty-state-action-list");return n&&(i=n.createDiv({cls:["empty-state-action","tappable","qsp-empty-state-action-launch"],text:t}),i.addEventListener("click",s),n.firstElementChild!==i&&n.insertAfter(i,n.firstElementChild)),i}(n,s,i);a&&t.set(e,a)}}))}}Oe.emptyLeaves=new Map;const Pe=[{id:"switcher-plus:open",name:"Open in Standard Mode",mode:t.Standard,iconId:"lucide-file-search",ribbonIconEl:null},{id:"switcher-plus:open-editors",name:"Open in Editor Mode",mode:t.EditorList,iconId:"lucide-file-edit",ribbonIconEl:null},{id:"switcher-plus:open-symbols",name:"Open Symbols for selected suggestion or editor",mode:t.SymbolList,iconId:"lucide-dollar-sign",ribbonIconEl:null},{id:"switcher-plus:open-symbols-active",name:"Open Symbols for the active editor",mode:t.SymbolList,iconId:"lucide-dollar-sign",ribbonIconEl:null,sessionOpts:{useActiveEditorAsSource:!0}},{id:"switcher-plus:open-workspaces",name:"Open in Workspaces Mode",mode:t.WorkspaceList,iconId:"lucide-album",ribbonIconEl:null},{id:"switcher-plus:open-headings",name:"Open in Headings Mode",mode:t.HeadingsList,iconId:"lucide-file-search",ribbonIconEl:null},{id:"switcher-plus:open-starred",name:"Open in Bookmarks Mode",mode:t.BookmarksList,iconId:"lucide-bookmark",ribbonIconEl:null},{id:"switcher-plus:open-commands",name:"Open in Commands Mode",mode:t.CommandList,iconId:"run-command",ribbonIconEl:null},{id:"switcher-plus:open-related-items",name:"Open Related Items for selected suggestion or editor",mode:t.RelatedItemsList,iconId:"lucide-file-plus-2",ribbonIconEl:null},{id:"switcher-plus:open-related-items-active",name:"Open Related Items for the active editor",mode:t.RelatedItemsList,iconId:"lucide-file-plus-2",ribbonIconEl:null,sessionOpts:{useActiveEditorAsSource:!0}},{id:"switcher-plus:open-vaults",name:"Open in Vaults Mode",mode:t.VaultList,iconId:"vault",ribbonIconEl:null}];class Me extends n.Plugin{async onload(){const e=new X(this);await e.updateDataAndLoadSettings(),this.options=e,this.addSettingTab(new le(this.app,this,e)),this.registerRibbonCommandIcons(),this.updateLauncherButtonOverrides(!0),Pe.forEach((({id:e,name:t,mode:s,iconId:i,sessionOpts:n})=>{this.registerCommand(e,t,s,i,n)}))}onunload(){this.updateLauncherButtonOverrides(!1)}registerCommand(e,t,s,i,n){this.addCommand({id:e,name:t,icon:i,checkCallback:e=>this.createModalAndOpen(s,e,n)})}registerRibbonCommandIcons(){Pe.forEach((e=>{e.ribbonIconEl?.remove(),e.ribbonIconEl=null}));const e=Pe.reduce(((e,t)=>(e[t.mode]=t,e)),{});this.options.enabledRibbonCommands.forEach((s=>{const i=e[t[s]];i&&(i.ribbonIconEl=this.addRibbonIcon(i.iconId,i.name,(()=>{this.createModalAndOpen(i.mode,!1)})))}))}createModalAndOpen(e,t,s){if(!t){const t=function(e,t){const s=C(e)?.QuickSwitcherModal;return s?new class extends s{get exMode(){return this._exMode}constructor(e,t){super(e,t.options.builtInSystemOptions),this.plugin=t;const{options:s}=t;s.shouldShowAlias=this.shouldShowAlias;const i=new Ae(e,this.scope,this.chooser,this,s);this._exMode=new Le(e,s,i)}openInMode(e,t){this.exMode.setSessionOpenMode(e,this.chooser,t),super.open()}onOpen(){this.exMode.onOpen(),super.onOpen()}onClose(){super.onClose(),this.exMode.onClose()}updateSuggestions(){const{exMode:e,inputEl:t,chooser:s}=this;e.insertSessionOpenModeOrLastInputString(t),e.updateSuggestions(t.value,s,this)||super.updateSuggestions()}getSuggestions(e){const{exMode:t,plugin:s}=this,i=t.inputTextForStandardMode(e),n=super.getSuggestions(i);return t.addPropertiesToStandardSuggestions(n,s.options),n}onChooseSuggestion(e,t){this.exMode.onChooseSuggestion(e,t)||super.onChooseSuggestion(e,t)}renderSuggestion(e,t){this.exMode.renderSuggestion(e,t)||super.renderSuggestion(e,t)}}(e,t):(console.log("Switcher++: unable to extend system switcher. Plugin UI will not be loaded. Use the builtin switcher instead."),null)}(this.app,this);if(!t)return!1;t.openInMode(e,s)}return!0}updateLauncherButtonOverrides(e){const{app:s,options:{mobileLauncher:i}}=this;if(xe.removeMobileLauncherOverride(),Oe.removeEmptyTabButtons(s.workspace),e){const e=i.modeString,n=t[e],a=()=>{n&&this.createModalAndOpen(n,!1)};xe.installMobileLauncherOverride(s,i,a);const o=Pe.find((e=>e.mode===n)),r="Switcher++: "+(o?.name??"");Oe.installEmptyTabMonitor(this,{isEnabled:i.isEnabled&&i.isEmptyTabButtonEnabled,buttonLabel:r,onclickListener:a})}}}module.exports=Me; +"use strict";var e,t,s,i,n=require("obsidian");!function(e){e[e.None=0]="None",e[e.Full=1]="Full",e[e.FolderOnly=2]="FolderOnly",e[e.FolderWithFilename=3]="FolderWithFilename",e[e.FolderPathFilenameOptional=4]="FolderPathFilenameOptional"}(e||(e={})),function(e){e[e.Standard=1]="Standard",e[e.EditorList=2]="EditorList",e[e.SymbolList=4]="SymbolList",e[e.WorkspaceList=8]="WorkspaceList",e[e.HeadingsList=16]="HeadingsList",e[e.BookmarksList=32]="BookmarksList",e[e.CommandList=64]="CommandList",e[e.RelatedItemsList=128]="RelatedItemsList",e[e.VaultList=256]="VaultList"}(t||(t={})),function(e){e[e.Link=1]="Link",e[e.Embed=2]="Embed",e[e.Tag=4]="Tag",e[e.Heading=8]="Heading",e[e.Callout=16]="Callout",e[e.CanvasNode=32]="CanvasNode"}(s||(s={})),function(e){e[e.None=0]="None",e[e.Normal=1]="Normal",e[e.Heading=2]="Heading",e[e.Block=4]="Block"}(i||(i={}));const a={};a[s.Link]="🔗",a[s.Embed]="!",a[s.Tag]="#",a[s.Heading]="H";const o={};var r,l,d;function c(e,t,s){let i=!1;return e&&void 0!==e[t]&&(i=!0,void 0!==s&&s!==e[t]&&(i=!1)),i}function h(e){return c(e,"type",r.SymbolList)}function u(e){return c(e,"type",r.HeadingsList)}function m(e){return c(e,"type",r.File)}function g(e){return c(e,"type",r.Alias)}function p(e){return c(e,"type",r.Unresolved)}function f(e){return e&&!(m(t=e)||p(t)||g(t));var t}function y(e){return c(e,"level")}function b(e){return c(e,"type","callout")}function S(e){return c(e,"extension")}function k(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function v(e,t){return e?.internalPlugins?.getEnabledPluginById(t)}function C(e){const t=function(e,t){return e?.internalPlugins?.getPluginById(t)}(e,"switcher");return t?.instance}function w(e){return v(e,"global-search")}function L(){return Object.values(t).filter((e=>isNaN(Number(e)))).sort()}function I(){return[t.RelatedItemsList,t.SymbolList]}function E(e){let t=null;if(e){const s=n.normalizePath(e),i=s.lastIndexOf("/");t=-1===i?s:s.slice(i+1)}return t}function T(e){e=e??[];const t=[];for(const s of e)try{const e=new RegExp(s);t.push(e)}catch(e){console.log(`Switcher++: error creating RegExp from string: ${s}`,e)}return e=>{for(const s of t)if(s.test(e))return!0;return!1}}function F(e){let t=i.None;if(e){const s=e.link.split("|")[0];t=s.includes("#^")?i.Block:s.includes("#")?i.Heading:i.Normal}return t}function A(e,t){return t?.getFileByPath(e)}function x(e){let t=null;if(!e)return t;if(e.isDeferred){const s=e.getViewState()?.state?.file;s&&(t=A(s,e.app?.vault))}else e.view?.file&&(t=e.view.file);return t}function O(e,t,s,i,a){let o=null;if(a=Object.assign({useBasenameAsAlias:!0,useHeadingAsAlias:!0},a),s){let l=M(s),d=null,h=null;switch(s.type){case r.Unresolved:o=B(s.linktext);break;case r.Alias:d=s.alias;break;case r.Bookmark:{const{item:e}=s;"file"===e.type&&e.title&&(d=e.title);break}case r.HeadingsList:{const{heading:e}=s.item;({subpath:h,alias:d}=P(e,a.useHeadingAsAlias));break}case r.SymbolList:{const{item:{symbol:r}}=s;if(y(r))({subpath:h,alias:d}=P(r.heading,a.useHeadingAsAlias));else if(c(r,"link")){o=new RegExp(/^\[(.*?)\]\((.+?)\)/).test(r.original)?r.original:function(e,t,s,i,a,o){const{link:r,displayText:l}=i,{path:d,subpath:c}=n.parseLinktext(r);let h=l,u=null,m=null;u=d?.length?A(d,t):a;u?(!h?.length&&o&&(h=u.basename),m=e.generateMarkdownLink(u,s,c,h)):m=B(d,h);return m}(e,t,i,r,l,a.useBasenameAsAlias)}else l=null;break}case r.RelatedItemsList:{const{item:e}=s;e.unresolvedText&&(o=B(e.unresolvedText));break}}l&&!o&&(!d&&a.useBasenameAsAlias&&(d=l.basename),o=e.generateMarkdownLink(l,i,h,d))}return o}function P(e,t){const s=n.stripHeadingForLink(e);return{subpath:`#${s}`,alias:t?s:null}}function M(e){let t=null;return[r.Alias,r.Bookmark,r.HeadingsList,r.SymbolList,r.RelatedItemsList,r.EditorList,r.File].includes(e?.type)&&(t=e.file),t}function B(e,t){return`[[${e}${t=t?.length?`|${t}`:""}]]`}function R(e,t){return e?.view?.getViewType()===t&&!e.isDeferred}o[1]="H₁",o[2]="H₂",o[3]="H₃",o[4]="H₄",o[5]="H₅",o[6]="H₆",function(e){e.EditorList="editorList",e.SymbolList="symbolList",e.WorkspaceList="workspaceList",e.HeadingsList="headingsList",e.Bookmark="bookmark",e.CommandList="commandList",e.RelatedItemsList="relatedItemsList",e.VaultList="vaultList",e.File="file",e.Alias="alias",e.Unresolved="unresolved"}(r||(r={})),function(e){e[e.None=0]="None",e[e.Primary=1]="Primary",e[e.Basename=2]="Basename",e[e.Path=3]="Path"}(l||(l={})),function(e){e.DiskLocation="disk-location",e.Backlink="backlink",e.OutgoingLink="outgoing-link"}(d||(d={}));class H{static getAliases(e){let t=[];return e&&(t=H.getValueForKey(e,/^alias(es)?$/i)),t}static getValueForKey(e,t){const s=[],i=Object.keys(e).find((e=>t.test(e)));if(i){let t=e[i];"string"==typeof t&&(t=t.split(",")),Array.isArray(t)&&t.forEach((e=>{"string"==typeof e&&s.push(e.trim())}))}return s}}class D{static getRootComponent(){return this.rootComponent||(this.rootComponent=new n.Component),this.rootComponent}static unload(){this.rootComponent?.unload()}}const W={file:"canvas-node-file",text:"canvas-node-text",link:"canvas-node-link",group:"canvas-node-group"},V=[{id:s[s.Heading],mode:t.SymbolList,label:"headings",isActive:!1,isAvailable:!0},{id:s[s.Tag],mode:t.SymbolList,label:"tags",isActive:!1,isAvailable:!0},{id:s[s.Callout],mode:t.SymbolList,label:"callouts",isActive:!1,isAvailable:!0},{id:s[s.Link],mode:t.SymbolList,label:"links",isActive:!1,isAvailable:!0},{id:s[s.Embed],mode:t.SymbolList,label:"embeds",isActive:!1,isAvailable:!0},{id:W.file,mode:t.SymbolList,label:"file cards",isActive:!1,isAvailable:!0},{id:W.text,mode:t.SymbolList,label:"text cards",isActive:!1,isAvailable:!0},{id:W.link,mode:t.SymbolList,label:"link cards",isActive:!1,isAvailable:!0},{id:W.group,mode:t.SymbolList,label:"groups",isActive:!1,isAvailable:!0}],q=[{id:d.Backlink,mode:t.RelatedItemsList,label:"backlinks",isActive:!1,isAvailable:!0},{id:d.OutgoingLink,mode:t.RelatedItemsList,label:"outgoing links",isActive:!1,isAvailable:!0},{id:d.DiskLocation,mode:t.RelatedItemsList,label:"disk location",isActive:!1,isAvailable:!0}],K={file:"bookmarks-file",folder:"bookmarks-folder",search:"bookmarks-search",group:"bookmarks-group"},N=[{id:K.file,mode:t.BookmarksList,label:"files",isActive:!1,isAvailable:!0},{id:K.folder,mode:t.BookmarksList,label:"folders",isActive:!1,isAvailable:!0},{id:K.search,mode:t.BookmarksList,label:"searches",isActive:!1,isAvailable:!0}];var j;!function(e){e.Pinned="pinnedCommands",e.Recent="recentCommands"}(j||(j={}));const $=[{id:j.Pinned,mode:t.CommandList,label:"pinned",isActive:!1,isAvailable:!0},{id:j.Recent,mode:t.CommandList,label:"recent",isActive:!1,isAvailable:!0}];var U;!function(e){e.RecentFiles="recentFilesSearch",e.Bookmarks="bookmarksSearch",e.Filenames="filenamesSearch",e.Headings="headingsSearch",e.ExternalFiles="externalFilesSearch"}(U||(U={}));const Q=[{id:U.RecentFiles,mode:t.HeadingsList,label:"recent files",isActive:!1,isAvailable:!0},{id:U.Bookmarks,mode:t.HeadingsList,label:"bookmarks",isActive:!1,isAvailable:!0},{id:U.Filenames,mode:t.HeadingsList,label:"filenames",isActive:!1,isAvailable:!0},{id:U.Headings,mode:t.HeadingsList,label:"headings",isActive:!1,isAvailable:!0},{id:U.ExternalFiles,mode:t.HeadingsList,label:"external files",isActive:!1,isAvailable:!0}];function z(){const e={};return[V,q,N,$,Q].flat().reduce(((e,t)=>(e[t.id]=Object.assign({},t),e)),e),e}const _=e=>{if("object"==typeof e&&null!==e){if("function"==typeof Object.getPrototypeOf){const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}return"[object Object]"===Object.prototype.toString.call(e)}return!1},G=(...e)=>e.reduce(((e,t)=>{if(Array.isArray(t))throw new TypeError("Arguments provided to ts-deepmerge must be objects, not arrays.");return Object.keys(t).forEach((s=>{["__proto__","constructor","prototype"].includes(s)||(Array.isArray(e[s])&&Array.isArray(t[s])?e[s]=G.options.mergeArrays?G.options.uniqueArrayItems?Array.from(new Set(e[s].concat(t[s]))):[...e[s],...t[s]]:t[s]:_(e[s])&&_(t[s])?e[s]=G(e[s],t[s]):e[s]=void 0===t[s]?G.options.allowUndefinedOverrides?t[s]:e[s]:t[s])})),e}),{}),J={allowUndefinedOverrides:!0,mergeArrays:!0,uniqueArrayItems:!0};G.options=J,G.withOptions=(e,...t)=>{G.options=Object.assign(Object.assign({},J),e);const s=G(...t);return G.options=J,s};class X{static get defaults(){const i={};return i[s.Link]=!0,i[s.Embed]=!0,i[s.Tag]=!0,i[s.Heading]=!0,i[s.Callout]=!0,{version:"2.0.0",onOpenPreferNewTab:!0,alwaysNewTabForSymbols:!1,useActiveTabForSymbolsOnMobile:!1,symbolsInLineOrder:!0,editorListCommand:"edt ",symbolListCommand:"@",symbolListActiveEditorCommand:"$ ",workspaceListCommand:"+",headingsListCommand:"#",bookmarksListCommand:"'",commandListCommand:">",recentCommandDisplayOrder:"desc",maxRecentCommands:25,vaultListCommand:"vault ",relatedItemsListCommand:"~",relatedItemsListActiveEditorCommand:"^ ",shouldSearchHeadings:!0,strictHeadingsOnly:!1,searchAllHeadings:!0,headingsSearchDebounceMilli:250,excludeViewTypes:["empty"],referenceViews:["backlink","localgraph","outgoing-link","outline"],limit:50,includeSidePanelViewTypes:["backlink","image","markdown","pdf"],enabledSymbolTypes:i,selectNearestHeading:!0,excludeFolders:[],excludeLinkSubTypes:0,excludeRelatedFolders:[""],excludeOpenRelatedFiles:!1,excludeObsidianIgnoredFiles:!1,shouldSearchFilenames:!1,shouldSearchBookmarks:!1,shouldSearchRecentFiles:!0,pathDisplayFormat:e.FolderWithFilename,hidePathIfRoot:!0,enabledRelatedItems:Object.values(d),showOptionalIndicatorIcons:!0,isFileExtensionIndicatorsEnabled:!0,excludeFileExtensionIndicators:["md"],overrideStandardModeBehaviors:!0,overrideStandardModeRendering:!0,enabledRibbonCommands:[t[t.HeadingsList],t[t.SymbolList]],fileExtAllowList:["canvas"],matchPriorityAdjustments:{isEnabled:!1,adjustments:{isOpenInEditor:{value:0,label:"Open items"},isBookmarked:{value:0,label:"Bookmarked items"},isRecent:{value:0,label:"Recent items"},isAttachment:{value:0,label:"Attachment file types"},file:{value:0,label:"Filenames"},alias:{value:0,label:"Aliases"},unresolved:{value:0,label:"Unresolved filenames"},h1:{value:0,label:"H₁ headings"}},fileExtAdjustments:{canvas:{value:0,label:"Canvas files"}}},quickFilters:{resetKey:"0",keyList:["1","2","3","4","5","6","7","8","9"],modifiers:["Ctrl","Alt"],facetList:z(),shouldResetActiveFacets:!1,shouldShowFacetInstructions:!0},preserveCommandPaletteLastInput:!1,preserveQuickSwitcherLastInput:!1,shouldCloseModalOnBackspace:!1,maxRecentFileSuggestionsOnInit:25,orderEditorListByAccessTime:!0,insertLinkInEditor:{isEnabled:!0,keymap:{modifiers:["Mod"],key:"i",purpose:"insert in editor"},insertableEditorTypes:["markdown"],useBasenameAsAlias:!0,useHeadingAsAlias:!0},removeDefaultTabBinding:!0,navigationKeys:{nextKeys:[{modifiers:["Ctrl"],key:"n"},{modifiers:["Ctrl"],key:"j"}],prevKeys:[{modifiers:["Ctrl"],key:"p"},{modifiers:["Ctrl"],key:"k"}]},preferredSourceForTitle:"H1",closeWhenEmptyKeys:[{modifiers:null,key:"Backspace"}],navigateToHotkeySelectorKeys:{modifiers:["Ctrl","Shift"],key:"h"},togglePinnedCommandKeys:{modifiers:["Ctrl","Shift"],key:"p"},escapeCmdChar:"!",mobileLauncher:{isEnabled:!1,isMobileButtonEnabled:!0,isEmptyTabButtonEnabled:!0,modeString:t[t.HeadingsList],iconName:"",coreLauncherButtonIconSelector:"span.clickable-icon",coreLauncherButtonSelector:".mobile-navbar-action.mobile-navbar-action-quick-switcher"},allowCreateNewFileInModeNames:[t[t.Standard],t[t.HeadingsList]],showModeTriggerInstructions:!0,renderMarkdownContentInSuggestions:{isEnabled:!1,renderHeadings:!1,toggleContentRenderingKeys:{modifiers:["Shift","Ctrl"],key:"m"}},quickOpen:{isEnabled:!0,modifiers:["Alt"],keyList:["1","2","3","4","5","6","7","8","9"]},openDefaultApp:{isEnabled:!0,openInDefaultAppKeys:{modifiers:["Shift","Ctrl"],key:"o"},excludeFileExtensions:[]},fulltextSearch:{isEnabled:!0,searchKeys:{modifiers:["Mod","Shift"],key:"f"}},openInBackground:{isEnabled:!0,openKeys:[{openType:"tab",hotkey:{modifiers:["Mod","Shift"],key:"t"}},{openType:"vertical",hotkey:null},{openType:"horizontal",hotkey:null},{openType:"window",hotkey:null}]},saveWorkspaceAndSwitchKeys:{modifiers:["Mod","Shift"],key:"s"}}}get version(){return this.data.version}set version(e){this.data.version=e}get builtInSystemOptions(){return C(this.plugin.app)?.options}get showAllFileTypes(){return this.builtInSystemOptions?.showAllFileTypes}get showAttachments(){return this.builtInSystemOptions?.showAttachments}get showExistingOnly(){return this.builtInSystemOptions?.showExistingOnly}get onOpenPreferNewTab(){return this.data.onOpenPreferNewTab}set onOpenPreferNewTab(e){this.data.onOpenPreferNewTab=e}get alwaysNewTabForSymbols(){return this.data.alwaysNewTabForSymbols}set alwaysNewTabForSymbols(e){this.data.alwaysNewTabForSymbols=e}get useActiveTabForSymbolsOnMobile(){return this.data.useActiveTabForSymbolsOnMobile}set useActiveTabForSymbolsOnMobile(e){this.data.useActiveTabForSymbolsOnMobile=e}get symbolsInLineOrder(){return this.data.symbolsInLineOrder}set symbolsInLineOrder(e){this.data.symbolsInLineOrder=e}get editorListPlaceholderText(){return X.defaults.editorListCommand}get editorListCommand(){return this.data.editorListCommand}set editorListCommand(e){this.data.editorListCommand=e}get symbolListPlaceholderText(){return X.defaults.symbolListCommand}get symbolListCommand(){return this.data.symbolListCommand}set symbolListCommand(e){this.data.symbolListCommand=e}get symbolListActiveEditorCommand(){return this.data.symbolListActiveEditorCommand}set symbolListActiveEditorCommand(e){this.data.symbolListActiveEditorCommand=e}get workspaceListCommand(){return this.data.workspaceListCommand}set workspaceListCommand(e){this.data.workspaceListCommand=e}get workspaceListPlaceholderText(){return X.defaults.workspaceListCommand}get headingsListCommand(){return this.data.headingsListCommand}set headingsListCommand(e){this.data.headingsListCommand=e}get headingsListPlaceholderText(){return X.defaults.headingsListCommand}get bookmarksListCommand(){return this.data.bookmarksListCommand}set bookmarksListCommand(e){this.data.bookmarksListCommand=e}get bookmarksListPlaceholderText(){return X.defaults.bookmarksListCommand}get commandListCommand(){return this.data.commandListCommand}set commandListCommand(e){this.data.commandListCommand=e}get recentCommandDisplayOrder(){return this.data.recentCommandDisplayOrder}set recentCommandDisplayOrder(e){this.data.recentCommandDisplayOrder=e}get maxRecentCommands(){return this.data.maxRecentCommands}set maxRecentCommands(e){this.data.maxRecentCommands=e}get commandListPlaceholderText(){return X.defaults.commandListCommand}get vaultListCommand(){return this.data.vaultListCommand}set vaultListCommand(e){this.data.vaultListCommand=e}get vaultListPlaceholderText(){return X.defaults.vaultListCommand}get relatedItemsListCommand(){return this.data.relatedItemsListCommand}set relatedItemsListCommand(e){this.data.relatedItemsListCommand=e}get relatedItemsListPlaceholderText(){return X.defaults.relatedItemsListCommand}get relatedItemsListActiveEditorCommand(){return this.data.relatedItemsListActiveEditorCommand}set relatedItemsListActiveEditorCommand(e){this.data.relatedItemsListActiveEditorCommand=e}get shouldSearchHeadings(){return this.data.shouldSearchHeadings}set shouldSearchHeadings(e){this.data.shouldSearchHeadings=e}get strictHeadingsOnly(){return this.data.strictHeadingsOnly}set strictHeadingsOnly(e){this.data.strictHeadingsOnly=e}get searchAllHeadings(){return this.data.searchAllHeadings}set searchAllHeadings(e){this.data.searchAllHeadings=e}get headingsSearchDebounceMilli(){return this.data.headingsSearchDebounceMilli}set headingsSearchDebounceMilli(e){this.data.headingsSearchDebounceMilli=e}get excludeViewTypes(){return this.data.excludeViewTypes}set excludeViewTypes(e){this.data.excludeViewTypes=e}get referenceViews(){return this.data.referenceViews}set referenceViews(e){this.data.referenceViews=e}get limit(){return this.data.limit}set limit(e){this.data.limit=e}get includeSidePanelViewTypes(){return this.data.includeSidePanelViewTypes}set includeSidePanelViewTypes(e){this.data.includeSidePanelViewTypes=[...new Set(e)]}get includeSidePanelViewTypesPlaceholder(){return X.defaults.includeSidePanelViewTypes.join("\n")}get selectNearestHeading(){return this.data.selectNearestHeading}set selectNearestHeading(e){this.data.selectNearestHeading=e}get excludeFolders(){return this.data.excludeFolders}set excludeFolders(e){this.data.excludeFolders=[...new Set(e)]}get excludeLinkSubTypes(){return this.data.excludeLinkSubTypes}set excludeLinkSubTypes(e){this.data.excludeLinkSubTypes=e}get excludeRelatedFolders(){return this.data.excludeRelatedFolders}set excludeRelatedFolders(e){this.data.excludeRelatedFolders=[...new Set(e)]}get excludeOpenRelatedFiles(){return this.data.excludeOpenRelatedFiles}set excludeOpenRelatedFiles(e){this.data.excludeOpenRelatedFiles=e}get excludeObsidianIgnoredFiles(){return this.data.excludeObsidianIgnoredFiles}set excludeObsidianIgnoredFiles(e){this.data.excludeObsidianIgnoredFiles=e}get shouldSearchFilenames(){return this.data.shouldSearchFilenames}set shouldSearchFilenames(e){this.data.shouldSearchFilenames=e}get shouldSearchBookmarks(){return this.data.shouldSearchBookmarks}set shouldSearchBookmarks(e){this.data.shouldSearchBookmarks=e}get shouldSearchRecentFiles(){return this.data.shouldSearchRecentFiles}set shouldSearchRecentFiles(e){this.data.shouldSearchRecentFiles=e}get pathDisplayFormat(){return this.data.pathDisplayFormat}set pathDisplayFormat(e){this.data.pathDisplayFormat=e}get hidePathIfRoot(){return this.data.hidePathIfRoot}set hidePathIfRoot(e){this.data.hidePathIfRoot=e}get enabledRelatedItems(){return this.data.enabledRelatedItems}set enabledRelatedItems(e){this.data.enabledRelatedItems=e}get showOptionalIndicatorIcons(){return this.data.showOptionalIndicatorIcons}set showOptionalIndicatorIcons(e){this.data.showOptionalIndicatorIcons=e}get isFileExtensionIndicatorsEnabled(){return this.data.isFileExtensionIndicatorsEnabled}set isFileExtensionIndicatorsEnabled(e){this.data.isFileExtensionIndicatorsEnabled=e}get excludeFileExtensionIndicators(){return this.data.excludeFileExtensionIndicators}set excludeFileExtensionIndicators(e){this.data.excludeFileExtensionIndicators=[...new Set(e)]}get overrideStandardModeBehaviors(){return this.data.overrideStandardModeBehaviors}set overrideStandardModeBehaviors(e){this.data.overrideStandardModeBehaviors=e}get overrideStandardModeRendering(){return this.data.overrideStandardModeRendering}set overrideStandardModeRendering(e){this.data.overrideStandardModeRendering=e}get enabledRibbonCommands(){return this.data.enabledRibbonCommands}set enabledRibbonCommands(e){this.data.enabledRibbonCommands=[...new Set(e)]}get fileExtAllowList(){return this.data.fileExtAllowList}set fileExtAllowList(e){this.data.fileExtAllowList=e}get matchPriorityAdjustments(){return this.data.matchPriorityAdjustments}set matchPriorityAdjustments(e){this.data.matchPriorityAdjustments=e}get quickFilters(){return this.data.quickFilters}set quickFilters(e){this.data.quickFilters=e}get preserveCommandPaletteLastInput(){return this.data.preserveCommandPaletteLastInput}set preserveCommandPaletteLastInput(e){this.data.preserveCommandPaletteLastInput=e}get preserveQuickSwitcherLastInput(){return this.data.preserveQuickSwitcherLastInput}set preserveQuickSwitcherLastInput(e){this.data.preserveQuickSwitcherLastInput=e}get shouldCloseModalOnBackspace(){return this.data.shouldCloseModalOnBackspace}set shouldCloseModalOnBackspace(e){this.data.shouldCloseModalOnBackspace=e}get maxRecentFileSuggestionsOnInit(){return this.data.maxRecentFileSuggestionsOnInit}set maxRecentFileSuggestionsOnInit(e){this.data.maxRecentFileSuggestionsOnInit=e}get orderEditorListByAccessTime(){return this.data.orderEditorListByAccessTime}set orderEditorListByAccessTime(e){this.data.orderEditorListByAccessTime=e}get insertLinkInEditor(){return this.data.insertLinkInEditor}set insertLinkInEditor(e){this.data.insertLinkInEditor=e}get removeDefaultTabBinding(){return this.data.removeDefaultTabBinding}set removeDefaultTabBinding(e){this.data.removeDefaultTabBinding=e}get navigationKeys(){return this.data.navigationKeys}set navigationKeys(e){this.data.navigationKeys=e}get preferredSourceForTitle(){return this.data.preferredSourceForTitle}set preferredSourceForTitle(e){this.data.preferredSourceForTitle=e}get closeWhenEmptyKeys(){return this.data.closeWhenEmptyKeys}set closeWhenEmptyKeys(e){this.data.closeWhenEmptyKeys=e}get navigateToHotkeySelectorKeys(){return this.data.navigateToHotkeySelectorKeys}set navigateToHotkeySelectorKeys(e){this.data.navigateToHotkeySelectorKeys=e}get togglePinnedCommandKeys(){return this.data.togglePinnedCommandKeys}set togglePinnedCommandKeys(e){this.data.togglePinnedCommandKeys=e}get escapeCmdChar(){return this.data.escapeCmdChar}set escapeCmdChar(e){this.data.escapeCmdChar=e}get mobileLauncher(){return this.data.mobileLauncher}set mobileLauncher(e){this.data.mobileLauncher=e}get allowCreateNewFileInModeNames(){return this.data.allowCreateNewFileInModeNames}set allowCreateNewFileInModeNames(e){this.data.allowCreateNewFileInModeNames=[...new Set(e)]}get showModeTriggerInstructions(){return this.data.showModeTriggerInstructions}set showModeTriggerInstructions(e){this.data.showModeTriggerInstructions=e}get renderMarkdownContentInSuggestions(){return this.data.renderMarkdownContentInSuggestions}set renderMarkdownContentInSuggestions(e){this.data.renderMarkdownContentInSuggestions=e}get quickOpen(){return this.data.quickOpen}set quickOpen(e){this.data.quickOpen=e}get openDefaultApp(){return this.data.openDefaultApp}set openDefaultApp(e){this.data.openDefaultApp=e}get fulltextSearch(){return this.data.fulltextSearch}set fulltextSearch(e){this.data.fulltextSearch=e}get openInBackground(){return this.data.openInBackground}set openInBackground(e){this.data.openInBackground=e}get saveWorkspaceAndSwitchKeys(){return this.data.saveWorkspaceAndSwitchKeys}set saveWorkspaceAndSwitchKeys(e){this.data.saveWorkspaceAndSwitchKeys=e}constructor(e){this.plugin=e,this.data=X.defaults}async updateDataAndLoadSettings(){return await X.transformDataFile(this.plugin,X.defaults),await this.loadSettings()}async loadSettings(){try{const e=await(this.plugin?.loadData());if(e){const t=Object.keys(X.defaults);((e,t,s)=>{const i=["matchPriorityAdjustments","quickFilters","mobileLauncher"],n=s=>G.withOptions({mergeArrays:!1},t[s],e[s]);for(const a of s)a in e&&(t[a]=i.includes(a)?n(a):e[a])})(e,this.data,t)}}catch(e){console.log("Switcher++: error loading settings, using defaults. ",e)}}async saveSettings(){const{plugin:e,data:t}=this;await(e?.saveData(t))}save(){this.saveSettings().catch((e=>{console.log("Switcher++: error saving changes to settings",e)}))}isSymbolTypeEnabled(e){const{enabledSymbolTypes:t}=this.data;let s=X.defaults.enabledSymbolTypes[e];return Object.prototype.hasOwnProperty.call(t,e)&&(s=t[e]),s}setSymbolTypeEnabled(e,t){this.data.enabledSymbolTypes[e]=t}static async transformDataFile(e,t){await X.transformDataFileToV1(e,t),await X.transformDataFileToV2(e,t)}static async transformDataFileToV1(e,t){let s=!1;try{const i=await(e?.loadData());if(i&&"object"==typeof i){const n="version";if(!Object.prototype.hasOwnProperty.call(i,n)){const a="starredListCommand";Object.prototype.hasOwnProperty.call(i,a)&&(i.bookmarksListCommand=i[a]??t.bookmarksListCommand,delete i[a]);const o="isStarred",r=i.matchPriorityAdjustments;r&&Object.prototype.hasOwnProperty.call(r,o)&&(r.isBookmarked=r[o],delete r[o]),i[n]="1.0.0",await(e?.saveData(i)),s=!0}}}catch(e){console.log("Switcher++: error transforming data.json to v1.0.0",e)}return s}static async transformDataFileToV2(e,t){let s=!1;try{const i=await(e?.loadData());if(i&&"object"==typeof i){const n="version";if("1.0.0"===i[n]){const a="matchPriorityAdjustments";if(Object.prototype.hasOwnProperty.call(i,a)){const e=i[a],s={};i[a]={isEnabled:!!i.enableMatchPriorityAdjustments,adjustments:s},delete i.enableMatchPriorityAdjustments,Object.entries(e).forEach((([e,i])=>{const n=t.matchPriorityAdjustments.adjustments[e]?.label??"";s[e]={value:i,label:n}}))}const o="quickFilters";if(Object.prototype.hasOwnProperty.call(i,o)){const e="facetList",t=i[o],s=t[e],n=s?.reduce(((e,t)=>(e[t.id]=t,e)),{});t[e]=n}i[n]="2.0.0",await(e?.saveData(i)),s=!0}}}catch(e){console.log("Switcher++: error transforming data.json to v2.0.0",e)}return s}}class Y{constructor(e,t,s){this.app=e,this.mainSettingsTab=t,this.config=s}createSetting(e,t,s){const i=new n.Setting(e);return i.setName(t),i.setDesc(s),i}addSectionTitle(e,t,s=""){const i=this.createSetting(e,t,s);return i.setHeading(),i}addTextSetting(e,t,s,i,n,a){const o=this.createSetting(e,t,s);return o.addText((e=>{e.setPlaceholder(a),e.setValue(i),e.onChange((e=>{const t=e.length?e:i;this.saveChangesToConfig(n,t)}))})),o}addToggleSetting(e,t,s,i,n,a){const o=this.createSetting(e,t,s);return o.addToggle((e=>{e.setValue(i),e.onChange((e=>{a?a(e,this.config):this.saveChangesToConfig(n,e)}))})),o}addTextAreaSetting(e,t,s,i,n,a){const o=this.createSetting(e,t,s);return o.addTextArea((e=>{e.setPlaceholder(a),e.setValue(i),e.onChange((e=>{const t=e.length?e:i,s=Array.isArray(this.config[n]);this.saveChangesToConfig(n,s?t.split("\n"):t)}))})),o}addDropdownSetting(e,t,s,i,n,a,o){const r=this.createSetting(e,t,s);return r.addDropdown((e=>{e.addOptions(n),e.setValue(i),e.onChange((e=>{o?o(e,this.config):this.saveChangesToConfig(a,e)}))})),r}addSliderSetting(e,t,s,i,n,a,o){const r=this.createSetting(e,t,s);return r.addExtraButton((e=>(e.setIcon("lucide-rotate-ccw"),e.setTooltip("Restore default"),e.onClick((()=>r.components[1].setValue(n[3]))),e))),r.addSlider((e=>{e.setLimits(n[0],n[1],n[2]),e.setValue(i),e.setDynamicTooltip(),e.onChange((e=>{o?o(e,this.config):this.saveChangesToConfig(a,e)}))})),r}saveChangesToConfig(e,t){if(e){const{config:s}=this;s[e]=t,s.save()}}}class Z extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"Bookmarks List Mode Settings"),this.addTextSetting(e,"Bookmarks list mode trigger","Character that will trigger bookmarks list mode in the switcher",t.bookmarksListCommand,"bookmarksListCommand",t.bookmarksListPlaceholderText)}}class ee extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"Command List Mode Settings"),this.addTextSetting(e,"Command list mode trigger","Character that will trigger command list mode in the switcher",t.commandListCommand,"commandListCommand",t.commandListPlaceholderText),this.addSliderSetting(e,"Max recent commands","The maximum number of commands to save in the recent list.",t.maxRecentCommands,[0,75,1,25],"maxRecentCommands"),this.showRecentCommandDisplayOrder(e,t)}showRecentCommandDisplayOrder(e,t){this.addDropdownSetting(e,"Recent commands display order","Select the sort order for recently used commands.",t.recentCommandDisplayOrder,{desc:"Most recent first (descending)",asc:"Most recent last (ascending)"},"recentCommandDisplayOrder")}}class te extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"Related Items List Mode Settings"),this.addTextSetting(e,"Related Items list mode trigger","Character that will trigger related items list mode in the switcher. This triggers a display of Related Items for the source file of the currently selected (highlighted) suggestion in the switcher. If there is not a suggestion, display results for the active editor.",t.relatedItemsListCommand,"relatedItemsListCommand",t.relatedItemsListPlaceholderText),this.addTextSetting(e,"Related Items list mode trigger - Active editor only","Character that will trigger related items list mode in the switcher. This always triggers a display of Related Items for the active editor only.",t.relatedItemsListActiveEditorCommand,"relatedItemsListActiveEditorCommand",t.relatedItemsListActiveEditorCommand),this.showEnabledRelatedItems(e,t),this.addToggleSetting(e,"Exclude open files","Enable, related files which are already open will not be displayed in the list. Disabled, All related files will be displayed in the list.",t.excludeOpenRelatedFiles,"excludeOpenRelatedFiles")}showEnabledRelatedItems(e,t){const s=Object.values(d).sort(),i=s.join(", "),n=`The types of related items to show in the list. Add one type per line. Available types: ${i}`;this.createSetting(e,"Show related item types",n).addTextArea((e=>{e.setValue(t.enabledRelatedItems.join("\n")),e.inputEl.addEventListener("focusout",(()=>{const n=e.getValue().split("\n").map((e=>e.trim())).filter((e=>e.length>0)),a=[...new Set(n)].filter((e=>!s.includes(e)));a?.length?this.showErrorPopup(a.join("
"),i):(t.enabledRelatedItems=n,t.save())}))}))}showErrorPopup(e,t){const s=new n.Modal(this.app);s.titleEl.setText("Invalid related item type"),s.contentEl.innerHTML=`Changes not saved. Available relation types are: ${t}. The following types are invalid:

${e}`,s.open()}}class se extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"General Settings"),this.showEnabledRibbonCommands(e,t),this.showLauncherButtonOverrides(e,t),this.showPreferredSourceForTitle(e,t),this.showPathDisplayFormat(e,t),this.addToggleSetting(e,"Hide path for root items","When enabled, path information will be hidden for items at the root of the vault.",t.hidePathIfRoot,"hidePathIfRoot").setClass("qsp-setting-item-indent"),this.addTextSetting(e,"Mode trigger escape character","Character to indicate that a mode trigger character should be treated just as a normal text.",t.escapeCmdChar,"escapeCmdChar"),this.addToggleSetting(e,"Default to open in new tab","When enabled, navigating to un-opened files will open a new editor tab whenever possible (as if cmd/ctrl were held). When the file is already open, the existing tab will be activated. This overrides all other tab settings.",t.onOpenPreferNewTab,"onOpenPreferNewTab"),this.addToggleSetting(e,"Override Standard mode file open behavior","When enabled, Switcher++ will change the default Obsidian builtin Switcher functionality (Standard mode) to inject custom file open behavior.",t.overrideStandardModeBehaviors,"overrideStandardModeBehaviors"),this.addToggleSetting(e,"Override Standard mode rendering","When enabled, Switcher++ will change the default Obsidian builtin Switcher functionality (Standard mode) to render suggestions as multi-line.",t.overrideStandardModeRendering,"overrideStandardModeRendering"),this.addToggleSetting(e,"Show indicator icons","Display icons to indicate that an item is recent, bookmarked, etc..",t.showOptionalIndicatorIcons,"showOptionalIndicatorIcons"),this.addToggleSetting(e,"Allow Backspace key to close the Switcher","When the search box is empty, pressing the backspace key will close Switcher++.",t.shouldCloseModalOnBackspace,"shouldCloseModalOnBackspace"),this.showMatchPriorityAdjustments(e,t),this.showInsertLinkInEditor(e,t),this.addToggleSetting(e,"Restore previous input in Command Mode","When enabled, restore the last typed input in Command Mode when launched via global command hotkey.",t.preserveCommandPaletteLastInput,"preserveCommandPaletteLastInput"),this.addToggleSetting(e,"Restore previous input","When enabled, restore the last typed input when launched via global command hotkey.",t.preserveQuickSwitcherLastInput,"preserveQuickSwitcherLastInput"),this.addToggleSetting(e,"Display mode trigger instructions","When enabled, the trigger key for each mode will be displayed in the instructions section of the Switcher.",t.showModeTriggerInstructions,"showModeTriggerInstructions"),this.showResetFacetEachSession(e,t),this.showRenderMarkdownContentAsHTML(e,t),this.showQuickOpen(e,t)}showPreferredSourceForTitle(e,t){this.addDropdownSetting(e,"Preferred suggestion title source",'The preferred source to use for the "title" text that will be searched and displayed for file based suggestions',t.preferredSourceForTitle,{H1:"First H₁ heading",Default:"Default"},"preferredSourceForTitle")}showPathDisplayFormat(t,s){const i={};i[e.None.toString()]="Hide path",i[e.Full.toString()]="Full path",i[e.FolderOnly.toString()]="Only parent folder",i[e.FolderWithFilename.toString()]="Parent folder & filename",i[e.FolderPathFilenameOptional.toString()]="Parent folder path (filename optional)",this.addDropdownSetting(t,"Preferred file path display format","The preferred way to display file paths in suggestions",s.pathDisplayFormat.toString(),i,null,((e,t)=>{t.pathDisplayFormat=Number(e),t.save()}))}showEnabledRibbonCommands(e,t){const s=L(),i=s.join(" "),n=`Display an icon in the ribbon menu to launch specific modes. Add one mode per line. Available modes: ${i}`;this.createSetting(e,"Show ribbon icons",n).addTextArea((e=>{e.setValue(t.enabledRibbonCommands.join("\n")),e.inputEl.addEventListener("focusout",(()=>{const n=e.getValue().split("\n").map((e=>e.trim())).filter((e=>e.length>0)),a=Array.from(new Set(n)).filter((e=>!s.includes(e)));a.length?this.showErrorPopup(a.join("
"),i):(t.enabledRibbonCommands=n,t.save(),this.mainSettingsTab.plugin.registerRibbonCommandIcons())}))}))}showErrorPopup(e,t){const s=new n.Modal(this.app);s.titleEl.setText("Invalid mode"),s.contentEl.innerHTML=`Changes not saved. Available modes are: ${t}. The following are invalid:

${e}`,s.open()}showLauncherButtonOverrides(e,t){const{mobileLauncher:s}=t,i="disabled",n={[i]:"Do not override"},a=L();a.forEach((e=>{n[e]=e}));let o=i;s.isEnabled&&a.includes(s.modeString)&&(o=s.modeString);let r=this.addDropdownSetting(e,"New tab and mobile launcher buttons",'Select the Mode to launch Switcher++ in from the empty tab page and mobile navigation Bar button, or select "Do not override" to disable the feature.',o,n,null,((e,t)=>{const s=e!==i;t.mobileLauncher.isEnabled=s,s&&(t.mobileLauncher.modeString=e),t.save(),this.mainSettingsTab.display(),this.mainSettingsTab.plugin.updateLauncherButtonOverrides(s)}));s.isEnabled&&(r=this.addToggleSetting(e,"Override default Switcher launch button on mobile platforms",'When enabled, override the "🔍" button (in the Navigation Bar) on mobile platforms to launch Switcher++ instead of the default system switcher.',s.isMobileButtonEnabled,null,((e,t)=>{t.mobileLauncher.isMobileButtonEnabled=e,t.save(),this.mainSettingsTab.plugin.updateLauncherButtonOverrides(t.mobileLauncher.isEnabled)})),r.setClass("qsp-setting-item-indent"),r=this.addToggleSetting(e,'Display launch button on the "New tab" page','When enabled, a button to launch Switcher++ using the selected mode above will be added to the default Obsidian "New tab" page.',s.isEmptyTabButtonEnabled,null,((e,t)=>{t.mobileLauncher.isEmptyTabButtonEnabled=e,t.save(),this.mainSettingsTab.plugin.updateLauncherButtonOverrides(t.mobileLauncher.isEnabled)})),r.setClass("qsp-setting-item-indent"))}showMatchPriorityAdjustments(e,t){const{matchPriorityAdjustments:{isEnabled:s,adjustments:i,fileExtAdjustments:n}}=t;this.addToggleSetting(e,"Result priority adjustments","Artificially increase the match score of the specified item types by a fixed percentage so they appear higher in the results list (does not apply to Standard Mode).",s,null,((e,t)=>{t.matchPriorityAdjustments.isEnabled=e,t.saveSettings().then((()=>{this.mainSettingsTab.display()}),(e=>console.log('Switcher++: error saving "Result Priority Adjustments" setting. ',e)))})),s&&[i,n].forEach((t=>{Object.entries(t).forEach((([s,i])=>{const{value:n,label:a}=i,o=this.addSliderSetting(e,a,i.desc??"",n,[-1,1,.05,0],null,((e,i)=>{t[s].value=e,i.save()}));o.setClass("qsp-setting-item-indent")}))}))}showResetFacetEachSession(e,t){this.addToggleSetting(e,"Reset active Quick Filters","When enabled, the switcher will reset all Quick Filters back to inactive for each session.",t.quickFilters.shouldResetActiveFacets,null,((e,t)=>{t.quickFilters.shouldResetActiveFacets=e,t.save()}))}showRenderMarkdownContentAsHTML(e,t){const s=this.addToggleSetting(e,"Display Headings as Live Preview",'When enabled, Headings will be rendered as HTML similar to the Obsidian "Live Preview" display. When disabled, Headings will be rendered as raw text. Use the "toggle preview (selected heading)" hotkey to toggle the display for individual headings.',t.renderMarkdownContentInSuggestions.renderHeadings,null,((e,t)=>{const{renderMarkdownContentInSuggestions:s}=t;s.renderHeadings=e,s.isEnabled=e,t.save()}));s?.nameEl?.createSpan({cls:["qsp-tag","qsp-warning"],text:"Experimental"})}showInsertLinkInEditor(e,t){this.createSetting(e,"Insert link in editor","");let s=this.addToggleSetting(e,"Use filename as alias","When enabled, the file basename will be set as the link alias.",t.insertLinkInEditor.useBasenameAsAlias,null,((e,t)=>{t.insertLinkInEditor.useBasenameAsAlias=e,t.save()}));s.setClass("qsp-setting-item-indent"),s=this.addToggleSetting(e,"Use heading as alias",'When enabled, the file heading will be set as the link alias. This overrides the "use filename as alias" setting.',t.insertLinkInEditor.useHeadingAsAlias,null,((e,t)=>{t.insertLinkInEditor.useHeadingAsAlias=e,t.save()})),s.setClass("qsp-setting-item-indent")}showQuickOpen(e,t){this.addToggleSetting(e,"Enable quick open hotkeys for top results","When enabled, hotkeys will be defined for each of the top N results displayed in the Switcher. These hotkeys can be used to quickly open the associated suggestion directly. when disabled, no hotkeys are defined.",t.quickOpen.isEnabled,null,((e,t)=>{t.quickOpen.isEnabled=e,t.save()}))}}class ie extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"Workspace List Mode Settings"),this.addTextSetting(e,"Workspace list mode trigger","Character that will trigger workspace list mode in the switcher",t.workspaceListCommand,"workspaceListCommand",t.workspaceListPlaceholderText)}}class ne extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"Editor List Mode Settings"),this.addTextSetting(e,"Editor list mode trigger","Character that will trigger editor list mode in the switcher",t.editorListCommand,"editorListCommand",t.editorListPlaceholderText),this.showIncludeSidePanelViews(e,t),this.addToggleSetting(e,"Order default editor list by most recently accessed","When there is no search term, order the list of editors by most recent access time.",t.orderEditorListByAccessTime,"orderEditorListByAccessTime")}showIncludeSidePanelViews(e,t){const s=`When in Editor list mode, show the following view types from the side panels. Add one view type per line. Available view types: ${Object.keys(this.app.viewRegistry.viewByType).sort().join(" ")}`;this.addTextAreaSetting(e,"Include side panel views",s,t.includeSidePanelViewTypes.join("\n"),"includeSidePanelViewTypes",t.includeSidePanelViewTypesPlaceholder)}}class ae extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"Headings List Mode Settings"),this.addTextSetting(e,"Headings list mode trigger","Character that will trigger headings list mode in the switcher",t.headingsListCommand,"headingsListCommand",t.headingsListPlaceholderText),this.showHeadingSettings(e,t),this.addToggleSetting(e,"Search Filenames","Enabled, search and show suggestions for filenames. Disabled, Don't search through filenames (except for fallback searches)",t.shouldSearchFilenames,"shouldSearchFilenames"),this.addToggleSetting(e,"Search Bookmarks","Enabled, search and show suggestions for Bookmarks. Disabled, Don't search through Bookmarks",t.shouldSearchBookmarks,"shouldSearchBookmarks"),this.addSliderSetting(e,"Max recent files to show","The maximum number of recent files to show when there is no search term",t.maxRecentFileSuggestionsOnInit,[0,75,1,25],"maxRecentFileSuggestionsOnInit"),this.showExcludeFolders(e,t),this.addToggleSetting(e,'Hide Obsidian "Excluded files"','Enabled, do not display suggestions for files that are in Obsidian\'s "Options > Files & Links > Excluded files" list. Disabled, suggestions for those files will be displayed but downranked.',t.excludeObsidianIgnoredFiles,"excludeObsidianIgnoredFiles"),this.showFileExtAllowList(e,t)}showHeadingSettings(e,t){const s=t.shouldSearchHeadings;if(this.addToggleSetting(e,"Search Headings","Enabled, search and show suggestions for Headings. Disabled, Don't search through Headings",s,null,((e,t)=>{t.shouldSearchHeadings=e,t.saveSettings().then((()=>{this.mainSettingsTab.display()}),(e=>console.log('Switcher++: error saving "Search Headings" setting. ',e)))})),s){let s=this.addToggleSetting(e,"Turn off filename fallback","Enabled, strictly search through only the headings contained in the file. Do not fallback to searching the filename when an H1 match is not found. Disabled, fallback to searching against the filename when there is not a match in the first H1 contained in the file.",t.strictHeadingsOnly,"strictHeadingsOnly");s.setClass("qsp-setting-item-indent"),s=this.addToggleSetting(e,"Search all headings","Enabled, search through all headings contained in each file. Disabled, only search through the first H1 in each file.",t.searchAllHeadings,"searchAllHeadings"),s.setClass("qsp-setting-item-indent")}}showFileExtAllowList(e,t){this.createSetting(e,"File extension override",'Override the "Show attachments" and the "Show all file types" builtin, system Switcher settings and always search files with the listed extensions. Add one path per line. For example to add ".canvas" file extension, just add "canvas".').addTextArea((e=>{e.setValue(t.fileExtAllowList.join("\n")),e.inputEl.addEventListener("focusout",(()=>{const s=e.getValue().split("\n").map((e=>e.trim())).filter((e=>e.length>0));t.fileExtAllowList=s,t.save()}))}))}showExcludeFolders(e,t){const s="Exclude folders";this.createSetting(e,s,"When in Headings list mode, folder path that match any regex listed here will not be searched for suggestions. Path should start from the Vault Root. Add one path per line.").addTextArea((e=>{e.setValue(t.excludeFolders.join("\n")),e.inputEl.addEventListener("focusout",(()=>{const i=e.getValue().split("\n").filter((e=>e.length>0));this.validateExcludeFolderList(s,i)&&(t.excludeFolders=i,t.save())}))}))}validateExcludeFolderList(e,t){let s=!0,i="";for(const e of t)try{new RegExp(e)}catch(t){i+=`${e}
${t}

`,s=!1}if(!s){const t=new n.Modal(this.app);t.titleEl.setText(e),t.contentEl.innerHTML=`Changes not saved. The following regex contain errors:

${i}`,t.open()}return s}}class oe extends Y{display(e){const{config:t}=this;this.addSectionTitle(e,"Symbol List Mode Settings"),this.addTextSetting(e,"Symbol list mode trigger","Character that will trigger symbol list mode in the switcher. This triggers a display of Symbols for the source file of the currently selected (highlighted) suggestion in the switcher. If there is not a suggestion, display results for the active editor.",t.symbolListCommand,"symbolListCommand",t.symbolListPlaceholderText),this.addTextSetting(e,"Symbol list mode trigger - Active editor only","Character that will trigger symbol list mode in the switcher. This always triggers a display of Symbols for the active editor only.",t.symbolListActiveEditorCommand,"symbolListActiveEditorCommand",t.symbolListActiveEditorCommand),this.addToggleSetting(e,"List symbols as indented outline","Enabled, symbols will be displayed in the (line) order they appear in the source text, indented under any preceding heading. Disabled, symbols will be grouped by type: Headings, Tags, Links, Embeds.",t.symbolsInLineOrder,"symbolsInLineOrder"),this.addToggleSetting(e,"Open Symbols in new tab","Enabled, always open a new tab when navigating to Symbols. Disabled, navigate in an already open tab (if one exists).",t.alwaysNewTabForSymbols,"alwaysNewTabForSymbols"),this.addToggleSetting(e,"Open Symbols in active tab on mobile devices","Enabled, navigate to the target file and symbol in the active editor tab. Disabled, open a new tab when navigating to Symbols, even on mobile devices.",t.useActiveTabForSymbolsOnMobile,"useActiveTabForSymbolsOnMobile"),this.addToggleSetting(e,"Auto-select nearest heading","Enabled, in an unfiltered symbol list, select the closest preceding Heading to the current cursor position. Disabled, the first symbol in the list is selected.",t.selectNearestHeading,"selectNearestHeading"),this.showEnableSymbolTypesToggle(e,t),this.showEnableLinksToggle(e,t)}showEnableSymbolTypesToggle(e,t){[["Show Headings",s.Heading],["Show Tags",s.Tag],["Show Embeds",s.Embed],["Show Callouts",s.Callout]].forEach((([s,i])=>{this.addToggleSetting(e,s,"",t.isSymbolTypeEnabled(i),null,(e=>{t.setSymbolTypeEnabled(i,e),t.save()}))}))}showEnableLinksToggle(e,t){const n=t.isSymbolTypeEnabled(s.Link);if(this.addToggleSetting(e,"Show Links","",n,null,(e=>{t.setSymbolTypeEnabled(s.Link,e),t.saveSettings().then((()=>{this.mainSettingsTab.display()}),(e=>console.log('Switcher++: error saving "Show Links" setting. ',e)))})),n){[["Links to headings",i.Heading],["Links to blocks",i.Block]].forEach((([s,i])=>{const n=(t.excludeLinkSubTypes&i)===i;this.addToggleSetting(e,s,"",!n,null,(e=>this.saveEnableSubLinkChange(i,e))).setClass("qsp-setting-item-indent")}))}}saveEnableSubLinkChange(e,t){const{config:s}=this;let i=s.excludeLinkSubTypes;t?i&=~e:i|=e,s.excludeLinkSubTypes=i,s.save()}}class re extends Y{display(e){const{config:t}=this,s=this.addSectionTitle(e,"Vault List Mode Settings");s.nameEl?.createSpan({cls:["qsp-tag","qsp-warning"],text:"Experimental"}),this.addTextSetting(e,"Vault list mode trigger","Character that will trigger vault list mode in the switcher",t.vaultListCommand,"vaultListCommand",t.vaultListPlaceholderText)}}class le extends n.PluginSettingTab{constructor(e,t,s){super(e,t),this.plugin=t,this.config=s}display(){const{containerEl:e}=this,t=[se,oe,ae,ne,te,Z,ee,ie,re];e.empty(),e.createEl("h2",{text:"Quick Switcher++ Settings"}),t.forEach((e=>{this.displayTabSection(e)}))}displayTabSection(e){const{app:t,config:s,containerEl:i}=this;new e(t,this,s).display(i)}}class de{static get defaultParsedCommand(){return{isValidated:!1,index:-1,parsedInput:null}}get parsedInputQuery(){const e=(this.parsedCommand()?.parsedInput??"").trim().toLowerCase();return{query:e,hasSearchTerm:!!e.length}}get inputTextSansEscapeChar(){return this._inputTextSansEscapeChar??this.inputText}set inputTextSansEscapeChar(e){this._inputTextSansEscapeChar=e}constructor(e="",s=t.Standard,i){this.inputText=e,this.mode=s,this._inputTextSansEscapeChar=null,this.currentWorkspaceEnvList={openWorkspaceLeaves:new Set,openWorkspaceFiles:new Set,fileBookmarks:new Map,nonFileBookmarks:new Set,mostRecentFiles:new Set,attachmentFileExtensions:new Set},this.sessionOpts=i??{};const n=I();this.parsedCommands={},L().forEach((e=>{const s=t[e];n.includes(s)?this.parsedCommands[s]={...de.defaultParsedCommand,source:null}:this.parsedCommands[s]=de.defaultParsedCommand}))}parsedCommand(e){return e=e??this.mode,this.parsedCommands[e]}}class ce{constructor(e,t){this.app=e,this.settings=t}reset(){}onNoResultsCreateAction(e,t){return!1}getFacets(e){if(!this.facets){const t=this.settings?.quickFilters?.facetList;t&&(this.facets=Object.values(t).filter((t=>t.mode===e)))}return this.facets??[]}getAvailableFacets(e){return this.getFacets(e.mode).filter((e=>e.isAvailable))}activateFacet(e,t){e.forEach((e=>e.isActive=t)),this.settings.quickFilters.shouldResetActiveFacets||this.settings.save()}getActiveFacetIds(e){const t=this.getAvailableFacets(e).filter((e=>e.isActive)).map((e=>e.id));return new Set(t)}isFacetedWith(e,t){const s=!!e.size;return s&&e.has(t)||!s}getEditorInfo(e){const{excludeViewTypes:t}=this.settings;let s=null,i=!1,n=null;if(e){s=x(e),n=this.getCursorPosition(e);i=!t.includes(e.view.getViewType())&&!!s}return{isValidSource:i,leaf:e,file:s,suggestion:null,cursor:n}}getSuggestionInfo(e){const t=this.getSourceInfoFromSuggestion(e);let s=t.leaf;t.isValidSource&&({leaf:s}=this.findMatchingLeaf(t.file,t.leaf));const i=this.getCursorPosition(s);return{...t,leaf:s,cursor:i}}getSourceInfoFromSuggestion(e){let t=null,s=null;const i=[r.SymbolList,r.Unresolved,r.WorkspaceList,r.CommandList,r.VaultList];e&&!i.includes(e.type)&&(t=e.file),c(e,"type",r.EditorList)&&(s=e.item);return{isValidSource:!!t,leaf:s,file:t,suggestion:e}}getCursorPosition(e){let t=null;if(R(e,"markdown")){const s=e.view;"preview"!==s.getMode()&&(t=s.editor.getCursor("head"))}return t}getTitleText(e){const t=function(e){let t=null;if(e){const{path:s}=e;if(t=s,"md"===e.extension){const e=s.lastIndexOf(".");-1!==e&&e!==s.length-1&&0!==e&&(t=s.slice(0,e))}}return t}(e),s=this.getFirstH1(e);return s?.heading??t}getFirstH1(e){return ce.getFirstH1(e,this.app.metadataCache)}static getFirstH1(e,t){let s=null;const i=t.getFileCache(e)?.headings?.filter((e=>1===e.level))??[];return i.length&&(s=i.reduce(((e,t)=>{const{line:s}=t.position.start;return s{let o=!1;if(i?.view){const r=a.includes(i.view.getViewType()),l=s||!r,d=n&&a.includes(t.view.getViewType());l&&(o=!n||!s&&d?x(i)===e:i===t)}return o},d=this.getActiveLeaf();if(l(d))i=d;else{const e=this.getOpenLeaves(o,r);i=[t,...e].find(l)}return{leaf:i??null,file:e,suggestion:null,isValidSource:!1}}extractTabNavigationType(e,t,s){const i=e?.shiftKey?"horizontal":"vertical",a=e?.key;let o=n.Keymap.isModEvent(e)??!1;return!0!==o&&"tab"!==o||("o"===a?o="window":"\\"===a&&(o="split")),o=this.applyTabCreationPreferences(o,t,s),{navType:o,splitDirection:i}}applyTabCreationPreferences(e,s=!1,i){let a=e;const{onOpenPreferNewTab:o,alwaysNewTabForSymbols:r,useActiveTabForSymbolsOnMobile:l}=this.settings;return!1===e&&(o?a=!s:i===t.SymbolList&&(a=n.Platform.isMobile?!l:r)),a}isMainPanelLeaf(e){const{workspace:t}=this.app,s=e?.getRoot();return s===t.rootSplit||s===t.floatingSplit}async activateLeaf(e,t){const{workspace:s}=this.app;try{await s.revealLeaf(e),s.setActiveLeaf(e,{focus:!0}),e.view.setEphemeralState({focus:!0,...t})}catch(t){const s=e?.getDisplayText();console.log(`Switcher++: error activating WorkspaceLeaf with title: ${s}`,t)}}getOpenLeaves(e,t,s){const i=[];return this.app.workspace.iterateAllLeaves((s=>{const n=s?.view?.getViewType();this.isMainPanelLeaf(s)?e?.includes(n)||i.push(s):t?.includes(n)&&i.push(s)})),s?.orderByAccessTime&&i.sort(((e,t)=>{const s=e?.activeTime??0;return(t?.activeTime??0)-s})),i}static async openFileInLeaf(e,t,s,i,n="vertical"){const a="split"===t?s.getLeaf(t,n):s.getLeaf(t);await a.openFile(e,i)}navigateToLeafOrOpenFile(e,t,s,i,n,a,o=!1){this.navigateToLeafOrOpenFileAsync(e,t,i,n,a,o).catch((e=>{console.log(`Switcher++: error navigating to open file. ${s}`,e)}))}async navigateToLeafOrOpenFileAsync(e,t,s,i,n,a=!1){const{leaf:o}=this.findMatchingLeaf(t,i,a),r=!!o,{navType:l,splitDirection:d}=this.extractTabNavigationType(e,r,n);await this.activateLeafOrOpenFile(l,t,o,s,d)}async activateLeafOrOpenFile(e,t,s,i,n){if(i=i??this.getOpenViewActiveState(),s&&!1===e){const e=i?.eState;await this.activateLeaf(s,e)}else await ce.openFileInLeaf(t,e,this.app.workspace,i,n)}renderPath(t,s,i,a,o){if(t&&s){const r=s.parent.isRoot();let l=this.settings.pathDisplayFormat,d=l===e.None||r&&this.settings.hidePathIfRoot;if(o&&(l=e.FolderPathFilenameOptional,d=!1),!d){const e=t.createDiv({cls:["suggestion-note","qsp-note"]}),o=this.getPathDisplayText(s,l,i),r=e.createSpan({cls:["qsp-path-indicator"]});n.setIcon(r,"folder");const d=e.createSpan({cls:"qsp-path"});n.renderResults(d,o,a)}}}getPathDisplayText(t,s,i){let a="";if(t){const{parent:o}=t,r=o.name,l=o.isRoot(),d=this.app.vault.getRoot().path;switch(s){case e.FolderWithFilename:a=l?`${t.name}`:n.normalizePath(`${r}/${t.name}`);break;case e.FolderOnly:a=l?d:r;break;case e.Full:a=t.path;break;case e.FolderPathFilenameOptional:i?(a=o.path,l||(a+=d)):a=this.getPathDisplayText(t,e.Full)}}return a}renderContent(e,t,s,i){const{contentEl:a,titleEl:o}=ce.createContentStructureElements(e);return n.renderResults(o,t,s,i),a}static createContentStructureElements(e){const t=e.createDiv({cls:["suggestion-content","qsp-content"]}),s=t.createDiv({cls:["suggestion-title","qsp-title"]});return{contentEl:t,titleEl:s}}static renderMarkdownContentAsync(e,t,s,i){ce.renderMarkdownContent(e,t,s,i,D.getRootComponent()).catch((e=>{console.log("Switcher++: error rendering markdown to html. ",e,`content: ${s}`)}))}static async renderMarkdownContent(e,t,s,i,a){const o=t.createSpan({cls:["qsp-rendered-container"]});if(await n.MarkdownRenderer.render(e,s,o,i,a),1===o.childNodes.length&&"P"===o.firstChild.nodeName){const e=o.firstChild;e.replaceWith(...Array.from(e.childNodes))}return o}addClassesToSuggestionContainer(e,t){const s=["mod-complex"];t&&s.push(...t),e?.addClasses(s)}splitSearchMatchesAtBasename(e,t){let s=null,i=null;const n=(e,t)=>{e.forEach((e=>{e[0]-=t,e[1]-=t}))};if(e&&t?.matches){const a=e.path.lastIndexOf(e.basename);if(a>=0){const{matches:e,score:o}=t,r=e[0][0],l=e[e.length-1][1];if(r>=a)s=t,n(s.matches,a);else if(l<=a)i=t;else{let t=e.length;for(;t--;){const r=e[t][0],l=t+1;if(e[t][1]<=a){i={score:o,matches:e.slice(0,l)},s={score:o,matches:e.slice(l)},n(s.matches,a);break}if(r{t=t??o;let s=0;return Object.prototype.hasOwnProperty.call(t,e)&&(s=Number(t[e]?.value)),isNaN(s)?0:s},h=(t,s)=>{let i=0;return(null!==t&&t===n||e[s])&&(i=c(s)),i};d+=h(r.Bookmark,"isBookmarked"),d+=h(r.EditorList,"isOpenInEditor"),d+=h(null,"isRecent"),d+=h(null,"isAttachment"),d+=c(a?.extension,l),u(e)&&(d+=c(`h${e.item?.level}`));const m=n.toString();d+=c(m),i.score+=Math.abs(i.score)/100*(100*d)}}return e}static updateWorkspaceEnvListStatus(e,t){if(e&&t?.file){const{file:s}=t;t.isOpenInEditor=e.openWorkspaceFiles?.has(s),t.isRecent=e.mostRecentFiles?.has(s),t.isBookmarked=e.fileBookmarks?.has(s),t.isAttachment=e.attachmentFileExtensions?.has(s.extension)}return t}renderFileCreationSuggestion(e,t){this.addClassesToSuggestionContainer(e);const s=this.renderContent(e,t,null),i=this.createFlairContainer(e);return i?.createSpan({cls:"suggestion-hotkey",text:"Enter to create"}),s}createFile(e,t){const{workspace:s}=this.app,{navType:i}=this.extractTabNavigationType(t),a=s.getActiveViewOfType(n.FileView);let o="";a?.file&&(o=a.file.path),s.openLinkText(e,o,i,{active:!0}).catch((e=>{console.log("Switcher++: error creating new file. ",e)}))}getOpenViewState(e,t){const s=this.getPreferredViewLinePosition(e),{eState:i}=this.getOpenViewLinePositionState(s),n=this.getOpenViewActiveState(t);return Object.assign(n.eState,i),n}getOpenViewActiveState(e){const{active:t,focus:s}=Object.assign({active:!0,focus:!0},e);return{active:t,eState:{active:t,focus:s}}}getPreferredViewLinePosition(e){const t={line:0,col:0,offset:0};return{start:t,end:t}}getOpenViewLinePositionState(e){const t=Object.assign({line:0,col:0,offset:0},e?.start),s=Object.assign({line:0,col:0,offset:0},e?.end),{line:i,col:n}=t;return{eState:{startLoc:t,endLoc:s,line:i,cursor:{from:{line:i,ch:n},to:{line:i,ch:n}}}}}}class he{constructor(e,t){this.useSimpleSearch=t,this.query=(e??"").trim().toLowerCase(),this.hasSearchTerm=!!this.query.length}static create(e,t=!1){return new he(e,t)}searchWithFallback(e,t){let s,i=l.None,n=null,a=this.searchAndDownrankSecondaryMatch(e);if(a.match)n=a.match,i=l.Primary,s=e;else if(t){const{basename:e,path:o}=t;a=this.searchAndDownrankSecondaryMatch(e,o),a.isPrimary?(i=l.Basename,s=e):a.match&&(i=l.Path,s=o),n=a.match}return{matchType:i,matchText:s,match:n}}searchAndDownrankSecondaryMatch(e,t){let s=!1,i=null;return e&&(i=this.executeSearch(e),s=!!i),!i&&t&&(i=this.executeSearch(t),i&&(i.score-=1)),{isPrimary:s,match:i}}executeSearch(e){const t=this.getSearchDelegate();return t?t(e):null}getSearchDelegate(){if(!this._searchDelegate){const{query:e,useSimpleSearch:t}=this;this._searchDelegate=t?n.prepareSimpleSearch(e):n.prepareFuzzySearch(e)}return this._searchDelegate}}class ue extends ce{getCommandString(e){return this.settings?.workspaceListCommand}validateCommand(e,s,i,n,a){const o=e.parsedCommand(t.WorkspaceList);return this.getEnabledWorkspacesPluginInstance()&&(e.mode=t.WorkspaceList,o.index=s,o.parsedInput=i,o.isValidated=!0),o}getSuggestions(e){const t=[];if(e){const{query:s,hasSearchTerm:i}=e.parsedInputQuery,a=he.create(s);this.getItems().forEach((e=>{let s=!0,n=null;i&&(({match:n}=a.searchWithFallback(e.id)),s=!!n),s&&t.push({type:r.WorkspaceList,item:e,match:n})})),i&&n.sortSearchResults(t)}return t}renderSuggestion(e,t){let s=!1;return e&&(this.addClassesToSuggestionContainer(t,["qsp-suggestion-workspace"]),this.renderContent(t,e.item.id,e.match),s=!0),s}onChooseSuggestion(e,t){let s=!1;if(e){const{id:t}=e.item,i=this.getEnabledWorkspacesPluginInstance();i&&i.loadWorkspace(t),s=!0}return s}onNoResultsCreateAction(e,s){const i=this.getEnabledWorkspacesPluginInstance();if(i){const s=e.parsedCommand(t.WorkspaceList)?.parsedInput;i.saveWorkspace(s),i.setActiveWorkspace(s)}return!0}getItems(){const e=[],t=this.getEnabledWorkspacesPluginInstance()?.workspaces;return t&&Object.keys(t).forEach((t=>e.push({id:t,type:"workspaceInfo"}))),e.sort(((e,t)=>e.id.localeCompare(t.id)))}getEnabledWorkspacesPluginInstance(){return ue.getEnabledWorkspacesPluginInstance(this.app)}static getEnabledWorkspacesPluginInstance(e){return v(e,"workspaces")}}class me extends ce{getCommandString(e){return""}validateCommand(e,t,s,i,n){throw new Error("Method not implemented.")}getSuggestions(e){throw new Error("Method not implemented.")}renderSuggestion(e,t){let s=!1;return m(e)?s=this.renderFileSuggestion(e,t):g(e)&&(s=this.renderAliasSuggestion(e,t)),e?.downranked&&t.addClass("mod-downranked"),s}onChooseSuggestion(e,t){let s=!1;if(e){const{file:i}=e;this.navigateToLeafOrOpenFile(t,i,`Unable to open file from SystemSuggestion ${i.path}`),s=!0}return s}renderFileSuggestion(e,t){let s=!1;if(e){const{file:i,matchType:n,match:a}=e;this.renderAsFileInfoPanel(t,["qsp-suggestion-file"],null,i,n,a),this.renderOptionalIndicators(t,e),s=!0}return s}renderAliasSuggestion(e,t){let s=!1;if(e){const{file:i,matchType:n,match:a}=e;this.renderAsFileInfoPanel(t,["qsp-suggestion-alias"],e.alias,i,n,a,!1);const o=this.renderOptionalIndicators(t,e);this.renderIndicator(o,["qsp-alias-indicator"],"lucide-forward"),s=!0}return s}addPropertiesToStandardSuggestions(e,t){const{match:s}=t;let i=l.None,n=null;s?.matches&&(g(t)?(i=l.Primary,n=t.alias):m(t)&&(i=l.Path,n=t.file.path)),t.matchType=i,t.matchText=n,ce.updateWorkspaceEnvListStatus(e,t)}static createUnresolvedSuggestion(e,t,s,i){const n={linktext:e,type:r.Unresolved,...t};return ce.applyMatchPriorityPreferences(n,s,i)}}class ge extends ce{getCommandString(e){return this.settings?.editorListCommand}validateCommand(e,s,i,n,a){e.mode=t.EditorList;const o=e.parsedCommand(t.EditorList);return o.index=s,o.parsedInput=i,o.isValidated=!0,o}getSuggestions(e){const t=[];if(e){const{query:s,hasSearchTerm:i}=e.parsedInputQuery,a=he.create(s);this.getItems().forEach((s=>{const n=x(s);let o=!0,r={matchType:l.None,match:null};const d=this.getPreferredTitle(s,this.settings.preferredSourceForTitle);i&&(r=a.searchWithFallback(d,n),o=r.matchType!==l.None),o&&t.push(this.createSuggestion(e.currentWorkspaceEnvList,s,n,r,d))})),i&&n.sortSearchResults(t)}return t}getPreferredTitle(e,t){return ge.getPreferredTitle(e,t,this.app.metadataCache)}static getPreferredTitle(e,t,s){const i=x(e);let n=e.getDisplayText();if("H1"===t&&i){const e=ge.getFirstH1(i,s);e&&(n=n.replace(i.basename,e.heading))}return n}getItems(){const{excludeViewTypes:e,includeSidePanelViewTypes:t,orderEditorListByAccessTime:s}=this.settings;return this.getOpenLeaves(e,t,{orderByAccessTime:s})}renderSuggestion(e,t){let s=!1;if(e){const{file:i,matchType:n,match:a}=e,o=[l.None,l.Primary].includes(n);this.renderAsFileInfoPanel(t,["qsp-suggestion-editor"],e.preferredTitle,i,n,a,o),this.renderOptionalIndicators(t,e),s=!0}return s}onChooseSuggestion(e,t){let s=!1;return e&&(this.navigateToLeafOrOpenFile(t,e.file,"Unable to reopen existing editor in new Leaf.",null,e.item,null,!0),s=!0),s}createSuggestion(e,t,s,i,n){return ge.createSuggestion(e,t,s,this.settings,this.app.metadataCache,n,i)}static createSuggestion(e,t,s,i,n,a,o){o=o??{matchType:l.None,match:null,matchText:null};let d={item:t,file:s,preferredTitle:a=a??null,type:r.EditorList,...o};return d=ce.updateWorkspaceEnvListStatus(e,d),ce.applyMatchPriorityPreferences(d,i,n)}}class pe extends ce{getCommandString(e){return this.settings?.bookmarksListCommand}validateCommand(e,s,i,n,a){const o=e.parsedCommand(t.BookmarksList);return this.getEnabledBookmarksPluginInstance()&&(e.mode=t.BookmarksList,o.index=s,o.parsedInput=i,o.isValidated=!0),o}getSuggestions(e){const t=[];if(e){const{query:s,hasSearchTerm:i}=e.parsedInputQuery,a=he.create(s),{allBookmarks:o}=this.getItems(e);o.forEach((s=>{let n=!0,o={matchType:l.None,match:null};i&&(o=a.searchWithFallback(s.bookmarkPath),n=o.matchType!==l.None),n&&t.push(this.createSuggestion(e.currentWorkspaceEnvList,s,o))})),i&&n.sortSearchResults(t)}return t}renderSuggestion(e,t){return!1}onChooseSuggestion(e,t){let s=!1;if(pe.isBookmarksPluginFileItem(e?.item)){const{file:i}=e;this.navigateToLeafOrOpenFile(t,i,`Unable to open file from BookmarkSuggestion ${i?.path}`),s=!0}return s}getPreferredTitle(e,t,s,i){let n=e.getItemTitle(t);if("H1"===i&&s){const e=this.getFirstH1(s);e&&(n=n.replace(/^[^#]*/,e.heading))}return n}getItems(e){const t=[],s=new Map,i=new Set,n=this.getEnabledBookmarksPluginInstance();if(n){const a=e?this.getActiveFacetIds(e):new Set,o=(e,r)=>{e?.forEach((e=>{if(pe.isBookmarksPluginGroupItem(e))o(e.items,`${r}${e.title}/`);else if(this.isFacetedWith(a,K[e.type])){let a;if(pe.isBookmarksPluginFileItem(e)){const t=this.getTFileByPath(e.path);if(t){a={item:e,bookmarkPath:null,file:t};const i=s.get(t)??[];i.push(a),s.set(t,i)}}else a={item:e,bookmarkPath:null,file:null},i.add(a);if(a){const s=this.getPreferredTitle(n,e,a.file,this.settings.preferredSourceForTitle);a.bookmarkPath=r+s,t.push(a)}}}))};o(n.items,"")}return{allBookmarks:t,fileBookmarks:s,nonFileBookmarks:i}}getEnabledBookmarksPluginInstance(){return v(this.app,"bookmarks")}createSuggestion(e,t,s){return pe.createSuggestion(e,t,this.settings,this.app.metadataCache,s)}static createSuggestion(e,t,s,i,n){let a={type:r.Bookmark,item:t.item,bookmarkPath:t.bookmarkPath,file:t.file,...n};return a=ce.updateWorkspaceEnvListStatus(e,a),ce.applyMatchPriorityPreferences(a,s,i)}static isBookmarksPluginFileItem(e){return c(e,"type","file")}static isBookmarksPluginGroupItem(e){return c(e,"type","group")}addPropertiesToStandardSuggestions(e,t){const{match:s,item:i}=t;let n=l.None,a=null;if(!t.file&&pe.isBookmarksPluginFileItem(i)){const e=i.path;t.file=this.getTFileByPath(e)}s?.matches&&(n=l.Primary,a=t.bookmarkPath),t.matchType=n,t.matchText=a,ce.updateWorkspaceEnvListStatus(e,t)}}class fe extends ce{getCommandString(e){return this.settings?.headingsListCommand}validateCommand(e,s,i,n,a){e.mode=t.HeadingsList;const o=e.parsedCommand(t.HeadingsList);return o.index=s,o.parsedInput=i,o.isValidated=!0,o}onChooseSuggestion(e,t){let s=!1;if(e){const i=this.getOpenViewState(e);this.navigateToLeafOrOpenFile(t,e.file,"Unable to navigate to heading for file.",i),s=!0}return s}getPreferredViewLinePosition(e){return e?.item?.position}renderSuggestion(e,t){let s=!1;if(e){const{item:i,file:n,match:a}=e,{app:r,settings:l}=this;this.addClassesToSuggestionContainer(t,["qsp-suggestion-headings",`qsp-headings-l${i.level}`]);const{contentEl:d,titleEl:c}=ce.createContentStructureElements(t);fe.renderHeadingContent(r,l,c,i,n,a),this.renderPath(d,n);const h=this.createFlairContainer(t);this.renderOptionalIndicators(t,e,h),this.renderIndicator(h,["qsp-headings-indicator"],null,o[i.level]),e.downranked&&t.addClass("mod-downranked"),s=!0}return s}static renderHeadingContent(e,t,s,i,a,o,r){const{heading:l}=i,{renderMarkdownContentInSuggestions:{isEnabled:d,renderHeadings:c}}=t;(r=r??(d&&c))?ce.renderMarkdownContentAsync(e,s,l,a.path):n.renderResults(s,l,o)}getAvailableFacets(e){const{settings:{shouldSearchHeadings:t,shouldSearchBookmarks:s,shouldSearchFilenames:i,shouldSearchRecentFiles:n,builtInSystemOptions:{showAttachments:a,showAllFileTypes:o}}}=this,r=a||o,l={[U.RecentFiles]:n,[U.Bookmarks]:s,[U.Filenames]:i,[U.Headings]:t,[U.ExternalFiles]:r};return this.getFacets(e.mode).filter((e=>(Object.prototype.hasOwnProperty.call(l,e.id)&&(e.isAvailable=l[e.id]),e.isAvailable)))}getSuggestions(e){let t=[];if(e){const{hasSearchTerm:s}=e.parsedInputQuery,{settings:i}=this,a=this.getActiveFacetIds(e),o=!!a.size;if(s||o){const{limit:s}=i,{app:{vault:o}}=this,r={headings:i.shouldSearchHeadings,allHeadings:i.searchAllHeadings,aliases:i.shouldShowAlias,bookmarks:i.shouldSearchBookmarks,filename:i.shouldSearchFilenames,filenameAsFallback:!i.strictHeadingsOnly,unresolved:!i.showExistingOnly};this.getItems([o.getRoot()],e,t,a,r),n.sortSearchResults(t),s>0&&t.length>s&&(t=t.slice(0,s))}else this.getSuggestionsForEditorsAndRecentFiles(e,t,new Set,{editors:!0,recentFiles:i.shouldSearchRecentFiles})}return t}getItems(e,t,s,i,n){const a=!!i.size,o=he.create(t.parsedInputQuery.query);this.getSuggestionsForEditorsAndRecentFiles(t,s,i,{editors:!1,recentFiles:!1});const r={fileBookmarks:n.bookmarks,nonFileBookmarks:n.bookmarks};this.getSuggestionsForBookmarks(t,o,s,i,r);const l={headings:n.headings,allHeadings:n.allHeadings,aliases:n.aliases,filename:n.filename,filenameAsFallback:n.filenameAsFallback};this.getSuggestionForFiles(t,o,e,s,i,l),n.unresolved&&!a&&this.addUnresolvedSuggestions(s,o)}getSuggestionsForBookmarks(e,t,s,i,n){const a=!!i.size,{fileBookmarks:o,nonFileBookmarks:r}=e.currentWorkspaceEnvList;if(a){const e=i.has(U.Bookmarks);n=Object.assign(n,{fileBookmarks:e,nonFileBookmarks:e})}const l=i=>{for(const n of i)this.addBookmarkSuggestion(e,s,t,n)};n.fileBookmarks&&o.forEach((e=>{l(e)})),n.nonFileBookmarks&&l(r)}getSuggestionForFiles(e,t,s,i,n,a){if(!!n.size){const e=this.isFacetedWith(n,U.Headings),t=this.isFacetedWith(n,U.ExternalFiles)||this.isFacetedWith(n,U.Filenames);let s=!1,i=!1;e&&(s=!0===a.allHeadings,i=!0===a.filenameAsFallback),a=Object.assign(a,{headings:e,aliases:!1,filename:t,allHeadings:s,filenameAsFallback:i})}else a=Object.assign({headings:!0,allHeadings:!0,aliases:!0,filename:!0,filenameAsFallback:!0},a);if([a.headings,a.aliases,a.filename].some((e=>!0===e))){const{excludeFolders:o}=this.settings,r=T(o);let l=Array.prototype.concat(s);for(;l.length>0;){const s=l.pop();S(s)?this.shouldIncludeFile(s,n)&&this.addSuggestionsForFile(e,t,i,s,a):r(s.path)||(l=l.concat(s.children))}}}addSuggestionsForFile(e,t,s,i,n){let a=!1;n.headings&&(a=this.addHeadingSuggestions(e,t,s,i,n.allHeadings)),(n.filename||!a&&n.filenameAsFallback)&&this.addFileSuggestions(e,t,s,i),n.aliases&&this.addAliasSuggestions(e,t,s,i)}shouldIncludeFile(e,t=new Set){let s=!1;if(e){const i=new Set(["md","canvas"]),{extension:n}=e,{app:{viewRegistry:a,metadataCache:o},settings:{excludeObsidianIgnoredFiles:r,fileExtAllowList:l,builtInSystemOptions:{showAttachments:d,showAllFileTypes:c}}}=this;if(!(r&&o.isUserIgnored(e.path)))if(t.has(U.ExternalFiles)){const e=d||c;s=!i.has(n)&&e}else{s=this.isExternalFileTypeAllowed(e,a,d,c,l)||i.has(n)}}return s}isExternalFileTypeAllowed(e,t,s,i,n){const{extension:a}=e;let o=t.isExtensionRegistered(a)?s:i;if(!o){o=new Set(n).has(a)}return o}addAliasSuggestions(e,t,s,i){const{metadataCache:n}=this.app,a=n.getFileCache(i)?.frontmatter;if(a){const n=H.getAliases(a);let o=n.length;for(;o--;){const a=n[o],{match:r}=t.searchWithFallback(a);r&&s.push(this.createAliasSuggestion(e,a,i,r))}}}addFileSuggestions(e,t,s,i){const{match:n,matchType:a,matchText:o}=t.searchWithFallback(null,i);n&&s.push(this.createFileSuggestion(e,i,n,a,o))}addBookmarkSuggestion(e,t,s,i){const n=s.searchWithFallback(i.bookmarkPath);if(n.match){const s=pe.createSuggestion(e.currentWorkspaceEnvList,i,this.settings,this.app.metadataCache,n);t.push(s)}}addHeadingSuggestions(e,t,s,i,n){const{metadataCache:a}=this.app,o=a.getFileCache(i)?.headings??[];let r=null,l=!1,d=o.length;for(;d--;){const a=o[d];let c=!1;if(n&&(c=this.matchAndPushHeading(e,t,s,i,a)),1===a.level){const{line:e}=a.position.start;(null===r||e{this.addOpenEditorSuggestions(s,e,a,t)}))}if(i.recentFiles){const i=e.currentWorkspaceEnvList?.mostRecentFiles;i?.forEach((i=>{this.shouldIncludeFile(i,s)&&this.addRecentFilesSuggestions(i,e,a,t)}))}}onNoResultsCreateAction(e,s){const i=e.parsedCommand(t.HeadingsList)?.parsedInput;return this.createFile(i,s),!0}}const ye={file:"lucide-file-text",text:"lucide-sticky-note",link:"lucide-globe",group:"create-group"};class be extends ce{getCommandString(e){const{settings:t}=this;return e?.useActiveEditorAsSource?t.symbolListActiveEditorCommand:t.symbolListCommand}validateCommand(e,s,i,n,a){const o=e.parsedCommand(t.SymbolList),r=this.getSourceInfoForSymbolOperation(n,a,0===s,e.sessionOpts);return r&&(e.mode=t.SymbolList,o.source=r,o.index=s,o.parsedInput=i,o.isValidated=!0),o}async getSuggestions(e){const s=[];if(e){this.inputInfo=e;const{query:i,hasSearchTerm:a}=e.parsedInputQuery,o=he.create(i),l=e.parsedCommand(t.SymbolList);(await this.getItems(l.source,a)).forEach((e=>{let t=!0,i=null;if(a){const s=be.getSuggestionTextForSymbol(e);({match:i}=o.searchWithFallback(s)),t=!!i}if(t){const{file:t}=l.source;s.push({type:r.SymbolList,file:t,item:e,match:i})}})),a&&n.sortSearchResults(s)}return s}renderSuggestion(e,t){let s=!1;if(e){const{item:i,file:a,match:o}=e,r=["qsp-suggestion-symbol"];Object.prototype.hasOwnProperty.call(i,"indentLevel")&&this.settings.symbolsInLineOrder&&!this.inputInfo?.parsedInputQuery?.hasSearchTerm&&r.push(`qsp-symbol-l${i.indentLevel}`),this.addClassesToSuggestionContainer(t,r);const{titleEl:l}=ce.createContentStructureElements(t);if(y(i.symbol))fe.renderHeadingContent(this.app,this.settings,l,i.symbol,a,o);else{const e=be.getSuggestionTextForSymbol(i);n.renderResults(l,e,o)}this.addSymbolIndicator(i,t),s=!0}return s}onChooseSuggestion(e,s){let i=!1;if(e){const n=this.inputInfo.parsedCommand(),{leaf:a,file:o}=n.source,r=this.getOpenViewState(e),{item:l}=e;this.navigateToLeafOrOpenFileAsync(s,o,r,a,t.SymbolList).then((()=>{const{symbol:e}=l;be.isCanvasSymbolPayload(l,e)&&this.zoomToCanvasNode(this.getActiveLeaf().view,e)}),(e=>{console.log(`Switcher++: Unable to navigate to symbols for file ${o?.path}`,e)})),i=!0}return i}reset(){this.inputInfo=null}getAvailableFacets(e){const i=e.parsedCommand(t.SymbolList),n=be.isCanvasFile(i?.source?.file),a=this.getFacets(e.mode),o=new Set(Object.values(W)),r=new Set(Object.values(s).filter((e=>isNaN(Number(e)))));return a.forEach((e=>{const{id:t}=e;e.isAvailable=n?o.has(t):r.has(t)})),a.filter((e=>e.isAvailable))}zoomToCanvasNode(e,t){if(be.isCanvasView(e)&&t){const s=e.canvas,i=s.nodes.get(t.id);s.selectOnly(i),s.zoomToSelection()}}getPreferredViewLinePosition(e){let t=super.getPreferredViewLinePosition();if(e?.item?.symbol){const{item:s}=e;be.isCanvasSymbolPayload(s,s.symbol)||(t=s.symbol.position)}return t}getSourceInfoForSymbolOperation(e,s,i,n){const a=this.inputInfo;let o=null,r=t.Standard;a&&(o=a.parsedCommand().source,r=a.mode);const l=r===t.SymbolList&&!!o,d=this.getEditorInfo(s),c=this.getSuggestionInfo(e);let h=null;return l?h=o:c.isValidSource&&!n.useActiveEditorAsSource?h=c:d.isValidSource&&i&&(h=d),h}async getItems(e,t){let s=[],i=!1,n=!1;return t||({selectNearestHeading:n,symbolsInLineOrder:i}=this.settings),s=await this.getSymbolsFromSource(e,i),n&&be.FindNearestHeadingSymbol(s,e),s}static FindNearestHeadingSymbol(e,t){const s=t?.cursor?.line;if(s){let t=null;const i=e.filter((e=>y(e.symbol)));i.length&&(t=i.reduce(((e,t)=>{const{line:i}=t.symbol.position.start;return i>(e?e.symbol.position.start.line:-1)&&i<=s?t:e}))),t&&(t.isSelected=!0)}}async getSymbolsFromSource(e,t){const{app:{metadataCache:i},inputInfo:n}=this,a=[];if(e?.file){const{file:o}=e,r=this.getActiveFacetIds(n);if(be.isCanvasFile(o))await this.addCanvasSymbolsFromSource(o,a,r);else{const e=i.getFileCache(o);if(e){const i=(e=[],t)=>{this.shouldIncludeSymbol(t,r)&&e.forEach((e=>a.push({type:"symbolInfo",symbol:e,symbolType:t})))};i(e.headings,s.Heading),i(e.tags,s.Tag),this.addLinksFromSource(e.links,a,r),i(e.embeds,s.Embed),await this.addCalloutsFromSource(o,e.sections?.filter((e=>"callout"===e.type)),a,r),t&&be.orderSymbolsByLineNumber(a)}}}return a}shouldIncludeSymbol(e,t){let i=!1;return i="string"==typeof e?this.isFacetedWith(t,e):this.settings.isSymbolTypeEnabled(e)&&this.isFacetedWith(t,s[e]),i}async addCanvasSymbolsFromSource(e,t,i){let n;try{const t=await this.app.vault.cachedRead(e);n=JSON.parse(t).nodes}catch(t){console.log(`Switcher++: error reading file to extract canvas node information. ${e.path} `,t)}Array.isArray(n)&&n.forEach((e=>{this.shouldIncludeSymbol(W[e.type],i)&&t.push({type:"symbolInfo",symbolType:s.CanvasNode,symbol:{...e}})}))}async addCalloutsFromSource(e,t,i,n){const{app:{vault:a}}=this;if(this.shouldIncludeSymbol(s.Callout,n)&&t?.length&&e){let n=null;try{n=await a.cachedRead(e)}catch(t){console.log(`Switcher++: error reading file to extract callout information. ${e.path} `,t)}if(n)for(const e of t){const{start:t,end:a}=e.position,o=n.slice(t.offset,a.offset).match(/^> \[!([^\]]+)\][+-]?(.*?)(?:\n>|$)/);if(o){const t=o[1],n={calloutTitle:o[o.length-1].trim(),calloutType:t,...e};i.push({type:"symbolInfo",symbolType:s.Callout,symbol:n})}}}}addLinksFromSource(e,t,i){const{settings:n}=this;if(e=e??[],this.shouldIncludeSymbol(s.Link,i))for(const i of e){const e=F(i);(n.excludeLinkSubTypes&e)===e||t.push({type:"symbolInfo",symbol:i,symbolType:s.Link})}}static orderSymbolsByLineNumber(e){const t=e.sort(((e,t)=>{const{start:s}=e.symbol.position,{start:i}=t.symbol.position,n=s.line-i.line;return 0===n?s.col-i.col:n}));let s=0;return t.forEach((e=>{let t=0;y(e.symbol)?(s=e.symbol.level,t=e.symbol.level-1):t=s,e.indentLevel=t})),t}static getSuggestionTextForSymbol(e){const{symbol:t}=e;let s;if(y(t))s=t.heading;else if(c(t,"tag"))s=t.tag.slice(1);else if(b(t))s=t.calloutTitle;else if(be.isCanvasSymbolPayload(e,t))s=be.getSuggestionTextForCanvasNode(t);else{const e=t;({link:s}=e);const{displayText:i}=e;i&&i!==s&&(s+=`|${i}`)}return s}static getSuggestionTextForCanvasNode(e){let t="";const s={file:()=>e.file,text:()=>e.text,link:()=>e.url,group:()=>e.label}[e?.type];return s&&(t=s()),t}addSymbolIndicator(e,t){const{symbolType:s,symbol:i}=e,r=["qsp-symbol-indicator"],l=this.createFlairContainer(t);if(b(i)){r.push("suggestion-flair","callout","callout-icon","svg-icon");const e=l.createSpan({cls:r,attr:{"data-callout":i.calloutType}}),t=e.getCssPropertyValue("--callout-icon");n.setIcon(e,t)}else if(be.isCanvasSymbolPayload(e,i)){const e=ye[i.type];this.renderIndicator(l,r,e,null)}else{let e;e=y(i)?o[i.level]:a[s],this.renderIndicator(l,r,null,e)}}static isCanvasSymbolPayload(e,t){return e.symbolType===s.CanvasNode}static isCanvasFile(e){return"canvas"===e?.extension}static isCanvasView(e){return"canvas"===e?.getViewType()}}class Se extends ce{getCommandString(e){return this.settings?.commandListCommand}validateCommand(e,s,i,n,a){const o=e.parsedCommand(t.CommandList);return this.getEnabledCommandPalettePluginInstance()&&(e.mode=t.CommandList,o.index=s,o.parsedInput=i,o.isValidated=!0),o}getSuggestions(e){const t=[];if(e){const{query:s,hasSearchTerm:i}=e.parsedInputQuery,a=he.create(s);this.getItems(e,i).forEach((e=>{let s=!0,n=null;i&&(({match:n}=a.searchWithFallback(e.cmd.name)),s=!!n),s&&t.push(this.createSuggestion(e,n))})),i&&n.sortSearchResults(t)}return t}renderSuggestion(e,t){let s=!1;if(e){const{item:i,match:n,isPinned:a,isRecent:o}=e;this.addClassesToSuggestionContainer(t,["qsp-suggestion-command"]),this.renderContent(t,i.name,n);const r=this.createFlairContainer(t);this.renderHotkeyForCommand(i.id,this.app,r),i.icon&&this.renderIndicator(r,[],i.icon),a?this.renderIndicator(r,[],"filled-pin"):o&&this.renderOptionalIndicators(t,e,r),s=!0}return s}renderHotkeyForCommand(e,t,s){try{const{hotkeyManager:i}=t;if(i.getHotkeys(e)||i.getDefaultHotkeys(e)){const t=i.printHotkeyForCommand(e);t?.length&&s.createEl("kbd",{cls:"suggestion-hotkey",text:t})}}catch(t){console.log("Switcher++: error rendering hotkey for command id: ",e,t)}}onChooseSuggestion(e){let t=!1;if(e){const{item:s}=e;this.app.commands.executeCommandById(s.id),this.saveUsageToList(s.id,Se.recentlyUsedCommandIds),t=!0}return t}saveUsageToList(e,t){if(t){const s=t.indexOf(e);s>-1&&t.splice(s,1),t.unshift(e),t.splice(this.settings.maxRecentCommands)}}getItems(e,t){let s=[];const i=this.getActiveFacetIds(e);if(!!i.size)s=this.getPinnedAndRecentCommands(i);else if(t)s=this.getAllCommands();else{const e=this.getPinnedAndRecentCommands(i);s=e.length?e:this.getAllCommands()}return s}getPinnedAndRecentCommands(e){const t=[],s=this.getPinnedCommandIds(),i=this.getRecentCommandIds(),n=e=>{let t=null;const n=this.app.commands.findCommand(e);return n&&(t={isPinned:s.has(e),isRecent:i.has(e),cmd:n}),t},a=(s,i)=>{this.isFacetedWith(e,s)&&i.forEach((e=>{const s=n(e);s&&t.push(s)}))};a(j.Pinned,Array.from(s));const o=this.isFacetedWith(e,j.Pinned),r=Array.from(i).filter((e=>!o||o&&!s.has(e)));return"asc"===this.settings.recentCommandDisplayOrder&&r.reverse(),a(j.Recent,r),t}getAllCommands(){const e=this.getPinnedCommandIds(),t=this.getRecentCommandIds();return this.app.commands.listCommands()?.sort(((e,t)=>e.name.localeCompare(t.name))).map((s=>({isPinned:e.has(s.id),isRecent:t.has(s.id),cmd:s})))}getPinnedCommandIds(){const e=this.getEnabledCommandPalettePluginInstance()?.options?.pinned;return new Set(e??[])}getRecentCommandIds(){return new Set(Se.recentlyUsedCommandIds)}createSuggestion(e,t){const{cmd:s,isPinned:i,isRecent:n}=e,a={type:r.CommandList,item:s,isPinned:i,isRecent:n,match:t};return this.applyMatchPriorityPreferences(a)}getEnabledCommandPalettePluginInstance(){return Se.getEnabledCommandPalettePluginInstance(this.app)}static getEnabledCommandPalettePluginInstance(e){return v(e,"command-palette")}}Se.recentlyUsedCommandIds=[];class ke extends ce{getCommandString(e){const{settings:t}=this;return e?.useActiveEditorAsSource?t.relatedItemsListActiveEditorCommand:t.relatedItemsListCommand}validateCommand(e,s,i,n,a){const o=e.parsedCommand(t.RelatedItemsList),r=this.getSourceInfo(n,a,0===s,e.sessionOpts);return r&&(e.mode=t.RelatedItemsList,o.source=r,o.index=s,o.parsedInput=i,o.isValidated=!0),o}getSuggestions(e){const s=[];if(e){this.inputInfo=e;const i=he.create(e.parsedInputQuery.query),a=e.parsedCommand(t.RelatedItemsList);this.getItems(a.source,e).forEach((t=>{const n=this.searchAndCreateSuggestion(e,i,t);n&&s.push(n)})),i.hasSearchTerm&&n.sortSearchResults(s)}return s}renderSuggestion(e,t){let s=!1;if(e){const{file:i,matchType:n,match:a,item:o}=e,r=new Map([[d.Backlink,"links-coming-in"],[d.DiskLocation,"folder-tree"],[d.OutgoingLink,"links-going-out"]]);t.setAttribute("data-relation-type",o.relationType),this.renderAsFileInfoPanel(t,["qsp-suggestion-related"],e.preferredTitle,i,n,a);const l=this.renderOptionalIndicators(t,e);e.item.count&&this.renderIndicator(l,[],null,`${e.item.count}`),this.renderIndicator(l,["qsp-related-indicator"],r.get(o.relationType)),s=!0}return s}onChooseSuggestion(e,t){let s=!1;if(e){const{file:i}=e;this.navigateToLeafOrOpenFile(t,i,`Unable to open related file ${i.path}`),s=!0}return s}getPreferredTitle(e,t){let s=null;const{file:i,unresolvedText:n}=e;if(i)"H1"===t&&(s=this.getFirstH1(i)?.heading??null);else{!!n?.length&&(s=n)}return s}searchAndCreateSuggestion(e,t,s){const{file:i,unresolvedText:n}=s;let a={matchType:l.None,match:null};const o=null===i&&n?.length,{currentWorkspaceEnvList:r}=e,{settings:d,app:{metadataCache:c}}=this,h=this.getPreferredTitle(s,d.preferredSourceForTitle);return t.hasSearchTerm&&(a=t.searchWithFallback(h,i),a.matchType===l.None)?null:o?me.createUnresolvedSuggestion(h,a,d,c):this.createSuggestion(r,s,a,h)}getItems(e,t){const s=[],{metadataCache:i}=this.app,{file:n,suggestion:a}=e,o=new Set(this.settings.enabledRelatedItems),r=this.getActiveFacetIds(t),l=e=>o.has(e)&&this.isFacetedWith(r,e);if(l(d.Backlink)){let e=n?.path,t=i.resolvedLinks;p(a)&&(e=a.linktext,t=i.unresolvedLinks),this.addBacklinks(e,t,s)}return l(d.DiskLocation)&&this.addRelatedDiskFiles(n,s),l(d.OutgoingLink)&&this.addOutgoingLinks(n,s),s}addRelatedDiskFiles(e,t){const{excludeRelatedFolders:s,excludeOpenRelatedFiles:i}=this.settings;if(e){const n=T(s);let a=[...e.parent.children];for(;a.length>0;){const s=a.pop();if(S(s)){s===e||i&&!!this.findMatchingLeaf(s).leaf||t.push({file:s,relationType:d.DiskLocation})}else n(s.path)||(a=a.concat(s.children))}}}addOutgoingLinks(e,t){if(e){const s=new Map,i=new Map,{metadataCache:n}=this.app,a=n.getFileCache(e).links??[],o=e=>!!e&&!!(e.count+=1);a.forEach((a=>{const r=a.link,l=n.getFirstLinkpathDest(r,e.path);let c;l?o(i.get(l))||l===e||(c={file:l,relationType:d.OutgoingLink,count:1},i.set(l,c),t.push(c)):o(s.get(r))||(c={file:null,relationType:d.OutgoingLink,unresolvedText:r,count:1},s.set(r,c),t.push(c))}))}}addBacklinks(e,t,s){for(const[i,n]of Object.entries(t))if(i!==e&&Object.prototype.hasOwnProperty.call(n,e)){const t=n[e],a=this.getTFileByPath(i);a&&s.push({count:t,file:a,relationType:d.Backlink})}}reset(){this.inputInfo=null}getSourceInfo(e,s,i,n){const a=this.inputInfo;let o=null,r=t.Standard;a&&(o=a.parsedCommand().source,r=a.mode);const l=r===t.RelatedItemsList&&!!o,d=this.getEditorInfo(s),c=this.getSuggestionInfo(e);!c.isValidSource&&p(e)&&(c.isValidSource=!0);let h=null;return l?h=o:c.isValidSource&&!n.useActiveEditorAsSource?h=c:d.isValidSource&&i&&(h=d),h}createSuggestion(e,t,s,i){let n={item:t,file:t?.file,type:r.RelatedItemsList,preferredTitle:i,...s};return n=ce.updateWorkspaceEnvListStatus(e,n),this.applyMatchPriorityPreferences(n)}}class ve extends ce{constructor(){super(...arguments),this.mobileVaultChooserMarker={type:r.VaultList,match:null,item:null,pathSegments:null}}getCommandString(e){return this.settings?.vaultListCommand}validateCommand(e,s,i,n,a){e.mode=t.VaultList;const o=e.parsedCommand(t.VaultList);return o.index=s,o.parsedInput=i,o.isValidated=!0,o}getSuggestions(e){const t=[];if(e){const{query:s,hasSearchTerm:i}=e.parsedInputQuery,a=he.create(s);this.getItems().forEach((e=>{let s=!0;if(i){const t=a.searchWithFallback(null,e.pathSegments);Object.assign(e,t),s=!!t.match}s&&t.push(e)})),i&&n.sortSearchResults(t)}return t}renderSuggestion(e,t){let s=!1;return e&&(this.addClassesToSuggestionContainer(t,["qsp-suggestion-vault"]),s=!0,n.Platform.isDesktop?this.renderVaultSuggestion(e,t):e===this.mobileVaultChooserMarker&&this.renderMobileHintSuggestion(t)),s}renderMobileHintSuggestion(e){this.renderContent(e,"Show mobile vault chooser",null)}renderVaultSuggestion(e,t){const{pathSegments:s,matchType:i}=e;let{match:a}=e,o=null;i===l.Basename&&(o=a,a=null);const r=this.renderContent(t,s.basename,o).createDiv({cls:["suggestion-note","qsp-note"]}),d=r.createSpan({cls:["qsp-path-indicator"]}),c=r.createSpan({cls:"qsp-path"});n.setIcon(d,"folder"),n.renderResults(c,s.path,a)}onChooseSuggestion(e,t){let s=!1;return e&&(n.Platform.isDesktop?(this.openVaultOnDesktop(e.pathSegments?.path),s=!0):e===this.mobileVaultChooserMarker&&(this.app.openVaultChooser(),s=!0)),s}getItems(){const e=[];if(n.Platform.isDesktop)try{const t=this.getVaultListDataOnDesktop();for(const[s,{path:i,open:n}]of Object.entries(t)){const t=E(i),a={type:r.VaultList,match:null,item:s,isOpen:!!n,pathSegments:{basename:t,path:i}};e.push(a)}}catch(e){console.log("Switcher++: error parsing vault data. ",e)}else e.push(this.mobileVaultChooserMarker);return e.sort(((e,t)=>e.pathSegments.basename.localeCompare(t.pathSegments.basename)))}openVaultOnDesktop(e){if(n.Platform.isDesktop)try{window.require("electron").ipcRenderer.sendSync("vault-open",e,!1)}catch(t){console.log(`Switcher++: error opening vault with path: ${e} `,t)}}getVaultListDataOnDesktop(){let e=null;if(n.Platform.isDesktop)try{e=window.require("electron").ipcRenderer.sendSync("vault-list")}catch(e){console.log("Switcher++: error retrieving list of available vaults. ",e)}return e}}const Ce={};class we{get inputInfo(){return this._inputInfo}get previousInputHistory(){return Ce}constructor(e,s,i){this.app=e,this.settings=s,this.exKeymap=i,this.sessionOpts={},this.noResultActionModes=[t.HeadingsList,t.WorkspaceList];const a=new Map([[t.SymbolList,new be(e,s)],[t.WorkspaceList,new ue(e,s)],[t.HeadingsList,new fe(e,s)],[t.EditorList,new ge(e,s)],[t.BookmarksList,new pe(e,s)],[t.CommandList,new Se(e,s)],[t.RelatedItemsList,new ke(e,s)],[t.VaultList,new ve(e,s)],[t.Standard,new me(e,s)]]);this.handlersByMode=a,this.handlersByType=new Map([[r.CommandList,a.get(t.CommandList)],[r.EditorList,a.get(t.EditorList)],[r.HeadingsList,a.get(t.HeadingsList)],[r.RelatedItemsList,a.get(t.RelatedItemsList)],[r.Bookmark,a.get(t.BookmarksList)],[r.SymbolList,a.get(t.SymbolList)],[r.WorkspaceList,a.get(t.WorkspaceList)],[r.VaultList,a.get(t.VaultList)],[r.File,a.get(t.Standard)],[r.Alias,a.get(t.Standard)]]),this.handlersByCommand=new Map([[s.editorListCommand,a.get(t.EditorList)],[s.workspaceListCommand,a.get(t.WorkspaceList)],[s.headingsListCommand,a.get(t.HeadingsList)],[s.bookmarksListCommand,a.get(t.BookmarksList)],[s.commandListCommand,a.get(t.CommandList)],[s.symbolListCommand,a.get(t.SymbolList)],[s.symbolListActiveEditorCommand,a.get(t.SymbolList)],[s.relatedItemsListCommand,a.get(t.RelatedItemsList)],[s.vaultListCommand,a.get(t.VaultList)],[s.relatedItemsListActiveEditorCommand,a.get(t.RelatedItemsList)]]),this.debouncedGetSuggestions=n.debounce(this.getSuggestions.bind(this),s.headingsSearchDebounceMilli,!0),this.reset()}onOpen(){const{exKeymap:e,settings:t}=this;e.isOpen=!0,t.quickFilters?.shouldResetActiveFacets&&Object.values(t.quickFilters.facetList).forEach((e=>e.isActive=!1))}onClose(){this.exKeymap.isOpen=!1,D.unload()}setSessionOpenMode(e,t){this.reset(),e?.setSuggestions([]),this.sessionOpts=t??{}}setInitialInputForSession(e){const{mode:s}=this.sessionOpts;if(!s)return;this.sessionOpts.mode=null;const i=this.previousInputHistory[s]?.inputText,n=this.getHandler(s),a=s!==t.Standard?n.getCommandString(this.sessionOpts):"";if((s===t.CommandList&&this.settings.preserveCommandPaletteLastInput||s!==t.CommandList&&this.settings.preserveQuickSwitcherLastInput)&&i){e.value=i;const t=a?.length??0;e.setSelectionRange(t,e.value.length)}else a&&(e.value=a)}updateSuggestions(e,s,i){const{exKeymap:n,settings:a,sessionOpts:o}=this;let r=!1;this.debouncedGetSuggestions.cancel();const l=ce.getActiveLeaf(this.app.workspace),d=we.getActiveSuggestion(s),c=this.determineRunMode(e,d,l,o);this._inputInfo=c;const{mode:h}=c;return this.previousInputHistory[h]=c,this.updatedKeymapForMode(c,s,i,n,a,l),this.toggleMobileCreateFileButton(i,h,a),h!==t.Standard&&(h===t.HeadingsList&&c.parsedCommand().parsedInput?.length?this.debouncedGetSuggestions(c,s,i):this.getSuggestions(c,s,i),r=!0),r}toggleMobileCreateFileButton(e,s,i){if(!n.Platform.isMobile)return;const a=t[s];e.allowCreateNewFile=i.allowCreateNewFileInModeNames.includes(a),e.allowCreateNewFile||e.createButtonEl?.detach()}updatedKeymapForMode(e,t,s,i,n,a){const{mode:o}=e,r=this.getHandler(o),l=r?.getAvailableFacets(e)??[],d={mode:o,activeLeaf:a,facets:{facetList:l,facetSettings:n.quickFilters,onToggleFacet:((o,l)=>{if(l){const e=o.some((e=>!0===e.isActive));r.activateFacet(o,!e)}else r.activateFacet(o,!o[0].isActive);return this.updatedKeymapForMode(e,t,s,i,n,a),this.getSuggestions(e,t,s),!1}).bind(this)}};i.updateKeymapForMode(d)}renderSuggestion(e,s){const{inputInfo:i,settings:{overrideStandardModeRendering:n}}=this,{mode:a}=i,o=a===t.HeadingsList;let l=!1;const d=new Set([r.Unresolved]);if(null===e){if(o){const e=this.getHandler(a),t=i.parsedCommand(a)?.parsedInput;e.renderFileCreationSuggestion(s,t),l=!0}}else if(!d.has(e.type)&&(n||o||f(e))){const t=this.getHandler(e);t&&(l=t.renderSuggestion(e,s))}return l}onChooseSuggestion(e,s){const{inputInfo:i,settings:{overrideStandardModeBehaviors:n}}=this,{mode:a}=i,o=a===t.HeadingsList;let l=!1;const d=new Set([r.Unresolved]);if(null===e){if(this.noResultActionModes.includes(a)){const e=this.getHandler(a);l=!!e?.onNoResultsCreateAction(i,s)}}else if(!d.has(e.type)&&(n||o||f(e))){const t=this.getHandler(e);t&&(l=t.onChooseSuggestion(e,s))}return l}determineRunMode(e,s,i,n){const a=e??"",o=new de(a,t.Standard,n);return this.addWorkspaceEnvLists(o),0===a.length&&this.reset(),this.validatePrefixCommands(o,s,i,this.settings),o}getSuggestions(e,t,s){t.setSuggestions([]);const{mode:i}=e,n=this.getHandler(i).getSuggestions(e),a=n=>{n?.length?(t.setSuggestions(n),we.setActiveSuggestion(i,t),this.exKeymap?.renderQuickOpenFlairIcons(t.suggestions,this.settings)):this.noResultActionModes.includes(i)&&e.parsedCommand(i).parsedInput?s.onNoSuggestion():t.setSuggestions(null)};Array.isArray(n)?a(n):n.then((e=>{a(e)}),(e=>{console.log("Switcher++: error retrieving suggestions as Promise. ",e)}))}removeEscapeCommandCharFromInput(e,t,s){const i=e.inputTextSansEscapeChar.replace(new RegExp(`(?:${k(t)})(?:${k(s)})`),s);return e.inputTextSansEscapeChar=i,i}validatePrefixCommands(e,t,s,i){let n=null,a=null;const o=[i.symbolListActiveEditorCommand,i.relatedItemsListActiveEditorCommand],r=[i.editorListCommand,i.workspaceListCommand,i.headingsListCommand,i.bookmarksListCommand,i.commandListCommand,i.vaultListCommand].concat(o).map((e=>`(?:${k(e)})`)).sort(((e,t)=>t.length-e.length)),l=new RegExp(`^((?:${k(i.escapeCmdChar)})?)(${r.join("|")})`).exec(e.inputText);if(l){const t=!!l[1].length;n=l[2],t?(this.removeEscapeCommandCharFromInput(e,i.escapeCmdChar,n),n=null):a=this.getHandler(n)}if(!this.validateSourcedCommands(e,n,t,s,i)&&a){e.sessionOpts.useActiveEditorAsSource=o.includes(n);const i=e.inputTextSansEscapeChar.slice(n.length);a.validateCommand(e,l.index,i,t,s)}}validateSourcedCommands(e,t,s,i,n){let a=!1;const o=[],r=e.inputTextSansEscapeChar,l=[n.editorListCommand,n.headingsListCommand,n.bookmarksListCommand];if(!t||l.includes(t)){let t=null;const l=[n.symbolListCommand,n.relatedItemsListCommand].map((e=>`(?:${k(e)})`)).sort(((e,t)=>t.length-e.length)),d=new RegExp(`((?:${k(n.escapeCmdChar)})?)(${l.join("|")})`,"g");for(;null!==(t=d.exec(r));){const l=!!t[1].length,c=t[2];if(!l){const n=r.slice(d.lastIndex),l=this.getHandler(c);if(l){const r=l.validateCommand(e,t.index,n,s,i);a=!!r?.isValidated;const d=this.getSourcedHandlers().filter((e=>e!==l));o.push(...d)}break}this.removeEscapeCommandCharFromInput(e,n.escapeCmdChar,c)}}return this.resetSourcedHandlers(o.length?o:null),a}static setActiveSuggestion(e,s){if(e===t.SymbolList){const e=s.values.filter((e=>h(e))).findIndex((e=>e.item.isSelected));-1!==e&&(s.setSelectedItem(e,null),s.suggestions[s.selectedItem].scrollIntoView(!1))}}static getActiveSuggestion(e){let t=null;return e?.values&&(t=e.values[e.selectedItem]),t}reset(){this._inputInfo=new de,this.sessionOpts={},this.resetSourcedHandlers()}resetSourcedHandlers(e){(e=e??this.getSourcedHandlers()).forEach((e=>e?.reset()))}getSourcedHandlers(){return I().map((e=>this.getHandler(e)))}addWorkspaceEnvLists(e){if(e){const s=this.getHandler(t.EditorList).getItems(),i=s.map((e=>x(e))).filter((e=>!!e)).reduce(((e,t)=>e.add(t)),new Set),{fileBookmarks:n,nonFileBookmarks:a}=this.getHandler(t.BookmarksList).getItems(null),o=e.currentWorkspaceEnvList;o.openWorkspaceLeaves=new Set(s),o.openWorkspaceFiles=i,o.fileBookmarks=n,o.nonFileBookmarks=a,o.attachmentFileExtensions=this.getAttachmentFileExtensions(this.app.viewRegistry,this.settings.fileExtAllowList);const r=i.size+this.settings.maxRecentFileSuggestionsOnInit;o.mostRecentFiles=this.getRecentFiles(i,r)}return e}getAttachmentFileExtensions(e,t){const s=new Set;try{const i=new Set(["md","canvas",...t]);Object.keys(e.typeByExtension).reduce(((e,t)=>(i.has(t)||e.add(t),e)),s)}catch(e){console.log("Switcher++: error retrieving attachment list from ViewRegistry",e)}return s}getRecentFiles(e,t=75){e=e??new Set;const s=new Set;if(t>0){const{workspace:i,vault:n}=this.app,a=i.getRecentFiles({showMarkdown:!0,showCanvas:!0,showNonImageAttachments:!0,showImages:!0,maxCount:t});a?.forEach((t=>{const i=n.getAbstractFileByPath(t);S(i)&&!e.has(i)&&s.add(i)}))}return s}inputTextForStandardMode(e){const{mode:s,inputTextSansEscapeChar:i}=this.inputInfo;let n=e;return s===t.Standard&&i?.length&&(n=i),n}inputTextForFulltextSearch(){const{inputInfo:e}=this,s=e.mode;let i=null,n=e.inputTextSansEscapeChar;if(s!==t.Standard){const t=e.parsedCommand();n=t.parsedInput,I().includes(s)&&(i=t.source?.file)}return{mode:s,parsedInput:n,file:i}}addPropertiesToStandardSuggestions(e,s){if(!e||!s.overrideStandardModeBehaviors&&!s.overrideStandardModeRendering)return;const{currentWorkspaceEnvList:i}=this.inputInfo;for(let s=0;s{console.log(`Switcher++: error opening file (${i?.path}) in background. `,e)}))}getHandler(e){let t;const{handlersByMode:s,handlersByType:i,handlersByCommand:n}=this;return"number"==typeof e?t=s.get(e):c(e,"type")?t=i.get(e.type):"string"==typeof e&&(t=n.get(e)),t}}const Le={Enter:"↵",Backspace:"⌫",ArrowLeft:"←",ArrowUp:"↑",ArrowDown:"↓",ArrowRight:"→",Tab:"↹"},Ie={...Le,Mod:"Ctrl",Ctrl:"Ctrl",Meta:"Win",Alt:"Alt",Shift:"Shift"},Ee={...Le,Mod:"⌘",Ctrl:"⌃",Meta:"⌘",Alt:"⌥",Shift:"⇧"},Te=[t.EditorList,t.HeadingsList,t.RelatedItemsList,t.BookmarksList,t.SymbolList],Fe=[t.CommandList,t.VaultList,t.WorkspaceList,...Te];class Ae{get isOpen(){return this._isOpen}set isOpen(e){this._isOpen=e}static get modKey(){return n.Platform.isMacOS?"Meta":"Ctrl"}static get keyDisplayStr(){return n.Platform.isMacOS?Ee:Ie}get exModeHandler(){return this.modal?.exMode}constructor(e,t,s,i,n){this.app=e,this.scope=t,this.chooser=s,this.modal=i,this.config=n,this.standardKeysInfo=[],this.customKeysInfo=[],this.savedStandardKeysInfo=[],this.customInstructionEls=new Map,this.facetKeysInfo=[],this.insertIntoEditorKeysInfo=[],this.initKeysInfo(n,t),this.renderModeTriggerInstructions(i.modalEl,n),this.standardInstructionsEl=i.modalEl.querySelector(".prompt-instructions")}initKeysInfo(e,t){this.standardKeysInfo.push(),this.addCustomKeymaps(this.config),this.removeDefaultTabKeyBinding(t,e),this.registerNavigationBindings(t,e.navigationKeys),this.registerEditorTabBindings(t),this.registerCloseWhenEmptyBindings(t,e),this.registerQuickOpenBindings(t,e),this.registerFulltextSearchBindings(t,e),this.registerOpenInBackgroundBindings(t,e)}removeDefaultTabKeyBinding(e,t){if(t?.removeDefaultTabBinding){const t=e.keys.find((({modifiers:e,key:t})=>null===e&&"Tab"===t));e.unregister(t)}}registerNavigationBindings(e,t){const s=(t,s)=>{t.forEach((({modifiers:t,key:i})=>{e.register(t,i,((e,t)=>(this.navigateItems(e,s),!1)))}))};s(t?.nextKeys??[],!0),s(t?.prevKeys??[],!1)}registerFacetBinding(e,s){const{mode:i,facets:n}=s;if(n?.facetList?.length){const{facetList:s,facetSettings:a,onToggleFacet:o}=n,{keyList:r,modifiers:l,resetKey:d,resetModifiers:c}=a;let h=0;const u=(t,s,i,n)=>e.register(t,s,(()=>o(i,n)));for(let e=0;e{e.register(t[0],t[1],this.useSelectedItem.bind(this))}))}registerCloseWhenEmptyBindings(e,t){const s=t.closeWhenEmptyKeys;s?.forEach((({modifiers:t,key:s})=>{e.register(t,s,this.closeModalIfEmpty.bind(this))}))}registerQuickOpenBindings(e,t){const{isEnabled:s,modifiers:i,keyList:n}=t.quickOpen;s&&n?.forEach((t=>{e.register(i,t,this.quickOpenByIndex.bind(this))}))}quickOpenByIndex(e,t){const s=this.config.quickOpen.keyList.indexOf(t.vkey);if(-1!==s){const{chooser:i}=this;i.values.length>s&&(i.setSelectedItem(s,e),this.useSelectedItem(e,t))}return!1}registerFulltextSearchBindings(e,t){const{isEnabled:s,searchKeys:i}=t.fulltextSearch;if(s){w(this.app)&&e.register(i.modifiers,i.key,this.LaunchSystemGlobalSearch.bind(this))}}LaunchSystemGlobalSearch(e,t){const{parsedInput:s,file:i}=this.modal.exMode.inputTextForFulltextSearch();let n="";return i&&(n=`path:"${i.path}" `),this.modal.close(),w(this.app)?.openGlobalSearch(`${n}${s}`),!1}registerOpenInBackgroundBindings(e,t){const{openInBackground:{isEnabled:s,openKeys:i}}=t;if(s){const t={tab:"open in background tab",vertical:"open in background to the right",horizontal:"open in background below",window:"open in background window"};i?.filter((e=>e.hotkey)).forEach((({openType:s,hotkey:i})=>{e.register(i.modifiers,i.key,(()=>this.openInBackground(this.chooser,s))),this.createCustomKeymap(t[s],Fe,i,null,!0,!0)}))}}openInBackground(e,t){let s,i="vertical";"vertical"===t||"horizontal"===t?(s="split",i=t):s=t;const n=e?.values?.[e.selectedItem];return this.exModeHandler.openSuggestionInBackground(n,s,i),!1}renderQuickOpenFlairIcons(e,t){const{isEnabled:s,modifiers:i,keyList:n}=t.quickOpen;if(s)for(let t=0;te.purpose===o.purpose)),!a){const{modifiers:e,key:t,purpose:s}=o;a={isInstructionOnly:!1,command:Ae.commandDisplayStr(e,t),modifiers:e,key:t,purpose:s},i.push(a)}a.eventListener=()=>{const{modal:e,chooser:t}=this;e.close();const i=t.values?.[t.selectedItem];return this.insertIntoEditorAsLink(i,s,n),!1},a.modes=[e]}}return a}updateKeymapForMode(e){const{mode:s,activeLeaf:i}=e,{modal:n,scope:a,customKeysInfo:o,facetKeysInfo:r,standardKeysInfo:l,savedStandardKeysInfo:d,config:{insertLinkInEditor:c,showModeTriggerInstructions:h}}=this;this.updateInsertIntoEditorCommand(s,i,o,c);const u=o.filter((e=>!e.isInstructionOnly));this.unregisterKeys(a,u),this.unregisterKeys(a,r),r.length=0;const m=u.filter((e=>e.modes?.includes(s)));s===t.Standard?this.updateKeymapForStandardMode(a,m,d):this.updateKeymapForCustomModes(a,m,l,e,n),this.showModeTriggerInstructions(n.modalEl,h)}updateKeymapForStandardMode(e,t,s){const i=s.map((([e,t])=>({eventListener:t.func,...e})));this.registerKeys(e,i),s.length=0,this.registerKeys(e,t),this.toggleStandardInstructions(!0)}updateKeymapForCustomModes(e,t,s,i,n){const{savedStandardKeysInfo:a,customKeysInfo:o,facetKeysInfo:r}=this,l=this.unregisterKeys(e,s);l.length&&a.push(...l),this.registerKeys(e,t),this.registerFacetBinding(e,i),this.showCustomInstructions(n,i,o,r)}registerKeys(e,t){t.forEach((({modifiers:t,key:s,eventListener:i})=>{e.register(t,s,i)}))}unregisterKeys(e,t){const s=[],i={};t.map((e=>{const{key:t,modifiers:s}=e,n=Ae.modifiersToKeymapInfoStr(s),a=i[t];a?a[n]=e:i[t]={[n]:e}}));let n=e.keys.length;for(;n--;){const t=e.keys[n],a=i[t.key],o=a?.[t.modifiers];o&&(e.unregister(t),s.push([o,t]))}return s}detachCustomInstructionEls(){this.customInstructionEls.forEach((e=>{e.detach()}))}toggleStandardInstructions(e){const{standardInstructionsEl:t}=this;let s="none";e&&(s="",this.detachCustomInstructionEls()),t&&(t.style.display=s)}showCustomInstructions(e,t,s,i){const{mode:n,facets:a}=t,{modalEl:o}=e,r=s.filter((e=>e.modes?.includes(n)));this.toggleStandardInstructions(!1),this.renderCustomInstructions(o,r),this.renderFacetInstructions(o,a?.facetSettings,i)}renderFacetInstructions(e,t,s){if(s?.length&&t.shouldShowFacetInstructions){const i=this.getCustomInstructionsEl("facets",e);i.empty(),e.appendChild(i);const n=`filters | ${Ae.commandDisplayStr(t.modifiers)}`;this.createPromptInstructionCommandEl(i,n),s.forEach((e=>{const{facet:s,command:n,purpose:a}=e;let o,r,l=null;s?(r=n,o=s.modifiers,s.isActive&&(l=["qsp-filter-active"])):(r=t.resetKey,o=t.resetModifiers);const d=o?`(${Ae.commandDisplayStr(o)}) ${r}`:`${r}`;this.createPromptInstructionCommandEl(i,d,a,[],l)}))}}renderCustomInstructions(e,t){const s=this.getCustomInstructionsEl("custom",e);s.empty(),e.appendChild(s),t.forEach((e=>{this.createPromptInstructionCommandEl(s,e.command,e.purpose)}))}showModeTriggerInstructions(e,t){if(t){const t=this.customInstructionEls.get("modes");t&&e.appendChild(t)}}renderModeTriggerInstructions(e,t){const s=new Map([[t.headingsListCommand,"heading list"],[t.editorListCommand,"editor list"],[t.bookmarksListCommand,"bookmark list"],[t.commandListCommand,"command list"],[t.workspaceListCommand,"workspace list"],[t.vaultListCommand,"vault list"],[t.symbolListActiveEditorCommand,"symbol list (active editor)"],[t.symbolListCommand,"symbol list (embedded)"],[t.relatedItemsListActiveEditorCommand,"related items (active editor)"],[t.relatedItemsListCommand,"related items (embedded)"]]),i=this.getCustomInstructionsEl("modes",e);i.detach(),i.empty(),this.createPromptInstructionCommandEl(i,"mode triggers |"),s.forEach(((e,t)=>{this.createPromptInstructionCommandEl(i,t,e)}))}getCustomInstructionsEl(e,t){let s=this.customInstructionEls.get(e);if(!s){const i={custom:["qsp-prompt-instructions"],facets:["qsp-prompt-instructions-facets"],modes:["qsp-prompt-instructions-modes"]};s=this.createPromptInstructionsEl(i[e],t),this.customInstructionEls.set(e,s)}return s}createPromptInstructionsEl(e,t){const s={cls:["prompt-instructions",...e]};return t.createDiv(s)}createPromptInstructionCommandEl(e,t,s,i,n){i=i??[];const a=e.createDiv();return a.createSpan({cls:["prompt-instruction-command",...i],text:t}),s&&(n=n??[],a.createSpan({cls:n,text:s})),a}closeModalIfEmpty(e,t){const{modal:s,config:i}=this;i.shouldCloseModalOnBackspace&&!s?.inputEl.value&&(s.close(),e.preventDefault())}navigateToCommandHotkeySelector(e,t){const{modal:s,chooser:i,app:{setting:n}}=this,a=i.values?.[i.selectedItem];if(a){n.open();const e=n.openTabById("hotkeys");if(e){s.close();const t=a.item.id;e.setQuery(`${t}`)}}return!1}togglePinnedCommand(e,t){const{app:s,config:i,chooser:n}=this,a=n.values?.[n.selectedItem],o=Se.getEnabledCommandPalettePluginInstance(s);if(a&&o){const e=a.item.id,t=n.suggestions[n.selectedItem];let r=o.options?.pinned;if(r){const t=r.indexOf(e);a.isPinned=-1===t,a.isPinned?r.push(e):r.splice(t,1)}else r=[e],o.options.pinned=r;o.saveSettings(o.plugin),t.empty(),new Se(s,i).renderSuggestion(a,t)}return!1}toggleMarkdownContentRendering(e,t){const{app:s,config:i,chooser:n}=this,a=n.values?.[n.selectedItem];let o=null,r=null;if(h(a)&&y(a.item.symbol)?(o=a.item.symbol,r=a.file):u(a)&&(o=a.item,r=a.file),o&&r){const e=n.suggestions[n.selectedItem].querySelector(".qsp-title"),t=!e.querySelector(".qsp-rendered-container");e.empty(),fe.renderHeadingContent(s,i,e,o,r,a.match,t)}return!1}openDefaultApp(e,t){const{app:s,config:{openDefaultApp:{excludeFileExtensions:i}},chooser:n}=this,a=n.values?.[n.selectedItem],o=M(a);if(o&&!i.includes(o.extension)){const e=`Switcher++: error opening file (${o.path}) in default app. `;s.openWithDefaultApp(o.path).catch((t=>{console.log(e,t)}))}return!1}saveCurrentAndOpenSelectedWorkspace(){const{app:e,chooser:t,modal:s}=this,i=t?.values?.[t.selectedItem];if(i&&i.item){const t=ue.getEnabledWorkspacesPluginInstance(e);t&&(t.saveWorkspace(t.activeWorkspace),t.loadWorkspace(i.item.id),s.close())}return!1}useSelectedItem(e,t){return this.chooser.useSelectedItem(e),!1}insertIntoEditorAsLink(e,t,s){const{app:{workspace:i,fileManager:a,vault:o}}=this,r=i.getActiveViewOfType(n.MarkdownView),l=r?.leaf===t,d=r?.file;if(l&&d){const t=O(a,o,e,d.path,s);t&&r.editor?.replaceSelection(t)}}navigateItems(e,t){const{isOpen:s,chooser:i}=this;if(s){let s=i.selectedItem;s=t?++s:--s,i.setSelectedItem(s,e)}}static commandDisplayStr(e,t){const{keyDisplayStr:s}=this;let i=null,n=null;return e&&(i=e.map((e=>s[e]?.toLocaleLowerCase())).sort().join(" ")),t&&(n=Object.prototype.hasOwnProperty.call(s,t)?s[t]:t),[i,n].filter((e=>e)).join(" ")}static modifiersToKeymapInfoStr(e){return e?.map((e=>"Mod"===e?this.modKey:e)).sort().join(",")}createCustomKeymap(e,t,s,i,n=!0,a=!1){let o=null;if(s){const{modifiers:r,key:l}=s;o={modes:t,modifiers:r,key:l,eventListener:i,purpose:e,command:Ae.commandDisplayStr(r,l),isInstructionOnly:a},n&&this.customKeysInfo.push(o)}return o}addCustomKeymaps(e){const{quickOpen:s}=e,i=s?.keyList;if(i?.length){const e=`${i[0]}~${i[i.length-1]}`;this.createCustomKeymap("open nth item",Fe,{modifiers:s.modifiers,key:e},null,s.isEnabled,!0)}this.createCustomKeymap("open in new tab",Te,{modifiers:["Mod"],key:"Enter"},null,!0,!0),this.createCustomKeymap("open to the right",Te,{modifiers:["Mod"],key:"\\"},null,!0,!0),this.createCustomKeymap("open below",Te,{modifiers:["Mod","Shift"],key:"\\"},null,!0,!0),this.createCustomKeymap("open in new window",Te,{modifiers:["Mod"],key:"o"},null,!0,!0),this.createCustomKeymap("execute command",[t.CommandList],{modifiers:[],key:"Enter"},null,!0,!0),this.createCustomKeymap("open workspace",[t.WorkspaceList],{modifiers:[],key:"Enter"},null,!0,!0),this.createCustomKeymap("save and switch workspace",[t.WorkspaceList],e.saveWorkspaceAndSwitchKeys,this.saveCurrentAndOpenSelectedWorkspace.bind(this)),this.createCustomKeymap("set hotkey",[t.CommandList],e.navigateToHotkeySelectorKeys,this.navigateToCommandHotkeySelector.bind(this)),this.createCustomKeymap("toggle pinned",[t.CommandList],e.togglePinnedCommandKeys,this.togglePinnedCommand.bind(this));const{renderMarkdownContentInSuggestions:n}=e;this.createCustomKeymap("toggle preview (selected heading)",[t.HeadingsList,t.SymbolList],n.toggleContentRenderingKeys,this.toggleMarkdownContentRendering.bind(this),n.isEnabled);const{openDefaultApp:a}=e;this.createCustomKeymap("open default app",Te,a.openInDefaultAppKeys,this.openDefaultApp.bind(this),a.isEnabled);const{fulltextSearch:o}=e;this.createCustomKeymap("fulltext search",Fe,o.searchKeys,null,o.isEnabled,!0)}}class xe{static installMobileLauncherOverride(e,t,s){let i=null;if(!(n.Platform.isMobile&&t.isEnabled&&t.isMobileButtonEnabled)||xe.coreMobileLauncherButtonEl)return null;const a=function(e,t){let s=null;const i=e?.mobileNavbar?.containerEl;return i&&(s=i.querySelector(X.defaults.mobileLauncher.coreLauncherButtonSelector),s||(s=i.querySelector(t.coreLauncherButtonSelector))),s}(e,t);if(a){const e=function(e,t,s){let i=null;if(e&&(i=e.cloneNode(!0),i)){const{iconName:e,coreLauncherButtonIconSelector:a}=t;if(i.addClass("qsp-mobile-launcher-button"),i.addEventListener("click",s),e?.length){const t=i.querySelector(a);t&&n.setIcon(t,e)}}return i}(a,t,s);(function(e,t){let s=!1;if(e&&t){const i=t.style.display;t.style.display="none",e.insertAdjacentElement("beforebegin",t)&&(e.remove(),s=!0),t.style.display=i}return s})(a,e)&&(xe.coreMobileLauncherButtonEl=a,xe.qspMobileLauncherButtonEl=e,i=e)}return i}static removeMobileLauncherOverride(){let e=!1;if(!xe.coreMobileLauncherButtonEl)return e;if(xe.qspMobileLauncherButtonEl?.parentElement){const t=xe.qspMobileLauncherButtonEl,s=xe.coreMobileLauncherButtonEl,i=s.style.display;s.style.display="none",t.insertAdjacentElement("beforebegin",s)&&(t.remove(),xe.qspMobileLauncherButtonEl=null,xe.coreMobileLauncherButtonEl=null,e=!0),s.style.display=i}return e}}class Oe{static installEmptyTabMonitor(e,t){if(!t?.isEnabled)return;const{workspace:s}=e.app;Oe.layoutChangeEventRef=s.on("layout-change",(()=>{Oe.updateEmptyTabs(s,t)})),e.registerEvent(Oe.layoutChangeEventRef),s.onLayoutReady((()=>{Oe.updateEmptyTabs(s,t)}))}static removeEmptyTabButtons(e){e.offref(Oe.layoutChangeEventRef),Oe.layoutChangeEventRef=null;const{emptyLeaves:t}=Oe;for(const e of t.keys())t.get(e)?.detach(),t.delete(e)}static updateEmptyTabs(e,t){if(!t.isEnabled)return;const{buttonLabel:s,onclickListener:i}=t;e.iterateAllLeaves((e=>{const{emptyLeaves:t}=Oe;if(R(e,"empty")&&!t.has(e)){const{containerEl:n}=e.view,a=function(e,t,s){let i=null;const n=e.querySelector(".empty-state-action-list");return n&&(i=n.createDiv({cls:["empty-state-action","tappable","qsp-empty-state-action-launch"],text:t}),i.addEventListener("click",s),n.firstElementChild!==i&&n.insertAfter(i,n.firstElementChild)),i}(n,s,i);a&&t.set(e,a)}}))}}Oe.emptyLeaves=new Map;const Pe=[{id:"switcher-plus:open",name:"Open in Standard Mode",mode:t.Standard,iconId:"lucide-file-search",ribbonIconEl:null},{id:"switcher-plus:open-editors",name:"Open in Editor Mode",mode:t.EditorList,iconId:"lucide-file-edit",ribbonIconEl:null},{id:"switcher-plus:open-symbols",name:"Open Symbols for selected suggestion or editor",mode:t.SymbolList,iconId:"lucide-dollar-sign",ribbonIconEl:null},{id:"switcher-plus:open-symbols-active",name:"Open Symbols for the active editor",mode:t.SymbolList,iconId:"lucide-dollar-sign",ribbonIconEl:null,sessionOpts:{useActiveEditorAsSource:!0}},{id:"switcher-plus:open-workspaces",name:"Open in Workspaces Mode",mode:t.WorkspaceList,iconId:"lucide-album",ribbonIconEl:null},{id:"switcher-plus:open-headings",name:"Open in Headings Mode",mode:t.HeadingsList,iconId:"lucide-file-search",ribbonIconEl:null},{id:"switcher-plus:open-starred",name:"Open in Bookmarks Mode",mode:t.BookmarksList,iconId:"lucide-bookmark",ribbonIconEl:null},{id:"switcher-plus:open-commands",name:"Open in Commands Mode",mode:t.CommandList,iconId:"run-command",ribbonIconEl:null},{id:"switcher-plus:open-related-items",name:"Open Related Items for selected suggestion or editor",mode:t.RelatedItemsList,iconId:"lucide-file-plus-2",ribbonIconEl:null},{id:"switcher-plus:open-related-items-active",name:"Open Related Items for the active editor",mode:t.RelatedItemsList,iconId:"lucide-file-plus-2",ribbonIconEl:null,sessionOpts:{useActiveEditorAsSource:!0}},{id:"switcher-plus:open-vaults",name:"Open in Vaults Mode",mode:t.VaultList,iconId:"vault",ribbonIconEl:null}];class Me extends n.Plugin{async onload(){const e=new X(this);await e.updateDataAndLoadSettings(),this.options=e,this.addSettingTab(new le(this.app,this,e)),this.registerRibbonCommandIcons(),this.updateLauncherButtonOverrides(!0),Pe.forEach((({id:e,name:t,mode:s,iconId:i,sessionOpts:n})=>{this.registerCommand(e,t,s,i,n)}))}onunload(){this.updateLauncherButtonOverrides(!1)}registerCommand(e,t,s,i,n){this.addCommand({id:e,name:t,icon:i,checkCallback:e=>this.createModalAndOpen(s,e,n)})}registerRibbonCommandIcons(){Pe.forEach((e=>{e.ribbonIconEl?.remove(),e.ribbonIconEl=null}));const e=Pe.reduce(((e,t)=>(e[t.mode]=t,e)),{});this.options.enabledRibbonCommands.forEach((s=>{const i=e[t[s]];i&&(i.ribbonIconEl=this.addRibbonIcon(i.iconId,i.name,(()=>{this.createModalAndOpen(i.mode,!1)})))}))}createModalAndOpen(e,t,s){if(!t){const t=function(e,t){const s=C(e)?.QuickSwitcherModal;return s?new class extends s{get exMode(){return this._exMode}constructor(e,t){super(e,t.options.builtInSystemOptions),this.plugin=t;const{options:s}=t;s.shouldShowAlias=this.shouldShowAlias;const i=new Ae(e,this.scope,this.chooser,this,s);this._exMode=new we(e,s,i)}openInMode(e){this.exMode.setSessionOpenMode(this.chooser,e),super.open()}onOpen(){this.exMode.onOpen(),super.onOpen()}onClose(){super.onClose(),this.exMode.onClose()}updateSuggestions(){const{exMode:e,inputEl:t,chooser:s}=this;e.setInitialInputForSession(t),e.updateSuggestions(t.value,s,this)||super.updateSuggestions()}getSuggestions(e){const{exMode:t,plugin:s}=this,i=t.inputTextForStandardMode(e),n=super.getSuggestions(i);return t.addPropertiesToStandardSuggestions(n,s.options),n}onChooseSuggestion(e,t){this.exMode.onChooseSuggestion(e,t)||super.onChooseSuggestion(e,t)}renderSuggestion(e,t){this.exMode.renderSuggestion(e,t)||super.renderSuggestion(e,t)}}(e,t):(console.log("Switcher++: unable to extend system switcher. Plugin UI will not be loaded. Use the builtin switcher instead."),null)}(this.app,this);if(!t)return!1;const i=Object.assign({mode:e},s);t.openInMode(i)}return!0}updateLauncherButtonOverrides(e){const{app:s,options:{mobileLauncher:i}}=this;if(xe.removeMobileLauncherOverride(),Oe.removeEmptyTabButtons(s.workspace),e){const e=i.modeString,n=t[e],a=()=>{n&&this.createModalAndOpen(n,!1)};xe.installMobileLauncherOverride(s,i,a);const o=Pe.find((e=>e.mode===n)),r="Switcher++: "+(o?.name??"");Oe.installEmptyTabMonitor(this,{isEnabled:i.isEnabled&&i.isEmptyTabButtonEnabled,buttonLabel:r,onclickListener:a})}}}module.exports=Me; /* nosourcemap */ \ No newline at end of file diff --git a/.obsidian/plugins/darlal-switcher-plus/manifest.json b/.obsidian/plugins/darlal-switcher-plus/manifest.json index 40567368..62c8e100 100644 --- a/.obsidian/plugins/darlal-switcher-plus/manifest.json +++ b/.obsidian/plugins/darlal-switcher-plus/manifest.json @@ -1,8 +1,8 @@ { "id": "darlal-switcher-plus", "name": "Quick Switcher++", - "version": "5.3.0", - "minAppVersion": "1.9.10", + "version": "5.3.1", + "minAppVersion": "1.9.12", "description": "Enhanced Quick Switcher, search open panels, and symbols.", "author": "darlal", "authorUrl": "https://github.com/darlal/obsidian-switcher-plus", diff --git a/.obsidian/plugins/default-template/data.json b/.obsidian/plugins/default-template/data.json new file mode 100644 index 00000000..ac28a108 --- /dev/null +++ b/.obsidian/plugins/default-template/data.json @@ -0,0 +1,3 @@ +{ + "defaultTemplate": "templates/default new note.md" +} \ No newline at end of file diff --git a/.obsidian/plugins/default-template/main.js b/.obsidian/plugins/default-template/main.js new file mode 100644 index 00000000..4118ae9e --- /dev/null +++ b/.obsidian/plugins/default-template/main.js @@ -0,0 +1,6 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var o=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var T=(s,a)=>{for(var t in a)o(s,t,{get:a[t],enumerable:!0})},w=(s,a,t,n)=>{if(a&&typeof a=="object"||typeof a=="function")for(let l of f(a))!h.call(s,l)&&l!==t&&o(s,l,{get:()=>a[l],enumerable:!(n=d(a,l))||n.enumerable});return s};var D=s=>w(o({},"__esModule",{value:!0}),s);var v={};T(v,{default:()=>p});module.exports=D(v);var e=require("obsidian"),y={defaultTemplate:""},p=class extends e.Plugin{async onload(){await this.loadSettings(),this.registerEvent(this.app.vault.on("create",async t=>{if(!(t instanceof e.TFile)||t.extension!=="md")return;if(!this.settings.defaultTemplate){new e.Notice("Default Template: No template configured. Go to Settings \u2192 Default Template to select one.");return}if((await this.app.vault.read(t)).trim().length!==0)return;let l=this.app.vault.getAbstractFileByPath(this.settings.defaultTemplate);if(!(l instanceof e.TFile)){new e.Notice(`Default Template: Template file "${this.settings.defaultTemplate}" not found. Please select a new template.`);return}try{let c=(await this.app.vault.read(l)).replace(/\{\{date(?::([^}]+))?\}\}/g,(g,i)=>i?(0,e.moment)().format(i):(0,e.moment)().format("YYYY-MM-DD")).replace(/\{\{time(?::([^}]+))?\}\}/g,(g,i)=>i?(0,e.moment)().format(i):(0,e.moment)().format("HH:mm")).replace(/\{\{title\}\}/g,t.basename);await this.app.vault.modify(t,c)}catch(m){new e.Notice(`Default Template: Template file "${this.settings.defaultTemplate}" not found or cannot be read.`)}})),this.addSettingTab(new r(this.app,this))}onunload(){}async loadSettings(){this.settings=Object.assign({},y,await this.loadData())}async saveSettings(){await this.saveData(this.settings)}},u=class extends e.FuzzySuggestModal{constructor(t,n){super(t);this.plugin=n}getItems(){return this.app.vault.getMarkdownFiles()}getItemText(t){return t.path}onChooseItem(t){this.plugin.settings.defaultTemplate=t.path,this.plugin.saveSettings(),new e.Notice(`Default template set to: ${t.path}`)}},r=class extends e.PluginSettingTab{constructor(t,n){super(t,n);this.plugin=n}display(){let{containerEl:t}=this;t.empty(),t.createEl("h2",{text:"Default Template"}),new e.Setting(t).setName("Default template file").setDesc("Select a template file to automatically apply to new empty notes").addButton(n=>n.setButtonText("Select template").onClick(()=>{new u(this.app,this.plugin).open()})),this.plugin.settings.defaultTemplate?t.createEl("div",{text:`\u2713 Active template: ${this.plugin.settings.defaultTemplate}`,cls:"mod-success"}):t.createEl("p",{text:"No template selected. Plugin will not apply any template to new files.",cls:"setting-item-description"})}}; diff --git a/.obsidian/plugins/default-template/manifest.json b/.obsidian/plugins/default-template/manifest.json new file mode 100644 index 00000000..d1d55623 --- /dev/null +++ b/.obsidian/plugins/default-template/manifest.json @@ -0,0 +1 @@ +{"id":"default-template","name":"Default Template","version":"1.0.1","minAppVersion":"0.15.0","description":"Automatically apply templates to new notes with user-configurable template selection.","author":"raeperd","authorUrl":"https://github.com/raeperd","fundingUrl":"","isDesktopOnly":false} \ No newline at end of file diff --git a/.obsidian/plugins/extended-graph/main.js b/.obsidian/plugins/extended-graph/main.js index 63ba6ea1..bd104ce9 100644 --- a/.obsidian/plugins/extended-graph/main.js +++ b/.obsidian/plugins/extended-graph/main.js @@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ -var Dv=Object.create;var bl=Object.defineProperty;var bv=Object.getOwnPropertyDescriptor;var Ev=Object.getOwnPropertyNames;var Sv=Object.getPrototypeOf,Cv=Object.prototype.hasOwnProperty;var P6=r=>{throw TypeError(r)};var wv=(r,e,t)=>e in r?bl(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var Pe=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),El=(r,e)=>{for(var t in e)bl(r,t,{get:e[t],enumerable:!0})},B6=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Ev(e))!Cv.call(r,s)&&s!==t&&bl(r,s,{get:()=>e[s],enumerable:!(i=bv(e,s))||i.enumerable});return r};var St=(r,e,t)=>(t=r!=null?Dv(Sv(r)):{},B6(e||!r||!r.__esModule?bl(t,"default",{value:r,enumerable:!0}):t,r)),Tv=r=>B6(bl({},"__esModule",{value:!0}),r);var M0=(r,e,t)=>wv(r,typeof e!="symbol"?e+"":e,t),R6=(r,e,t)=>e.has(r)||P6("Cannot "+t);var O6=(r,e,t)=>(R6(r,e,"read from private field"),t?t.call(r):e.get(r)),G6=(r,e,t)=>e.has(r)?P6("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t),U6=(r,e,t,i)=>(R6(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t);var x7=Pe((qB,Ip)=>{"use strict";var _b=Object.prototype.hasOwnProperty,R0="~";function Il(){}Object.create&&(Il.prototype=Object.create(null),new Il().__proto__||(R0=!1));function Fb(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function v7(r,e,t,i,s){if(typeof t!="function")throw new TypeError("The listener must be a function");var n=new Fb(t,i||r,s),o=R0?R0+e:e;return r._events[o]?r._events[o].fn?r._events[o]=[r._events[o],n]:r._events[o].push(n):(r._events[o]=n,r._eventsCount++),r}function Sh(r,e){--r._eventsCount===0?r._events=new Il:delete r._events[e]}function _0(){this._events=new Il,this._eventsCount=0}_0.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)_b.call(t,i)&&e.push(R0?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};_0.prototype.listeners=function(e){var t=R0?R0+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var s=0,n=i.length,o=new Array(n);s{"use strict";Pp.exports=Th;Pp.exports.default=Th;function Th(r,e,t){t=t||2;var i=e&&e.length,s=i?e[0]*t:r.length,n=b7(r,0,s,t,!0),o=[];if(!n||n.next===n.prev)return o;var a,l,c,h,d,p,g;if(i&&(n=Mb(r,e,n,t)),r.length>80*t){a=c=r[0],l=h=r[1];for(var v=t;vc&&(c=d),p>h&&(h=p);g=Math.max(c-a,h-l),g=g!==0?32767/g:0}return Ll(n,o,t,a,l,g,0),o}function b7(r,e,t,i,s){var n,o;if(s===Np(r,e,t,i)>0)for(n=e;n=e;n-=i)o=D7(n,r[n],r[n+1],o);return o&&_h(o,o.next)&&(Nl(o),o=o.next),o}function zn(r,e){if(!r)return r;e||(e=r);var t=r,i;do if(i=!1,!t.steiner&&(_h(t,t.next)||kt(t.prev,t,t.next)===0)){if(Nl(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function Ll(r,e,t,i,s,n,o){if(r){!o&&n&&Ob(r,i,s,n);for(var a=r,l,c;r.prev!==r.next;){if(l=r.prev,c=r.next,n?kb(r,i,s,n):Ab(r)){e.push(l.i/t|0),e.push(r.i/t|0),e.push(c.i/t|0),Nl(r),r=c.next,a=c.next;continue}if(r=c,r===a){o?o===1?(r=Ib(zn(r),e,t),Ll(r,e,t,i,s,n,2)):o===2&&Lb(r,e,t,i,s,n):Ll(zn(r),e,t,i,s,n,1);break}}}}function Ab(r){var e=r.prev,t=r,i=r.next;if(kt(e,t,i)>=0)return!1;for(var s=e.x,n=t.x,o=i.x,a=e.y,l=t.y,c=i.y,h=sn?s>o?s:o:n>o?n:o,g=a>l?a>c?a:c:l>c?l:c,v=i.next;v!==e;){if(v.x>=h&&v.x<=p&&v.y>=d&&v.y<=g&&$o(s,a,n,l,o,c,v.x,v.y)&&kt(v.prev,v,v.next)>=0)return!1;v=v.next}return!0}function kb(r,e,t,i){var s=r.prev,n=r,o=r.next;if(kt(s,n,o)>=0)return!1;for(var a=s.x,l=n.x,c=o.x,h=s.y,d=n.y,p=o.y,g=al?a>c?a:c:l>c?l:c,w=h>d?h>p?h:p:d>p?d:p,k=Lp(g,v,e,t,i),B=Lp(C,w,e,t,i),L=r.prevZ,T=r.nextZ;L&&L.z>=k&&T&&T.z<=B;){if(L.x>=g&&L.x<=C&&L.y>=v&&L.y<=w&&L!==s&&L!==o&&$o(a,h,l,d,c,p,L.x,L.y)&&kt(L.prev,L,L.next)>=0||(L=L.prevZ,T.x>=g&&T.x<=C&&T.y>=v&&T.y<=w&&T!==s&&T!==o&&$o(a,h,l,d,c,p,T.x,T.y)&&kt(T.prev,T,T.next)>=0))return!1;T=T.nextZ}for(;L&&L.z>=k;){if(L.x>=g&&L.x<=C&&L.y>=v&&L.y<=w&&L!==s&&L!==o&&$o(a,h,l,d,c,p,L.x,L.y)&&kt(L.prev,L,L.next)>=0)return!1;L=L.prevZ}for(;T&&T.z<=B;){if(T.x>=g&&T.x<=C&&T.y>=v&&T.y<=w&&T!==s&&T!==o&&$o(a,h,l,d,c,p,T.x,T.y)&&kt(T.prev,T,T.next)>=0)return!1;T=T.nextZ}return!0}function Ib(r,e,t){var i=r;do{var s=i.prev,n=i.next.next;!_h(s,n)&&E7(s,i,i.next,n)&&Ml(s,n)&&Ml(n,s)&&(e.push(s.i/t|0),e.push(i.i/t|0),e.push(n.i/t|0),Nl(i),Nl(i.next),i=r=n),i=i.next}while(i!==r);return zn(i)}function Lb(r,e,t,i,s,n){var o=r;do{for(var a=o.next.next;a!==o.prev;){if(o.i!==a.i&&Vb(o,a)){var l=S7(o,a);o=zn(o,o.next),l=zn(l,l.next),Ll(o,e,t,i,s,n,0),Ll(l,e,t,i,s,n,0);return}a=a.next}o=o.next}while(o!==r)}function Mb(r,e,t,i){var s=[],n,o,a,l,c;for(n=0,o=e.length;n=t.next.y&&t.next.y!==t.y){var a=t.x+(s-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(a<=i&&a>n&&(n=a,o=t.x=t.x&&t.x>=c&&i!==t.x&&$o(so.x||t.x===o.x&&Rb(o,t)))&&(o=t,d=p)),t=t.next;while(t!==l);return o}function Rb(r,e){return kt(r.prev,r,e.prev)<0&&kt(e.next,r,r.next)<0}function Ob(r,e,t,i){var s=r;do s.z===0&&(s.z=Lp(s.x,s.y,e,t,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==r);s.prevZ.nextZ=null,s.prevZ=null,Gb(s)}function Gb(r){var e,t,i,s,n,o,a,l,c=1;do{for(t=r,r=null,n=null,o=0;t;){for(o++,i=t,a=0,e=0;e0||l>0&&i;)a!==0&&(l===0||!i||t.z<=i.z)?(s=t,t=t.nextZ,a--):(s=i,i=i.nextZ,l--),n?n.nextZ=s:r=s,s.prevZ=n,n=s;t=i}n.nextZ=null,c*=2}while(o>1);return r}function Lp(r,e,t,i,s){return r=(r-t)*s|0,e=(e-i)*s|0,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,r|e<<1}function Ub(r){var e=r,t=r;do(e.x=(r-o)*(n-a)&&(r-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(n-a)>=(s-o)*(i-a)}function Vb(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!zb(r,e)&&(Ml(r,e)&&Ml(e,r)&&Wb(r,e)&&(kt(r.prev,r,e.prev)||kt(r,e.prev,e))||_h(r,e)&&kt(r.prev,r,r.next)>0&&kt(e.prev,e,e.next)>0)}function kt(r,e,t){return(e.y-r.y)*(t.x-e.x)-(e.x-r.x)*(t.y-e.y)}function _h(r,e){return r.x===e.x&&r.y===e.y}function E7(r,e,t,i){var s=wh(kt(r,e,t)),n=wh(kt(r,e,i)),o=wh(kt(t,i,r)),a=wh(kt(t,i,e));return!!(s!==n&&o!==a||s===0&&Ch(r,t,e)||n===0&&Ch(r,i,e)||o===0&&Ch(t,r,i)||a===0&&Ch(t,e,i))}function Ch(r,e,t){return e.x<=Math.max(r.x,t.x)&&e.x>=Math.min(r.x,t.x)&&e.y<=Math.max(r.y,t.y)&&e.y>=Math.min(r.y,t.y)}function wh(r){return r>0?1:r<0?-1:0}function zb(r,e){var t=r;do{if(t.i!==r.i&&t.next.i!==r.i&&t.i!==e.i&&t.next.i!==e.i&&E7(t,t.next,r,e))return!0;t=t.next}while(t!==r);return!1}function Ml(r,e){return kt(r.prev,r,r.next)<0?kt(r,e,r.next)>=0&&kt(r,r.prev,e)>=0:kt(r,e,r.prev)<0||kt(r,r.next,e)<0}function Wb(r,e){var t=r,i=!1,s=(r.x+e.x)/2,n=(r.y+e.y)/2;do t.y>n!=t.next.y>n&&t.next.y!==t.y&&s<(t.next.x-t.x)*(n-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==r);return i}function S7(r,e){var t=new Mp(r.i,r.x,r.y),i=new Mp(e.i,e.x,e.y),s=r.next,n=e.prev;return r.next=e,e.prev=r,t.next=s,s.prev=t,i.next=t,t.prev=i,n.next=i,i.prev=n,i}function D7(r,e,t,i){var s=new Mp(r,e,t);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function Nl(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function Mp(r,e,t){this.i=r,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}Th.deviation=function(r,e,t,i){var s=e&&e.length,n=s?e[0]*t:r.length,o=Math.abs(Np(r,0,n,t));if(s)for(var a=0,l=e.length;a0&&(i+=r[s-1].length,t.holes.push(i))}return t}});var kd=Pe((n8,o8)=>{(function(r,e){typeof n8=="object"&&typeof o8<"u"?o8.exports=e():typeof define=="function"&&define.amd?define(e):(r=typeof globalThis<"u"?globalThis:r||self).graphology=e()})(n8,function(){"use strict";function r(x){return r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(S){return typeof S}:function(S){return S&&typeof Symbol=="function"&&S.constructor===Symbol&&S!==Symbol.prototype?"symbol":typeof S},r(x)}function e(x,S){x.prototype=Object.create(S.prototype),x.prototype.constructor=x,i(x,S)}function t(x){return t=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(S){return S.__proto__||Object.getPrototypeOf(S)},t(x)}function i(x,S){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(b,f){return b.__proto__=f,b},i(x,S)}function s(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function n(x,S,b){return n=s()?Reflect.construct.bind():function(f,y,E){var _=[null];_.push.apply(_,y);var M=new(Function.bind.apply(f,_));return E&&i(M,E.prototype),M},n.apply(null,arguments)}function o(x){var S=typeof Map=="function"?new Map:void 0;return o=function(b){if(b===null||(f=b,Function.toString.call(f).indexOf("[native code]")===-1))return b;var f;if(typeof b!="function")throw new TypeError("Super expression must either be null or a function");if(S!==void 0){if(S.has(b))return S.get(b);S.set(b,y)}function y(){return n(b,arguments,t(this).constructor)}return y.prototype=Object.create(b.prototype,{constructor:{value:y,enumerable:!1,writable:!0,configurable:!0}}),i(y,b)},o(x)}function a(x){if(x===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return x}var l=function(){for(var x=arguments[0],S=1,b=arguments.length;S0&&_.length>y&&!_.warned){_.warned=!0;var H=new Error("Possible EventEmitter memory leak detected. "+_.length+" "+String(S)+" listeners added. Use emitter.setMaxListeners() to increase limit");H.name="MaxListenersExceededWarning",H.emitter=x,H.type=S,H.count=_.length,M=H,console&&console.warn&&console.warn(M)}return x}function z(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function U(x,S,b){var f={fired:!1,wrapFn:void 0,target:x,type:S,listener:b},y=z.bind(f);return y.listener=b,f.wrapFn=y,y}function q(x,S,b){var f=x._events;if(f===void 0)return[];var y=f[S];return y===void 0?[]:typeof y=="function"?b?[y.listener||y]:[y]:b?function(E){for(var _=new Array(E.length),M=0;M<_.length;++M)_[M]=E[M].listener||E[M];return _}(y):$(y,y.length)}function re(x){var S=this._events;if(S!==void 0){var b=S[x];if(typeof b=="function")return 1;if(b!==void 0)return b.length}return 0}function $(x,S){for(var b=new Array(S),f=0;f0&&(E=S[0]),E instanceof Error)throw E;var _=new Error("Unhandled error."+(E?" ("+E.message+")":""));throw _.context=E,_}var M=y[x];if(M===void 0)return!1;if(typeof M=="function")B(M,this,S);else{var H=M.length,se=$(M,H);for(b=0;b=0;E--)if(b[E]===S||b[E].listener===S){_=b[E].listener,y=E;break}if(y<0)return this;y===0?b.shift():function(M,H){for(;H+1=0;f--)this.removeListener(x,S[f]);return this},T.prototype.listeners=function(x){return q(this,x,!0)},T.prototype.rawListeners=function(x){return q(this,x,!1)},T.listenerCount=function(x,S){return typeof x.listenerCount=="function"?x.listenerCount(S):re.call(x,S)},T.prototype.listenerCount=re,T.prototype.eventNames=function(){return this._eventsCount>0?C(this._events):[]},typeof Symbol<"u"&&(Te.prototype[Symbol.iterator]=function(){return this}),Te.of=function(){var x=arguments,S=x.length,b=0;return new Te(function(){return b>=S?{done:!0}:{done:!1,value:x[b++]}})},Te.empty=function(){return new Te(function(){return{done:!0}})},Te.fromSequence=function(x){var S=0,b=x.length;return new Te(function(){return S>=b?{done:!0}:{done:!1,value:x[S++]}})},Te.is=function(x){return x instanceof Te||typeof x=="object"&&x!==null&&typeof x.next=="function"};var ye=Te,xe={};xe.ARRAY_BUFFER_SUPPORT=typeof ArrayBuffer<"u",xe.SYMBOL_SUPPORT=typeof Symbol<"u";var De=ye,_e=xe,Mt=_e.ARRAY_BUFFER_SUPPORT,rt=_e.SYMBOL_SUPPORT,et=function(x){var S=function(b){return typeof b=="string"||Array.isArray(b)||Mt&&ArrayBuffer.isView(b)?De.fromSequence(b):typeof b!="object"||b===null?null:rt&&typeof b[Symbol.iterator]=="function"?b[Symbol.iterator]():typeof b.next=="function"?b:null}(x);if(!S)throw new Error("obliterator: target is not iterable nor a valid iterator.");return S},gt=et,Dt=function(x,S){for(var b,f=arguments.length>1?S:1/0,y=f!==1/0?new Array(f):[],E=0,_=gt(x);;){if(E===f)return y;if((b=_.next()).done)return E!==S&&(y.length=E),y;y[E++]=b.value}},I0=function(x){function S(b){var f;return(f=x.call(this)||this).name="GraphError",f.message=b,f}return e(S,x),S}(o(Error)),de=function(x){function S(b){var f;return(f=x.call(this,b)||this).name="InvalidArgumentsGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(a(f),S.prototype.constructor),f}return e(S,x),S}(I0),oe=function(x){function S(b){var f;return(f=x.call(this,b)||this).name="NotFoundGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(a(f),S.prototype.constructor),f}return e(S,x),S}(I0),ve=function(x){function S(b){var f;return(f=x.call(this,b)||this).name="UsageGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(a(f),S.prototype.constructor),f}return e(S,x),S}(I0);function Yt(x,S){this.key=x,this.attributes=S,this.clear()}function Ut(x,S){this.key=x,this.attributes=S,this.clear()}function r0(x,S){this.key=x,this.attributes=S,this.clear()}function Ft(x,S,b,f,y){this.key=S,this.attributes=y,this.undirected=x,this.source=b,this.target=f}Yt.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.undirectedDegree=0,this.undirectedLoops=0,this.directedLoops=0,this.in={},this.out={},this.undirected={}},Ut.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.directedLoops=0,this.in={},this.out={}},r0.prototype.clear=function(){this.undirectedDegree=0,this.undirectedLoops=0,this.undirected={}},Ft.prototype.attach=function(){var x="out",S="in";this.undirected&&(x=S="undirected");var b=this.source.key,f=this.target.key;this.source[x][f]=this,this.undirected&&b===f||(this.target[S][b]=this)},Ft.prototype.attachMulti=function(){var x="out",S="in",b=this.source.key,f=this.target.key;this.undirected&&(x=S="undirected");var y=this.source[x],E=y[f];if(E===void 0)return y[f]=this,void(this.undirected&&b===f||(this.target[S][b]=this));E.previous=this,this.next=E,y[f]=this,this.target[S][b]=this},Ft.prototype.detach=function(){var x=this.source.key,S=this.target.key,b="out",f="in";this.undirected&&(b=f="undirected"),delete this.source[b][S],delete this.target[f][x]},Ft.prototype.detachMulti=function(){var x=this.source.key,S=this.target.key,b="out",f="in";this.undirected&&(b=f="undirected"),this.previous===void 0?this.next===void 0?(delete this.source[b][S],delete this.target[f][x]):(this.next.previous=void 0,this.source[b][S]=this.next,this.target[f][x]=this.next):(this.previous.next=this.next,this.next!==void 0&&(this.next.previous=this.previous))};function it(x,S,b,f,y,E,_){var M,H,se,ie;if(f=""+f,b===0){if(!(M=x._nodes.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" node in the graph.'));se=y,ie=E}else if(b===3){if(y=""+y,!(H=x._edges.get(y)))throw new oe("Graph.".concat(S,': could not find the "').concat(y,'" edge in the graph.'));var J=H.source.key,fe=H.target.key;if(f===J)M=H.target;else{if(f!==fe)throw new oe("Graph.".concat(S,': the "').concat(f,'" node is not attached to the "').concat(y,'" edge (').concat(J,", ").concat(fe,")."));M=H.source}se=E,ie=_}else{if(!(H=x._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'));M=b===1?H.source:H.target,se=y,ie=E}return[M,se,ie]}var p0=[{name:function(x){return"get".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _=it(this,S,b,f,y,E),M=_[0],H=_[1];return M.attributes[H]}}},{name:function(x){return"get".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f,y){return it(this,S,b,f,y)[0].attributes}}},{name:function(x){return"has".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _=it(this,S,b,f,y,E),M=_[0],H=_[1];return M.attributes.hasOwnProperty(H)}}},{name:function(x){return"set".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E,_){var M=it(this,S,b,f,y,E,_),H=M[0],se=M[1],ie=M[2];return H.attributes[se]=ie,this.emit("nodeAttributesUpdated",{key:H.key,type:"set",attributes:H.attributes,name:se}),this}}},{name:function(x){return"update".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E,_){var M=it(this,S,b,f,y,E,_),H=M[0],se=M[1],ie=M[2];if(typeof ie!="function")throw new de("Graph.".concat(S,": updater should be a function."));var J=H.attributes,fe=ie(J[se]);return J[se]=fe,this.emit("nodeAttributesUpdated",{key:H.key,type:"set",attributes:H.attributes,name:se}),this}}},{name:function(x){return"remove".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _=it(this,S,b,f,y,E),M=_[0],H=_[1];return delete M.attributes[H],this.emit("nodeAttributesUpdated",{key:M.key,type:"remove",attributes:M.attributes,name:H}),this}}},{name:function(x){return"replace".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _=it(this,S,b,f,y,E),M=_[0],H=_[1];if(!h(H))throw new de("Graph.".concat(S,": provided attributes are not a plain object."));return M.attributes=H,this.emit("nodeAttributesUpdated",{key:M.key,type:"replace",attributes:M.attributes}),this}}},{name:function(x){return"merge".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _=it(this,S,b,f,y,E),M=_[0],H=_[1];if(!h(H))throw new de("Graph.".concat(S,": provided attributes are not a plain object."));return l(M.attributes,H),this.emit("nodeAttributesUpdated",{key:M.key,type:"merge",attributes:M.attributes,data:H}),this}}},{name:function(x){return"update".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _=it(this,S,b,f,y,E),M=_[0],H=_[1];if(typeof H!="function")throw new de("Graph.".concat(S,": provided updater is not a function."));return M.attributes=H(M.attributes),this.emit("nodeAttributesUpdated",{key:M.key,type:"update",attributes:M.attributes}),this}}}],i0=[{name:function(x){return"get".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y){var E;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var _=""+f,M=""+y;if(y=arguments[2],!(E=c(this,_,M,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(_,'" - "').concat(M,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(E=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}return E.attributes[y]}}},{name:function(x){return"get".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f){var y;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>1){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var E=""+f,_=""+arguments[1];if(!(y=c(this,E,_,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(E,'" - "').concat(_,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(y=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}return y.attributes}}},{name:function(x){return"has".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y){var E;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var _=""+f,M=""+y;if(y=arguments[2],!(E=c(this,_,M,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(_,'" - "').concat(M,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(E=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}return E.attributes.hasOwnProperty(y)}}},{name:function(x){return"set".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>3){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var M=""+f,H=""+y;if(y=arguments[2],E=arguments[3],!(_=c(this,M,H,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(M,'" - "').concat(H,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(_=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}return _.attributes[y]=E,this.emit("edgeAttributesUpdated",{key:_.key,type:"set",attributes:_.attributes,name:y}),this}}},{name:function(x){return"update".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>3){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var M=""+f,H=""+y;if(y=arguments[2],E=arguments[3],!(_=c(this,M,H,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(M,'" - "').concat(H,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(_=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}if(typeof E!="function")throw new de("Graph.".concat(S,": updater should be a function."));return _.attributes[y]=E(_.attributes[y]),this.emit("edgeAttributesUpdated",{key:_.key,type:"set",attributes:_.attributes,name:y}),this}}},{name:function(x){return"remove".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y){var E;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var _=""+f,M=""+y;if(y=arguments[2],!(E=c(this,_,M,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(_,'" - "').concat(M,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(E=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}return delete E.attributes[y],this.emit("edgeAttributesUpdated",{key:E.key,type:"remove",attributes:E.attributes,name:y}),this}}},{name:function(x){return"replace".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f,y){var E;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var _=""+f,M=""+y;if(y=arguments[2],!(E=c(this,_,M,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(_,'" - "').concat(M,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(E=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}if(!h(y))throw new de("Graph.".concat(S,": provided attributes are not a plain object."));return E.attributes=y,this.emit("edgeAttributesUpdated",{key:E.key,type:"replace",attributes:E.attributes}),this}}},{name:function(x){return"merge".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f,y){var E;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var _=""+f,M=""+y;if(y=arguments[2],!(E=c(this,_,M,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(_,'" - "').concat(M,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(E=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}if(!h(y))throw new de("Graph.".concat(S,": provided attributes are not a plain object."));return l(E.attributes,y),this.emit("edgeAttributesUpdated",{key:E.key,type:"merge",attributes:E.attributes,data:y}),this}}},{name:function(x){return"update".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f,y){var E;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var _=""+f,M=""+y;if(y=arguments[2],!(E=c(this,_,M,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(_,'" - "').concat(M,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(E=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}if(typeof y!="function")throw new de("Graph.".concat(S,": provided updater is not a function."));return E.attributes=y(E.attributes),this.emit("edgeAttributesUpdated",{key:E.key,type:"update",attributes:E.attributes}),this}}}],C0=ye,Zr=et,wt=function(){var x=arguments,S=null,b=-1;return new C0(function(){for(var f=null;;){if(S===null){if(++b>=x.length)return{done:!0};S=Zr(x[b])}if((f=S.next()).done!==!0)break;S=null}return f})},Fn=[{name:"edges",type:"mixed"},{name:"inEdges",type:"directed",direction:"in"},{name:"outEdges",type:"directed",direction:"out"},{name:"inboundEdges",type:"mixed",direction:"in"},{name:"outboundEdges",type:"mixed",direction:"out"},{name:"directedEdges",type:"directed"},{name:"undirectedEdges",type:"undirected"}];function Ei(x,S,b,f){var y=!1;for(var E in S)if(E!==f){var _=S[E];if(y=b(_.key,_.attributes,_.source.key,_.target.key,_.source.attributes,_.target.attributes,_.undirected),x&&y)return _.key}}function Si(x,S,b,f){var y,E,_,M=!1;for(var H in S)if(H!==f){y=S[H];do{if(E=y.source,_=y.target,M=b(y.key,y.attributes,E.key,_.key,E.attributes,_.attributes,y.undirected),x&&M)return y.key;y=y.next}while(y!==void 0)}}function Zi(x,S){var b,f=Object.keys(x),y=f.length,E=0;return new ye(function(){do if(b)b=b.next;else{if(E>=y)return{done:!0};var _=f[E++];if(_===S){b=void 0;continue}b=x[_]}while(!b);return{done:!1,value:{edge:b.key,attributes:b.attributes,source:b.source.key,target:b.target.key,sourceAttributes:b.source.attributes,targetAttributes:b.target.attributes,undirected:b.undirected}}})}function Qi(x,S,b,f){var y=S[b];if(y){var E=y.source,_=y.target;return f(y.key,y.attributes,E.key,_.key,E.attributes,_.attributes,y.undirected)&&x?y.key:void 0}}function An(x,S,b,f){var y=S[b];if(y){var E=!1;do{if(E=f(y.key,y.attributes,y.source.key,y.target.key,y.source.attributes,y.target.attributes,y.undirected),x&&E)return y.key;y=y.next}while(y!==void 0)}}function kn(x,S){var b=x[S];return b.next!==void 0?new ye(function(){if(!b)return{done:!0};var f={edge:b.key,attributes:b.attributes,source:b.source.key,target:b.target.key,sourceAttributes:b.source.attributes,targetAttributes:b.target.attributes,undirected:b.undirected};return b=b.next,{done:!1,value:f}}):ye.of({edge:b.key,attributes:b.attributes,source:b.source.key,target:b.target.key,sourceAttributes:b.source.attributes,targetAttributes:b.target.attributes,undirected:b.undirected})}function In(x,S){if(x.size===0)return[];if(S==="mixed"||S===x.type)return typeof Array.from=="function"?Array.from(x._edges.keys()):Dt(x._edges.keys(),x._edges.size);for(var b,f,y=S==="undirected"?x.undirectedSize:x.directedSize,E=new Array(y),_=S==="undirected",M=x._edges.values(),H=0;(b=M.next()).done!==!0;)(f=b.value).undirected===_&&(E[H++]=f.key);return E}function Fo(x,S,b,f){if(S.size!==0){for(var y,E,_=b!=="mixed"&&b!==S.type,M=b==="undirected",H=!1,se=S._edges.values();(y=se.next()).done!==!0;)if(E=y.value,!_||E.undirected===M){var ie=E,J=ie.key,fe=ie.attributes,ge=ie.source,Oe=ie.target;if(H=f(J,fe,ge.key,Oe.key,ge.attributes,Oe.attributes,E.undirected),x&&H)return J}}}function xl(x,S){if(x.size===0)return ye.empty();var b=S!=="mixed"&&S!==x.type,f=S==="undirected",y=x._edges.values();return new ye(function(){for(var E,_;;){if((E=y.next()).done)return E;if(_=E.value,!b||_.undirected===f)break}return{value:{edge:_.key,attributes:_.attributes,source:_.source.key,target:_.target.key,sourceAttributes:_.source.attributes,targetAttributes:_.target.attributes,undirected:_.undirected},done:!1}})}function Ln(x,S,b,f,y,E){var _,M=S?Si:Ei;if(b!=="undirected"&&(f!=="out"&&(_=M(x,y.in,E),x&&_)||f!=="in"&&(_=M(x,y.out,E,f?void 0:y.key),x&&_))||b!=="directed"&&(_=M(x,y.undirected,E),x&&_))return _}function Dl(x,S,b,f){var y=[];return Ln(!1,x,S,b,f,function(E){y.push(E)}),y}function Ao(x,S,b){var f=ye.empty();return x!=="undirected"&&(S!=="out"&&b.in!==void 0&&(f=wt(f,Zi(b.in))),S!=="in"&&b.out!==void 0&&(f=wt(f,Zi(b.out,S?void 0:b.key)))),x!=="directed"&&b.undirected!==void 0&&(f=wt(f,Zi(b.undirected))),f}function Ns(x,S,b,f,y,E,_){var M,H=b?An:Qi;if(S!=="undirected"&&(y.in!==void 0&&f!=="out"&&(M=H(x,y.in,E,_),x&&M)||y.out!==void 0&&f!=="in"&&(f||y.key!==E)&&(M=H(x,y.out,E,_),x&&M))||S!=="directed"&&y.undirected!==void 0&&(M=H(x,y.undirected,E,_),x&&M))return M}function Mn(x,S,b,f,y){var E=[];return Ns(!1,x,S,b,f,y,function(_){E.push(_)}),E}function Nn(x,S,b,f){var y=ye.empty();return x!=="undirected"&&(b.in!==void 0&&S!=="out"&&f in b.in&&(y=wt(y,kn(b.in,f))),b.out!==void 0&&S!=="in"&&f in b.out&&(S||b.key!==f)&&(y=wt(y,kn(b.out,f)))),x!=="directed"&&b.undirected!==void 0&&f in b.undirected&&(y=wt(y,kn(b.undirected,f))),y}var ko=[{name:"neighbors",type:"mixed"},{name:"inNeighbors",type:"directed",direction:"in"},{name:"outNeighbors",type:"directed",direction:"out"},{name:"inboundNeighbors",type:"mixed",direction:"in"},{name:"outboundNeighbors",type:"mixed",direction:"out"},{name:"directedNeighbors",type:"directed"},{name:"undirectedNeighbors",type:"undirected"}];function A(){this.A=null,this.B=null}function O(x,S,b,f,y){for(var E in f){var _=f[E],M=_.source,H=_.target,se=M===b?H:M;if(!S||!S.has(se.key)){var ie=y(se.key,se.attributes);if(x&&ie)return se.key}}}function D(x,S,b,f,y){if(S!=="mixed"){if(S==="undirected")return O(x,null,f,f.undirected,y);if(typeof b=="string")return O(x,null,f,f[b],y)}var E,_=new A;if(S!=="undirected"){if(b!=="out"){if(E=O(x,null,f,f.in,y),x&&E)return E;_.wrap(f.in)}if(b!=="in"){if(E=O(x,_,f,f.out,y),x&&E)return E;_.wrap(f.out)}}if(S!=="directed"&&(E=O(x,_,f,f.undirected,y),x&&E))return E}function F(x,S,b){var f=Object.keys(b),y=f.length,E=0;return new ye(function(){var _=null;do{if(E>=y)return x&&x.wrap(b),{done:!0};var M=b[f[E++]],H=M.source,se=M.target;_=H===S?se:H,x&&x.has(_.key)&&(_=null)}while(_===null);return{done:!1,value:{neighbor:_.key,attributes:_.attributes}}})}function N(x,S){var b=S.name,f=S.type,y=S.direction;x.prototype[b]=function(E){if(f!=="mixed"&&this.type!=="mixed"&&f!==this.type)return[];E=""+E;var _=this._nodes.get(E);if(_===void 0)throw new oe("Graph.".concat(b,': could not find the "').concat(E,'" node in the graph.'));return function(M,H,se){if(M!=="mixed"){if(M==="undirected")return Object.keys(se.undirected);if(typeof H=="string")return Object.keys(se[H])}var ie=[];return D(!1,M,H,se,function(J){ie.push(J)}),ie}(f==="mixed"?this.type:f,y,_)}}function G(x,S){var b=S.name,f=S.type,y=S.direction,E=b.slice(0,-1)+"Entries";x.prototype[E]=function(_){if(f!=="mixed"&&this.type!=="mixed"&&f!==this.type)return ye.empty();_=""+_;var M=this._nodes.get(_);if(M===void 0)throw new oe("Graph.".concat(E,': could not find the "').concat(_,'" node in the graph.'));return function(H,se,ie){if(H!=="mixed"){if(H==="undirected")return F(null,ie,ie.undirected);if(typeof se=="string")return F(null,ie,ie[se])}var J=ye.empty(),fe=new A;return H!=="undirected"&&(se!=="out"&&(J=wt(J,F(fe,ie,ie.in))),se!=="in"&&(J=wt(J,F(fe,ie,ie.out)))),H!=="directed"&&(J=wt(J,F(fe,ie,ie.undirected))),J}(f==="mixed"?this.type:f,y,M)}}function V(x,S,b,f,y){for(var E,_,M,H,se,ie,J,fe=f._nodes.values(),ge=f.type;(E=fe.next()).done!==!0;){var Oe=!1;if(_=E.value,ge!=="undirected")for(M in H=_.out){se=H[M];do{if(ie=se.target,Oe=!0,J=y(_.key,ie.key,_.attributes,ie.attributes,se.key,se.attributes,se.undirected),x&&J)return se;se=se.next}while(se)}if(ge!=="directed"){for(M in H=_.undirected)if(!(S&&_.key>M)){se=H[M];do{if((ie=se.target).key!==M&&(ie=se.source),Oe=!0,J=y(_.key,ie.key,_.attributes,ie.attributes,se.key,se.attributes,se.undirected),x&&J)return se;se=se.next}while(se)}}if(b&&!Oe&&(J=y(_.key,null,_.attributes,null,null,null,null),x&&J))return null}}function X(x){if(!h(x))throw new de('Graph.import: invalid serialized node. A serialized node should be a plain object with at least a "key" property.');if(!("key"in x))throw new de("Graph.import: serialized node is missing its key.");if("attributes"in x&&(!h(x.attributes)||x.attributes===null))throw new de("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.")}function ee(x){if(!h(x))throw new de('Graph.import: invalid serialized edge. A serialized edge should be a plain object with at least a "source" & "target" property.');if(!("source"in x))throw new de("Graph.import: serialized edge is missing its source.");if(!("target"in x))throw new de("Graph.import: serialized edge is missing its target.");if("attributes"in x&&(!h(x.attributes)||x.attributes===null))throw new de("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.");if("undirected"in x&&typeof x.undirected!="boolean")throw new de("Graph.import: invalid undirectedness information. Undirected should be boolean or omitted.")}A.prototype.wrap=function(x){this.A===null?this.A=x:this.B===null&&(this.B=x)},A.prototype.has=function(x){return this.A!==null&&x in this.A||this.B!==null&&x in this.B};var be,Ve=(be=255&Math.floor(256*Math.random()),function(){return be++}),mt=new Set(["directed","undirected","mixed"]),Ze=new Set(["domain","_events","_eventsCount","_maxListeners"]),Vt={allowSelfLoops:!0,multi:!1,type:"mixed"};function At(x,S,b){var f=new x.NodeDataClass(S,b);return x._nodes.set(S,f),x.emit("nodeAdded",{key:S,attributes:b}),f}function j0(x,S,b,f,y,E,_,M){if(!f&&x.type==="undirected")throw new ve("Graph.".concat(S,": you cannot add a directed edge to an undirected graph. Use the #.addEdge or #.addUndirectedEdge instead."));if(f&&x.type==="directed")throw new ve("Graph.".concat(S,": you cannot add an undirected edge to a directed graph. Use the #.addEdge or #.addDirectedEdge instead."));if(M&&!h(M))throw new de("Graph.".concat(S,': invalid attributes. Expecting an object but got "').concat(M,'"'));if(E=""+E,_=""+_,M=M||{},!x.allowSelfLoops&&E===_)throw new ve("Graph.".concat(S,': source & target are the same ("').concat(E,`"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`));var H=x._nodes.get(E),se=x._nodes.get(_);if(!H)throw new oe("Graph.".concat(S,': source node "').concat(E,'" not found.'));if(!se)throw new oe("Graph.".concat(S,': target node "').concat(_,'" not found.'));var ie={key:null,undirected:f,source:E,target:_,attributes:M};if(b)y=x._edgeKeyGenerator();else if(y=""+y,x._edges.has(y))throw new ve("Graph.".concat(S,': the "').concat(y,'" edge already exists in the graph.'));if(!x.multi&&(f?H.undirected[_]!==void 0:H.out[_]!==void 0))throw new ve("Graph.".concat(S,': an edge linking "').concat(E,'" to "').concat(_,`" already exists. If you really want to add multiple edges linking those nodes, you should create a multi graph by using the 'multi' option.`));var J=new Ft(f,y,H,se,M);x._edges.set(y,J);var fe=E===_;return f?(H.undirectedDegree++,se.undirectedDegree++,fe&&(H.undirectedLoops++,x._undirectedSelfLoopCount++)):(H.outDegree++,se.inDegree++,fe&&(H.directedLoops++,x._directedSelfLoopCount++)),x.multi?J.attachMulti():J.attach(),f?x._undirectedSize++:x._directedSize++,ie.key=y,x.emit("edgeAdded",ie),y}function dt(x,S,b,f,y,E,_,M,H){if(!f&&x.type==="undirected")throw new ve("Graph.".concat(S,": you cannot merge/update a directed edge to an undirected graph. Use the #.mergeEdge/#.updateEdge or #.addUndirectedEdge instead."));if(f&&x.type==="directed")throw new ve("Graph.".concat(S,": you cannot merge/update an undirected edge to a directed graph. Use the #.mergeEdge/#.updateEdge or #.addDirectedEdge instead."));if(M){if(H){if(typeof M!="function")throw new de("Graph.".concat(S,': invalid updater function. Expecting a function but got "').concat(M,'"'))}else if(!h(M))throw new de("Graph.".concat(S,': invalid attributes. Expecting an object but got "').concat(M,'"'))}var se;if(E=""+E,_=""+_,H&&(se=M,M=void 0),!x.allowSelfLoops&&E===_)throw new ve("Graph.".concat(S,': source & target are the same ("').concat(E,`"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`));var ie,J,fe=x._nodes.get(E),ge=x._nodes.get(_);if(!b&&(ie=x._edges.get(y))){if(!(ie.source.key===E&&ie.target.key===_||f&&ie.source.key===_&&ie.target.key===E))throw new ve("Graph.".concat(S,': inconsistency detected when attempting to merge the "').concat(y,'" edge with "').concat(E,'" source & "').concat(_,'" target vs. ("').concat(ie.source.key,'", "').concat(ie.target.key,'").'));J=ie}if(J||x.multi||!fe||(J=f?fe.undirected[_]:fe.out[_]),J){var Oe=[J.key,!1,!1,!1];if(H?!se:!M)return Oe;if(H){var nt=J.attributes;J.attributes=se(nt),x.emit("edgeAttributesUpdated",{type:"replace",key:J.key,attributes:J.attributes})}else l(J.attributes,M),x.emit("edgeAttributesUpdated",{type:"merge",key:J.key,attributes:J.attributes,data:M});return Oe}M=M||{},H&&se&&(M=se(M));var Et={key:null,undirected:f,source:E,target:_,attributes:M};if(b)y=x._edgeKeyGenerator();else if(y=""+y,x._edges.has(y))throw new ve("Graph.".concat(S,': the "').concat(y,'" edge already exists in the graph.'));var m0=!1,a0=!1;fe||(fe=At(x,E,{}),m0=!0,E===_&&(ge=fe,a0=!0)),ge||(ge=At(x,_,{}),a0=!0),ie=new Ft(f,y,fe,ge,M),x._edges.set(y,ie);var ar=E===_;return f?(fe.undirectedDegree++,ge.undirectedDegree++,ar&&(fe.undirectedLoops++,x._undirectedSelfLoopCount++)):(fe.outDegree++,ge.inDegree++,ar&&(fe.directedLoops++,x._directedSelfLoopCount++)),x.multi?ie.attachMulti():ie.attach(),f?x._undirectedSize++:x._directedSize++,Et.key=y,x.emit("edgeAdded",Et),[y,!0,m0,a0]}function L0(x,S){x._edges.delete(S.key);var b=S.source,f=S.target,y=S.attributes,E=S.undirected,_=b===f;E?(b.undirectedDegree--,f.undirectedDegree--,_&&(b.undirectedLoops--,x._undirectedSelfLoopCount--)):(b.outDegree--,f.inDegree--,_&&(b.directedLoops--,x._directedSelfLoopCount--)),x.multi?S.detachMulti():S.detach(),E?x._undirectedSize--:x._directedSize--,x.emit("edgeDropped",{key:S.key,attributes:y,source:b.key,target:f.key,undirected:E})}var Re=function(x){function S(f){var y;if(y=x.call(this)||this,typeof(f=l({},Vt,f)).multi!="boolean")throw new de(`Graph.constructor: invalid 'multi' option. Expecting a boolean but got "`.concat(f.multi,'".'));if(!mt.has(f.type))throw new de(`Graph.constructor: invalid 'type' option. Should be one of "mixed", "directed" or "undirected" but got "`.concat(f.type,'".'));if(typeof f.allowSelfLoops!="boolean")throw new de(`Graph.constructor: invalid 'allowSelfLoops' option. Expecting a boolean but got "`.concat(f.allowSelfLoops,'".'));var E=f.type==="mixed"?Yt:f.type==="directed"?Ut:r0;p(a(y),"NodeDataClass",E);var _="geid_"+Ve()+"_",M=0;return p(a(y),"_attributes",{}),p(a(y),"_nodes",new Map),p(a(y),"_edges",new Map),p(a(y),"_directedSize",0),p(a(y),"_undirectedSize",0),p(a(y),"_directedSelfLoopCount",0),p(a(y),"_undirectedSelfLoopCount",0),p(a(y),"_edgeKeyGenerator",function(){var H;do H=_+M++;while(y._edges.has(H));return H}),p(a(y),"_options",f),Ze.forEach(function(H){return p(a(y),H,y[H])}),g(a(y),"order",function(){return y._nodes.size}),g(a(y),"size",function(){return y._edges.size}),g(a(y),"directedSize",function(){return y._directedSize}),g(a(y),"undirectedSize",function(){return y._undirectedSize}),g(a(y),"selfLoopCount",function(){return y._directedSelfLoopCount+y._undirectedSelfLoopCount}),g(a(y),"directedSelfLoopCount",function(){return y._directedSelfLoopCount}),g(a(y),"undirectedSelfLoopCount",function(){return y._undirectedSelfLoopCount}),g(a(y),"multi",y._options.multi),g(a(y),"type",y._options.type),g(a(y),"allowSelfLoops",y._options.allowSelfLoops),g(a(y),"implementation",function(){return"graphology"}),y}e(S,x);var b=S.prototype;return b._resetInstanceCounters=function(){this._directedSize=0,this._undirectedSize=0,this._directedSelfLoopCount=0,this._undirectedSelfLoopCount=0},b.hasNode=function(f){return this._nodes.has(""+f)},b.hasDirectedEdge=function(f,y){if(this.type==="undirected")return!1;if(arguments.length===1){var E=""+f,_=this._edges.get(E);return!!_&&!_.undirected}if(arguments.length===2){f=""+f,y=""+y;var M=this._nodes.get(f);return!!M&&M.out.hasOwnProperty(y)}throw new de("Graph.hasDirectedEdge: invalid arity (".concat(arguments.length,", instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target."))},b.hasUndirectedEdge=function(f,y){if(this.type==="directed")return!1;if(arguments.length===1){var E=""+f,_=this._edges.get(E);return!!_&&_.undirected}if(arguments.length===2){f=""+f,y=""+y;var M=this._nodes.get(f);return!!M&&M.undirected.hasOwnProperty(y)}throw new de("Graph.hasDirectedEdge: invalid arity (".concat(arguments.length,", instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target."))},b.hasEdge=function(f,y){if(arguments.length===1){var E=""+f;return this._edges.has(E)}if(arguments.length===2){f=""+f,y=""+y;var _=this._nodes.get(f);return!!_&&(_.out!==void 0&&_.out.hasOwnProperty(y)||_.undirected!==void 0&&_.undirected.hasOwnProperty(y))}throw new de("Graph.hasEdge: invalid arity (".concat(arguments.length,", instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target."))},b.directedEdge=function(f,y){if(this.type!=="undirected"){if(f=""+f,y=""+y,this.multi)throw new ve("Graph.directedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.directedEdges instead.");var E=this._nodes.get(f);if(!E)throw new oe('Graph.directedEdge: could not find the "'.concat(f,'" source node in the graph.'));if(!this._nodes.has(y))throw new oe('Graph.directedEdge: could not find the "'.concat(y,'" target node in the graph.'));var _=E.out&&E.out[y]||void 0;return _?_.key:void 0}},b.undirectedEdge=function(f,y){if(this.type!=="directed"){if(f=""+f,y=""+y,this.multi)throw new ve("Graph.undirectedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.undirectedEdges instead.");var E=this._nodes.get(f);if(!E)throw new oe('Graph.undirectedEdge: could not find the "'.concat(f,'" source node in the graph.'));if(!this._nodes.has(y))throw new oe('Graph.undirectedEdge: could not find the "'.concat(y,'" target node in the graph.'));var _=E.undirected&&E.undirected[y]||void 0;return _?_.key:void 0}},b.edge=function(f,y){if(this.multi)throw new ve("Graph.edge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.edges instead.");f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.edge: could not find the "'.concat(f,'" source node in the graph.'));if(!this._nodes.has(y))throw new oe('Graph.edge: could not find the "'.concat(y,'" target node in the graph.'));var _=E.out&&E.out[y]||E.undirected&&E.undirected[y]||void 0;if(_)return _.key},b.areDirectedNeighbors=function(f,y){f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.areDirectedNeighbors: could not find the "'.concat(f,'" node in the graph.'));return this.type!=="undirected"&&(y in E.in||y in E.out)},b.areOutNeighbors=function(f,y){f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.areOutNeighbors: could not find the "'.concat(f,'" node in the graph.'));return this.type!=="undirected"&&y in E.out},b.areInNeighbors=function(f,y){f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.areInNeighbors: could not find the "'.concat(f,'" node in the graph.'));return this.type!=="undirected"&&y in E.in},b.areUndirectedNeighbors=function(f,y){f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.areUndirectedNeighbors: could not find the "'.concat(f,'" node in the graph.'));return this.type!=="directed"&&y in E.undirected},b.areNeighbors=function(f,y){f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.areNeighbors: could not find the "'.concat(f,'" node in the graph.'));return this.type!=="undirected"&&(y in E.in||y in E.out)||this.type!=="directed"&&y in E.undirected},b.areInboundNeighbors=function(f,y){f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.areInboundNeighbors: could not find the "'.concat(f,'" node in the graph.'));return this.type!=="undirected"&&y in E.in||this.type!=="directed"&&y in E.undirected},b.areOutboundNeighbors=function(f,y){f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.areOutboundNeighbors: could not find the "'.concat(f,'" node in the graph.'));return this.type!=="undirected"&&y in E.out||this.type!=="directed"&&y in E.undirected},b.inDegree=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.inDegree: could not find the "'.concat(f,'" node in the graph.'));return this.type==="undirected"?0:y.inDegree},b.outDegree=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.outDegree: could not find the "'.concat(f,'" node in the graph.'));return this.type==="undirected"?0:y.outDegree},b.directedDegree=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.directedDegree: could not find the "'.concat(f,'" node in the graph.'));return this.type==="undirected"?0:y.inDegree+y.outDegree},b.undirectedDegree=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.undirectedDegree: could not find the "'.concat(f,'" node in the graph.'));return this.type==="directed"?0:y.undirectedDegree},b.inboundDegree=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.inboundDegree: could not find the "'.concat(f,'" node in the graph.'));var E=0;return this.type!=="directed"&&(E+=y.undirectedDegree),this.type!=="undirected"&&(E+=y.inDegree),E},b.outboundDegree=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.outboundDegree: could not find the "'.concat(f,'" node in the graph.'));var E=0;return this.type!=="directed"&&(E+=y.undirectedDegree),this.type!=="undirected"&&(E+=y.outDegree),E},b.degree=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.degree: could not find the "'.concat(f,'" node in the graph.'));var E=0;return this.type!=="directed"&&(E+=y.undirectedDegree),this.type!=="undirected"&&(E+=y.inDegree+y.outDegree),E},b.inDegreeWithoutSelfLoops=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.inDegreeWithoutSelfLoops: could not find the "'.concat(f,'" node in the graph.'));return this.type==="undirected"?0:y.inDegree-y.directedLoops},b.outDegreeWithoutSelfLoops=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.outDegreeWithoutSelfLoops: could not find the "'.concat(f,'" node in the graph.'));return this.type==="undirected"?0:y.outDegree-y.directedLoops},b.directedDegreeWithoutSelfLoops=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.directedDegreeWithoutSelfLoops: could not find the "'.concat(f,'" node in the graph.'));return this.type==="undirected"?0:y.inDegree+y.outDegree-2*y.directedLoops},b.undirectedDegreeWithoutSelfLoops=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.undirectedDegreeWithoutSelfLoops: could not find the "'.concat(f,'" node in the graph.'));return this.type==="directed"?0:y.undirectedDegree-2*y.undirectedLoops},b.inboundDegreeWithoutSelfLoops=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.inboundDegreeWithoutSelfLoops: could not find the "'.concat(f,'" node in the graph.'));var E=0,_=0;return this.type!=="directed"&&(E+=y.undirectedDegree,_+=2*y.undirectedLoops),this.type!=="undirected"&&(E+=y.inDegree,_+=y.directedLoops),E-_},b.outboundDegreeWithoutSelfLoops=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.outboundDegreeWithoutSelfLoops: could not find the "'.concat(f,'" node in the graph.'));var E=0,_=0;return this.type!=="directed"&&(E+=y.undirectedDegree,_+=2*y.undirectedLoops),this.type!=="undirected"&&(E+=y.outDegree,_+=y.directedLoops),E-_},b.degreeWithoutSelfLoops=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.degreeWithoutSelfLoops: could not find the "'.concat(f,'" node in the graph.'));var E=0,_=0;return this.type!=="directed"&&(E+=y.undirectedDegree,_+=2*y.undirectedLoops),this.type!=="undirected"&&(E+=y.inDegree+y.outDegree,_+=2*y.directedLoops),E-_},b.source=function(f){f=""+f;var y=this._edges.get(f);if(!y)throw new oe('Graph.source: could not find the "'.concat(f,'" edge in the graph.'));return y.source.key},b.target=function(f){f=""+f;var y=this._edges.get(f);if(!y)throw new oe('Graph.target: could not find the "'.concat(f,'" edge in the graph.'));return y.target.key},b.extremities=function(f){f=""+f;var y=this._edges.get(f);if(!y)throw new oe('Graph.extremities: could not find the "'.concat(f,'" edge in the graph.'));return[y.source.key,y.target.key]},b.opposite=function(f,y){f=""+f,y=""+y;var E=this._edges.get(y);if(!E)throw new oe('Graph.opposite: could not find the "'.concat(y,'" edge in the graph.'));var _=E.source.key,M=E.target.key;if(f===_)return M;if(f===M)return _;throw new oe('Graph.opposite: the "'.concat(f,'" node is not attached to the "').concat(y,'" edge (').concat(_,", ").concat(M,")."))},b.hasExtremity=function(f,y){f=""+f,y=""+y;var E=this._edges.get(f);if(!E)throw new oe('Graph.hasExtremity: could not find the "'.concat(f,'" edge in the graph.'));return E.source.key===y||E.target.key===y},b.isUndirected=function(f){f=""+f;var y=this._edges.get(f);if(!y)throw new oe('Graph.isUndirected: could not find the "'.concat(f,'" edge in the graph.'));return y.undirected},b.isDirected=function(f){f=""+f;var y=this._edges.get(f);if(!y)throw new oe('Graph.isDirected: could not find the "'.concat(f,'" edge in the graph.'));return!y.undirected},b.isSelfLoop=function(f){f=""+f;var y=this._edges.get(f);if(!y)throw new oe('Graph.isSelfLoop: could not find the "'.concat(f,'" edge in the graph.'));return y.source===y.target},b.addNode=function(f,y){var E=function(_,M,H){if(H&&!h(H))throw new de('Graph.addNode: invalid attributes. Expecting an object but got "'.concat(H,'"'));if(M=""+M,H=H||{},_._nodes.has(M))throw new ve('Graph.addNode: the "'.concat(M,'" node already exist in the graph.'));var se=new _.NodeDataClass(M,H);return _._nodes.set(M,se),_.emit("nodeAdded",{key:M,attributes:H}),se}(this,f,y);return E.key},b.mergeNode=function(f,y){if(y&&!h(y))throw new de('Graph.mergeNode: invalid attributes. Expecting an object but got "'.concat(y,'"'));f=""+f,y=y||{};var E=this._nodes.get(f);return E?(y&&(l(E.attributes,y),this.emit("nodeAttributesUpdated",{type:"merge",key:f,attributes:E.attributes,data:y})),[f,!1]):(E=new this.NodeDataClass(f,y),this._nodes.set(f,E),this.emit("nodeAdded",{key:f,attributes:y}),[f,!0])},b.updateNode=function(f,y){if(y&&typeof y!="function")throw new de('Graph.updateNode: invalid updater function. Expecting a function but got "'.concat(y,'"'));f=""+f;var E=this._nodes.get(f);if(E){if(y){var _=E.attributes;E.attributes=y(_),this.emit("nodeAttributesUpdated",{type:"replace",key:f,attributes:E.attributes})}return[f,!1]}var M=y?y({}):{};return E=new this.NodeDataClass(f,M),this._nodes.set(f,E),this.emit("nodeAdded",{key:f,attributes:M}),[f,!0]},b.dropNode=function(f){f=""+f;var y,E=this._nodes.get(f);if(!E)throw new oe('Graph.dropNode: could not find the "'.concat(f,'" node in the graph.'));if(this.type!=="undirected"){for(var _ in E.out){y=E.out[_];do L0(this,y),y=y.next;while(y)}for(var M in E.in){y=E.in[M];do L0(this,y),y=y.next;while(y)}}if(this.type!=="directed")for(var H in E.undirected){y=E.undirected[H];do L0(this,y),y=y.next;while(y)}this._nodes.delete(f),this.emit("nodeDropped",{key:f,attributes:E.attributes})},b.dropEdge=function(f){var y;if(arguments.length>1){var E=""+arguments[0],_=""+arguments[1];if(!(y=c(this,E,_,this.type)))throw new oe('Graph.dropEdge: could not find the "'.concat(E,'" -> "').concat(_,'" edge in the graph.'))}else if(f=""+f,!(y=this._edges.get(f)))throw new oe('Graph.dropEdge: could not find the "'.concat(f,'" edge in the graph.'));return L0(this,y),this},b.dropDirectedEdge=function(f,y){if(arguments.length<2)throw new ve("Graph.dropDirectedEdge: it does not make sense to try and drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new ve("Graph.dropDirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");var E=c(this,f=""+f,y=""+y,"directed");if(!E)throw new oe('Graph.dropDirectedEdge: could not find a "'.concat(f,'" -> "').concat(y,'" edge in the graph.'));return L0(this,E),this},b.dropUndirectedEdge=function(f,y){if(arguments.length<2)throw new ve("Graph.dropUndirectedEdge: it does not make sense to drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new ve("Graph.dropUndirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");var E=c(this,f,y,"undirected");if(!E)throw new oe('Graph.dropUndirectedEdge: could not find a "'.concat(f,'" -> "').concat(y,'" edge in the graph.'));return L0(this,E),this},b.clear=function(){this._edges.clear(),this._nodes.clear(),this._resetInstanceCounters(),this.emit("cleared")},b.clearEdges=function(){for(var f,y=this._nodes.values();(f=y.next()).done!==!0;)f.value.clear();this._edges.clear(),this._resetInstanceCounters(),this.emit("edgesCleared")},b.getAttribute=function(f){return this._attributes[f]},b.getAttributes=function(){return this._attributes},b.hasAttribute=function(f){return this._attributes.hasOwnProperty(f)},b.setAttribute=function(f,y){return this._attributes[f]=y,this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:f}),this},b.updateAttribute=function(f,y){if(typeof y!="function")throw new de("Graph.updateAttribute: updater should be a function.");var E=this._attributes[f];return this._attributes[f]=y(E),this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:f}),this},b.removeAttribute=function(f){return delete this._attributes[f],this.emit("attributesUpdated",{type:"remove",attributes:this._attributes,name:f}),this},b.replaceAttributes=function(f){if(!h(f))throw new de("Graph.replaceAttributes: provided attributes are not a plain object.");return this._attributes=f,this.emit("attributesUpdated",{type:"replace",attributes:this._attributes}),this},b.mergeAttributes=function(f){if(!h(f))throw new de("Graph.mergeAttributes: provided attributes are not a plain object.");return l(this._attributes,f),this.emit("attributesUpdated",{type:"merge",attributes:this._attributes,data:f}),this},b.updateAttributes=function(f){if(typeof f!="function")throw new de("Graph.updateAttributes: provided updater is not a function.");return this._attributes=f(this._attributes),this.emit("attributesUpdated",{type:"update",attributes:this._attributes}),this},b.updateEachNodeAttributes=function(f,y){if(typeof f!="function")throw new de("Graph.updateEachNodeAttributes: expecting an updater function.");if(y&&!v(y))throw new de("Graph.updateEachNodeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");for(var E,_,M=this._nodes.values();(E=M.next()).done!==!0;)(_=E.value).attributes=f(_.key,_.attributes);this.emit("eachNodeAttributesUpdated",{hints:y||null})},b.updateEachEdgeAttributes=function(f,y){if(typeof f!="function")throw new de("Graph.updateEachEdgeAttributes: expecting an updater function.");if(y&&!v(y))throw new de("Graph.updateEachEdgeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");for(var E,_,M,H,se=this._edges.values();(E=se.next()).done!==!0;)M=(_=E.value).source,H=_.target,_.attributes=f(_.key,_.attributes,M.key,H.key,M.attributes,H.attributes,_.undirected);this.emit("eachEdgeAttributesUpdated",{hints:y||null})},b.forEachAdjacencyEntry=function(f){if(typeof f!="function")throw new de("Graph.forEachAdjacencyEntry: expecting a callback.");V(!1,!1,!1,this,f)},b.forEachAdjacencyEntryWithOrphans=function(f){if(typeof f!="function")throw new de("Graph.forEachAdjacencyEntryWithOrphans: expecting a callback.");V(!1,!1,!0,this,f)},b.forEachAssymetricAdjacencyEntry=function(f){if(typeof f!="function")throw new de("Graph.forEachAssymetricAdjacencyEntry: expecting a callback.");V(!1,!0,!1,this,f)},b.forEachAssymetricAdjacencyEntryWithOrphans=function(f){if(typeof f!="function")throw new de("Graph.forEachAssymetricAdjacencyEntryWithOrphans: expecting a callback.");V(!1,!0,!0,this,f)},b.nodes=function(){return typeof Array.from=="function"?Array.from(this._nodes.keys()):Dt(this._nodes.keys(),this._nodes.size)},b.forEachNode=function(f){if(typeof f!="function")throw new de("Graph.forEachNode: expecting a callback.");for(var y,E,_=this._nodes.values();(y=_.next()).done!==!0;)f((E=y.value).key,E.attributes)},b.findNode=function(f){if(typeof f!="function")throw new de("Graph.findNode: expecting a callback.");for(var y,E,_=this._nodes.values();(y=_.next()).done!==!0;)if(f((E=y.value).key,E.attributes))return E.key},b.mapNodes=function(f){if(typeof f!="function")throw new de("Graph.mapNode: expecting a callback.");for(var y,E,_=this._nodes.values(),M=new Array(this.order),H=0;(y=_.next()).done!==!0;)E=y.value,M[H++]=f(E.key,E.attributes);return M},b.someNode=function(f){if(typeof f!="function")throw new de("Graph.someNode: expecting a callback.");for(var y,E,_=this._nodes.values();(y=_.next()).done!==!0;)if(f((E=y.value).key,E.attributes))return!0;return!1},b.everyNode=function(f){if(typeof f!="function")throw new de("Graph.everyNode: expecting a callback.");for(var y,E,_=this._nodes.values();(y=_.next()).done!==!0;)if(!f((E=y.value).key,E.attributes))return!1;return!0},b.filterNodes=function(f){if(typeof f!="function")throw new de("Graph.filterNodes: expecting a callback.");for(var y,E,_=this._nodes.values(),M=[];(y=_.next()).done!==!0;)f((E=y.value).key,E.attributes)&&M.push(E.key);return M},b.reduceNodes=function(f,y){if(typeof f!="function")throw new de("Graph.reduceNodes: expecting a callback.");if(arguments.length<2)throw new de("Graph.reduceNodes: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.");for(var E,_,M=y,H=this._nodes.values();(E=H.next()).done!==!0;)M=f(M,(_=E.value).key,_.attributes);return M},b.nodeEntries=function(){var f=this._nodes.values();return new ye(function(){var y=f.next();if(y.done)return y;var E=y.value;return{value:{node:E.key,attributes:E.attributes},done:!1}})},b.export=function(){var f=this,y=new Array(this._nodes.size),E=0;this._nodes.forEach(function(M,H){y[E++]=function(se,ie){var J={key:se};return d(ie.attributes)||(J.attributes=l({},ie.attributes)),J}(H,M)});var _=new Array(this._edges.size);return E=0,this._edges.forEach(function(M,H){_[E++]=function(se,ie,J){var fe={key:ie,source:J.source.key,target:J.target.key};return d(J.attributes)||(fe.attributes=l({},J.attributes)),se==="mixed"&&J.undirected&&(fe.undirected=!0),fe}(f.type,H,M)}),{options:{type:this.type,multi:this.multi,allowSelfLoops:this.allowSelfLoops},attributes:this.getAttributes(),nodes:y,edges:_}},b.import=function(f){var y,E,_,M,H,se=this,ie=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(f instanceof S)return f.forEachNode(function(lr,Qr){ie?se.mergeNode(lr,Qr):se.addNode(lr,Qr)}),f.forEachEdge(function(lr,Qr,Ru,Ou,X_,K_,N6){ie?N6?se.mergeUndirectedEdgeWithKey(lr,Ru,Ou,Qr):se.mergeDirectedEdgeWithKey(lr,Ru,Ou,Qr):N6?se.addUndirectedEdgeWithKey(lr,Ru,Ou,Qr):se.addDirectedEdgeWithKey(lr,Ru,Ou,Qr)}),this;if(!h(f))throw new de("Graph.import: invalid argument. Expecting a serialized graph or, alternatively, a Graph instance.");if(f.attributes){if(!h(f.attributes))throw new de("Graph.import: invalid attributes. Expecting a plain object.");ie?this.mergeAttributes(f.attributes):this.replaceAttributes(f.attributes)}if(f.nodes){if(_=f.nodes,!Array.isArray(_))throw new de("Graph.import: invalid nodes. Expecting an array.");for(y=0,E=_.length;y",ge="",Oe=se.source.key,nt=se.target.key;se.undirected&&Oe>nt&&(J=Oe,Oe=nt,nt=J);var Et="(".concat(Oe,")").concat(fe,"(").concat(nt,")");ie.startsWith("geid_")?f.multi&&(_[Et]===void 0?_[Et]=0:_[Et]++,ge+="".concat(_[Et],". ")):ge+="[".concat(ie,"]: "),E[ge+=Et]=se.attributes});var M={};for(var H in this)this.hasOwnProperty(H)&&!Ze.has(H)&&typeof this[H]!="function"&&r(H)!=="symbol"&&(M[H]=this[H]);return M.attributes=this._attributes,M.nodes=y,M.edges=E,p(M,"constructor",this.constructor),M},S}(w.exports.EventEmitter);typeof Symbol<"u"&&(Re.prototype[Symbol.for("nodejs.util.inspect.custom")]=Re.prototype.inspect),[{name:function(x){return"".concat(x,"Edge")},generateKey:!0},{name:function(x){return"".concat(x,"DirectedEdge")},generateKey:!0,type:"directed"},{name:function(x){return"".concat(x,"UndirectedEdge")},generateKey:!0,type:"undirected"},{name:function(x){return"".concat(x,"EdgeWithKey")}},{name:function(x){return"".concat(x,"DirectedEdgeWithKey")},type:"directed"},{name:function(x){return"".concat(x,"UndirectedEdgeWithKey")},type:"undirected"}].forEach(function(x){["add","merge","update"].forEach(function(S){var b=x.name(S),f=S==="add"?j0:dt;x.generateKey?Re.prototype[b]=function(y,E,_){return f(this,b,!0,(x.type||this.type)==="undirected",null,y,E,_,S==="update")}:Re.prototype[b]=function(y,E,_,M){return f(this,b,!1,(x.type||this.type)==="undirected",y,E,_,M,S==="update")}})}),function(x){p0.forEach(function(S){var b=S.name,f=S.attacher;f(x,b("Node"),0),f(x,b("Source"),1),f(x,b("Target"),2),f(x,b("Opposite"),3)})}(Re),function(x){i0.forEach(function(S){var b=S.name,f=S.attacher;f(x,b("Edge"),"mixed"),f(x,b("DirectedEdge"),"directed"),f(x,b("UndirectedEdge"),"undirected")})}(Re),function(x){Fn.forEach(function(S){(function(b,f){var y=f.name,E=f.type,_=f.direction;b.prototype[y]=function(M,H){if(E!=="mixed"&&this.type!=="mixed"&&E!==this.type)return[];if(!arguments.length)return In(this,E);if(arguments.length===1){M=""+M;var se=this._nodes.get(M);if(se===void 0)throw new oe("Graph.".concat(y,': could not find the "').concat(M,'" node in the graph.'));return Dl(this.multi,E==="mixed"?this.type:E,_,se)}if(arguments.length===2){M=""+M,H=""+H;var ie=this._nodes.get(M);if(!ie)throw new oe("Graph.".concat(y,': could not find the "').concat(M,'" source node in the graph.'));if(!this._nodes.has(H))throw new oe("Graph.".concat(y,': could not find the "').concat(H,'" target node in the graph.'));return Mn(E,this.multi,_,ie,H)}throw new de("Graph.".concat(y,": too many arguments (expecting 0, 1 or 2 and got ").concat(arguments.length,")."))}})(x,S),function(b,f){var y=f.name,E=f.type,_=f.direction,M="forEach"+y[0].toUpperCase()+y.slice(1,-1);b.prototype[M]=function(J,fe,ge){if(E==="mixed"||this.type==="mixed"||E===this.type){if(arguments.length===1)return Fo(!1,this,E,ge=J);if(arguments.length===2){J=""+J,ge=fe;var Oe=this._nodes.get(J);if(Oe===void 0)throw new oe("Graph.".concat(M,': could not find the "').concat(J,'" node in the graph.'));return Ln(!1,this.multi,E==="mixed"?this.type:E,_,Oe,ge)}if(arguments.length===3){J=""+J,fe=""+fe;var nt=this._nodes.get(J);if(!nt)throw new oe("Graph.".concat(M,': could not find the "').concat(J,'" source node in the graph.'));if(!this._nodes.has(fe))throw new oe("Graph.".concat(M,': could not find the "').concat(fe,'" target node in the graph.'));return Ns(!1,E,this.multi,_,nt,fe,ge)}throw new de("Graph.".concat(M,": too many arguments (expecting 1, 2 or 3 and got ").concat(arguments.length,")."))}};var H="map"+y[0].toUpperCase()+y.slice(1);b.prototype[H]=function(){var J,fe=Array.prototype.slice.call(arguments),ge=fe.pop();if(fe.length===0){var Oe=0;E!=="directed"&&(Oe+=this.undirectedSize),E!=="undirected"&&(Oe+=this.directedSize),J=new Array(Oe);var nt=0;fe.push(function(Et,m0,a0,ar,wr,lr,Qr){J[nt++]=ge(Et,m0,a0,ar,wr,lr,Qr)})}else J=[],fe.push(function(Et,m0,a0,ar,wr,lr,Qr){J.push(ge(Et,m0,a0,ar,wr,lr,Qr))});return this[M].apply(this,fe),J};var se="filter"+y[0].toUpperCase()+y.slice(1);b.prototype[se]=function(){var J=Array.prototype.slice.call(arguments),fe=J.pop(),ge=[];return J.push(function(Oe,nt,Et,m0,a0,ar,wr){fe(Oe,nt,Et,m0,a0,ar,wr)&&ge.push(Oe)}),this[M].apply(this,J),ge};var ie="reduce"+y[0].toUpperCase()+y.slice(1);b.prototype[ie]=function(){var J,fe,ge=Array.prototype.slice.call(arguments);if(ge.length<2||ge.length>4)throw new de("Graph.".concat(ie,": invalid number of arguments (expecting 2, 3 or 4 and got ").concat(ge.length,")."));if(typeof ge[ge.length-1]=="function"&&typeof ge[ge.length-2]!="function")throw new de("Graph.".concat(ie,": missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array."));ge.length===2?(J=ge[0],fe=ge[1],ge=[]):ge.length===3?(J=ge[1],fe=ge[2],ge=[ge[0]]):ge.length===4&&(J=ge[2],fe=ge[3],ge=[ge[0],ge[1]]);var Oe=fe;return ge.push(function(nt,Et,m0,a0,ar,wr,lr){Oe=J(Oe,nt,Et,m0,a0,ar,wr,lr)}),this[M].apply(this,ge),Oe}}(x,S),function(b,f){var y=f.name,E=f.type,_=f.direction,M="find"+y[0].toUpperCase()+y.slice(1,-1);b.prototype[M]=function(ie,J,fe){if(E!=="mixed"&&this.type!=="mixed"&&E!==this.type)return!1;if(arguments.length===1)return Fo(!0,this,E,fe=ie);if(arguments.length===2){ie=""+ie,fe=J;var ge=this._nodes.get(ie);if(ge===void 0)throw new oe("Graph.".concat(M,': could not find the "').concat(ie,'" node in the graph.'));return Ln(!0,this.multi,E==="mixed"?this.type:E,_,ge,fe)}if(arguments.length===3){ie=""+ie,J=""+J;var Oe=this._nodes.get(ie);if(!Oe)throw new oe("Graph.".concat(M,': could not find the "').concat(ie,'" source node in the graph.'));if(!this._nodes.has(J))throw new oe("Graph.".concat(M,': could not find the "').concat(J,'" target node in the graph.'));return Ns(!0,E,this.multi,_,Oe,J,fe)}throw new de("Graph.".concat(M,": too many arguments (expecting 1, 2 or 3 and got ").concat(arguments.length,")."))};var H="some"+y[0].toUpperCase()+y.slice(1,-1);b.prototype[H]=function(){var ie=Array.prototype.slice.call(arguments),J=ie.pop();return ie.push(function(fe,ge,Oe,nt,Et,m0,a0){return J(fe,ge,Oe,nt,Et,m0,a0)}),!!this[M].apply(this,ie)};var se="every"+y[0].toUpperCase()+y.slice(1,-1);b.prototype[se]=function(){var ie=Array.prototype.slice.call(arguments),J=ie.pop();return ie.push(function(fe,ge,Oe,nt,Et,m0,a0){return!J(fe,ge,Oe,nt,Et,m0,a0)}),!this[M].apply(this,ie)}}(x,S),function(b,f){var y=f.name,E=f.type,_=f.direction,M=y.slice(0,-1)+"Entries";b.prototype[M]=function(H,se){if(E!=="mixed"&&this.type!=="mixed"&&E!==this.type)return ye.empty();if(!arguments.length)return xl(this,E);if(arguments.length===1){H=""+H;var ie=this._nodes.get(H);if(!ie)throw new oe("Graph.".concat(M,': could not find the "').concat(H,'" node in the graph.'));return Ao(E,_,ie)}if(arguments.length===2){H=""+H,se=""+se;var J=this._nodes.get(H);if(!J)throw new oe("Graph.".concat(M,': could not find the "').concat(H,'" source node in the graph.'));if(!this._nodes.has(se))throw new oe("Graph.".concat(M,': could not find the "').concat(se,'" target node in the graph.'));return Nn(E,_,J,se)}throw new de("Graph.".concat(M,": too many arguments (expecting 0, 1 or 2 and got ").concat(arguments.length,")."))}}(x,S)})}(Re),function(x){ko.forEach(function(S){N(x,S),function(b,f){var y=f.name,E=f.type,_=f.direction,M="forEach"+y[0].toUpperCase()+y.slice(1,-1);b.prototype[M]=function(J,fe){if(E==="mixed"||this.type==="mixed"||E===this.type){J=""+J;var ge=this._nodes.get(J);if(ge===void 0)throw new oe("Graph.".concat(M,': could not find the "').concat(J,'" node in the graph.'));D(!1,E==="mixed"?this.type:E,_,ge,fe)}};var H="map"+y[0].toUpperCase()+y.slice(1);b.prototype[H]=function(J,fe){var ge=[];return this[M](J,function(Oe,nt){ge.push(fe(Oe,nt))}),ge};var se="filter"+y[0].toUpperCase()+y.slice(1);b.prototype[se]=function(J,fe){var ge=[];return this[M](J,function(Oe,nt){fe(Oe,nt)&&ge.push(Oe)}),ge};var ie="reduce"+y[0].toUpperCase()+y.slice(1);b.prototype[ie]=function(J,fe,ge){if(arguments.length<3)throw new de("Graph.".concat(ie,": missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array."));var Oe=ge;return this[M](J,function(nt,Et){Oe=fe(Oe,nt,Et)}),Oe}}(x,S),function(b,f){var y=f.name,E=f.type,_=f.direction,M=y[0].toUpperCase()+y.slice(1,-1),H="find"+M;b.prototype[H]=function(J,fe){if(E==="mixed"||this.type==="mixed"||E===this.type){J=""+J;var ge=this._nodes.get(J);if(ge===void 0)throw new oe("Graph.".concat(H,': could not find the "').concat(J,'" node in the graph.'));return D(!0,E==="mixed"?this.type:E,_,ge,fe)}};var se="some"+M;b.prototype[se]=function(J,fe){return!!this[H](J,fe)};var ie="every"+M;b.prototype[ie]=function(J,fe){return!this[H](J,function(ge,Oe){return!fe(ge,Oe)})}}(x,S),G(x,S)})}(Re);var f0=function(x){function S(b){var f=l({type:"directed"},b);if("multi"in f&&f.multi!==!1)throw new de("DirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(f.type!=="directed")throw new de('DirectedGraph.from: inconsistent "'+f.type+'" type in given options!');return x.call(this,f)||this}return e(S,x),S}(Re),w0=function(x){function S(b){var f=l({type:"undirected"},b);if("multi"in f&&f.multi!==!1)throw new de("UndirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(f.type!=="undirected")throw new de('UndirectedGraph.from: inconsistent "'+f.type+'" type in given options!');return x.call(this,f)||this}return e(S,x),S}(Re),g0=function(x){function S(b){var f=l({multi:!0},b);if("multi"in f&&f.multi!==!0)throw new de("MultiGraph.from: inconsistent indication that the graph should be simple in given options!");return x.call(this,f)||this}return e(S,x),S}(Re),Ji=function(x){function S(b){var f=l({type:"directed",multi:!0},b);if("multi"in f&&f.multi!==!0)throw new de("MultiDirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(f.type!=="directed")throw new de('MultiDirectedGraph.from: inconsistent "'+f.type+'" type in given options!');return x.call(this,f)||this}return e(S,x),S}(Re),es=function(x){function S(b){var f=l({type:"undirected",multi:!0},b);if("multi"in f&&f.multi!==!0)throw new de("MultiUndirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(f.type!=="undirected")throw new de('MultiUndirectedGraph.from: inconsistent "'+f.type+'" type in given options!');return x.call(this,f)||this}return e(S,x),S}(Re);function Io(x){x.from=function(S,b){var f=l({},S.options,b),y=new x(f);return y.import(S),y}}return Io(Re),Io(f0),Io(w0),Io(g0),Io(Ji),Io(es),Re.Graph=Re,Re.DirectedGraph=f0,Re.UndirectedGraph=w0,Re.MultiGraph=g0,Re.MultiDirectedGraph=Ji,Re.MultiUndirectedGraph=es,Re.InvalidArgumentsGraphError=de,Re.NotFoundGraphError=oe,Re.UsageGraphError=ve,Re})});var Pt=Pe((Foe,Uf)=>{Uf.exports=function(e){return e!==null&&typeof e=="object"&&typeof e.addUndirectedEdgeWithKey=="function"&&typeof e.dropNode=="function"&&typeof e.multi=="boolean"}});var Pc=Pe((Aoe,Vf)=>{function Bi(r){if(typeof r!="function")throw new Error("obliterator/iterator: expecting a function!");this.next=r}typeof Symbol<"u"&&(Bi.prototype[Symbol.iterator]=function(){return this});Bi.of=function(){var r=arguments,e=r.length,t=0;return new Bi(function(){return t>=e?{done:!0}:{done:!1,value:r[t++]}})};Bi.empty=function(){var r=new Bi(function(){return{done:!0}});return r};Bi.fromSequence=function(r){var e=0,t=r.length;return new Bi(function(){return e>=t?{done:!0}:{done:!1,value:r[e++]}})};Bi.is=function(r){return r instanceof Bi?!0:typeof r=="object"&&r!==null&&typeof r.next=="function"};Vf.exports=Bi});var zf=Pe(a8=>{a8.ARRAY_BUFFER_SUPPORT=typeof ArrayBuffer<"u";a8.SYMBOL_SUPPORT=typeof Symbol<"u"});var Id=Pe((Ioe,Hf)=>{var Wf=zf(),jS=Wf.ARRAY_BUFFER_SUPPORT,$S=Wf.SYMBOL_SUPPORT;Hf.exports=function(e,t){var i,s,n,o,a;if(!e)throw new Error("obliterator/forEach: invalid iterable.");if(typeof t!="function")throw new Error("obliterator/forEach: expecting a callback.");if(Array.isArray(e)||jS&&ArrayBuffer.isView(e)||typeof e=="string"||e.toString()==="[object Arguments]"){for(n=0,o=e.length;n{var jf=Pc(),qS=Id();function $t(){this.clear()}$t.prototype.clear=function(){this.items=[],this.offset=0,this.size=0};$t.prototype.enqueue=function(r){return this.items.push(r),++this.size};$t.prototype.dequeue=function(){if(this.size){var r=this.items[this.offset];return++this.offset*2>=this.items.length&&(this.items=this.items.slice(this.offset),this.offset=0),this.size--,r}};$t.prototype.peek=function(){if(this.size)return this.items[this.offset]};$t.prototype.forEach=function(r,e){e=arguments.length>1?e:this;for(var t=this.offset,i=0,s=this.items.length;t=r.length)return{done:!0};var t=r[e];return e++,{value:t,done:!1}})};$t.prototype.entries=function(){var r=this.items,e=this.offset,t=0;return new jf(function(){if(e>=r.length)return{done:!0};var i=r[e];return e++,{value:[t++,i],done:!1}})};typeof Symbol<"u"&&($t.prototype[Symbol.iterator]=$t.prototype.values);$t.prototype.toString=function(){return this.toArray().join(",")};$t.prototype.toJSON=function(){return this.toArray()};$t.prototype.inspect=function(){var r=this.toArray();return Object.defineProperty(r,"constructor",{value:$t,enumerable:!1}),r};typeof Symbol<"u"&&($t.prototype[Symbol.for("nodejs.util.inspect.custom")]=$t.prototype.inspect);$t.from=function(r){var e=new $t;return qS(r,function(t){e.enqueue(t)}),e};$t.of=function(){return $t.from(arguments)};$f.exports=$t});var Xf=Pe((Moe,Yf)=>{Yf.exports=function(e,t){var i=t.length;if(i!==0){var s=e.length;e.length+=i;for(var n=0;n{var l8=Pt(),YS=qf(),XS=Xf();function KS(r,e,t){if(!l8(r))throw new Error("graphology-shortest-path: invalid graphology instance.");if(arguments.length<3)throw new Error("graphology-shortest-path: invalid number of arguments. Expecting at least 3.");if(!r.hasNode(e))throw new Error('graphology-shortest-path: the "'+e+'" source node does not exist in the given graph.');if(!r.hasNode(t))throw new Error('graphology-shortest-path: the "'+t+'" target node does not exist in the given graph.');if(e=""+e,t=""+t,e===t)return[e];var i=r.inboundNeighbors.bind(r),s=r.outboundNeighbors.bind(r),n={},o={};n[e]=null,o[t]=null;var a=[e],l=[t],c,h,d,p,g,v,C,w,k=!1;e:for(;a.length&&l.length;)if(a.length<=l.length){for(c=a,a=[],g=0,C=c.length;g{function pn(r){this.graph=r,this.stack=new Array(r.order),this.seen=new Set,this.size=0}pn.prototype.hasAlreadySeenEverything=function(){return this.seen.size===this.graph.order};pn.prototype.countUnseenNodes=function(){return this.graph.order-this.seen.size};pn.prototype.forEachNodeYetUnseen=function(r){var e=this.seen,t=this.graph;t.someNode(function(i,s){if(e.size===t.order)return!0;if(e.has(i))return!1;var n=r(i,s);return!!n})};pn.prototype.has=function(r){return this.seen.has(r)};pn.prototype.push=function(r){var e=this.seen.size;return this.seen.add(r),e===this.seen.size?!1:(this.stack[this.size++]=r,!0)};pn.prototype.pushWith=function(r,e){var t=this.seen.size;return this.seen.add(r),t===this.seen.size?!1:(this.stack[this.size++]=e,!0)};pn.prototype.pop=function(){if(this.size!==0)return this.stack[--this.size]};f5.exports=pn});var g5=Pe(m8=>{function dC(r,e,t){this.node=r,this.attributes=e,this.depth=t}function pC(r){return r[0].toUpperCase()+r.slice(1)}m8.TraversalRecord=dC;m8.capitalize=pC});var x5=Pe(y8=>{var fC=Pt(),gC=g8(),y5=g5(),m5=y5.TraversalRecord,mC=y5.capitalize;function v5(r,e,t,i){if(i=i||{},!fC(r))throw new Error("graphology-traversal/dfs: expecting a graphology instance.");if(typeof t!="function")throw new Error("graphology-traversal/dfs: given callback is not a function.");if(r.order===0)return;var s=new gC(r),n=r["forEach"+mC(i.mode||"outbound")+"Neighbor"].bind(r),o;e===null?o=s.forEachNodeYetUnseen.bind(s):o=function(h){e=""+e,h(e,r.getNodeAttributes(e))};var a,l;function c(h,d){s.pushWith(h,new m5(h,d,a.depth+1))}o(function(h,d){for(s.pushWith(h,new m5(h,d,0));s.size!==0;)a=s.pop(),l=t(a.node,a.attributes,a.depth),l!==!0&&n(a.node,c)})}y8.dfs=function(r,e,t){return v5(r,null,e,t)};y8.dfsFromNode=v5});var v1=Pe(D5=>{D5.copyNode=function(r,e,t){return t=Object.assign({},t),r.addNode(e,t)}});var fn=Pe(Uc=>{Uc.addEdge=function(e,t,i,s,n,o){return t?i==null?e.addUndirectedEdge(s,n,o):e.addUndirectedEdgeWithKey(i,s,n,o):i==null?e.addDirectedEdge(s,n,o):e.addDirectedEdgeWithKey(i,s,n,o)};Uc.copyEdge=function(e,t,i,s,n,o){return o=Object.assign({},o),t?i==null?e.addUndirectedEdge(s,n,o):e.addUndirectedEdgeWithKey(i,s,n,o):i==null?e.addDirectedEdge(s,n,o):e.addDirectedEdgeWithKey(i,s,n,o)};Uc.mergeEdge=function(e,t,i,s,n,o){return t?i==null?e.mergeUndirectedEdge(s,n,o):e.mergeUndirectedEdgeWithKey(i,s,n,o):i==null?e.mergeDirectedEdge(s,n,o):e.mergeDirectedEdgeWithKey(i,s,n,o)};Uc.updateEdge=function(e,t,i,s,n,o){return t?i==null?e.updateUndirectedEdge(s,n,o):e.updateUndirectedEdgeWithKey(i,s,n,o):i==null?e.updateDirectedEdge(s,n,o):e.updateDirectedEdgeWithKey(i,s,n,o)}});var w5=Pe((Lue,C5)=>{var b5=Pt(),E5=v1().copyNode,S5=fn().copyEdge;C5.exports=function(e,t){if(!b5(e)||!b5(t))throw new Error("graphology-operators/disjoint-union: invalid graph.");if(e.multi!==t.multi)throw new Error("graphology-operators/disjoint-union: both graph should be simple or multi.");var i=e.nullCopy();i.mergeAttributes(e.getAttributes());var s={},n={},o=0;return e.forEachNode(function(a,l){s[a]=o,E5(i,o,l),o++}),t.forEachNode(function(a,l){n[a]=o,E5(i,o,l),o++}),o=0,e.forEachEdge(function(a,l,c,h,d,p,g){S5(i,g,o++,s[c],s[h],h,l)}),t.forEachEdge(function(a,l,c,h,d,p,g){S5(i,g,o++,n[c],n[h],h,l)}),i}});var F5=Pe((Mue,_5)=>{var yC=Pt(),T5=fn().copyEdge;_5.exports=function(e){if(!yC(e))throw new Error("graphology-operators/reverse: invalid graph.");var t=e.emptyCopy();return e.forEachEdge(function(i,s,n,o,a,l,c){c?T5(t,!0,i,n,o,s):T5(t,!1,i,o,n,s)}),t}});var I5=Pe((Nue,k5)=>{var vC=Pt(),A5=v1().copyNode,xC=fn().copyEdge;k5.exports=function(e,t){if(!vC(e))throw new Error("graphology-operators/subgraph: invalid graph instance.");var i=e.nullCopy(),s=t;if(Array.isArray(t)){if(t.length===0)return i;t=new Set(t)}if(t instanceof Set){if(t.size===0)return i;s=function(o){return t.has(o)};var n=t;t=new Set,n.forEach(function(o){t.add(""+o)})}if(typeof s!="function")throw new Error("graphology-operators/subgraph: invalid nodes. Expecting an array or a set or a filtering function.");if(typeof t=="function"){if(e.forEachNode(function(o,a){s(o,a)&&A5(i,o,a)}),i.order===0)return i}else t.forEach(function(o){if(!e.hasNode(o))throw new Error('graphology-operators/subgraph: the "'+o+'" node was not found in the graph.');A5(i,o,e.getNodeAttributes(o))});return e.forEachEdge(function(o,a,l,c,h,d,p){s(l,h)&&(c!==l&&!s(c,d)||xC(i,p,o,l,c,a))}),i}});var M5=Pe((Pue,L5)=>{var DC=Pt(),v8=fn().copyEdge;L5.exports=function(e,t){if(!DC(e))throw new Error("graphology-operators/to-directed: expecting a valid graphology instance.");typeof t=="function"&&(t={mergeEdge:t}),t=t||{};var i=typeof t.mergeEdge=="function"?t.mergeEdge:null;if(e.type==="directed")return e.copy();var s=e.emptyCopy({type:"directed"});return e.forEachDirectedEdge(function(n,o,a,l){v8(s,!1,n,a,l,o)}),e.forEachUndirectedEdge(function(n,o,a,l){var c=!e.multi&&e.type==="mixed"&&s.edge(a,l),h=!e.multi&&e.type==="mixed"&&s.edge(l,a);c?s.replaceEdgeAttributes(c,i(s.getEdgeAttributes(c),o)):v8(s,!1,null,a,l,o),a!==l&&(h?s.replaceEdgeAttributes(h,i(s.getEdgeAttributes(h),o)):v8(s,!1,null,l,a,o))}),s}});var P5=Pe((Bue,N5)=>{var bC=Pt();N5.exports=function(e){if(!bC(e))throw new Error("graphology-operators/to-mixed: expecting a valid graphology instance.");return e.copy({type:"mixed"})}});var R5=Pe((Rue,B5)=>{var EC=Pt();B5.exports=function(e){if(!EC(e))throw new Error("graphology-operators/to-multi: expecting a valid graphology instance.");return e.copy({multi:!0})}});var G5=Pe((Oue,O5)=>{var SC=Pt(),CC=fn().copyEdge;O5.exports=function(e,t){if(!SC(e))throw new Error("graphology-operators/to-simple: expecting a valid graphology instance.");typeof t=="function"&&(t={mergeEdge:t}),t=t||{};var i=typeof t.mergeEdge=="function"?t.mergeEdge:null;if(!e.multi)return e.copy();var s=e.emptyCopy({multi:!1});return e.forEachEdge(function(n,o,a,l,c,h,d){var p=d?s.undirectedEdge(a,l):s.directedEdge(a,l);if(p){i&&s.replaceEdgeAttributes(p,i(s.getEdgeAttributes(p),o));return}CC(s,d,n,a,l,o)}),s}});var z5=Pe((Gue,V5)=>{var wC=Pt(),U5=fn().copyEdge;V5.exports=function(e,t){if(!wC(e))throw new Error("graphology-operators/to-undirected: expecting a valid graphology instance.");typeof t=="function"&&(t={mergeEdge:t}),t=t||{};var i=typeof t.mergeEdge=="function"?t.mergeEdge:null;if(e.type==="undirected")return e.copy();var s=e.emptyCopy({type:"undirected"});return e.forEachUndirectedEdge(function(n,o,a,l){U5(s,!0,n,a,l,o)}),e.forEachDirectedEdge(function(n,o,a,l){if(!e.multi){var c=s.edge(a,l);if(c){i&&s.replaceEdgeAttributes(c,i(s.getEdgeAttributes(c),o));return}}U5(s,!0,null,a,l,o)}),s}});var j5=Pe((Uue,H5)=>{var W5=Pt();H5.exports=function(e,t){if(!W5(e)||!W5(t))throw new Error("graphology-operators/union: invalid graph.");if(e.multi!==t.multi)throw new Error("graphology-operators/union: both graph should be simple or multi.");var i=e.copy();return i.import(t,!0),i}});var Vc=Pe(Ui=>{Ui.disjointUnion=w5();Ui.reverse=F5();Ui.subgraph=I5();Ui.toDirected=M5();Ui.toMixed=P5();Ui.toMulti=R5();Ui.toSimple=G5();Ui.toUndirected=z5();Ui.union=j5()});var D8=Pe((she,X5)=>{var gn=Object.create(null);gn.bow=Object.create(null);gn.set=Object.create(null);gn.vector=Object.create(null);gn.bow.cosine=function(r,e){var t=Object.create(null),i=Object.create(null),s,n;for(n in r)t[n]=r[n],i[n]=0;for(n in e)i[n]=e[n],t[n]=t[n]||0;var o=0,a=0,l=0,c,h;for(n in t)c=t[n],h=i[n],o+=c*c,l+=h*h,a+=c*h;return s=o&&l?+(a/(Math.sqrt(o)*Math.sqrt(l))).toFixed(6):!o^!l?0:1,s};gn.set.tversky=function(r,e,t,i){if(r.size===0&&e.size===0)return 1;if(r.size===0||e.size===0)return 0;var s,n,o=0,a,l,c;if(s=isNaN(t)?.5:+t,n=isNaN(i)?.5:+i,s<0||n<0)throw Error("wink-nlp: tversky requires aplha & beta to be positive numbers.");return r.size{Z5.exports=function(e,t){if((typeof e=="string"||e instanceof String)&&typeof document<"u"){var i=document.createElement("DIV");i.innerHTML=e,e=(i.textContent||"").trim()}else typeof e=="object"&&e.textContent&&(e=(e.textContent||"").trim());return e}});var J5=Pe(b8=>{b8.endsWithChar=function(e,t){return t.length>1?t.indexOf(e.slice(-1))>-1:e.slice(-1)===t};b8.endsWith=function(e,t){return e.slice(e.length-t.length)===t}});var eg=Pe(tr=>{var E8,TC=["al","adj","assn","Ave","BSc","MSc","Cell","Ch","Co","cc","Corp","Dem","Dept","ed","eg","Eq","Eqs","est","est","etc","Ex","ext","Fig","fig","Figs","figs","i.e","ie","Inc","inc","Jan","Feb","Mar","Apr","Jun","Jul","Aug","Sep","Sept","Oct","Nov","Dec","jr","mi","Miss","Mrs","Mr","Ms","Mol","mt","mts","no","Nos","PhD","MD","BA","MA","MM","pl","pop","pp","Prof","Dr","pt","Ref","Refs","Rep","repr","rev","Sec","Secs","Sgt","Col","Gen","Rep","Sen","Gov","Lt","Maj","Capt","St","Sr","sr","Jr","jr","Rev","Sun","Mon","Tu","Tue","Tues","Wed","Th","Thu","Thur","Thurs","Fri","Sat","trans","Univ","Viz","Vol","vs","v"];tr.setAbbreviations=function(r){r?E8=r:E8=TC};var S8=tr.isCapitalized=function(r){return/^[A-Z][a-z].*/.test(r)||_C(r)};tr.isSentenceStarter=function(r){return S8(r)||/``|"|'/.test(r.substring(0,2))};tr.isCommonAbbreviation=function(r){var e=r.replace(/[-'`~!@#$%^&*()_|+=?;:'",.<>\{\}\[\]\\\/]/gi,"");return~E8.indexOf(e)};tr.isTimeAbbreviation=function(r,e){if(r==="a.m."||r==="p.m."){var t=e.replace(/\W+/g,"").slice(-3).toLowerCase();if(t==="day")return!0}return!1};tr.isDottedAbbreviation=function(r){var e=r.replace(/[\(\)\[\]\{\}]/g,"").match(/(.\.)*/);return e&&e[0].length>0};tr.isCustomAbbreviation=function(r){return r.length<=3?!0:S8(r)};tr.isNameAbbreviation=function(r,e){if(e.length>0){if(r<5&&e[0].length<6&&S8(e[0]))return!0;var t=e.filter(function(i){return/[A-Z]/.test(i.charAt(0))});return t.length>=3}return!1};var _C=tr.isNumber=function(r,e){return e&&(r=r.slice(e-1,e+2)),!isNaN(r)};tr.isPhoneNr=function(r){return r.match(/^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/)};tr.isURL=function(r){return r.match(/[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/)};tr.isConcatenated=function(r){var e=0;if((e=r.indexOf("."))>-1||(e=r.indexOf("!"))>-1||(e=r.indexOf("?"))>-1){var t=r.charAt(e+1);if(t.match(/[a-zA-Z].*/))return[r.slice(0,e),r.slice(e+1)]}return!1};tr.isBoundaryChar=function(r){return r==="."||r==="!"||r==="?"}});var ig=Pe(rg=>{var FC=Q5(),zc=J5(),W0=eg(),C8=" @~@ ",tg=C8.trim(),AC=new RegExp("\\S",""),kC=new RegExp("\\n+|[-#=_+*]{4,}","g"),IC=new RegExp("\\S+|\\n","g");rg.sentences=function(r,e){if(!r||typeof r!="string"||!r.length)return[];if(!AC.test(r))return[];var t={newline_boundaries:!1,html_boundaries:!1,html_boundaries_tags:["p","div","ul","ol"],sanitize:!1,allowed_tags:!1,preserve_whitespace:!1,abbreviations:null};if(typeof e=="boolean")t.newline_boundaries=!0;else for(var i in e)t[i]=e[i];if(W0.setAbbreviations(t.abbreviations),t.newline_boundaries&&(r=r.replace(kC,C8)),t.html_boundaries){var s="(|<\\/("+t.html_boundaries_tags.join("|")+")>)",n=new RegExp(s,"g");r=r.replace(n,"$1"+C8)}(t.sanitize||t.allowed_tags)&&(t.allowed_tags||(t.allowed_tags=[""]),r=FC(r,{allowedTags:t.allowed_tags}));var o,a;t.preserve_whitespace?(a=r.split(/(|\S+|\n+)/),o=a.filter(function(w,k){return k%2})):o=r.trim().match(IC);var l=0,c=0,h=[],d=[],p=[];if(!o||!o.length)return[];for(var g=0,v=o.length;g-1&&(W0.isNumber(o[g],c)||W0.isDottedAbbreviation(o[g])||W0.isURL(o[g])||W0.isPhoneNr(o[g]))||(h=W0.isConcatenated(o[g]))&&(p.pop(),p.push(h[0]),d.push(p),p=[],l=0,p.push(h[1]))}p.length&&d.push(p),d=d.filter(function(w){return w.length>0});var C=d.slice(1).reduce(function(w,k){var B=w[w.length-1];return B.length===1&&/^.{1,2}[.]$/.test(B[0])&&!/[.]/.test(k[0])?(w.pop(),w.push(B.concat(k)),w):(w.push(k),w)},[d[0]]);return C.map(function(w,k){if(t.preserve_whitespace&&!t.newline_boundaries&&!t.html_boundaries){var B=w.length*2;return k===0&&(B+=1),a.splice(0,B).join("")}return w.join(" ")})}});var cg=Pe(k1=>{var LC=Pt();function qa(r,e,t,i){var s=e+"Centrality";if(!LC(t))throw new Error("graphology-centrality/"+s+": the given graph is not a valid graphology instance.");if(e!=="degree"&&t.type==="undirected")throw new Error("graphology-centrality/"+s+": cannot compute "+e+" centrality on an undirected graph.");i=i||{};var n=i.nodeCentralityAttribute||s,o=t.order-1,a=t[e].bind(t);if(r){t.updateEachNodeAttributes(function(c,h){return h[n]=a(c)/o,h},{attributes:[n]});return}var l={};return t.forEachNode(function(c){l[c]=a(c)/o}),l}var og=qa.bind(null,!1,"degree"),ag=qa.bind(null,!1,"inDegree"),lg=qa.bind(null,!1,"outDegree");og.assign=qa.bind(null,!0,"degree");ag.assign=qa.bind(null,!0,"inDegree");lg.assign=qa.bind(null,!0,"outDegree");k1.degreeCentrality=og;k1.inDegreeCentrality=ag;k1.outDegreeCentrality=lg});var jc=Pe(($he,hg)=>{function MC(r){return!r||typeof r!="object"||typeof r=="function"||Array.isArray(r)||r instanceof Set||r instanceof Map||r instanceof RegExp||r instanceof Date}function ug(r,e){r=r||{};var t={};for(var i in e){var s=r[i],n=e[i];if(!MC(n)){t[i]=ug(s,n);continue}s===void 0?t[i]=n:t[i]=s}return t}hg.exports=ug});var $c=Pe(Vi=>{var NC=Math.pow(2,8)-1,PC=Math.pow(2,16)-1,BC=Math.pow(2,32)-1,RC=Math.pow(2,7)-1,OC=Math.pow(2,15)-1,GC=Math.pow(2,31)-1;Vi.getPointerArray=function(r){var e=r-1;if(e<=NC)return Uint8Array;if(e<=PC)return Uint16Array;if(e<=BC)return Uint32Array;throw new Error("mnemonist: Pointer Array of size > 4294967295 is not supported.")};Vi.getSignedPointerArray=function(r){var e=r-1;return e<=RC?Int8Array:e<=OC?Int16Array:e<=GC?Int32Array:Float64Array};Vi.getNumberType=function(r){return r===(r|0)?Math.sign(r)===-1?r<=127&&r>=-128?Int8Array:r<=32767&&r>=-32768?Int16Array:Int32Array:r<=255?Uint8Array:r<=65535?Uint16Array:Uint32Array:Float64Array};var UC={Uint8Array:1,Int8Array:2,Uint16Array:3,Int16Array:4,Uint32Array:5,Int32Array:6,Float32Array:7,Float64Array:8};Vi.getMinimalRepresentation=function(r,e){var t=null,i=0,s,n,o,a,l;for(a=0,l=r.length;ai&&(i=s,t=n);return t};Vi.isTypedArray=function(r){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView(r)};Vi.concat=function(){var r=0,e,t,i;for(e=0,i=arguments.length;e{function VC(r){return typeof r!="number"||isNaN(r)?1:r}function zC(r,e){var t={},i=function(o){return typeof o>"u"?e:o};typeof e=="function"&&(i=e);var s=function(o){return i(o[r])},n=function(){return i(void 0)};return typeof r=="string"?(t.fromAttributes=s,t.fromGraph=function(o,a){return s(o.getNodeAttributes(a))},t.fromEntry=function(o,a){return s(a)}):typeof r=="function"?(t.fromAttributes=function(){throw new Error("graphology-utils/getters/createNodeValueGetter: irrelevant usage.")},t.fromGraph=function(o,a){return i(r(a,o.getNodeAttributes(a)))},t.fromEntry=function(o,a){return i(r(o,a))}):(t.fromAttributes=n,t.fromGraph=n,t.fromEntry=n),t}function dg(r,e){var t={},i=function(o){return typeof o>"u"?e:o};typeof e=="function"&&(i=e);var s=function(o){return i(o[r])},n=function(){return i(void 0)};return typeof r=="string"?(t.fromAttributes=s,t.fromGraph=function(o,a){return s(o.getEdgeAttributes(a))},t.fromEntry=function(o,a){return s(a)},t.fromPartialEntry=t.fromEntry,t.fromMinimalEntry=t.fromEntry):typeof r=="function"?(t.fromAttributes=function(){throw new Error("graphology-utils/getters/createEdgeValueGetter: irrelevant usage.")},t.fromGraph=function(o,a){var l=o.extremities(a);return i(r(a,o.getEdgeAttributes(a),l[0],l[1],o.getNodeAttributes(l[0]),o.getNodeAttributes(l[1]),o.isUndirected(a)))},t.fromEntry=function(o,a,l,c,h,d,p){return i(r(o,a,l,c,h,d,p))},t.fromPartialEntry=function(o,a,l,c){return i(r(o,a,l,c))},t.fromMinimalEntry=function(o,a){return i(r(o,a))}):(t.fromAttributes=n,t.fromGraph=n,t.fromEntry=n,t.fromMinimalEntry=n),t}I1.createNodeValueGetter=zC;I1.createEdgeValueGetter=dg;I1.createEdgeWeightGetter=function(r){return dg(r,VC)}});var M1=Pe(T8=>{var L1=$c(),WC=w8().createEdgeWeightGetter;function pg(r,e){return r==="outbound"||r==="inbound"?e.directedSize+e.undirectedSize*2:r==="in"||r==="out"||r==="directed"?e.directedSize:e.undirectedSize*2}function _s(r,e){e=e||"outbound";var t=r[e+"Neighbors"].bind(r),i=pg(e,r),s=L1.getPointerArray(i),n=L1.getPointerArray(r.order);this.graph=r,this.neighborhood=new n(i),this.starts=new s(r.order+1),this.nodes=r.nodes();var o={},a,l,c,h,d,p,g=0;for(a=0,l=r.order;a{var HC=Pt(),jC=jc(),$C=M1().WeightedNeighborhoodIndex,qC={nodeCentralityAttribute:"eigenvectorCentrality",getEdgeWeight:"weight",maxIterations:100,tolerance:1e-6};function YC(r){for(var e=0,t=0,i=0,s=r.length;ie&&(t*=e/n*(e/n),e=n),t+=n===0&&e===0?0:n/e*(n/e)}return e===1/0?1:e*Math.sqrt(t)}function fg(r,e,t){if(!HC(e))throw new Error("graphology-metrics/centrality/eigenvector: the given graph is not a valid graphology instance.");t=jC(t,qC);var i=t.maxIterations,s=t.tolerance,n=e.order,o=new $C(e,t.getEdgeWeight),a,l,c,h,d=new Float64Array(e.order);for(a=0;a{var vg=Id(),xg=$c();function XC(r){return Array.isArray(r)||xg.isTypedArray(r)}function _8(r){if(typeof r.length=="number")return r.length;if(typeof r.size=="number")return r.size}function KC(r){var e=_8(r),t=typeof e=="number"?new Array(e):[],i=0;return vg(r,function(s){t[i++]=s}),t}function ZC(r){var e=_8(r),t=typeof e=="number"?xg.getPointerArray(e):Array,i=typeof e=="number"?new Array(e):[],s=typeof e=="number"?new t(e):[],n=0;return vg(r,function(o){i[n]=o,s[n]=n++}),[i,s]}Yc.isArrayLike=XC;Yc.guessLength=_8;Yc.toArray=KC;Yc.toArrayWithIndices=ZC});var P1=Pe((Qhe,bg)=>{var F8=N1(),Dg=Pc();function qt(r,e){if(arguments.length<2)throw new Error("mnemonist/fixed-deque: expecting an Array class and a capacity.");if(typeof e!="number"||e<=0)throw new Error("mnemonist/fixed-deque: `capacity` should be a positive number.");this.ArrayClass=r,this.capacity=e,this.items=new r(this.capacity),this.clear()}qt.prototype.clear=function(){this.start=0,this.size=0};qt.prototype.push=function(r){if(this.size===this.capacity)throw new Error("mnemonist/fixed-deque.push: deque capacity ("+this.capacity+") exceeded!");var e=this.start+this.size;return e>=this.capacity&&(e-=this.capacity),this.items[e]=r,++this.size};qt.prototype.unshift=function(r){if(this.size===this.capacity)throw new Error("mnemonist/fixed-deque.unshift: deque capacity ("+this.capacity+") exceeded!");var e=this.start-1;return this.start===0&&(e=this.capacity-1),this.items[e]=r,this.start=e,++this.size};qt.prototype.pop=function(){if(this.size!==0){this.size--;var r=this.start+this.size;return r>=this.capacity&&(r-=this.capacity),this.items[r]}};qt.prototype.shift=function(){if(this.size!==0){var r=this.start;return this.size--,this.start++,this.start===this.capacity&&(this.start=0),this.items[r]}};qt.prototype.peekFirst=function(){if(this.size!==0)return this.items[this.start]};qt.prototype.peekLast=function(){if(this.size!==0){var r=this.start+this.size-1;return r>=this.capacity&&(r-=this.capacity),this.items[r]}};qt.prototype.get=function(r){if(!(this.size===0||r>=this.capacity))return r=this.start+r,r>=this.capacity&&(r-=this.capacity),this.items[r]};qt.prototype.forEach=function(r,e){e=arguments.length>1?e:this;for(var t=this.capacity,i=this.size,s=this.start,n=0;n=t)return{done:!0};var n=r[i];return i++,s++,i===e&&(i=0),{value:n,done:!1}})};qt.prototype.entries=function(){var r=this.items,e=this.capacity,t=this.size,i=this.start,s=0;return new Dg(function(){if(s>=t)return{done:!0};var n=r[i];return i++,i===e&&(i=0),{value:[s++,n],done:!1}})};typeof Symbol<"u"&&(qt.prototype[Symbol.iterator]=qt.prototype.values);qt.prototype.inspect=function(){var r=this.toArray();return r.type=this.ArrayClass.name,r.capacity=this.capacity,Object.defineProperty(r,"constructor",{value:qt,enumerable:!1}),r};typeof Symbol<"u"&&(qt.prototype[Symbol.for("nodejs.util.inspect.custom")]=qt.prototype.inspect);qt.from=function(r,e,t){if(arguments.length<3&&(t=F8.guessLength(r),typeof t!="number"))throw new Error("mnemonist/fixed-deque.from: could not guess iterable length. Please provide desired capacity as last argument.");var i=new qt(e,t);if(F8.isArrayLike(r)){var s,n;for(s=0,n=r.length;s{var QC=Pc(),JC=$c().getPointerArray;function xr(r){var e=JC(r);this.size=0,this.length=r,this.dense=new e(r),this.sparse=new e(r)}xr.prototype.clear=function(){this.size=0};xr.prototype.has=function(r){var e=this.sparse[r];return e=this.size||this.dense[e]!==r?!1:(e=this.dense[this.size-1],this.dense[this.sparse[r]]=e,this.sparse[e]=this.sparse[r],this.size--,!0)};xr.prototype.forEach=function(r,e){e=arguments.length>1?e:this;for(var t,i=0;i{var ew=Pt(),tw=jc(),rw=P1(),iw=Sg(),sw=M1().NeighborhoodIndex,nw={nodeCentralityAttribute:"closenessCentrality",wassermanFaust:!1};function Cg(r){this.index=new sw(r,"inbound"),this.queue=new rw(Array,r.order),this.seen=new iw(r.order)}Cg.prototype.fromNode=function(r){var e=this.index,t=this.queue,i=this.seen;i.clear(),t.clear(),i.add(r),t.push([r,0]);for(var s,n,o,a,l,c,h=0,d=0;t.size!==0;)for(s=t.shift(),n=s[0],o=s[1],o!==0&&(h+=o,d+=1),l=e.starts[n+1],a=e.starts[n];a0&&n>1&&(h=l/c,i&&(h*=l/(n-1))),d[o]=h;return r?s.index.assign(t.nodeCentralityAttribute,d):s.index.collect(d)}var Tg=wg.bind(null,!1);Tg.assign=wg.bind(null,!0);_g.exports=Tg});var Ig=Pe((tde,kg)=>{var Ag=Pc(),A8=N1();function n0(r,e){if(arguments.length<2)throw new Error("mnemonist/fixed-stack: expecting an Array class and a capacity.");if(typeof e!="number"||e<=0)throw new Error("mnemonist/fixed-stack: `capacity` should be a positive number.");this.capacity=e,this.ArrayClass=r,this.items=new this.ArrayClass(this.capacity),this.clear()}n0.prototype.clear=function(){this.size=0};n0.prototype.push=function(r){if(this.size===this.capacity)throw new Error("mnemonist/fixed-stack.push: stack capacity ("+this.capacity+") exceeded!");return this.items[this.size++]=r,this.size};n0.prototype.pop=function(){if(this.size!==0)return this.items[--this.size]};n0.prototype.peek=function(){return this.items[this.size-1]};n0.prototype.forEach=function(r,e){e=arguments.length>1?e:this;for(var t=0,i=this.items.length;t=e)return{done:!0};var i=r[e-t-1];return t++,{value:i,done:!1}})};n0.prototype.entries=function(){var r=this.items,e=this.size,t=0;return new Ag(function(){if(t>=e)return{done:!0};var i=r[e-t-1];return{value:[t++,i],done:!1}})};typeof Symbol<"u"&&(n0.prototype[Symbol.iterator]=n0.prototype.values);n0.prototype.toString=function(){return this.toArray().join(",")};n0.prototype.toJSON=function(){return this.toArray()};n0.prototype.inspect=function(){var r=this.toArray();return r.type=this.ArrayClass.name,r.capacity=this.capacity,Object.defineProperty(r,"constructor",{value:n0,enumerable:!1}),r};typeof Symbol<"u"&&(n0.prototype[Symbol.for("nodejs.util.inspect.custom")]=n0.prototype.inspect);n0.from=function(r,e,t){if(arguments.length<3&&(t=A8.guessLength(r),typeof t!="number"))throw new Error("mnemonist/fixed-stack.from: could not guess iterable length. Please provide desired capacity as last argument.");var i=new n0(e,t);if(A8.isArrayLike(r)){var s,n;for(s=0,n=r.length;s{var ow=function(r,e){return re?1:0},aw=function(r,e){return re?-1:0};function lw(r){return function(e,t){return r(t,e)}}function cw(r){return r===2?function(e,t){return e[0]t[0]?1:e[1]t[1]?1:0}:function(e,t){for(var i=0;it[i])return 1;i++}return 0}}Xc.DEFAULT_COMPARATOR=ow;Xc.DEFAULT_REVERSE_COMPARATOR=aw;Xc.reverseComparator=lw;Xc.createTupleComparator=cw});var Rg=Pe((ide,Bg)=>{var B1=Id(),Mg=Lg(),zi=N1(),O1=Mg.DEFAULT_COMPARATOR,k8=Mg.reverseComparator;function I8(r,e,t,i){for(var s=e[i],n,o;i>t;){if(n=i-1>>1,o=e[n],r(s,o)<0){e[i]=o,i=n;continue}break}e[i]=s}function Kc(r,e,t){for(var i=e.length,s=t,n=e[t],o=2*t+1,a;o=0&&(o=a),e[t]=e[o],t=o,o=2*t+1;e[t]=n,I8(r,e,s,t)}function Ng(r,e,t){e.push(t),I8(r,e,0,e.length-1)}function L8(r,e){var t=e.pop();if(e.length!==0){var i=e[0];return e[0]=t,Kc(r,e,0),i}return t}function Ya(r,e,t){if(e.length===0)throw new Error("mnemonist/heap.replace: cannot pop an empty heap.");var i=e[0];return e[0]=t,Kc(r,e,0),i}function Pg(r,e,t){var i;return e.length!==0&&r(e[0],t)<0&&(i=e[0],e[0]=t,t=i,Kc(r,e,0)),t}function fo(r,e){for(var t=e.length,i=t>>1,s=i;--s>=0;)Kc(r,e,s)}function M8(r,e){for(var t=e.length,i=0,s=new Array(t);i=t.length)return t.slice().sort(r);for(l=t.slice(0,e),fo(i,l),s=e,n=t.length;s0&&Ya(i,l,t[s]);return l.sort(r)}var c=zi.guessLength(t);return c!==null&&c0&&Ya(i,l,h)),s++}),l.length>s&&(l.length=s),l.sort(r)}function hw(r,e,t){arguments.length===2&&(t=e,e=r,r=O1);var i=k8(r),s,n,o,a=-1/0,l;if(e===1){if(zi.isArrayLike(t)){for(s=0,n=t.length;s0)&&(a=o);return l=new t.constructor(1),l[0]=a,l}return B1(t,function(h){(a===-1/0||r(h,a)>0)&&(a=h)}),[a]}if(zi.isArrayLike(t)){if(e>=t.length)return t.slice().sort(i);for(l=t.slice(0,e),fo(r,l),s=e,n=t.length;s0&&Ya(r,l,t[s]);return l.sort(i)}var c=zi.guessLength(t);return c!==null&&c0&&Ya(r,l,h)),s++}),l.length>s&&(l.length=s),l.sort(i)}function ht(r){if(this.clear(),this.comparator=r||O1,typeof this.comparator!="function")throw new Error("mnemonist/Heap.constructor: given comparator should be a function.")}ht.prototype.clear=function(){this.items=[],this.size=0};ht.prototype.push=function(r){return Ng(this.comparator,this.items,r),++this.size};ht.prototype.peek=function(){return this.items[0]};ht.prototype.pop=function(){return this.size!==0&&this.size--,L8(this.comparator,this.items)};ht.prototype.replace=function(r){return Ya(this.comparator,this.items,r)};ht.prototype.pushpop=function(r){return Pg(this.comparator,this.items,r)};ht.prototype.consume=function(){return this.size=0,M8(this.comparator,this.items)};ht.prototype.toArray=function(){return M8(this.comparator,this.items.slice())};ht.prototype.inspect=function(){var r=this.toArray();return Object.defineProperty(r,"constructor",{value:ht,enumerable:!1}),r};typeof Symbol<"u"&&(ht.prototype[Symbol.for("nodejs.util.inspect.custom")]=ht.prototype.inspect);function R1(r){if(this.clear(),this.comparator=r||O1,typeof this.comparator!="function")throw new Error("mnemonist/MaxHeap.constructor: given comparator should be a function.");this.comparator=k8(this.comparator)}R1.prototype=ht.prototype;ht.from=function(r,e){var t=new ht(e),i;return zi.isArrayLike(r)?i=r.slice():i=zi.toArray(r),fo(t.comparator,i),t.items=i,t.size=i.length,t};R1.from=function(r,e){var t=new R1(e),i;return zi.isArrayLike(r)?i=r.slice():i=zi.toArray(r),fo(t.comparator,i),t.items=i,t.size=i.length,t};ht.siftUp=Kc;ht.siftDown=I8;ht.push=Ng;ht.pop=L8;ht.replace=Ya;ht.pushpop=Pg;ht.heapify=fo;ht.consume=M8;ht.nsmallest=uw;ht.nlargest=hw;ht.MinHeap=ht;ht.MaxHeap=R1;Bg.exports=ht});var Vg=Pe(N8=>{var dw=P1(),Og=Ig(),pw=Rg(),Gg=$c(),Ug=M1(),fw=Ug.NeighborhoodIndex,gw=Ug.WeightedNeighborhoodIndex;N8.createUnweightedIndexedBrandes=function(e){var t=new fw(e),i=t.neighborhood,s=t.starts,n=e.order,o=new Og(Gg.getPointerArray(n),n),a=new Uint32Array(n),l=new Array(n),c=new Int32Array(n),h=new dw(Uint32Array,n),d=function(p){var g,v,C,w,k,B,L;for(B=0;Be[0]?1:r[0]e[1]?1:r[1]e[2]?1:r[2]e[3]?1:r[3]{var yw=Pt(),zg=Vg(),vw=jc(),xw=zg.createUnweightedIndexedBrandes,Dw=zg.createDijkstraIndexedBrandes,bw={nodeCentralityAttribute:"betweennessCentrality",getEdgeWeight:"weight",normalized:!0};function Wg(r,e,t){if(!yw(e))throw new Error("graphology-centrality/beetweenness-centrality: the given graph is not a valid graphology instance.");t=vw(t,bw);var i=t.nodeCentralityAttribute,s=t.normalized,n=t.getEdgeWeight?Dw(e,t.getEdgeWeight):xw(e),o=e.order,a,l,c,h,d,p,g,v,C,w,k=new Float64Array(o),B=new Float64Array(o);for(p=0;p{var Ew=jc(),Sw=Pt(),Cw=w8().createEdgeWeightGetter,ww={nodeAuthorityAttribute:"authority",nodeHubAttribute:"hub",getEdgeWeight:"weight",maxIterations:100,normalize:!0,tolerance:1e-8};function P8(r,e){var t=Object.create(null),i,s;for(i=0,s=r.length;iw&&(w=d[g]);for(T=0;Tk&&(k=a[g]);L=1/k;for(p in a)a[p]*=L;L=1/w;for(p in d)d[p]*=L;B=0;for(p in a)B+=Math.abs(a[p]-h[p]);if(B{var _w=Pt(),Fw=Ld().singleSourceLength;im.exports=function(e,t){if(!_w(e))throw new Error("graphology-metrics/eccentricity: given graph is not a valid graphology instance.");if(e.size===0)return 1/0;var i=-1/0,s=Fw(e,t),n,o,a=0;for(n in s)o=s[n],o>i&&(i=o),a++;return a{var hu=Pt(),Aw=v1().copyNode,kw=fn().copyEdge,G1=g8();function om(r,e){if(!hu(r))throw new Error("graphology-components: the given graph is not a valid graphology instance.");if(r.order){var t=new G1(r),i=t.push.bind(t);t.forEachNodeYetUnseen(function(s){var n=[];t.push(s);for(var o;t.size!==0;)o=t.pop(),n.push(o),r.forEachNeighbor(o,i);e(n)})}}function am(r,e){if(!hu(r))throw new Error("graphology-components: the given graph is not a valid graphology instance.");if(r.order){var t=new G1(r),i=t.push.bind(t);t.forEachNodeYetUnseen(function(s){var n=0;t.push(s);for(var o;t.size!==0;)o=t.pop(),n++,r.forEachNeighbor(o,i);e(n)})}}function Iw(r,e,t){if(!hu(r))throw new Error("graphology-components: the given graph is not a valid graphology instance.");if(!r.order)return;var i=new G1(r),s;function n(o,a,l,c,h,d,p){s===c&&(c=l),e(o,a,l,c,h,d,p)&&i.push(c)}i.forEachNodeYetUnseen(function(o){var a=0;for(i.push(o);i.size!==0;)s=i.pop(),a++,r.forEachEdge(s,n);t(a)})}function Lw(r){var e=0;return am(r,function(){e++}),e}function Mw(r){var e=[];return om(r,function(t){e.push(t)}),e}function R8(r){if(!hu(r))throw new Error("graphology-components: the given graph is not a valid graphology instance.");if(!r.order)return[];var e=new G1(r),t=e.push.bind(e),i=[],s;return e.forEachNodeYetUnseen(function(n){s=[],e.push(n);for(var o;e.size!==0;)o=e.pop(),s.push(o),r.forEachNeighbor(o,t);return s.length>i.length&&(i=s),i.length>e.countUnseenNodes()}),i}function Nw(r){var e=R8(r),t=r.nullCopy();return e.forEach(function(i){Aw(t,i,r.getNodeAttributes(i))}),r.forEachEdge(function(i,s,n,o,a,l,c){t.hasNode(n)&&kw(t,c,i,n,o,s)}),t}function Pw(r){var e=new Set(R8(r));r.forEachNode(function(t){e.has(t)||r.dropNode(t)})}function Bw(r){if(!hu(r))throw new Error("graphology-components: the given graph is not a valid graphology instance.");if(!r.order)return[];if(r.type==="undirected")throw new Error("graphology-components: the given graph is undirected");var e=r.nodes(),t=[],i,s;if(!r.size){for(i=0,s=e.length;ik;)o.pop()}else g(C);if(l.get(o[o.length-1])===l.get(v)){h=[];do d=a.pop(),h.push(d),c.add(d);while(d!==v);t.push(h),o.pop()}};for(i=0,s=e.length;i{var Rw=Pt(),Ow=void 0,U1=0,cm=1;um.exports=function(e){if(!Rw(e))throw new Error("graphology-dag/has-cycle: the given graph is not a valid graphology instance.");if(e.size===0)return!1;if(e.selfLoopCount!==0)return!0;let t={},i=[];function s(n){let o=t[n];if(o===Ow)i.push(n);else if(o===U1)return!0;return!1}return e.someNode(n=>{if(t[n]===cm)return!1;for(i.push(n);i.length!==0;){let o=i[i.length-1],a=t[o];if(a!==U1){if(t[o]=U1,e.someOutboundNeighbor(o,s))return!0}else a===U1&&(i.pop(),t[o]=cm)}return!1})}});var pm=Pe((l1e,dm)=>{var Gw=Pt();dm.exports=function(e,t,i){if(!Gw(e))throw new Error("graphology-dag/will-create-cycle: the given graph is not a valid graphology instance.");if(t=""+t,i=""+i,t===i)return!0;if(!e.hasNode(t)||!e.hasNode(i)||e.hasDirectedEdge(t,i))return!1;if(e.hasDirectedEdge(i,t))return!0;let s=e.outNeighbors(i);function n(o){s.push(o)}for(;s.length!==0;){let o=s.pop();if(o===t)return!0;e.forEachOutNeighbor(o,n)}return!1}});var gm=Pe(du=>{var V1=Pt(),Uw=P1();function Vw(r,e){let t=0;return r.forEachInNeighbor(e,()=>{t++}),t}function O8(r,e){if(!V1(r))throw new Error("graphology-dag/topological-sort: the given graph is not a valid graphology instance.");if(r.type==="undirected"||r.undirectedSize!==0)throw new Error("graphology-dag/topological-sort: cannot work if graph is not directed.");if(r.order===0)return;let t=new Uw(Array,r.order),i={},s=0;r.forEachNode((a,l)=>{let c=r.multi?Vw(r,a):r.inDegree(a);c===0?t.push([a,l,0]):(i[a]=c,s+=c)});let n=0;function o(a,l){let c=--i[a];s--,c===0&&t.push([a,l,n+1]),i[a]=c}for(;t.size!==0;){let[a,l,c]=t.shift();n=c,e(a,l,c),r.forEachOutNeighbor(a,o)}if(s!==0)throw new Error("graphology-dag/topological-sort: given graph is not acyclic.")}function zw(r){if(!V1(r))throw new Error("graphology-dag/topological-sort: the given graph is not a valid graphology instance.");let e=new Array(r.order),t=0;return O8(r,i=>{e[t++]=i}),e}function fm(r,e){if(!V1(r))throw new Error("graphology-dag/topological-generations: the given graph is not a valid graphology instance.");if(r.order===0)return;let t=0,i=[];O8(r,(s,n,o)=>{o>t&&(e(i),t=o,i=[]),i.push(s)}),e(i)}function Ww(r){if(!V1(r))throw new Error("graphology-dag/topological-generations: the given graph is not a valid graphology instance.");let e=[];return fm(r,t=>{e.push(t)}),e}du.topologicalSort=zw;du.forEachNodeInTopologicalOrder=O8;du.topologicalGenerations=Ww;du.forEachTopologicalGeneration=fm});var mm=Pe(go=>{go.hasCycle=hm();go.willCreateCycle=pm();var z1=gm();go.forEachNodeInTopologicalOrder=z1.forEachNodeInTopologicalOrder;go.topologicalSort=z1.topologicalSort;go.topologicalGenerations=z1.topologicalGenerations;go.forEachTopologicalGeneration=z1.forEachTopologicalGeneration});var dv=Pe(Xi=>{"use strict";Object.defineProperty(Xi,"__esModule",{value:!0});require("obsidian");var Ms=class extends Error{},s6=class extends Ms{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},n6=class extends Ms{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},o6=class extends Ms{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Co=class extends Ms{},W9=class extends Ms{constructor(e){super(`Invalid unit ${e}`)}},or=class extends Ms{},qi=class extends Ms{constructor(){super("Zone is an abstract class")}},me="numeric",bi="short",Cr="long",H9={year:me,month:me,day:me},dy={year:me,month:bi,day:me},Hw={year:me,month:bi,day:me,weekday:bi},py={year:me,month:Cr,day:me},fy={year:me,month:Cr,day:me,weekday:Cr},gy={hour:me,minute:me},my={hour:me,minute:me,second:me},yy={hour:me,minute:me,second:me,timeZoneName:bi},vy={hour:me,minute:me,second:me,timeZoneName:Cr},xy={hour:me,minute:me,hourCycle:"h23"},Dy={hour:me,minute:me,second:me,hourCycle:"h23"},by={hour:me,minute:me,second:me,hourCycle:"h23",timeZoneName:bi},Ey={hour:me,minute:me,second:me,hourCycle:"h23",timeZoneName:Cr},Sy={year:me,month:me,day:me,hour:me,minute:me},Cy={year:me,month:me,day:me,hour:me,minute:me,second:me},wy={year:me,month:bi,day:me,hour:me,minute:me},Ty={year:me,month:bi,day:me,hour:me,minute:me,second:me},jw={year:me,month:bi,day:me,weekday:bi,hour:me,minute:me},_y={year:me,month:Cr,day:me,hour:me,minute:me,timeZoneName:bi},Fy={year:me,month:Cr,day:me,hour:me,minute:me,second:me,timeZoneName:bi},Ay={year:me,month:Cr,day:me,weekday:Cr,hour:me,minute:me,timeZoneName:Cr},ky={year:me,month:Cr,day:me,weekday:Cr,hour:me,minute:me,second:me,timeZoneName:Cr},_o=class{get type(){throw new qi}get name(){throw new qi}get ianaName(){return this.name}get isUniversal(){throw new qi}offsetName(e,t){throw new qi}formatOffset(e,t){throw new qi}offset(e){throw new qi}equals(e){throw new qi}get isValid(){throw new qi}},K8=null,j9=class r extends _o{static get instance(){return K8===null&&(K8=new r),K8}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:i}){return Ly(e,t,i)}formatOffset(e,t){return ku(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},V9={};function $w(r){return V9[r]||(V9[r]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:r,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),V9[r]}var qw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Yw(r,e){let t=r.format(e).replace(/\u200E/g,""),i=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(t),[,s,n,o,a,l,c,h]=i;return[o,s,n,a,l,c,h]}function Xw(r,e){let t=r.formatToParts(e),i=[];for(let s=0;s=0?v:1e3+v,(p-g)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Pm={};function Kw(r,e={}){let t=JSON.stringify([r,e]),i=Pm[t];return i||(i=new Intl.ListFormat(r,e),Pm[t]=i),i}var a6={};function l6(r,e={}){let t=JSON.stringify([r,e]),i=a6[t];return i||(i=new Intl.DateTimeFormat(r,e),a6[t]=i),i}var c6={};function Zw(r,e={}){let t=JSON.stringify([r,e]),i=c6[t];return i||(i=new Intl.NumberFormat(r,e),c6[t]=i),i}var u6={};function Qw(r,e={}){let{base:t,...i}=e,s=JSON.stringify([r,i]),n=u6[s];return n||(n=new Intl.RelativeTimeFormat(r,e),u6[s]=n),n}var Fu=null;function Jw(){return Fu||(Fu=new Intl.DateTimeFormat().resolvedOptions().locale,Fu)}function eT(r){let e=r.indexOf("-x-");e!==-1&&(r=r.substring(0,e));let t=r.indexOf("-u-");if(t===-1)return[r];{let i,s;try{i=l6(r).resolvedOptions(),s=r}catch{let l=r.substring(0,t);i=l6(l).resolvedOptions(),s=l}let{numberingSystem:n,calendar:o}=i;return[s,n,o]}}function tT(r,e,t){return(t||e)&&(r.includes("-u-")||(r+="-u"),t&&(r+=`-ca-${t}`),e&&(r+=`-nu-${e}`)),r}function rT(r){let e=[];for(let t=1;t<=12;t++){let i=Ye.utc(2009,t,1);e.push(r(i))}return e}function iT(r){let e=[];for(let t=1;t<=7;t++){let i=Ye.utc(2016,11,13+t);e.push(r(i))}return e}function B9(r,e,t,i){let s=r.listingMode();return s==="error"?null:s==="en"?t(e):i(e)}function sT(r){return r.numberingSystem&&r.numberingSystem!=="latn"?!1:r.numberingSystem==="latn"||!r.locale||r.locale.startsWith("en")||new Intl.DateTimeFormat(r.intl).resolvedOptions().numberingSystem==="latn"}var h6=class{constructor(e,t,i){this.padTo=i.padTo||0,this.floor=i.floor||!1;let{padTo:s,floor:n,...o}=i;if(!t||Object.keys(o).length>0){let a={useGrouping:!1,...i};i.padTo>0&&(a.minimumIntegerDigits=i.padTo),this.inf=Zw(e,a)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else{let t=this.floor?Math.floor(e):w6(e,3);return t0(t,this.padTo)}}},d6=class{constructor(e,t,i){this.opts=i,this.originalZone=void 0;let s;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&_n.create(a).valid?(s=a,this.dt=e):(s="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,s=e.zone.name):(s="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let n={...this.opts};n.timeZone=n.timeZone||s,this.dtf=l6(t,n)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(t=>{if(t.type==="timeZoneName"){let i=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...t,value:i}}else return t}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},p6=class{constructor(e,t,i){this.opts={style:"long",...i},!t&&Iy()&&(this.rtf=Qw(e,i))}format(e,t){return this.rtf?this.rtf.format(e,t):DT(t,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},Gt=class r{static fromOpts(e){return r.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,t,i,s=!1){let n=e||Ot.defaultLocale,o=n||(s?"en-US":Jw()),a=t||Ot.defaultNumberingSystem,l=i||Ot.defaultOutputCalendar;return new r(o,a,l,n)}static resetCache(){Fu=null,a6={},c6={},u6={}}static fromObject({locale:e,numberingSystem:t,outputCalendar:i}={}){return r.create(e,t,i)}constructor(e,t,i,s){let[n,o,a]=eT(e);this.locale=n,this.numberingSystem=t||o||null,this.outputCalendar=i||a||null,this.intl=tT(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=s,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=sT(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&t?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:r.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return B9(this,e,Py,()=>{let i=t?{month:e,day:"numeric"}:{month:e},s=t?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=rT(n=>this.extract(n,i,"month"))),this.monthsCache[s][e]})}weekdays(e,t=!1){return B9(this,e,Oy,()=>{let i=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=t?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=iT(n=>this.extract(n,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(){return B9(this,void 0,()=>Gy,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Ye.utc(2016,11,13,9),Ye.utc(2016,11,13,19)].map(t=>this.extract(t,e,"dayperiod"))}return this.meridiemCache})}eras(e){return B9(this,e,Uy,()=>{let t={era:e};return this.eraCache[e]||(this.eraCache[e]=[Ye.utc(-40,1,1),Ye.utc(2017,1,1)].map(i=>this.extract(i,t,"era"))),this.eraCache[e]})}extract(e,t,i){let s=this.dtFormatter(e,t),n=s.formatToParts(),o=n.find(a=>a.type.toLowerCase()===i);return o?o.value:null}numberFormatter(e={}){return new h6(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new d6(e,this.intl,t)}relFormatter(e={}){return new p6(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Kw(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}},Z8=null,Kr=class r extends _o{static get utcInstance(){return Z8===null&&(Z8=new r(0)),Z8}static instance(e){return e===0?r.utcInstance:new r(e)}static parseSpecifier(e){if(e){let t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t)return new r(tp(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${ku(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${ku(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return ku(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},f6=class extends _o{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Tn(r,e){if(Ke(r)||r===null)return e;if(r instanceof _o)return r;if(nT(r)){let t=r.toLowerCase();return t==="default"?e:t==="local"||t==="system"?j9.instance:t==="utc"||t==="gmt"?Kr.utcInstance:Kr.parseSpecifier(t)||_n.create(r)}else return To(r)?Kr.instance(r):typeof r=="object"&&"offset"in r&&typeof r.offset=="function"?r:new f6(r)}var Bm=()=>Date.now(),Rm="system",Om=null,Gm=null,Um=null,Vm=60,zm,Ot=class{static get now(){return Bm}static set now(e){Bm=e}static set defaultZone(e){Rm=e}static get defaultZone(){return Tn(Rm,j9.instance)}static get defaultLocale(){return Om}static set defaultLocale(e){Om=e}static get defaultNumberingSystem(){return Gm}static set defaultNumberingSystem(e){Gm=e}static get defaultOutputCalendar(){return Um}static set defaultOutputCalendar(e){Um=e}static get twoDigitCutoffYear(){return Vm}static set twoDigitCutoffYear(e){Vm=e%100}static get throwOnInvalid(){return zm}static set throwOnInvalid(e){zm=e}static resetCaches(){Gt.resetCache(),_n.resetCache()}};function Ke(r){return typeof r>"u"}function To(r){return typeof r=="number"}function J9(r){return typeof r=="number"&&r%1===0}function nT(r){return typeof r=="string"}function oT(r){return Object.prototype.toString.call(r)==="[object Date]"}function Iy(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function aT(r){return Array.isArray(r)?r:[r]}function Wm(r,e,t){if(r.length!==0)return r.reduce((i,s)=>{let n=[e(s),s];return i&&t(i[0],n[0])===i[0]?i:n},null)[1]}function lT(r,e){return e.reduce((t,i)=>(t[i]=r[i],t),{})}function pl(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function Ls(r,e,t){return J9(r)&&r>=e&&r<=t}function cT(r,e){return r-e*Math.floor(r/e)}function t0(r,e=2){let t=r<0,i;return t?i="-"+(""+-r).padStart(e,"0"):i=(""+r).padStart(e,"0"),i}function wn(r){if(!(Ke(r)||r===null||r===""))return parseInt(r,10)}function Eo(r){if(!(Ke(r)||r===null||r===""))return parseFloat(r)}function C6(r){if(!(Ke(r)||r===null||r==="")){let e=parseFloat("0."+r)*1e3;return Math.floor(e)}}function w6(r,e,t=!1){let i=10**e;return(t?Math.trunc:Math.round)(r*i)/i}function Mu(r){return r%4===0&&(r%100!==0||r%400===0)}function Au(r){return Mu(r)?366:365}function $9(r,e){let t=cT(e-1,12)+1,i=r+(e-t)/12;return t===2?Mu(i)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][t-1]}function ep(r){let e=Date.UTC(r.year,r.month-1,r.day,r.hour,r.minute,r.second,r.millisecond);return r.year<100&&r.year>=0&&(e=new Date(e),e.setUTCFullYear(r.year,r.month-1,r.day)),+e}function q9(r){let e=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7,t=r-1,i=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7;return e===4||i===3?53:52}function g6(r){return r>99?r:r>Ot.twoDigitCutoffYear?1900+r:2e3+r}function Ly(r,e,t,i=null){let s=new Date(r),n={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};i&&(n.timeZone=i);let o={timeZoneName:e,...n},a=new Intl.DateTimeFormat(t,o).formatToParts(s).find(l=>l.type.toLowerCase()==="timezonename");return a?a.value:null}function tp(r,e){let t=parseInt(r,10);Number.isNaN(t)&&(t=0);let i=parseInt(e,10)||0,s=t<0||Object.is(t,-0)?-i:i;return t*60+s}function My(r){let e=Number(r);if(typeof r=="boolean"||r===""||Number.isNaN(e))throw new or(`Invalid unit value ${r}`);return e}function Y9(r,e){let t={};for(let i in r)if(pl(r,i)){let s=r[i];if(s==null)continue;t[e(i)]=My(s)}return t}function ku(r,e){let t=Math.trunc(Math.abs(r/60)),i=Math.trunc(Math.abs(r%60)),s=r>=0?"+":"-";switch(e){case"short":return`${s}${t0(t,2)}:${t0(i,2)}`;case"narrow":return`${s}${t}${i>0?`:${i}`:""}`;case"techie":return`${s}${t0(t,2)}${t0(i,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function rp(r){return lT(r,["hour","minute","second","millisecond"])}var uT=["January","February","March","April","May","June","July","August","September","October","November","December"],Ny=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],hT=["J","F","M","A","M","J","J","A","S","O","N","D"];function Py(r){switch(r){case"narrow":return[...hT];case"short":return[...Ny];case"long":return[...uT];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var By=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Ry=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],dT=["M","T","W","T","F","S","S"];function Oy(r){switch(r){case"narrow":return[...dT];case"short":return[...Ry];case"long":return[...By];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var Gy=["AM","PM"],pT=["Before Christ","Anno Domini"],fT=["BC","AD"],gT=["B","A"];function Uy(r){switch(r){case"narrow":return[...gT];case"short":return[...fT];case"long":return[...pT];default:return null}}function mT(r){return Gy[r.hour<12?0:1]}function yT(r,e){return Oy(e)[r.weekday-1]}function vT(r,e){return Py(e)[r.month-1]}function xT(r,e){return Uy(e)[r.year<0?0:1]}function DT(r,e,t="always",i=!1){let s={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},n=["hours","minutes","seconds"].indexOf(r)===-1;if(t==="auto"&&n){let d=r==="days";switch(e){case 1:return d?"tomorrow":`next ${s[r][0]}`;case-1:return d?"yesterday":`last ${s[r][0]}`;case 0:return d?"today":`this ${s[r][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),l=a===1,c=s[r],h=i?l?c[1]:c[2]||c[1]:l?s[r][0]:r;return o?`${a} ${h} ago`:`in ${a} ${h}`}function Hm(r,e){let t="";for(let i of r)i.literal?t+=i.val:t+=e(i.val);return t}var bT={D:H9,DD:dy,DDD:py,DDDD:fy,t:gy,tt:my,ttt:yy,tttt:vy,T:xy,TT:Dy,TTT:by,TTTT:Ey,f:Sy,ff:wy,fff:_y,ffff:Ay,F:Cy,FF:Ty,FFF:Fy,FFFF:ky},Er=class r{static create(e,t={}){return new r(e,t)}static parseFormat(e){let t=null,i="",s=!1,n=[];for(let o=0;o0&&n.push({literal:s||/^\s+$/.test(i),val:i}),t=null,i="",s=!s):s||a===t?i+=a:(i.length>0&&n.push({literal:/^\s+$/.test(i),val:i}),i=a,t=a)}return i.length>0&&n.push({literal:s||/^\s+$/.test(i),val:i}),n}static macroTokenToFormatOpts(e){return bT[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0){if(this.opts.forceSimple)return t0(e,t);let i={...this.opts};return t>0&&(i.padTo=t),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,t){let i=this.loc.listingMode()==="en",s=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",n=(g,v)=>this.loc.extract(e,g,v),o=g=>e.isOffsetFixed&&e.offset===0&&g.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,g.format):"",a=()=>i?mT(e):n({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(g,v)=>i?vT(e,g):n(v?{month:g}:{month:g,day:"numeric"},"month"),c=(g,v)=>i?yT(e,g):n(v?{weekday:g}:{weekday:g,month:"long",day:"numeric"},"weekday"),h=g=>{let v=r.macroTokenToFormatOpts(g);return v?this.formatWithSystemDefault(e,v):g},d=g=>i?xT(e,g):n({era:g},"era"),p=g=>{switch(g){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return s?n({day:"numeric"},"day"):this.num(e.day);case"dd":return s?n({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return s?n({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return s?n({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return s?n({month:"numeric"},"month"):this.num(e.month);case"MM":return s?n({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return s?n({year:"numeric"},"year"):this.num(e.year);case"yy":return s?n({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return s?n({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return s?n({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return h(g)}};return Hm(r.parseFormat(t),p)}formatDurationFromString(e,t){let i=l=>{switch(l[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},s=l=>c=>{let h=i(c);return h?this.num(l.get(h),c.length):c},n=r.parseFormat(t),o=n.reduce((l,{literal:c,val:h})=>c?l:l.concat(h),[]),a=e.shiftTo(...o.map(i).filter(l=>l));return Hm(n,s(a))}},Sr=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},Vy=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function fl(...r){let e=r.reduce((t,i)=>t+i.source,"");return RegExp(`^${e}$`)}function gl(...r){return e=>r.reduce(([t,i,s],n)=>{let[o,a,l]=n(e,s);return[{...t,...o},a||i,l]},[{},null,1]).slice(0,2)}function ml(r,...e){if(r==null)return[null,null];for(let[t,i]of e){let s=t.exec(r);if(s)return i(s)}return[null,null]}function zy(...r){return(e,t)=>{let i={},s;for(s=0;sg!==void 0&&(v||g&&h)?-g:g;return[{years:p(Eo(t)),months:p(Eo(i)),weeks:p(Eo(s)),days:p(Eo(n)),hours:p(Eo(o)),minutes:p(Eo(a)),seconds:p(Eo(l),l==="-0"),milliseconds:p(C6(c),d)}]}var NT={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function F6(r,e,t,i,s,n,o){let a={year:e.length===2?g6(wn(e)):wn(e),month:Ny.indexOf(t)+1,day:wn(i),hour:wn(s),minute:wn(n)};return o&&(a.second=wn(o)),r&&(a.weekday=r.length>3?By.indexOf(r)+1:Ry.indexOf(r)+1),a}var PT=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function BT(r){let[,e,t,i,s,n,o,a,l,c,h,d]=r,p=F6(e,s,i,t,n,o,a),g;return l?g=NT[l]:c?g=0:g=tp(h,d),[p,new Kr(g)]}function RT(r){return r.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var OT=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,GT=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,UT=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function jm(r){let[,e,t,i,s,n,o,a]=r;return[F6(e,s,i,t,n,o,a),Kr.utcInstance]}function VT(r){let[,e,t,i,s,n,o,a]=r;return[F6(e,a,t,i,s,n,o),Kr.utcInstance]}var zT=fl(ST,_6),WT=fl(CT,_6),HT=fl(wT,_6),jT=fl(Hy),$y=gl(kT,yl,Nu,Pu),$T=gl(TT,yl,Nu,Pu),qT=gl(_T,yl,Nu,Pu),YT=gl(yl,Nu,Pu);function XT(r){return ml(r,[zT,$y],[WT,$T],[HT,qT],[jT,YT])}function KT(r){return ml(RT(r),[PT,BT])}function ZT(r){return ml(r,[OT,jm],[GT,jm],[UT,VT])}function QT(r){return ml(r,[LT,MT])}var JT=gl(yl);function e_(r){return ml(r,[IT,JT])}var t_=fl(FT,AT),r_=fl(jy),i_=gl(yl,Nu,Pu);function s_(r){return ml(r,[t_,$y],[r_,i_])}var $m="Invalid Duration",qy={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},n_={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...qy},Yr=146097/400,ll=146097/4800,o_={years:{quarters:4,months:12,weeks:Yr/7,days:Yr,hours:Yr*24,minutes:Yr*24*60,seconds:Yr*24*60*60,milliseconds:Yr*24*60*60*1e3},quarters:{months:3,weeks:Yr/28,days:Yr/4,hours:Yr*24/4,minutes:Yr*24*60/4,seconds:Yr*24*60*60/4,milliseconds:Yr*24*60*60*1e3/4},months:{weeks:ll/7,days:ll,hours:ll*24,minutes:ll*24*60,seconds:ll*24*60*60,milliseconds:ll*24*60*60*1e3},...qy},wo=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],a_=wo.slice(0).reverse();function Cn(r,e,t=!1){let i={values:t?e.values:{...r.values,...e.values||{}},loc:r.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||r.conversionAccuracy,matrix:e.matrix||r.matrix};return new Be(i)}function Yy(r,e){let t=e.milliseconds??0;for(let i of a_.slice(1))e[i]&&(t+=e[i]*r[i].milliseconds);return t}function qm(r,e){let t=Yy(r,e)<0?-1:1;wo.reduceRight((i,s)=>{if(Ke(e[s]))return i;if(i){let n=e[i]*t,o=r[s][i],a=Math.floor(n/o);e[s]+=a*t,e[i]-=a*o*t}return s},null),wo.reduce((i,s)=>{if(Ke(e[s]))return i;if(i){let n=e[i]%1;e[i]-=n,e[s]+=n*r[i][s]}return s},null)}function l_(r){let e={};for(let[t,i]of Object.entries(r))i!==0&&(e[t]=i);return e}var Be=class r{constructor(e){let t=e.conversionAccuracy==="longterm"||!1,i=t?o_:n_;e.matrix&&(i=e.matrix),this.values=e.values,this.loc=e.loc||Gt.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=i,this.isLuxonDuration=!0}static fromMillis(e,t){return r.fromObject({milliseconds:e},t)}static fromObject(e,t={}){if(e==null||typeof e!="object")throw new or(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new r({values:Y9(e,r.normalizeUnit),loc:Gt.fromObject(t),conversionAccuracy:t.conversionAccuracy,matrix:t.matrix})}static fromDurationLike(e){if(To(e))return r.fromMillis(e);if(r.isDuration(e))return e;if(typeof e=="object")return r.fromObject(e);throw new or(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,t){let[i]=QT(e);return i?r.fromObject(i,t):r.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,t){let[i]=e_(e);return i?r.fromObject(i,t):r.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,t=null){if(!e)throw new or("need to specify a reason the Duration is invalid");let i=e instanceof Sr?e:new Sr(e,t);if(Ot.throwOnInvalid)throw new o6(i);return new r({invalid:i})}static normalizeUnit(e){let t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!t)throw new W9(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){let i={...t,floor:t.round!==!1&&t.floor!==!1};return this.isValid?Er.create(this.loc,i).formatDurationFromString(this,e):$m}toHuman(e={}){if(!this.isValid)return $m;let t=wo.map(i=>{let s=this.values[i];return Ke(s)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(s)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(t)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=w6(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let t=this.toMillis();return t<0||t>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},Ye.fromMillis(t,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.isValid?Yy(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let t=r.fromDurationLike(e),i={};for(let s of wo)(pl(t.values,s)||pl(this.values,s))&&(i[s]=t.get(s)+this.get(s));return Cn(this,{values:i},!0)}minus(e){if(!this.isValid)return this;let t=r.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;let t={};for(let i of Object.keys(this.values))t[i]=My(e(this.values[i],i));return Cn(this,{values:t},!0)}get(e){return this[r.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let t={...this.values,...Y9(e,r.normalizeUnit)};return Cn(this,{values:t})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:i,matrix:s}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:s,conversionAccuracy:i};return Cn(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return qm(this.matrix,e),Cn(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=l_(this.normalize().shiftToAll().toObject());return Cn(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>r.normalizeUnit(o));let t={},i={},s=this.toObject(),n;for(let o of wo)if(e.indexOf(o)>=0){n=o;let a=0;for(let c in i)a+=this.matrix[c][o]*i[c],i[c]=0;To(s[o])&&(a+=s[o]);let l=Math.trunc(a);t[o]=l,i[o]=(a*1e3-l*1e3)/1e3}else To(s[o])&&(i[o]=s[o]);for(let o in i)i[o]!==0&&(t[n]+=o===n?i[o]:i[o]/this.matrix[n][o]);return qm(this.matrix,t),Cn(this,{values:t},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let t of Object.keys(this.values))e[t]=this.values[t]===0?0:-this.values[t];return Cn(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function t(i,s){return i===void 0||i===0?s===void 0||s===0:i===s}for(let i of wo)if(!t(this.values[i],e.values[i]))return!1;return!0}},cl="Invalid Interval";function c_(r,e){return!r||!r.isValid?dl.invalid("missing or invalid start"):!e||!e.isValid?dl.invalid("missing or invalid end"):ee:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:t}={}){return this.isValid?r.fromDateTimes(e||this.s,t||this.e):this}splitAt(...e){if(!this.isValid)return[];let t=e.map(Tu).filter(o=>this.contains(o)).sort(),i=[],{s}=this,n=0;for(;s+this.e?this.e:o;i.push(r.fromDateTimes(s,a)),s=a,n+=1}return i}splitBy(e){let t=Be.fromDurationLike(e);if(!this.isValid||!t.isValid||t.as("milliseconds")===0)return[];let{s:i}=this,s=1,n,o=[];for(;il*s));n=+a>+this.e?this.e:a,o.push(r.fromDateTimes(i,n)),i=n,s+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let t=this.s>e.s?this.s:e.s,i=this.e=i?null:r.fromDateTimes(t,i)}union(e){if(!this.isValid)return this;let t=this.se.e?this.e:e.e;return r.fromDateTimes(t,i)}static merge(e){let[t,i]=e.sort((s,n)=>s.s-n.s).reduce(([s,n],o)=>n?n.overlaps(o)||n.abutsStart(o)?[s,n.union(o)]:[s.concat([n]),o]:[s,o],[[],null]);return i&&t.push(i),t}static xor(e){let t=null,i=0,s=[],n=e.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),o=Array.prototype.concat(...n),a=o.sort((l,c)=>l.time-c.time);for(let l of a)i+=l.type==="s"?1:-1,i===1?t=l.time:(t&&+t!=+l.time&&s.push(r.fromDateTimes(t,l.time)),t=null);return r.merge(s)}difference(...e){return r.xor([this].concat(e)).map(t=>this.intersection(t)).filter(t=>t&&!t.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:cl}toLocaleString(e=H9,t={}){return this.isValid?Er.create(this.s.loc.clone(t),e).formatInterval(this):cl}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:cl}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:cl}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:cl}toFormat(e,{separator:t=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:cl}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):Be.invalid(this.invalidReason)}mapEndpoints(e){return r.fromDateTimes(e(this.s),e(this.e))}},ul=class{static hasDST(e=Ot.defaultZone){let t=Ye.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return _n.isValidZone(e)}static normalizeZone(e){return Tn(e,Ot.defaultZone)}static months(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null,outputCalendar:n="gregory"}={}){return(s||Gt.create(t,i,n)).months(e)}static monthsFormat(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null,outputCalendar:n="gregory"}={}){return(s||Gt.create(t,i,n)).months(e,!0)}static weekdays(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null}={}){return(s||Gt.create(t,i,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null}={}){return(s||Gt.create(t,i,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Gt.create(e).meridiems()}static eras(e="short",{locale:t=null}={}){return Gt.create(t,null,"gregory").eras(e)}static features(){return{relative:Iy()}}};function Ym(r,e){let t=s=>s.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),i=t(e)-t(r);return Math.floor(Be.fromMillis(i).as("days"))}function u_(r,e,t){let i=[["years",(l,c)=>c.year-l.year],["quarters",(l,c)=>c.quarter-l.quarter+(c.year-l.year)*4],["months",(l,c)=>c.month-l.month+(c.year-l.year)*12],["weeks",(l,c)=>{let h=Ym(l,c);return(h-h%7)/7}],["days",Ym]],s={},n=r,o,a;for(let[l,c]of i)t.indexOf(l)>=0&&(o=l,s[l]=c(r,e),a=n.plus(s),a>e?(s[l]--,r=n.plus(s),r>e&&(a=r,s[l]--,r=n.plus(s))):r=a);return[r,s,a,o]}function h_(r,e,t,i){let[s,n,o,a]=u_(r,e,t),l=e-s,c=t.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);c.length===0&&(o0?Be.fromMillis(l,i).shiftTo(...c).plus(h):h}var A6={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},Xm={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},d_=A6.hanidec.replace(/[\[|\]]/g,"").split("");function p_(r){let e=parseInt(r,10);if(isNaN(e)){e="";for(let t=0;t=n&&i<=o&&(e+=i-n)}}return parseInt(e,10)}else return e}function vi({numberingSystem:r},e=""){return new RegExp(`${A6[r||"latn"]}${e}`)}var f_="missing Intl.DateTimeFormat.formatToParts support";function st(r,e=t=>t){return{regex:r,deser:([t])=>e(p_(t))}}var g_="\xA0",Xy=`[ ${g_}]`,Ky=new RegExp(Xy,"g");function m_(r){return r.replace(/\./g,"\\.?").replace(Ky,Xy)}function Km(r){return r.replace(/\./g,"").replace(Ky," ").toLowerCase()}function xi(r,e){return r===null?null:{regex:RegExp(r.map(m_).join("|")),deser:([t])=>r.findIndex(i=>Km(t)===Km(i))+e}}function Zm(r,e){return{regex:r,deser:([,t,i])=>tp(t,i),groups:e}}function R9(r){return{regex:r,deser:([e])=>e}}function y_(r){return r.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function v_(r,e){let t=vi(e),i=vi(e,"{2}"),s=vi(e,"{3}"),n=vi(e,"{4}"),o=vi(e,"{6}"),a=vi(e,"{1,2}"),l=vi(e,"{1,3}"),c=vi(e,"{1,6}"),h=vi(e,"{1,9}"),d=vi(e,"{2,4}"),p=vi(e,"{4,6}"),g=w=>({regex:RegExp(y_(w.val)),deser:([k])=>k,literal:!0}),C=(w=>{if(r.literal)return g(w);switch(w.val){case"G":return xi(e.eras("short"),0);case"GG":return xi(e.eras("long"),0);case"y":return st(c);case"yy":return st(d,g6);case"yyyy":return st(n);case"yyyyy":return st(p);case"yyyyyy":return st(o);case"M":return st(a);case"MM":return st(i);case"MMM":return xi(e.months("short",!0),1);case"MMMM":return xi(e.months("long",!0),1);case"L":return st(a);case"LL":return st(i);case"LLL":return xi(e.months("short",!1),1);case"LLLL":return xi(e.months("long",!1),1);case"d":return st(a);case"dd":return st(i);case"o":return st(l);case"ooo":return st(s);case"HH":return st(i);case"H":return st(a);case"hh":return st(i);case"h":return st(a);case"mm":return st(i);case"m":return st(a);case"q":return st(a);case"qq":return st(i);case"s":return st(a);case"ss":return st(i);case"S":return st(l);case"SSS":return st(s);case"u":return R9(h);case"uu":return R9(a);case"uuu":return st(t);case"a":return xi(e.meridiems(),0);case"kkkk":return st(n);case"kk":return st(d,g6);case"W":return st(a);case"WW":return st(i);case"E":case"c":return st(t);case"EEE":return xi(e.weekdays("short",!1),1);case"EEEE":return xi(e.weekdays("long",!1),1);case"ccc":return xi(e.weekdays("short",!0),1);case"cccc":return xi(e.weekdays("long",!0),1);case"Z":case"ZZ":return Zm(new RegExp(`([+-]${a.source})(?::(${i.source}))?`),2);case"ZZZ":return Zm(new RegExp(`([+-]${a.source})(${i.source})?`),2);case"z":return R9(/[a-z_+-/]{1,256}?/i);case" ":return R9(/[^\S\n\r]/);default:return g(w)}})(r)||{invalidReason:f_};return C.token=r,C}var x_={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function D_(r,e,t){let{type:i,value:s}=r;if(i==="literal"){let l=/^\s+$/.test(s);return{literal:!l,val:l?" ":s}}let n=e[i],o=i;i==="hour"&&(e.hour12!=null?o=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?o="hour12":o="hour24":o=t.hour12?"hour12":"hour24");let a=x_[o];if(typeof a=="object"&&(a=a[n]),a)return{literal:!1,val:a}}function b_(r){return[`^${r.map(t=>t.regex).reduce((t,i)=>`${t}(${i.source})`,"")}$`,r]}function E_(r,e,t){let i=r.match(e);if(i){let s={},n=1;for(let o in t)if(pl(t,o)){let a=t[o],l=a.groups?a.groups+1:1;!a.literal&&a.token&&(s[a.token.val[0]]=a.deser(i.slice(n,n+l))),n+=l}return[i,s]}else return[i,{}]}function S_(r){let e=n=>{switch(n){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},t=null,i;return Ke(r.z)||(t=_n.create(r.z)),Ke(r.Z)||(t||(t=new Kr(r.Z)),i=r.Z),Ke(r.q)||(r.M=(r.q-1)*3+1),Ke(r.h)||(r.h<12&&r.a===1?r.h+=12:r.h===12&&r.a===0&&(r.h=0)),r.G===0&&r.y&&(r.y=-r.y),Ke(r.u)||(r.S=C6(r.u)),[Object.keys(r).reduce((n,o)=>{let a=e(o);return a&&(n[a]=r[o]),n},{}),t,i]}var Q8=null;function C_(){return Q8||(Q8=Ye.fromMillis(1555555555555)),Q8}function w_(r,e){if(r.literal)return r;let t=Er.macroTokenToFormatOpts(r.val),i=Jy(t,e);return i==null||i.includes(void 0)?r:i}function Zy(r,e){return Array.prototype.concat(...r.map(t=>w_(t,e)))}function Qy(r,e,t){let i=Zy(Er.parseFormat(t),r),s=i.map(o=>v_(o,r)),n=s.find(o=>o.invalidReason);if(n)return{input:e,tokens:i,invalidReason:n.invalidReason};{let[o,a]=b_(s),l=RegExp(o,"i"),[c,h]=E_(e,l,a),[d,p,g]=h?S_(h):[null,null,void 0];if(pl(h,"a")&&pl(h,"H"))throw new Co("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:i,regex:l,rawMatches:c,matches:h,result:d,zone:p,specificOffset:g}}}function T_(r,e,t){let{result:i,zone:s,specificOffset:n,invalidReason:o}=Qy(r,e,t);return[i,s,n,o]}function Jy(r,e){if(!r)return null;let i=Er.create(e,r).dtFormatter(C_()),s=i.formatToParts(),n=i.resolvedOptions();return s.map(o=>D_(o,r,n))}var ev=[0,31,59,90,120,151,181,212,243,273,304,334],tv=[0,31,60,91,121,152,182,213,244,274,305,335];function Xr(r,e){return new Sr("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${r}, which is invalid`)}function rv(r,e,t){let i=new Date(Date.UTC(r,e-1,t));r<100&&r>=0&&i.setUTCFullYear(i.getUTCFullYear()-1900);let s=i.getUTCDay();return s===0?7:s}function iv(r,e,t){return t+(Mu(r)?tv:ev)[e-1]}function sv(r,e){let t=Mu(r)?tv:ev,i=t.findIndex(n=>nq9(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:n,...rp(r)}}function Qm(r){let{weekYear:e,weekNumber:t,weekday:i}=r,s=rv(e,1,4),n=Au(e),o=t*7+i-s-3,a;o<1?(a=e-1,o+=Au(a)):o>n?(a=e+1,o-=Au(e)):a=e;let{month:l,day:c}=sv(a,o);return{year:a,month:l,day:c,...rp(r)}}function J8(r){let{year:e,month:t,day:i}=r,s=iv(e,t,i);return{year:e,ordinal:s,...rp(r)}}function Jm(r){let{year:e,ordinal:t}=r,{month:i,day:s}=sv(e,t);return{year:e,month:i,day:s,...rp(r)}}function __(r){let e=J9(r.weekYear),t=Ls(r.weekNumber,1,q9(r.weekYear)),i=Ls(r.weekday,1,7);return e?t?i?!1:Xr("weekday",r.weekday):Xr("week",r.week):Xr("weekYear",r.weekYear)}function F_(r){let e=J9(r.year),t=Ls(r.ordinal,1,Au(r.year));return e?t?!1:Xr("ordinal",r.ordinal):Xr("year",r.year)}function nv(r){let e=J9(r.year),t=Ls(r.month,1,12),i=Ls(r.day,1,$9(r.year,r.month));return e?t?i?!1:Xr("day",r.day):Xr("month",r.month):Xr("year",r.year)}function ov(r){let{hour:e,minute:t,second:i,millisecond:s}=r,n=Ls(e,0,23)||e===24&&t===0&&i===0&&s===0,o=Ls(t,0,59),a=Ls(i,0,59),l=Ls(s,0,999);return n?o?a?l?!1:Xr("millisecond",s):Xr("second",i):Xr("minute",t):Xr("hour",e)}var e6="Invalid DateTime",ey=864e13;function O9(r){return new Sr("unsupported zone",`the zone "${r.name}" is not supported`)}function t6(r){return r.weekData===null&&(r.weekData=m6(r.c)),r.weekData}function So(r,e){let t={ts:r.ts,zone:r.zone,c:r.c,o:r.o,loc:r.loc,invalid:r.invalid};return new Ye({...t,...e,old:t})}function av(r,e,t){let i=r-e*60*1e3,s=t.offset(i);if(e===s)return[i,e];i-=(s-e)*60*1e3;let n=t.offset(i);return s===n?[i,s]:[r-Math.min(s,n)*60*1e3,Math.max(s,n)]}function G9(r,e){r+=e*60*1e3;let t=new Date(r);return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate(),hour:t.getUTCHours(),minute:t.getUTCMinutes(),second:t.getUTCSeconds(),millisecond:t.getUTCMilliseconds()}}function z9(r,e,t){return av(ep(r),e,t)}function ty(r,e){let t=r.o,i=r.c.year+Math.trunc(e.years),s=r.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,n={...r.c,year:i,month:s,day:Math.min(r.c.day,$9(i,s))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=Be.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),a=ep(n),[l,c]=av(a,t,r.zone);return o!==0&&(l+=o,c=r.zone.offset(l)),{ts:l,o:c}}function wu(r,e,t,i,s,n){let{setZone:o,zone:a}=t;if(r&&Object.keys(r).length!==0||e){let l=e||a,c=Ye.fromObject(r,{...t,zone:l,specificOffset:n});return o?c:c.setZone(a)}else return Ye.invalid(new Sr("unparsable",`the input "${s}" can't be parsed as ${i}`))}function U9(r,e,t=!0){return r.isValid?Er.create(Gt.create("en-US"),{allowZ:t,forceSimple:!0}).formatDateTimeFromString(r,e):null}function r6(r,e){let t=r.c.year>9999||r.c.year<0,i="";return t&&r.c.year>=0&&(i+="+"),i+=t0(r.c.year,t?6:4),e?(i+="-",i+=t0(r.c.month),i+="-",i+=t0(r.c.day)):(i+=t0(r.c.month),i+=t0(r.c.day)),i}function ry(r,e,t,i,s,n){let o=t0(r.c.hour);return e?(o+=":",o+=t0(r.c.minute),(r.c.millisecond!==0||r.c.second!==0||!t)&&(o+=":")):o+=t0(r.c.minute),(r.c.millisecond!==0||r.c.second!==0||!t)&&(o+=t0(r.c.second),(r.c.millisecond!==0||!i)&&(o+=".",o+=t0(r.c.millisecond,3))),s&&(r.isOffsetFixed&&r.offset===0&&!n?o+="Z":r.o<0?(o+="-",o+=t0(Math.trunc(-r.o/60)),o+=":",o+=t0(Math.trunc(-r.o%60))):(o+="+",o+=t0(Math.trunc(r.o/60)),o+=":",o+=t0(Math.trunc(r.o%60)))),n&&(o+="["+r.zone.ianaName+"]"),o}var lv={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},A_={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},k_={ordinal:1,hour:0,minute:0,second:0,millisecond:0},cv=["year","month","day","hour","minute","second","millisecond"],I_=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],L_=["year","ordinal","hour","minute","second","millisecond"];function iy(r){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[r.toLowerCase()];if(!e)throw new W9(r);return e}function sy(r,e){let t=Tn(e.zone,Ot.defaultZone),i=Gt.fromObject(e),s=Ot.now(),n,o;if(Ke(r.year))n=s;else{for(let c of cv)Ke(r[c])&&(r[c]=lv[c]);let a=nv(r)||ov(r);if(a)return Ye.invalid(a);let l=t.offset(s);[n,o]=z9(r,l,t)}return new Ye({ts:n,zone:t,loc:i,o})}function ny(r,e,t){let i=Ke(t.round)?!0:t.round,s=(o,a)=>(o=w6(o,i||t.calendary?0:2,!0),e.loc.clone(t).relFormatter(t).format(o,a)),n=o=>t.calendary?e.hasSame(r,o)?0:e.startOf(o).diff(r.startOf(o),o).get(o):e.diff(r,o).get(o);if(t.unit)return s(n(t.unit),t.unit);for(let o of t.units){let a=n(o);if(Math.abs(a)>=1)return s(a,o)}return s(r>e?-0:0,t.units[t.units.length-1])}function oy(r){let e={},t;return r.length>0&&typeof r[r.length-1]=="object"?(e=r[r.length-1],t=Array.from(r).slice(0,r.length-1)):t=Array.from(r),[e,t]}var Ye=class r{constructor(e){let t=e.zone||Ot.defaultZone,i=e.invalid||(Number.isNaN(e.ts)?new Sr("invalid input"):null)||(t.isValid?null:O9(t));this.ts=Ke(e.ts)?Ot.now():e.ts;let s=null,n=null;if(!i)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[s,n]=[e.old.c,e.old.o];else{let a=t.offset(this.ts);s=G9(this.ts,a),i=Number.isNaN(s.year)?new Sr("invalid input"):null,s=i?null:s,n=i?null:a}this._zone=t,this.loc=e.loc||Gt.create(),this.invalid=i,this.weekData=null,this.c=s,this.o=n,this.isLuxonDateTime=!0}static now(){return new r({})}static local(){let[e,t]=oy(arguments),[i,s,n,o,a,l,c]=t;return sy({year:i,month:s,day:n,hour:o,minute:a,second:l,millisecond:c},e)}static utc(){let[e,t]=oy(arguments),[i,s,n,o,a,l,c]=t;return e.zone=Kr.utcInstance,sy({year:i,month:s,day:n,hour:o,minute:a,second:l,millisecond:c},e)}static fromJSDate(e,t={}){let i=oT(e)?e.valueOf():NaN;if(Number.isNaN(i))return r.invalid("invalid input");let s=Tn(t.zone,Ot.defaultZone);return s.isValid?new r({ts:i,zone:s,loc:Gt.fromObject(t)}):r.invalid(O9(s))}static fromMillis(e,t={}){if(To(e))return e<-ey||e>ey?r.invalid("Timestamp out of range"):new r({ts:e,zone:Tn(t.zone,Ot.defaultZone),loc:Gt.fromObject(t)});throw new or(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,t={}){if(To(e))return new r({ts:e*1e3,zone:Tn(t.zone,Ot.defaultZone),loc:Gt.fromObject(t)});throw new or("fromSeconds requires a numerical input")}static fromObject(e,t={}){e=e||{};let i=Tn(t.zone,Ot.defaultZone);if(!i.isValid)return r.invalid(O9(i));let s=Ot.now(),n=Ke(t.specificOffset)?i.offset(s):t.specificOffset,o=Y9(e,iy),a=!Ke(o.ordinal),l=!Ke(o.year),c=!Ke(o.month)||!Ke(o.day),h=l||c,d=o.weekYear||o.weekNumber,p=Gt.fromObject(t);if((h||a)&&d)throw new Co("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Co("Can't mix ordinal dates with month/day");let g=d||o.weekday&&!h,v,C,w=G9(s,n);g?(v=I_,C=A_,w=m6(w)):a?(v=L_,C=k_,w=J8(w)):(v=cv,C=lv);let k=!1;for(let R of v){let z=o[R];Ke(z)?k?o[R]=C[R]:o[R]=w[R]:k=!0}let B=g?__(o):a?F_(o):nv(o),L=B||ov(o);if(L)return r.invalid(L);let T=g?Qm(o):a?Jm(o):o,[W,j]=z9(T,n,i),I=new r({ts:W,zone:i,o:j,loc:p});return o.weekday&&h&&e.weekday!==I.weekday?r.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${I.toISO()}`):I}static fromISO(e,t={}){let[i,s]=XT(e);return wu(i,s,t,"ISO 8601",e)}static fromRFC2822(e,t={}){let[i,s]=KT(e);return wu(i,s,t,"RFC 2822",e)}static fromHTTP(e,t={}){let[i,s]=ZT(e);return wu(i,s,t,"HTTP",t)}static fromFormat(e,t,i={}){if(Ke(e)||Ke(t))throw new or("fromFormat requires an input string and a format");let{locale:s=null,numberingSystem:n=null}=i,o=Gt.fromOpts({locale:s,numberingSystem:n,defaultToEN:!0}),[a,l,c,h]=T_(o,e,t);return h?r.invalid(h):wu(a,l,i,`format ${t}`,e,c)}static fromString(e,t,i={}){return r.fromFormat(e,t,i)}static fromSQL(e,t={}){let[i,s]=s_(e);return wu(i,s,t,"SQL",e)}static invalid(e,t=null){if(!e)throw new or("need to specify a reason the DateTime is invalid");let i=e instanceof Sr?e:new Sr(e,t);if(Ot.throwOnInvalid)throw new s6(i);return new r({invalid:i})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let i=Jy(e,Gt.fromObject(t));return i?i.map(s=>s?s.val:null).join(""):null}static expandFormat(e,t={}){return Zy(Er.parseFormat(e),Gt.fromObject(t)).map(s=>s.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?t6(this).weekYear:NaN}get weekNumber(){return this.isValid?t6(this).weekNumber:NaN}get weekday(){return this.isValid?t6(this).weekday:NaN}get ordinal(){return this.isValid?J8(this.c).ordinal:NaN}get monthShort(){return this.isValid?ul.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?ul.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?ul.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?ul.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,t=6e4,i=ep(this.c),s=this.zone.offset(i-e),n=this.zone.offset(i+e),o=this.zone.offset(i-s*t),a=this.zone.offset(i-n*t);if(o===a)return[this];let l=i-o*t,c=i-a*t,h=G9(l,o),d=G9(c,a);return h.hour===d.hour&&h.minute===d.minute&&h.second===d.second&&h.millisecond===d.millisecond?[So(this,{ts:l}),So(this,{ts:c})]:[this]}get isInLeapYear(){return Mu(this.year)}get daysInMonth(){return $9(this.year,this.month)}get daysInYear(){return this.isValid?Au(this.year):NaN}get weeksInWeekYear(){return this.isValid?q9(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:i,calendar:s}=Er.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:i,outputCalendar:s}}toUTC(e=0,t={}){return this.setZone(Kr.instance(e),t)}toLocal(){return this.setZone(Ot.defaultZone)}setZone(e,{keepLocalTime:t=!1,keepCalendarTime:i=!1}={}){if(e=Tn(e,Ot.defaultZone),e.equals(this.zone))return this;if(e.isValid){let s=this.ts;if(t||i){let n=e.offset(this.ts),o=this.toObject();[s]=z9(o,n,e)}return So(this,{ts:s,zone:e})}else return r.invalid(O9(e))}reconfigure({locale:e,numberingSystem:t,outputCalendar:i}={}){let s=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:i});return So(this,{loc:s})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=Y9(e,iy),i=!Ke(t.weekYear)||!Ke(t.weekNumber)||!Ke(t.weekday),s=!Ke(t.ordinal),n=!Ke(t.year),o=!Ke(t.month)||!Ke(t.day),a=n||o,l=t.weekYear||t.weekNumber;if((a||s)&&l)throw new Co("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&s)throw new Co("Can't mix ordinal dates with month/day");let c;i?c=Qm({...m6(this.c),...t}):Ke(t.ordinal)?(c={...this.toObject(),...t},Ke(t.day)&&(c.day=Math.min($9(c.year,c.month),c.day))):c=Jm({...J8(this.c),...t});let[h,d]=z9(c,this.o,this.zone);return So(this,{ts:h,o:d})}plus(e){if(!this.isValid)return this;let t=Be.fromDurationLike(e);return So(this,ty(this,t))}minus(e){if(!this.isValid)return this;let t=Be.fromDurationLike(e).negate();return So(this,ty(this,t))}startOf(e){if(!this.isValid)return this;let t={},i=Be.normalizeUnit(e);switch(i){case"years":t.month=1;case"quarters":case"months":t.day=1;case"weeks":case"days":t.hour=0;case"hours":t.minute=0;case"minutes":t.second=0;case"seconds":t.millisecond=0;break}if(i==="weeks"&&(t.weekday=1),i==="quarters"){let s=Math.ceil(this.month/3);t.month=(s-1)*3+1}return this.set(t)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,t={}){return this.isValid?Er.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):e6}toLocaleString(e=H9,t={}){return this.isValid?Er.create(this.loc.clone(t),e).formatDateTime(this):e6}toLocaleParts(e={}){return this.isValid?Er.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:t=!1,suppressMilliseconds:i=!1,includeOffset:s=!0,extendedZone:n=!1}={}){if(!this.isValid)return null;let o=e==="extended",a=r6(this,o);return a+="T",a+=ry(this,o,t,i,s,n),a}toISODate({format:e="extended"}={}){return this.isValid?r6(this,e==="extended"):null}toISOWeekDate(){return U9(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:i=!0,includePrefix:s=!1,extendedZone:n=!1,format:o="extended"}={}){return this.isValid?(s?"T":"")+ry(this,o==="extended",t,e,i,n):null}toRFC2822(){return U9(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return U9(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?r6(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:i=!0}={}){let s="HH:mm:ss.SSS";return(t||e)&&(i&&(s+=" "),t?s+="z":e&&(s+="ZZ")),U9(this,s,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():e6}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t="milliseconds",i={}){if(!this.isValid||!e.isValid)return Be.invalid("created by diffing an invalid DateTime");let s={locale:this.locale,numberingSystem:this.numberingSystem,...i},n=aT(t).map(Be.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,l=o?e:this,c=h_(a,l,n,s);return o?c.negate():c}diffNow(e="milliseconds",t={}){return this.diff(r.now(),e,t)}until(e){return this.isValid?dl.fromDateTimes(this,e):this}hasSame(e,t){if(!this.isValid)return!1;let i=e.valueOf(),s=this.setZone(e.zone,{keepLocalTime:!0});return s.startOf(t)<=i&&i<=s.endOf(t)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let t=e.base||r.fromObject({},{zone:this.zone}),i=e.padding?thist.valueOf(),Math.min)}static max(...e){if(!e.every(r.isDateTime))throw new or("max requires all arguments be DateTimes");return Wm(e,t=>t.valueOf(),Math.max)}static fromFormatExplain(e,t,i={}){let{locale:s=null,numberingSystem:n=null}=i,o=Gt.fromOpts({locale:s,numberingSystem:n,defaultToEN:!0});return Qy(o,e,t)}static fromStringExplain(e,t,i={}){return r.fromFormatExplain(e,t,i)}static get DATE_SHORT(){return H9}static get DATE_MED(){return dy}static get DATE_MED_WITH_WEEKDAY(){return Hw}static get DATE_FULL(){return py}static get DATE_HUGE(){return fy}static get TIME_SIMPLE(){return gy}static get TIME_WITH_SECONDS(){return my}static get TIME_WITH_SHORT_OFFSET(){return yy}static get TIME_WITH_LONG_OFFSET(){return vy}static get TIME_24_SIMPLE(){return xy}static get TIME_24_WITH_SECONDS(){return Dy}static get TIME_24_WITH_SHORT_OFFSET(){return by}static get TIME_24_WITH_LONG_OFFSET(){return Ey}static get DATETIME_SHORT(){return Sy}static get DATETIME_SHORT_WITH_SECONDS(){return Cy}static get DATETIME_MED(){return wy}static get DATETIME_MED_WITH_SECONDS(){return Ty}static get DATETIME_MED_WITH_WEEKDAY(){return jw}static get DATETIME_FULL(){return _y}static get DATETIME_FULL_WITH_SECONDS(){return Fy}static get DATETIME_HUGE(){return Ay}static get DATETIME_HUGE_WITH_SECONDS(){return ky}};function Tu(r){if(Ye.isDateTime(r))return r;if(r&&r.valueOf&&To(r.valueOf()))return Ye.fromJSDate(r);if(r&&typeof r=="object")return Ye.fromObject(r);throw new or(`Unknown datetime argument: ${r}, of type ${typeof r}`)}var k6={renderNullAs:"\\-",taskCompletionTracking:!1,taskCompletionUseEmojiShorthand:!1,taskCompletionText:"completion",taskCompletionDateFormat:"yyyy-MM-dd",recursiveSubTaskCompletion:!1,warnOnEmptyResult:!0,refreshEnabled:!0,refreshInterval:2500,defaultDateFormat:"MMMM dd, yyyy",defaultDateTimeFormat:"h:mm a - MMMM dd, yyyy",maxRecursiveRenderDepth:4,tableIdColumnName:"File",tableGroupColumnName:"Group",showResultCount:!0},M_={allowHtml:!0};({...k6,...M_});var y6=class r{constructor(e){M0(this,"value");M0(this,"successful");this.value=e,this.successful=!0}map(e){return new r(e(this.value))}flatMap(e){return e(this.value)}mapErr(e){return this}bimap(e,t){return this.map(e)}orElse(e){return this.value}cast(){return this}orElseThrow(e){return this.value}},v6=class r{constructor(e){M0(this,"error");M0(this,"successful");this.error=e,this.successful=!1}map(e){return this}flatMap(e){return this}mapErr(e){return new r(e(this.error))}bimap(e,t){return this.mapErr(t)}orElse(e){return e}cast(){return this}orElseThrow(e){throw e?new Error(e(this.error)):new Error(""+this.error)}},X9;(function(r){function e(n){return new y6(n)}r.success=e;function t(n){return new v6(n)}r.failure=t;function i(n,o,a){return n.successful?o.successful?a(n.value,o.value):t(o.error):t(n.error)}r.flatMap2=i;function s(n,o,a){return i(n,o,(l,c)=>e(a(l,c)))}r.map2=s})(X9||(X9={}));var N_=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},K9={exports:{}};K9.exports;(function(r,e){(function(t,i){r.exports=i()})(typeof self<"u"?self:N_,function(){return function(t){var i={};function s(n){if(i[n])return i[n].exports;var o=i[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,s),o.l=!0,o.exports}return s.m=t,s.c=i,s.d=function(n,o,a){s.o(n,o)||Object.defineProperty(n,o,{configurable:!1,enumerable:!0,get:a})},s.r=function(n){Object.defineProperty(n,"__esModule",{value:!0})},s.n=function(n){var o=n&&n.__esModule?function(){return n.default}:function(){return n};return s.d(o,"a",o),o},s.o=function(n,o){return Object.prototype.hasOwnProperty.call(n,o)},s.p="",s(s.s=0)}([function(t,i,s){function n(D){if(!(this instanceof n))return new n(D);this._=D}var o=n.prototype;function a(D,F){for(var N=0;N>7),buf:function(V){var X=l(function(ee,be,Ve,mt){return ee.concat(Ve===mt.length-1?Buffer.from([be,0]).readUInt16BE(0):mt.readUInt16BE(Ve))},[],V);return Buffer.from(c(function(ee){return(ee<<1&65535)>>8},X))}(N.buf)}}),N}function d(){return typeof Buffer<"u"}function p(){if(!d())throw new Error("Buffer global does not exist; please use webpack if you need to parse Buffers in the browser.")}function g(D){p();var F=l(function(X,ee){return X+ee},0,D);if(F%8!=0)throw new Error("The bits ["+D.join(", ")+"] add up to "+F+" which is not an even number of bytes; the total should be divisible by 8");var N,G=F/8,V=(N=function(X){return X>48},l(function(X,ee){return X||(N(ee)?ee:X)},null,D));if(V)throw new Error(V+" bit range requested exceeds 48 bit (6 byte) Number max.");return new n(function(X,ee){var be=G+ee;return be>X.length?R(ee,G.toString()+" bytes"):I(be,l(function(Ve,mt){var Ze=h(mt,Ve.buf);return{coll:Ve.coll.concat(Ze.v),buf:Ze.buf}},{coll:[],buf:X.slice(ee,be)},D).coll)})}function v(D,F){return new n(function(N,G){return p(),G+F>N.length?R(G,F+" bytes for "+D):I(G+F,N.slice(G,G+F))})}function C(D,F){if(typeof(N=F)!="number"||Math.floor(N)!==N||F<0||F>6)throw new Error(D+" requires integer length in range [0, 6].");var N}function w(D){return C("uintBE",D),v("uintBE("+D+")",D).map(function(F){return F.readUIntBE(0,D)})}function k(D){return C("uintLE",D),v("uintLE("+D+")",D).map(function(F){return F.readUIntLE(0,D)})}function B(D){return C("intBE",D),v("intBE("+D+")",D).map(function(F){return F.readIntBE(0,D)})}function L(D){return C("intLE",D),v("intLE("+D+")",D).map(function(F){return F.readIntLE(0,D)})}function T(D){return D instanceof n}function W(D){return{}.toString.call(D)==="[object Array]"}function j(D){return d()&&Buffer.isBuffer(D)}function I(D,F){return{status:!0,index:D,value:F,furthest:-1,expected:[]}}function R(D,F){return W(F)||(F=[F]),{status:!1,index:-1,value:null,furthest:D,expected:F}}function z(D,F){if(!F||D.furthest>F.furthest)return D;var N=D.furthest===F.furthest?function(G,V){if(function(){if(n._supportsSet!==void 0)return n._supportsSet;var j0=typeof Set<"u";return n._supportsSet=j0,j0}()&&Array.from){for(var X=new Set(G),ee=0;ee=0;){if(ee in N){G=N[ee].line,X===0&&(X=N[ee].lineStart);break}(D.charAt(ee)===` +var bv=Object.create;var bl=Object.defineProperty;var Ev=Object.getOwnPropertyDescriptor;var Sv=Object.getOwnPropertyNames;var Cv=Object.getPrototypeOf,wv=Object.prototype.hasOwnProperty;var P6=r=>{throw TypeError(r)};var Tv=(r,e,t)=>e in r?bl(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var Pe=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),El=(r,e)=>{for(var t in e)bl(r,t,{get:e[t],enumerable:!0})},B6=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Sv(e))!wv.call(r,s)&&s!==t&&bl(r,s,{get:()=>e[s],enumerable:!(i=Ev(e,s))||i.enumerable});return r};var St=(r,e,t)=>(t=r!=null?bv(Cv(r)):{},B6(e||!r||!r.__esModule?bl(t,"default",{value:r,enumerable:!0}):t,r)),_v=r=>B6(bl({},"__esModule",{value:!0}),r);var M0=(r,e,t)=>Tv(r,typeof e!="symbol"?e+"":e,t),R6=(r,e,t)=>e.has(r)||P6("Cannot "+t);var O6=(r,e,t)=>(R6(r,e,"read from private field"),t?t.call(r):e.get(r)),G6=(r,e,t)=>e.has(r)?P6("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t),U6=(r,e,t,i)=>(R6(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t);var x7=Pe((qB,Ip)=>{"use strict";var Fb=Object.prototype.hasOwnProperty,R0="~";function Il(){}Object.create&&(Il.prototype=Object.create(null),new Il().__proto__||(R0=!1));function Ab(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function v7(r,e,t,i,s){if(typeof t!="function")throw new TypeError("The listener must be a function");var n=new Ab(t,i||r,s),o=R0?R0+e:e;return r._events[o]?r._events[o].fn?r._events[o]=[r._events[o],n]:r._events[o].push(n):(r._events[o]=n,r._eventsCount++),r}function Sh(r,e){--r._eventsCount===0?r._events=new Il:delete r._events[e]}function _0(){this._events=new Il,this._eventsCount=0}_0.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)Fb.call(t,i)&&e.push(R0?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};_0.prototype.listeners=function(e){var t=R0?R0+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var s=0,n=i.length,o=new Array(n);s{"use strict";Pp.exports=Th;Pp.exports.default=Th;function Th(r,e,t){t=t||2;var i=e&&e.length,s=i?e[0]*t:r.length,n=b7(r,0,s,t,!0),o=[];if(!n||n.next===n.prev)return o;var a,l,c,h,d,p,g;if(i&&(n=Nb(r,e,n,t)),r.length>80*t){a=c=r[0],l=h=r[1];for(var v=t;vc&&(c=d),p>h&&(h=p);g=Math.max(c-a,h-l),g=g!==0?32767/g:0}return Ll(n,o,t,a,l,g,0),o}function b7(r,e,t,i,s){var n,o;if(s===Np(r,e,t,i)>0)for(n=e;n=e;n-=i)o=D7(n,r[n],r[n+1],o);return o&&_h(o,o.next)&&(Nl(o),o=o.next),o}function zn(r,e){if(!r)return r;e||(e=r);var t=r,i;do if(i=!1,!t.steiner&&(_h(t,t.next)||kt(t.prev,t,t.next)===0)){if(Nl(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function Ll(r,e,t,i,s,n,o){if(r){!o&&n&&Gb(r,i,s,n);for(var a=r,l,c;r.prev!==r.next;){if(l=r.prev,c=r.next,n?Ib(r,i,s,n):kb(r)){e.push(l.i/t|0),e.push(r.i/t|0),e.push(c.i/t|0),Nl(r),r=c.next,a=c.next;continue}if(r=c,r===a){o?o===1?(r=Lb(zn(r),e,t),Ll(r,e,t,i,s,n,2)):o===2&&Mb(r,e,t,i,s,n):Ll(zn(r),e,t,i,s,n,1);break}}}}function kb(r){var e=r.prev,t=r,i=r.next;if(kt(e,t,i)>=0)return!1;for(var s=e.x,n=t.x,o=i.x,a=e.y,l=t.y,c=i.y,h=sn?s>o?s:o:n>o?n:o,g=a>l?a>c?a:c:l>c?l:c,v=i.next;v!==e;){if(v.x>=h&&v.x<=p&&v.y>=d&&v.y<=g&&$o(s,a,n,l,o,c,v.x,v.y)&&kt(v.prev,v,v.next)>=0)return!1;v=v.next}return!0}function Ib(r,e,t,i){var s=r.prev,n=r,o=r.next;if(kt(s,n,o)>=0)return!1;for(var a=s.x,l=n.x,c=o.x,h=s.y,d=n.y,p=o.y,g=al?a>c?a:c:l>c?l:c,w=h>d?h>p?h:p:d>p?d:p,k=Lp(g,v,e,t,i),B=Lp(C,w,e,t,i),L=r.prevZ,T=r.nextZ;L&&L.z>=k&&T&&T.z<=B;){if(L.x>=g&&L.x<=C&&L.y>=v&&L.y<=w&&L!==s&&L!==o&&$o(a,h,l,d,c,p,L.x,L.y)&&kt(L.prev,L,L.next)>=0||(L=L.prevZ,T.x>=g&&T.x<=C&&T.y>=v&&T.y<=w&&T!==s&&T!==o&&$o(a,h,l,d,c,p,T.x,T.y)&&kt(T.prev,T,T.next)>=0))return!1;T=T.nextZ}for(;L&&L.z>=k;){if(L.x>=g&&L.x<=C&&L.y>=v&&L.y<=w&&L!==s&&L!==o&&$o(a,h,l,d,c,p,L.x,L.y)&&kt(L.prev,L,L.next)>=0)return!1;L=L.prevZ}for(;T&&T.z<=B;){if(T.x>=g&&T.x<=C&&T.y>=v&&T.y<=w&&T!==s&&T!==o&&$o(a,h,l,d,c,p,T.x,T.y)&&kt(T.prev,T,T.next)>=0)return!1;T=T.nextZ}return!0}function Lb(r,e,t){var i=r;do{var s=i.prev,n=i.next.next;!_h(s,n)&&E7(s,i,i.next,n)&&Ml(s,n)&&Ml(n,s)&&(e.push(s.i/t|0),e.push(i.i/t|0),e.push(n.i/t|0),Nl(i),Nl(i.next),i=r=n),i=i.next}while(i!==r);return zn(i)}function Mb(r,e,t,i,s,n){var o=r;do{for(var a=o.next.next;a!==o.prev;){if(o.i!==a.i&&zb(o,a)){var l=S7(o,a);o=zn(o,o.next),l=zn(l,l.next),Ll(o,e,t,i,s,n,0),Ll(l,e,t,i,s,n,0);return}a=a.next}o=o.next}while(o!==r)}function Nb(r,e,t,i){var s=[],n,o,a,l,c;for(n=0,o=e.length;n=t.next.y&&t.next.y!==t.y){var a=t.x+(s-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(a<=i&&a>n&&(n=a,o=t.x=t.x&&t.x>=c&&i!==t.x&&$o(so.x||t.x===o.x&&Ob(o,t)))&&(o=t,d=p)),t=t.next;while(t!==l);return o}function Ob(r,e){return kt(r.prev,r,e.prev)<0&&kt(e.next,r,r.next)<0}function Gb(r,e,t,i){var s=r;do s.z===0&&(s.z=Lp(s.x,s.y,e,t,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==r);s.prevZ.nextZ=null,s.prevZ=null,Ub(s)}function Ub(r){var e,t,i,s,n,o,a,l,c=1;do{for(t=r,r=null,n=null,o=0;t;){for(o++,i=t,a=0,e=0;e0||l>0&&i;)a!==0&&(l===0||!i||t.z<=i.z)?(s=t,t=t.nextZ,a--):(s=i,i=i.nextZ,l--),n?n.nextZ=s:r=s,s.prevZ=n,n=s;t=i}n.nextZ=null,c*=2}while(o>1);return r}function Lp(r,e,t,i,s){return r=(r-t)*s|0,e=(e-i)*s|0,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,r|e<<1}function Vb(r){var e=r,t=r;do(e.x=(r-o)*(n-a)&&(r-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(n-a)>=(s-o)*(i-a)}function zb(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!Wb(r,e)&&(Ml(r,e)&&Ml(e,r)&&Hb(r,e)&&(kt(r.prev,r,e.prev)||kt(r,e.prev,e))||_h(r,e)&&kt(r.prev,r,r.next)>0&&kt(e.prev,e,e.next)>0)}function kt(r,e,t){return(e.y-r.y)*(t.x-e.x)-(e.x-r.x)*(t.y-e.y)}function _h(r,e){return r.x===e.x&&r.y===e.y}function E7(r,e,t,i){var s=wh(kt(r,e,t)),n=wh(kt(r,e,i)),o=wh(kt(t,i,r)),a=wh(kt(t,i,e));return!!(s!==n&&o!==a||s===0&&Ch(r,t,e)||n===0&&Ch(r,i,e)||o===0&&Ch(t,r,i)||a===0&&Ch(t,e,i))}function Ch(r,e,t){return e.x<=Math.max(r.x,t.x)&&e.x>=Math.min(r.x,t.x)&&e.y<=Math.max(r.y,t.y)&&e.y>=Math.min(r.y,t.y)}function wh(r){return r>0?1:r<0?-1:0}function Wb(r,e){var t=r;do{if(t.i!==r.i&&t.next.i!==r.i&&t.i!==e.i&&t.next.i!==e.i&&E7(t,t.next,r,e))return!0;t=t.next}while(t!==r);return!1}function Ml(r,e){return kt(r.prev,r,r.next)<0?kt(r,e,r.next)>=0&&kt(r,r.prev,e)>=0:kt(r,e,r.prev)<0||kt(r,r.next,e)<0}function Hb(r,e){var t=r,i=!1,s=(r.x+e.x)/2,n=(r.y+e.y)/2;do t.y>n!=t.next.y>n&&t.next.y!==t.y&&s<(t.next.x-t.x)*(n-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==r);return i}function S7(r,e){var t=new Mp(r.i,r.x,r.y),i=new Mp(e.i,e.x,e.y),s=r.next,n=e.prev;return r.next=e,e.prev=r,t.next=s,s.prev=t,i.next=t,t.prev=i,n.next=i,i.prev=n,i}function D7(r,e,t,i){var s=new Mp(r,e,t);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function Nl(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function Mp(r,e,t){this.i=r,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}Th.deviation=function(r,e,t,i){var s=e&&e.length,n=s?e[0]*t:r.length,o=Math.abs(Np(r,0,n,t));if(s)for(var a=0,l=e.length;a0&&(i+=r[s-1].length,t.holes.push(i))}return t}});var kd=Pe((n8,o8)=>{(function(r,e){typeof n8=="object"&&typeof o8<"u"?o8.exports=e():typeof define=="function"&&define.amd?define(e):(r=typeof globalThis<"u"?globalThis:r||self).graphology=e()})(n8,function(){"use strict";function r(x){return r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(S){return typeof S}:function(S){return S&&typeof Symbol=="function"&&S.constructor===Symbol&&S!==Symbol.prototype?"symbol":typeof S},r(x)}function e(x,S){x.prototype=Object.create(S.prototype),x.prototype.constructor=x,i(x,S)}function t(x){return t=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(S){return S.__proto__||Object.getPrototypeOf(S)},t(x)}function i(x,S){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(b,f){return b.__proto__=f,b},i(x,S)}function s(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function n(x,S,b){return n=s()?Reflect.construct.bind():function(f,y,E){var _=[null];_.push.apply(_,y);var M=new(Function.bind.apply(f,_));return E&&i(M,E.prototype),M},n.apply(null,arguments)}function o(x){var S=typeof Map=="function"?new Map:void 0;return o=function(b){if(b===null||(f=b,Function.toString.call(f).indexOf("[native code]")===-1))return b;var f;if(typeof b!="function")throw new TypeError("Super expression must either be null or a function");if(S!==void 0){if(S.has(b))return S.get(b);S.set(b,y)}function y(){return n(b,arguments,t(this).constructor)}return y.prototype=Object.create(b.prototype,{constructor:{value:y,enumerable:!1,writable:!0,configurable:!0}}),i(y,b)},o(x)}function a(x){if(x===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return x}var l=function(){for(var x=arguments[0],S=1,b=arguments.length;S0&&_.length>y&&!_.warned){_.warned=!0;var H=new Error("Possible EventEmitter memory leak detected. "+_.length+" "+String(S)+" listeners added. Use emitter.setMaxListeners() to increase limit");H.name="MaxListenersExceededWarning",H.emitter=x,H.type=S,H.count=_.length,M=H,console&&console.warn&&console.warn(M)}return x}function z(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function U(x,S,b){var f={fired:!1,wrapFn:void 0,target:x,type:S,listener:b},y=z.bind(f);return y.listener=b,f.wrapFn=y,y}function q(x,S,b){var f=x._events;if(f===void 0)return[];var y=f[S];return y===void 0?[]:typeof y=="function"?b?[y.listener||y]:[y]:b?function(E){for(var _=new Array(E.length),M=0;M<_.length;++M)_[M]=E[M].listener||E[M];return _}(y):$(y,y.length)}function re(x){var S=this._events;if(S!==void 0){var b=S[x];if(typeof b=="function")return 1;if(b!==void 0)return b.length}return 0}function $(x,S){for(var b=new Array(S),f=0;f0&&(E=S[0]),E instanceof Error)throw E;var _=new Error("Unhandled error."+(E?" ("+E.message+")":""));throw _.context=E,_}var M=y[x];if(M===void 0)return!1;if(typeof M=="function")B(M,this,S);else{var H=M.length,se=$(M,H);for(b=0;b=0;E--)if(b[E]===S||b[E].listener===S){_=b[E].listener,y=E;break}if(y<0)return this;y===0?b.shift():function(M,H){for(;H+1=0;f--)this.removeListener(x,S[f]);return this},T.prototype.listeners=function(x){return q(this,x,!0)},T.prototype.rawListeners=function(x){return q(this,x,!1)},T.listenerCount=function(x,S){return typeof x.listenerCount=="function"?x.listenerCount(S):re.call(x,S)},T.prototype.listenerCount=re,T.prototype.eventNames=function(){return this._eventsCount>0?C(this._events):[]},typeof Symbol<"u"&&(Te.prototype[Symbol.iterator]=function(){return this}),Te.of=function(){var x=arguments,S=x.length,b=0;return new Te(function(){return b>=S?{done:!0}:{done:!1,value:x[b++]}})},Te.empty=function(){return new Te(function(){return{done:!0}})},Te.fromSequence=function(x){var S=0,b=x.length;return new Te(function(){return S>=b?{done:!0}:{done:!1,value:x[S++]}})},Te.is=function(x){return x instanceof Te||typeof x=="object"&&x!==null&&typeof x.next=="function"};var ye=Te,xe={};xe.ARRAY_BUFFER_SUPPORT=typeof ArrayBuffer<"u",xe.SYMBOL_SUPPORT=typeof Symbol<"u";var De=ye,_e=xe,Mt=_e.ARRAY_BUFFER_SUPPORT,rt=_e.SYMBOL_SUPPORT,et=function(x){var S=function(b){return typeof b=="string"||Array.isArray(b)||Mt&&ArrayBuffer.isView(b)?De.fromSequence(b):typeof b!="object"||b===null?null:rt&&typeof b[Symbol.iterator]=="function"?b[Symbol.iterator]():typeof b.next=="function"?b:null}(x);if(!S)throw new Error("obliterator: target is not iterable nor a valid iterator.");return S},gt=et,Dt=function(x,S){for(var b,f=arguments.length>1?S:1/0,y=f!==1/0?new Array(f):[],E=0,_=gt(x);;){if(E===f)return y;if((b=_.next()).done)return E!==S&&(y.length=E),y;y[E++]=b.value}},I0=function(x){function S(b){var f;return(f=x.call(this)||this).name="GraphError",f.message=b,f}return e(S,x),S}(o(Error)),de=function(x){function S(b){var f;return(f=x.call(this,b)||this).name="InvalidArgumentsGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(a(f),S.prototype.constructor),f}return e(S,x),S}(I0),oe=function(x){function S(b){var f;return(f=x.call(this,b)||this).name="NotFoundGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(a(f),S.prototype.constructor),f}return e(S,x),S}(I0),ve=function(x){function S(b){var f;return(f=x.call(this,b)||this).name="UsageGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(a(f),S.prototype.constructor),f}return e(S,x),S}(I0);function Yt(x,S){this.key=x,this.attributes=S,this.clear()}function Ut(x,S){this.key=x,this.attributes=S,this.clear()}function r0(x,S){this.key=x,this.attributes=S,this.clear()}function Ft(x,S,b,f,y){this.key=S,this.attributes=y,this.undirected=x,this.source=b,this.target=f}Yt.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.undirectedDegree=0,this.undirectedLoops=0,this.directedLoops=0,this.in={},this.out={},this.undirected={}},Ut.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.directedLoops=0,this.in={},this.out={}},r0.prototype.clear=function(){this.undirectedDegree=0,this.undirectedLoops=0,this.undirected={}},Ft.prototype.attach=function(){var x="out",S="in";this.undirected&&(x=S="undirected");var b=this.source.key,f=this.target.key;this.source[x][f]=this,this.undirected&&b===f||(this.target[S][b]=this)},Ft.prototype.attachMulti=function(){var x="out",S="in",b=this.source.key,f=this.target.key;this.undirected&&(x=S="undirected");var y=this.source[x],E=y[f];if(E===void 0)return y[f]=this,void(this.undirected&&b===f||(this.target[S][b]=this));E.previous=this,this.next=E,y[f]=this,this.target[S][b]=this},Ft.prototype.detach=function(){var x=this.source.key,S=this.target.key,b="out",f="in";this.undirected&&(b=f="undirected"),delete this.source[b][S],delete this.target[f][x]},Ft.prototype.detachMulti=function(){var x=this.source.key,S=this.target.key,b="out",f="in";this.undirected&&(b=f="undirected"),this.previous===void 0?this.next===void 0?(delete this.source[b][S],delete this.target[f][x]):(this.next.previous=void 0,this.source[b][S]=this.next,this.target[f][x]=this.next):(this.previous.next=this.next,this.next!==void 0&&(this.next.previous=this.previous))};function it(x,S,b,f,y,E,_){var M,H,se,ie;if(f=""+f,b===0){if(!(M=x._nodes.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" node in the graph.'));se=y,ie=E}else if(b===3){if(y=""+y,!(H=x._edges.get(y)))throw new oe("Graph.".concat(S,': could not find the "').concat(y,'" edge in the graph.'));var J=H.source.key,fe=H.target.key;if(f===J)M=H.target;else{if(f!==fe)throw new oe("Graph.".concat(S,': the "').concat(f,'" node is not attached to the "').concat(y,'" edge (').concat(J,", ").concat(fe,")."));M=H.source}se=E,ie=_}else{if(!(H=x._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'));M=b===1?H.source:H.target,se=y,ie=E}return[M,se,ie]}var p0=[{name:function(x){return"get".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _=it(this,S,b,f,y,E),M=_[0],H=_[1];return M.attributes[H]}}},{name:function(x){return"get".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f,y){return it(this,S,b,f,y)[0].attributes}}},{name:function(x){return"has".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _=it(this,S,b,f,y,E),M=_[0],H=_[1];return M.attributes.hasOwnProperty(H)}}},{name:function(x){return"set".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E,_){var M=it(this,S,b,f,y,E,_),H=M[0],se=M[1],ie=M[2];return H.attributes[se]=ie,this.emit("nodeAttributesUpdated",{key:H.key,type:"set",attributes:H.attributes,name:se}),this}}},{name:function(x){return"update".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E,_){var M=it(this,S,b,f,y,E,_),H=M[0],se=M[1],ie=M[2];if(typeof ie!="function")throw new de("Graph.".concat(S,": updater should be a function."));var J=H.attributes,fe=ie(J[se]);return J[se]=fe,this.emit("nodeAttributesUpdated",{key:H.key,type:"set",attributes:H.attributes,name:se}),this}}},{name:function(x){return"remove".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _=it(this,S,b,f,y,E),M=_[0],H=_[1];return delete M.attributes[H],this.emit("nodeAttributesUpdated",{key:M.key,type:"remove",attributes:M.attributes,name:H}),this}}},{name:function(x){return"replace".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _=it(this,S,b,f,y,E),M=_[0],H=_[1];if(!h(H))throw new de("Graph.".concat(S,": provided attributes are not a plain object."));return M.attributes=H,this.emit("nodeAttributesUpdated",{key:M.key,type:"replace",attributes:M.attributes}),this}}},{name:function(x){return"merge".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _=it(this,S,b,f,y,E),M=_[0],H=_[1];if(!h(H))throw new de("Graph.".concat(S,": provided attributes are not a plain object."));return l(M.attributes,H),this.emit("nodeAttributesUpdated",{key:M.key,type:"merge",attributes:M.attributes,data:H}),this}}},{name:function(x){return"update".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _=it(this,S,b,f,y,E),M=_[0],H=_[1];if(typeof H!="function")throw new de("Graph.".concat(S,": provided updater is not a function."));return M.attributes=H(M.attributes),this.emit("nodeAttributesUpdated",{key:M.key,type:"update",attributes:M.attributes}),this}}}],i0=[{name:function(x){return"get".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y){var E;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var _=""+f,M=""+y;if(y=arguments[2],!(E=c(this,_,M,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(_,'" - "').concat(M,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(E=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}return E.attributes[y]}}},{name:function(x){return"get".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f){var y;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>1){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var E=""+f,_=""+arguments[1];if(!(y=c(this,E,_,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(E,'" - "').concat(_,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(y=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}return y.attributes}}},{name:function(x){return"has".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y){var E;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var _=""+f,M=""+y;if(y=arguments[2],!(E=c(this,_,M,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(_,'" - "').concat(M,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(E=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}return E.attributes.hasOwnProperty(y)}}},{name:function(x){return"set".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>3){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var M=""+f,H=""+y;if(y=arguments[2],E=arguments[3],!(_=c(this,M,H,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(M,'" - "').concat(H,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(_=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}return _.attributes[y]=E,this.emit("edgeAttributesUpdated",{key:_.key,type:"set",attributes:_.attributes,name:y}),this}}},{name:function(x){return"update".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y,E){var _;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>3){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var M=""+f,H=""+y;if(y=arguments[2],E=arguments[3],!(_=c(this,M,H,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(M,'" - "').concat(H,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(_=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}if(typeof E!="function")throw new de("Graph.".concat(S,": updater should be a function."));return _.attributes[y]=E(_.attributes[y]),this.emit("edgeAttributesUpdated",{key:_.key,type:"set",attributes:_.attributes,name:y}),this}}},{name:function(x){return"remove".concat(x,"Attribute")},attacher:function(x,S,b){x.prototype[S]=function(f,y){var E;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var _=""+f,M=""+y;if(y=arguments[2],!(E=c(this,_,M,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(_,'" - "').concat(M,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(E=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}return delete E.attributes[y],this.emit("edgeAttributesUpdated",{key:E.key,type:"remove",attributes:E.attributes,name:y}),this}}},{name:function(x){return"replace".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f,y){var E;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var _=""+f,M=""+y;if(y=arguments[2],!(E=c(this,_,M,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(_,'" - "').concat(M,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(E=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}if(!h(y))throw new de("Graph.".concat(S,": provided attributes are not a plain object."));return E.attributes=y,this.emit("edgeAttributesUpdated",{key:E.key,type:"replace",attributes:E.attributes}),this}}},{name:function(x){return"merge".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f,y){var E;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var _=""+f,M=""+y;if(y=arguments[2],!(E=c(this,_,M,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(_,'" - "').concat(M,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(E=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}if(!h(y))throw new de("Graph.".concat(S,": provided attributes are not a plain object."));return l(E.attributes,y),this.emit("edgeAttributesUpdated",{key:E.key,type:"merge",attributes:E.attributes,data:y}),this}}},{name:function(x){return"update".concat(x,"Attributes")},attacher:function(x,S,b){x.prototype[S]=function(f,y){var E;if(this.type!=="mixed"&&b!=="mixed"&&b!==this.type)throw new ve("Graph.".concat(S,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new ve("Graph.".concat(S,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var _=""+f,M=""+y;if(y=arguments[2],!(E=c(this,_,M,b)))throw new oe("Graph.".concat(S,': could not find an edge for the given path ("').concat(_,'" - "').concat(M,'").'))}else{if(b!=="mixed")throw new ve("Graph.".concat(S,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(f=""+f,!(E=this._edges.get(f)))throw new oe("Graph.".concat(S,': could not find the "').concat(f,'" edge in the graph.'))}if(typeof y!="function")throw new de("Graph.".concat(S,": provided updater is not a function."));return E.attributes=y(E.attributes),this.emit("edgeAttributesUpdated",{key:E.key,type:"update",attributes:E.attributes}),this}}}],C0=ye,Zr=et,wt=function(){var x=arguments,S=null,b=-1;return new C0(function(){for(var f=null;;){if(S===null){if(++b>=x.length)return{done:!0};S=Zr(x[b])}if((f=S.next()).done!==!0)break;S=null}return f})},Fn=[{name:"edges",type:"mixed"},{name:"inEdges",type:"directed",direction:"in"},{name:"outEdges",type:"directed",direction:"out"},{name:"inboundEdges",type:"mixed",direction:"in"},{name:"outboundEdges",type:"mixed",direction:"out"},{name:"directedEdges",type:"directed"},{name:"undirectedEdges",type:"undirected"}];function Ei(x,S,b,f){var y=!1;for(var E in S)if(E!==f){var _=S[E];if(y=b(_.key,_.attributes,_.source.key,_.target.key,_.source.attributes,_.target.attributes,_.undirected),x&&y)return _.key}}function Si(x,S,b,f){var y,E,_,M=!1;for(var H in S)if(H!==f){y=S[H];do{if(E=y.source,_=y.target,M=b(y.key,y.attributes,E.key,_.key,E.attributes,_.attributes,y.undirected),x&&M)return y.key;y=y.next}while(y!==void 0)}}function Zi(x,S){var b,f=Object.keys(x),y=f.length,E=0;return new ye(function(){do if(b)b=b.next;else{if(E>=y)return{done:!0};var _=f[E++];if(_===S){b=void 0;continue}b=x[_]}while(!b);return{done:!1,value:{edge:b.key,attributes:b.attributes,source:b.source.key,target:b.target.key,sourceAttributes:b.source.attributes,targetAttributes:b.target.attributes,undirected:b.undirected}}})}function Qi(x,S,b,f){var y=S[b];if(y){var E=y.source,_=y.target;return f(y.key,y.attributes,E.key,_.key,E.attributes,_.attributes,y.undirected)&&x?y.key:void 0}}function An(x,S,b,f){var y=S[b];if(y){var E=!1;do{if(E=f(y.key,y.attributes,y.source.key,y.target.key,y.source.attributes,y.target.attributes,y.undirected),x&&E)return y.key;y=y.next}while(y!==void 0)}}function kn(x,S){var b=x[S];return b.next!==void 0?new ye(function(){if(!b)return{done:!0};var f={edge:b.key,attributes:b.attributes,source:b.source.key,target:b.target.key,sourceAttributes:b.source.attributes,targetAttributes:b.target.attributes,undirected:b.undirected};return b=b.next,{done:!1,value:f}}):ye.of({edge:b.key,attributes:b.attributes,source:b.source.key,target:b.target.key,sourceAttributes:b.source.attributes,targetAttributes:b.target.attributes,undirected:b.undirected})}function In(x,S){if(x.size===0)return[];if(S==="mixed"||S===x.type)return typeof Array.from=="function"?Array.from(x._edges.keys()):Dt(x._edges.keys(),x._edges.size);for(var b,f,y=S==="undirected"?x.undirectedSize:x.directedSize,E=new Array(y),_=S==="undirected",M=x._edges.values(),H=0;(b=M.next()).done!==!0;)(f=b.value).undirected===_&&(E[H++]=f.key);return E}function Fo(x,S,b,f){if(S.size!==0){for(var y,E,_=b!=="mixed"&&b!==S.type,M=b==="undirected",H=!1,se=S._edges.values();(y=se.next()).done!==!0;)if(E=y.value,!_||E.undirected===M){var ie=E,J=ie.key,fe=ie.attributes,ge=ie.source,Oe=ie.target;if(H=f(J,fe,ge.key,Oe.key,ge.attributes,Oe.attributes,E.undirected),x&&H)return J}}}function xl(x,S){if(x.size===0)return ye.empty();var b=S!=="mixed"&&S!==x.type,f=S==="undirected",y=x._edges.values();return new ye(function(){for(var E,_;;){if((E=y.next()).done)return E;if(_=E.value,!b||_.undirected===f)break}return{value:{edge:_.key,attributes:_.attributes,source:_.source.key,target:_.target.key,sourceAttributes:_.source.attributes,targetAttributes:_.target.attributes,undirected:_.undirected},done:!1}})}function Ln(x,S,b,f,y,E){var _,M=S?Si:Ei;if(b!=="undirected"&&(f!=="out"&&(_=M(x,y.in,E),x&&_)||f!=="in"&&(_=M(x,y.out,E,f?void 0:y.key),x&&_))||b!=="directed"&&(_=M(x,y.undirected,E),x&&_))return _}function Dl(x,S,b,f){var y=[];return Ln(!1,x,S,b,f,function(E){y.push(E)}),y}function Ao(x,S,b){var f=ye.empty();return x!=="undirected"&&(S!=="out"&&b.in!==void 0&&(f=wt(f,Zi(b.in))),S!=="in"&&b.out!==void 0&&(f=wt(f,Zi(b.out,S?void 0:b.key)))),x!=="directed"&&b.undirected!==void 0&&(f=wt(f,Zi(b.undirected))),f}function Ns(x,S,b,f,y,E,_){var M,H=b?An:Qi;if(S!=="undirected"&&(y.in!==void 0&&f!=="out"&&(M=H(x,y.in,E,_),x&&M)||y.out!==void 0&&f!=="in"&&(f||y.key!==E)&&(M=H(x,y.out,E,_),x&&M))||S!=="directed"&&y.undirected!==void 0&&(M=H(x,y.undirected,E,_),x&&M))return M}function Mn(x,S,b,f,y){var E=[];return Ns(!1,x,S,b,f,y,function(_){E.push(_)}),E}function Nn(x,S,b,f){var y=ye.empty();return x!=="undirected"&&(b.in!==void 0&&S!=="out"&&f in b.in&&(y=wt(y,kn(b.in,f))),b.out!==void 0&&S!=="in"&&f in b.out&&(S||b.key!==f)&&(y=wt(y,kn(b.out,f)))),x!=="directed"&&b.undirected!==void 0&&f in b.undirected&&(y=wt(y,kn(b.undirected,f))),y}var ko=[{name:"neighbors",type:"mixed"},{name:"inNeighbors",type:"directed",direction:"in"},{name:"outNeighbors",type:"directed",direction:"out"},{name:"inboundNeighbors",type:"mixed",direction:"in"},{name:"outboundNeighbors",type:"mixed",direction:"out"},{name:"directedNeighbors",type:"directed"},{name:"undirectedNeighbors",type:"undirected"}];function A(){this.A=null,this.B=null}function O(x,S,b,f,y){for(var E in f){var _=f[E],M=_.source,H=_.target,se=M===b?H:M;if(!S||!S.has(se.key)){var ie=y(se.key,se.attributes);if(x&&ie)return se.key}}}function D(x,S,b,f,y){if(S!=="mixed"){if(S==="undirected")return O(x,null,f,f.undirected,y);if(typeof b=="string")return O(x,null,f,f[b],y)}var E,_=new A;if(S!=="undirected"){if(b!=="out"){if(E=O(x,null,f,f.in,y),x&&E)return E;_.wrap(f.in)}if(b!=="in"){if(E=O(x,_,f,f.out,y),x&&E)return E;_.wrap(f.out)}}if(S!=="directed"&&(E=O(x,_,f,f.undirected,y),x&&E))return E}function F(x,S,b){var f=Object.keys(b),y=f.length,E=0;return new ye(function(){var _=null;do{if(E>=y)return x&&x.wrap(b),{done:!0};var M=b[f[E++]],H=M.source,se=M.target;_=H===S?se:H,x&&x.has(_.key)&&(_=null)}while(_===null);return{done:!1,value:{neighbor:_.key,attributes:_.attributes}}})}function N(x,S){var b=S.name,f=S.type,y=S.direction;x.prototype[b]=function(E){if(f!=="mixed"&&this.type!=="mixed"&&f!==this.type)return[];E=""+E;var _=this._nodes.get(E);if(_===void 0)throw new oe("Graph.".concat(b,': could not find the "').concat(E,'" node in the graph.'));return function(M,H,se){if(M!=="mixed"){if(M==="undirected")return Object.keys(se.undirected);if(typeof H=="string")return Object.keys(se[H])}var ie=[];return D(!1,M,H,se,function(J){ie.push(J)}),ie}(f==="mixed"?this.type:f,y,_)}}function G(x,S){var b=S.name,f=S.type,y=S.direction,E=b.slice(0,-1)+"Entries";x.prototype[E]=function(_){if(f!=="mixed"&&this.type!=="mixed"&&f!==this.type)return ye.empty();_=""+_;var M=this._nodes.get(_);if(M===void 0)throw new oe("Graph.".concat(E,': could not find the "').concat(_,'" node in the graph.'));return function(H,se,ie){if(H!=="mixed"){if(H==="undirected")return F(null,ie,ie.undirected);if(typeof se=="string")return F(null,ie,ie[se])}var J=ye.empty(),fe=new A;return H!=="undirected"&&(se!=="out"&&(J=wt(J,F(fe,ie,ie.in))),se!=="in"&&(J=wt(J,F(fe,ie,ie.out)))),H!=="directed"&&(J=wt(J,F(fe,ie,ie.undirected))),J}(f==="mixed"?this.type:f,y,M)}}function V(x,S,b,f,y){for(var E,_,M,H,se,ie,J,fe=f._nodes.values(),ge=f.type;(E=fe.next()).done!==!0;){var Oe=!1;if(_=E.value,ge!=="undirected")for(M in H=_.out){se=H[M];do{if(ie=se.target,Oe=!0,J=y(_.key,ie.key,_.attributes,ie.attributes,se.key,se.attributes,se.undirected),x&&J)return se;se=se.next}while(se)}if(ge!=="directed"){for(M in H=_.undirected)if(!(S&&_.key>M)){se=H[M];do{if((ie=se.target).key!==M&&(ie=se.source),Oe=!0,J=y(_.key,ie.key,_.attributes,ie.attributes,se.key,se.attributes,se.undirected),x&&J)return se;se=se.next}while(se)}}if(b&&!Oe&&(J=y(_.key,null,_.attributes,null,null,null,null),x&&J))return null}}function X(x){if(!h(x))throw new de('Graph.import: invalid serialized node. A serialized node should be a plain object with at least a "key" property.');if(!("key"in x))throw new de("Graph.import: serialized node is missing its key.");if("attributes"in x&&(!h(x.attributes)||x.attributes===null))throw new de("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.")}function ee(x){if(!h(x))throw new de('Graph.import: invalid serialized edge. A serialized edge should be a plain object with at least a "source" & "target" property.');if(!("source"in x))throw new de("Graph.import: serialized edge is missing its source.");if(!("target"in x))throw new de("Graph.import: serialized edge is missing its target.");if("attributes"in x&&(!h(x.attributes)||x.attributes===null))throw new de("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.");if("undirected"in x&&typeof x.undirected!="boolean")throw new de("Graph.import: invalid undirectedness information. Undirected should be boolean or omitted.")}A.prototype.wrap=function(x){this.A===null?this.A=x:this.B===null&&(this.B=x)},A.prototype.has=function(x){return this.A!==null&&x in this.A||this.B!==null&&x in this.B};var be,Ve=(be=255&Math.floor(256*Math.random()),function(){return be++}),mt=new Set(["directed","undirected","mixed"]),Ze=new Set(["domain","_events","_eventsCount","_maxListeners"]),Vt={allowSelfLoops:!0,multi:!1,type:"mixed"};function At(x,S,b){var f=new x.NodeDataClass(S,b);return x._nodes.set(S,f),x.emit("nodeAdded",{key:S,attributes:b}),f}function j0(x,S,b,f,y,E,_,M){if(!f&&x.type==="undirected")throw new ve("Graph.".concat(S,": you cannot add a directed edge to an undirected graph. Use the #.addEdge or #.addUndirectedEdge instead."));if(f&&x.type==="directed")throw new ve("Graph.".concat(S,": you cannot add an undirected edge to a directed graph. Use the #.addEdge or #.addDirectedEdge instead."));if(M&&!h(M))throw new de("Graph.".concat(S,': invalid attributes. Expecting an object but got "').concat(M,'"'));if(E=""+E,_=""+_,M=M||{},!x.allowSelfLoops&&E===_)throw new ve("Graph.".concat(S,': source & target are the same ("').concat(E,`"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`));var H=x._nodes.get(E),se=x._nodes.get(_);if(!H)throw new oe("Graph.".concat(S,': source node "').concat(E,'" not found.'));if(!se)throw new oe("Graph.".concat(S,': target node "').concat(_,'" not found.'));var ie={key:null,undirected:f,source:E,target:_,attributes:M};if(b)y=x._edgeKeyGenerator();else if(y=""+y,x._edges.has(y))throw new ve("Graph.".concat(S,': the "').concat(y,'" edge already exists in the graph.'));if(!x.multi&&(f?H.undirected[_]!==void 0:H.out[_]!==void 0))throw new ve("Graph.".concat(S,': an edge linking "').concat(E,'" to "').concat(_,`" already exists. If you really want to add multiple edges linking those nodes, you should create a multi graph by using the 'multi' option.`));var J=new Ft(f,y,H,se,M);x._edges.set(y,J);var fe=E===_;return f?(H.undirectedDegree++,se.undirectedDegree++,fe&&(H.undirectedLoops++,x._undirectedSelfLoopCount++)):(H.outDegree++,se.inDegree++,fe&&(H.directedLoops++,x._directedSelfLoopCount++)),x.multi?J.attachMulti():J.attach(),f?x._undirectedSize++:x._directedSize++,ie.key=y,x.emit("edgeAdded",ie),y}function dt(x,S,b,f,y,E,_,M,H){if(!f&&x.type==="undirected")throw new ve("Graph.".concat(S,": you cannot merge/update a directed edge to an undirected graph. Use the #.mergeEdge/#.updateEdge or #.addUndirectedEdge instead."));if(f&&x.type==="directed")throw new ve("Graph.".concat(S,": you cannot merge/update an undirected edge to a directed graph. Use the #.mergeEdge/#.updateEdge or #.addDirectedEdge instead."));if(M){if(H){if(typeof M!="function")throw new de("Graph.".concat(S,': invalid updater function. Expecting a function but got "').concat(M,'"'))}else if(!h(M))throw new de("Graph.".concat(S,': invalid attributes. Expecting an object but got "').concat(M,'"'))}var se;if(E=""+E,_=""+_,H&&(se=M,M=void 0),!x.allowSelfLoops&&E===_)throw new ve("Graph.".concat(S,': source & target are the same ("').concat(E,`"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`));var ie,J,fe=x._nodes.get(E),ge=x._nodes.get(_);if(!b&&(ie=x._edges.get(y))){if(!(ie.source.key===E&&ie.target.key===_||f&&ie.source.key===_&&ie.target.key===E))throw new ve("Graph.".concat(S,': inconsistency detected when attempting to merge the "').concat(y,'" edge with "').concat(E,'" source & "').concat(_,'" target vs. ("').concat(ie.source.key,'", "').concat(ie.target.key,'").'));J=ie}if(J||x.multi||!fe||(J=f?fe.undirected[_]:fe.out[_]),J){var Oe=[J.key,!1,!1,!1];if(H?!se:!M)return Oe;if(H){var nt=J.attributes;J.attributes=se(nt),x.emit("edgeAttributesUpdated",{type:"replace",key:J.key,attributes:J.attributes})}else l(J.attributes,M),x.emit("edgeAttributesUpdated",{type:"merge",key:J.key,attributes:J.attributes,data:M});return Oe}M=M||{},H&&se&&(M=se(M));var Et={key:null,undirected:f,source:E,target:_,attributes:M};if(b)y=x._edgeKeyGenerator();else if(y=""+y,x._edges.has(y))throw new ve("Graph.".concat(S,': the "').concat(y,'" edge already exists in the graph.'));var m0=!1,a0=!1;fe||(fe=At(x,E,{}),m0=!0,E===_&&(ge=fe,a0=!0)),ge||(ge=At(x,_,{}),a0=!0),ie=new Ft(f,y,fe,ge,M),x._edges.set(y,ie);var ar=E===_;return f?(fe.undirectedDegree++,ge.undirectedDegree++,ar&&(fe.undirectedLoops++,x._undirectedSelfLoopCount++)):(fe.outDegree++,ge.inDegree++,ar&&(fe.directedLoops++,x._directedSelfLoopCount++)),x.multi?ie.attachMulti():ie.attach(),f?x._undirectedSize++:x._directedSize++,Et.key=y,x.emit("edgeAdded",Et),[y,!0,m0,a0]}function L0(x,S){x._edges.delete(S.key);var b=S.source,f=S.target,y=S.attributes,E=S.undirected,_=b===f;E?(b.undirectedDegree--,f.undirectedDegree--,_&&(b.undirectedLoops--,x._undirectedSelfLoopCount--)):(b.outDegree--,f.inDegree--,_&&(b.directedLoops--,x._directedSelfLoopCount--)),x.multi?S.detachMulti():S.detach(),E?x._undirectedSize--:x._directedSize--,x.emit("edgeDropped",{key:S.key,attributes:y,source:b.key,target:f.key,undirected:E})}var Re=function(x){function S(f){var y;if(y=x.call(this)||this,typeof(f=l({},Vt,f)).multi!="boolean")throw new de(`Graph.constructor: invalid 'multi' option. Expecting a boolean but got "`.concat(f.multi,'".'));if(!mt.has(f.type))throw new de(`Graph.constructor: invalid 'type' option. Should be one of "mixed", "directed" or "undirected" but got "`.concat(f.type,'".'));if(typeof f.allowSelfLoops!="boolean")throw new de(`Graph.constructor: invalid 'allowSelfLoops' option. Expecting a boolean but got "`.concat(f.allowSelfLoops,'".'));var E=f.type==="mixed"?Yt:f.type==="directed"?Ut:r0;p(a(y),"NodeDataClass",E);var _="geid_"+Ve()+"_",M=0;return p(a(y),"_attributes",{}),p(a(y),"_nodes",new Map),p(a(y),"_edges",new Map),p(a(y),"_directedSize",0),p(a(y),"_undirectedSize",0),p(a(y),"_directedSelfLoopCount",0),p(a(y),"_undirectedSelfLoopCount",0),p(a(y),"_edgeKeyGenerator",function(){var H;do H=_+M++;while(y._edges.has(H));return H}),p(a(y),"_options",f),Ze.forEach(function(H){return p(a(y),H,y[H])}),g(a(y),"order",function(){return y._nodes.size}),g(a(y),"size",function(){return y._edges.size}),g(a(y),"directedSize",function(){return y._directedSize}),g(a(y),"undirectedSize",function(){return y._undirectedSize}),g(a(y),"selfLoopCount",function(){return y._directedSelfLoopCount+y._undirectedSelfLoopCount}),g(a(y),"directedSelfLoopCount",function(){return y._directedSelfLoopCount}),g(a(y),"undirectedSelfLoopCount",function(){return y._undirectedSelfLoopCount}),g(a(y),"multi",y._options.multi),g(a(y),"type",y._options.type),g(a(y),"allowSelfLoops",y._options.allowSelfLoops),g(a(y),"implementation",function(){return"graphology"}),y}e(S,x);var b=S.prototype;return b._resetInstanceCounters=function(){this._directedSize=0,this._undirectedSize=0,this._directedSelfLoopCount=0,this._undirectedSelfLoopCount=0},b.hasNode=function(f){return this._nodes.has(""+f)},b.hasDirectedEdge=function(f,y){if(this.type==="undirected")return!1;if(arguments.length===1){var E=""+f,_=this._edges.get(E);return!!_&&!_.undirected}if(arguments.length===2){f=""+f,y=""+y;var M=this._nodes.get(f);return!!M&&M.out.hasOwnProperty(y)}throw new de("Graph.hasDirectedEdge: invalid arity (".concat(arguments.length,", instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target."))},b.hasUndirectedEdge=function(f,y){if(this.type==="directed")return!1;if(arguments.length===1){var E=""+f,_=this._edges.get(E);return!!_&&_.undirected}if(arguments.length===2){f=""+f,y=""+y;var M=this._nodes.get(f);return!!M&&M.undirected.hasOwnProperty(y)}throw new de("Graph.hasDirectedEdge: invalid arity (".concat(arguments.length,", instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target."))},b.hasEdge=function(f,y){if(arguments.length===1){var E=""+f;return this._edges.has(E)}if(arguments.length===2){f=""+f,y=""+y;var _=this._nodes.get(f);return!!_&&(_.out!==void 0&&_.out.hasOwnProperty(y)||_.undirected!==void 0&&_.undirected.hasOwnProperty(y))}throw new de("Graph.hasEdge: invalid arity (".concat(arguments.length,", instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target."))},b.directedEdge=function(f,y){if(this.type!=="undirected"){if(f=""+f,y=""+y,this.multi)throw new ve("Graph.directedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.directedEdges instead.");var E=this._nodes.get(f);if(!E)throw new oe('Graph.directedEdge: could not find the "'.concat(f,'" source node in the graph.'));if(!this._nodes.has(y))throw new oe('Graph.directedEdge: could not find the "'.concat(y,'" target node in the graph.'));var _=E.out&&E.out[y]||void 0;return _?_.key:void 0}},b.undirectedEdge=function(f,y){if(this.type!=="directed"){if(f=""+f,y=""+y,this.multi)throw new ve("Graph.undirectedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.undirectedEdges instead.");var E=this._nodes.get(f);if(!E)throw new oe('Graph.undirectedEdge: could not find the "'.concat(f,'" source node in the graph.'));if(!this._nodes.has(y))throw new oe('Graph.undirectedEdge: could not find the "'.concat(y,'" target node in the graph.'));var _=E.undirected&&E.undirected[y]||void 0;return _?_.key:void 0}},b.edge=function(f,y){if(this.multi)throw new ve("Graph.edge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.edges instead.");f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.edge: could not find the "'.concat(f,'" source node in the graph.'));if(!this._nodes.has(y))throw new oe('Graph.edge: could not find the "'.concat(y,'" target node in the graph.'));var _=E.out&&E.out[y]||E.undirected&&E.undirected[y]||void 0;if(_)return _.key},b.areDirectedNeighbors=function(f,y){f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.areDirectedNeighbors: could not find the "'.concat(f,'" node in the graph.'));return this.type!=="undirected"&&(y in E.in||y in E.out)},b.areOutNeighbors=function(f,y){f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.areOutNeighbors: could not find the "'.concat(f,'" node in the graph.'));return this.type!=="undirected"&&y in E.out},b.areInNeighbors=function(f,y){f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.areInNeighbors: could not find the "'.concat(f,'" node in the graph.'));return this.type!=="undirected"&&y in E.in},b.areUndirectedNeighbors=function(f,y){f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.areUndirectedNeighbors: could not find the "'.concat(f,'" node in the graph.'));return this.type!=="directed"&&y in E.undirected},b.areNeighbors=function(f,y){f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.areNeighbors: could not find the "'.concat(f,'" node in the graph.'));return this.type!=="undirected"&&(y in E.in||y in E.out)||this.type!=="directed"&&y in E.undirected},b.areInboundNeighbors=function(f,y){f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.areInboundNeighbors: could not find the "'.concat(f,'" node in the graph.'));return this.type!=="undirected"&&y in E.in||this.type!=="directed"&&y in E.undirected},b.areOutboundNeighbors=function(f,y){f=""+f,y=""+y;var E=this._nodes.get(f);if(!E)throw new oe('Graph.areOutboundNeighbors: could not find the "'.concat(f,'" node in the graph.'));return this.type!=="undirected"&&y in E.out||this.type!=="directed"&&y in E.undirected},b.inDegree=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.inDegree: could not find the "'.concat(f,'" node in the graph.'));return this.type==="undirected"?0:y.inDegree},b.outDegree=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.outDegree: could not find the "'.concat(f,'" node in the graph.'));return this.type==="undirected"?0:y.outDegree},b.directedDegree=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.directedDegree: could not find the "'.concat(f,'" node in the graph.'));return this.type==="undirected"?0:y.inDegree+y.outDegree},b.undirectedDegree=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.undirectedDegree: could not find the "'.concat(f,'" node in the graph.'));return this.type==="directed"?0:y.undirectedDegree},b.inboundDegree=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.inboundDegree: could not find the "'.concat(f,'" node in the graph.'));var E=0;return this.type!=="directed"&&(E+=y.undirectedDegree),this.type!=="undirected"&&(E+=y.inDegree),E},b.outboundDegree=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.outboundDegree: could not find the "'.concat(f,'" node in the graph.'));var E=0;return this.type!=="directed"&&(E+=y.undirectedDegree),this.type!=="undirected"&&(E+=y.outDegree),E},b.degree=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.degree: could not find the "'.concat(f,'" node in the graph.'));var E=0;return this.type!=="directed"&&(E+=y.undirectedDegree),this.type!=="undirected"&&(E+=y.inDegree+y.outDegree),E},b.inDegreeWithoutSelfLoops=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.inDegreeWithoutSelfLoops: could not find the "'.concat(f,'" node in the graph.'));return this.type==="undirected"?0:y.inDegree-y.directedLoops},b.outDegreeWithoutSelfLoops=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.outDegreeWithoutSelfLoops: could not find the "'.concat(f,'" node in the graph.'));return this.type==="undirected"?0:y.outDegree-y.directedLoops},b.directedDegreeWithoutSelfLoops=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.directedDegreeWithoutSelfLoops: could not find the "'.concat(f,'" node in the graph.'));return this.type==="undirected"?0:y.inDegree+y.outDegree-2*y.directedLoops},b.undirectedDegreeWithoutSelfLoops=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.undirectedDegreeWithoutSelfLoops: could not find the "'.concat(f,'" node in the graph.'));return this.type==="directed"?0:y.undirectedDegree-2*y.undirectedLoops},b.inboundDegreeWithoutSelfLoops=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.inboundDegreeWithoutSelfLoops: could not find the "'.concat(f,'" node in the graph.'));var E=0,_=0;return this.type!=="directed"&&(E+=y.undirectedDegree,_+=2*y.undirectedLoops),this.type!=="undirected"&&(E+=y.inDegree,_+=y.directedLoops),E-_},b.outboundDegreeWithoutSelfLoops=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.outboundDegreeWithoutSelfLoops: could not find the "'.concat(f,'" node in the graph.'));var E=0,_=0;return this.type!=="directed"&&(E+=y.undirectedDegree,_+=2*y.undirectedLoops),this.type!=="undirected"&&(E+=y.outDegree,_+=y.directedLoops),E-_},b.degreeWithoutSelfLoops=function(f){f=""+f;var y=this._nodes.get(f);if(!y)throw new oe('Graph.degreeWithoutSelfLoops: could not find the "'.concat(f,'" node in the graph.'));var E=0,_=0;return this.type!=="directed"&&(E+=y.undirectedDegree,_+=2*y.undirectedLoops),this.type!=="undirected"&&(E+=y.inDegree+y.outDegree,_+=2*y.directedLoops),E-_},b.source=function(f){f=""+f;var y=this._edges.get(f);if(!y)throw new oe('Graph.source: could not find the "'.concat(f,'" edge in the graph.'));return y.source.key},b.target=function(f){f=""+f;var y=this._edges.get(f);if(!y)throw new oe('Graph.target: could not find the "'.concat(f,'" edge in the graph.'));return y.target.key},b.extremities=function(f){f=""+f;var y=this._edges.get(f);if(!y)throw new oe('Graph.extremities: could not find the "'.concat(f,'" edge in the graph.'));return[y.source.key,y.target.key]},b.opposite=function(f,y){f=""+f,y=""+y;var E=this._edges.get(y);if(!E)throw new oe('Graph.opposite: could not find the "'.concat(y,'" edge in the graph.'));var _=E.source.key,M=E.target.key;if(f===_)return M;if(f===M)return _;throw new oe('Graph.opposite: the "'.concat(f,'" node is not attached to the "').concat(y,'" edge (').concat(_,", ").concat(M,")."))},b.hasExtremity=function(f,y){f=""+f,y=""+y;var E=this._edges.get(f);if(!E)throw new oe('Graph.hasExtremity: could not find the "'.concat(f,'" edge in the graph.'));return E.source.key===y||E.target.key===y},b.isUndirected=function(f){f=""+f;var y=this._edges.get(f);if(!y)throw new oe('Graph.isUndirected: could not find the "'.concat(f,'" edge in the graph.'));return y.undirected},b.isDirected=function(f){f=""+f;var y=this._edges.get(f);if(!y)throw new oe('Graph.isDirected: could not find the "'.concat(f,'" edge in the graph.'));return!y.undirected},b.isSelfLoop=function(f){f=""+f;var y=this._edges.get(f);if(!y)throw new oe('Graph.isSelfLoop: could not find the "'.concat(f,'" edge in the graph.'));return y.source===y.target},b.addNode=function(f,y){var E=function(_,M,H){if(H&&!h(H))throw new de('Graph.addNode: invalid attributes. Expecting an object but got "'.concat(H,'"'));if(M=""+M,H=H||{},_._nodes.has(M))throw new ve('Graph.addNode: the "'.concat(M,'" node already exist in the graph.'));var se=new _.NodeDataClass(M,H);return _._nodes.set(M,se),_.emit("nodeAdded",{key:M,attributes:H}),se}(this,f,y);return E.key},b.mergeNode=function(f,y){if(y&&!h(y))throw new de('Graph.mergeNode: invalid attributes. Expecting an object but got "'.concat(y,'"'));f=""+f,y=y||{};var E=this._nodes.get(f);return E?(y&&(l(E.attributes,y),this.emit("nodeAttributesUpdated",{type:"merge",key:f,attributes:E.attributes,data:y})),[f,!1]):(E=new this.NodeDataClass(f,y),this._nodes.set(f,E),this.emit("nodeAdded",{key:f,attributes:y}),[f,!0])},b.updateNode=function(f,y){if(y&&typeof y!="function")throw new de('Graph.updateNode: invalid updater function. Expecting a function but got "'.concat(y,'"'));f=""+f;var E=this._nodes.get(f);if(E){if(y){var _=E.attributes;E.attributes=y(_),this.emit("nodeAttributesUpdated",{type:"replace",key:f,attributes:E.attributes})}return[f,!1]}var M=y?y({}):{};return E=new this.NodeDataClass(f,M),this._nodes.set(f,E),this.emit("nodeAdded",{key:f,attributes:M}),[f,!0]},b.dropNode=function(f){f=""+f;var y,E=this._nodes.get(f);if(!E)throw new oe('Graph.dropNode: could not find the "'.concat(f,'" node in the graph.'));if(this.type!=="undirected"){for(var _ in E.out){y=E.out[_];do L0(this,y),y=y.next;while(y)}for(var M in E.in){y=E.in[M];do L0(this,y),y=y.next;while(y)}}if(this.type!=="directed")for(var H in E.undirected){y=E.undirected[H];do L0(this,y),y=y.next;while(y)}this._nodes.delete(f),this.emit("nodeDropped",{key:f,attributes:E.attributes})},b.dropEdge=function(f){var y;if(arguments.length>1){var E=""+arguments[0],_=""+arguments[1];if(!(y=c(this,E,_,this.type)))throw new oe('Graph.dropEdge: could not find the "'.concat(E,'" -> "').concat(_,'" edge in the graph.'))}else if(f=""+f,!(y=this._edges.get(f)))throw new oe('Graph.dropEdge: could not find the "'.concat(f,'" edge in the graph.'));return L0(this,y),this},b.dropDirectedEdge=function(f,y){if(arguments.length<2)throw new ve("Graph.dropDirectedEdge: it does not make sense to try and drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new ve("Graph.dropDirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");var E=c(this,f=""+f,y=""+y,"directed");if(!E)throw new oe('Graph.dropDirectedEdge: could not find a "'.concat(f,'" -> "').concat(y,'" edge in the graph.'));return L0(this,E),this},b.dropUndirectedEdge=function(f,y){if(arguments.length<2)throw new ve("Graph.dropUndirectedEdge: it does not make sense to drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new ve("Graph.dropUndirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");var E=c(this,f,y,"undirected");if(!E)throw new oe('Graph.dropUndirectedEdge: could not find a "'.concat(f,'" -> "').concat(y,'" edge in the graph.'));return L0(this,E),this},b.clear=function(){this._edges.clear(),this._nodes.clear(),this._resetInstanceCounters(),this.emit("cleared")},b.clearEdges=function(){for(var f,y=this._nodes.values();(f=y.next()).done!==!0;)f.value.clear();this._edges.clear(),this._resetInstanceCounters(),this.emit("edgesCleared")},b.getAttribute=function(f){return this._attributes[f]},b.getAttributes=function(){return this._attributes},b.hasAttribute=function(f){return this._attributes.hasOwnProperty(f)},b.setAttribute=function(f,y){return this._attributes[f]=y,this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:f}),this},b.updateAttribute=function(f,y){if(typeof y!="function")throw new de("Graph.updateAttribute: updater should be a function.");var E=this._attributes[f];return this._attributes[f]=y(E),this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:f}),this},b.removeAttribute=function(f){return delete this._attributes[f],this.emit("attributesUpdated",{type:"remove",attributes:this._attributes,name:f}),this},b.replaceAttributes=function(f){if(!h(f))throw new de("Graph.replaceAttributes: provided attributes are not a plain object.");return this._attributes=f,this.emit("attributesUpdated",{type:"replace",attributes:this._attributes}),this},b.mergeAttributes=function(f){if(!h(f))throw new de("Graph.mergeAttributes: provided attributes are not a plain object.");return l(this._attributes,f),this.emit("attributesUpdated",{type:"merge",attributes:this._attributes,data:f}),this},b.updateAttributes=function(f){if(typeof f!="function")throw new de("Graph.updateAttributes: provided updater is not a function.");return this._attributes=f(this._attributes),this.emit("attributesUpdated",{type:"update",attributes:this._attributes}),this},b.updateEachNodeAttributes=function(f,y){if(typeof f!="function")throw new de("Graph.updateEachNodeAttributes: expecting an updater function.");if(y&&!v(y))throw new de("Graph.updateEachNodeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");for(var E,_,M=this._nodes.values();(E=M.next()).done!==!0;)(_=E.value).attributes=f(_.key,_.attributes);this.emit("eachNodeAttributesUpdated",{hints:y||null})},b.updateEachEdgeAttributes=function(f,y){if(typeof f!="function")throw new de("Graph.updateEachEdgeAttributes: expecting an updater function.");if(y&&!v(y))throw new de("Graph.updateEachEdgeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");for(var E,_,M,H,se=this._edges.values();(E=se.next()).done!==!0;)M=(_=E.value).source,H=_.target,_.attributes=f(_.key,_.attributes,M.key,H.key,M.attributes,H.attributes,_.undirected);this.emit("eachEdgeAttributesUpdated",{hints:y||null})},b.forEachAdjacencyEntry=function(f){if(typeof f!="function")throw new de("Graph.forEachAdjacencyEntry: expecting a callback.");V(!1,!1,!1,this,f)},b.forEachAdjacencyEntryWithOrphans=function(f){if(typeof f!="function")throw new de("Graph.forEachAdjacencyEntryWithOrphans: expecting a callback.");V(!1,!1,!0,this,f)},b.forEachAssymetricAdjacencyEntry=function(f){if(typeof f!="function")throw new de("Graph.forEachAssymetricAdjacencyEntry: expecting a callback.");V(!1,!0,!1,this,f)},b.forEachAssymetricAdjacencyEntryWithOrphans=function(f){if(typeof f!="function")throw new de("Graph.forEachAssymetricAdjacencyEntryWithOrphans: expecting a callback.");V(!1,!0,!0,this,f)},b.nodes=function(){return typeof Array.from=="function"?Array.from(this._nodes.keys()):Dt(this._nodes.keys(),this._nodes.size)},b.forEachNode=function(f){if(typeof f!="function")throw new de("Graph.forEachNode: expecting a callback.");for(var y,E,_=this._nodes.values();(y=_.next()).done!==!0;)f((E=y.value).key,E.attributes)},b.findNode=function(f){if(typeof f!="function")throw new de("Graph.findNode: expecting a callback.");for(var y,E,_=this._nodes.values();(y=_.next()).done!==!0;)if(f((E=y.value).key,E.attributes))return E.key},b.mapNodes=function(f){if(typeof f!="function")throw new de("Graph.mapNode: expecting a callback.");for(var y,E,_=this._nodes.values(),M=new Array(this.order),H=0;(y=_.next()).done!==!0;)E=y.value,M[H++]=f(E.key,E.attributes);return M},b.someNode=function(f){if(typeof f!="function")throw new de("Graph.someNode: expecting a callback.");for(var y,E,_=this._nodes.values();(y=_.next()).done!==!0;)if(f((E=y.value).key,E.attributes))return!0;return!1},b.everyNode=function(f){if(typeof f!="function")throw new de("Graph.everyNode: expecting a callback.");for(var y,E,_=this._nodes.values();(y=_.next()).done!==!0;)if(!f((E=y.value).key,E.attributes))return!1;return!0},b.filterNodes=function(f){if(typeof f!="function")throw new de("Graph.filterNodes: expecting a callback.");for(var y,E,_=this._nodes.values(),M=[];(y=_.next()).done!==!0;)f((E=y.value).key,E.attributes)&&M.push(E.key);return M},b.reduceNodes=function(f,y){if(typeof f!="function")throw new de("Graph.reduceNodes: expecting a callback.");if(arguments.length<2)throw new de("Graph.reduceNodes: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.");for(var E,_,M=y,H=this._nodes.values();(E=H.next()).done!==!0;)M=f(M,(_=E.value).key,_.attributes);return M},b.nodeEntries=function(){var f=this._nodes.values();return new ye(function(){var y=f.next();if(y.done)return y;var E=y.value;return{value:{node:E.key,attributes:E.attributes},done:!1}})},b.export=function(){var f=this,y=new Array(this._nodes.size),E=0;this._nodes.forEach(function(M,H){y[E++]=function(se,ie){var J={key:se};return d(ie.attributes)||(J.attributes=l({},ie.attributes)),J}(H,M)});var _=new Array(this._edges.size);return E=0,this._edges.forEach(function(M,H){_[E++]=function(se,ie,J){var fe={key:ie,source:J.source.key,target:J.target.key};return d(J.attributes)||(fe.attributes=l({},J.attributes)),se==="mixed"&&J.undirected&&(fe.undirected=!0),fe}(f.type,H,M)}),{options:{type:this.type,multi:this.multi,allowSelfLoops:this.allowSelfLoops},attributes:this.getAttributes(),nodes:y,edges:_}},b.import=function(f){var y,E,_,M,H,se=this,ie=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(f instanceof S)return f.forEachNode(function(lr,Qr){ie?se.mergeNode(lr,Qr):se.addNode(lr,Qr)}),f.forEachEdge(function(lr,Qr,Ru,Ou,X_,K_,N6){ie?N6?se.mergeUndirectedEdgeWithKey(lr,Ru,Ou,Qr):se.mergeDirectedEdgeWithKey(lr,Ru,Ou,Qr):N6?se.addUndirectedEdgeWithKey(lr,Ru,Ou,Qr):se.addDirectedEdgeWithKey(lr,Ru,Ou,Qr)}),this;if(!h(f))throw new de("Graph.import: invalid argument. Expecting a serialized graph or, alternatively, a Graph instance.");if(f.attributes){if(!h(f.attributes))throw new de("Graph.import: invalid attributes. Expecting a plain object.");ie?this.mergeAttributes(f.attributes):this.replaceAttributes(f.attributes)}if(f.nodes){if(_=f.nodes,!Array.isArray(_))throw new de("Graph.import: invalid nodes. Expecting an array.");for(y=0,E=_.length;y",ge="",Oe=se.source.key,nt=se.target.key;se.undirected&&Oe>nt&&(J=Oe,Oe=nt,nt=J);var Et="(".concat(Oe,")").concat(fe,"(").concat(nt,")");ie.startsWith("geid_")?f.multi&&(_[Et]===void 0?_[Et]=0:_[Et]++,ge+="".concat(_[Et],". ")):ge+="[".concat(ie,"]: "),E[ge+=Et]=se.attributes});var M={};for(var H in this)this.hasOwnProperty(H)&&!Ze.has(H)&&typeof this[H]!="function"&&r(H)!=="symbol"&&(M[H]=this[H]);return M.attributes=this._attributes,M.nodes=y,M.edges=E,p(M,"constructor",this.constructor),M},S}(w.exports.EventEmitter);typeof Symbol<"u"&&(Re.prototype[Symbol.for("nodejs.util.inspect.custom")]=Re.prototype.inspect),[{name:function(x){return"".concat(x,"Edge")},generateKey:!0},{name:function(x){return"".concat(x,"DirectedEdge")},generateKey:!0,type:"directed"},{name:function(x){return"".concat(x,"UndirectedEdge")},generateKey:!0,type:"undirected"},{name:function(x){return"".concat(x,"EdgeWithKey")}},{name:function(x){return"".concat(x,"DirectedEdgeWithKey")},type:"directed"},{name:function(x){return"".concat(x,"UndirectedEdgeWithKey")},type:"undirected"}].forEach(function(x){["add","merge","update"].forEach(function(S){var b=x.name(S),f=S==="add"?j0:dt;x.generateKey?Re.prototype[b]=function(y,E,_){return f(this,b,!0,(x.type||this.type)==="undirected",null,y,E,_,S==="update")}:Re.prototype[b]=function(y,E,_,M){return f(this,b,!1,(x.type||this.type)==="undirected",y,E,_,M,S==="update")}})}),function(x){p0.forEach(function(S){var b=S.name,f=S.attacher;f(x,b("Node"),0),f(x,b("Source"),1),f(x,b("Target"),2),f(x,b("Opposite"),3)})}(Re),function(x){i0.forEach(function(S){var b=S.name,f=S.attacher;f(x,b("Edge"),"mixed"),f(x,b("DirectedEdge"),"directed"),f(x,b("UndirectedEdge"),"undirected")})}(Re),function(x){Fn.forEach(function(S){(function(b,f){var y=f.name,E=f.type,_=f.direction;b.prototype[y]=function(M,H){if(E!=="mixed"&&this.type!=="mixed"&&E!==this.type)return[];if(!arguments.length)return In(this,E);if(arguments.length===1){M=""+M;var se=this._nodes.get(M);if(se===void 0)throw new oe("Graph.".concat(y,': could not find the "').concat(M,'" node in the graph.'));return Dl(this.multi,E==="mixed"?this.type:E,_,se)}if(arguments.length===2){M=""+M,H=""+H;var ie=this._nodes.get(M);if(!ie)throw new oe("Graph.".concat(y,': could not find the "').concat(M,'" source node in the graph.'));if(!this._nodes.has(H))throw new oe("Graph.".concat(y,': could not find the "').concat(H,'" target node in the graph.'));return Mn(E,this.multi,_,ie,H)}throw new de("Graph.".concat(y,": too many arguments (expecting 0, 1 or 2 and got ").concat(arguments.length,")."))}})(x,S),function(b,f){var y=f.name,E=f.type,_=f.direction,M="forEach"+y[0].toUpperCase()+y.slice(1,-1);b.prototype[M]=function(J,fe,ge){if(E==="mixed"||this.type==="mixed"||E===this.type){if(arguments.length===1)return Fo(!1,this,E,ge=J);if(arguments.length===2){J=""+J,ge=fe;var Oe=this._nodes.get(J);if(Oe===void 0)throw new oe("Graph.".concat(M,': could not find the "').concat(J,'" node in the graph.'));return Ln(!1,this.multi,E==="mixed"?this.type:E,_,Oe,ge)}if(arguments.length===3){J=""+J,fe=""+fe;var nt=this._nodes.get(J);if(!nt)throw new oe("Graph.".concat(M,': could not find the "').concat(J,'" source node in the graph.'));if(!this._nodes.has(fe))throw new oe("Graph.".concat(M,': could not find the "').concat(fe,'" target node in the graph.'));return Ns(!1,E,this.multi,_,nt,fe,ge)}throw new de("Graph.".concat(M,": too many arguments (expecting 1, 2 or 3 and got ").concat(arguments.length,")."))}};var H="map"+y[0].toUpperCase()+y.slice(1);b.prototype[H]=function(){var J,fe=Array.prototype.slice.call(arguments),ge=fe.pop();if(fe.length===0){var Oe=0;E!=="directed"&&(Oe+=this.undirectedSize),E!=="undirected"&&(Oe+=this.directedSize),J=new Array(Oe);var nt=0;fe.push(function(Et,m0,a0,ar,wr,lr,Qr){J[nt++]=ge(Et,m0,a0,ar,wr,lr,Qr)})}else J=[],fe.push(function(Et,m0,a0,ar,wr,lr,Qr){J.push(ge(Et,m0,a0,ar,wr,lr,Qr))});return this[M].apply(this,fe),J};var se="filter"+y[0].toUpperCase()+y.slice(1);b.prototype[se]=function(){var J=Array.prototype.slice.call(arguments),fe=J.pop(),ge=[];return J.push(function(Oe,nt,Et,m0,a0,ar,wr){fe(Oe,nt,Et,m0,a0,ar,wr)&&ge.push(Oe)}),this[M].apply(this,J),ge};var ie="reduce"+y[0].toUpperCase()+y.slice(1);b.prototype[ie]=function(){var J,fe,ge=Array.prototype.slice.call(arguments);if(ge.length<2||ge.length>4)throw new de("Graph.".concat(ie,": invalid number of arguments (expecting 2, 3 or 4 and got ").concat(ge.length,")."));if(typeof ge[ge.length-1]=="function"&&typeof ge[ge.length-2]!="function")throw new de("Graph.".concat(ie,": missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array."));ge.length===2?(J=ge[0],fe=ge[1],ge=[]):ge.length===3?(J=ge[1],fe=ge[2],ge=[ge[0]]):ge.length===4&&(J=ge[2],fe=ge[3],ge=[ge[0],ge[1]]);var Oe=fe;return ge.push(function(nt,Et,m0,a0,ar,wr,lr){Oe=J(Oe,nt,Et,m0,a0,ar,wr,lr)}),this[M].apply(this,ge),Oe}}(x,S),function(b,f){var y=f.name,E=f.type,_=f.direction,M="find"+y[0].toUpperCase()+y.slice(1,-1);b.prototype[M]=function(ie,J,fe){if(E!=="mixed"&&this.type!=="mixed"&&E!==this.type)return!1;if(arguments.length===1)return Fo(!0,this,E,fe=ie);if(arguments.length===2){ie=""+ie,fe=J;var ge=this._nodes.get(ie);if(ge===void 0)throw new oe("Graph.".concat(M,': could not find the "').concat(ie,'" node in the graph.'));return Ln(!0,this.multi,E==="mixed"?this.type:E,_,ge,fe)}if(arguments.length===3){ie=""+ie,J=""+J;var Oe=this._nodes.get(ie);if(!Oe)throw new oe("Graph.".concat(M,': could not find the "').concat(ie,'" source node in the graph.'));if(!this._nodes.has(J))throw new oe("Graph.".concat(M,': could not find the "').concat(J,'" target node in the graph.'));return Ns(!0,E,this.multi,_,Oe,J,fe)}throw new de("Graph.".concat(M,": too many arguments (expecting 1, 2 or 3 and got ").concat(arguments.length,")."))};var H="some"+y[0].toUpperCase()+y.slice(1,-1);b.prototype[H]=function(){var ie=Array.prototype.slice.call(arguments),J=ie.pop();return ie.push(function(fe,ge,Oe,nt,Et,m0,a0){return J(fe,ge,Oe,nt,Et,m0,a0)}),!!this[M].apply(this,ie)};var se="every"+y[0].toUpperCase()+y.slice(1,-1);b.prototype[se]=function(){var ie=Array.prototype.slice.call(arguments),J=ie.pop();return ie.push(function(fe,ge,Oe,nt,Et,m0,a0){return!J(fe,ge,Oe,nt,Et,m0,a0)}),!this[M].apply(this,ie)}}(x,S),function(b,f){var y=f.name,E=f.type,_=f.direction,M=y.slice(0,-1)+"Entries";b.prototype[M]=function(H,se){if(E!=="mixed"&&this.type!=="mixed"&&E!==this.type)return ye.empty();if(!arguments.length)return xl(this,E);if(arguments.length===1){H=""+H;var ie=this._nodes.get(H);if(!ie)throw new oe("Graph.".concat(M,': could not find the "').concat(H,'" node in the graph.'));return Ao(E,_,ie)}if(arguments.length===2){H=""+H,se=""+se;var J=this._nodes.get(H);if(!J)throw new oe("Graph.".concat(M,': could not find the "').concat(H,'" source node in the graph.'));if(!this._nodes.has(se))throw new oe("Graph.".concat(M,': could not find the "').concat(se,'" target node in the graph.'));return Nn(E,_,J,se)}throw new de("Graph.".concat(M,": too many arguments (expecting 0, 1 or 2 and got ").concat(arguments.length,")."))}}(x,S)})}(Re),function(x){ko.forEach(function(S){N(x,S),function(b,f){var y=f.name,E=f.type,_=f.direction,M="forEach"+y[0].toUpperCase()+y.slice(1,-1);b.prototype[M]=function(J,fe){if(E==="mixed"||this.type==="mixed"||E===this.type){J=""+J;var ge=this._nodes.get(J);if(ge===void 0)throw new oe("Graph.".concat(M,': could not find the "').concat(J,'" node in the graph.'));D(!1,E==="mixed"?this.type:E,_,ge,fe)}};var H="map"+y[0].toUpperCase()+y.slice(1);b.prototype[H]=function(J,fe){var ge=[];return this[M](J,function(Oe,nt){ge.push(fe(Oe,nt))}),ge};var se="filter"+y[0].toUpperCase()+y.slice(1);b.prototype[se]=function(J,fe){var ge=[];return this[M](J,function(Oe,nt){fe(Oe,nt)&&ge.push(Oe)}),ge};var ie="reduce"+y[0].toUpperCase()+y.slice(1);b.prototype[ie]=function(J,fe,ge){if(arguments.length<3)throw new de("Graph.".concat(ie,": missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array."));var Oe=ge;return this[M](J,function(nt,Et){Oe=fe(Oe,nt,Et)}),Oe}}(x,S),function(b,f){var y=f.name,E=f.type,_=f.direction,M=y[0].toUpperCase()+y.slice(1,-1),H="find"+M;b.prototype[H]=function(J,fe){if(E==="mixed"||this.type==="mixed"||E===this.type){J=""+J;var ge=this._nodes.get(J);if(ge===void 0)throw new oe("Graph.".concat(H,': could not find the "').concat(J,'" node in the graph.'));return D(!0,E==="mixed"?this.type:E,_,ge,fe)}};var se="some"+M;b.prototype[se]=function(J,fe){return!!this[H](J,fe)};var ie="every"+M;b.prototype[ie]=function(J,fe){return!this[H](J,function(ge,Oe){return!fe(ge,Oe)})}}(x,S),G(x,S)})}(Re);var f0=function(x){function S(b){var f=l({type:"directed"},b);if("multi"in f&&f.multi!==!1)throw new de("DirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(f.type!=="directed")throw new de('DirectedGraph.from: inconsistent "'+f.type+'" type in given options!');return x.call(this,f)||this}return e(S,x),S}(Re),w0=function(x){function S(b){var f=l({type:"undirected"},b);if("multi"in f&&f.multi!==!1)throw new de("UndirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(f.type!=="undirected")throw new de('UndirectedGraph.from: inconsistent "'+f.type+'" type in given options!');return x.call(this,f)||this}return e(S,x),S}(Re),g0=function(x){function S(b){var f=l({multi:!0},b);if("multi"in f&&f.multi!==!0)throw new de("MultiGraph.from: inconsistent indication that the graph should be simple in given options!");return x.call(this,f)||this}return e(S,x),S}(Re),Ji=function(x){function S(b){var f=l({type:"directed",multi:!0},b);if("multi"in f&&f.multi!==!0)throw new de("MultiDirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(f.type!=="directed")throw new de('MultiDirectedGraph.from: inconsistent "'+f.type+'" type in given options!');return x.call(this,f)||this}return e(S,x),S}(Re),es=function(x){function S(b){var f=l({type:"undirected",multi:!0},b);if("multi"in f&&f.multi!==!0)throw new de("MultiUndirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(f.type!=="undirected")throw new de('MultiUndirectedGraph.from: inconsistent "'+f.type+'" type in given options!');return x.call(this,f)||this}return e(S,x),S}(Re);function Io(x){x.from=function(S,b){var f=l({},S.options,b),y=new x(f);return y.import(S),y}}return Io(Re),Io(f0),Io(w0),Io(g0),Io(Ji),Io(es),Re.Graph=Re,Re.DirectedGraph=f0,Re.UndirectedGraph=w0,Re.MultiGraph=g0,Re.MultiDirectedGraph=Ji,Re.MultiUndirectedGraph=es,Re.InvalidArgumentsGraphError=de,Re.NotFoundGraphError=oe,Re.UsageGraphError=ve,Re})});var Pt=Pe((Foe,Uf)=>{Uf.exports=function(e){return e!==null&&typeof e=="object"&&typeof e.addUndirectedEdgeWithKey=="function"&&typeof e.dropNode=="function"&&typeof e.multi=="boolean"}});var Pc=Pe((Aoe,Vf)=>{function Bi(r){if(typeof r!="function")throw new Error("obliterator/iterator: expecting a function!");this.next=r}typeof Symbol<"u"&&(Bi.prototype[Symbol.iterator]=function(){return this});Bi.of=function(){var r=arguments,e=r.length,t=0;return new Bi(function(){return t>=e?{done:!0}:{done:!1,value:r[t++]}})};Bi.empty=function(){var r=new Bi(function(){return{done:!0}});return r};Bi.fromSequence=function(r){var e=0,t=r.length;return new Bi(function(){return e>=t?{done:!0}:{done:!1,value:r[e++]}})};Bi.is=function(r){return r instanceof Bi?!0:typeof r=="object"&&r!==null&&typeof r.next=="function"};Vf.exports=Bi});var zf=Pe(a8=>{a8.ARRAY_BUFFER_SUPPORT=typeof ArrayBuffer<"u";a8.SYMBOL_SUPPORT=typeof Symbol<"u"});var Id=Pe((Ioe,Hf)=>{var Wf=zf(),$S=Wf.ARRAY_BUFFER_SUPPORT,qS=Wf.SYMBOL_SUPPORT;Hf.exports=function(e,t){var i,s,n,o,a;if(!e)throw new Error("obliterator/forEach: invalid iterable.");if(typeof t!="function")throw new Error("obliterator/forEach: expecting a callback.");if(Array.isArray(e)||$S&&ArrayBuffer.isView(e)||typeof e=="string"||e.toString()==="[object Arguments]"){for(n=0,o=e.length;n{var jf=Pc(),YS=Id();function $t(){this.clear()}$t.prototype.clear=function(){this.items=[],this.offset=0,this.size=0};$t.prototype.enqueue=function(r){return this.items.push(r),++this.size};$t.prototype.dequeue=function(){if(this.size){var r=this.items[this.offset];return++this.offset*2>=this.items.length&&(this.items=this.items.slice(this.offset),this.offset=0),this.size--,r}};$t.prototype.peek=function(){if(this.size)return this.items[this.offset]};$t.prototype.forEach=function(r,e){e=arguments.length>1?e:this;for(var t=this.offset,i=0,s=this.items.length;t=r.length)return{done:!0};var t=r[e];return e++,{value:t,done:!1}})};$t.prototype.entries=function(){var r=this.items,e=this.offset,t=0;return new jf(function(){if(e>=r.length)return{done:!0};var i=r[e];return e++,{value:[t++,i],done:!1}})};typeof Symbol<"u"&&($t.prototype[Symbol.iterator]=$t.prototype.values);$t.prototype.toString=function(){return this.toArray().join(",")};$t.prototype.toJSON=function(){return this.toArray()};$t.prototype.inspect=function(){var r=this.toArray();return Object.defineProperty(r,"constructor",{value:$t,enumerable:!1}),r};typeof Symbol<"u"&&($t.prototype[Symbol.for("nodejs.util.inspect.custom")]=$t.prototype.inspect);$t.from=function(r){var e=new $t;return YS(r,function(t){e.enqueue(t)}),e};$t.of=function(){return $t.from(arguments)};$f.exports=$t});var Xf=Pe((Moe,Yf)=>{Yf.exports=function(e,t){var i=t.length;if(i!==0){var s=e.length;e.length+=i;for(var n=0;n{var l8=Pt(),XS=qf(),KS=Xf();function ZS(r,e,t){if(!l8(r))throw new Error("graphology-shortest-path: invalid graphology instance.");if(arguments.length<3)throw new Error("graphology-shortest-path: invalid number of arguments. Expecting at least 3.");if(!r.hasNode(e))throw new Error('graphology-shortest-path: the "'+e+'" source node does not exist in the given graph.');if(!r.hasNode(t))throw new Error('graphology-shortest-path: the "'+t+'" target node does not exist in the given graph.');if(e=""+e,t=""+t,e===t)return[e];var i=r.inboundNeighbors.bind(r),s=r.outboundNeighbors.bind(r),n={},o={};n[e]=null,o[t]=null;var a=[e],l=[t],c,h,d,p,g,v,C,w,k=!1;e:for(;a.length&&l.length;)if(a.length<=l.length){for(c=a,a=[],g=0,C=c.length;g{function pn(r){this.graph=r,this.stack=new Array(r.order),this.seen=new Set,this.size=0}pn.prototype.hasAlreadySeenEverything=function(){return this.seen.size===this.graph.order};pn.prototype.countUnseenNodes=function(){return this.graph.order-this.seen.size};pn.prototype.forEachNodeYetUnseen=function(r){var e=this.seen,t=this.graph;t.someNode(function(i,s){if(e.size===t.order)return!0;if(e.has(i))return!1;var n=r(i,s);return!!n})};pn.prototype.has=function(r){return this.seen.has(r)};pn.prototype.push=function(r){var e=this.seen.size;return this.seen.add(r),e===this.seen.size?!1:(this.stack[this.size++]=r,!0)};pn.prototype.pushWith=function(r,e){var t=this.seen.size;return this.seen.add(r),t===this.seen.size?!1:(this.stack[this.size++]=e,!0)};pn.prototype.pop=function(){if(this.size!==0)return this.stack[--this.size]};p5.exports=pn});var f5=Pe(g8=>{function oC(r,e,t){this.node=r,this.attributes=e,this.depth=t}function aC(r){return r[0].toUpperCase()+r.slice(1)}g8.TraversalRecord=oC;g8.capitalize=aC});var v5=Pe(m8=>{var lC=Pt(),cC=f8(),m5=f5(),g5=m5.TraversalRecord,uC=m5.capitalize;function y5(r,e,t,i){if(i=i||{},!lC(r))throw new Error("graphology-traversal/dfs: expecting a graphology instance.");if(typeof t!="function")throw new Error("graphology-traversal/dfs: given callback is not a function.");if(r.order===0)return;var s=new cC(r),n=r["forEach"+uC(i.mode||"outbound")+"Neighbor"].bind(r),o;e===null?o=s.forEachNodeYetUnseen.bind(s):o=function(h){e=""+e,h(e,r.getNodeAttributes(e))};var a,l;function c(h,d){s.pushWith(h,new g5(h,d,a.depth+1))}o(function(h,d){for(s.pushWith(h,new g5(h,d,0));s.size!==0;)a=s.pop(),l=t(a.node,a.attributes,a.depth),l!==!0&&n(a.node,c)})}m8.dfs=function(r,e,t){return y5(r,null,e,t)};m8.dfsFromNode=y5});var g1=Pe(x5=>{x5.copyNode=function(r,e,t){return t=Object.assign({},t),r.addNode(e,t)}});var fn=Pe(Uc=>{Uc.addEdge=function(e,t,i,s,n,o){return t?i==null?e.addUndirectedEdge(s,n,o):e.addUndirectedEdgeWithKey(i,s,n,o):i==null?e.addDirectedEdge(s,n,o):e.addDirectedEdgeWithKey(i,s,n,o)};Uc.copyEdge=function(e,t,i,s,n,o){return o=Object.assign({},o),t?i==null?e.addUndirectedEdge(s,n,o):e.addUndirectedEdgeWithKey(i,s,n,o):i==null?e.addDirectedEdge(s,n,o):e.addDirectedEdgeWithKey(i,s,n,o)};Uc.mergeEdge=function(e,t,i,s,n,o){return t?i==null?e.mergeUndirectedEdge(s,n,o):e.mergeUndirectedEdgeWithKey(i,s,n,o):i==null?e.mergeDirectedEdge(s,n,o):e.mergeDirectedEdgeWithKey(i,s,n,o)};Uc.updateEdge=function(e,t,i,s,n,o){return t?i==null?e.updateUndirectedEdge(s,n,o):e.updateUndirectedEdgeWithKey(i,s,n,o):i==null?e.updateDirectedEdge(s,n,o):e.updateDirectedEdgeWithKey(i,s,n,o)}});var C5=Pe((Tue,S5)=>{var D5=Pt(),b5=g1().copyNode,E5=fn().copyEdge;S5.exports=function(e,t){if(!D5(e)||!D5(t))throw new Error("graphology-operators/disjoint-union: invalid graph.");if(e.multi!==t.multi)throw new Error("graphology-operators/disjoint-union: both graph should be simple or multi.");var i=e.nullCopy();i.mergeAttributes(e.getAttributes());var s={},n={},o=0;return e.forEachNode(function(a,l){s[a]=o,b5(i,o,l),o++}),t.forEachNode(function(a,l){n[a]=o,b5(i,o,l),o++}),o=0,e.forEachEdge(function(a,l,c,h,d,p,g){E5(i,g,o++,s[c],s[h],h,l)}),t.forEachEdge(function(a,l,c,h,d,p,g){E5(i,g,o++,n[c],n[h],h,l)}),i}});var _5=Pe((_ue,T5)=>{var hC=Pt(),w5=fn().copyEdge;T5.exports=function(e){if(!hC(e))throw new Error("graphology-operators/reverse: invalid graph.");var t=e.emptyCopy();return e.forEachEdge(function(i,s,n,o,a,l,c){c?w5(t,!0,i,n,o,s):w5(t,!1,i,o,n,s)}),t}});var k5=Pe((Fue,A5)=>{var dC=Pt(),F5=g1().copyNode,pC=fn().copyEdge;A5.exports=function(e,t){if(!dC(e))throw new Error("graphology-operators/subgraph: invalid graph instance.");var i=e.nullCopy(),s=t;if(Array.isArray(t)){if(t.length===0)return i;t=new Set(t)}if(t instanceof Set){if(t.size===0)return i;s=function(o){return t.has(o)};var n=t;t=new Set,n.forEach(function(o){t.add(""+o)})}if(typeof s!="function")throw new Error("graphology-operators/subgraph: invalid nodes. Expecting an array or a set or a filtering function.");if(typeof t=="function"){if(e.forEachNode(function(o,a){s(o,a)&&F5(i,o,a)}),i.order===0)return i}else t.forEach(function(o){if(!e.hasNode(o))throw new Error('graphology-operators/subgraph: the "'+o+'" node was not found in the graph.');F5(i,o,e.getNodeAttributes(o))});return e.forEachEdge(function(o,a,l,c,h,d,p){s(l,h)&&(c!==l&&!s(c,d)||pC(i,p,o,l,c,a))}),i}});var L5=Pe((Aue,I5)=>{var fC=Pt(),y8=fn().copyEdge;I5.exports=function(e,t){if(!fC(e))throw new Error("graphology-operators/to-directed: expecting a valid graphology instance.");typeof t=="function"&&(t={mergeEdge:t}),t=t||{};var i=typeof t.mergeEdge=="function"?t.mergeEdge:null;if(e.type==="directed")return e.copy();var s=e.emptyCopy({type:"directed"});return e.forEachDirectedEdge(function(n,o,a,l){y8(s,!1,n,a,l,o)}),e.forEachUndirectedEdge(function(n,o,a,l){var c=!e.multi&&e.type==="mixed"&&s.edge(a,l),h=!e.multi&&e.type==="mixed"&&s.edge(l,a);c?s.replaceEdgeAttributes(c,i(s.getEdgeAttributes(c),o)):y8(s,!1,null,a,l,o),a!==l&&(h?s.replaceEdgeAttributes(h,i(s.getEdgeAttributes(h),o)):y8(s,!1,null,l,a,o))}),s}});var N5=Pe((kue,M5)=>{var gC=Pt();M5.exports=function(e){if(!gC(e))throw new Error("graphology-operators/to-mixed: expecting a valid graphology instance.");return e.copy({type:"mixed"})}});var B5=Pe((Iue,P5)=>{var mC=Pt();P5.exports=function(e){if(!mC(e))throw new Error("graphology-operators/to-multi: expecting a valid graphology instance.");return e.copy({multi:!0})}});var O5=Pe((Lue,R5)=>{var yC=Pt(),vC=fn().copyEdge;R5.exports=function(e,t){if(!yC(e))throw new Error("graphology-operators/to-simple: expecting a valid graphology instance.");typeof t=="function"&&(t={mergeEdge:t}),t=t||{};var i=typeof t.mergeEdge=="function"?t.mergeEdge:null;if(!e.multi)return e.copy();var s=e.emptyCopy({multi:!1});return e.forEachEdge(function(n,o,a,l,c,h,d){var p=d?s.undirectedEdge(a,l):s.directedEdge(a,l);if(p){i&&s.replaceEdgeAttributes(p,i(s.getEdgeAttributes(p),o));return}vC(s,d,n,a,l,o)}),s}});var V5=Pe((Mue,U5)=>{var xC=Pt(),G5=fn().copyEdge;U5.exports=function(e,t){if(!xC(e))throw new Error("graphology-operators/to-undirected: expecting a valid graphology instance.");typeof t=="function"&&(t={mergeEdge:t}),t=t||{};var i=typeof t.mergeEdge=="function"?t.mergeEdge:null;if(e.type==="undirected")return e.copy();var s=e.emptyCopy({type:"undirected"});return e.forEachUndirectedEdge(function(n,o,a,l){G5(s,!0,n,a,l,o)}),e.forEachDirectedEdge(function(n,o,a,l){if(!e.multi){var c=s.edge(a,l);if(c){i&&s.replaceEdgeAttributes(c,i(s.getEdgeAttributes(c),o));return}}G5(s,!0,null,a,l,o)}),s}});var H5=Pe((Nue,W5)=>{var z5=Pt();W5.exports=function(e,t){if(!z5(e)||!z5(t))throw new Error("graphology-operators/union: invalid graph.");if(e.multi!==t.multi)throw new Error("graphology-operators/union: both graph should be simple or multi.");var i=e.copy();return i.import(t,!0),i}});var Vc=Pe(Ui=>{Ui.disjointUnion=C5();Ui.reverse=_5();Ui.subgraph=k5();Ui.toDirected=L5();Ui.toMixed=N5();Ui.toMulti=B5();Ui.toSimple=O5();Ui.toUndirected=V5();Ui.union=H5()});var x8=Pe((Que,Y5)=>{var gn=Object.create(null);gn.bow=Object.create(null);gn.set=Object.create(null);gn.vector=Object.create(null);gn.bow.cosine=function(r,e){var t=Object.create(null),i=Object.create(null),s,n;for(n in r)t[n]=r[n],i[n]=0;for(n in e)i[n]=e[n],t[n]=t[n]||0;var o=0,a=0,l=0,c,h;for(n in t)c=t[n],h=i[n],o+=c*c,l+=h*h,a+=c*h;return s=o&&l?+(a/(Math.sqrt(o)*Math.sqrt(l))).toFixed(6):!o^!l?0:1,s};gn.set.tversky=function(r,e,t,i){if(r.size===0&&e.size===0)return 1;if(r.size===0||e.size===0)return 0;var s,n,o=0,a,l,c;if(s=isNaN(t)?.5:+t,n=isNaN(i)?.5:+i,s<0||n<0)throw Error("wink-nlp: tversky requires aplha & beta to be positive numbers.");return r.size{K5.exports=function(e,t){if((typeof e=="string"||e instanceof String)&&typeof document<"u"){var i=document.createElement("DIV");i.innerHTML=e,e=(i.textContent||"").trim()}else typeof e=="object"&&e.textContent&&(e=(e.textContent||"").trim());return e}});var Q5=Pe(D8=>{D8.endsWithChar=function(e,t){return t.length>1?t.indexOf(e.slice(-1))>-1:e.slice(-1)===t};D8.endsWith=function(e,t){return e.slice(e.length-t.length)===t}});var J5=Pe(tr=>{var b8,DC=["al","adj","assn","Ave","BSc","MSc","Cell","Ch","Co","cc","Corp","Dem","Dept","ed","eg","Eq","Eqs","est","est","etc","Ex","ext","Fig","fig","Figs","figs","i.e","ie","Inc","inc","Jan","Feb","Mar","Apr","Jun","Jul","Aug","Sep","Sept","Oct","Nov","Dec","jr","mi","Miss","Mrs","Mr","Ms","Mol","mt","mts","no","Nos","PhD","MD","BA","MA","MM","pl","pop","pp","Prof","Dr","pt","Ref","Refs","Rep","repr","rev","Sec","Secs","Sgt","Col","Gen","Rep","Sen","Gov","Lt","Maj","Capt","St","Sr","sr","Jr","jr","Rev","Sun","Mon","Tu","Tue","Tues","Wed","Th","Thu","Thur","Thurs","Fri","Sat","trans","Univ","Viz","Vol","vs","v"];tr.setAbbreviations=function(r){r?b8=r:b8=DC};var E8=tr.isCapitalized=function(r){return/^[A-Z][a-z].*/.test(r)||bC(r)};tr.isSentenceStarter=function(r){return E8(r)||/``|"|'/.test(r.substring(0,2))};tr.isCommonAbbreviation=function(r){var e=r.replace(/[-'`~!@#$%^&*()_|+=?;:'",.<>\{\}\[\]\\\/]/gi,"");return~b8.indexOf(e)};tr.isTimeAbbreviation=function(r,e){if(r==="a.m."||r==="p.m."){var t=e.replace(/\W+/g,"").slice(-3).toLowerCase();if(t==="day")return!0}return!1};tr.isDottedAbbreviation=function(r){var e=r.replace(/[\(\)\[\]\{\}]/g,"").match(/(.\.)*/);return e&&e[0].length>0};tr.isCustomAbbreviation=function(r){return r.length<=3?!0:E8(r)};tr.isNameAbbreviation=function(r,e){if(e.length>0){if(r<5&&e[0].length<6&&E8(e[0]))return!0;var t=e.filter(function(i){return/[A-Z]/.test(i.charAt(0))});return t.length>=3}return!1};var bC=tr.isNumber=function(r,e){return e&&(r=r.slice(e-1,e+2)),!isNaN(r)};tr.isPhoneNr=function(r){return r.match(/^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/)};tr.isURL=function(r){return r.match(/[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/)};tr.isConcatenated=function(r){var e=0;if((e=r.indexOf("."))>-1||(e=r.indexOf("!"))>-1||(e=r.indexOf("?"))>-1){var t=r.charAt(e+1);if(t.match(/[a-zA-Z].*/))return[r.slice(0,e),r.slice(e+1)]}return!1};tr.isBoundaryChar=function(r){return r==="."||r==="!"||r==="?"}});var rg=Pe(tg=>{var EC=Z5(),zc=Q5(),W0=J5(),S8=" @~@ ",eg=S8.trim(),SC=new RegExp("\\S",""),CC=new RegExp("\\n+|[-#=_+*]{4,}","g"),wC=new RegExp("\\S+|\\n","g");tg.sentences=function(r,e){if(!r||typeof r!="string"||!r.length)return[];if(!SC.test(r))return[];var t={newline_boundaries:!1,html_boundaries:!1,html_boundaries_tags:["p","div","ul","ol"],sanitize:!1,allowed_tags:!1,preserve_whitespace:!1,abbreviations:null};if(typeof e=="boolean")t.newline_boundaries=!0;else for(var i in e)t[i]=e[i];if(W0.setAbbreviations(t.abbreviations),t.newline_boundaries&&(r=r.replace(CC,S8)),t.html_boundaries){var s="(|<\\/("+t.html_boundaries_tags.join("|")+")>)",n=new RegExp(s,"g");r=r.replace(n,"$1"+S8)}(t.sanitize||t.allowed_tags)&&(t.allowed_tags||(t.allowed_tags=[""]),r=EC(r,{allowedTags:t.allowed_tags}));var o,a;t.preserve_whitespace?(a=r.split(/(|\S+|\n+)/),o=a.filter(function(w,k){return k%2})):o=r.trim().match(wC);var l=0,c=0,h=[],d=[],p=[];if(!o||!o.length)return[];for(var g=0,v=o.length;g-1&&(W0.isNumber(o[g],c)||W0.isDottedAbbreviation(o[g])||W0.isURL(o[g])||W0.isPhoneNr(o[g]))||(h=W0.isConcatenated(o[g]))&&(p.pop(),p.push(h[0]),d.push(p),p=[],l=0,p.push(h[1]))}p.length&&d.push(p),d=d.filter(function(w){return w.length>0});var C=d.slice(1).reduce(function(w,k){var B=w[w.length-1];return B.length===1&&/^.{1,2}[.]$/.test(B[0])&&!/[.]/.test(k[0])?(w.pop(),w.push(B.concat(k)),w):(w.push(k),w)},[d[0]]);return C.map(function(w,k){if(t.preserve_whitespace&&!t.newline_boundaries&&!t.html_boundaries){var B=w.length*2;return k===0&&(B+=1),a.splice(0,B).join("")}return w.join(" ")})}});var lg=Pe(_1=>{var TC=Pt();function qa(r,e,t,i){var s=e+"Centrality";if(!TC(t))throw new Error("graphology-centrality/"+s+": the given graph is not a valid graphology instance.");if(e!=="degree"&&t.type==="undirected")throw new Error("graphology-centrality/"+s+": cannot compute "+e+" centrality on an undirected graph.");i=i||{};var n=i.nodeCentralityAttribute||s,o=t.order-1,a=t[e].bind(t);if(r){t.updateEachNodeAttributes(function(c,h){return h[n]=a(c)/o,h},{attributes:[n]});return}var l={};return t.forEachNode(function(c){l[c]=a(c)/o}),l}var ng=qa.bind(null,!1,"degree"),og=qa.bind(null,!1,"inDegree"),ag=qa.bind(null,!1,"outDegree");ng.assign=qa.bind(null,!0,"degree");og.assign=qa.bind(null,!0,"inDegree");ag.assign=qa.bind(null,!0,"outDegree");_1.degreeCentrality=ng;_1.inDegreeCentrality=og;_1.outDegreeCentrality=ag});var jc=Pe((Uhe,ug)=>{function _C(r){return!r||typeof r!="object"||typeof r=="function"||Array.isArray(r)||r instanceof Set||r instanceof Map||r instanceof RegExp||r instanceof Date}function cg(r,e){r=r||{};var t={};for(var i in e){var s=r[i],n=e[i];if(!_C(n)){t[i]=cg(s,n);continue}s===void 0?t[i]=n:t[i]=s}return t}ug.exports=cg});var $c=Pe(Vi=>{var FC=Math.pow(2,8)-1,AC=Math.pow(2,16)-1,kC=Math.pow(2,32)-1,IC=Math.pow(2,7)-1,LC=Math.pow(2,15)-1,MC=Math.pow(2,31)-1;Vi.getPointerArray=function(r){var e=r-1;if(e<=FC)return Uint8Array;if(e<=AC)return Uint16Array;if(e<=kC)return Uint32Array;throw new Error("mnemonist: Pointer Array of size > 4294967295 is not supported.")};Vi.getSignedPointerArray=function(r){var e=r-1;return e<=IC?Int8Array:e<=LC?Int16Array:e<=MC?Int32Array:Float64Array};Vi.getNumberType=function(r){return r===(r|0)?Math.sign(r)===-1?r<=127&&r>=-128?Int8Array:r<=32767&&r>=-32768?Int16Array:Int32Array:r<=255?Uint8Array:r<=65535?Uint16Array:Uint32Array:Float64Array};var NC={Uint8Array:1,Int8Array:2,Uint16Array:3,Int16Array:4,Uint32Array:5,Int32Array:6,Float32Array:7,Float64Array:8};Vi.getMinimalRepresentation=function(r,e){var t=null,i=0,s,n,o,a,l;for(a=0,l=r.length;ai&&(i=s,t=n);return t};Vi.isTypedArray=function(r){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView(r)};Vi.concat=function(){var r=0,e,t,i;for(e=0,i=arguments.length;e{function PC(r){return typeof r!="number"||isNaN(r)?1:r}function BC(r,e){var t={},i=function(o){return typeof o>"u"?e:o};typeof e=="function"&&(i=e);var s=function(o){return i(o[r])},n=function(){return i(void 0)};return typeof r=="string"?(t.fromAttributes=s,t.fromGraph=function(o,a){return s(o.getNodeAttributes(a))},t.fromEntry=function(o,a){return s(a)}):typeof r=="function"?(t.fromAttributes=function(){throw new Error("graphology-utils/getters/createNodeValueGetter: irrelevant usage.")},t.fromGraph=function(o,a){return i(r(a,o.getNodeAttributes(a)))},t.fromEntry=function(o,a){return i(r(o,a))}):(t.fromAttributes=n,t.fromGraph=n,t.fromEntry=n),t}function hg(r,e){var t={},i=function(o){return typeof o>"u"?e:o};typeof e=="function"&&(i=e);var s=function(o){return i(o[r])},n=function(){return i(void 0)};return typeof r=="string"?(t.fromAttributes=s,t.fromGraph=function(o,a){return s(o.getEdgeAttributes(a))},t.fromEntry=function(o,a){return s(a)},t.fromPartialEntry=t.fromEntry,t.fromMinimalEntry=t.fromEntry):typeof r=="function"?(t.fromAttributes=function(){throw new Error("graphology-utils/getters/createEdgeValueGetter: irrelevant usage.")},t.fromGraph=function(o,a){var l=o.extremities(a);return i(r(a,o.getEdgeAttributes(a),l[0],l[1],o.getNodeAttributes(l[0]),o.getNodeAttributes(l[1]),o.isUndirected(a)))},t.fromEntry=function(o,a,l,c,h,d,p){return i(r(o,a,l,c,h,d,p))},t.fromPartialEntry=function(o,a,l,c){return i(r(o,a,l,c))},t.fromMinimalEntry=function(o,a){return i(r(o,a))}):(t.fromAttributes=n,t.fromGraph=n,t.fromEntry=n,t.fromMinimalEntry=n),t}F1.createNodeValueGetter=BC;F1.createEdgeValueGetter=hg;F1.createEdgeWeightGetter=function(r){return hg(r,PC)}});var k1=Pe(w8=>{var A1=$c(),RC=C8().createEdgeWeightGetter;function dg(r,e){return r==="outbound"||r==="inbound"?e.directedSize+e.undirectedSize*2:r==="in"||r==="out"||r==="directed"?e.directedSize:e.undirectedSize*2}function _s(r,e){e=e||"outbound";var t=r[e+"Neighbors"].bind(r),i=dg(e,r),s=A1.getPointerArray(i),n=A1.getPointerArray(r.order);this.graph=r,this.neighborhood=new n(i),this.starts=new s(r.order+1),this.nodes=r.nodes();var o={},a,l,c,h,d,p,g=0;for(a=0,l=r.order;a{var OC=Pt(),GC=jc(),UC=k1().WeightedNeighborhoodIndex,VC={nodeCentralityAttribute:"eigenvectorCentrality",getEdgeWeight:"weight",maxIterations:100,tolerance:1e-6};function zC(r){for(var e=0,t=0,i=0,s=r.length;ie&&(t*=e/n*(e/n),e=n),t+=n===0&&e===0?0:n/e*(n/e)}return e===1/0?1:e*Math.sqrt(t)}function pg(r,e,t){if(!OC(e))throw new Error("graphology-metrics/centrality/eigenvector: the given graph is not a valid graphology instance.");t=GC(t,VC);var i=t.maxIterations,s=t.tolerance,n=e.order,o=new UC(e,t.getEdgeWeight),a,l,c,h,d=new Float64Array(e.order);for(a=0;a{var yg=Id(),vg=$c();function WC(r){return Array.isArray(r)||vg.isTypedArray(r)}function T8(r){if(typeof r.length=="number")return r.length;if(typeof r.size=="number")return r.size}function HC(r){var e=T8(r),t=typeof e=="number"?new Array(e):[],i=0;return yg(r,function(s){t[i++]=s}),t}function jC(r){var e=T8(r),t=typeof e=="number"?vg.getPointerArray(e):Array,i=typeof e=="number"?new Array(e):[],s=typeof e=="number"?new t(e):[],n=0;return yg(r,function(o){i[n]=o,s[n]=n++}),[i,s]}Yc.isArrayLike=WC;Yc.guessLength=T8;Yc.toArray=HC;Yc.toArrayWithIndices=jC});var L1=Pe(($he,Dg)=>{var _8=I1(),xg=Pc();function qt(r,e){if(arguments.length<2)throw new Error("mnemonist/fixed-deque: expecting an Array class and a capacity.");if(typeof e!="number"||e<=0)throw new Error("mnemonist/fixed-deque: `capacity` should be a positive number.");this.ArrayClass=r,this.capacity=e,this.items=new r(this.capacity),this.clear()}qt.prototype.clear=function(){this.start=0,this.size=0};qt.prototype.push=function(r){if(this.size===this.capacity)throw new Error("mnemonist/fixed-deque.push: deque capacity ("+this.capacity+") exceeded!");var e=this.start+this.size;return e>=this.capacity&&(e-=this.capacity),this.items[e]=r,++this.size};qt.prototype.unshift=function(r){if(this.size===this.capacity)throw new Error("mnemonist/fixed-deque.unshift: deque capacity ("+this.capacity+") exceeded!");var e=this.start-1;return this.start===0&&(e=this.capacity-1),this.items[e]=r,this.start=e,++this.size};qt.prototype.pop=function(){if(this.size!==0){this.size--;var r=this.start+this.size;return r>=this.capacity&&(r-=this.capacity),this.items[r]}};qt.prototype.shift=function(){if(this.size!==0){var r=this.start;return this.size--,this.start++,this.start===this.capacity&&(this.start=0),this.items[r]}};qt.prototype.peekFirst=function(){if(this.size!==0)return this.items[this.start]};qt.prototype.peekLast=function(){if(this.size!==0){var r=this.start+this.size-1;return r>=this.capacity&&(r-=this.capacity),this.items[r]}};qt.prototype.get=function(r){if(!(this.size===0||r>=this.capacity))return r=this.start+r,r>=this.capacity&&(r-=this.capacity),this.items[r]};qt.prototype.forEach=function(r,e){e=arguments.length>1?e:this;for(var t=this.capacity,i=this.size,s=this.start,n=0;n=t)return{done:!0};var n=r[i];return i++,s++,i===e&&(i=0),{value:n,done:!1}})};qt.prototype.entries=function(){var r=this.items,e=this.capacity,t=this.size,i=this.start,s=0;return new xg(function(){if(s>=t)return{done:!0};var n=r[i];return i++,i===e&&(i=0),{value:[s++,n],done:!1}})};typeof Symbol<"u"&&(qt.prototype[Symbol.iterator]=qt.prototype.values);qt.prototype.inspect=function(){var r=this.toArray();return r.type=this.ArrayClass.name,r.capacity=this.capacity,Object.defineProperty(r,"constructor",{value:qt,enumerable:!1}),r};typeof Symbol<"u"&&(qt.prototype[Symbol.for("nodejs.util.inspect.custom")]=qt.prototype.inspect);qt.from=function(r,e,t){if(arguments.length<3&&(t=_8.guessLength(r),typeof t!="number"))throw new Error("mnemonist/fixed-deque.from: could not guess iterable length. Please provide desired capacity as last argument.");var i=new qt(e,t);if(_8.isArrayLike(r)){var s,n;for(s=0,n=r.length;s{var $C=Pc(),qC=$c().getPointerArray;function xr(r){var e=qC(r);this.size=0,this.length=r,this.dense=new e(r),this.sparse=new e(r)}xr.prototype.clear=function(){this.size=0};xr.prototype.has=function(r){var e=this.sparse[r];return e=this.size||this.dense[e]!==r?!1:(e=this.dense[this.size-1],this.dense[this.sparse[r]]=e,this.sparse[e]=this.sparse[r],this.size--,!0)};xr.prototype.forEach=function(r,e){e=arguments.length>1?e:this;for(var t,i=0;i{var YC=Pt(),XC=jc(),KC=L1(),ZC=Eg(),QC=k1().NeighborhoodIndex,JC={nodeCentralityAttribute:"closenessCentrality",wassermanFaust:!1};function Sg(r){this.index=new QC(r,"inbound"),this.queue=new KC(Array,r.order),this.seen=new ZC(r.order)}Sg.prototype.fromNode=function(r){var e=this.index,t=this.queue,i=this.seen;i.clear(),t.clear(),i.add(r),t.push([r,0]);for(var s,n,o,a,l,c,h=0,d=0;t.size!==0;)for(s=t.shift(),n=s[0],o=s[1],o!==0&&(h+=o,d+=1),l=e.starts[n+1],a=e.starts[n];a0&&n>1&&(h=l/c,i&&(h*=l/(n-1))),d[o]=h;return r?s.index.assign(t.nodeCentralityAttribute,d):s.index.collect(d)}var wg=Cg.bind(null,!1);wg.assign=Cg.bind(null,!0);Tg.exports=wg});var kg=Pe((Xhe,Ag)=>{var Fg=Pc(),F8=I1();function n0(r,e){if(arguments.length<2)throw new Error("mnemonist/fixed-stack: expecting an Array class and a capacity.");if(typeof e!="number"||e<=0)throw new Error("mnemonist/fixed-stack: `capacity` should be a positive number.");this.capacity=e,this.ArrayClass=r,this.items=new this.ArrayClass(this.capacity),this.clear()}n0.prototype.clear=function(){this.size=0};n0.prototype.push=function(r){if(this.size===this.capacity)throw new Error("mnemonist/fixed-stack.push: stack capacity ("+this.capacity+") exceeded!");return this.items[this.size++]=r,this.size};n0.prototype.pop=function(){if(this.size!==0)return this.items[--this.size]};n0.prototype.peek=function(){return this.items[this.size-1]};n0.prototype.forEach=function(r,e){e=arguments.length>1?e:this;for(var t=0,i=this.items.length;t=e)return{done:!0};var i=r[e-t-1];return t++,{value:i,done:!1}})};n0.prototype.entries=function(){var r=this.items,e=this.size,t=0;return new Fg(function(){if(t>=e)return{done:!0};var i=r[e-t-1];return{value:[t++,i],done:!1}})};typeof Symbol<"u"&&(n0.prototype[Symbol.iterator]=n0.prototype.values);n0.prototype.toString=function(){return this.toArray().join(",")};n0.prototype.toJSON=function(){return this.toArray()};n0.prototype.inspect=function(){var r=this.toArray();return r.type=this.ArrayClass.name,r.capacity=this.capacity,Object.defineProperty(r,"constructor",{value:n0,enumerable:!1}),r};typeof Symbol<"u"&&(n0.prototype[Symbol.for("nodejs.util.inspect.custom")]=n0.prototype.inspect);n0.from=function(r,e,t){if(arguments.length<3&&(t=F8.guessLength(r),typeof t!="number"))throw new Error("mnemonist/fixed-stack.from: could not guess iterable length. Please provide desired capacity as last argument.");var i=new n0(e,t);if(F8.isArrayLike(r)){var s,n;for(s=0,n=r.length;s{var ew=function(r,e){return re?1:0},tw=function(r,e){return re?-1:0};function rw(r){return function(e,t){return r(t,e)}}function iw(r){return r===2?function(e,t){return e[0]t[0]?1:e[1]t[1]?1:0}:function(e,t){for(var i=0;it[i])return 1;i++}return 0}}Xc.DEFAULT_COMPARATOR=ew;Xc.DEFAULT_REVERSE_COMPARATOR=tw;Xc.reverseComparator=rw;Xc.createTupleComparator=iw});var Bg=Pe((Zhe,Pg)=>{var M1=Id(),Lg=Ig(),zi=I1(),P1=Lg.DEFAULT_COMPARATOR,A8=Lg.reverseComparator;function k8(r,e,t,i){for(var s=e[i],n,o;i>t;){if(n=i-1>>1,o=e[n],r(s,o)<0){e[i]=o,i=n;continue}break}e[i]=s}function Kc(r,e,t){for(var i=e.length,s=t,n=e[t],o=2*t+1,a;o=0&&(o=a),e[t]=e[o],t=o,o=2*t+1;e[t]=n,k8(r,e,s,t)}function Mg(r,e,t){e.push(t),k8(r,e,0,e.length-1)}function I8(r,e){var t=e.pop();if(e.length!==0){var i=e[0];return e[0]=t,Kc(r,e,0),i}return t}function Ya(r,e,t){if(e.length===0)throw new Error("mnemonist/heap.replace: cannot pop an empty heap.");var i=e[0];return e[0]=t,Kc(r,e,0),i}function Ng(r,e,t){var i;return e.length!==0&&r(e[0],t)<0&&(i=e[0],e[0]=t,t=i,Kc(r,e,0)),t}function fo(r,e){for(var t=e.length,i=t>>1,s=i;--s>=0;)Kc(r,e,s)}function L8(r,e){for(var t=e.length,i=0,s=new Array(t);i=t.length)return t.slice().sort(r);for(l=t.slice(0,e),fo(i,l),s=e,n=t.length;s0&&Ya(i,l,t[s]);return l.sort(r)}var c=zi.guessLength(t);return c!==null&&c0&&Ya(i,l,h)),s++}),l.length>s&&(l.length=s),l.sort(r)}function nw(r,e,t){arguments.length===2&&(t=e,e=r,r=P1);var i=A8(r),s,n,o,a=-1/0,l;if(e===1){if(zi.isArrayLike(t)){for(s=0,n=t.length;s0)&&(a=o);return l=new t.constructor(1),l[0]=a,l}return M1(t,function(h){(a===-1/0||r(h,a)>0)&&(a=h)}),[a]}if(zi.isArrayLike(t)){if(e>=t.length)return t.slice().sort(i);for(l=t.slice(0,e),fo(r,l),s=e,n=t.length;s0&&Ya(r,l,t[s]);return l.sort(i)}var c=zi.guessLength(t);return c!==null&&c0&&Ya(r,l,h)),s++}),l.length>s&&(l.length=s),l.sort(i)}function ht(r){if(this.clear(),this.comparator=r||P1,typeof this.comparator!="function")throw new Error("mnemonist/Heap.constructor: given comparator should be a function.")}ht.prototype.clear=function(){this.items=[],this.size=0};ht.prototype.push=function(r){return Mg(this.comparator,this.items,r),++this.size};ht.prototype.peek=function(){return this.items[0]};ht.prototype.pop=function(){return this.size!==0&&this.size--,I8(this.comparator,this.items)};ht.prototype.replace=function(r){return Ya(this.comparator,this.items,r)};ht.prototype.pushpop=function(r){return Ng(this.comparator,this.items,r)};ht.prototype.consume=function(){return this.size=0,L8(this.comparator,this.items)};ht.prototype.toArray=function(){return L8(this.comparator,this.items.slice())};ht.prototype.inspect=function(){var r=this.toArray();return Object.defineProperty(r,"constructor",{value:ht,enumerable:!1}),r};typeof Symbol<"u"&&(ht.prototype[Symbol.for("nodejs.util.inspect.custom")]=ht.prototype.inspect);function N1(r){if(this.clear(),this.comparator=r||P1,typeof this.comparator!="function")throw new Error("mnemonist/MaxHeap.constructor: given comparator should be a function.");this.comparator=A8(this.comparator)}N1.prototype=ht.prototype;ht.from=function(r,e){var t=new ht(e),i;return zi.isArrayLike(r)?i=r.slice():i=zi.toArray(r),fo(t.comparator,i),t.items=i,t.size=i.length,t};N1.from=function(r,e){var t=new N1(e),i;return zi.isArrayLike(r)?i=r.slice():i=zi.toArray(r),fo(t.comparator,i),t.items=i,t.size=i.length,t};ht.siftUp=Kc;ht.siftDown=k8;ht.push=Mg;ht.pop=I8;ht.replace=Ya;ht.pushpop=Ng;ht.heapify=fo;ht.consume=L8;ht.nsmallest=sw;ht.nlargest=nw;ht.MinHeap=ht;ht.MaxHeap=N1;Pg.exports=ht});var Ug=Pe(M8=>{var ow=L1(),Rg=kg(),aw=Bg(),Og=$c(),Gg=k1(),lw=Gg.NeighborhoodIndex,cw=Gg.WeightedNeighborhoodIndex;M8.createUnweightedIndexedBrandes=function(e){var t=new lw(e),i=t.neighborhood,s=t.starts,n=e.order,o=new Rg(Og.getPointerArray(n),n),a=new Uint32Array(n),l=new Array(n),c=new Int32Array(n),h=new ow(Uint32Array,n),d=function(p){var g,v,C,w,k,B,L;for(B=0;Be[0]?1:r[0]e[1]?1:r[1]e[2]?1:r[2]e[3]?1:r[3]{var hw=Pt(),Vg=Ug(),dw=jc(),pw=Vg.createUnweightedIndexedBrandes,fw=Vg.createDijkstraIndexedBrandes,gw={nodeCentralityAttribute:"betweennessCentrality",getEdgeWeight:"weight",normalized:!0};function zg(r,e,t){if(!hw(e))throw new Error("graphology-centrality/beetweenness-centrality: the given graph is not a valid graphology instance.");t=dw(t,gw);var i=t.nodeCentralityAttribute,s=t.normalized,n=t.getEdgeWeight?fw(e,t.getEdgeWeight):pw(e),o=e.order,a,l,c,h,d,p,g,v,C,w,k=new Float64Array(o),B=new Float64Array(o);for(p=0;p{var mw=jc(),yw=Pt(),vw=C8().createEdgeWeightGetter,xw={nodeAuthorityAttribute:"authority",nodeHubAttribute:"hub",getEdgeWeight:"weight",maxIterations:100,normalize:!0,tolerance:1e-8};function N8(r,e){var t=Object.create(null),i,s;for(i=0,s=r.length;iw&&(w=d[g]);for(T=0;Tk&&(k=a[g]);L=1/k;for(p in a)a[p]*=L;L=1/w;for(p in d)d[p]*=L;B=0;for(p in a)B+=Math.abs(a[p]-h[p]);if(B{var bw=Pt(),Ew=Ld().singleSourceLength;rm.exports=function(e,t){if(!bw(e))throw new Error("graphology-metrics/eccentricity: given graph is not a valid graphology instance.");if(e.size===0)return 1/0;var i=-1/0,s=Ew(e,t),n,o,a=0;for(n in s)o=s[n],o>i&&(i=o),a++;return a{var hu=Pt(),Sw=g1().copyNode,Cw=fn().copyEdge,B1=f8();function nm(r,e){if(!hu(r))throw new Error("graphology-components: the given graph is not a valid graphology instance.");if(r.order){var t=new B1(r),i=t.push.bind(t);t.forEachNodeYetUnseen(function(s){var n=[];t.push(s);for(var o;t.size!==0;)o=t.pop(),n.push(o),r.forEachNeighbor(o,i);e(n)})}}function om(r,e){if(!hu(r))throw new Error("graphology-components: the given graph is not a valid graphology instance.");if(r.order){var t=new B1(r),i=t.push.bind(t);t.forEachNodeYetUnseen(function(s){var n=0;t.push(s);for(var o;t.size!==0;)o=t.pop(),n++,r.forEachNeighbor(o,i);e(n)})}}function ww(r,e,t){if(!hu(r))throw new Error("graphology-components: the given graph is not a valid graphology instance.");if(!r.order)return;var i=new B1(r),s;function n(o,a,l,c,h,d,p){s===c&&(c=l),e(o,a,l,c,h,d,p)&&i.push(c)}i.forEachNodeYetUnseen(function(o){var a=0;for(i.push(o);i.size!==0;)s=i.pop(),a++,r.forEachEdge(s,n);t(a)})}function Tw(r){var e=0;return om(r,function(){e++}),e}function _w(r){var e=[];return nm(r,function(t){e.push(t)}),e}function B8(r){if(!hu(r))throw new Error("graphology-components: the given graph is not a valid graphology instance.");if(!r.order)return[];var e=new B1(r),t=e.push.bind(e),i=[],s;return e.forEachNodeYetUnseen(function(n){s=[],e.push(n);for(var o;e.size!==0;)o=e.pop(),s.push(o),r.forEachNeighbor(o,t);return s.length>i.length&&(i=s),i.length>e.countUnseenNodes()}),i}function Fw(r){var e=B8(r),t=r.nullCopy();return e.forEach(function(i){Sw(t,i,r.getNodeAttributes(i))}),r.forEachEdge(function(i,s,n,o,a,l,c){t.hasNode(n)&&Cw(t,c,i,n,o,s)}),t}function Aw(r){var e=new Set(B8(r));r.forEachNode(function(t){e.has(t)||r.dropNode(t)})}function kw(r){if(!hu(r))throw new Error("graphology-components: the given graph is not a valid graphology instance.");if(!r.order)return[];if(r.type==="undirected")throw new Error("graphology-components: the given graph is undirected");var e=r.nodes(),t=[],i,s;if(!r.size){for(i=0,s=e.length;ik;)o.pop()}else g(C);if(l.get(o[o.length-1])===l.get(v)){h=[];do d=a.pop(),h.push(d),c.add(d);while(d!==v);t.push(h),o.pop()}};for(i=0,s=e.length;i{var Iw=Pt(),Lw=void 0,R1=0,lm=1;cm.exports=function(e){if(!Iw(e))throw new Error("graphology-dag/has-cycle: the given graph is not a valid graphology instance.");if(e.size===0)return!1;if(e.selfLoopCount!==0)return!0;let t={},i=[];function s(n){let o=t[n];if(o===Lw)i.push(n);else if(o===R1)return!0;return!1}return e.someNode(n=>{if(t[n]===lm)return!1;for(i.push(n);i.length!==0;){let o=i[i.length-1],a=t[o];if(a!==R1){if(t[o]=R1,e.someOutboundNeighbor(o,s))return!0}else a===R1&&(i.pop(),t[o]=lm)}return!1})}});var dm=Pe((r1e,hm)=>{var Mw=Pt();hm.exports=function(e,t,i){if(!Mw(e))throw new Error("graphology-dag/will-create-cycle: the given graph is not a valid graphology instance.");if(t=""+t,i=""+i,t===i)return!0;if(!e.hasNode(t)||!e.hasNode(i)||e.hasDirectedEdge(t,i))return!1;if(e.hasDirectedEdge(i,t))return!0;let s=e.outNeighbors(i);function n(o){s.push(o)}for(;s.length!==0;){let o=s.pop();if(o===t)return!0;e.forEachOutNeighbor(o,n)}return!1}});var fm=Pe(du=>{var O1=Pt(),Nw=L1();function Pw(r,e){let t=0;return r.forEachInNeighbor(e,()=>{t++}),t}function R8(r,e){if(!O1(r))throw new Error("graphology-dag/topological-sort: the given graph is not a valid graphology instance.");if(r.type==="undirected"||r.undirectedSize!==0)throw new Error("graphology-dag/topological-sort: cannot work if graph is not directed.");if(r.order===0)return;let t=new Nw(Array,r.order),i={},s=0;r.forEachNode((a,l)=>{let c=r.multi?Pw(r,a):r.inDegree(a);c===0?t.push([a,l,0]):(i[a]=c,s+=c)});let n=0;function o(a,l){let c=--i[a];s--,c===0&&t.push([a,l,n+1]),i[a]=c}for(;t.size!==0;){let[a,l,c]=t.shift();n=c,e(a,l,c),r.forEachOutNeighbor(a,o)}if(s!==0)throw new Error("graphology-dag/topological-sort: given graph is not acyclic.")}function Bw(r){if(!O1(r))throw new Error("graphology-dag/topological-sort: the given graph is not a valid graphology instance.");let e=new Array(r.order),t=0;return R8(r,i=>{e[t++]=i}),e}function pm(r,e){if(!O1(r))throw new Error("graphology-dag/topological-generations: the given graph is not a valid graphology instance.");if(r.order===0)return;let t=0,i=[];R8(r,(s,n,o)=>{o>t&&(e(i),t=o,i=[]),i.push(s)}),e(i)}function Rw(r){if(!O1(r))throw new Error("graphology-dag/topological-generations: the given graph is not a valid graphology instance.");let e=[];return pm(r,t=>{e.push(t)}),e}du.topologicalSort=Bw;du.forEachNodeInTopologicalOrder=R8;du.topologicalGenerations=Rw;du.forEachTopologicalGeneration=pm});var gm=Pe(go=>{go.hasCycle=um();go.willCreateCycle=dm();var G1=fm();go.forEachNodeInTopologicalOrder=G1.forEachNodeInTopologicalOrder;go.topologicalSort=G1.topologicalSort;go.topologicalGenerations=G1.topologicalGenerations;go.forEachTopologicalGeneration=G1.forEachTopologicalGeneration});var hv=Pe(Xi=>{"use strict";Object.defineProperty(Xi,"__esModule",{value:!0});require("obsidian");var Ms=class extends Error{},i6=class extends Ms{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},s6=class extends Ms{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},n6=class extends Ms{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Co=class extends Ms{},V9=class extends Ms{constructor(e){super(`Invalid unit ${e}`)}},or=class extends Ms{},qi=class extends Ms{constructor(){super("Zone is an abstract class")}},me="numeric",bi="short",Cr="long",z9={year:me,month:me,day:me},hy={year:me,month:bi,day:me},Ow={year:me,month:bi,day:me,weekday:bi},dy={year:me,month:Cr,day:me},py={year:me,month:Cr,day:me,weekday:Cr},fy={hour:me,minute:me},gy={hour:me,minute:me,second:me},my={hour:me,minute:me,second:me,timeZoneName:bi},yy={hour:me,minute:me,second:me,timeZoneName:Cr},vy={hour:me,minute:me,hourCycle:"h23"},xy={hour:me,minute:me,second:me,hourCycle:"h23"},Dy={hour:me,minute:me,second:me,hourCycle:"h23",timeZoneName:bi},by={hour:me,minute:me,second:me,hourCycle:"h23",timeZoneName:Cr},Ey={year:me,month:me,day:me,hour:me,minute:me},Sy={year:me,month:me,day:me,hour:me,minute:me,second:me},Cy={year:me,month:bi,day:me,hour:me,minute:me},wy={year:me,month:bi,day:me,hour:me,minute:me,second:me},Gw={year:me,month:bi,day:me,weekday:bi,hour:me,minute:me},Ty={year:me,month:Cr,day:me,hour:me,minute:me,timeZoneName:bi},_y={year:me,month:Cr,day:me,hour:me,minute:me,second:me,timeZoneName:bi},Fy={year:me,month:Cr,day:me,weekday:Cr,hour:me,minute:me,timeZoneName:Cr},Ay={year:me,month:Cr,day:me,weekday:Cr,hour:me,minute:me,second:me,timeZoneName:Cr},_o=class{get type(){throw new qi}get name(){throw new qi}get ianaName(){return this.name}get isUniversal(){throw new qi}offsetName(e,t){throw new qi}formatOffset(e,t){throw new qi}offset(e){throw new qi}equals(e){throw new qi}get isValid(){throw new qi}},X8=null,W9=class r extends _o{static get instance(){return X8===null&&(X8=new r),X8}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:i}){return Iy(e,t,i)}formatOffset(e,t){return ku(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},G9={};function Uw(r){return G9[r]||(G9[r]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:r,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),G9[r]}var Vw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function zw(r,e){let t=r.format(e).replace(/\u200E/g,""),i=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(t),[,s,n,o,a,l,c,h]=i;return[o,s,n,a,l,c,h]}function Ww(r,e){let t=r.formatToParts(e),i=[];for(let s=0;s=0?v:1e3+v,(p-g)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Nm={};function Hw(r,e={}){let t=JSON.stringify([r,e]),i=Nm[t];return i||(i=new Intl.ListFormat(r,e),Nm[t]=i),i}var o6={};function a6(r,e={}){let t=JSON.stringify([r,e]),i=o6[t];return i||(i=new Intl.DateTimeFormat(r,e),o6[t]=i),i}var l6={};function jw(r,e={}){let t=JSON.stringify([r,e]),i=l6[t];return i||(i=new Intl.NumberFormat(r,e),l6[t]=i),i}var c6={};function $w(r,e={}){let{base:t,...i}=e,s=JSON.stringify([r,i]),n=c6[s];return n||(n=new Intl.RelativeTimeFormat(r,e),c6[s]=n),n}var Fu=null;function qw(){return Fu||(Fu=new Intl.DateTimeFormat().resolvedOptions().locale,Fu)}function Yw(r){let e=r.indexOf("-x-");e!==-1&&(r=r.substring(0,e));let t=r.indexOf("-u-");if(t===-1)return[r];{let i,s;try{i=a6(r).resolvedOptions(),s=r}catch{let l=r.substring(0,t);i=a6(l).resolvedOptions(),s=l}let{numberingSystem:n,calendar:o}=i;return[s,n,o]}}function Xw(r,e,t){return(t||e)&&(r.includes("-u-")||(r+="-u"),t&&(r+=`-ca-${t}`),e&&(r+=`-nu-${e}`)),r}function Kw(r){let e=[];for(let t=1;t<=12;t++){let i=Ye.utc(2009,t,1);e.push(r(i))}return e}function Zw(r){let e=[];for(let t=1;t<=7;t++){let i=Ye.utc(2016,11,13+t);e.push(r(i))}return e}function N9(r,e,t,i){let s=r.listingMode();return s==="error"?null:s==="en"?t(e):i(e)}function Qw(r){return r.numberingSystem&&r.numberingSystem!=="latn"?!1:r.numberingSystem==="latn"||!r.locale||r.locale.startsWith("en")||new Intl.DateTimeFormat(r.intl).resolvedOptions().numberingSystem==="latn"}var u6=class{constructor(e,t,i){this.padTo=i.padTo||0,this.floor=i.floor||!1;let{padTo:s,floor:n,...o}=i;if(!t||Object.keys(o).length>0){let a={useGrouping:!1,...i};i.padTo>0&&(a.minimumIntegerDigits=i.padTo),this.inf=jw(e,a)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else{let t=this.floor?Math.floor(e):C6(e,3);return t0(t,this.padTo)}}},h6=class{constructor(e,t,i){this.opts=i,this.originalZone=void 0;let s;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&_n.create(a).valid?(s=a,this.dt=e):(s="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,s=e.zone.name):(s="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let n={...this.opts};n.timeZone=n.timeZone||s,this.dtf=a6(t,n)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(t=>{if(t.type==="timeZoneName"){let i=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...t,value:i}}else return t}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},d6=class{constructor(e,t,i){this.opts={style:"long",...i},!t&&ky()&&(this.rtf=$w(e,i))}format(e,t){return this.rtf?this.rtf.format(e,t):fT(t,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},Gt=class r{static fromOpts(e){return r.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,t,i,s=!1){let n=e||Ot.defaultLocale,o=n||(s?"en-US":qw()),a=t||Ot.defaultNumberingSystem,l=i||Ot.defaultOutputCalendar;return new r(o,a,l,n)}static resetCache(){Fu=null,o6={},l6={},c6={}}static fromObject({locale:e,numberingSystem:t,outputCalendar:i}={}){return r.create(e,t,i)}constructor(e,t,i,s){let[n,o,a]=Yw(e);this.locale=n,this.numberingSystem=t||o||null,this.outputCalendar=i||a||null,this.intl=Xw(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=s,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Qw(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&t?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:r.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return N9(this,e,Ny,()=>{let i=t?{month:e,day:"numeric"}:{month:e},s=t?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Kw(n=>this.extract(n,i,"month"))),this.monthsCache[s][e]})}weekdays(e,t=!1){return N9(this,e,Ry,()=>{let i=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=t?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=Zw(n=>this.extract(n,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(){return N9(this,void 0,()=>Oy,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Ye.utc(2016,11,13,9),Ye.utc(2016,11,13,19)].map(t=>this.extract(t,e,"dayperiod"))}return this.meridiemCache})}eras(e){return N9(this,e,Gy,()=>{let t={era:e};return this.eraCache[e]||(this.eraCache[e]=[Ye.utc(-40,1,1),Ye.utc(2017,1,1)].map(i=>this.extract(i,t,"era"))),this.eraCache[e]})}extract(e,t,i){let s=this.dtFormatter(e,t),n=s.formatToParts(),o=n.find(a=>a.type.toLowerCase()===i);return o?o.value:null}numberFormatter(e={}){return new u6(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new h6(e,this.intl,t)}relFormatter(e={}){return new d6(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Hw(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}},K8=null,Kr=class r extends _o{static get utcInstance(){return K8===null&&(K8=new r(0)),K8}static instance(e){return e===0?r.utcInstance:new r(e)}static parseSpecifier(e){if(e){let t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t)return new r(J9(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${ku(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${ku(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return ku(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},p6=class extends _o{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Tn(r,e){if(Ke(r)||r===null)return e;if(r instanceof _o)return r;if(Jw(r)){let t=r.toLowerCase();return t==="default"?e:t==="local"||t==="system"?W9.instance:t==="utc"||t==="gmt"?Kr.utcInstance:Kr.parseSpecifier(t)||_n.create(r)}else return To(r)?Kr.instance(r):typeof r=="object"&&"offset"in r&&typeof r.offset=="function"?r:new p6(r)}var Pm=()=>Date.now(),Bm="system",Rm=null,Om=null,Gm=null,Um=60,Vm,Ot=class{static get now(){return Pm}static set now(e){Pm=e}static set defaultZone(e){Bm=e}static get defaultZone(){return Tn(Bm,W9.instance)}static get defaultLocale(){return Rm}static set defaultLocale(e){Rm=e}static get defaultNumberingSystem(){return Om}static set defaultNumberingSystem(e){Om=e}static get defaultOutputCalendar(){return Gm}static set defaultOutputCalendar(e){Gm=e}static get twoDigitCutoffYear(){return Um}static set twoDigitCutoffYear(e){Um=e%100}static get throwOnInvalid(){return Vm}static set throwOnInvalid(e){Vm=e}static resetCaches(){Gt.resetCache(),_n.resetCache()}};function Ke(r){return typeof r>"u"}function To(r){return typeof r=="number"}function Z9(r){return typeof r=="number"&&r%1===0}function Jw(r){return typeof r=="string"}function eT(r){return Object.prototype.toString.call(r)==="[object Date]"}function ky(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function tT(r){return Array.isArray(r)?r:[r]}function zm(r,e,t){if(r.length!==0)return r.reduce((i,s)=>{let n=[e(s),s];return i&&t(i[0],n[0])===i[0]?i:n},null)[1]}function rT(r,e){return e.reduce((t,i)=>(t[i]=r[i],t),{})}function pl(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function Ls(r,e,t){return Z9(r)&&r>=e&&r<=t}function iT(r,e){return r-e*Math.floor(r/e)}function t0(r,e=2){let t=r<0,i;return t?i="-"+(""+-r).padStart(e,"0"):i=(""+r).padStart(e,"0"),i}function wn(r){if(!(Ke(r)||r===null||r===""))return parseInt(r,10)}function Eo(r){if(!(Ke(r)||r===null||r===""))return parseFloat(r)}function S6(r){if(!(Ke(r)||r===null||r==="")){let e=parseFloat("0."+r)*1e3;return Math.floor(e)}}function C6(r,e,t=!1){let i=10**e;return(t?Math.trunc:Math.round)(r*i)/i}function Mu(r){return r%4===0&&(r%100!==0||r%400===0)}function Au(r){return Mu(r)?366:365}function H9(r,e){let t=iT(e-1,12)+1,i=r+(e-t)/12;return t===2?Mu(i)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][t-1]}function Q9(r){let e=Date.UTC(r.year,r.month-1,r.day,r.hour,r.minute,r.second,r.millisecond);return r.year<100&&r.year>=0&&(e=new Date(e),e.setUTCFullYear(r.year,r.month-1,r.day)),+e}function j9(r){let e=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7,t=r-1,i=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7;return e===4||i===3?53:52}function f6(r){return r>99?r:r>Ot.twoDigitCutoffYear?1900+r:2e3+r}function Iy(r,e,t,i=null){let s=new Date(r),n={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};i&&(n.timeZone=i);let o={timeZoneName:e,...n},a=new Intl.DateTimeFormat(t,o).formatToParts(s).find(l=>l.type.toLowerCase()==="timezonename");return a?a.value:null}function J9(r,e){let t=parseInt(r,10);Number.isNaN(t)&&(t=0);let i=parseInt(e,10)||0,s=t<0||Object.is(t,-0)?-i:i;return t*60+s}function Ly(r){let e=Number(r);if(typeof r=="boolean"||r===""||Number.isNaN(e))throw new or(`Invalid unit value ${r}`);return e}function $9(r,e){let t={};for(let i in r)if(pl(r,i)){let s=r[i];if(s==null)continue;t[e(i)]=Ly(s)}return t}function ku(r,e){let t=Math.trunc(Math.abs(r/60)),i=Math.trunc(Math.abs(r%60)),s=r>=0?"+":"-";switch(e){case"short":return`${s}${t0(t,2)}:${t0(i,2)}`;case"narrow":return`${s}${t}${i>0?`:${i}`:""}`;case"techie":return`${s}${t0(t,2)}${t0(i,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function ep(r){return rT(r,["hour","minute","second","millisecond"])}var sT=["January","February","March","April","May","June","July","August","September","October","November","December"],My=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],nT=["J","F","M","A","M","J","J","A","S","O","N","D"];function Ny(r){switch(r){case"narrow":return[...nT];case"short":return[...My];case"long":return[...sT];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var Py=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],By=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],oT=["M","T","W","T","F","S","S"];function Ry(r){switch(r){case"narrow":return[...oT];case"short":return[...By];case"long":return[...Py];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var Oy=["AM","PM"],aT=["Before Christ","Anno Domini"],lT=["BC","AD"],cT=["B","A"];function Gy(r){switch(r){case"narrow":return[...cT];case"short":return[...lT];case"long":return[...aT];default:return null}}function uT(r){return Oy[r.hour<12?0:1]}function hT(r,e){return Ry(e)[r.weekday-1]}function dT(r,e){return Ny(e)[r.month-1]}function pT(r,e){return Gy(e)[r.year<0?0:1]}function fT(r,e,t="always",i=!1){let s={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},n=["hours","minutes","seconds"].indexOf(r)===-1;if(t==="auto"&&n){let d=r==="days";switch(e){case 1:return d?"tomorrow":`next ${s[r][0]}`;case-1:return d?"yesterday":`last ${s[r][0]}`;case 0:return d?"today":`this ${s[r][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),l=a===1,c=s[r],h=i?l?c[1]:c[2]||c[1]:l?s[r][0]:r;return o?`${a} ${h} ago`:`in ${a} ${h}`}function Wm(r,e){let t="";for(let i of r)i.literal?t+=i.val:t+=e(i.val);return t}var gT={D:z9,DD:hy,DDD:dy,DDDD:py,t:fy,tt:gy,ttt:my,tttt:yy,T:vy,TT:xy,TTT:Dy,TTTT:by,f:Ey,ff:Cy,fff:Ty,ffff:Fy,F:Sy,FF:wy,FFF:_y,FFFF:Ay},Er=class r{static create(e,t={}){return new r(e,t)}static parseFormat(e){let t=null,i="",s=!1,n=[];for(let o=0;o0&&n.push({literal:s||/^\s+$/.test(i),val:i}),t=null,i="",s=!s):s||a===t?i+=a:(i.length>0&&n.push({literal:/^\s+$/.test(i),val:i}),i=a,t=a)}return i.length>0&&n.push({literal:s||/^\s+$/.test(i),val:i}),n}static macroTokenToFormatOpts(e){return gT[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0){if(this.opts.forceSimple)return t0(e,t);let i={...this.opts};return t>0&&(i.padTo=t),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,t){let i=this.loc.listingMode()==="en",s=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",n=(g,v)=>this.loc.extract(e,g,v),o=g=>e.isOffsetFixed&&e.offset===0&&g.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,g.format):"",a=()=>i?uT(e):n({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(g,v)=>i?dT(e,g):n(v?{month:g}:{month:g,day:"numeric"},"month"),c=(g,v)=>i?hT(e,g):n(v?{weekday:g}:{weekday:g,month:"long",day:"numeric"},"weekday"),h=g=>{let v=r.macroTokenToFormatOpts(g);return v?this.formatWithSystemDefault(e,v):g},d=g=>i?pT(e,g):n({era:g},"era"),p=g=>{switch(g){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return s?n({day:"numeric"},"day"):this.num(e.day);case"dd":return s?n({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return s?n({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return s?n({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return s?n({month:"numeric"},"month"):this.num(e.month);case"MM":return s?n({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return s?n({year:"numeric"},"year"):this.num(e.year);case"yy":return s?n({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return s?n({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return s?n({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return h(g)}};return Wm(r.parseFormat(t),p)}formatDurationFromString(e,t){let i=l=>{switch(l[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},s=l=>c=>{let h=i(c);return h?this.num(l.get(h),c.length):c},n=r.parseFormat(t),o=n.reduce((l,{literal:c,val:h})=>c?l:l.concat(h),[]),a=e.shiftTo(...o.map(i).filter(l=>l));return Wm(n,s(a))}},Sr=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},Uy=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function fl(...r){let e=r.reduce((t,i)=>t+i.source,"");return RegExp(`^${e}$`)}function gl(...r){return e=>r.reduce(([t,i,s],n)=>{let[o,a,l]=n(e,s);return[{...t,...o},a||i,l]},[{},null,1]).slice(0,2)}function ml(r,...e){if(r==null)return[null,null];for(let[t,i]of e){let s=t.exec(r);if(s)return i(s)}return[null,null]}function Vy(...r){return(e,t)=>{let i={},s;for(s=0;sg!==void 0&&(v||g&&h)?-g:g;return[{years:p(Eo(t)),months:p(Eo(i)),weeks:p(Eo(s)),days:p(Eo(n)),hours:p(Eo(o)),minutes:p(Eo(a)),seconds:p(Eo(l),l==="-0"),milliseconds:p(S6(c),d)}]}var FT={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function _6(r,e,t,i,s,n,o){let a={year:e.length===2?f6(wn(e)):wn(e),month:My.indexOf(t)+1,day:wn(i),hour:wn(s),minute:wn(n)};return o&&(a.second=wn(o)),r&&(a.weekday=r.length>3?Py.indexOf(r)+1:By.indexOf(r)+1),a}var AT=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function kT(r){let[,e,t,i,s,n,o,a,l,c,h,d]=r,p=_6(e,s,i,t,n,o,a),g;return l?g=FT[l]:c?g=0:g=J9(h,d),[p,new Kr(g)]}function IT(r){return r.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var LT=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,MT=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,NT=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Hm(r){let[,e,t,i,s,n,o,a]=r;return[_6(e,s,i,t,n,o,a),Kr.utcInstance]}function PT(r){let[,e,t,i,s,n,o,a]=r;return[_6(e,a,t,i,s,n,o),Kr.utcInstance]}var BT=fl(yT,T6),RT=fl(vT,T6),OT=fl(xT,T6),GT=fl(Wy),jy=gl(CT,yl,Nu,Pu),UT=gl(DT,yl,Nu,Pu),VT=gl(bT,yl,Nu,Pu),zT=gl(yl,Nu,Pu);function WT(r){return ml(r,[BT,jy],[RT,UT],[OT,VT],[GT,zT])}function HT(r){return ml(IT(r),[AT,kT])}function jT(r){return ml(r,[LT,Hm],[MT,Hm],[NT,PT])}function $T(r){return ml(r,[TT,_T])}var qT=gl(yl);function YT(r){return ml(r,[wT,qT])}var XT=fl(ET,ST),KT=fl(Hy),ZT=gl(yl,Nu,Pu);function QT(r){return ml(r,[XT,jy],[KT,ZT])}var jm="Invalid Duration",$y={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},JT={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...$y},Yr=146097/400,ll=146097/4800,e_={years:{quarters:4,months:12,weeks:Yr/7,days:Yr,hours:Yr*24,minutes:Yr*24*60,seconds:Yr*24*60*60,milliseconds:Yr*24*60*60*1e3},quarters:{months:3,weeks:Yr/28,days:Yr/4,hours:Yr*24/4,minutes:Yr*24*60/4,seconds:Yr*24*60*60/4,milliseconds:Yr*24*60*60*1e3/4},months:{weeks:ll/7,days:ll,hours:ll*24,minutes:ll*24*60,seconds:ll*24*60*60,milliseconds:ll*24*60*60*1e3},...$y},wo=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],t_=wo.slice(0).reverse();function Cn(r,e,t=!1){let i={values:t?e.values:{...r.values,...e.values||{}},loc:r.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||r.conversionAccuracy,matrix:e.matrix||r.matrix};return new Be(i)}function qy(r,e){let t=e.milliseconds??0;for(let i of t_.slice(1))e[i]&&(t+=e[i]*r[i].milliseconds);return t}function $m(r,e){let t=qy(r,e)<0?-1:1;wo.reduceRight((i,s)=>{if(Ke(e[s]))return i;if(i){let n=e[i]*t,o=r[s][i],a=Math.floor(n/o);e[s]+=a*t,e[i]-=a*o*t}return s},null),wo.reduce((i,s)=>{if(Ke(e[s]))return i;if(i){let n=e[i]%1;e[i]-=n,e[s]+=n*r[i][s]}return s},null)}function r_(r){let e={};for(let[t,i]of Object.entries(r))i!==0&&(e[t]=i);return e}var Be=class r{constructor(e){let t=e.conversionAccuracy==="longterm"||!1,i=t?e_:JT;e.matrix&&(i=e.matrix),this.values=e.values,this.loc=e.loc||Gt.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=i,this.isLuxonDuration=!0}static fromMillis(e,t){return r.fromObject({milliseconds:e},t)}static fromObject(e,t={}){if(e==null||typeof e!="object")throw new or(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new r({values:$9(e,r.normalizeUnit),loc:Gt.fromObject(t),conversionAccuracy:t.conversionAccuracy,matrix:t.matrix})}static fromDurationLike(e){if(To(e))return r.fromMillis(e);if(r.isDuration(e))return e;if(typeof e=="object")return r.fromObject(e);throw new or(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,t){let[i]=$T(e);return i?r.fromObject(i,t):r.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,t){let[i]=YT(e);return i?r.fromObject(i,t):r.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,t=null){if(!e)throw new or("need to specify a reason the Duration is invalid");let i=e instanceof Sr?e:new Sr(e,t);if(Ot.throwOnInvalid)throw new n6(i);return new r({invalid:i})}static normalizeUnit(e){let t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!t)throw new V9(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){let i={...t,floor:t.round!==!1&&t.floor!==!1};return this.isValid?Er.create(this.loc,i).formatDurationFromString(this,e):jm}toHuman(e={}){if(!this.isValid)return jm;let t=wo.map(i=>{let s=this.values[i];return Ke(s)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(s)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(t)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=C6(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let t=this.toMillis();return t<0||t>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},Ye.fromMillis(t,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.isValid?qy(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let t=r.fromDurationLike(e),i={};for(let s of wo)(pl(t.values,s)||pl(this.values,s))&&(i[s]=t.get(s)+this.get(s));return Cn(this,{values:i},!0)}minus(e){if(!this.isValid)return this;let t=r.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;let t={};for(let i of Object.keys(this.values))t[i]=Ly(e(this.values[i],i));return Cn(this,{values:t},!0)}get(e){return this[r.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let t={...this.values,...$9(e,r.normalizeUnit)};return Cn(this,{values:t})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:i,matrix:s}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:s,conversionAccuracy:i};return Cn(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return $m(this.matrix,e),Cn(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=r_(this.normalize().shiftToAll().toObject());return Cn(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>r.normalizeUnit(o));let t={},i={},s=this.toObject(),n;for(let o of wo)if(e.indexOf(o)>=0){n=o;let a=0;for(let c in i)a+=this.matrix[c][o]*i[c],i[c]=0;To(s[o])&&(a+=s[o]);let l=Math.trunc(a);t[o]=l,i[o]=(a*1e3-l*1e3)/1e3}else To(s[o])&&(i[o]=s[o]);for(let o in i)i[o]!==0&&(t[n]+=o===n?i[o]:i[o]/this.matrix[n][o]);return $m(this.matrix,t),Cn(this,{values:t},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let t of Object.keys(this.values))e[t]=this.values[t]===0?0:-this.values[t];return Cn(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function t(i,s){return i===void 0||i===0?s===void 0||s===0:i===s}for(let i of wo)if(!t(this.values[i],e.values[i]))return!1;return!0}},cl="Invalid Interval";function i_(r,e){return!r||!r.isValid?dl.invalid("missing or invalid start"):!e||!e.isValid?dl.invalid("missing or invalid end"):ee:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:t}={}){return this.isValid?r.fromDateTimes(e||this.s,t||this.e):this}splitAt(...e){if(!this.isValid)return[];let t=e.map(Tu).filter(o=>this.contains(o)).sort(),i=[],{s}=this,n=0;for(;s+this.e?this.e:o;i.push(r.fromDateTimes(s,a)),s=a,n+=1}return i}splitBy(e){let t=Be.fromDurationLike(e);if(!this.isValid||!t.isValid||t.as("milliseconds")===0)return[];let{s:i}=this,s=1,n,o=[];for(;il*s));n=+a>+this.e?this.e:a,o.push(r.fromDateTimes(i,n)),i=n,s+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let t=this.s>e.s?this.s:e.s,i=this.e=i?null:r.fromDateTimes(t,i)}union(e){if(!this.isValid)return this;let t=this.se.e?this.e:e.e;return r.fromDateTimes(t,i)}static merge(e){let[t,i]=e.sort((s,n)=>s.s-n.s).reduce(([s,n],o)=>n?n.overlaps(o)||n.abutsStart(o)?[s,n.union(o)]:[s.concat([n]),o]:[s,o],[[],null]);return i&&t.push(i),t}static xor(e){let t=null,i=0,s=[],n=e.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),o=Array.prototype.concat(...n),a=o.sort((l,c)=>l.time-c.time);for(let l of a)i+=l.type==="s"?1:-1,i===1?t=l.time:(t&&+t!=+l.time&&s.push(r.fromDateTimes(t,l.time)),t=null);return r.merge(s)}difference(...e){return r.xor([this].concat(e)).map(t=>this.intersection(t)).filter(t=>t&&!t.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:cl}toLocaleString(e=z9,t={}){return this.isValid?Er.create(this.s.loc.clone(t),e).formatInterval(this):cl}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:cl}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:cl}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:cl}toFormat(e,{separator:t=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:cl}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):Be.invalid(this.invalidReason)}mapEndpoints(e){return r.fromDateTimes(e(this.s),e(this.e))}},ul=class{static hasDST(e=Ot.defaultZone){let t=Ye.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return _n.isValidZone(e)}static normalizeZone(e){return Tn(e,Ot.defaultZone)}static months(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null,outputCalendar:n="gregory"}={}){return(s||Gt.create(t,i,n)).months(e)}static monthsFormat(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null,outputCalendar:n="gregory"}={}){return(s||Gt.create(t,i,n)).months(e,!0)}static weekdays(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null}={}){return(s||Gt.create(t,i,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:t=null,numberingSystem:i=null,locObj:s=null}={}){return(s||Gt.create(t,i,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Gt.create(e).meridiems()}static eras(e="short",{locale:t=null}={}){return Gt.create(t,null,"gregory").eras(e)}static features(){return{relative:ky()}}};function qm(r,e){let t=s=>s.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),i=t(e)-t(r);return Math.floor(Be.fromMillis(i).as("days"))}function s_(r,e,t){let i=[["years",(l,c)=>c.year-l.year],["quarters",(l,c)=>c.quarter-l.quarter+(c.year-l.year)*4],["months",(l,c)=>c.month-l.month+(c.year-l.year)*12],["weeks",(l,c)=>{let h=qm(l,c);return(h-h%7)/7}],["days",qm]],s={},n=r,o,a;for(let[l,c]of i)t.indexOf(l)>=0&&(o=l,s[l]=c(r,e),a=n.plus(s),a>e?(s[l]--,r=n.plus(s),r>e&&(a=r,s[l]--,r=n.plus(s))):r=a);return[r,s,a,o]}function n_(r,e,t,i){let[s,n,o,a]=s_(r,e,t),l=e-s,c=t.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);c.length===0&&(o0?Be.fromMillis(l,i).shiftTo(...c).plus(h):h}var F6={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},Ym={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},o_=F6.hanidec.replace(/[\[|\]]/g,"").split("");function a_(r){let e=parseInt(r,10);if(isNaN(e)){e="";for(let t=0;t=n&&i<=o&&(e+=i-n)}}return parseInt(e,10)}else return e}function vi({numberingSystem:r},e=""){return new RegExp(`${F6[r||"latn"]}${e}`)}var l_="missing Intl.DateTimeFormat.formatToParts support";function st(r,e=t=>t){return{regex:r,deser:([t])=>e(a_(t))}}var c_="\xA0",Yy=`[ ${c_}]`,Xy=new RegExp(Yy,"g");function u_(r){return r.replace(/\./g,"\\.?").replace(Xy,Yy)}function Xm(r){return r.replace(/\./g,"").replace(Xy," ").toLowerCase()}function xi(r,e){return r===null?null:{regex:RegExp(r.map(u_).join("|")),deser:([t])=>r.findIndex(i=>Xm(t)===Xm(i))+e}}function Km(r,e){return{regex:r,deser:([,t,i])=>J9(t,i),groups:e}}function P9(r){return{regex:r,deser:([e])=>e}}function h_(r){return r.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function d_(r,e){let t=vi(e),i=vi(e,"{2}"),s=vi(e,"{3}"),n=vi(e,"{4}"),o=vi(e,"{6}"),a=vi(e,"{1,2}"),l=vi(e,"{1,3}"),c=vi(e,"{1,6}"),h=vi(e,"{1,9}"),d=vi(e,"{2,4}"),p=vi(e,"{4,6}"),g=w=>({regex:RegExp(h_(w.val)),deser:([k])=>k,literal:!0}),C=(w=>{if(r.literal)return g(w);switch(w.val){case"G":return xi(e.eras("short"),0);case"GG":return xi(e.eras("long"),0);case"y":return st(c);case"yy":return st(d,f6);case"yyyy":return st(n);case"yyyyy":return st(p);case"yyyyyy":return st(o);case"M":return st(a);case"MM":return st(i);case"MMM":return xi(e.months("short",!0),1);case"MMMM":return xi(e.months("long",!0),1);case"L":return st(a);case"LL":return st(i);case"LLL":return xi(e.months("short",!1),1);case"LLLL":return xi(e.months("long",!1),1);case"d":return st(a);case"dd":return st(i);case"o":return st(l);case"ooo":return st(s);case"HH":return st(i);case"H":return st(a);case"hh":return st(i);case"h":return st(a);case"mm":return st(i);case"m":return st(a);case"q":return st(a);case"qq":return st(i);case"s":return st(a);case"ss":return st(i);case"S":return st(l);case"SSS":return st(s);case"u":return P9(h);case"uu":return P9(a);case"uuu":return st(t);case"a":return xi(e.meridiems(),0);case"kkkk":return st(n);case"kk":return st(d,f6);case"W":return st(a);case"WW":return st(i);case"E":case"c":return st(t);case"EEE":return xi(e.weekdays("short",!1),1);case"EEEE":return xi(e.weekdays("long",!1),1);case"ccc":return xi(e.weekdays("short",!0),1);case"cccc":return xi(e.weekdays("long",!0),1);case"Z":case"ZZ":return Km(new RegExp(`([+-]${a.source})(?::(${i.source}))?`),2);case"ZZZ":return Km(new RegExp(`([+-]${a.source})(${i.source})?`),2);case"z":return P9(/[a-z_+-/]{1,256}?/i);case" ":return P9(/[^\S\n\r]/);default:return g(w)}})(r)||{invalidReason:l_};return C.token=r,C}var p_={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function f_(r,e,t){let{type:i,value:s}=r;if(i==="literal"){let l=/^\s+$/.test(s);return{literal:!l,val:l?" ":s}}let n=e[i],o=i;i==="hour"&&(e.hour12!=null?o=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?o="hour12":o="hour24":o=t.hour12?"hour12":"hour24");let a=p_[o];if(typeof a=="object"&&(a=a[n]),a)return{literal:!1,val:a}}function g_(r){return[`^${r.map(t=>t.regex).reduce((t,i)=>`${t}(${i.source})`,"")}$`,r]}function m_(r,e,t){let i=r.match(e);if(i){let s={},n=1;for(let o in t)if(pl(t,o)){let a=t[o],l=a.groups?a.groups+1:1;!a.literal&&a.token&&(s[a.token.val[0]]=a.deser(i.slice(n,n+l))),n+=l}return[i,s]}else return[i,{}]}function y_(r){let e=n=>{switch(n){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},t=null,i;return Ke(r.z)||(t=_n.create(r.z)),Ke(r.Z)||(t||(t=new Kr(r.Z)),i=r.Z),Ke(r.q)||(r.M=(r.q-1)*3+1),Ke(r.h)||(r.h<12&&r.a===1?r.h+=12:r.h===12&&r.a===0&&(r.h=0)),r.G===0&&r.y&&(r.y=-r.y),Ke(r.u)||(r.S=S6(r.u)),[Object.keys(r).reduce((n,o)=>{let a=e(o);return a&&(n[a]=r[o]),n},{}),t,i]}var Z8=null;function v_(){return Z8||(Z8=Ye.fromMillis(1555555555555)),Z8}function x_(r,e){if(r.literal)return r;let t=Er.macroTokenToFormatOpts(r.val),i=Qy(t,e);return i==null||i.includes(void 0)?r:i}function Ky(r,e){return Array.prototype.concat(...r.map(t=>x_(t,e)))}function Zy(r,e,t){let i=Ky(Er.parseFormat(t),r),s=i.map(o=>d_(o,r)),n=s.find(o=>o.invalidReason);if(n)return{input:e,tokens:i,invalidReason:n.invalidReason};{let[o,a]=g_(s),l=RegExp(o,"i"),[c,h]=m_(e,l,a),[d,p,g]=h?y_(h):[null,null,void 0];if(pl(h,"a")&&pl(h,"H"))throw new Co("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:i,regex:l,rawMatches:c,matches:h,result:d,zone:p,specificOffset:g}}}function D_(r,e,t){let{result:i,zone:s,specificOffset:n,invalidReason:o}=Zy(r,e,t);return[i,s,n,o]}function Qy(r,e){if(!r)return null;let i=Er.create(e,r).dtFormatter(v_()),s=i.formatToParts(),n=i.resolvedOptions();return s.map(o=>f_(o,r,n))}var Jy=[0,31,59,90,120,151,181,212,243,273,304,334],ev=[0,31,60,91,121,152,182,213,244,274,305,335];function Xr(r,e){return new Sr("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${r}, which is invalid`)}function tv(r,e,t){let i=new Date(Date.UTC(r,e-1,t));r<100&&r>=0&&i.setUTCFullYear(i.getUTCFullYear()-1900);let s=i.getUTCDay();return s===0?7:s}function rv(r,e,t){return t+(Mu(r)?ev:Jy)[e-1]}function iv(r,e){let t=Mu(r)?ev:Jy,i=t.findIndex(n=>nj9(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:n,...ep(r)}}function Zm(r){let{weekYear:e,weekNumber:t,weekday:i}=r,s=tv(e,1,4),n=Au(e),o=t*7+i-s-3,a;o<1?(a=e-1,o+=Au(a)):o>n?(a=e+1,o-=Au(e)):a=e;let{month:l,day:c}=iv(a,o);return{year:a,month:l,day:c,...ep(r)}}function Q8(r){let{year:e,month:t,day:i}=r,s=rv(e,t,i);return{year:e,ordinal:s,...ep(r)}}function Qm(r){let{year:e,ordinal:t}=r,{month:i,day:s}=iv(e,t);return{year:e,month:i,day:s,...ep(r)}}function b_(r){let e=Z9(r.weekYear),t=Ls(r.weekNumber,1,j9(r.weekYear)),i=Ls(r.weekday,1,7);return e?t?i?!1:Xr("weekday",r.weekday):Xr("week",r.week):Xr("weekYear",r.weekYear)}function E_(r){let e=Z9(r.year),t=Ls(r.ordinal,1,Au(r.year));return e?t?!1:Xr("ordinal",r.ordinal):Xr("year",r.year)}function sv(r){let e=Z9(r.year),t=Ls(r.month,1,12),i=Ls(r.day,1,H9(r.year,r.month));return e?t?i?!1:Xr("day",r.day):Xr("month",r.month):Xr("year",r.year)}function nv(r){let{hour:e,minute:t,second:i,millisecond:s}=r,n=Ls(e,0,23)||e===24&&t===0&&i===0&&s===0,o=Ls(t,0,59),a=Ls(i,0,59),l=Ls(s,0,999);return n?o?a?l?!1:Xr("millisecond",s):Xr("second",i):Xr("minute",t):Xr("hour",e)}var J8="Invalid DateTime",Jm=864e13;function B9(r){return new Sr("unsupported zone",`the zone "${r.name}" is not supported`)}function e6(r){return r.weekData===null&&(r.weekData=g6(r.c)),r.weekData}function So(r,e){let t={ts:r.ts,zone:r.zone,c:r.c,o:r.o,loc:r.loc,invalid:r.invalid};return new Ye({...t,...e,old:t})}function ov(r,e,t){let i=r-e*60*1e3,s=t.offset(i);if(e===s)return[i,e];i-=(s-e)*60*1e3;let n=t.offset(i);return s===n?[i,s]:[r-Math.min(s,n)*60*1e3,Math.max(s,n)]}function R9(r,e){r+=e*60*1e3;let t=new Date(r);return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate(),hour:t.getUTCHours(),minute:t.getUTCMinutes(),second:t.getUTCSeconds(),millisecond:t.getUTCMilliseconds()}}function U9(r,e,t){return ov(Q9(r),e,t)}function ey(r,e){let t=r.o,i=r.c.year+Math.trunc(e.years),s=r.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,n={...r.c,year:i,month:s,day:Math.min(r.c.day,H9(i,s))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=Be.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),a=Q9(n),[l,c]=ov(a,t,r.zone);return o!==0&&(l+=o,c=r.zone.offset(l)),{ts:l,o:c}}function wu(r,e,t,i,s,n){let{setZone:o,zone:a}=t;if(r&&Object.keys(r).length!==0||e){let l=e||a,c=Ye.fromObject(r,{...t,zone:l,specificOffset:n});return o?c:c.setZone(a)}else return Ye.invalid(new Sr("unparsable",`the input "${s}" can't be parsed as ${i}`))}function O9(r,e,t=!0){return r.isValid?Er.create(Gt.create("en-US"),{allowZ:t,forceSimple:!0}).formatDateTimeFromString(r,e):null}function t6(r,e){let t=r.c.year>9999||r.c.year<0,i="";return t&&r.c.year>=0&&(i+="+"),i+=t0(r.c.year,t?6:4),e?(i+="-",i+=t0(r.c.month),i+="-",i+=t0(r.c.day)):(i+=t0(r.c.month),i+=t0(r.c.day)),i}function ty(r,e,t,i,s,n){let o=t0(r.c.hour);return e?(o+=":",o+=t0(r.c.minute),(r.c.millisecond!==0||r.c.second!==0||!t)&&(o+=":")):o+=t0(r.c.minute),(r.c.millisecond!==0||r.c.second!==0||!t)&&(o+=t0(r.c.second),(r.c.millisecond!==0||!i)&&(o+=".",o+=t0(r.c.millisecond,3))),s&&(r.isOffsetFixed&&r.offset===0&&!n?o+="Z":r.o<0?(o+="-",o+=t0(Math.trunc(-r.o/60)),o+=":",o+=t0(Math.trunc(-r.o%60))):(o+="+",o+=t0(Math.trunc(r.o/60)),o+=":",o+=t0(Math.trunc(r.o%60)))),n&&(o+="["+r.zone.ianaName+"]"),o}var av={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},S_={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},C_={ordinal:1,hour:0,minute:0,second:0,millisecond:0},lv=["year","month","day","hour","minute","second","millisecond"],w_=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],T_=["year","ordinal","hour","minute","second","millisecond"];function ry(r){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[r.toLowerCase()];if(!e)throw new V9(r);return e}function iy(r,e){let t=Tn(e.zone,Ot.defaultZone),i=Gt.fromObject(e),s=Ot.now(),n,o;if(Ke(r.year))n=s;else{for(let c of lv)Ke(r[c])&&(r[c]=av[c]);let a=sv(r)||nv(r);if(a)return Ye.invalid(a);let l=t.offset(s);[n,o]=U9(r,l,t)}return new Ye({ts:n,zone:t,loc:i,o})}function sy(r,e,t){let i=Ke(t.round)?!0:t.round,s=(o,a)=>(o=C6(o,i||t.calendary?0:2,!0),e.loc.clone(t).relFormatter(t).format(o,a)),n=o=>t.calendary?e.hasSame(r,o)?0:e.startOf(o).diff(r.startOf(o),o).get(o):e.diff(r,o).get(o);if(t.unit)return s(n(t.unit),t.unit);for(let o of t.units){let a=n(o);if(Math.abs(a)>=1)return s(a,o)}return s(r>e?-0:0,t.units[t.units.length-1])}function ny(r){let e={},t;return r.length>0&&typeof r[r.length-1]=="object"?(e=r[r.length-1],t=Array.from(r).slice(0,r.length-1)):t=Array.from(r),[e,t]}var Ye=class r{constructor(e){let t=e.zone||Ot.defaultZone,i=e.invalid||(Number.isNaN(e.ts)?new Sr("invalid input"):null)||(t.isValid?null:B9(t));this.ts=Ke(e.ts)?Ot.now():e.ts;let s=null,n=null;if(!i)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[s,n]=[e.old.c,e.old.o];else{let a=t.offset(this.ts);s=R9(this.ts,a),i=Number.isNaN(s.year)?new Sr("invalid input"):null,s=i?null:s,n=i?null:a}this._zone=t,this.loc=e.loc||Gt.create(),this.invalid=i,this.weekData=null,this.c=s,this.o=n,this.isLuxonDateTime=!0}static now(){return new r({})}static local(){let[e,t]=ny(arguments),[i,s,n,o,a,l,c]=t;return iy({year:i,month:s,day:n,hour:o,minute:a,second:l,millisecond:c},e)}static utc(){let[e,t]=ny(arguments),[i,s,n,o,a,l,c]=t;return e.zone=Kr.utcInstance,iy({year:i,month:s,day:n,hour:o,minute:a,second:l,millisecond:c},e)}static fromJSDate(e,t={}){let i=eT(e)?e.valueOf():NaN;if(Number.isNaN(i))return r.invalid("invalid input");let s=Tn(t.zone,Ot.defaultZone);return s.isValid?new r({ts:i,zone:s,loc:Gt.fromObject(t)}):r.invalid(B9(s))}static fromMillis(e,t={}){if(To(e))return e<-Jm||e>Jm?r.invalid("Timestamp out of range"):new r({ts:e,zone:Tn(t.zone,Ot.defaultZone),loc:Gt.fromObject(t)});throw new or(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,t={}){if(To(e))return new r({ts:e*1e3,zone:Tn(t.zone,Ot.defaultZone),loc:Gt.fromObject(t)});throw new or("fromSeconds requires a numerical input")}static fromObject(e,t={}){e=e||{};let i=Tn(t.zone,Ot.defaultZone);if(!i.isValid)return r.invalid(B9(i));let s=Ot.now(),n=Ke(t.specificOffset)?i.offset(s):t.specificOffset,o=$9(e,ry),a=!Ke(o.ordinal),l=!Ke(o.year),c=!Ke(o.month)||!Ke(o.day),h=l||c,d=o.weekYear||o.weekNumber,p=Gt.fromObject(t);if((h||a)&&d)throw new Co("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Co("Can't mix ordinal dates with month/day");let g=d||o.weekday&&!h,v,C,w=R9(s,n);g?(v=w_,C=S_,w=g6(w)):a?(v=T_,C=C_,w=Q8(w)):(v=lv,C=av);let k=!1;for(let R of v){let z=o[R];Ke(z)?k?o[R]=C[R]:o[R]=w[R]:k=!0}let B=g?b_(o):a?E_(o):sv(o),L=B||nv(o);if(L)return r.invalid(L);let T=g?Zm(o):a?Qm(o):o,[W,j]=U9(T,n,i),I=new r({ts:W,zone:i,o:j,loc:p});return o.weekday&&h&&e.weekday!==I.weekday?r.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${I.toISO()}`):I}static fromISO(e,t={}){let[i,s]=WT(e);return wu(i,s,t,"ISO 8601",e)}static fromRFC2822(e,t={}){let[i,s]=HT(e);return wu(i,s,t,"RFC 2822",e)}static fromHTTP(e,t={}){let[i,s]=jT(e);return wu(i,s,t,"HTTP",t)}static fromFormat(e,t,i={}){if(Ke(e)||Ke(t))throw new or("fromFormat requires an input string and a format");let{locale:s=null,numberingSystem:n=null}=i,o=Gt.fromOpts({locale:s,numberingSystem:n,defaultToEN:!0}),[a,l,c,h]=D_(o,e,t);return h?r.invalid(h):wu(a,l,i,`format ${t}`,e,c)}static fromString(e,t,i={}){return r.fromFormat(e,t,i)}static fromSQL(e,t={}){let[i,s]=QT(e);return wu(i,s,t,"SQL",e)}static invalid(e,t=null){if(!e)throw new or("need to specify a reason the DateTime is invalid");let i=e instanceof Sr?e:new Sr(e,t);if(Ot.throwOnInvalid)throw new i6(i);return new r({invalid:i})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let i=Qy(e,Gt.fromObject(t));return i?i.map(s=>s?s.val:null).join(""):null}static expandFormat(e,t={}){return Ky(Er.parseFormat(e),Gt.fromObject(t)).map(s=>s.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?e6(this).weekYear:NaN}get weekNumber(){return this.isValid?e6(this).weekNumber:NaN}get weekday(){return this.isValid?e6(this).weekday:NaN}get ordinal(){return this.isValid?Q8(this.c).ordinal:NaN}get monthShort(){return this.isValid?ul.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?ul.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?ul.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?ul.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,t=6e4,i=Q9(this.c),s=this.zone.offset(i-e),n=this.zone.offset(i+e),o=this.zone.offset(i-s*t),a=this.zone.offset(i-n*t);if(o===a)return[this];let l=i-o*t,c=i-a*t,h=R9(l,o),d=R9(c,a);return h.hour===d.hour&&h.minute===d.minute&&h.second===d.second&&h.millisecond===d.millisecond?[So(this,{ts:l}),So(this,{ts:c})]:[this]}get isInLeapYear(){return Mu(this.year)}get daysInMonth(){return H9(this.year,this.month)}get daysInYear(){return this.isValid?Au(this.year):NaN}get weeksInWeekYear(){return this.isValid?j9(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:i,calendar:s}=Er.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:i,outputCalendar:s}}toUTC(e=0,t={}){return this.setZone(Kr.instance(e),t)}toLocal(){return this.setZone(Ot.defaultZone)}setZone(e,{keepLocalTime:t=!1,keepCalendarTime:i=!1}={}){if(e=Tn(e,Ot.defaultZone),e.equals(this.zone))return this;if(e.isValid){let s=this.ts;if(t||i){let n=e.offset(this.ts),o=this.toObject();[s]=U9(o,n,e)}return So(this,{ts:s,zone:e})}else return r.invalid(B9(e))}reconfigure({locale:e,numberingSystem:t,outputCalendar:i}={}){let s=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:i});return So(this,{loc:s})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=$9(e,ry),i=!Ke(t.weekYear)||!Ke(t.weekNumber)||!Ke(t.weekday),s=!Ke(t.ordinal),n=!Ke(t.year),o=!Ke(t.month)||!Ke(t.day),a=n||o,l=t.weekYear||t.weekNumber;if((a||s)&&l)throw new Co("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&s)throw new Co("Can't mix ordinal dates with month/day");let c;i?c=Zm({...g6(this.c),...t}):Ke(t.ordinal)?(c={...this.toObject(),...t},Ke(t.day)&&(c.day=Math.min(H9(c.year,c.month),c.day))):c=Qm({...Q8(this.c),...t});let[h,d]=U9(c,this.o,this.zone);return So(this,{ts:h,o:d})}plus(e){if(!this.isValid)return this;let t=Be.fromDurationLike(e);return So(this,ey(this,t))}minus(e){if(!this.isValid)return this;let t=Be.fromDurationLike(e).negate();return So(this,ey(this,t))}startOf(e){if(!this.isValid)return this;let t={},i=Be.normalizeUnit(e);switch(i){case"years":t.month=1;case"quarters":case"months":t.day=1;case"weeks":case"days":t.hour=0;case"hours":t.minute=0;case"minutes":t.second=0;case"seconds":t.millisecond=0;break}if(i==="weeks"&&(t.weekday=1),i==="quarters"){let s=Math.ceil(this.month/3);t.month=(s-1)*3+1}return this.set(t)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,t={}){return this.isValid?Er.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):J8}toLocaleString(e=z9,t={}){return this.isValid?Er.create(this.loc.clone(t),e).formatDateTime(this):J8}toLocaleParts(e={}){return this.isValid?Er.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:t=!1,suppressMilliseconds:i=!1,includeOffset:s=!0,extendedZone:n=!1}={}){if(!this.isValid)return null;let o=e==="extended",a=t6(this,o);return a+="T",a+=ty(this,o,t,i,s,n),a}toISODate({format:e="extended"}={}){return this.isValid?t6(this,e==="extended"):null}toISOWeekDate(){return O9(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:i=!0,includePrefix:s=!1,extendedZone:n=!1,format:o="extended"}={}){return this.isValid?(s?"T":"")+ty(this,o==="extended",t,e,i,n):null}toRFC2822(){return O9(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return O9(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?t6(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:i=!0}={}){let s="HH:mm:ss.SSS";return(t||e)&&(i&&(s+=" "),t?s+="z":e&&(s+="ZZ")),O9(this,s,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():J8}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t="milliseconds",i={}){if(!this.isValid||!e.isValid)return Be.invalid("created by diffing an invalid DateTime");let s={locale:this.locale,numberingSystem:this.numberingSystem,...i},n=tT(t).map(Be.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,l=o?e:this,c=n_(a,l,n,s);return o?c.negate():c}diffNow(e="milliseconds",t={}){return this.diff(r.now(),e,t)}until(e){return this.isValid?dl.fromDateTimes(this,e):this}hasSame(e,t){if(!this.isValid)return!1;let i=e.valueOf(),s=this.setZone(e.zone,{keepLocalTime:!0});return s.startOf(t)<=i&&i<=s.endOf(t)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let t=e.base||r.fromObject({},{zone:this.zone}),i=e.padding?thist.valueOf(),Math.min)}static max(...e){if(!e.every(r.isDateTime))throw new or("max requires all arguments be DateTimes");return zm(e,t=>t.valueOf(),Math.max)}static fromFormatExplain(e,t,i={}){let{locale:s=null,numberingSystem:n=null}=i,o=Gt.fromOpts({locale:s,numberingSystem:n,defaultToEN:!0});return Zy(o,e,t)}static fromStringExplain(e,t,i={}){return r.fromFormatExplain(e,t,i)}static get DATE_SHORT(){return z9}static get DATE_MED(){return hy}static get DATE_MED_WITH_WEEKDAY(){return Ow}static get DATE_FULL(){return dy}static get DATE_HUGE(){return py}static get TIME_SIMPLE(){return fy}static get TIME_WITH_SECONDS(){return gy}static get TIME_WITH_SHORT_OFFSET(){return my}static get TIME_WITH_LONG_OFFSET(){return yy}static get TIME_24_SIMPLE(){return vy}static get TIME_24_WITH_SECONDS(){return xy}static get TIME_24_WITH_SHORT_OFFSET(){return Dy}static get TIME_24_WITH_LONG_OFFSET(){return by}static get DATETIME_SHORT(){return Ey}static get DATETIME_SHORT_WITH_SECONDS(){return Sy}static get DATETIME_MED(){return Cy}static get DATETIME_MED_WITH_SECONDS(){return wy}static get DATETIME_MED_WITH_WEEKDAY(){return Gw}static get DATETIME_FULL(){return Ty}static get DATETIME_FULL_WITH_SECONDS(){return _y}static get DATETIME_HUGE(){return Fy}static get DATETIME_HUGE_WITH_SECONDS(){return Ay}};function Tu(r){if(Ye.isDateTime(r))return r;if(r&&r.valueOf&&To(r.valueOf()))return Ye.fromJSDate(r);if(r&&typeof r=="object")return Ye.fromObject(r);throw new or(`Unknown datetime argument: ${r}, of type ${typeof r}`)}var A6={renderNullAs:"\\-",taskCompletionTracking:!1,taskCompletionUseEmojiShorthand:!1,taskCompletionText:"completion",taskCompletionDateFormat:"yyyy-MM-dd",recursiveSubTaskCompletion:!1,warnOnEmptyResult:!0,refreshEnabled:!0,refreshInterval:2500,defaultDateFormat:"MMMM dd, yyyy",defaultDateTimeFormat:"h:mm a - MMMM dd, yyyy",maxRecursiveRenderDepth:4,tableIdColumnName:"File",tableGroupColumnName:"Group",showResultCount:!0},__={allowHtml:!0};({...A6,...__});var m6=class r{constructor(e){M0(this,"value");M0(this,"successful");this.value=e,this.successful=!0}map(e){return new r(e(this.value))}flatMap(e){return e(this.value)}mapErr(e){return this}bimap(e,t){return this.map(e)}orElse(e){return this.value}cast(){return this}orElseThrow(e){return this.value}},y6=class r{constructor(e){M0(this,"error");M0(this,"successful");this.error=e,this.successful=!1}map(e){return this}flatMap(e){return this}mapErr(e){return new r(e(this.error))}bimap(e,t){return this.mapErr(t)}orElse(e){return e}cast(){return this}orElseThrow(e){throw e?new Error(e(this.error)):new Error(""+this.error)}},q9;(function(r){function e(n){return new m6(n)}r.success=e;function t(n){return new y6(n)}r.failure=t;function i(n,o,a){return n.successful?o.successful?a(n.value,o.value):t(o.error):t(n.error)}r.flatMap2=i;function s(n,o,a){return i(n,o,(l,c)=>e(a(l,c)))}r.map2=s})(q9||(q9={}));var F_=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Y9={exports:{}};Y9.exports;(function(r,e){(function(t,i){r.exports=i()})(typeof self<"u"?self:F_,function(){return function(t){var i={};function s(n){if(i[n])return i[n].exports;var o=i[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,s),o.l=!0,o.exports}return s.m=t,s.c=i,s.d=function(n,o,a){s.o(n,o)||Object.defineProperty(n,o,{configurable:!1,enumerable:!0,get:a})},s.r=function(n){Object.defineProperty(n,"__esModule",{value:!0})},s.n=function(n){var o=n&&n.__esModule?function(){return n.default}:function(){return n};return s.d(o,"a",o),o},s.o=function(n,o){return Object.prototype.hasOwnProperty.call(n,o)},s.p="",s(s.s=0)}([function(t,i,s){function n(D){if(!(this instanceof n))return new n(D);this._=D}var o=n.prototype;function a(D,F){for(var N=0;N>7),buf:function(V){var X=l(function(ee,be,Ve,mt){return ee.concat(Ve===mt.length-1?Buffer.from([be,0]).readUInt16BE(0):mt.readUInt16BE(Ve))},[],V);return Buffer.from(c(function(ee){return(ee<<1&65535)>>8},X))}(N.buf)}}),N}function d(){return typeof Buffer<"u"}function p(){if(!d())throw new Error("Buffer global does not exist; please use webpack if you need to parse Buffers in the browser.")}function g(D){p();var F=l(function(X,ee){return X+ee},0,D);if(F%8!=0)throw new Error("The bits ["+D.join(", ")+"] add up to "+F+" which is not an even number of bytes; the total should be divisible by 8");var N,G=F/8,V=(N=function(X){return X>48},l(function(X,ee){return X||(N(ee)?ee:X)},null,D));if(V)throw new Error(V+" bit range requested exceeds 48 bit (6 byte) Number max.");return new n(function(X,ee){var be=G+ee;return be>X.length?R(ee,G.toString()+" bytes"):I(be,l(function(Ve,mt){var Ze=h(mt,Ve.buf);return{coll:Ve.coll.concat(Ze.v),buf:Ze.buf}},{coll:[],buf:X.slice(ee,be)},D).coll)})}function v(D,F){return new n(function(N,G){return p(),G+F>N.length?R(G,F+" bytes for "+D):I(G+F,N.slice(G,G+F))})}function C(D,F){if(typeof(N=F)!="number"||Math.floor(N)!==N||F<0||F>6)throw new Error(D+" requires integer length in range [0, 6].");var N}function w(D){return C("uintBE",D),v("uintBE("+D+")",D).map(function(F){return F.readUIntBE(0,D)})}function k(D){return C("uintLE",D),v("uintLE("+D+")",D).map(function(F){return F.readUIntLE(0,D)})}function B(D){return C("intBE",D),v("intBE("+D+")",D).map(function(F){return F.readIntBE(0,D)})}function L(D){return C("intLE",D),v("intLE("+D+")",D).map(function(F){return F.readIntLE(0,D)})}function T(D){return D instanceof n}function W(D){return{}.toString.call(D)==="[object Array]"}function j(D){return d()&&Buffer.isBuffer(D)}function I(D,F){return{status:!0,index:D,value:F,furthest:-1,expected:[]}}function R(D,F){return W(F)||(F=[F]),{status:!1,index:-1,value:null,furthest:D,expected:F}}function z(D,F){if(!F||D.furthest>F.furthest)return D;var N=D.furthest===F.furthest?function(G,V){if(function(){if(n._supportsSet!==void 0)return n._supportsSet;var j0=typeof Set<"u";return n._supportsSet=j0,j0}()&&Array.from){for(var X=new Set(G),ee=0;ee=0;){if(ee in N){G=N[ee].line,X===0&&(X=N[ee].lineStart);break}(D.charAt(ee)===` `||D.charAt(ee)==="\r"&&D.charAt(ee+1)!==` `)&&(V++,X===0&&(X=ee+1)),ee--}var be=G+V,Ve=F-X;return N[F]={line:be,lineStart:X},{offset:F,line:be+1,column:Ve+1}}function re(D){if(!T(D))throw new Error("not a parser: "+D)}function $(D,F){return typeof D=="string"?D.charAt(F):D[F]}function Q(D){if(typeof D!="number")throw new Error("not a number: "+D)}function Te(D){if(typeof D!="function")throw new Error("not a function: "+D)}function ye(D){if(typeof D!="string")throw new Error("not a string: "+D)}var xe=2,De=3,_e=8,Mt=5*_e,rt=4*_e,et=" ";function gt(D,F){return new Array(F+1).join(D)}function Dt(D,F,N){var G=F-D.length;return G<=0?D:gt(N,G)+D}function I0(D,F,N,G){return{from:D-F>0?D-F:0,to:D+N>G?G:D+N}}function de(D,F){var N,G,V,X,ee,be=F.index,Ve=be.offset,mt=1;if(Ve===D.length)return"Got the end of the input";if(j(D)){var Ze=Ve-Ve%_e,Vt=Ve-Ze,At=I0(Ze,Mt,rt+_e,D.length),j0=c(function(Re){return c(function(f0){return Dt(f0.toString(16),2,"0")},Re)},function(Re,f0){var w0=Re.length,g0=[],Ji=0;if(w0<=f0)return[Re.slice()];for(var es=0;es=4&&(N+=1),mt=2,V=c(function(Re){return Re.length<=4?Re.join(" "):Re.slice(0,4).join(" ")+" "+Re.slice(4).join(" ")},j0),(ee=(8*(X.to>0?X.to-1:X.to)).toString(16).length)<2&&(ee=2)}else{var dt=D.split(/\r\n|[\n\r\u2028\u2029]/);N=be.column-1,G=be.line-1,X=I0(G,xe,De,dt.length),V=dt.slice(X.from,X.to),ee=X.to.toString().length}var L0=G-X.from;return j(D)&&(ee=(8*(X.to>0?X.to-1:X.to)).toString(16).length)<2&&(ee=2),l(function(Re,f0,w0){var g0,Ji=w0===L0,es=Ji?"> ":et;return g0=j(D)?Dt((8*(X.from+w0)).toString(16),ee,"0"):Dt((X.from+w0+1).toString(),ee," "),[].concat(Re,[es+g0+" | "+f0],Ji?[et+gt(" ",ee)+" | "+Dt("",N," ")+gt("^",mt)]:[])},[],V).join(` `)}function oe(D,F){return[` @@ -18,8 +18,8 @@ var Dv=Object.create;var bl=Object.defineProperty;var bv=Object.getOwnPropertyDe `+N.join(", ")),` `].join("");var N}function ve(D){return D.flags!==void 0?D.flags:[D.global?"g":"",D.ignoreCase?"i":"",D.multiline?"m":"",D.unicode?"u":"",D.sticky?"y":""].join("")}function Yt(){for(var D=[].slice.call(arguments),F=D.length,N=0;N=2?Q(F):F=0;var N=function(V){return RegExp("^(?:"+V.source+")",ve(V))}(D),G=""+D;return n(function(V,X){var ee=N.exec(V.slice(X));if(ee){if(0<=F&&F<=ee.length){var be=ee[0],Ve=ee[F];return I(X+be.length,Ve)}return R(X,"valid match group (0 to "+ee.length+") in "+G)}return R(X,G)})}function C0(D){return n(function(F,N){return I(N,D)})}function Zr(D){return n(function(F,N){return R(N,D)})}function wt(D){if(T(D))return n(function(F,N){var G=D._(F,N);return G.index=N,G.value="",G});if(typeof D=="string")return wt(p0(D));if(D instanceof RegExp)return wt(i0(D));throw new Error("not a string, regexp, or parser: "+D)}function Fn(D){return re(D),n(function(F,N){var G=D._(F,N),V=F.slice(N,G.index);return G.status?R(N,'not "'+V+'"'):I(N,null)})}function Ei(D){return Te(D),n(function(F,N){var G=$(F,N);return N=D.length?R(F,"any character/byte"):I(F+1,$(D,F))}),kn=n(function(D,F){return I(D.length,D.slice(F))}),In=n(function(D,F){return F=0}).desc(F)},n.optWhitespace=Ao,n.Parser=n,n.range=function(D,F){return Ei(function(N){return D<=N&&N<=F}).desc(D+"-"+F)},n.regex=i0,n.regexp=i0,n.sepBy=Ft,n.sepBy1=it,n.seq=Yt,n.seqMap=Ut,n.seqObj=function(){for(var D,F={},N=0,G=(D=arguments,Array.prototype.slice.call(D)),V=G.length,X=0;X255)throw new Error("Value specified to byte constructor ("+D+"=0x"+D.toString(16)+") is larger in value than a single byte.");var F=(D>15?"0x":"0x0")+D.toString(16);return n(function(N,G){var V=$(N,G);return V===D?I(G+1,V):R(G,F)})},buffer:function(D){return v("buffer",D).map(function(F){return Buffer.from(F)})},encodedString:function(D,F){return v("string",F).map(function(N){return N.toString(D)})},uintBE:w,uint8BE:w(1),uint16BE:w(2),uint32BE:w(4),uintLE:k,uint8LE:k(1),uint16LE:k(2),uint32LE:k(4),intBE:B,int8BE:B(1),int16BE:B(2),int32BE:B(4),intLE:L,int8LE:L(1),int16LE:L(2),int32LE:L(4),floatBE:v("floatBE",4).map(function(D){return D.readFloatBE(0)}),floatLE:v("floatLE",4).map(function(D){return D.readFloatLE(0)}),doubleBE:v("doubleBE",8).map(function(D){return D.readDoubleBE(0)}),doubleLE:v("doubleLE",8).map(function(D){return D.readDoubleLE(0)})},t.exports=n}])})})(K9,K9.exports);var P=K9.exports,I6=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC08\uDC26](?:\u200D\u2B1B)?|[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;function uv(r){return r==null?r:r.shiftToAll().normalize()}function ay(r){return r.includes("/")&&(r=r.substring(r.lastIndexOf("/")+1)),r.endsWith(".md")&&(r=r.substring(0,r.length-3)),r}P.alt(P.regex(new RegExp(I6(),"")),P.regex(/[0-9\p{Letter}_-]+/u).map(r=>r.toLocaleLowerCase()),P.whitespace.map(r=>"-"),P.any.map(r=>"")).many().map(r=>r.join(""));var P_=P.alt(P.regex(new RegExp(I6(),"")),P.regex(/[0-9\p{Letter}_-]+/u),P.whitespace.map(r=>" "),P.any.map(r=>" ")).many().map(r=>r.join("").split(/\s+/).join(" ").trim());function B_(r){return P_.tryParse(r)}function R_(r){return r=uv(r),r=Be.fromObject(Object.fromEntries(Object.entries(r.toObject()).filter(([,e])=>e!=0))),r.toHuman()}var Iu;(function(r){function e(T,W=k6,j=!1){let I=t(T);if(!I)return W.renderNullAs;switch(I.type){case"null":return W.renderNullAs;case"string":return I.value;case"number":case"boolean":return""+I.value;case"html":return I.value.outerHTML;case"widget":return I.value.markdown();case"link":return I.value.markdown();case"function":return"";case"array":let R="";return j&&(R+="["),R+=I.value.map(z=>e(z,W,!0)).join(", "),j&&(R+="]"),R;case"object":return"{ "+Object.entries(I.value).map(z=>z[0]+": "+e(z[1],W,!0)).join(", ")+" }";case"date":return I.value.second==0&&I.value.hour==0&&I.value.minute==0?I.value.toFormat(W.defaultDateFormat):I.value.toFormat(W.defaultDateTimeFormat);case"duration":return R_(I.value)}}r.toString=e;function t(T){return p(T)?{type:"null",value:T}:c(T)?{type:"number",value:T}:l(T)?{type:"string",value:T}:v(T)?{type:"boolean",value:T}:d(T)?{type:"duration",value:T}:h(T)?{type:"date",value:T}:w(T)?{type:"widget",value:T}:g(T)?{type:"array",value:T}:C(T)?{type:"link",value:T}:L(T)?{type:"function",value:T}:k(T)?{type:"html",value:T}:B(T)?{type:"object",value:T}:void 0}r.wrapValue=t;function i(T,W){if(B(T)){let j={};for(let[I,R]of Object.entries(T))j[I]=i(R,W);return j}else if(g(T)){let j=[];for(let I of T)j.push(i(I,W));return j}else return W(T)}r.mapLeaves=i;function s(T,W,j){if(T===void 0&&(T=null),W===void 0&&(W=null),T===null&&W===null)return 0;if(T===null)return-1;if(W===null)return 1;let I=t(T),R=t(W);if(I===void 0&&R===void 0)return 0;if(I===void 0)return-1;if(R===void 0)return 1;if(I.type!=R.type)return I.type.localeCompare(R.type);if(I.value===R.value)return 0;switch(I.type){case"string":return I.value.localeCompare(R.value);case"number":return I.valuert),re=q(z.path).localeCompare(q(U.path));if(re!=0)return re;let $=z.type.localeCompare(U.type);return $!=0?$:z.subpath&&!U.subpath?1:!z.subpath&&U.subpath?-1:!z.subpath&&!U.subpath?0:(z.subpath??"").localeCompare(U.subpath??"");case"date":return I.value0;case"boolean":return W.value;case"link":return!!W.value.path;case"date":return W.value.toMillis()!=0;case"duration":return W.value.as("seconds")!=0;case"object":return Object.keys(W.value).length>0;case"array":return W.value.length>0;case"null":return!1;case"html":case"widget":case"function":return!0}}r.isTruthy=o;function a(T){if(T==null)return T;if(r.isArray(T))return[].concat(T.map(W=>a(W)));if(r.isObject(T)){let W={};for(let[j,I]of Object.entries(T))W[j]=a(I);return W}else return T}r.deepCopy=a;function l(T){return typeof T=="string"}r.isString=l;function c(T){return typeof T=="number"}r.isNumber=c;function h(T){return T instanceof Ye}r.isDate=h;function d(T){return T instanceof Be}r.isDuration=d;function p(T){return T==null}r.isNull=p;function g(T){return Array.isArray(T)}r.isArray=g;function v(T){return typeof T=="boolean"}r.isBoolean=v;function C(T){return T instanceof Z9}r.isLink=C;function w(T){return T instanceof Lu}r.isWidget=w;function k(T){return typeof HTMLElement<"u"?T instanceof HTMLElement:!1}r.isHtml=k;function B(T){return typeof T=="object"&&!k(T)&&!w(T)&&!g(T)&&!d(T)&&!h(T)&&!C(T)&&T!==void 0&&!p(T)}r.isObject=B;function L(T){return typeof T=="function"}r.isFunction=L})(Iu||(Iu={}));var ly;(function(r){function e(s){return Iu.isObject(s)&&Object.keys(s).length==2&&"key"in s&&"rows"in s}r.isElementGroup=e;function t(s){for(let n of s)if(!e(n))return!1;return!0}r.isGrouping=t;function i(s){if(t(s)){let n=0;for(let o of s)n+=i(o.rows);return n}else return s.length}r.count=i})(ly||(ly={}));var Z9=class r{constructor(e){M0(this,"path");M0(this,"display");M0(this,"subpath");M0(this,"embed");M0(this,"type");Object.assign(this,e)}static file(e,t=!1,i){return new r({path:e,embed:t,display:i,subpath:void 0,type:"file"})}static infer(e,t=!1,i){if(e.includes("#^")){let s=e.split("#^");return r.block(s[0],s[1],t,i)}else if(e.includes("#")){let s=e.split("#");return r.header(s[0],s[1],t,i)}else return r.file(e,t,i)}static header(e,t,i,s){return new r({path:e,embed:i,display:s,subpath:B_(t),type:"header"})}static block(e,t,i,s){return new r({path:e,embed:i,display:s,subpath:t,type:"block"})}static fromObject(e){return new r(e)}equals(e){return e==null||e==null?!1:this.path==e.path&&this.type==e.type&&this.subpath==e.subpath}toString(){return this.markdown()}toObject(){return{path:this.path,type:this.type,subpath:this.subpath,display:this.display,embed:this.embed}}withPath(e){return new r(Object.assign({},this,{path:e}))}withDisplay(e){return new r(Object.assign({},this,{display:e}))}withHeader(e){return r.header(this.path,e,this.embed,this.display)}toFile(){return r.file(this.path,this.embed,this.display)}toEmbed(){if(this.embed)return this;{let e=new r(this);return e.embed=!0,e}}fromEmbed(){if(this.embed){let e=new r(this);return e.embed=!1,e}else return this}markdown(){let e=(this.embed?"!":"")+"[["+this.obsidianLink();return this.display?e+="|"+this.display:(e+="|"+ay(this.path),(this.type=="header"||this.type=="block")&&(e+=" > "+this.subpath)),e+="]]",e}obsidianLink(){let e=this.path.replaceAll("|","\\|");return this.type=="header"?e+"#"+this.subpath?.replaceAll("|","\\|"):this.type=="block"?e+"#^"+this.subpath?.replaceAll("|","\\|"):e}fileName(){return ay(this.path).replace(".md","")}},Lu=class{constructor(e){M0(this,"$widget");this.$widget=e}},x6=class extends Lu{constructor(t,i){super("dataview:list-pair");M0(this,"key");M0(this,"value");this.key=t,this.value=i}markdown(){return`${Iu.toString(this.key)}: ${Iu.toString(this.value)}`}},D6=class extends Lu{constructor(t,i){super("dataview:external-link");M0(this,"url");M0(this,"display");this.url=t,this.display=i}markdown(){return`[${this.display??this.url}](${this.url})`}},cy;(function(r){function e(o,a){return new x6(o,a)}r.listPair=e;function t(o,a){return new D6(o,a)}r.externalLink=t;function i(o){return o.$widget==="dataview:list-pair"}r.isListPair=i;function s(o){return o.$widget==="dataview:external-link"}r.isExternalLink=s;function n(o){return i(o)||s(o)}r.isBuiltin=n})(cy||(cy={}));var Rt;(function(r){function e(p){return{type:"variable",name:p}}r.variable=e;function t(p){return{type:"literal",value:p}}r.literal=t;function i(p,g,v){return{type:"binaryop",left:p,op:g,right:v}}r.binaryOp=i;function s(p,g){return{type:"index",object:p,index:g}}r.index=s;function n(p){let g=p.split("."),v=r.variable(g[0]);for(let C=1;C"||p==">="||p=="!="||p=="="}r.isCompareOp=d,r.NULL=r.literal(null)})(Rt||(Rt={}));var Yi;(function(r){function e(h){return{type:"tag",tag:h}}r.tag=e;function t(h){return{type:"csv",path:h}}r.csv=t;function i(h){return{type:"folder",folder:h}}r.folder=i;function s(h,d){return{type:"link",file:h,direction:d?"incoming":"outgoing"}}r.link=s;function n(h,d,p){return{type:"binaryop",left:h,op:d,right:p}}r.binaryOp=n;function o(h,d){return{type:"binaryop",left:h,op:"&",right:d}}r.and=o;function a(h,d){return{type:"binaryop",left:h,op:"|",right:d}}r.or=a;function l(h){return{type:"negate",child:h}}r.negate=l;function c(){return{type:"empty"}}r.empty=c})(Yi||(Yi={}));var uy=new RegExp(I6(),""),b6={year:Be.fromObject({years:1}),years:Be.fromObject({years:1}),yr:Be.fromObject({years:1}),yrs:Be.fromObject({years:1}),month:Be.fromObject({months:1}),months:Be.fromObject({months:1}),mo:Be.fromObject({months:1}),mos:Be.fromObject({months:1}),week:Be.fromObject({weeks:1}),weeks:Be.fromObject({weeks:1}),wk:Be.fromObject({weeks:1}),wks:Be.fromObject({weeks:1}),w:Be.fromObject({weeks:1}),day:Be.fromObject({days:1}),days:Be.fromObject({days:1}),d:Be.fromObject({days:1}),hour:Be.fromObject({hours:1}),hours:Be.fromObject({hours:1}),hr:Be.fromObject({hours:1}),hrs:Be.fromObject({hours:1}),h:Be.fromObject({hours:1}),minute:Be.fromObject({minutes:1}),minutes:Be.fromObject({minutes:1}),min:Be.fromObject({minutes:1}),mins:Be.fromObject({minutes:1}),m:Be.fromObject({minutes:1}),second:Be.fromObject({seconds:1}),seconds:Be.fromObject({seconds:1}),sec:Be.fromObject({seconds:1}),secs:Be.fromObject({seconds:1}),s:Be.fromObject({seconds:1})},E6={now:()=>Ye.local(),today:()=>Ye.local().startOf("day"),yesterday:()=>Ye.local().startOf("day").minus(Be.fromObject({days:1})),tomorrow:()=>Ye.local().startOf("day").plus(Be.fromObject({days:1})),sow:()=>Ye.local().startOf("week"),"start-of-week":()=>Ye.local().startOf("week"),eow:()=>Ye.local().endOf("week"),"end-of-week":()=>Ye.local().endOf("week"),soy:()=>Ye.local().startOf("year"),"start-of-year":()=>Ye.local().startOf("year"),eoy:()=>Ye.local().endOf("year"),"end-of-year":()=>Ye.local().endOf("year"),som:()=>Ye.local().startOf("month"),"start-of-month":()=>Ye.local().startOf("month"),eom:()=>Ye.local().endOf("month"),"end-of-month":()=>Ye.local().endOf("month")},S6=["FROM","WHERE","LIMIT","GROUP","FLATTEN"];function O_(r){let e=-1;for(;(e=r.indexOf("|",e+1))>=0;)if(!(e>0&&r[e-1]=="\\"))return[r.substring(0,e).replace(/\\\|/g,"|"),r.substring(e+1)];return[r.replace(/\\\|/g,"|"),void 0]}function G_(r){let[e,t]=O_(r);return Z9.infer(e,!1,t)}function _u(r,e,t){return P.seqMap(r,P.seq(P.optWhitespace,e,P.optWhitespace,r).many(),(i,s)=>{if(s.length==0)return i;let n=t(i,s[0][1],s[0][3]);for(let o=1;o(s,n)=>{let o=r._(s,n);if(!o.status)return o;for(let a of e){let l=a(o.value)._(s,o.index);if(!l.status)return o;o=l}return o})}var Di=P.createLanguage({number:r=>P.regexp(/-?[0-9]+(\.[0-9]+)?/).map(e=>Number.parseFloat(e)).desc("number"),string:r=>P.string('"').then(P.alt(r.escapeCharacter,P.noneOf('"\\')).atLeast(0).map(e=>e.join(""))).skip(P.string('"')).desc("string"),escapeCharacter:r=>P.string("\\").then(P.any).map(e=>e==='"'?'"':e==="\\"?"\\":"\\"+e),bool:r=>P.regexp(/true|false|True|False/).map(e=>e.toLowerCase()=="true").desc("boolean ('true' or 'false')"),tag:r=>P.seqMap(P.string("#"),P.alt(P.regexp(/[^\u2000-\u206F\u2E00-\u2E7F'!"#$%&()*+,.:;<=>?@^`{|}~\[\]\\\s]/).desc("text")).many(),(e,t)=>e+t.join("")).desc("tag ('#hello/stuff')"),identifier:r=>P.seqMap(P.alt(P.regexp(/\p{Letter}/u),P.regexp(uy).desc("text")),P.alt(P.regexp(/[0-9\p{Letter}_-]/u),P.regexp(uy).desc("text")).many(),(e,t)=>e+t.join("")).desc("variable identifier"),link:r=>P.regexp(/\[\[([^\[\]]*?)\]\]/u,1).map(e=>G_(e)).desc("file link"),embedLink:r=>P.seqMap(P.string("!").atMost(1),r.link,(e,t)=>(e.length>0&&(t.embed=!0),t)).desc("file link"),binaryPlusMinus:r=>P.regexp(/\+|-/).map(e=>e).desc("'+' or '-'"),binaryMulDiv:r=>P.regexp(/\*|\/|%/).map(e=>e).desc("'*' or '/' or '%'"),binaryCompareOp:r=>P.regexp(/>=|<=|!=|>|<|=/).map(e=>e).desc("'>=' or '<=' or '!=' or '=' or '>' or '<'"),binaryBooleanOp:r=>P.regexp(/and|or|&|\|/i).map(e=>e.toLowerCase()=="and"?"&":e.toLowerCase()=="or"?"|":e).desc("'and' or 'or'"),rootDate:r=>P.seqMap(P.regexp(/\d{4}/),P.string("-"),P.regexp(/\d{2}/),(e,t,i)=>Ye.fromObject({year:Number.parseInt(e),month:Number.parseInt(i)})).desc("date in format YYYY-MM[-DDTHH-MM-SS.MS]"),dateShorthand:r=>P.alt(...Object.keys(E6).sort((e,t)=>t.length-e.length).map(P.string)),date:r=>U_(r.rootDate,e=>P.seqMap(P.string("-"),P.regexp(/\d{2}/),(t,i)=>e.set({day:Number.parseInt(i)})),e=>P.seqMap(P.string("T"),P.regexp(/\d{2}/),(t,i)=>e.set({hour:Number.parseInt(i)})),e=>P.seqMap(P.string(":"),P.regexp(/\d{2}/),(t,i)=>e.set({minute:Number.parseInt(i)})),e=>P.seqMap(P.string(":"),P.regexp(/\d{2}/),(t,i)=>e.set({second:Number.parseInt(i)})),e=>P.alt(P.seqMap(P.string("."),P.regexp(/\d{3}/),(t,i)=>e.set({millisecond:Number.parseInt(i)})),P.succeed(e)),e=>P.alt(P.seqMap(P.string("+").or(P.string("-")),P.regexp(/\d{1,2}(:\d{2})?/),(t,i)=>e.setZone("UTC"+t+i,{keepLocalTime:!0})),P.seqMap(P.string("Z"),()=>e.setZone("utc",{keepLocalTime:!0})),P.seqMap(P.string("["),P.regexp(/[0-9A-Za-z+-\/]+/u),P.string("]"),(t,i,s)=>e.setZone(i,{keepLocalTime:!0})))).assert(e=>e.isValid,"valid date").desc("date in format YYYY-MM[-DDTHH-MM-SS.MS]"),datePlus:r=>P.alt(r.dateShorthand.map(e=>E6[e]()),r.date).desc("date in format YYYY-MM[-DDTHH-MM-SS.MS] or in shorthand"),durationType:r=>P.alt(...Object.keys(b6).sort((e,t)=>t.length-e.length).map(P.string)),duration:r=>P.seqMap(r.number,P.optWhitespace,r.durationType,(e,t,i)=>b6[i].mapUnits(s=>s*e)).sepBy1(P.string(",").trim(P.optWhitespace).or(P.optWhitespace)).map(e=>e.reduce((t,i)=>t.plus(i))).desc("duration like 4hr2min"),rawNull:r=>P.string("null"),tagSource:r=>r.tag.map(e=>Yi.tag(e)),csvSource:r=>P.seqMap(P.string("csv(").skip(P.optWhitespace),r.string,P.string(")"),(e,t,i)=>Yi.csv(t)),linkIncomingSource:r=>r.link.map(e=>Yi.link(e.path,!0)),linkOutgoingSource:r=>P.seqMap(P.string("outgoing(").skip(P.optWhitespace),r.link,P.string(")"),(e,t,i)=>Yi.link(t.path,!1)),folderSource:r=>r.string.map(e=>Yi.folder(e)),parensSource:r=>P.seqMap(P.string("("),P.optWhitespace,r.source,P.optWhitespace,P.string(")"),(e,t,i,s,n)=>i),negateSource:r=>P.seqMap(P.alt(P.string("-"),P.string("!")),r.atomSource,(e,t)=>Yi.negate(t)),atomSource:r=>P.alt(r.parensSource,r.negateSource,r.linkOutgoingSource,r.linkIncomingSource,r.folderSource,r.tagSource,r.csvSource),binaryOpSource:r=>_u(r.atomSource,r.binaryBooleanOp.map(e=>e),Yi.binaryOp),source:r=>r.binaryOpSource,variableField:r=>r.identifier.chain(e=>S6.includes(e.toUpperCase())?P.fail("Variable fields cannot be a keyword ("+S6.join(" or ")+")"):P.succeed(Rt.variable(e))).desc("variable"),numberField:r=>r.number.map(e=>Rt.literal(e)).desc("number"),stringField:r=>r.string.map(e=>Rt.literal(e)).desc("string"),boolField:r=>r.bool.map(e=>Rt.literal(e)).desc("boolean"),dateField:r=>P.seqMap(P.string("date("),P.optWhitespace,r.datePlus,P.optWhitespace,P.string(")"),(e,t,i,s,n)=>Rt.literal(i)).desc("date"),durationField:r=>P.seqMap(P.string("dur("),P.optWhitespace,r.duration,P.optWhitespace,P.string(")"),(e,t,i,s,n)=>Rt.literal(i)).desc("duration"),nullField:r=>r.rawNull.map(e=>Rt.NULL),linkField:r=>r.link.map(e=>Rt.literal(e)),listField:r=>r.field.sepBy(P.string(",").trim(P.optWhitespace)).wrap(P.string("[").skip(P.optWhitespace),P.optWhitespace.then(P.string("]"))).map(e=>Rt.list(e)).desc("list ('[1, 2, 3]')"),objectField:r=>P.seqMap(r.identifier.or(r.string),P.string(":").trim(P.optWhitespace),r.field,(e,t,i)=>({name:e,value:i})).sepBy(P.string(",").trim(P.optWhitespace)).wrap(P.string("{").skip(P.optWhitespace),P.optWhitespace.then(P.string("}"))).map(e=>{let t={};for(let i of e)t[i.name]=i.value;return Rt.object(t)}).desc("object ('{ a: 1, b: 2 }')"),atomInlineField:r=>P.alt(r.date,r.duration.map(e=>uv(e)),r.string,r.tag,r.embedLink,r.bool,r.number,r.rawNull),inlineFieldList:r=>r.atomInlineField.sepBy(P.string(",").trim(P.optWhitespace).lookahead(r.atomInlineField)),inlineField:r=>P.alt(P.seqMap(r.atomInlineField,P.string(",").trim(P.optWhitespace),r.inlineFieldList,(e,t,i)=>[e].concat(i)),r.atomInlineField),atomField:r=>P.alt(r.embedLink.map(e=>Rt.literal(e)),r.negatedField,r.linkField,r.listField,r.objectField,r.lambdaField,r.parensField,r.boolField,r.numberField,r.stringField,r.dateField,r.durationField,r.nullField,r.variableField),indexField:r=>P.seqMap(r.atomField,P.alt(r.dotPostfix,r.indexPostfix,r.functionPostfix).many(),(e,t)=>{let i=e;for(let s of t)switch(s.type){case"dot":i=Rt.index(i,Rt.literal(s.field));break;case"index":i=Rt.index(i,s.field);break;case"function":i=Rt.func(i,s.fields);break}return i}),negatedField:r=>P.seqMap(P.string("!"),r.indexField,(e,t)=>Rt.negate(t)).desc("negated field"),parensField:r=>P.seqMap(P.string("("),P.optWhitespace,r.field,P.optWhitespace,P.string(")"),(e,t,i,s,n)=>i),lambdaField:r=>P.seqMap(r.identifier.sepBy(P.string(",").trim(P.optWhitespace)).wrap(P.string("(").trim(P.optWhitespace),P.string(")").trim(P.optWhitespace)),P.string("=>").trim(P.optWhitespace),r.field,(e,t,i)=>({type:"lambda",arguments:e,value:i})),dotPostfix:r=>P.seqMap(P.string("."),r.identifier,(e,t)=>({type:"dot",field:t})),indexPostfix:r=>P.seqMap(P.string("["),P.optWhitespace,r.field,P.optWhitespace,P.string("]"),(e,t,i,s,n)=>({type:"index",field:i})),functionPostfix:r=>P.seqMap(P.string("("),P.optWhitespace,r.field.sepBy(P.string(",").trim(P.optWhitespace)),P.optWhitespace,P.string(")"),(e,t,i,s,n)=>({type:"function",fields:i})),binaryMulDivField:r=>_u(r.indexField,r.binaryMulDiv,Rt.binaryOp),binaryPlusMinusField:r=>_u(r.binaryMulDivField,r.binaryPlusMinus,Rt.binaryOp),binaryCompareField:r=>_u(r.binaryPlusMinusField,r.binaryCompareOp,Rt.binaryOp),binaryBooleanField:r=>_u(r.binaryCompareField,r.binaryBooleanOp,Rt.binaryOp),binaryOpField:r=>r.binaryBooleanField,field:r=>r.binaryOpField});function V_(r){try{return X9.success(Di.field.tryParse(r))}catch(e){return X9.failure(""+e)}}var Q9;(function(r){function e(i,s){return{name:i,field:s}}r.named=e;function t(i,s){return{field:i,direction:s}}r.sortBy=t})(Q9||(Q9={}));function z_(r){return P.custom((e,t)=>(i,s)=>{let n=r._(i,s);return n.status?Object.assign({},n,{value:[n.value,i.substring(s,n.index)]}):n})}function W_(r){return r.split(/[\r\n]+/).map(e=>e.trim()).join("")}function hy(r,e){return P.eof.map(r).or(P.whitespace.then(e))}var hv=P.createLanguage({queryType:r=>P.alt(P.regexp(/TABLE|LIST|TASK|CALENDAR/i)).map(e=>e.toLowerCase()).desc("query type ('TABLE', 'LIST', 'TASK', or 'CALENDAR')"),explicitNamedField:r=>P.seqMap(Di.field.skip(P.whitespace),P.regexp(/AS/i).skip(P.whitespace),Di.identifier.or(Di.string),(e,t,i)=>Q9.named(i,e)),comment:()=>P.Parser((r,e)=>{let t=r.substring(e);if(!t.startsWith("//"))return P.makeFailure(e,"Not a comment");t=t.split(` -`)[0];let i=t.substring(2).trim();return P.makeSuccess(e+t.length,i)}),namedField:r=>P.alt(r.explicitNamedField,z_(Di.field).map(([e,t])=>Q9.named(W_(t),e))),sortField:r=>P.seqMap(Di.field.skip(P.optWhitespace),P.regexp(/ASCENDING|DESCENDING|ASC|DESC/i).atMost(1),(e,t)=>{let i=t.length==0?"ascending":t[0].toLowerCase();return i=="desc"&&(i="descending"),i=="asc"&&(i="ascending"),{field:e,direction:i}}),headerClause:r=>r.queryType.chain(e=>{switch(e){case"table":return hy(()=>({type:e,fields:[],showId:!0}),P.seqMap(P.regexp(/WITHOUT\s+ID/i).skip(P.optWhitespace).atMost(1),P.sepBy(r.namedField,P.string(",").trim(P.optWhitespace)),(t,i)=>({type:e,fields:i,showId:t.length==0})));case"list":return hy(()=>({type:e,format:void 0,showId:!0}),P.seqMap(P.regexp(/WITHOUT\s+ID/i).skip(P.optWhitespace).atMost(1),Di.field.atMost(1),(t,i)=>({type:e,format:i.length==1?i[0]:void 0,showId:t.length==0})));case"task":return P.succeed({type:e});case"calendar":return P.whitespace.then(P.seqMap(r.namedField,t=>({type:e,showId:!0,field:t})));default:return P.fail(`Unrecognized query type '${e}'`)}}).desc("TABLE or LIST or TASK or CALENDAR"),fromClause:r=>P.seqMap(P.regexp(/FROM/i),P.whitespace,Di.source,(e,t,i)=>i),whereClause:r=>P.seqMap(P.regexp(/WHERE/i),P.whitespace,Di.field,(e,t,i)=>({type:"where",clause:i})).desc("WHERE "),sortByClause:r=>P.seqMap(P.regexp(/SORT/i),P.whitespace,r.sortField.sepBy1(P.string(",").trim(P.optWhitespace)),(e,t,i)=>({type:"sort",fields:i})).desc("SORT field [ASC/DESC]"),limitClause:r=>P.seqMap(P.regexp(/LIMIT/i),P.whitespace,Di.field,(e,t,i)=>({type:"limit",amount:i})).desc("LIMIT "),flattenClause:r=>P.seqMap(P.regexp(/FLATTEN/i).skip(P.whitespace),r.namedField,(e,t)=>({type:"flatten",field:t})).desc("FLATTEN [AS ]"),groupByClause:r=>P.seqMap(P.regexp(/GROUP BY/i).skip(P.whitespace),r.namedField,(e,t)=>({type:"group",field:t})).desc("GROUP BY [AS ]"),clause:r=>P.alt(r.fromClause,r.whereClause,r.sortByClause,r.limitClause,r.groupByClause,r.flattenClause),query:r=>P.seqMap(r.headerClause.trim(i6),r.fromClause.trim(i6).atMost(1),r.clause.trim(i6).many(),(e,t,i)=>({header:e,source:t.length==0?Yi.folder(""):t[0],operations:i,settings:k6}))}),i6=P.alt(P.whitespace,hv.comment).many().map(r=>r.join("")),H_=r=>r?r.plugins.plugins.dataview?.api:window.DataviewAPI,j_=r=>r.plugins.enabledPlugins.has("dataview");Xi.DATE_SHORTHANDS=E6;Xi.DURATION_TYPES=b6;Xi.EXPRESSION=Di;Xi.KEYWORDS=S6;Xi.QUERY_LANGUAGE=hv;Xi.getAPI=H_;Xi.isPluginEnabled=j_;Xi.parseField=V_});var mv=Pe((Bu,L6)=>{(function(r,e){typeof Bu=="object"&&typeof L6=="object"?L6.exports=e():typeof define=="function"&&define.amd?define([],e):typeof Bu=="object"?Bu.Parsimmon=e():r.Parsimmon=e()})(typeof self<"u"?self:Bu,function(){return function(r){var e={};function t(i){if(e[i])return e[i].exports;var s=e[i]={i,l:!1,exports:{}};return r[i].call(s.exports,s,s.exports,t),s.l=!0,s.exports}return t.m=r,t.c=e,t.d=function(i,s,n){t.o(i,s)||Object.defineProperty(i,s,{configurable:!1,enumerable:!0,get:n})},t.r=function(i){Object.defineProperty(i,"__esModule",{value:!0})},t.n=function(i){var s=i&&i.__esModule?function(){return i.default}:function(){return i};return t.d(s,"a",s),s},t.o=function(i,s){return Object.prototype.hasOwnProperty.call(i,s)},t.p="",t(t.s=0)}([function(r,e,t){"use strict";function i(A){if(!(this instanceof i))return new i(A);this._=A}var s=i.prototype;function n(A,O){for(var D=0;D>7),buf:function(N){var G=o(function(V,X,ee,be){return V.concat(ee===be.length-1?Buffer.from([X,0]).readUInt16BE(0):be.readUInt16BE(ee))},[],N);return Buffer.from(a(function(V){return(V<<1&65535)>>8},G))}(D.buf)}}),D}function c(){return typeof Buffer<"u"}function h(){if(!c())throw new Error("Buffer global does not exist; please use webpack if you need to parse Buffers in the browser.")}function d(A){h();var O=o(function(G,V){return G+V},0,A);if(O%8!=0)throw new Error("The bits ["+A.join(", ")+"] add up to "+O+" which is not an even number of bytes; the total should be divisible by 8");var D,F=O/8,N=(D=function(G){return G>48},o(function(G,V){return G||(D(V)?V:G)},null,A));if(N)throw new Error(N+" bit range requested exceeds 48 bit (6 byte) Number max.");return new i(function(G,V){var X=F+V;return X>G.length?j(V,F.toString()+" bytes"):W(X,o(function(ee,be){var Ve=l(be,ee.buf);return{coll:ee.coll.concat(Ve.v),buf:Ve.buf}},{coll:[],buf:G.slice(V,X)},A).coll)})}function p(A,O){return new i(function(D,F){return h(),F+O>D.length?j(F,O+" bytes for "+A):W(F+O,D.slice(F,F+O))})}function g(A,O){if(typeof(D=O)!="number"||Math.floor(D)!==D||O<0||O>6)throw new Error(A+" requires integer length in range [0, 6].");var D}function v(A){return g("uintBE",A),p("uintBE("+A+")",A).map(function(O){return O.readUIntBE(0,A)})}function C(A){return g("uintLE",A),p("uintLE("+A+")",A).map(function(O){return O.readUIntLE(0,A)})}function w(A){return g("intBE",A),p("intBE("+A+")",A).map(function(O){return O.readIntBE(0,A)})}function k(A){return g("intLE",A),p("intLE("+A+")",A).map(function(O){return O.readIntLE(0,A)})}function B(A){return A instanceof i}function L(A){return{}.toString.call(A)==="[object Array]"}function T(A){return c()&&Buffer.isBuffer(A)}function W(A,O){return{status:!0,index:A,value:O,furthest:-1,expected:[]}}function j(A,O){return L(O)||(O=[O]),{status:!1,index:-1,value:null,furthest:A,expected:O}}function I(A,O){if(!O||A.furthest>O.furthest)return A;var D=A.furthest===O.furthest?function(F,N){if(function(){if(i._supportsSet!==void 0)return i._supportsSet;var Vt=typeof Set<"u";return i._supportsSet=Vt,Vt}()&&Array.from){for(var G=new Set(F),V=0;V=0;){if(V in D){F=D[V].line,G===0&&(G=D[V].lineStart);break}(A.charAt(V)===` +`),A=r0(ko,Nn,Mn).desc("newline"),O=r0(A,In);n.all=kn,n.alt=r0,n.any=An,n.cr=Mn,n.createLanguage=function(D){var F={};for(var N in D)({}).hasOwnProperty.call(D,N)&&function(G){F[G]=Si(function(){return D[G](F)})}(N);return F},n.crlf=ko,n.custom=function(D){return n(D(I,R))},n.digit=Fo,n.digits=xl,n.empty=Zi,n.end=O,n.eof=In,n.fail=Zr,n.formatError=oe,n.index=Qi,n.isParser=T,n.lazy=Si,n.letter=Ln,n.letters=Dl,n.lf=Nn,n.lookahead=wt,n.makeFailure=R,n.makeSuccess=I,n.newline=A,n.noneOf=function(D){return Ei(function(F){return D.indexOf(F)<0}).desc("none of '"+D+"'")},n.notFollowedBy=Fn,n.of=C0,n.oneOf=function(D){for(var F=D.split(""),N=0;N=0}).desc(F)},n.optWhitespace=Ao,n.Parser=n,n.range=function(D,F){return Ei(function(N){return D<=N&&N<=F}).desc(D+"-"+F)},n.regex=i0,n.regexp=i0,n.sepBy=Ft,n.sepBy1=it,n.seq=Yt,n.seqMap=Ut,n.seqObj=function(){for(var D,F={},N=0,G=(D=arguments,Array.prototype.slice.call(D)),V=G.length,X=0;X255)throw new Error("Value specified to byte constructor ("+D+"=0x"+D.toString(16)+") is larger in value than a single byte.");var F=(D>15?"0x":"0x0")+D.toString(16);return n(function(N,G){var V=$(N,G);return V===D?I(G+1,V):R(G,F)})},buffer:function(D){return v("buffer",D).map(function(F){return Buffer.from(F)})},encodedString:function(D,F){return v("string",F).map(function(N){return N.toString(D)})},uintBE:w,uint8BE:w(1),uint16BE:w(2),uint32BE:w(4),uintLE:k,uint8LE:k(1),uint16LE:k(2),uint32LE:k(4),intBE:B,int8BE:B(1),int16BE:B(2),int32BE:B(4),intLE:L,int8LE:L(1),int16LE:L(2),int32LE:L(4),floatBE:v("floatBE",4).map(function(D){return D.readFloatBE(0)}),floatLE:v("floatLE",4).map(function(D){return D.readFloatLE(0)}),doubleBE:v("doubleBE",8).map(function(D){return D.readDoubleBE(0)}),doubleLE:v("doubleLE",8).map(function(D){return D.readDoubleLE(0)})},t.exports=n}])})})(Y9,Y9.exports);var P=Y9.exports,k6=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC08\uDC26](?:\u200D\u2B1B)?|[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;function cv(r){return r==null?r:r.shiftToAll().normalize()}function oy(r){return r.includes("/")&&(r=r.substring(r.lastIndexOf("/")+1)),r.endsWith(".md")&&(r=r.substring(0,r.length-3)),r}P.alt(P.regex(new RegExp(k6(),"")),P.regex(/[0-9\p{Letter}_-]+/u).map(r=>r.toLocaleLowerCase()),P.whitespace.map(r=>"-"),P.any.map(r=>"")).many().map(r=>r.join(""));var A_=P.alt(P.regex(new RegExp(k6(),"")),P.regex(/[0-9\p{Letter}_-]+/u),P.whitespace.map(r=>" "),P.any.map(r=>" ")).many().map(r=>r.join("").split(/\s+/).join(" ").trim());function k_(r){return A_.tryParse(r)}function I_(r){return r=cv(r),r=Be.fromObject(Object.fromEntries(Object.entries(r.toObject()).filter(([,e])=>e!=0))),r.toHuman()}var Iu;(function(r){function e(T,W=A6,j=!1){let I=t(T);if(!I)return W.renderNullAs;switch(I.type){case"null":return W.renderNullAs;case"string":return I.value;case"number":case"boolean":return""+I.value;case"html":return I.value.outerHTML;case"widget":return I.value.markdown();case"link":return I.value.markdown();case"function":return"";case"array":let R="";return j&&(R+="["),R+=I.value.map(z=>e(z,W,!0)).join(", "),j&&(R+="]"),R;case"object":return"{ "+Object.entries(I.value).map(z=>z[0]+": "+e(z[1],W,!0)).join(", ")+" }";case"date":return I.value.second==0&&I.value.hour==0&&I.value.minute==0?I.value.toFormat(W.defaultDateFormat):I.value.toFormat(W.defaultDateTimeFormat);case"duration":return I_(I.value)}}r.toString=e;function t(T){return p(T)?{type:"null",value:T}:c(T)?{type:"number",value:T}:l(T)?{type:"string",value:T}:v(T)?{type:"boolean",value:T}:d(T)?{type:"duration",value:T}:h(T)?{type:"date",value:T}:w(T)?{type:"widget",value:T}:g(T)?{type:"array",value:T}:C(T)?{type:"link",value:T}:L(T)?{type:"function",value:T}:k(T)?{type:"html",value:T}:B(T)?{type:"object",value:T}:void 0}r.wrapValue=t;function i(T,W){if(B(T)){let j={};for(let[I,R]of Object.entries(T))j[I]=i(R,W);return j}else if(g(T)){let j=[];for(let I of T)j.push(i(I,W));return j}else return W(T)}r.mapLeaves=i;function s(T,W,j){if(T===void 0&&(T=null),W===void 0&&(W=null),T===null&&W===null)return 0;if(T===null)return-1;if(W===null)return 1;let I=t(T),R=t(W);if(I===void 0&&R===void 0)return 0;if(I===void 0)return-1;if(R===void 0)return 1;if(I.type!=R.type)return I.type.localeCompare(R.type);if(I.value===R.value)return 0;switch(I.type){case"string":return I.value.localeCompare(R.value);case"number":return I.valuert),re=q(z.path).localeCompare(q(U.path));if(re!=0)return re;let $=z.type.localeCompare(U.type);return $!=0?$:z.subpath&&!U.subpath?1:!z.subpath&&U.subpath?-1:!z.subpath&&!U.subpath?0:(z.subpath??"").localeCompare(U.subpath??"");case"date":return I.value0;case"boolean":return W.value;case"link":return!!W.value.path;case"date":return W.value.toMillis()!=0;case"duration":return W.value.as("seconds")!=0;case"object":return Object.keys(W.value).length>0;case"array":return W.value.length>0;case"null":return!1;case"html":case"widget":case"function":return!0}}r.isTruthy=o;function a(T){if(T==null)return T;if(r.isArray(T))return[].concat(T.map(W=>a(W)));if(r.isObject(T)){let W={};for(let[j,I]of Object.entries(T))W[j]=a(I);return W}else return T}r.deepCopy=a;function l(T){return typeof T=="string"}r.isString=l;function c(T){return typeof T=="number"}r.isNumber=c;function h(T){return T instanceof Ye}r.isDate=h;function d(T){return T instanceof Be}r.isDuration=d;function p(T){return T==null}r.isNull=p;function g(T){return Array.isArray(T)}r.isArray=g;function v(T){return typeof T=="boolean"}r.isBoolean=v;function C(T){return T instanceof X9}r.isLink=C;function w(T){return T instanceof Lu}r.isWidget=w;function k(T){return typeof HTMLElement<"u"?T instanceof HTMLElement:!1}r.isHtml=k;function B(T){return typeof T=="object"&&!k(T)&&!w(T)&&!g(T)&&!d(T)&&!h(T)&&!C(T)&&T!==void 0&&!p(T)}r.isObject=B;function L(T){return typeof T=="function"}r.isFunction=L})(Iu||(Iu={}));var ay;(function(r){function e(s){return Iu.isObject(s)&&Object.keys(s).length==2&&"key"in s&&"rows"in s}r.isElementGroup=e;function t(s){for(let n of s)if(!e(n))return!1;return!0}r.isGrouping=t;function i(s){if(t(s)){let n=0;for(let o of s)n+=i(o.rows);return n}else return s.length}r.count=i})(ay||(ay={}));var X9=class r{constructor(e){M0(this,"path");M0(this,"display");M0(this,"subpath");M0(this,"embed");M0(this,"type");Object.assign(this,e)}static file(e,t=!1,i){return new r({path:e,embed:t,display:i,subpath:void 0,type:"file"})}static infer(e,t=!1,i){if(e.includes("#^")){let s=e.split("#^");return r.block(s[0],s[1],t,i)}else if(e.includes("#")){let s=e.split("#");return r.header(s[0],s[1],t,i)}else return r.file(e,t,i)}static header(e,t,i,s){return new r({path:e,embed:i,display:s,subpath:k_(t),type:"header"})}static block(e,t,i,s){return new r({path:e,embed:i,display:s,subpath:t,type:"block"})}static fromObject(e){return new r(e)}equals(e){return e==null||e==null?!1:this.path==e.path&&this.type==e.type&&this.subpath==e.subpath}toString(){return this.markdown()}toObject(){return{path:this.path,type:this.type,subpath:this.subpath,display:this.display,embed:this.embed}}withPath(e){return new r(Object.assign({},this,{path:e}))}withDisplay(e){return new r(Object.assign({},this,{display:e}))}withHeader(e){return r.header(this.path,e,this.embed,this.display)}toFile(){return r.file(this.path,this.embed,this.display)}toEmbed(){if(this.embed)return this;{let e=new r(this);return e.embed=!0,e}}fromEmbed(){if(this.embed){let e=new r(this);return e.embed=!1,e}else return this}markdown(){let e=(this.embed?"!":"")+"[["+this.obsidianLink();return this.display?e+="|"+this.display:(e+="|"+oy(this.path),(this.type=="header"||this.type=="block")&&(e+=" > "+this.subpath)),e+="]]",e}obsidianLink(){let e=this.path.replaceAll("|","\\|");return this.type=="header"?e+"#"+this.subpath?.replaceAll("|","\\|"):this.type=="block"?e+"#^"+this.subpath?.replaceAll("|","\\|"):e}fileName(){return oy(this.path).replace(".md","")}},Lu=class{constructor(e){M0(this,"$widget");this.$widget=e}},v6=class extends Lu{constructor(t,i){super("dataview:list-pair");M0(this,"key");M0(this,"value");this.key=t,this.value=i}markdown(){return`${Iu.toString(this.key)}: ${Iu.toString(this.value)}`}},x6=class extends Lu{constructor(t,i){super("dataview:external-link");M0(this,"url");M0(this,"display");this.url=t,this.display=i}markdown(){return`[${this.display??this.url}](${this.url})`}},ly;(function(r){function e(o,a){return new v6(o,a)}r.listPair=e;function t(o,a){return new x6(o,a)}r.externalLink=t;function i(o){return o.$widget==="dataview:list-pair"}r.isListPair=i;function s(o){return o.$widget==="dataview:external-link"}r.isExternalLink=s;function n(o){return i(o)||s(o)}r.isBuiltin=n})(ly||(ly={}));var Rt;(function(r){function e(p){return{type:"variable",name:p}}r.variable=e;function t(p){return{type:"literal",value:p}}r.literal=t;function i(p,g,v){return{type:"binaryop",left:p,op:g,right:v}}r.binaryOp=i;function s(p,g){return{type:"index",object:p,index:g}}r.index=s;function n(p){let g=p.split("."),v=r.variable(g[0]);for(let C=1;C"||p==">="||p=="!="||p=="="}r.isCompareOp=d,r.NULL=r.literal(null)})(Rt||(Rt={}));var Yi;(function(r){function e(h){return{type:"tag",tag:h}}r.tag=e;function t(h){return{type:"csv",path:h}}r.csv=t;function i(h){return{type:"folder",folder:h}}r.folder=i;function s(h,d){return{type:"link",file:h,direction:d?"incoming":"outgoing"}}r.link=s;function n(h,d,p){return{type:"binaryop",left:h,op:d,right:p}}r.binaryOp=n;function o(h,d){return{type:"binaryop",left:h,op:"&",right:d}}r.and=o;function a(h,d){return{type:"binaryop",left:h,op:"|",right:d}}r.or=a;function l(h){return{type:"negate",child:h}}r.negate=l;function c(){return{type:"empty"}}r.empty=c})(Yi||(Yi={}));var cy=new RegExp(k6(),""),D6={year:Be.fromObject({years:1}),years:Be.fromObject({years:1}),yr:Be.fromObject({years:1}),yrs:Be.fromObject({years:1}),month:Be.fromObject({months:1}),months:Be.fromObject({months:1}),mo:Be.fromObject({months:1}),mos:Be.fromObject({months:1}),week:Be.fromObject({weeks:1}),weeks:Be.fromObject({weeks:1}),wk:Be.fromObject({weeks:1}),wks:Be.fromObject({weeks:1}),w:Be.fromObject({weeks:1}),day:Be.fromObject({days:1}),days:Be.fromObject({days:1}),d:Be.fromObject({days:1}),hour:Be.fromObject({hours:1}),hours:Be.fromObject({hours:1}),hr:Be.fromObject({hours:1}),hrs:Be.fromObject({hours:1}),h:Be.fromObject({hours:1}),minute:Be.fromObject({minutes:1}),minutes:Be.fromObject({minutes:1}),min:Be.fromObject({minutes:1}),mins:Be.fromObject({minutes:1}),m:Be.fromObject({minutes:1}),second:Be.fromObject({seconds:1}),seconds:Be.fromObject({seconds:1}),sec:Be.fromObject({seconds:1}),secs:Be.fromObject({seconds:1}),s:Be.fromObject({seconds:1})},b6={now:()=>Ye.local(),today:()=>Ye.local().startOf("day"),yesterday:()=>Ye.local().startOf("day").minus(Be.fromObject({days:1})),tomorrow:()=>Ye.local().startOf("day").plus(Be.fromObject({days:1})),sow:()=>Ye.local().startOf("week"),"start-of-week":()=>Ye.local().startOf("week"),eow:()=>Ye.local().endOf("week"),"end-of-week":()=>Ye.local().endOf("week"),soy:()=>Ye.local().startOf("year"),"start-of-year":()=>Ye.local().startOf("year"),eoy:()=>Ye.local().endOf("year"),"end-of-year":()=>Ye.local().endOf("year"),som:()=>Ye.local().startOf("month"),"start-of-month":()=>Ye.local().startOf("month"),eom:()=>Ye.local().endOf("month"),"end-of-month":()=>Ye.local().endOf("month")},E6=["FROM","WHERE","LIMIT","GROUP","FLATTEN"];function L_(r){let e=-1;for(;(e=r.indexOf("|",e+1))>=0;)if(!(e>0&&r[e-1]=="\\"))return[r.substring(0,e).replace(/\\\|/g,"|"),r.substring(e+1)];return[r.replace(/\\\|/g,"|"),void 0]}function M_(r){let[e,t]=L_(r);return X9.infer(e,!1,t)}function _u(r,e,t){return P.seqMap(r,P.seq(P.optWhitespace,e,P.optWhitespace,r).many(),(i,s)=>{if(s.length==0)return i;let n=t(i,s[0][1],s[0][3]);for(let o=1;o(s,n)=>{let o=r._(s,n);if(!o.status)return o;for(let a of e){let l=a(o.value)._(s,o.index);if(!l.status)return o;o=l}return o})}var Di=P.createLanguage({number:r=>P.regexp(/-?[0-9]+(\.[0-9]+)?/).map(e=>Number.parseFloat(e)).desc("number"),string:r=>P.string('"').then(P.alt(r.escapeCharacter,P.noneOf('"\\')).atLeast(0).map(e=>e.join(""))).skip(P.string('"')).desc("string"),escapeCharacter:r=>P.string("\\").then(P.any).map(e=>e==='"'?'"':e==="\\"?"\\":"\\"+e),bool:r=>P.regexp(/true|false|True|False/).map(e=>e.toLowerCase()=="true").desc("boolean ('true' or 'false')"),tag:r=>P.seqMap(P.string("#"),P.alt(P.regexp(/[^\u2000-\u206F\u2E00-\u2E7F'!"#$%&()*+,.:;<=>?@^`{|}~\[\]\\\s]/).desc("text")).many(),(e,t)=>e+t.join("")).desc("tag ('#hello/stuff')"),identifier:r=>P.seqMap(P.alt(P.regexp(/\p{Letter}/u),P.regexp(cy).desc("text")),P.alt(P.regexp(/[0-9\p{Letter}_-]/u),P.regexp(cy).desc("text")).many(),(e,t)=>e+t.join("")).desc("variable identifier"),link:r=>P.regexp(/\[\[([^\[\]]*?)\]\]/u,1).map(e=>M_(e)).desc("file link"),embedLink:r=>P.seqMap(P.string("!").atMost(1),r.link,(e,t)=>(e.length>0&&(t.embed=!0),t)).desc("file link"),binaryPlusMinus:r=>P.regexp(/\+|-/).map(e=>e).desc("'+' or '-'"),binaryMulDiv:r=>P.regexp(/\*|\/|%/).map(e=>e).desc("'*' or '/' or '%'"),binaryCompareOp:r=>P.regexp(/>=|<=|!=|>|<|=/).map(e=>e).desc("'>=' or '<=' or '!=' or '=' or '>' or '<'"),binaryBooleanOp:r=>P.regexp(/and|or|&|\|/i).map(e=>e.toLowerCase()=="and"?"&":e.toLowerCase()=="or"?"|":e).desc("'and' or 'or'"),rootDate:r=>P.seqMap(P.regexp(/\d{4}/),P.string("-"),P.regexp(/\d{2}/),(e,t,i)=>Ye.fromObject({year:Number.parseInt(e),month:Number.parseInt(i)})).desc("date in format YYYY-MM[-DDTHH-MM-SS.MS]"),dateShorthand:r=>P.alt(...Object.keys(b6).sort((e,t)=>t.length-e.length).map(P.string)),date:r=>N_(r.rootDate,e=>P.seqMap(P.string("-"),P.regexp(/\d{2}/),(t,i)=>e.set({day:Number.parseInt(i)})),e=>P.seqMap(P.string("T"),P.regexp(/\d{2}/),(t,i)=>e.set({hour:Number.parseInt(i)})),e=>P.seqMap(P.string(":"),P.regexp(/\d{2}/),(t,i)=>e.set({minute:Number.parseInt(i)})),e=>P.seqMap(P.string(":"),P.regexp(/\d{2}/),(t,i)=>e.set({second:Number.parseInt(i)})),e=>P.alt(P.seqMap(P.string("."),P.regexp(/\d{3}/),(t,i)=>e.set({millisecond:Number.parseInt(i)})),P.succeed(e)),e=>P.alt(P.seqMap(P.string("+").or(P.string("-")),P.regexp(/\d{1,2}(:\d{2})?/),(t,i)=>e.setZone("UTC"+t+i,{keepLocalTime:!0})),P.seqMap(P.string("Z"),()=>e.setZone("utc",{keepLocalTime:!0})),P.seqMap(P.string("["),P.regexp(/[0-9A-Za-z+-\/]+/u),P.string("]"),(t,i,s)=>e.setZone(i,{keepLocalTime:!0})))).assert(e=>e.isValid,"valid date").desc("date in format YYYY-MM[-DDTHH-MM-SS.MS]"),datePlus:r=>P.alt(r.dateShorthand.map(e=>b6[e]()),r.date).desc("date in format YYYY-MM[-DDTHH-MM-SS.MS] or in shorthand"),durationType:r=>P.alt(...Object.keys(D6).sort((e,t)=>t.length-e.length).map(P.string)),duration:r=>P.seqMap(r.number,P.optWhitespace,r.durationType,(e,t,i)=>D6[i].mapUnits(s=>s*e)).sepBy1(P.string(",").trim(P.optWhitespace).or(P.optWhitespace)).map(e=>e.reduce((t,i)=>t.plus(i))).desc("duration like 4hr2min"),rawNull:r=>P.string("null"),tagSource:r=>r.tag.map(e=>Yi.tag(e)),csvSource:r=>P.seqMap(P.string("csv(").skip(P.optWhitespace),r.string,P.string(")"),(e,t,i)=>Yi.csv(t)),linkIncomingSource:r=>r.link.map(e=>Yi.link(e.path,!0)),linkOutgoingSource:r=>P.seqMap(P.string("outgoing(").skip(P.optWhitespace),r.link,P.string(")"),(e,t,i)=>Yi.link(t.path,!1)),folderSource:r=>r.string.map(e=>Yi.folder(e)),parensSource:r=>P.seqMap(P.string("("),P.optWhitespace,r.source,P.optWhitespace,P.string(")"),(e,t,i,s,n)=>i),negateSource:r=>P.seqMap(P.alt(P.string("-"),P.string("!")),r.atomSource,(e,t)=>Yi.negate(t)),atomSource:r=>P.alt(r.parensSource,r.negateSource,r.linkOutgoingSource,r.linkIncomingSource,r.folderSource,r.tagSource,r.csvSource),binaryOpSource:r=>_u(r.atomSource,r.binaryBooleanOp.map(e=>e),Yi.binaryOp),source:r=>r.binaryOpSource,variableField:r=>r.identifier.chain(e=>E6.includes(e.toUpperCase())?P.fail("Variable fields cannot be a keyword ("+E6.join(" or ")+")"):P.succeed(Rt.variable(e))).desc("variable"),numberField:r=>r.number.map(e=>Rt.literal(e)).desc("number"),stringField:r=>r.string.map(e=>Rt.literal(e)).desc("string"),boolField:r=>r.bool.map(e=>Rt.literal(e)).desc("boolean"),dateField:r=>P.seqMap(P.string("date("),P.optWhitespace,r.datePlus,P.optWhitespace,P.string(")"),(e,t,i,s,n)=>Rt.literal(i)).desc("date"),durationField:r=>P.seqMap(P.string("dur("),P.optWhitespace,r.duration,P.optWhitespace,P.string(")"),(e,t,i,s,n)=>Rt.literal(i)).desc("duration"),nullField:r=>r.rawNull.map(e=>Rt.NULL),linkField:r=>r.link.map(e=>Rt.literal(e)),listField:r=>r.field.sepBy(P.string(",").trim(P.optWhitespace)).wrap(P.string("[").skip(P.optWhitespace),P.optWhitespace.then(P.string("]"))).map(e=>Rt.list(e)).desc("list ('[1, 2, 3]')"),objectField:r=>P.seqMap(r.identifier.or(r.string),P.string(":").trim(P.optWhitespace),r.field,(e,t,i)=>({name:e,value:i})).sepBy(P.string(",").trim(P.optWhitespace)).wrap(P.string("{").skip(P.optWhitespace),P.optWhitespace.then(P.string("}"))).map(e=>{let t={};for(let i of e)t[i.name]=i.value;return Rt.object(t)}).desc("object ('{ a: 1, b: 2 }')"),atomInlineField:r=>P.alt(r.date,r.duration.map(e=>cv(e)),r.string,r.tag,r.embedLink,r.bool,r.number,r.rawNull),inlineFieldList:r=>r.atomInlineField.sepBy(P.string(",").trim(P.optWhitespace).lookahead(r.atomInlineField)),inlineField:r=>P.alt(P.seqMap(r.atomInlineField,P.string(",").trim(P.optWhitespace),r.inlineFieldList,(e,t,i)=>[e].concat(i)),r.atomInlineField),atomField:r=>P.alt(r.embedLink.map(e=>Rt.literal(e)),r.negatedField,r.linkField,r.listField,r.objectField,r.lambdaField,r.parensField,r.boolField,r.numberField,r.stringField,r.dateField,r.durationField,r.nullField,r.variableField),indexField:r=>P.seqMap(r.atomField,P.alt(r.dotPostfix,r.indexPostfix,r.functionPostfix).many(),(e,t)=>{let i=e;for(let s of t)switch(s.type){case"dot":i=Rt.index(i,Rt.literal(s.field));break;case"index":i=Rt.index(i,s.field);break;case"function":i=Rt.func(i,s.fields);break}return i}),negatedField:r=>P.seqMap(P.string("!"),r.indexField,(e,t)=>Rt.negate(t)).desc("negated field"),parensField:r=>P.seqMap(P.string("("),P.optWhitespace,r.field,P.optWhitespace,P.string(")"),(e,t,i,s,n)=>i),lambdaField:r=>P.seqMap(r.identifier.sepBy(P.string(",").trim(P.optWhitespace)).wrap(P.string("(").trim(P.optWhitespace),P.string(")").trim(P.optWhitespace)),P.string("=>").trim(P.optWhitespace),r.field,(e,t,i)=>({type:"lambda",arguments:e,value:i})),dotPostfix:r=>P.seqMap(P.string("."),r.identifier,(e,t)=>({type:"dot",field:t})),indexPostfix:r=>P.seqMap(P.string("["),P.optWhitespace,r.field,P.optWhitespace,P.string("]"),(e,t,i,s,n)=>({type:"index",field:i})),functionPostfix:r=>P.seqMap(P.string("("),P.optWhitespace,r.field.sepBy(P.string(",").trim(P.optWhitespace)),P.optWhitespace,P.string(")"),(e,t,i,s,n)=>({type:"function",fields:i})),binaryMulDivField:r=>_u(r.indexField,r.binaryMulDiv,Rt.binaryOp),binaryPlusMinusField:r=>_u(r.binaryMulDivField,r.binaryPlusMinus,Rt.binaryOp),binaryCompareField:r=>_u(r.binaryPlusMinusField,r.binaryCompareOp,Rt.binaryOp),binaryBooleanField:r=>_u(r.binaryCompareField,r.binaryBooleanOp,Rt.binaryOp),binaryOpField:r=>r.binaryBooleanField,field:r=>r.binaryOpField});function P_(r){try{return q9.success(Di.field.tryParse(r))}catch(e){return q9.failure(""+e)}}var K9;(function(r){function e(i,s){return{name:i,field:s}}r.named=e;function t(i,s){return{field:i,direction:s}}r.sortBy=t})(K9||(K9={}));function B_(r){return P.custom((e,t)=>(i,s)=>{let n=r._(i,s);return n.status?Object.assign({},n,{value:[n.value,i.substring(s,n.index)]}):n})}function R_(r){return r.split(/[\r\n]+/).map(e=>e.trim()).join("")}function uy(r,e){return P.eof.map(r).or(P.whitespace.then(e))}var uv=P.createLanguage({queryType:r=>P.alt(P.regexp(/TABLE|LIST|TASK|CALENDAR/i)).map(e=>e.toLowerCase()).desc("query type ('TABLE', 'LIST', 'TASK', or 'CALENDAR')"),explicitNamedField:r=>P.seqMap(Di.field.skip(P.whitespace),P.regexp(/AS/i).skip(P.whitespace),Di.identifier.or(Di.string),(e,t,i)=>K9.named(i,e)),comment:()=>P.Parser((r,e)=>{let t=r.substring(e);if(!t.startsWith("//"))return P.makeFailure(e,"Not a comment");t=t.split(` +`)[0];let i=t.substring(2).trim();return P.makeSuccess(e+t.length,i)}),namedField:r=>P.alt(r.explicitNamedField,B_(Di.field).map(([e,t])=>K9.named(R_(t),e))),sortField:r=>P.seqMap(Di.field.skip(P.optWhitespace),P.regexp(/ASCENDING|DESCENDING|ASC|DESC/i).atMost(1),(e,t)=>{let i=t.length==0?"ascending":t[0].toLowerCase();return i=="desc"&&(i="descending"),i=="asc"&&(i="ascending"),{field:e,direction:i}}),headerClause:r=>r.queryType.chain(e=>{switch(e){case"table":return uy(()=>({type:e,fields:[],showId:!0}),P.seqMap(P.regexp(/WITHOUT\s+ID/i).skip(P.optWhitespace).atMost(1),P.sepBy(r.namedField,P.string(",").trim(P.optWhitespace)),(t,i)=>({type:e,fields:i,showId:t.length==0})));case"list":return uy(()=>({type:e,format:void 0,showId:!0}),P.seqMap(P.regexp(/WITHOUT\s+ID/i).skip(P.optWhitespace).atMost(1),Di.field.atMost(1),(t,i)=>({type:e,format:i.length==1?i[0]:void 0,showId:t.length==0})));case"task":return P.succeed({type:e});case"calendar":return P.whitespace.then(P.seqMap(r.namedField,t=>({type:e,showId:!0,field:t})));default:return P.fail(`Unrecognized query type '${e}'`)}}).desc("TABLE or LIST or TASK or CALENDAR"),fromClause:r=>P.seqMap(P.regexp(/FROM/i),P.whitespace,Di.source,(e,t,i)=>i),whereClause:r=>P.seqMap(P.regexp(/WHERE/i),P.whitespace,Di.field,(e,t,i)=>({type:"where",clause:i})).desc("WHERE "),sortByClause:r=>P.seqMap(P.regexp(/SORT/i),P.whitespace,r.sortField.sepBy1(P.string(",").trim(P.optWhitespace)),(e,t,i)=>({type:"sort",fields:i})).desc("SORT field [ASC/DESC]"),limitClause:r=>P.seqMap(P.regexp(/LIMIT/i),P.whitespace,Di.field,(e,t,i)=>({type:"limit",amount:i})).desc("LIMIT "),flattenClause:r=>P.seqMap(P.regexp(/FLATTEN/i).skip(P.whitespace),r.namedField,(e,t)=>({type:"flatten",field:t})).desc("FLATTEN [AS ]"),groupByClause:r=>P.seqMap(P.regexp(/GROUP BY/i).skip(P.whitespace),r.namedField,(e,t)=>({type:"group",field:t})).desc("GROUP BY [AS ]"),clause:r=>P.alt(r.fromClause,r.whereClause,r.sortByClause,r.limitClause,r.groupByClause,r.flattenClause),query:r=>P.seqMap(r.headerClause.trim(r6),r.fromClause.trim(r6).atMost(1),r.clause.trim(r6).many(),(e,t,i)=>({header:e,source:t.length==0?Yi.folder(""):t[0],operations:i,settings:A6}))}),r6=P.alt(P.whitespace,uv.comment).many().map(r=>r.join("")),O_=r=>r?r.plugins.plugins.dataview?.api:window.DataviewAPI,G_=r=>r.plugins.enabledPlugins.has("dataview");Xi.DATE_SHORTHANDS=b6;Xi.DURATION_TYPES=D6;Xi.EXPRESSION=Di;Xi.KEYWORDS=E6;Xi.QUERY_LANGUAGE=uv;Xi.getAPI=O_;Xi.isPluginEnabled=G_;Xi.parseField=P_});var mv=Pe((Bu,I6)=>{(function(r,e){typeof Bu=="object"&&typeof I6=="object"?I6.exports=e():typeof define=="function"&&define.amd?define([],e):typeof Bu=="object"?Bu.Parsimmon=e():r.Parsimmon=e()})(typeof self<"u"?self:Bu,function(){return function(r){var e={};function t(i){if(e[i])return e[i].exports;var s=e[i]={i,l:!1,exports:{}};return r[i].call(s.exports,s,s.exports,t),s.l=!0,s.exports}return t.m=r,t.c=e,t.d=function(i,s,n){t.o(i,s)||Object.defineProperty(i,s,{configurable:!1,enumerable:!0,get:n})},t.r=function(i){Object.defineProperty(i,"__esModule",{value:!0})},t.n=function(i){var s=i&&i.__esModule?function(){return i.default}:function(){return i};return t.d(s,"a",s),s},t.o=function(i,s){return Object.prototype.hasOwnProperty.call(i,s)},t.p="",t(t.s=0)}([function(r,e,t){"use strict";function i(A){if(!(this instanceof i))return new i(A);this._=A}var s=i.prototype;function n(A,O){for(var D=0;D>7),buf:function(N){var G=o(function(V,X,ee,be){return V.concat(ee===be.length-1?Buffer.from([X,0]).readUInt16BE(0):be.readUInt16BE(ee))},[],N);return Buffer.from(a(function(V){return(V<<1&65535)>>8},G))}(D.buf)}}),D}function c(){return typeof Buffer<"u"}function h(){if(!c())throw new Error("Buffer global does not exist; please use webpack if you need to parse Buffers in the browser.")}function d(A){h();var O=o(function(G,V){return G+V},0,A);if(O%8!=0)throw new Error("The bits ["+A.join(", ")+"] add up to "+O+" which is not an even number of bytes; the total should be divisible by 8");var D,F=O/8,N=(D=function(G){return G>48},o(function(G,V){return G||(D(V)?V:G)},null,A));if(N)throw new Error(N+" bit range requested exceeds 48 bit (6 byte) Number max.");return new i(function(G,V){var X=F+V;return X>G.length?j(V,F.toString()+" bytes"):W(X,o(function(ee,be){var Ve=l(be,ee.buf);return{coll:ee.coll.concat(Ve.v),buf:Ve.buf}},{coll:[],buf:G.slice(V,X)},A).coll)})}function p(A,O){return new i(function(D,F){return h(),F+O>D.length?j(F,O+" bytes for "+A):W(F+O,D.slice(F,F+O))})}function g(A,O){if(typeof(D=O)!="number"||Math.floor(D)!==D||O<0||O>6)throw new Error(A+" requires integer length in range [0, 6].");var D}function v(A){return g("uintBE",A),p("uintBE("+A+")",A).map(function(O){return O.readUIntBE(0,A)})}function C(A){return g("uintLE",A),p("uintLE("+A+")",A).map(function(O){return O.readUIntLE(0,A)})}function w(A){return g("intBE",A),p("intBE("+A+")",A).map(function(O){return O.readIntBE(0,A)})}function k(A){return g("intLE",A),p("intLE("+A+")",A).map(function(O){return O.readIntLE(0,A)})}function B(A){return A instanceof i}function L(A){return{}.toString.call(A)==="[object Array]"}function T(A){return c()&&Buffer.isBuffer(A)}function W(A,O){return{status:!0,index:A,value:O,furthest:-1,expected:[]}}function j(A,O){return L(O)||(O=[O]),{status:!1,index:-1,value:null,furthest:A,expected:O}}function I(A,O){if(!O||A.furthest>O.furthest)return A;var D=A.furthest===O.furthest?function(F,N){if(function(){if(i._supportsSet!==void 0)return i._supportsSet;var Vt=typeof Set<"u";return i._supportsSet=Vt,Vt}()&&Array.from){for(var G=new Set(F),V=0;V=0;){if(V in D){F=D[V].line,G===0&&(G=D[V].lineStart);break}(A.charAt(V)===` `||A.charAt(V)==="\r"&&A.charAt(V+1)!==` `)&&(N++,G===0&&(G=V+1)),V--}var X=F+N,ee=O-G;return D[O]={line:X,lineStart:G},{offset:O,line:X+1,column:ee+1}}function U(A){if(!B(A))throw new Error("not a parser: "+A)}function q(A,O){return typeof A=="string"?A.charAt(O):A[O]}function re(A){if(typeof A!="number")throw new Error("not a number: "+A)}function $(A){if(typeof A!="function")throw new Error("not a function: "+A)}function Q(A){if(typeof A!="string")throw new Error("not a string: "+A)}var Te=2,ye=3,xe=8,De=5*xe,_e=4*xe,Mt=" ";function rt(A,O){return new Array(O+1).join(A)}function et(A,O,D){var F=O-A.length;return F<=0?A:rt(D,F)+A}function gt(A,O,D,F){return{from:A-O>0?A-O:0,to:A+D>F?F:A+D}}function Dt(A,O){var D,F,N,G,V,X=O.index,ee=X.offset,be=1;if(ee===A.length)return"Got the end of the input";if(T(A)){var Ve=ee-ee%xe,mt=ee-Ve,Ze=gt(Ve,De,_e+xe,A.length),Vt=a(function(dt){return a(function(L0){return et(L0.toString(16),2,"0")},dt)},function(dt,L0){var Re=dt.length,f0=[],w0=0;if(Re<=L0)return[dt.slice()];for(var g0=0;g0=4&&(D+=1),be=2,N=a(function(dt){return dt.length<=4?dt.join(" "):dt.slice(0,4).join(" ")+" "+dt.slice(4).join(" ")},Vt),(V=(8*(G.to>0?G.to-1:G.to)).toString(16).length)<2&&(V=2)}else{var At=A.split(/\r\n|[\n\r\u2028\u2029]/);D=X.column-1,F=X.line-1,G=gt(F,Te,ye,At.length),N=At.slice(G.from,G.to),V=G.to.toString().length}var j0=F-G.from;return T(A)&&(V=(8*(G.to>0?G.to-1:G.to)).toString(16).length)<2&&(V=2),o(function(dt,L0,Re){var f0,w0=Re===j0,g0=w0?"> ":Mt;return f0=T(A)?et((8*(G.from+Re)).toString(16),V,"0"):et((G.from+Re+1).toString(),V," "),[].concat(dt,[g0+f0+" | "+L0],w0?[Mt+rt(" ",V)+" | "+et("",D," ")+rt("^",be)]:[])},[],N).join(` `)}function I0(A,O){return[` @@ -34,14 +34,14 @@ var Dv=Object.create;var bl=Object.defineProperty;var bv=Object.getOwnPropertyDe `+D.join(", ")),` `].join("");var D}function de(A){return A.flags!==void 0?A.flags:[A.global?"g":"",A.ignoreCase?"i":"",A.multiline?"m":"",A.unicode?"u":"",A.sticky?"y":""].join("")}function oe(){for(var A=[].slice.call(arguments),O=A.length,D=0;D=2?re(O):O=0;var D=function(N){return RegExp("^(?:"+N.source+")",de(N))}(A),F=""+A;return i(function(N,G){var V=D.exec(N.slice(G));if(V){if(0<=O&&O<=V.length){var X=V[0],ee=V[O];return W(G+X.length,ee)}return j(G,"valid match group (0 to "+V.length+") in "+F)}return j(G,F)})}function p0(A){return i(function(O,D){return W(D,A)})}function i0(A){return i(function(O,D){return j(D,A)})}function C0(A){if(B(A))return i(function(O,D){var F=A._(O,D);return F.index=D,F.value="",F});if(typeof A=="string")return C0(Ft(A));if(A instanceof RegExp)return C0(it(A));throw new Error("not a string, regexp, or parser: "+A)}function Zr(A){return U(A),i(function(O,D){var F=A._(O,D),N=O.slice(D,F.index);return F.status?j(D,'not "'+N+'"'):W(D,null)})}function wt(A){return $(A),i(function(O,D){var F=q(O,D);return D=A.length?j(O,"any character/byte"):W(O+1,q(A,O))}),Qi=i(function(A,O){return W(A.length,A.slice(O))}),An=i(function(A,O){return O=0}).desc(O)},i.optWhitespace=Ln,i.Parser=i,i.range=function(A,O){return wt(function(D){return A<=D&&D<=O}).desc(A+"-"+O)},i.regex=it,i.regexp=it,i.sepBy=Ut,i.sepBy1=r0,i.seq=oe,i.seqMap=ve,i.seqObj=function(){for(var A,O={},D=0,F=(A=arguments,Array.prototype.slice.call(A)),N=F.length,G=0;G255)throw new Error("Value specified to byte constructor ("+A+"=0x"+A.toString(16)+") is larger in value than a single byte.");var O=(A>15?"0x":"0x0")+A.toString(16);return i(function(D,F){var N=q(D,F);return N===A?W(F+1,N):j(F,O)})},buffer:function(A){return p("buffer",A).map(function(O){return Buffer.from(O)})},encodedString:function(A,O){return p("string",O).map(function(D){return D.toString(A)})},uintBE:v,uint8BE:v(1),uint16BE:v(2),uint32BE:v(4),uintLE:C,uint8LE:C(1),uint16LE:C(2),uint32LE:C(4),intBE:w,int8BE:w(1),int16BE:w(2),int32BE:w(4),intLE:k,int8LE:k(1),int16LE:k(2),int32LE:k(4),floatBE:p("floatBE",4).map(function(A){return A.readFloatBE(0)}),floatLE:p("floatLE",4).map(function(A){return A.readFloatLE(0)}),doubleBE:p("doubleBE",8).map(function(A){return A.readDoubleBE(0)}),doubleLE:p("doubleLE",8).map(function(A){return A.readDoubleLE(0)})},r.exports=i}])})});var Y_={};El(Y_,{default:()=>ip});module.exports=Tv(Y_);var _t=require("obsidian");var sp={};El(sp,{UI:()=>Rv,beta:()=>Fv,controls:()=>Av,default:()=>Ov,errors:()=>kv,features:()=>Iv,inputs:()=>Lv,notices:()=>Mv,plugin:()=>_v,query:()=>Nv,states:()=>Pv,statsFunctions:()=>Bv});var _v={custom:"Custom",dark:"Dark",default:"Default",folder:"Folder",folders:"Folders",filter:"Filter",nodeName:"Node name",info:"Info",light:"Light",name:"Extended graph",nodes:"Nodes",options:"Options",settings:"Settings",source:"Source",target:"Target",valuePlaceholder:"value..."},Fv={beta:"Beta",betaFeatures:"Beta features",enableCSS:"Enable CSS customization",enableCSSDesc:"Allows the plugin to inject custom CSS into the graph view for further customization. Write the name of the CSS snippet to use.",revertAction:"Revert action",revertActionDesc:"If the max number of nodes is reached, try to reverse last action instead of disabling the plugin"},Av={add:"Add",apply:"Apply",back:"Back",cancel:"Cancel",delete:"Delete",disable:"Disable",disableAll:"Disable all",disableInGraphView:"Disable in graph view",edit:"Edit",enable:"Enable",enableAll:"Enable all",enabled:"Enabled",enableInGraphView:"Enable in graph view",export:"Export",exportSettings:"Export settings",goTo:"Go to",hide:"Hide",hideAll:"Hide all",hideRow:"Hide row",import:"Import",importSettings:"Import settings",importSettingsAndReload:"Import settings and reload",interpolate:"Interpolate",manage:"Manage",moveUp:"Move up",moveDown:"Move down",no:"No",openLegend:"Open legend (tags, links, properties)",orCreateConfig:"Or create a new one",override:"Override",overrideConfig:"Override an existing configuration",page:"Page",pageCurrent:"Current page",pageFirst:"First page",pageLast:"Last page",pathRegexPlaceholder:'Enter path or "/regex/"...',resetGraph:"Reset graph",resetInGraphView:"Reset in graph view",reverse:"Reverse",save:"Save",selectAllNodes:"Select all nodes",selectConfigToImport:"Select a configuration to import",selectInvert:"Invert selection",setConfigName:"Set configuration name",show:"Show",showAll:"Show all",toggle:"Toggle",toggleAll:"Toggle all",toggleAllWithMoreThanOneNode:"With more than one node",rows:"rows",yes:"Yes"},kv={uri401:"Unauthorized URL (Code 401) while trying to get an image for a node. This probably means that the URL is invalid. No image will be loaded and this message can safely be ignored.",issueNeedView:"There was an issue with the plugin $t(plugin.name). Please close the graph view and open it again.",paletteNameRequired:"You need to choose a name for this color map"},Iv={ids:{arrows:"arrows",automation:"automation",beta:"beta",display:"display",elementsStats:"stats",filter:"filter",focus:"focus",folders:"folders",icons:"icons",images:"images",inputs:"inputs",layers:"layers",localGraph:"local graph",linkTypes:"links types",names:"names",performances:"performances",properties:"properties",shapes:"shapes",tags:"tags",zoom:"zoom"},animateDotsOnLinks:"Animate dots on links",animateDotsOnLinksDesc:"Animate dots on links when a node is hovered to show the flow of information",animateDotsOnLinksSpeed:"Animation speed",animateDotsOnLinksSpeedDesc:"Speed of the animation of the dots on links",arrows:"Arrows",arrowsDesc:"Customize how arrows are displayed",arrowsColor:"Custom color",arrowsColorDesc:"Pick a custom color for the links arrows",arrowsInvert:"Invert arrows",arrowsInvertDesc:"Invert the direction of the arrows on the links",arrowsFixedSize:"Fixed size",arrowsFixedSizeDesc:"Prevent the arrows to scale down or up when zooming",arrowsFlat:"Triangle arrows",arrowsFlatDesc:"Use triangle arrows instead of the default curved ones",arrowsOpaque:"Opaque arrows",arrowsOpaqueDesc:"Remove any transparency from the arrow so they are fully opaque",arrowsOpaqueAlways:"Always",arrowsOpaqueKeepFading:"Only when zoomed",arrowsScale:"Scale",arrowsScaleDesc:"Increase or decrease the scale of arrows",automation:"Automation",autoEnable:"Auto enable",autoEnableDesc:"Auto enable the plugin in graph views",autoReset:"Reset graph views after changes",autoResetDesc:"Reset the plugin in the graph views where it is enabled, if settings have changed after closing this tab",borderUnresolved:"Border of unresolved nodes",borderUnresolvedDesc:"If between 0 and 1 (excluded), unresolved nodes will only show an outside circle border instead of a full disk",brightness:"Brightness factor",brightnessDesc:"Multiply the brightness of tags, properties, and links by a factor depending on the theme. Need reloading of the graph if you swap themes while plugin is enabled.",canonicalizePropertiesWithDataview:"Canonicalize property names (Dataview)",canonicalizePropertiesWithDataviewDesc:"By default, the Dataview plugin canonicalize the property names, converting everything to lowercase, removing dashes and underscore. If you want to use the non-canonicalized version of the properties, disabled this. Note that if you have two properties, with one being the canonicalized version of the second one (for example CaseSensitive and casesensitive), the canonicalized version will be discarded. This option only applied if you're using the Dataview plugin.",colorBasedOnDepth:"Color based on depth",colorBasedOnDepthDesc:"Color the nodes based on their depth relative to the main node in the local graph",depthPalette:"Depth color palette",depthPaletteDesc:"Choose the color palette for the depth level coloring nodes",disableNodes:"Disable nodes",disableNodesDesc:"When all arcs are disabled on the node, remove it from the graph",excludeSourceFolders:"Exclude source folders",excludeSourceFoldersDesc:"Exclude forward links with source inside some folders (i.e. links coming out one of these folders)",excludeTargetFolders:"Exclude target folders",excludeTargetFoldersDesc:"Exclude backward links with target inside some folders (i.e. links going in one of these folders)",excludedFolders:"Excluded folders",externalLinks:"Add external URLs",externalLinksDesc:"Add external URLs as attachment nodes in the graph view. Types for links toward those nodes are not supported.",externalLinkOpen:"Open external URL",externalLinksOpenMode:"Open mode for external URLs",externalLinksOpenModeDesc:"When left clicking on an external URL's node, select the expected behavior to open the URL",externalLinksOptions:{none:"None",domain:"Domain",href:"Href (without search and hash)",domain_and_href:"Href and domain (2 nodes)"},externalLinksModes:{web:"Always on the Web",note:"First note if exists",choice:"Show available options"},externalLinksProperties:"External URLs properties",externalLinksPropertiesDesc:"Names of the properties that can be used to decide if an external URL node should redirect towards a specific note or to the web view when clicked",noExclusionFilter:"No excluded filter is applied right now. Add one below.",withExclusionFilter:"Files matching the following filters won't have back/forward links in the graph:",fadeInElements:"Fade in new elements",fadeInElementsDesc:"Extended elements added to the graph view by the plugin are faded in instead of appearing suddenly",filters:"Filters",filtersDesc:"Exclude files and folders from the graph based on regex patterns",focus:"Focus",focusDesc:"Add ways to easily identify nodes in your graph",focusFlickerOpenNodes:"Flicker open nodes",focusFlickerSearchNodes:"Flicker search results nodes",focusOpenNodes:"Highlight open nodes",focusOpenNodesDesc:"Add a border around nodes associated to an open tab",focusScale:"Active node scale factor",focusScaleDesc:"The node corresponding to the currently active note will be scaled up by this factor. Set to 1 for no scaling.",focusSearchResults:"Highlight search results",focusSearchResultsDesc:"Add a border around nodes that are part of a search result via the core Search plugin",folders:"Folders",foldersDesc:"Display folder boxes",folderShowFullPath:"Show full path",folderShowFullPathDesc:"If enable, the full path of the folder will be displayed ; if disabled, only the folder name will be displayed",icons:"Icons",iconsDesc:"Use icons or emoji for nodes",iconBackgroundColor:"Use icon color for the background",iconBackgroundColorDesc:"Use the icon color instead of the default node color for the background. For emojis, the average color will be used.",iconBackgroundOpacity:"Background opacity",iconBackgroundOpacityDesc:"Set the opacity of the node itself behind the icon. Set to 0 for no background.",iconBorderWidth:"Border width",iconBorderWidthDesc:"Add a border to the node around the icon of the specified width. Set to 0 for no border.",iconProperties:"Icon properties",iconPropertiesDesc:"Keys (names) of the properties that can be used to query the icon of the node's note. Supported values in the frontmatter can be either unicode emojis or Lucide icon identifiers.",iconPropertiesAdd:"Add icon property",iconUsePlugin:'Use "Iconic" or "Iconize"',iconUsePluginDesc:'Use the icons set in the file explorer via "Iconic" or "Iconize" community plugins',iconUsePluginColor:'Use "Iconic" or "Iconize" for color',iconUsePluginColorDesc:'Use the color of the icons set in the file explorer via "Iconic" or "Iconize"',iconUseParentIcon:"Use the icon of a parent folder",iconUseParentIconDesc:'If no icon is set on the file itself with "Iconic" or "Iconize", it will try to find one set on a parent folder',image:"Image",images:"Images",imageDesc:"Display image on top of nodes",imagesAllowExternal:"Allow images from the web",imagesAllowExternalDesc:"Allow the loading of external images via http: and https: protocols",imagesAllowExternalLocal:"Allow local images outside of the vault",imagesAllowExternalLocalDesc:"Allow the loading of external images via file: and app: protocols",imagesFromProperty:"From a property",imagesFromPropertyDesc:"Display image from a property in the frontmatter",imagesFromEmbeds:"From embeds",imagesFromEmbedsDesc:'Display an image if one is found among the embeds in the note. The setting "From a property" has priority.',imagesForAttachments:"For attachments",imagesForAttachmentsDesc:"Display image for attachment nodes",imageProperties:"Image properties",imagePropertiesDesc:"Names of the properties that can be used to query the image of the node's note",imagePropertiesAdd:"Add image property",imageBorderWidth:"Border width (%)",imageBorderWidthDesc:"Percentage of the node's background that will stay visible as a border",ignoreInlineLinks:"Ignore inline links",ignoreInlineLinksDesc:"Links defined inside the note and outside of the frontmatter will not be added to the graph",interactives:{alreadyExists:"Already exists",arcsAdd:"Add arcs",arcsAddPropertyDesc:"Add arcs around the nodes to visualize the property values",arcsAddTagDesc:"Add arcs around the nodes to visualize the tags",arcsSpread:"Spread arcs",arcsSpreadDesc:"Spread the arcs around the nodes to fill the available space",arcWeight:"Weight arc length",arcWeightDesc:"Use the number of time the value is found to determine arcs lengths (requires 'Spread arcs' to be enabled)",colorLinks:"Color links",colorLinksDesc:"Add colors to the link rendered in the graph view",colorLinkTypeLabel:"Color label",colorLinkTypeLabelDesc:"Color the type label (text) with the same color as the link",curvedFactor:"Curvature factor",curvedFactorDesc:"A negative value will inverse the shape, a greater absolute value will increase the curvature, while a value close to 0 will flatten it",curvedLinks:"Curved links",curvedLinksDesc:"Use curved links instead of straight lines",displayLinkTypeLabel:"Display label",displayLinkTypeLabelDesc:"Display the type label on top of the link",linkTypes:"Link types",linkTypesDesc:"Display and filter link types",noneTypeID:"None type id",noneTypeIDDesc:"The id which will be given if nothing is found for ",palette:"Color palette",paletteDesc:"Choose the color palette for ",paletteMatplotlibDesc:"These colormaps come from matplotlib. You can see more about them here: ",palettePickGradient:"Pick palette gradient",properties:"Properties",propertiesDesc:"Display and filter by property values",property:"Property",propertyDesc:"Display and filter property ",propertyAlreadyExists:"This property already exists",propertyReservedFolders:"This property key is reserved for folders",propertyReservedLinks:"This property key is reserved for links",propertyReservedTags:"This property key is reserved for tags",selection:"Selection",selectionDesc:"Choose which values should be considered by the plugin",selectionFor:"Selection for",specificColors:"Specific colors",specificColorsDesc:"Choose specific colors to override the color palette",tags:"Tags",tagsDesc:"Display and filter by tags"},layers:"Layers",layersDesc:"Group nodes by layers and adjust their opacity",layersDisplayLabels:"Display labels in UI",layersDisplayLabelsDesc:"If a layer has a label associated, for example `4_cave`, add the label to the UI",layersInfoDataview:"If you modify layers' levels and labels from this pane, Dataview inline properties will not be updated",layersInfoLevelNotFromID:"Level of this layer is not based on the property value",layersNumber:"Maximum number of layers",layersNumberDesc:"Set up the maximum number of active layers that will be shown in the graph view",layersOpacityPlaceholder:"Opacity",layersOrder:"Order",layersOrderDesc:"Choose if layers must be considered in an ascending or descending order",layerProperties:"Layer properties",layerPropertiesDesc:"Names of the properties that can be used to query the layer of the node's note",layerPropertiesAdd:"Add layer property",layersOpacityIfNoLayer:"Opacity for nodes without layer",layersOpacityIfNoLayerDesc:"If a node is not associated to a layer, it will use this opacity (set to 0 to hide)",layersUseCustomOpacity:"Use custom opacity",layersUseCustomOpacityDesc:"Set up fixed opacity values (0-1) for some layers. If they are shown, they will always be shown with this opacity, other opacities will be interpolated.",linksAllowMultipleTypes:"Draw multiple types",linksAllowMultipleTypesDesc:"Allow the graph to draw multiple types of links between two nodes",linksOutline:"Outline links",linksOutlineDesc:"Add a thin outline to the links and the arrows (when opaque)",linksSameColorAsNode:"Color link based on source",linksSameColorAsNodeDesc:"Use the color of the source node to color links",linksFeatureRequired:"The Links feature needs to be enabled.",localGraph:"Local graph",localGraphDesc:"Customize your local graph with settings specific to this view",localGraphCurrentNodeColor:"Current node's color",localGraphCurrentNodeColorDesc:"Color of the main node of the local graph",localGraphCurrentNodeSize:"Current node's size",localGraphCurrentNodeSizeDesc:"Base size of the main node of the local graph. Default: 100, minimum: 10.",localGraphCurrentNodeShape:"Current node's shape",localGraphCurrentNodeShapeDesc:"Shape of the main node of the local graph",pinnedNodes:"Pinned nodes",pinNode:"Pin node",unpinNode:"Unpin node",unpinAllNodes:"Unpin all nodes",pinMultipleNodes:"Pin multiple nodes",pinMultipleShape:"Shape",pinMultipleGap:"Gap between nodes",pinMultipleCenter:"Center",pinMultipleGridSize:"Number of columns",pinMultipleGridSizeDesc:"Values can be 'N' (single row), 'auto' (square grid) or a positive integer",pinSelectedNodes:"Pin selected nodes",unpinSelectedNodes:"Unpin selected nodes",size:"Size",elementsStats:"Nodes and links statistics",elementsStatsDesc:"Choose how nodes and links sizes/colors must be computed",linkSizesFunction:"Link size function",linkSizesFunctionDesc:"Select how the graph engine should compute the thickness of the links",linkColorsFunction:"Link color function",linkColorsFunctionDesc:"Select how the graph engine should compute the color of the links",linkColorsPaletteDesc:"Choose the color palette for the links",names:"Nodes names",namesDesc:"Customize how nodes names are displayed",namesEllipsisPlaceholder:"\u2026",namesNumberOfCharacters:"Characters limit",namesNumberOfCharactersDesc:"Maximum number of characters to display for the node name. Leave empty to display the full name. Choose the character(s) that should be displayed if the name is truncated.",namesShowOnlyFileName:"Filename only",namesShowOnlyFileNameDesc:"Show only the file name without the path",namesNoExtension:"Hide extension",namesNoExtensionDesc:"Remove the file extension from the name",namesUseProperties:"Use properties",namesUsePropertiesDesc:"Use one of the desired properties as the node name instead of the filename",namesUsePropertiesAdd:"Add node name property",namesBackground:"Add a background",namesBackgroundDesc:"Add a background to the node name in order to make it more readable by hiding elements behind it",namesShowWhenNeighborHighlighted:"Always show when hovering neighbor node",namesShowWhenNeighborHighlightedDesc:"Shows the text even when fully zoomed out if a connected neighbor node is highlighted",namesVerticalOffset:"Vertical offset",namesVerticalOffsetDesc:"Vertical offset of the text. Positive value will push the text lower, and positive value will move it higher.",namesDynamicVerticalOffset:"Dynamic vertical offset",namesDynamicVerticalOffsetDesc:"Dynamically adapt the vertical position of the text to avoid any overlapping with node's elements (arrows, arcs, shape)",noLineHighlight:"No line highlight",noLineHighlightDesc:"When hovering a node, don't highlight the connected links",nodeSizesFunction:"Node size function",nodeSizesFunctionDesc:"Select how the graph engine should compute the size of the nodes",nodeSizeProperties:"Node size properties",nodeSizePropertiesDesc:"Names of the properties that can be used to specify the size of the node. They must be of type number. A value of 100 is the default.",nodeSizePropertiesAdd:"Add node size property",nodeSizesRange:"Node size range",nodeSizesRangeDesc:"Minimum and maximum factors (between 0.1 and 5) that will be used to scale the sizes of the nodes",nodeColorsFunction:"Node color function",nodeColorsFunctionDesc:"Select how the graph engine should compute the color of the nodes",nodeColorsPaletteDesc:"Choose the color palette for the nodes",nodeStatsDirection:"Graph direction to compute node statistics",nodeStatsDirectionDesc:"When computing the node statistics, use the default directed graph, the reverse graph (source nodes become targets and vice versa), or the undirected graph (no effect for directed metrics such as backlinks)",nodeStatsDirectionNormal:"Default directed",nodeStatsDirectionReversed:"Reversed",nodeStatsDirectionUndirected:"Undirected",nodeStatsRecomputeOnGraphChange:"Recompute when graph changes",nodeStatsRecomputeOnGraphChangeDesc:"Recompute the metrics everytime the graph's data changes. This can create a drop in performances.",openInNewTab:"Open nodes in new tab",openInNewTabDesc:"Always open the nodes in a new tab when left clicking on them",otherDisplay:"Other display options",performance:"Performances",performanceDelay:"Initialization delay (milliseconds)",performanceDelayDesc:"Because of asynchronous mechanics, it can be needed to wait a time before starting initializing the extended features",performanceMaxNodes:"Maximum number of nodes",performanceMaxNodesDesc:"If the graph contains more nodes than this setting, the plugin will be disabled",recursive:"Recursive",removeSources:"Remove sources",removeSourcesDesc:"When disabling a link type, also disable the source nodes",removeTargets:"Remove targets",removeTargetsDesc:"When disabling a link type, also disable the source nodes",shape:"Shape",shapes:"Shapes",shapesDesc:"Use nodes of various shapes",shapePick:"Pick shape",shapesNames:{circle:"circle",square:"square",triangle:"triangle",diamond:"diamond",pentagon:"pentagon",hexagon:"hexagon",octagon:"octagon",decagon:"decagon",star4:"star (4)",star5:"star (5)",star6:"star (6)",star8:"star (8)",star10:"star (10)",polygon:"polygon",starburst:"starburst",grid:"grid",line:"line",unknown:"unknown"},svgScreenshotArcs:"Show arcs (tags and/or types)",svgScreenshotCopy:"Copy SVG screenshot",svgScreenshotCopyCode:"Copy SVG code to clipboard",svgScreenshotCopyImage:"Copy SVG image to clipboard",svgScreenshotCurvedLinks:"Use curved links",svgScreenshotNodeNames:"Show node names",svgScreenshotNodeShapes:"Use nodes shapes",svgScreenshotOptions:"SVG Screenshot options",svgScreenshotVisibleArea:"Export only visible area",zoomOnNode:"Zoom on node",zoomScale:"Zoom scale",zoomScaleDesc:"When zooming on a node, set the used scale"},Lv={inputs:"Inputs",leftClickIncompatibility:"Multiple inputs use the same modifier for the left click ; only one of them will work",pinHotkey:"Pin node (right click)",pinHotkeyDesc:"When doing a right click on a node while holding the specified key down, it will pin the node",radialMenu:"Radial context menu (right click)",radialMenuDesc:"When doing a right click on a node while holding the specified key down, it will show a radial context menu with data from the extended graph plugin, rather than the usual context menu",rightClickIncompatibility:"Multiple inputs use the same modifier for the right click ; only one of them will work",selected:"selected",selectHotkey:"Select node (left click)",selectHotkeyDesc:"When doing a left click on a node while holding the specified key down, it will select the node",selectionMode:"Selection mode",selectionModeAddTooltip:"Add to the current selection",selectionModeIntersectTooltip:"Intersect with the current selection",selectionModeReplaceTooltip:"Replace the current selection",selectionModeSubtractTooltip:"Subtract from the current selection"},Mv={changeInSettings:"You can change this in the settings",disabled:"disabled",graphAnalysisPluginRequired:"Graph Analysis community plugin must be enabled to use this function",invalidCharacter:"Invalid character",nlpPluginRequired:"NLP community plugin must be enabled to use this function",nodeLimiteExceeded:"Try to handle too many nodes",nodeLimitIs:"The limit is",nodeStatSizeFailed:"Failed to compute the statistics for the nodes sizes",nodeStatColorFailed:"Failed to compute the statistics for the nodes colors",linkStatSizeFailed:"Failed to compute the statistics for the links thickness",linkStatColorFailed:"Failed to compute the statistics for the links colors",functionToDefault:"The default function has been set instead.",stateDeleted:"State has been removed",stateRenamed:"State has been renamed",stateSaved:"State has been saved",normalStateSave:"Engine options have been saved for the normal state",svgCopied:"SVG copied to clipboard"},Nv={AND:"AND",ANDFilterDesc:"Keep nodes with all selected values",OR:"OR",ORFilterDesc:"Keep nodes with at least one of the selected values",combinationLogic:"Combination logic",editShapeQuery:"Edit shape query",excludeRegex:"Exclude regex",excludeRegexDesc:"Use regex to automatically exclude some values. Start a new line for a new regex.",setShapeQueryFor:"Set shape query for",files:"Files",logicKey:{contains:"contains",containsNot:"doesn't contain",is:"is",isNot:"is not",containsRegex:"contains regex",containsRegexNot:"doesn't contain regex",matchesRegex:"matches regex",matchesRegexNot:"doesn't match regex",isEmpty:"is empty",isEmptyNot:"is not empty"},matchingFiles:"Matching files",match:"match",matches:"matches",query:"Query",rules:"Rules",source:{all:"All",tag:"Tags",link:"Links",property:"Property",file:"File",folder:"Folder",folderRec:"Folder and subfolders",path:"Path"},viewMatches:"View matches"},Pv={defaultState:"Default state",editStateName:"Edit state name",graphState:"Graph state",newStateName:"New state name",openSettings:"Open state settings",saveConfigsWithState:"Save configuration with state",saveConfigsWithStateDesc:"When saving a state, the plugin will automatically saves the config under the same name (cleaned from invalid characters)",saveForDefaultState:"Save for default state",saveForDefaultStateDesc:"Save the current settings as the default state settings",saveForNormalState:"Save for native state",saveForNormalStateDesc:"(Basic graph without $t(plugin.name))",saveForNormalStateTooltip:"Save the current settings as the native graph settings",showGraphState:"Show graph state",startingState:"Starting state",startingStateDesc:"Select which state should be used to initiate the plugin",states:"States",syncDefaultState:"Synchronize default state",syncDefaultStateDesc:"Always open the default state with the current options used by the core plugin without the need to manually save them"},Bv={AdamicAdar:"Adamic Adar",authority:"Authority centrality (from HITS)",backlinksCount:"Number of backlinks",backUniquelinksCount:"Number of unique backlinks",betweenness:"Betweenness centrality",BoW:"Bag of words",closeness:"Closeness centrality",clusteringCoefficient:"Clustering coefficient",coCitations:"Co-citations",constant:"Constant",creationTime:"Time since file creation",degree:"Degree centrality",eccentricity:"Eccentricity in the connected graph",eigenvector:"Eigenvector centrality",filenameLength:"File name length",forwardlinksCount:"Number of forward links",forwardUniquelinksCount:"Number of unique forward links",totallinksCount:"Number of links",totalUniquelinksCount:"Number of unique links",hub:"Hub centrality (from HITS)",Jaccard:"Jaccard similarity",modifiedTime:"Time since last modification",Occurences:"Number of occurences",OtsukaOchiai:"Otsuka-Ochiai coefficient",overlap:"Overlap coefficient",tagsCount:"Number of tags",topological:"Topological propagation",warningUnreliableOS:"This calculation is unreliable and might vary between OS.",sentiment:"Sentiment"},Rv={horizontalLegend:"Horizontal legend",horizontalLegendDesc:"Use a horizontal layout for the legend container (with tags, properties and tags toggle buttons)",howToUse:"How to use",howToUseGradientMaker:"
  • Drag handles to move color stops along the gradient
  • Click a handle to change its color
  • Double-click on the gradient to add a new color stop
  • Backspace, Delete or Clear keys on a handle to remove it
  • Interpolate: creates smooth color transitions between stops
  • Reverse: flips the final palette order (left \u2194 right)
",name:"Name",showPinIcon:"Show pin icon",showPinIconDesc:"When a node is pinned, show an icon in its top right corner to mark its pinned state"},Ov={plugin:_v,beta:Fv,controls:Av,errors:kv,features:Iv,inputs:Lv,notices:Mv,query:Nv,states:Pv,statsFunctions:Bv,UI:Rv};var np={};El(np,{UI:()=>Xv,beta:()=>Uv,controls:()=>Vv,default:()=>Kv,errors:()=>zv,features:()=>Wv,inputs:()=>Hv,notices:()=>jv,plugin:()=>Gv,query:()=>$v,states:()=>qv,statsFunctions:()=>Yv});var Gv={custom:"Personnalis\xE9",dark:"Sombre",default:"D\xE9faut",folder:"Dossier",folders:"Dossiers",filter:"Filtre",nodeName:"Nom de n\u0153ud",info:"Info",light:"Clair",name:"Extended graph",nodes:"N\u0153uds",options:"Options",settings:"Param\xE8tres",source:"Source",target:"Cible",valuePlaceholder:"valeur..."},Uv={beta:"B\xEAta",betaFeatures:"Fonctionnalit\xE9s en b\xEAta",enableCSS:"Activer la personnalisation CSS",enableCSSDesc:"Permet au module d'injecter du CSS dans la vue graphique pour plus de personnalisation. Indiquer le nom de l'extrait CSS \xE0 utiliser.",revertAction:"Annuler la derni\xE8re action",revertActionDesc:"Si le nombre maximal de noeus est atteind, le module tentera d'annuler la derni\xE8re action au lieu de d\xE9sactiver le module"},Vv={add:"Ajouter",apply:"Appliquer",back:"Retour",cancel:"Annuler",delete:"Supprimer",disable:"D\xE9sactiver",disableAll:"Tout d\xE9sactiver",disableInGraphView:"D\xE9sactiver dans la vue graphique",edit:"\xC9diter",enable:"Activer",enableAll:"Tout activer",enabled:"Activ\xE9",enableInGraphView:"Activer dans la vue graphique",export:"Exporter",exportSettings:"Exporter les param\xE8tres",goTo:"Aller \xE0",hide:"Cacher",hideAll:"Cacher tout",hideRow:"Cacher la ligne",import:"Importer",importSettings:"Importer les param\xE8tres",importSettingsAndReload:"Importer les param\xE8tres et recharger",interpolate:"Interpoler",manage:"G\xE9rer",moveUp:"Monter",moveDown:"Descendre",no:"Non",openLegend:"Ouvrir la l\xE9gende (tags, liens, propri\xE9t\xE9s)",orCreateConfig:"Ou cr\xE9er une nouvelle",override:"Remplacer",overrideConfig:"Remplacer une configuration existante",page:"Page",pageCurrent:"Page actuelle",pageFirst:"Premi\xE8re page",pageLast:"Derni\xE8re page",pathRegexPlaceholder:'Entrer un chemin ou un "/regex/"...',resetGraph:"R\xE9initialiser le graphe",resetInGraphView:"R\xE9initialiser dans la vue graphique",reverse:"Inverser",save:"Sauvegarder",selectAllNodes:"S\xE9lectionner tous les n\u0153uds",selectConfigToImport:"S\xE9lectionner une configuration \xE0 importer",selectInvert:"Inverser la s\xE9lection",setConfigName:"D\xE9finir le nom de la configuration",show:"Montrer",showAll:"Montrer tout",toggle:"Basculer",toggleAll:"Basculer tout",toggleAllWithMoreThanOneNode:"Avec plus d'un n\u0153ud",rows:"lignes",yes:"Oui"},zv={uri401:"URL non autoris\xE9e (Code 401) lors de la tentative d'obtention d'une image pour un n\u0153ud. Cela signifie probablement que l'URL est invalide. Aucune image ne sera charg\xE9e et ce message peut \xEAtre ignor\xE9 en toute s\xE9curit\xE9.",issueNeedView:"Il y a eu un probl\xE8me avec le module $t(plugin.name). Veuillez fermer la vue graphique et l'ouvrir \xE0 nouveau.",paletteNameRequired:"Vous devez choisir un nom pour cette palette de couleurs"},Wv={ids:{arrows:"fl\xE8ches",automation:"automatisation",beta:"b\xEAta",display:"affichage",elementsStats:"stats",filter:"filtre",focus:"focus",folders:"dossiers",icons:"ic\xF4nes",images:"images",inputs:"commandes",layers:"couches",localGraph:"graph local",linkTypes:"typage liens",names:"noms",performances:"performances",properties:"propri\xE9t\xE9s",shapes:"formes",tags:"tags",zoom:"zoom"},animateDotsOnLinks:"Anime des points sur les liens",animateDotsOnLinksDesc:"Ajoute des points anim\xE9s sur les liens quand un n\u0153ud est survol\xE9, afin de montrer le flux des informations",animateDotsOnLinksSpeed:"Vitesse d'animation",animateDotsOnLinksSpeedDesc:"Vitesse d'animation des points sur les liens",arrows:"Fl\xE8ches",arrowsDesc:"Personnalise la fa\xE7on dont les fl\xE8ches sont affich\xE9es",arrowsColor:"Couleur personnalis\xE9e",arrowsColorDesc:"Choisissez une couleur personnalis\xE9e pour la couleur des fl\xE8ches",arrowsInvert:"Inverser les fl\xE8ches",arrowsInvertDesc:"Inverse les fl\xE8ches des liens",arrowsFixedSize:"Taille fixe",arrowsFixedSizeDesc:"Emp\xEAche les fl\xE8ches de se r\xE9duire ou de s'aggrandir et leur fait garder une taille constante par rapport aux autres \xE9l\xE9ments du graphe lorsque l'\xE9chelle de celui-ci changements",arrowsFlat:"Fl\xE8ches triangulaires",arrowsFlatDesc:"Utilise des fl\xE8ches triangulaires au lieu de fl\xE8ches courb\xE9es",arrowsOpaque:"Fl\xE8ches opaque",arrowsOpaqueDesc:"Supprime toute transparence des fl\xE8ches pour qu'elles soient compl\xE8tement opaques",arrowsOpaqueAlways:"Toujours",arrowsOpaqueKeepFading:"Seulement sur zoom",arrowsScale:"Taille",arrowsScaleDesc:"Mets \xE0 l'\xE9chelle les fl\xE8ches par un facteur",automation:"Automatisation",autoEnable:"Activation auto",autoEnableDesc:"Active automatiquement le module dans la vue graphique",autoReset:"R\xE9initialise les vues graphiques apr\xE8s changements",autoResetDesc:"R\xE9initialise le module dans les les vues graphiques o\xF9 il est activ\xE9, si les param\xE8tres ont chang\xE9 apr\xE8s avoir ferm\xE9 cet onglet",borderUnresolved:"Bordure des n\u0153uds non-r\xE9solus",borderUnresolvedDesc:"Si la valeur est entre 0 et 1 (exclus), les n\u0153uds non-r\xE9solus seront repr\xE9sent\xE9s par un cercle vide plut\xF4t qu'un disque plein",brightness:"Facteur de luminosit\xE9",brightnessDesc:"Multiplie la luminosit\xE9 des tags, propri\xE9t\xE9s et liens par un facteur en fonction du th\xE8me. N\xE9cessite le rechargement du graphe si vous changez de th\xE8me pendant que le module est activ\xE9.",canonicalizePropertiesWithDataview:"Canonise les propri\xE9t\xE9s (Dataview)",canonicalizePropertiesWithDataviewDesc:"Par d\xE9faut, le module Dataview canonise les noms de propri\xE9t\xE9s, en convertissant tout en minuscules et en supprimant les tirets et les traits de soulignement. Si vous souhaitez utiliser la version non canonis\xE9e des propri\xE9t\xE9s, d\xE9sactivez cette option. Notez que si vous avez deux propri\xE9t\xE9s, dont l'une est la version canonique de la seconde (par exemple CaseSensitive et casesensitive), la version canonique sera ignor\xE9e. Cette option ne s'applique que si vous utilisez le module Dataview.",colorBasedOnDepth:"Colore selon la profondeur (graph local)",colorBasedOnDepthDesc:"Colore les n\u0153uds en fonction de la profondeur relative au n\u0153ud principal du graphe local",depthPalette:"Palette pour la profondeur",depthPaletteDesc:"Choix de la palette de couleur pour la profondeur permettant de colorer les n\u0153uds",disableNodes:"Enl\xE8ve les n\u0153uds",disableNodesDesc:"Quand tous les arcs d'un n\u0153ud sont d\xE9sactiv\xE9s, enl\xE8ve le n\u0153ud du graphe",excludeSourceFolders:"Exclure les dossiers sources",excludeSourceFoldersDesc:"Exclut les liens dont la source se trouve dans certains dossiers (i.e. les liens sortant d'un de ces dossiers)",excludeTargetFolders:"Exclure les dossiers cibles",excludeTargetFoldersDesc:"Exclut les liens dont la cible se trouve dans certains dossiers (i.e. les liens allant d'un de ces dossiers)",excludedFolders:"Dossiers exclus",externalLinks:"Ajouter les URLs externes",externalLinksDesc:"Ajoutez des URL externes en tant que n\u0153uds (pi\xE8ces jointes) dans la vue graphique. Les types de liens vers ces n\u0153uds ne sont pas pris en charge",externalLinkOpen:"Ouvre les URLs externes",externalLinksOpenMode:"Mode d'ouverture pour les URLs externes",externalLinksOpenModeDesc:"S\xE9lectionnez le comportement attendu pour ouvrir l'URL lorsque vous cliquez avec le bouton gauche de la souris sur le n\u0153ud associ\xE9",externalLinksOptions:{none:"Aucun",domain:"Domaine",href:"Href (sans la recherche ni le hash)",domain_and_href:"Href et domaine (2 n\u0153uds)"},externalLinksModes:{web:"Toujours sur le Web",note:"Premi\xE8re note si elle existe",choice:"Affiche les options disponibles"},externalLinksProperties:"Propri\xE9t\xE9s pour les URLs externes",externalLinksPropertiesDesc:"Noms des propri\xE9t\xE9s pouvant \xEAtre utilis\xE9es pour d\xE9terminer si un n\u0153ud d'URL externe doit rediriger vers cette note ou vers la vue Web lorsqu'on clique dessus",noExclusionFilter:"Aucun filtre d'exclusion n'est appliqu\xE9 pour le moment. Ajoutez-en un en dessous",withExclusionFilter:"Les fichiers correspondant aux filtres suivants n'auront pas de liens entrant/sortant dans le graphe :",fadeInElements:"Introduire progressivement de nouveaux \xE9l\xE9ments",fadeInElementsDesc:"Les \xE9l\xE9ments suppl\xE9mentaires ajout\xE9s \xE0 la vue graphique par le module apparaissent progressivement au lieu d'appara\xEEtre soudainement",filters:"Filtres",filtersDesc:"Exclure des fichiers et des dossiers du graphe en fonction d'expressions r\xE9guli\xE8res",focus:"Focus",focusDesc:"Ajoutez des moyens permettant d'identifier facilement les n\u0153uds dans votre graphe",focusFlickerOpenNodes:"Faire clignoter les n\u0153uds ouverts",focusFlickerSearchNodes:"Faire clignoter les n\u0153uds r\xE9sultats de recherche",focusOpenNodes:"Met en valeur les n\u0153uds ouverts",focusOpenNodesDesc:"Ajouter une bordure autour des n\u0153uds associ\xE9s \xE0 un onglet ouvert",focusScale:"Facteur de mise \xE0 l'\xE9chelle",focusScaleDesc:"La taille du n\u0153ud correspondant \xE0 la note active sera mulitpli\xE9e par ce facteur",focusSearchResults:"Met en valeur les n\u0153uds r\xE9sultats de recherche",focusSearchResultsDesc:"Ajoutez une bordure autour des n\u0153uds qui font partie d'un r\xE9sultat de recherche via le plugin de Recherche natif",folders:"Dossiers",foldersDesc:"Affiche des bo\xEEtes englobantes pour les dossiers",folderShowFullPath:"Affiche le chemin complet",folderShowFullPathDesc:"Si cette option est activ\xE9e, le chemin d'acc\xE8s complet du dossier sera affich\xE9 ; si elle est d\xE9sactiv\xE9e, seul le nom du dossier sera affich\xE9",icons:"Ic\xF4nes",iconsDesc:"Utilise des ic\xF4nes ou emojis pour les n\u0153uds du graphe",iconBackgroundColor:"Utiliser la couleur de l'ic\xF4ne pour l'arri\xE8re-plan",iconBackgroundColorDesc:"Utilise la couleur de l'ic\xF4ne \xE0 la place de la couleur par d\xE9faut du n\u0153ud pour l'arri\xE8re-plan. Pour les emojis, la couleur moyenne sera utilis\xE9e.",iconBackgroundOpacity:"Opacit\xE9 de l'arri\xE8re-plan",iconBackgroundOpacityDesc:"D\xE9finissez l'opacit\xE9 du n\u0153ud lui-m\xEAme derri\xE8re l'ic\xF4ne. Mettez \xE0 0 pour supprimer l'arri\xE8re-plan.",iconBorderWidth:"\xC9paisseur de bordure",iconBorderWidthDesc:"Ajoutez une bordure au n\u0153ud autour de l'ic\xF4ne de la largeur sp\xE9cifi\xE9e. D\xE9finissez la valeur sur 0 pour supprimer la bordure.",iconProperties:"Propri\xE9t\xE9s pour l'ic\xF4ne",iconPropertiesDesc:"Cl\xE9s (noms) des propri\xE9t\xE9s utilis\xE9es pour r\xE9cup\xE9rer l'ic\xF4ne de la note. Les valeurs support\xE9es peuvent \xEAtre soit des emojis Unicode, soit des identifiants d'ic\xF4nes provenant de Lucide.",iconPropertiesAdd:"Ajouter une propri\xE9t\xE9 pour ic\xF4ne",iconUsePlugin:'Utilise "Iconic" ou "Iconize"',iconUsePluginDesc:`Utilise les ic\xF4nes appliqu\xE9s dans l'explorateur de fichier via les modules communautaires "Iconic" ou "Iconize"`,iconUsePluginColor:'Utilise "Iconic" ou "Iconize" pour les couleurs',iconUsePluginColorDesc:`Utilise la couleur des ic\xF4nes appliqu\xE9s dans l'explorateur de fichier via "Iconic" ou "Iconize"`,iconUseParentIcon:"Utilise l'ic\xF4ne d'un dossier parent",iconUseParentIconDesc:`Si aucun ic\xF4ne n'est appliqu\xE9 sur le fichier lui-m\xEAme avec "Iconic" ou "Iconize", le module essaiera d'en trouver un sur un dossier parent`,image:"Image",images:"Image",imageDesc:"Affiche les images dans les n\u0153uds",imagesAllowExternal:"Autorise les images web",imagesAllowExternalDesc:"Autorise le chargement d'images externes via les protocoles http: et https:",imagesAllowExternalLocal:"Autorise les images externes au coffre",imagesAllowExternalLocalDesc:"Autorise le chargement d'images externes via les protocoles file: and app:",imagesFromProperty:"Depuis une propri\xE9t\xE9",imagesFromPropertyDesc:"Affiche une image r\xE9cup\xE9r\xE9e depuis une propri\xE9t\xE9 des m\xE9tadonn\xE9es",imagesFromEmbeds:"Depuis une int\xE9gration",imagesFromEmbedsDesc:`Affiche une image r\xE9cup\xE9r\xE9e parmi les int\xE9grations de la note. L'option "Depuis une propri\xE9t\xE9" est prioritaire.`,imagesForAttachments:"Pour les pi\xE8ces jointes",imagesForAttachmentsDesc:"Affiche une image sur les n\u0153uds des pi\xE8ces jointes",imageProperties:"Priori\xE9t\xE9s pour les images",imagePropertiesDesc:"Noms des propri\xE9t\xE9s utilis\xE9es pour trouver une image pour le n\u0153ud",imagePropertiesAdd:"Ajouter une propri\xE9t\xE9 pour image",imageBorderWidth:"\xC9paisseur de la bordure (%)",imageBorderWidthDesc:"Pourcentage de la couleur de fond du n\u0153ud qui sera visible comme une border",ignoreInlineLinks:"Ignorer les liens int\xE9gr\xE9s",ignoreInlineLinksDesc:"Les liens d\xE9finis dans la note et en dehors du frontmatter ne seront pas ajout\xE9s au graphique",interactives:{alreadyExists:"Existe d\xE9j\xE0",arcsAdd:"Ajouter les arcs",arcsAddPropertyDesc:"Ajouter des arcs autour des n\u0153uds pour visualiser les valeurs des propri\xE9t\xE9s",arcsAddTagDesc:"Ajouter des arcs autour des n\u0153uds pour visualiser les valeurs des tags",arcsSpread:"\xC9tendre les arcs",arcsSpreadDesc:"\xC9tend les arcs autour des n\u0153uds pour remplir l'espace disponible",arcWeight:"Pond\xE9rer les longueurs des arcs",arcWeightDesc:"Utilisez le nombre de fois o\xF9 la valeur est trouv\xE9e pour d\xE9terminer la longueur des arcs (n\xE9cessite l'activation de l'option \xAB \xC9tendre les arcs \xBB)",colorLinks:"Coloriser les liens",colorLinksDesc:"Ajouter des couleurs aux liens rendus",colorLinkTypeLabel:"Colorer les libell\xE9s",colorLinkTypeLabelDesc:"Colore le libell\xE9 du type (texte) avec la m\xEAme couleur que le lien",curvedFactor:"Facteur de courbure",curvedFactorDesc:"Une valeur n\xE9gative inversera la forme, une valeur absolue plus \xE9lev\xE9e augmentera la courbure, tandis qu'une valeur proche de 0 l'aplatira",curvedLinks:"Liens courb\xE9s",curvedLinksDesc:"Utilise des liens courb\xE9s au lieu de lignes droites",displayLinkTypeLabel:"Affiche le libell\xE9",displayLinkTypeLabelDesc:"Afficher le libell\xE9 du type au-dessus du lien",linkTypes:"Typage des liens",linkTypesDesc:"Affiche et filtre les liens par type",noneTypeID:"ID pour les sans-type",noneTypeIDDesc:"L'identifiant qui sera donn\xE9 is aucune valeur n'est trouv\xE9e pour ",palette:"Palette de couleur",paletteDesc:"Choix de la palette de couleur pour ",paletteMatplotlibDesc:"Ces palettes viennent de matplotlib. Vous pouvez en apprendre plus ici: ",palettePickGradient:"Choix du d\xE9grad\xE9",properties:"Propri\xE9t\xE9s",propertiesDesc:"Affiche et filtre les n\u0153uds par propri\xE9t\xE9s",property:"Propri\xE9t\xE9",propertyDesc:"Affiche et filtre la propri\xE9t\xE9 ",propertyAlreadyExists:"Cette propri\xE9t\xE9 existe d\xE9j\xE0",propertyReservedFolders:"Cette valeur de propri\xE9t\xE9 est r\xE9serv\xE9e pour les dossiers",propertyReservedLinks:"Cette valeur de propri\xE9t\xE9 est r\xE9serv\xE9e pour les liens",propertyReservedTags:"Cette valeur de propri\xE9t\xE9 est r\xE9serv\xE9e pour les tags",selection:"S\xE9lection",selectionDesc:"S\xE9lectionnez quelles valeurs devraient \xEAtre prises en compte par le module",selectionFor:"S\xE9lection pour",specificColors:"Couleurs sp\xE9cifiques",specificColorsDesc:"Choisissez des couleurs sp\xE9cifiques rempla\xE7ant la palette",tags:"Tags",tagsDesc:"Affiche et filtre les n\u0153uds par tags"},layers:"Calques",layersDesc:"Regroupe les n\u0153uds par calques et ajuste leur opacit\xE9",layersDisplayLabels:"Afficher les \xE9tiquettes dans l'interface utilisateur",layersDisplayLabelsDesc:"Si un calque est associ\xE9 \xE0 une \xE9tiquette, par exemple `4_cave`, ajoute l'\xE9tiquette \xE0 l'interface utilisateur.",layersInfoDataview:"Si vous modifiez les niveaux et les \xE9tiquettes des couches \xE0 partir de ce volet, les propri\xE9t\xE9s en ligne de Dataview ne seront pas mises \xE0 jour",layersInfoLevelNotFromID:"Le niveau de ce calque n'est pas bas\xE9 sur la valeur de la propri\xE9t\xE9",layersNumber:"Nombre max de calques",layersNumberDesc:"D\xE9finissez le nombre maximal de calques actives qui seront affich\xE9s dans la vue graphique",layersOpacityPlaceholder:"Opacit\xE9",layersOrder:"Ordre",layersOrderDesc:"Choisissez si les calques doivent \xEAtre consid\xE9r\xE9s dans un ordre croissant ou d\xE9croissant",layerProperties:"Propri\xE9t\xE9s pour les calques",layerPropertiesDesc:"Noms des propri\xE9t\xE9s utilis\xE9es pour trouver un calque pour le n\u0153ud",layerPropertiesAdd:"Ajouter une propri\xE9t\xE9 pour calque",layersOpacityIfNoLayer:"Opacit\xE9 des n\u0153uds sans calque",layersOpacityIfNoLayerDesc:"Si un n\u0153ud n'est pas associ\xE9 \xE0 un calque, il utilisera cette opacit\xE9 (mettez \xE0 0 pour masquer)",layersUseCustomOpacity:"Utiliser l'opacit\xE9 personnalis\xE9e",layersUseCustomOpacityDesc:"D\xE9finissez des valeurs d'opacit\xE9 fixes (0-1) pour certains calques. S'ils sont affich\xE9s, ils le seront toujours avec cette opacit\xE9, les autres opacit\xE9s seront interpol\xE9es.",linksAllowMultipleTypes:"Dessine plusieurs types",linksAllowMultipleTypesDesc:"Permet de dessiner plusieurs types de liens entre deux n\u0153uds",linksOutline:"Contourer les liens",linksOutlineDesc:"Ajoutez un contour fin aux liens et aux fl\xE8ches (lorsqu'ils sont opaques)",linksSameColorAsNode:"Colorer les liens en fonction de la source",linksSameColorAsNodeDesc:"Utilise la couleur du n\u0153ud source pour colorer les liens",linksFeatureRequired:"La fonctionnalit\xE9 des liens doit \xEAtre activ\xE9e.",localGraph:"Graphe local",localGraphDesc:"Personnalisez votre graphe local avec des param\xE8tres sp\xE9cifiques \xE0 cette vue",localGraphCurrentNodeColor:"Couleur du n\u0153ud actuel",localGraphCurrentNodeColorDesc:"Couleur du n\u0153ud principal du graphe local",localGraphCurrentNodeSize:"Taille du n\u0153ud actuel",localGraphCurrentNodeSizeDesc:"Taille de base du n\u0153ud principal du graphe local. D\xE9faut : 100, minimum : 10.",localGraphCurrentNodeShape:"Forme du n\u0153ud actuel",localGraphCurrentNodeShapeDesc:"Forme du n\u0153ud principal du graphe local",pinnedNodes:"N\u0153uds \xE9pingl\xE9s",pinNode:"\xC9pingler le n\u0153ud",unpinNode:"D\xE9s\xE9pingler le n\u0153ud",unpinAllNodes:"D\xE9s\xE9pingler tous les n\u0153uds",pinMultipleNodes:"\xC9pingler plusieurs n\u0153uds",pinMultipleShape:"Forme",pinMultipleGap:"Espace entre les n\u0153uds \xE9pingl\xE9s",pinMultipleCenter:"Centre",pinMultipleGridSize:"Nombre de colonnes",pinMultipleGridSizeDesc:'Les valeurs peuvent \xEAtre "N" (une seule ligne), "auto" (grille carr\xE9e) ou un entier positif',pinSelectedNodes:"\xC9pingler les n\u0153uds s\xE9lectionn\xE9s",unpinSelectedNodes:"D\xE9s\xE9pingler tous les n\u0153uds s\xE9lectionn\xE9s",size:"Taille",elementsStats:"Stastiques des n\u0153uds et liens",elementsStatsDesc:"Choisissez comment couleurs/tailles des n\u0153uds et des liens sont calcul\xE9es",linkSizesFunction:"Fonction pour la taille des liens",linkSizesFunctionDesc:"S\xE9lectionne comment le moteur du graphe doit calculer l'\xE9paisseur des liens",linkColorsFunction:"Fonction pour la couleur des liens",linkColorsFunctionDesc:"S\xE9lectionne comment le moteur du graphe doit calculer la couleur des liens",linkColorsPaletteDesc:"Choisissez la palette de couleur pour les liens",names:"Noms des n\u0153uds",namesDesc:"Personnalise l'affichage des noms des n\u0153uds",namesEllipsisPlaceholder:"\u2026",namesNumberOfCharacters:"Nombre de caract\xE8res",namesNumberOfCharactersDesc:"Nombre maximum de caract\xE8res \xE0 afficher pour le nom du n\u0153ud. Laissez vide pour afficher le nom complet. Choisissez le(s) caract\xE8re(s) \xE0 afficher si le nom est tronqu\xE9.",namesShowOnlyFileName:"Nom de fichier",namesShowOnlyFileNameDesc:"Afficher seulement le nom de fichier sans le chemin",namesNoExtension:"Sans extension",namesNoExtensionDesc:"Afficher le nom de fichier sans l'extension",namesUseProperties:"Utiliser des propri\xE9t\xE9s",namesUsePropertiesDesc:"Utiliser des propri\xE9t\xE9s pour le nom du n\u0153ud plut\xF4t que le nom de fichier",namesUsePropertiesAdd:"Ajouter une propri\xE9t\xE9 pour le nom",namesBackground:"Ajoute un fond",namesBackgroundDesc:"Ajoute un fond au nom du n\u0153ud pour le rendre plus lisible en cachant les \xE9l\xE9ments derri\xE8re",namesShowWhenNeighborHighlighted:"Toujours afficher lorsque le curseur passe sur un n\u0153ud voisin",namesShowWhenNeighborHighlightedDesc:"Affiche le texte m\xEAme lorsque le zoom est compl\xE8tement r\xE9duit si un n\u0153ud voisin connect\xE9 est mis en surbrillance",namesVerticalOffset:"D\xE9calage vertical",namesVerticalOffsetDesc:"D\xE9calage vertical du texte. Une valeur de 15 est recommand\xE9e pour \xE9viter un chevauchement avec la fl\xE8che",namesDynamicVerticalOffset:"D\xE9calage vertical dynamique",namesDynamicVerticalOffsetDesc:"Adapte dynamiquement la position verticale du texte pour \xE9viter tout chevauchement avec les \xE9l\xE9ments du n\u0153ud (fl\xE8ches, arcs, forme)",noLineHighlight:"Pas de surlignage de ligne",noLineHighlightDesc:"Lorsque vous survolez un n\u0153ud, ne met pas en surbrillance les liens connect\xE9s",nodeSizesFunction:"Fonction pour la taille des n\u0153uds",nodeSizesFunctionDesc:"S\xE9lectionne comment le moteur du graphe doit calculer la taille des n\u0153uds",nodeSizeProperties:"Propri\xE9t\xE9s pour la taille d'un n\u0153ud",nodeSizePropertiesDesc:"Noms des propri\xE9t\xE9s utilis\xE9es pour sp\xE9cifier la taille d'un n\u0153ud. Une propri\xE9t\xE9 doit \xEAtre de type nombre. Par d\xE9faut, la taille est de 100.",nodeSizePropertiesAdd:"Ajouter une propri\xE9t\xE9 pour taille de n\u0153ud",nodeSizesRange:"Intervalle de la taille des n\u0153uds",nodeSizesRangeDesc:"Facteurs minimum et maximum (entre 0,1 et 5) qui seront utilis\xE9s pour mettre \xE0 l'\xE9chelle la taille des n\u0153uds",nodeColorsFunction:"Fonction pour la couleur des n\u0153uds",nodeColorsFunctionDesc:"\xE9lectionne comment le moteur du graphe doit calculer la couleur des n\u0153uds",nodeColorsPaletteDesc:"Choisissez la palette de couleur pour les n\u0153uds",nodeStatsDirection:"Direction du graphe pour calculer les statistiques des n\u0153uds",nodeStatsDirectionDesc:"Lors du calcul des statistiques des n\u0153uds, utilisez le graphe dirig\xE9 par d\xE9faut, le graphe invers\xE9 (les n\u0153uds sources deviennent des cibles et vice versa), ou le graphe non-dirig\xE9 (aucun effet pour les m\xE9triques dirig\xE9es, telles que le nombre de r\xE9troliens)",nodeStatsDirectionNormal:"Dirig\xE9 par d\xE9faut",nodeStatsDirectionReversed:"Invers\xE9",nodeStatsDirectionUndirected:"Non-dirig\xE9",nodeStatsRecomputeOnGraphChange:"Recalculer quand le graphe change",nodeStatsRecomputeOnGraphChangeDesc:"Recalcule les m\xE9triques \xE0 chaque fois que les donn\xE9es du graphique changent. Cela peut entra\xEEner une baisse des performances.",openInNewTab:"Ouvre les n\u0153uds dans un nouvel onglet",openInNewTabDesc:"Toujours ouvrir les n\u0153uds dans un nouvel onglet lorsque vous cliquez dessus avec le bouton gauche de la souris",otherDisplay:"Autres options d'affichage",performance:"Performances",performanceDelay:"D\xE9lai d'initialisation (millisecondes)",performanceDelayDesc:"Il peut \xEAtre n\xE9cessaire d'attendre quelques fractions de secondes avant d'initialiser le module dans une vue graphique \xE0 cause de m\xE9caniques asynchrones",performanceMaxNodes:"Nombre maximum de n\u0153uds",performanceMaxNodesDesc:"Si le graphe contient plus de n\u0153uds que cette valeur, le module sera d\xE9sactiv\xE9 dans la vue graphique",recursive:"R\xE9cursif",removeSources:"D\xE9sactiver les sources",removeSourcesDesc:"D\xE9sactive les sources des liens lorsque ceux-ci sont d\xE9sactiv\xE9s",removeTargets:"D\xE9sactiver les cibles",removeTargetsDesc:"D\xE9sactive les cibles des liens lorsque ceux-ci sont d\xE9sactiv\xE9s",shape:"Forme",shapes:"Formes",shapesDesc:"Utilise diff\xE9rentes formes pour les n\u0153uds",shapePick:"Choisissez une forme",shapesNames:{circle:"cercle",square:"carr\xE9",triangle:"triangle",diamond:"diamand",pentagon:"pentagone",hexagon:"hexagone",octagon:"octogone",decagon:"d\xE9cagone",star4:"\xE9toile (4)",star5:"\xE9toile (5)",star6:"\xE9toile (6)",star8:"\xE9toile (8)",star10:"\xE9toile (10)",polygon:"polygone",starburst:"starburst",grid:"grille",line:"ligne",unknown:"inconnu"},svgScreenshotArcs:"Affiche les arcs (tags et/ou propri\xE9t\xE9s)",svgScreenshotCopy:"Capture d'\xE9cran CVG",svgScreenshotCopyCode:"Copie le code SVG dans le presse-papier",svgScreenshotCopyImage:"Copie l'image SVG dans le presse-papier",svgScreenshotCurvedLinks:"Utiliser les liens courbes",svgScreenshotNodeNames:"Afficher les noms des n\u0153uds",svgScreenshotNodeShapes:"Utiliser les formes des n\u0153uds",svgScreenshotOptions:"Options de la capture d'\xE9cran SVG",svgScreenshotVisibleArea:"Exporter seulement la zone visible",zoomOnNode:"Zoom sur le n\u0153ud",zoomScale:"Mise \xE0 l'\xE9chelle du zoom",zoomScaleDesc:"Nouvelle mise \xE9chelle de la vue graphique lorsqu'un zoom est r\xE9alis\xE9 sur un n\u0153ud"},Hv={inputs:"Contr\xF4les",leftClickIncompatibility:"Plusieurs entr\xE9es utilisent le m\xEAme modificateur pour le clic gauche ; seule l'une d'entre elles fonctionnera",pinHotkey:"\xC9pingler un n\u0153ud (clic droit)",pinHotkeyDesc:"Lorsque vous cliquez avec le bouton droit sur un n\u0153ud tout en maintenant la touche sp\xE9cifi\xE9e enfonc\xE9e, cela permet d'\xE9pingler le n\u0153ud",radialMenu:"Activer le menu contextuel radial sur les n\u0153uds",radialMenuDesc:"Permet d'afficher un menu contextuel radial sur les n\u0153uds en faisant un clic droit tout en maintenant la touche sp\xE9cifi\xE9e enfonc\xE9e. Le menu affichera des options suppl\xE9mentaires provenant du module $t(plugin.name).",rightClickIncompatibility:"Plusieurs entr\xE9es utilisent le m\xEAme modificateur pour le clic droit ; seule l'une d'entre elles fonctionnera",selected:"s\xE9lectionn\xE9es",selectHotkey:"S\xE9lectionner un n\u0153ud (clic gauche)",selectHotkeyDesc:"Lorsque vous cliquez avec le bouton gauche de la souris sur un n\u0153ud tout en maintenant la touche sp\xE9cifi\xE9e enfonc\xE9e, cela permet d'\xE9pingler le n\u0153ud",selectionMode:"Mode de s\xE9lection",selectionModeAddTooltip:"Ajoute \xE0 la s\xE9lection actuelle",selectionModeIntersectTooltip:"Intersecte avec la s\xE9lection actuelle",selectionModeReplaceTooltip:"Remplace la s\xE9lection actuelle",selectionModeSubtractTooltip:"Soustrait \xE0 la s\xE9lection actuelle"},jv={changeInSettings:"Vous pouvez changer cette valeur dans les r\xE9glages",disabled:"d\xE9sactiv\xE9",graphAnalysisPluginRequired:"Le module communautaire Graph Analysis doit \xEAtre activ\xE9 pour utiliser cette fonction",invalidCharacter:"Caract\xE8re invalide",nlpPluginRequired:"Le module communautaire NLP doit \xEAtre activ\xE9 pour utiliser cette fonction",nodeLimiteExceeded:"Tentative de g\xE9rer trop de n\u0153uds",nodeLimitIs:"La limite est",nodeStatSizeFailed:"Echec lors du calcul des statistiques pour les tailles des n\u0153uds",nodeStatColorFailed:"Echec lors du calcul des statistiques pour les couleurs des n\u0153uds",linkStatSizeFailed:"Echec lors du calcul des statistiques pour les \xE9paisseurs des liens",linkStatColorFailed:"Echec lors du calcul des statistiques pour les couleurs des liens",functionToDefault:"La fonction par d\xE9faut est utilis\xE9e \xE0 la place.",stateDeleted:"L'\xE9tat a \xE9t\xE9 supprim\xE9",stateRenamed:"L'\xE9tat a \xE9t\xE9 renomm\xE9",stateSaved:"L'\xE9tat a \xE9t\xE9 sauvegard\xE9",normalStateSave:"Les options du moteur ont \xE9t\xE9 enregistr\xE9es pour l'\xE9tat normal",svgCopied:"SVG copi\xE9 dans le presse-papier"},$v={AND:"ET",ANDFilterDesc:"Conserver les n\u0153uds avec toutes les valeurs s\xE9lectionn\xE9es",OR:"OU",ORFilterDesc:"Conserver les n\u0153uds contenant au moins une des valeurs s\xE9lectionn\xE9es",combinationLogic:"Logique combinatoire",editShapeQuery:"\xC9diter la requ\xEAte pour la forme",excludeRegex:"Expression r\xE9guli\xE8re d'exclusion",excludeRegexDesc:"Utilisez des expressions r\xE9guli\xE8res pour exclure automatiquement certaines valeurs. Commencez une nouvelle ligne pour une nouvelle expression r\xE9guli\xE8re.",setShapeQueryFor:"Cr\xE9er la requ\xEAte de forme pour",files:"Fichiers",logicKey:{contains:"contient",containsNot:"ne contient pas",is:"est",isNot:"n'est pas",containsRegex:"contient regex",containsRegexNot:"ne contient pas regex",matchesRegex:"correspond regex",matchesRegexNot:"ne correspond pas regex",isEmpty:"est vide",isEmptyNot:"n'est pas vide"},matchingFiles:"Fichiers correspondants",match:"correspondance",matches:"correspondances",query:"Requ\xEAte",rules:"R\xE8gles",source:{all:"Tout",tag:"Tags",link:"Liens",property:"Propri\xE9t\xE9",file:"Fichier",folder:"Dossier",folderRec:"Dossier et sous-dossiers",path:"Chemin"},viewMatches:"Voire les correspondances"},qv={defaultState:"\xC9tat par d\xE9faut",editStateName:"Modifier le nom de l'\xE9tat",graphState:"\xC9tat du graphe",newStateName:"Nom du nouvel \xE9tat",openSettings:"Afficher les \xE9tats",saveConfigsWithState:"Enregistrer la configuration avec l'\xE9tat",saveConfigsWithStateDesc:"Lorsque vous enregistrez un \xE9tat, le plugin enregistre automatiquement la configuration sous le m\xEAme nom (apr\xE8s avoir supprim\xE9 les caract\xE8res non valides)",saveForDefaultState:"Sauvegarder pour l'\xE9tat par d\xE9faut",saveForDefaultStateDesc:"Sauvegarde les r\xE9glages actuels comme les r\xE9glages pour l'\xE9tat par d\xE9faut",saveForNormalState:"Sauvegarder pour l'\xE9tat natif",saveForNormalStateDesc:"(Graphe de base sans $t(plugin.name))",saveForNormalStateTooltip:"Sauvegarde les r\xE9glages actuels comme les r\xE9glages pour l'\xE9tat natif",showGraphState:"Affiche l'\xE9tat du graphe",startingState:"\xC9tat de d\xE9part",startingStateDesc:"S\xE9lectionne quel \xE9tat doit \xEAtre utilis\xE9 pour initialiser le module",states:"\xC9tats",syncDefaultState:"Synchroniser l'\xE9tat par d\xE9faut",syncDefaultStateDesc:"Toujours ouvrir l'\xE9tat par d\xE9faut avec les options actuellement utilis\xE9es par le plugin principal sans avoir \xE0 les enregistrer manuellement"},Yv={AdamicAdar:"Adamic Adar",authority:"Authority centrality (from HITS)",backlinksCount:"Nombre de r\xE9troliens",backUniquelinksCount:"Nombre de r\xE9troliens uniques",betweenness:"Betweenness centrality",BoW:"Bag of Words",closeness:"Closeness centrality",clusteringCoefficient:"Clustering coefficient",coCitations:"Co-citations",constant:"Constante",creationTime:"Dur\xE9e depuis la cr\xE9ation du fichier",degree:"Degree centrality",eccentricity:"Eccentricity in the connected graph",eigenvector:"Eigenvector centrality",filenameLength:"Longueur du nom de fichier",forwardlinksCount:"Nombre de liens sortants",forwardUniquelinksCount:"Nombre de liens sortants uniques",totallinksCount:"Nombre de liens",totalUniquelinksCount:"Nombre de liens uniques",hub:"Hub centrality (from HITS)",Jaccard:"Jaccard similarity",modifiedTime:"Temps depuis la derni\xE8re modification",Occurences:"Number of occurences",OtsukaOchiai:"Otsuka-Ochiai coefficient",overlap:"Overlap coefficient",tagsCount:"Nombre de tags",topological:"Propagation topologique",warningUnreliableOS:"Ce calcul n'est pas fiable et peut varier selon l'OS.",sentiment:"Sentiment"},Xv={horizontalLegend:"L\xE9gende horizontale",horizontalLegendDesc:"Utilise une disposition horizontale pour le conteneur de l\xE9gende (avec des balises, des propri\xE9t\xE9s et des boutons de basculement des balises)",howToUse:"Comment utiliser",howToUseGradientMaker:"
  • Faites glisser les poign\xE9es pour d\xE9placer les arr\xEAts de couleur le long du d\xE9grad\xE9
  • Cliquez sur une poign\xE9e pour changer sa couleur
  • Double-cliquez sur le d\xE9grad\xE9 pour ajouter un nouveau point de couleur
  • Appuyez sur les touches Retour arri\xE8re, Supprimer ou Effacer sur une poign\xE9e pour la supprimer
  • Interpolate: cr\xE9e des transitions de couleurs fluides entre les arr\xEAts
  • Inverser: inverse l'ordre final de la palette (gauche \u2194 droite)
",name:"Nom",showPinIcon:"Afficher l'ic\xF4ne d'\xE9pingle",showPinIconDesc:"Lorsqu'un n\u0153ud est \xE9pingl\xE9, afficher une ic\xF4ne dans son coin sup\xE9rieur droit pour indiquer son \xE9tat \xE9pingl\xE9"},Kv={plugin:Gv,beta:Uv,controls:Vv,errors:zv,features:Wv,inputs:Hv,notices:jv,query:$v,states:qv,statsFunctions:Yv,UI:Xv};var op={};El(op,{UI:()=>ax,beta:()=>Qv,controls:()=>Jv,default:()=>lx,errors:()=>ex,features:()=>tx,inputs:()=>rx,notices:()=>ix,plugin:()=>Zv,query:()=>sx,states:()=>nx,statsFunctions:()=>ox});var Zv={custom:"\u81EA\u5B9A\u4E49",dark:"\u6697\u8272",default:"\u9ED8\u8BA4",folder:"\u6587\u4EF6\u5939",folders:"\u6587\u4EF6\u5939",filter:"\u7B5B\u9009\u5668",nodeName:"\u8282\u70B9\u540D\u79F0",info:"\u4FE1\u606F",light:"\u4EAE\u8272",name:"Extended Graph \u589E\u5F3A\u56FE\u8C31",nodes:"\u8282\u70B9",options:"\u9009\u9879",settings:"\u8BBE\u7F6E",source:"\u6765\u6E90",target:"\u76EE\u6807",valuePlaceholder:"\u8F93\u5165\u503C..."},Qv={beta:"Beta",betaFeatures:"Beta \u529F\u80FD",enableCSS:"\u542F\u7528\u81EA\u5B9A\u4E49 CSS",enableCSSDesc:"\u5141\u8BB8\u63D2\u4EF6\u5C06\u81EA\u5B9A\u4E49 CSS \u6CE8\u5165\u5173\u7CFB\u56FE\u8C31\u4EE5\u8FDB\u884C\u8FDB\u4E00\u6B65\u5B9A\u5236\u3002\u518D\u6B21\u8F93\u5165\u4F7F\u7528\u7684 CSS \u7247\u6BB5\u540D\u79F0\u3002",revertAction:"\u64A4\u9500\u64CD\u4F5C",revertActionDesc:"\u5F53\u8FBE\u5230\u6700\u5927\u8282\u70B9\u6570\u65F6\uFF0C\u5C1D\u8BD5\u64A4\u9500\u6700\u540E\u64CD\u4F5C\uFF08\u800C\u975E\u76F4\u63A5\u7981\u7528\u63D2\u4EF6\uFF09"},Jv={add:"\u6DFB\u52A0",apply:"\u5E94\u7528",back:"\u8FD4\u56DE",cancel:"\u53D6\u6D88",delete:"\u5220\u9664",disable:"\u7981\u7528",disableAll:"\u5168\u90E8\u7981\u7528",disableInGraphView:"\u5728\u5173\u7CFB\u56FE\u8C31\u4E2D\u7981\u7528",edit:"\u7F16\u8F91",enable:"\u542F\u7528",enableAll:"\u5168\u90E8\u542F\u7528",enabled:"\u5DF2\u542F\u7528",enableInGraphView:"\u5728\u5173\u7CFB\u56FE\u8C31\u4E2D\u542F\u7528",export:"\u5BFC\u51FA",exportSettings:"\u5BFC\u51FA\u8BBE\u7F6E",goTo:"\u8DF3\u8F6C\u5230",hide:"\u9690\u85CF",hideAll:"\u5168\u90E8\u9690\u85CF",hideRow:"\u9690\u85CF\u884C",import:"\u5BFC\u5165",importSettings:"\u5BFC\u5165\u8BBE\u7F6E",importSettingsAndReload:"\u5BFC\u5165\u8BBE\u7F6E\u5E76\u91CD\u65B0\u52A0\u8F7D",interpolate:"\u63D2\u503C",manage:"\u7BA1\u7406",moveUp:"\u4E0A\u79FB",moveDown:"\u4E0B\u79FB",no:"\u5426",openLegend:"\u6253\u5F00\u56FE\u4F8B (\u6807\u7B7E\u3001\u94FE\u63A5\u3001\u5C5E\u6027)",orCreateConfig:"\u6216\u521B\u5EFA\u65B0\u914D\u7F6E",override:"\u8986\u76D6",overrideConfig:"\u8986\u76D6\u73B0\u6709\u914D\u7F6E",page:"\u9875\u9762",pageCurrent:"\u5F53\u524D\u9875",pageFirst:"\u9996\u9875",pageLast:"\u672B\u9875",pathRegexPlaceholder:'\u8F93\u5165\u8DEF\u5F84\u6216\u6B63\u5219\u8868\u8FBE\u5F0F\uFF08"/regex/"\uFF09...',resetGraph:"\u91CD\u7F6E\u56FE\u8C31",resetInGraphView:"\u5728\u5173\u7CFB\u56FE\u8C31\u4E2D\u91CD\u7F6E",reverse:"\u53CD\u8F6C",save:"\u4FDD\u5B58",selectConfigToImport:"\u9009\u62E9\u8981\u5BFC\u5165\u7684\u914D\u7F6E",setConfigName:"\u8BBE\u7F6E\u914D\u7F6E\u540D\u79F0",show:"\u663E\u793A",showAll:"\u5168\u90E8\u663E\u793A",toggle:"\u5207\u6362",toggleAll:"\u5207\u6362\u6240\u6709\u6587\u4EF6\u5939",toggleAllWithMoreThanOneNode:"\u542B\u6709\u5927\u4E8E1\u4E2A\u8282\u70B9\u6570",rows:"\u884C",yes:"\u662F"},ex={uri401:"\u83B7\u53D6\u8282\u70B9\u56FE\u50CF\u65F6\u9047\u5230 URL \u672A\u6388\u6743\u9519\u8BEF\uFF08\u4EE3\u7801401\uFF09\uFF1A\u8FD9\u53EF\u80FD\u610F\u5473\u7740URL\u65E0\u6548\u3002\u56FE\u50CF\u5C06\u4E0D\u4F1A\u52A0\u8F7D\uFF0C\u53EF\u4EE5\u5B89\u5168\u5FFD\u7565\u6B64\u6D88\u606F\u3002",issueNeedView:"\u63D2\u4EF6 $t(plugin.name) \u51FA\u73B0\u95EE\u9898\u3002\u8BF7\u5173\u95ED\u5173\u7CFB\u56FE\u8C31\u540E\u91CD\u65B0\u6253\u5F00\u3002",paletteNameRequired:"\u9700\u8981\u4E3A\u6B64\u989C\u8272\u6620\u5C04\u9009\u62E9\u540D\u79F0"},tx={ids:{arrows:"\u7BAD\u5934",automation:"\u81EA\u52A8\u5316",beta:"beta",display:"\u663E\u793A",elementsStats:"\u7EDF\u8BA1",filter:"\u8FC7\u6EE4\u5668",focus:"\u805A\u7126",folders:"\u6587\u4EF6\u5939",icons:"\u56FE\u6807",images:"\u56FE\u50CF",inputs:"\u8F93\u5165",layers:"\u56FE\u5C42",localGraph:"\u5C40\u90E8\u56FE\u8C31",linkTypes:"\u94FE\u63A5",names:"\u8282\u70B9\u540D\u79F0",performances:"\u6027\u80FD",properties:"\u5C5E\u6027",shapes:"\u5F62\u72B6",tags:"\u6807\u7B7E",zoom:"\u805A\u7126"},animateDotsOnLinks:"\u5728\u94FE\u63A5\u4E0A\u663E\u793A\u5706\u70B9\u52A8\u753B",animateDotsOnLinksDesc:"\u5F53\u9F20\u6807\u60AC\u505C\u5728\u8282\u70B9\u4E0A\u65F6\uFF0C\u5728\u94FE\u63A5\u4E0A\u663E\u793A\u5706\u70B9\u52A8\u753B\u4EE5\u5C55\u793A\u4FE1\u606F\u6D41\u5411",animateDotsOnLinksSpeed:"\u52A8\u753B\u901F\u5EA6",animateDotsOnLinksSpeedDesc:"\u94FE\u63A5\u4E0A\u5706\u70B9\u52A8\u753B\u7684\u901F\u5EA6",arrows:"\u7BAD\u5934",arrowsDesc:"\u81EA\u5B9A\u4E49\u7BAD\u5934\u663E\u793A\u65B9\u5F0F",arrowsColor:"\u81EA\u5B9A\u4E49\u989C\u8272",arrowsColorDesc:"\u4E3A\u94FE\u63A5\u7BAD\u5934\u9009\u62E9\u81EA\u5B9A\u4E49\u989C\u8272",arrowsInvert:"\u53CD\u8F6C\u7BAD\u5934",arrowsInvertDesc:"\u53CD\u8F6C\u94FE\u63A5\u4E0A\u7BAD\u5934\u7684\u65B9\u5411",arrowsFixedSize:"\u56FA\u5B9A\u5927\u5C0F",arrowsFixedSizeDesc:"\u7F29\u653E\u65F6\u4F7F\u7BAD\u5934\u4FDD\u6301\u56FA\u5B9A\u5927\u5C0F",arrowsFlat:"\u4E09\u89D2\u5F62\u7BAD\u5934",arrowsFlatDesc:"\u4F7F\u7528\u4E09\u89D2\u5F62\u7BAD\u5934\u66FF\u4EE3\u9ED8\u8BA4\u7684\u66F2\u7EBF\u7BAD\u5934\u6837\u5F0F",arrowsOpaque:"\u4E0D\u900F\u660E\u7BAD\u5934",arrowsOpaqueDesc:"\u79FB\u9664\u7BAD\u5934\u900F\u660E\u5EA6\uFF0C\u4F7F\u5176\u5B8C\u5168\u5B9E\u5FC3\u663E\u793A",arrowsOpaqueAlways:"\u59CB\u7EC8",arrowsOpaqueKeepFading:"\u4EC5\u7F29\u653E\u65F6",arrowsScale:"\u7F29\u653E",arrowsScaleDesc:"\u589E\u5927\u6216\u51CF\u5C0F\u7BAD\u5934\u6BD4\u4F8B",automation:"\u81EA\u52A8\u5316",autoEnable:"\u81EA\u52A8\u542F\u7528",autoEnableDesc:"\u5728\u5173\u7CFB\u56FE\u8C31\u4E2D\u81EA\u52A8\u542F\u7528\u63D2\u4EF6",autoReset:"\u66F4\u6539\u540E\u91CD\u7F6E\u5173\u7CFB\u56FE\u8C31",autoResetDesc:"\u5982\u679C\u5173\u95ED\u6B64\u6807\u7B7E\u540E\u8BBE\u7F6E\u53D1\u751F\u53D8\u5316\uFF0C\u5219\u5728\u5DF2\u542F\u7528\u63D2\u4EF6\u7684\u5173\u7CFB\u56FE\u8C31\u4E2D\u91CD\u7F6E\u63D2\u4EF6",borderUnresolved:"\u672A\u89E3\u6790\u8282\u70B9\u7684\u8F6E\u5ED3",borderUnresolvedDesc:"\u5982\u679C\u503C\u57280\u52301\u4E4B\u95F4\uFF08\u4E0D\u5305\u62EC\u8FB9\u754C\u503C\uFF09\uFF0C\u672A\u89E3\u6790\u8282\u70B9\u5C06\u53EA\u663E\u793A\u5706\u5F62\u8F6E\u5ED3\u800C\u975E\u5B8C\u6574\u7684\u5706",brightness:"\u660E\u5EA6\u7CFB\u6570",brightnessDesc:"\u4F7F\u7528\u8BE5\u7CFB\u6570\u8C03\u6574\u6807\u7B7E\u3001\u5C5E\u6027\u548C\u94FE\u63A5\u7684\u914D\u8272\u4EAE\u5EA6\uFF0C\u4EE5\u66F4\u597D\u5730\u9002\u914D\u660E\u6697\u4E3B\u9898\uFF08\u6570\u503C\u8D8A\u5927\u8D8A\u4EAE\uFF09\u3002\u5207\u6362\u4E3B\u9898\u65F6\uFF0C\u9700\u91CD\u65B0\u52A0\u8F7D\u56FE\u8C31\u3002",canonicalizePropertiesWithDataview:"\u89C4\u8303\u5316\u5C5E\u6027\u540D\u79F0\uFF08Dataview\uFF09",canonicalizePropertiesWithDataviewDesc:"\u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0CDataview\u63D2\u4EF6\u4F1A\u89C4\u8303\u5316\u5C5E\u6027\u540D\u79F0\uFF0C\u5C06\u6240\u6709\u5B57\u6BCD\u8F6C\u4E3A\u5C0F\u5199\u5E76\u79FB\u9664\u8FDE\u5B57\u7B26\u548C\u4E0B\u5212\u7EBF\u3002\u5982\u9700\u4F7F\u7528\u975E\u89C4\u8303\u5316\u7684\u5C5E\u6027\uFF0C\u8BF7\u7981\u7528\u6B64\u529F\u80FD\u3002\u8BF7\u6CE8\u610F\uFF0C\u82E5\u5B58\u5728\u4E24\u4E2A\u5C5E\u6027\u4E92\u4E3A\u89C4\u8303\u5316\u7248\u672C\uFF08\u4F8B\u5982CaseSensitive\u548Ccasesensitive\uFF09\uFF0C\u5219\u89C4\u8303\u5316\u7248\u672C\u5C06\u88AB\u820D\u5F03\u3002\u6B64\u9009\u9879\u4EC5\u5728\u4F7F\u7528Dataview\u63D2\u4EF6\u65F6\u751F\u6548\u3002",colorBasedOnDepth:"\u57FA\u4E8E\u6DF1\u5EA6\u7740\u8272 (\u4EC5\u5C40\u90E8\u56FE\u8C31)",colorBasedOnDepthDesc:"\u5728\u5C40\u90E8\u56FE\u8C31\u4E2D\uFF0C\u6839\u636E\u8282\u70B9\u76F8\u5BF9\u4E8E\u4E3B\u8282\u70B9\u7684\u6DF1\u5EA6\u4E3A\u5176\u7740\u8272",depthPalette:"\u6DF1\u5EA6\u8C03\u8272\u677F",depthPaletteDesc:"\u9009\u62E9\u7528\u4E8E\u6DF1\u5EA6\u5C42\u7EA7\u8282\u70B9\u7684\u914D\u8272\u65B9\u6848",disableNodes:"\u7981\u7528\u8282\u70B9",disableNodesDesc:"\u5F53\u8282\u70B9\u4E0A\u6240\u6709\u5706\u5F27\u90FD\u88AB\u7981\u7528\u65F6\uFF0C\u5C06\u5176\u4ECE\u56FE\u8C31\u4E2D\u79FB\u9664",excludeSourceFolders:"\u6392\u9664\u6765\u6E90\u6587\u4EF6\u5939",excludeSourceFoldersDesc:"\u6392\u9664\u6765\u6E90\u5728\u67D0\u4E9B\u6587\u4EF6\u5939\u5185\u7684\u6B63\u5411\u94FE\u63A5\uFF08\u5373\u6765\u81EA\u8FD9\u4E9B\u6587\u4EF6\u5939\u7684\u94FE\u63A5\uFF09",excludeTargetFolders:"\u6392\u9664\u76EE\u6807\u6587\u4EF6\u5939",excludeTargetFoldersDesc:"\u6392\u9664\u76EE\u6807\u5728\u67D0\u4E9B\u6587\u4EF6\u5939\u5185\u7684\u53CD\u5411\u94FE\u63A5\uFF08\u5373\u6307\u5411\u8FD9\u4E9B\u6587\u4EF6\u5939\u7684\u94FE\u63A5\uFF09",excludedFolders:"\u6392\u9664\u7684\u6587\u4EF6\u5939",externalLinks:"\u6DFB\u52A0\u5916\u90E8\u94FE\u63A5",externalLinksDesc:"\u5C06\u5916\u90E8 URL \u4F5C\u4E3A\u9644\u4EF6\u8282\u70B9\u663E\u793A\u5728\u56FE\u8C31\u4E2D\u3002\u94FE\u63A5\u7684\u7C7B\u578B\u4E0D\u53D7\u652F\u6301\u3002",noExclusionFilter:"\u5F53\u524D\u672A\u5E94\u7528\u6392\u9664\u7B5B\u9009\u5668\uFF0C\u8BF7\u5728\u4E0B\u65B9\u6DFB\u52A0\u3002",withExclusionFilter:"\u5339\u914D\u4EE5\u4E0B\u7B5B\u9009\u5668\u7684\u6587\u4EF6\u5728\u56FE\u8C31\u4E2D\u5C06\u6CA1\u6709\u6B63\u5411/\u53CD\u5411\u94FE\u63A5\uFF1A",fadeInElements:"\u65B0\u5143\u7D20\u6DE1\u5165\u6548\u679C",fadeInElementsDesc:"\u63D2\u4EF6\u63D0\u4F9B\u7684\u62D3\u5C55\u5143\u7D20\u4F1A\u4EE5\u6DE1\u5165\u7684\u65B9\u5F0F\u663E\u793A\uFF0C\u800C\u975E\u7A81\u7136\u51FA\u73B0",filters:"\u8FC7\u6EE4\u5668",filtersDesc:"\u57FA\u4E8E\u6B63\u5219\u5339\u914D\uFF0C\u4ECE\u56FE\u8C31\u4E2D\u6392\u9664\u7279\u5B9A\u7684\u6587\u4EF6\u548C\u6587\u4EF6\u5939",focus:"\u805A\u7126",focusDesc:"\u653E\u5927\u5F53\u524D\u6D3B\u52A8\u7B14\u8BB0\u5BF9\u5E94\u7684\u8282\u70B9",focusScale:"\u7F29\u653E\u7CFB\u6570",focusScaleDesc:"\u5F53\u524D\u6D3B\u52A8\u7B14\u8BB0\u5BF9\u5E94\u7684\u8282\u70B9\u5C06\u6309\u6B64\u7CFB\u6570\u8FDB\u884C\u653E\u5927",folders:"\u6587\u4EF6\u5939",foldersDesc:"\u663E\u793A\u6587\u4EF6\u5939\u8FB9\u6846",folderShowFullPath:"\u663E\u793A\u5B8C\u6574\u8DEF\u5F84",folderShowFullPathDesc:"\u542F\u7528\u65F6\u663E\u793A\u6587\u4EF6\u5939\u5B8C\u6574\u8DEF\u5F84\uFF1B\u7981\u7528\u65F6\u4EC5\u663E\u793A\u6587\u4EF6\u5939\u540D\u79F0",icons:"\u56FE\u6807",iconsDesc:"\u4E3A\u8282\u70B9\u4F7F\u7528\u56FE\u6807\u6216\u8868\u60C5\u7B26\u53F7",iconProperties:"\u56FE\u6807\u5C5E\u6027",iconPropertiesDesc:"\u53EF\u7528\u4E8E\u67E5\u8BE2\u8282\u70B9\u7B14\u8BB0\u56FE\u6807\u7684\u5C5E\u6027\u952E\uFF08\u540D\u79F0\uFF09\uFF0C\u5BF9\u5E94\u5143\u6570\u636E\u652F\u6301\u4F7F\u7528 Unicode \u8868\u60C5\u7B26\u53F7\u6216 Lucide \u56FE\u6807\u540D\u79F0\u3002",iconPropertiesAdd:"\u6DFB\u52A0\u56FE\u6807\u5C5E\u6027",iconUsePlugin:'\u4F7F\u7528"Iconic"\u6216"Iconize"\u63D2\u4EF6',iconUsePluginDesc:'\u4F7F\u7528\u901A\u8FC7"Iconic"\u6216"Iconize"\u793E\u533A\u63D2\u4EF6\u5728\u6587\u4EF6\u8D44\u6E90\u7BA1\u7406\u5668\u4E2D\u8BBE\u7F6E\u7684\u56FE\u6807',iconUsePluginColor:'\u4F7F\u7528"Iconic"\u6216"Iconize"\u63D2\u4EF6\u7684\u989C\u8272',iconUsePluginColorDesc:'\u4F7F\u7528\u901A\u8FC7"Iconic"\u6216"Iconize"\u63D2\u4EF6\u5728\u6587\u4EF6\u8D44\u6E90\u7BA1\u7406\u5668\u4E2D\u8BBE\u7F6E\u7684\u56FE\u6807\u989C\u8272',iconUseParentIcon:"\u4F7F\u7528\u7236\u6587\u4EF6\u5939\u56FE\u6807",iconUseParentIconDesc:'\u5982\u679C\u6587\u4EF6\u672C\u8EAB\u672A\u901A\u8FC7"Iconic"\u6216"Iconize"\u63D2\u4EF6\u8BBE\u7F6E\u56FE\u6807\uFF0C\u5C06\u5C1D\u8BD5\u67E5\u627E\u7236\u6587\u4EF6\u5939\u8BBE\u7F6E\u7684\u56FE\u6807',image:"\u56FE\u50CF",images:"\u56FE\u50CF",imageDesc:"\u5728\u8282\u70B9\u9876\u90E8\u663E\u793A\u56FE\u50CF",imagesAllowExternal:"\u5141\u8BB8\u4F7F\u7528\u7F51\u7EDC\u56FE\u50CF",imagesAllowExternalDesc:"\u5141\u8BB8\u901A\u8FC7 http: \u548C https: \u534F\u8BAE\u52A0\u8F7D\u5916\u90E8\u56FE\u50CF",imagesAllowExternalLocal:"\u5141\u8BB8\u4F7F\u7528\u5E93\u5916\u7684\u672C\u5730\u56FE\u50CF",imagesAllowExternalLocalDesc:"\u5141\u8BB8\u901A\u8FC7 file: \u548C app: \u534F\u8BAE\u52A0\u8F7D\u5916\u90E8\u56FE\u50CF",imagesFromProperty:"\u6765\u81EA\u5C5E\u6027",imagesFromPropertyDesc:"\u663E\u793Afrontmatter\u4E2D\u5C5E\u6027\u6307\u5B9A\u7684\u56FE\u50CF",imagesFromEmbeds:"\u6765\u81EA\u5D4C\u5165",imagesFromEmbedsDesc:'\u5982\u679C\u5728\u7B14\u8BB0\u5185\u627E\u5230\u7684\u5D4C\u5165\u7684\u56FE\u50CF\uFF0C\u5219\u5C06\u5176\u663E\u793A\u3002"\u6765\u81EA\u5C5E\u6027"\u5177\u6709\u66F4\u9AD8\u4F18\u5148\u7EA7\u3002',imagesForAttachments:"\u9644\u4EF6\u56FE\u50CF",imagesForAttachmentsDesc:"\u4E3A\u9644\u4EF6\u8282\u70B9\u663E\u793A\u56FE\u50CF",imageProperties:"\u56FE\u50CF\u5C5E\u6027",imagePropertiesDesc:"\u53EF\u7528\u4E8E\u67E5\u8BE2\u8282\u70B9\u7B14\u8BB0\u56FE\u50CF\u7684\u5C5E\u6027\u540D\u79F0",imagePropertiesAdd:"\u6DFB\u52A0\u56FE\u50CF\u5C5E\u6027",imageBorderWidth:"\u8FB9\u6846\u5BBD\u5EA6(%)",imageBorderWidthDesc:"\u8282\u70B9\u80CC\u666F\u4F5C\u4E3A\u53EF\u89C1\u8FB9\u6846\u7684\u767E\u5206\u6BD4",interactives:{alreadyExists:"\u5DF2\u5B58\u5728",arcsAdd:"\u6DFB\u52A0\u5706\u5F27",arcsAddPropertyDesc:"\u5728\u8282\u70B9\u5468\u56F4\u6DFB\u52A0\u5706\u5F27\u4EE5\u53EF\u89C6\u5316\u5C5E\u6027\u503C",arcsAddTagDesc:"\u5728\u8282\u70B9\u5468\u56F4\u6DFB\u52A0\u5706\u5F27\u4EE5\u53EF\u89C6\u5316\u6807\u7B7E",arcsSpread:"\u5C55\u5F00\u5706\u5F27",arcsSpreadDesc:"\u5728\u8282\u70B9\u5468\u56F4\u5C55\u5F00\u5706\u5F27\uFF0C\u4EE5\u5B8C\u5168\u586B\u5145\u53EF\u7528\u7A7A\u95F4",arcWeight:"\u5E26\u6743\u91CD\u7684\u5706\u5F27\u957F\u5EA6",arcWeightDesc:'\u4F7F\u7528\u503C\u51FA\u73B0\u7684\u6B21\u6570\u6765\u8C03\u6574\u5706\u5F27\u957F\u5EA6(\u9700\u542F\u7528"\u5C55\u5F00\u5706\u5F27")',colorLinks:"\u94FE\u63A5\u7740\u8272",colorLinksDesc:"\u4E3A\u5173\u7CFB\u56FE\u8C31\u4E2D\u7684\u94FE\u63A5\u6DFB\u52A0\u989C\u8272",colorLinkTypeLabel:"\u6807\u7B7E\u989C\u8272",colorLinkTypeLabelDesc:"\u4F7F\u7528\u4E0E\u94FE\u63A5\u76F8\u540C\u7684\u989C\u8272\u4E3A\u7C7B\u578B\u6807\u7B7E\u6587\u672C\u7740\u8272",curvedFactor:"\u66F2\u7387\u7CFB\u6570",curvedFactorDesc:"\u8D1F\u503C\u5C06\u53CD\u8F6C\u5F62\u72B6\uFF0C\u7EDD\u5BF9\u503C\u8D8A\u5927\u66F2\u7387\u8D8A\u5927\uFF0C\u63A5\u8FD10\u7684\u503C\u5C06\u4F7F\u5176\u53D8\u5E73",curvedLinks:"\u66F2\u7EBF\u94FE\u63A5",curvedLinksDesc:"\u4F7F\u7528\u66F2\u7EBF\u94FE\u63A5\u800C\u975E\u76F4\u7EBF",displayLinkTypeLabel:"\u663E\u793A\u6807\u7B7E",displayLinkTypeLabelDesc:"\u5728\u94FE\u63A5\u9876\u90E8\u663E\u793A\u7C7B\u578B\u6807\u7B7E\u6587\u672C",linkTypes:"\u94FE\u63A5",linkTypesDesc:"\u663E\u793A\u548C\u7B5B\u9009\u94FE\u63A5\u7C7B\u578B",noneTypeID:"\u65E0\u7C7B\u578BID",noneTypeIDDesc:"\u5982\u679C\u672A\u627E\u5230\u5C06\u8D4B\u4E88\u7684ID",palette:"\u8C03\u8272\u677F",paletteDesc:"\u9009\u62E9\u8C03\u8272\u677F",paletteMatplotlibDesc:"\u8FD9\u4E9B\u989C\u8272\u6620\u5C04\u6765\u81EA matplotlib\u3002\u60A8\u53EF\u4EE5\u5728\u6B64\u5904\u67E5\u770B\u66F4\u591A\u4FE1\u606F\uFF1A",palettePickGradient:"\u9009\u62E9\u6E10\u53D8\u8C03\u8272\u677F",properties:"\u5C5E\u6027",propertiesDesc:"\u5C5E\u6027\u503C\u7684\u663E\u793A\u548C\u7B5B\u9009",property:"\u5C5E\u6027",propertyDesc:"\u5C5E\u6027\u503C\u7684\u663E\u793A\u548C\u7B5B\u9009",propertyAlreadyExists:"\u6B64\u5C5E\u6027\u5DF2\u5B58\u5728",propertyReservedFolders:"\u6B64\u5C5E\u6027\u952E\u4E3A\u6587\u4EF6\u5939\u4FDD\u7559",propertyReservedLinks:"\u6B64\u5C5E\u6027\u952E\u4E3A\u94FE\u63A5\u4FDD\u7559",propertyReservedTags:"\u6B64\u5C5E\u6027\u952E\u4E3A\u6807\u7B7E\u4FDD\u7559",selection:"\u9009\u62E9",selectionDesc:"\u9009\u62E9\u8BE5\u63D2\u4EF6\u5185\u6709\u6548\u7684\u503C",selectionFor:"\u9009\u62E9\u4E3A",specificColors:"\u7279\u5B9A\u989C\u8272",specificColorsDesc:"\u4E3A\u5176\u5206\u914D\u6307\u5B9A\u7684\u989C\u8272\uFF08\u8986\u76D6\u8C03\u8272\u677F\u7684\u914D\u8272\uFF09",tags:"\u6807\u7B7E",tagsDesc:"\u6807\u7B7E\u7684\u663E\u793A\u548C\u7B5B\u9009"},layers:"\u56FE\u5C42",layersDesc:"\u6839\u636E\u56FE\u5C42\u7684\u8282\u70B9\u5206\u7EC4\uFF0C\u5E76\u8C03\u8282\u5B83\u4EEC\u7684\u900F\u660E\u5EA6",layersDisplayLabels:"\u5728 UI \u4E2D\u663E\u793A\u6807\u7B7E",layersDisplayLabelsDesc:"\u5982\u679C\u56FE\u5C42\u6709\u76F8\u5173\u8054\u7684\u6807\u7B7E\uFF0C\u4F8B\u5982 `4_cave`\uFF0C\u5219\u5C06\u6807\u7B7E\u6DFB\u52A0\u5230 UI \u4E2D",layersInfoDataview:"\u6CE8\u610F\uFF0C\u60A8\u5728\u6B64\u4FEE\u6539\u7684\u56FE\u5C42\u7EA7\u522B\u548C\u6807\u7B7E\u5C06\u4E0D\u4F1A\u53CD\u5411\u5199\u5165 Dataview \u7684\u5185\u8054\u5C5E\u6027\u3002",layersInfoLevelNotFromID:"\u661F\u53F7\u8868\u793A\u8BE5\u56FE\u5C42\u7684\u5C42\u7EA7\u8BBE\u7F6E\u5E76\u4E0D\u57FA\u4E8E\u5C5E\u6027\u503C",layersNumber:"\u6700\u5927\u56FE\u5C42\u6570",layersNumberDesc:"\u8BBE\u7F6E\u5C06\u5728\u56FE\u8C31\u89C6\u56FE\u4E2D\u540C\u65F6\u663E\u793A\u7684\u6700\u5927\u6D3B\u52A8\u56FE\u5C42\u6570",layersOpacityPlaceholder:"\u4E0D\u900F\u660E\u5EA6",layersOrder:"\u56FE\u5C42\u987A\u5E8F",layersOrderDesc:"\u9009\u62E9\u56FE\u5C42\u662F\u6309\u5347\u5E8F\u8FD8\u662F\u964D\u5E8F\u6392\u5217",layerProperties:"\u56FE\u5C42\u5C5E\u6027",layerPropertiesDesc:"\u53EF\u7528\u4E8E\u67E5\u8BE2\u8282\u70B9\u7B14\u8BB0\u56FE\u5C42\u7684\u5C5E\u6027\u540D\u79F0",layerPropertiesAdd:"\u6DFB\u52A0\u56FE\u5C42\u5C5E\u6027",layersOpacityIfNoLayer:"\u6307\u5B9A\u65E0\u56FE\u5C42\u8282\u70B9\u7684\u4E0D\u900F\u660E\u5EA6",layersOpacityIfNoLayerDesc:"\u5982\u679C\u8282\u70B9\u672A\u5173\u8054\u5230\u4EFB\u4F55\u56FE\u5C42\uFF0C\u5219\u4E3A\u5176\u4F7F\u7528\u8BE5\u4E0D\u900F\u660E\u5EA6\uFF08\u8BBE\u7F6E\u4E3A0\u5373\u9690\u85CF\uFF09",layersUseCustomOpacity:"\u4F7F\u7528\u81EA\u5B9A\u4E49\u4E0D\u900F\u660E\u5EA6",layersUseCustomOpacityDesc:"\u4E3A\u67D0\u4E9B\u56FE\u5C42\u8BBE\u7F6E\u56FA\u5B9A\u7684\u4E0D\u900F\u660E\u5EA6\u503C (0-1)\u3002\u8FD9\u4E9B\u56FE\u5C42\u5C06\u59CB\u7EC8\u4EE5\u6B64\u8BBE\u7F6E\u7684\u4E0D\u900F\u660E\u5EA6\u663E\u793A\uFF0C\u5176\u4ED6\u7684\u4E0D\u900F\u660E\u5EA6\u5C06\u901A\u8FC7\u63D2\u503C\u751F\u6210\u3002",linksAllowMultipleTypes:"\u591A\u7C7B\u578B\u7ED8\u5236",linksAllowMultipleTypesDesc:"\u5141\u8BB8\u56FE\u8C31\u5728\u4E24\u4E2A\u8282\u70B9\u95F4\u7ED8\u5236\u591A\u79CD\u4E0D\u540C\u7C7B\u578B\u7684\u94FE\u63A5",linksOutline:"\u94FE\u63A5\u8F6E\u5ED3",linksOutlineDesc:"\u4E3A\u94FE\u63A5\u548C\u7BAD\u5934\uFF08\u4E0D\u900F\u660E\u65F6\uFF09\u6DFB\u52A0\u8FB9\u7F18\u8F6E\u5ED3",linksSameColorAsNode:"\u57FA\u4E8E\u6765\u6E90\u8282\u70B9\u7684\u94FE\u63A5\u989C\u8272",linksSameColorAsNodeDesc:"\u4F7F\u7528\u6765\u6E90\u8282\u70B9\u7684\u989C\u8272\u4E3A\u94FE\u63A5\u7740\u8272",linksFeatureRequired:"\u9700\u8981\u542F\u7528\u94FE\u63A5\u529F\u80FD\u3002",localGraph:"\u5C40\u90E8\u56FE\u8C31",localGraphDesc:"\u81EA\u5B9A\u4E49\u60A8\u7684\u5C40\u90E8\u56FE\u8C31\uFF0C\u914D\u7F6E\u4E13\u7528\u4E8E\u4E3B\u8282\u70B9\uFF08\u5F53\u524D\u7B14\u8BB0\u5BF9\u5E94\u8282\u70B9\uFF09\u7684\u8BBE\u7F6E",localGraphCurrentNodeColor:"\u5F53\u524D\u8282\u70B9\u7684\u989C\u8272",localGraphCurrentNodeColorDesc:"\u5C40\u90E8\u56FE\u8C31\u4E2D\u4E3B\u8282\u70B9\u7684\u989C\u8272",localGraphCurrentNodeSize:"\u5F53\u524D\u8282\u70B9\u7684\u5927\u5C0F",localGraphCurrentNodeSizeDesc:"\u5C40\u90E8\u56FE\u8C31\u4E2D\u4E3B\u8282\u70B9\u7684\u56FA\u5B9A\u5927\u5C0F\uFF08\u9ED8\u8BA4\u503C\uFF1A100\uFF0C\u6700\u5C0F\u503C\uFF1A10\uFF09",localGraphCurrentNodeShape:"\u5F53\u524D\u8282\u70B9\u7684\u5F62\u72B6",localGraphCurrentNodeShapeDesc:"\u5C40\u90E8\u56FE\u8C31\u4E2D\u4E3B\u8282\u70B9\u7684\u5F62\u72B6",pinnedNodes:"\u56FA\u5B9A\u8282\u70B9",pinNode:"\u56FA\u5B9A\u8282\u70B9",unpinNode:"\u53D6\u6D88\u56FA\u5B9A\u8282\u70B9",unpinAllNodes:"\u53D6\u6D88\u56FA\u5B9A\u6240\u6709\u8282\u70B9",pinMultipleNodes:"\u56FA\u5B9A\u591A\u4E2A\u8282\u70B9",pinMultipleShape:"\u5F62\u72B6",pinMultipleGap:"\u8282\u70B9\u95F4\u8DDD",pinMultipleCenter:"\u4E2D\u5FC3",pinMultipleGridSize:"\u5217\u6570",pinMultipleGridSizeDesc:"\u503C\u53EF\u4EE5\u662F'N'(\u5355\u884C)\u3001'auto'(\u65B9\u5F62\u7F51\u683C)\u6216\u6B63\u6574\u6570",pinSelectedNodes:"\u56FA\u5B9A\u9009\u4E2D\u7684\u8282\u70B9",unpinSelectedNodes:"\u53D6\u6D88\u56FA\u5B9A\u9009\u4E2D\u7684\u8282\u70B9",size:"\u5927\u5C0F",elementsStats:"\u8282\u70B9\u548C\u94FE\u63A5\u7684\u6570\u636E\u7EDF\u8BA1",elementsStatsDesc:"\u9009\u62E9\u5982\u4F55\u8BA1\u7B97\u8282\u70B9\u548C\u94FE\u63A5\u7684\u5927\u5C0F\u548C\u989C\u8272",linkSizesFunction:"\u94FE\u63A5\u7C97\u7EC6\u7684\u8BA1\u7B97\u51FD\u6570",linkSizesFunctionDesc:"\u9009\u62E9\u56FE\u8C31\u5F15\u64CE\u5C06\u5982\u4F55\u8BA1\u7B97\u94FE\u63A5\u7C97\u7EC6",linkColorsFunction:"\u94FE\u63A5\u989C\u8272\u7684\u8BA1\u7B97\u51FD\u6570",linkColorsFunctionDesc:"\u9009\u62E9\u56FE\u8C31\u5F15\u64CE\u5C06\u5982\u4F55\u8BA1\u7B97\u94FE\u63A5\u989C\u8272",linkColorsPaletteDesc:"\u9009\u62E9\u94FE\u63A5\u7684\u8C03\u8272\u677F",names:"\u8282\u70B9\u540D\u79F0",namesDesc:"\u81EA\u5B9A\u4E49\u8282\u70B9\u540D\u79F0\u663E\u793A\u65B9\u5F0F",namesNumberOfCharacters:"\u5B57\u7B26\u9650\u5236",namesNumberOfCharactersDesc:"\u663E\u793A\u8282\u70B9\u540D\u79F0\u7684\u6700\u5927\u5B57\u7B26\u6570\u3002\u7559\u7A7A\u663E\u793A\u5B8C\u6574\u540D\u79F0\u3002",namesShowOnlyFileName:"\u4EC5\u6587\u4EF6\u540D",namesShowOnlyFileNameDesc:"\u4EC5\u663E\u793A\u6587\u4EF6\u540D\u4E0D\u542B\u8DEF\u5F84",namesNoExtension:"\u9690\u85CF\u6269\u5C55\u540D",namesNoExtensionDesc:"\u4ECE\u540D\u79F0\u4E2D\u79FB\u9664\u6587\u4EF6\u6269\u5C55\u540D",namesUseProperties:"\u4F7F\u7528\u5C5E\u6027",namesUsePropertiesDesc:"\u4F7F\u7528\u4E0B\u5217\u5C5E\u6027\u4E4B\u4E00\u6307\u5B9A\u7684\u503C\u4F5C\u4E3A\u8282\u70B9\u540D\u79F0\u800C\u975E\u6587\u4EF6\u540D",namesUsePropertiesAdd:"\u6DFB\u52A0\u8282\u70B9\u540D\u79F0\u5C5E\u6027",namesBackground:"\u6DFB\u52A0\u80CC\u666F",namesBackgroundDesc:"\u4E3A\u8282\u70B9\u540D\u79F0\u6DFB\u52A0\u80CC\u666F\u4EE5\u63D0\u9AD8\u53EF\u8BFB\u6027\uFF0C\u9690\u85CF\u5176\u540E\u7684\u5143\u7D20",namesShowWhenNeighborHighlighted:"\u9AD8\u4EAE\u76F8\u90BB\u8282\u70B9\u65F6\u59CB\u7EC8\u663E\u793A",namesShowWhenNeighborHighlightedDesc:"\u5373\u4F7F\u5B8C\u5168\u7F29\u5C0F\uFF0C\u5F53\u8FDE\u63A5\u7684\u76F8\u90BB\u8282\u70B9\u9AD8\u4EAE\u65F6\u4E5F\u663E\u793A\u6587\u672C",namesVerticalOffset:"\u5782\u76F4\u504F\u79FB",namesVerticalOffsetDesc:"\u6587\u672C\u7684\u5782\u76F4\u504F\u79FB\u3002\u6B63\u503C\u5C06\u6587\u672C\u4E0B\u79FB\uFF0C\u8D1F\u503C\u4E0A\u79FB\u3002",namesDynamicVerticalOffset:"\u52A8\u6001\u5782\u76F4\u504F\u79FB",namesDynamicVerticalOffsetDesc:"\u6839\u636E\u7BAD\u5934\u5927\u5C0F\u52A8\u6001\u8C03\u6574\u6587\u672C\u5782\u76F4\u4F4D\u7F6E\u3002",noLineHighlight:"\u7981\u7528\u8FDE\u7EBF\u7684\u9AD8\u4EAE\u8272",noLineHighlightDesc:"\u5728\u9F20\u6807\u60AC\u6D6E\u5728\u8282\u70B9\u4E0A\u65F6\uFF0C\u4E0D\u5C06\u5176\u76F8\u5173\u94FE\u63A5\u7684\u8FDE\u7EBF\u8BBE\u4E3A\u9AD8\u4EAE\u989C\u8272",nodeSizesFunction:"\u8282\u70B9\u5927\u5C0F\u7684\u8BA1\u7B97\u51FD\u6570",nodeSizesFunctionDesc:"\u9009\u62E9\u56FE\u8C31\u5F15\u64CE\u5C06\u5982\u4F55\u8BA1\u7B97\u8282\u70B9\u5927\u5C0F",nodeSizeProperties:"\u8282\u70B9\u5927\u5C0F\u5C5E\u6027",nodeSizePropertiesDesc:"\u53EF\u7528\u4E8E\u6307\u5B9A\u8282\u70B9\u5927\u5C0F\u7684\u5C5E\u6027\u540D\u79F0\u3002\u5FC5\u987B\u4E3A\u6570\u5B57\u7C7B\u578B\u3002\u9ED8\u8BA4\u503C\u4E3A100\u3002",nodeSizePropertiesAdd:"\u6DFB\u52A0\u8282\u70B9\u5927\u5C0F\u5C5E\u6027",nodeSizesRange:"\u8282\u70B9\u5927\u5C0F\u8303\u56F4",nodeSizesRangeDesc:"\u7528\u4E8E\u8C03\u6574\u8282\u70B9\u6574\u4F53\u5927\u5C0F\u7684\u7F29\u653E\u56E0\u6570\uFF0C\u63A7\u5236\u6700\u5C0F/\u6700\u5927\u8282\u70B9\u95F4\u7684\u4F53\u79EF\u5173\u7CFB\uFF08\u4ECB\u4E8E0.1\u548C5\u4E4B\u95F4\uFF09",nodeColorsFunction:"\u8282\u70B9\u989C\u8272\u7684\u8BA1\u7B97\u51FD\u6570",nodeColorsFunctionDesc:"\u9009\u62E9\u56FE\u8C31\u5F15\u64CE\u5C06\u5982\u4F55\u8BA1\u7B97\u8282\u70B9\u989C\u8272",nodeColorsPaletteDesc:"\u9009\u62E9\u8282\u70B9\u7684\u8C03\u8272\u677F",nodeStatsRecomputeOnGraphChange:"\u56FE\u8C31\u6539\u53D8\u65F6\u91CD\u65B0\u8BA1\u7B97",nodeStatsRecomputeOnGraphChangeDesc:"\u6BCF\u5F53\u56FE\u8C31\u6570\u636E\u53D1\u751F\u53D8\u5316\u65F6\u91CD\u65B0\u8BA1\u7B97\u6307\u6807\u3002\u8FD9\u53EF\u80FD\u4F1A\u5BFC\u81F4\u6027\u80FD\u4E0B\u964D\u3002",openInNewTab:"\u5728\u65B0\u6807\u7B7E\u9875\u6253\u5F00\u8282\u70B9",openInNewTabDesc:"\u5DE6\u952E\u70B9\u51FB\u8282\u70B9\u65F6\u59CB\u7EC8\u5728\u65B0\u6807\u7B7E\u9875\u6253\u5F00",otherDisplay:"\u5176\u4ED6\u663E\u793A\u9009\u9879",performance:"\u6027\u80FD",performanceDelay:"\u521D\u59CB\u5316\u5EF6\u8FDF (\u6BEB\u79D2)",performanceDelayDesc:"\u7531\u4E8E\u5F02\u6B65\u673A\u5236\uFF0C\u53EF\u80FD\u9700\u8981\u7B49\u5F85\u4E00\u6BB5\u65F6\u95F4\u624D\u80FD\u5F00\u59CB\u521D\u59CB\u5316\u6269\u5C55\u529F\u80FD",performanceMaxNodes:"\u6700\u5927\u8282\u70B9\u6570",performanceMaxNodesDesc:"\u5982\u679C\u56FE\u8C31\u5305\u542B\u8D85\u8FC7\u6B64\u8BBE\u7F6E\u7684\u8282\u70B9\u6570\uFF0C\u63D2\u4EF6\u5C06\u88AB\u4E34\u65F6\u7981\u7528",recursive:"\u9012\u5F52",removeSources:"\u79FB\u9664\u6765\u6E90",removeSourcesDesc:"\u7981\u7528\u94FE\u63A5\u7C7B\u578B\u65F6\u4E5F\u7981\u7528\u6E90\u8282\u70B9",removeTargets:"\u79FB\u9664\u76EE\u6807",removeTargetsDesc:"\u7981\u7528\u94FE\u63A5\u7C7B\u578B\u65F6\u4E5F\u7981\u7528\u76EE\u6807\u8282\u70B9",shape:"\u5F62\u72B6",shapes:"\u5F62\u72B6",shapesDesc:"\u4F7F\u7528\u5404\u79CD\u5F62\u72B6\u7684\u8282\u70B9",shapePick:"\u9009\u62E9\u5F62\u72B6",shapesNames:{circle:"\u5706\u5F62",square:"\u65B9\u5F62",triangle:"\u4E09\u89D2\u5F62",diamond:"\u83F1\u5F62",pentagon:"\u4E94\u8FB9\u5F62",hexagon:"\u516D\u8FB9\u5F62",octagon:"\u516B\u8FB9\u5F62",decagon:"\u5341\u8FB9\u5F62",star4:"\u56DB\u89D2\u661F",star5:"\u4E94\u89D2\u661F",star6:"\u516D\u89D2\u661F",star8:"\u516B\u89D2\u661F",star10:"\u5341\u89D2\u661F",polygon:"\u591A\u8FB9\u5F62",starburst:"\u661F\u7206\u5F62",grid:"\u7F51\u683C",line:"\u7EBF\u6761",unknown:"\u672A\u77E5"},svgScreenshotArcs:"\u663E\u793A\u5706\u5F27 (\u6807\u7B7E\u548C/\u6216\u7C7B\u578B)",svgScreenshotCopy:"\u590D\u5236 SVG \u622A\u56FE",svgScreenshotCopyCode:"\u590D\u5236 SVG \u4EE3\u7801\u5230\u526A\u8D34\u677F",svgScreenshotCopyImage:"\u590D\u5236 SVG \u56FE\u50CF\u5230\u526A\u8D34\u677F",svgScreenshotCurvedLinks:"\u4F7F\u7528\u66F2\u7EBF\u94FE\u63A5",svgScreenshotNodeNames:"\u663E\u793A\u8282\u70B9\u540D\u79F0",svgScreenshotNodeShapes:"\u4F7F\u7528\u8282\u70B9\u5F62\u72B6",svgScreenshotOptions:"SVG \u622A\u56FE\u9009\u9879",svgScreenshotVisibleArea:"\u4EC5\u5BFC\u51FA\u53EF\u89C1\u533A\u57DF",zoomOnNode:"\u805A\u7126\u8282\u70B9",zoomScale:"\u805A\u7126\u6BD4\u4F8B",zoomScaleDesc:"\u805A\u7126\u5230\u8282\u70B9\u65F6\u653E\u5927\u7684\u6BD4\u4F8B"},rx={inputs:"\u8F93\u5165",pinHotkey:"\u56FA\u5B9A\u8282\u70B9 (\u53F3\u952E)",pinHotkeyDesc:"\u6309\u4F4F\u6307\u5B9A\u952E\u7684\u540C\u65F6\uFF0C\u9F20\u6807\u53F3\u952E\u70B9\u51FB\u8282\u70B9\uFF0C\u53EF\u4EE5\u5C06\u5176\u56FA\u5B9A",radialMenu:"\u542F\u7528\u8282\u70B9\u8F6E\u76D8\u83DC\u5355",radialMenuDesc:"\u6309\u4F4F\u6307\u5B9A\u952E\u7684\u540C\u65F6\uFF0C\u9F20\u6807\u53F3\u952E\u70B9\u51FB\u8282\u70B9\uFF0C\u5C06\u663E\u793A\u6765\u81EA Extended Graph \u63D2\u4EF6\u7684\u8F6E\u76D8\u83DC\u5355\uFF08\u800C\u975E\u5E38\u89C4\u83DC\u5355\uFF09",rightClickIncompatibility:"\u6309\u952E\u51B2\u7A81\uFF1A\u591A\u4E2A\u8F93\u5165\u64CD\u4F5C\u4F7F\u7528\u4E86\u76F8\u540C\u7684\u4FEE\u9970\u952E\uFF0C\u65E0\u6CD5\u540C\u65F6\u751F\u6548\u3002"},ix={changeInSettings:"\u60A8\u53EF\u4EE5\u5728\u8BBE\u7F6E\u4E2D\u66F4\u6539\u6B64\u9009\u9879",disabled:"\u5DF2\u7981\u7528",graphAnalysisPluginRequired:"\u5FC5\u987B\u542F\u7528 Graph Analysis \u793E\u533A\u63D2\u4EF6\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD",invalidCharacter:"\u65E0\u6548\u5B57\u7B26",nlpPluginRequired:"\u5FC5\u987B\u542F\u7528 NLP \u793E\u533A\u63D2\u4EF6\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD",nodeLimiteExceeded:"\u5C1D\u8BD5\u5904\u7406\u8FC7\u591A\u8282\u70B9",nodeLimitIs:"\u9650\u5236\u4E3A",nodeStatSizeFailed:"\u8BA1\u7B97\u8282\u70B9\u5927\u5C0F\u7EDF\u8BA1\u5931\u8D25",nodeStatColorFailed:"\u8BA1\u7B97\u8282\u70B9\u989C\u8272\u7EDF\u8BA1\u5931\u8D25",linkStatSizeFailed:"\u8BA1\u7B97\u94FE\u63A5\u7C97\u7EC6\u7EDF\u8BA1\u5931\u8D25",linkStatColorFailed:"\u8BA1\u7B97\u94FE\u63A5\u989C\u8272\u7EDF\u8BA1\u5931\u8D25",functionToDefault:"\u5DF2\u6539\u4E3A\u4F7F\u7528\u9ED8\u8BA4\u51FD\u6570",stateDeleted:"\u72B6\u6001\u5DF2\u5220\u9664",stateRenamed:"\u72B6\u6001\u5DF2\u91CD\u547D\u540D",stateSaved:"\u72B6\u6001\u5DF2\u4FDD\u5B58",normalStateSave:"\u5DF2\u4FDD\u5B58\u6B63\u5E38\u72B6\u6001\u7684\u5F15\u64CE\u9009\u9879",svgCopied:"\u5DF2\u5C06 SVG \u590D\u5236\u5230\u526A\u8D34\u677F"},sx={AND:"\u5168\u90E8\u5339\u914D",ANDFilterDesc:"\u4EC5\u4FDD\u7559\u5177\u6709\u6240\u6709\u9009\u5B9A\u503C\u7684\u8282\u70B9",OR:"\u4EFB\u610F\u5339\u914D",ORFilterDesc:"\u4FDD\u7559\u5177\u6709\u81F3\u5C11\u4E00\u4E2A\u9009\u5B9A\u503C\u7684\u8282\u70B9",combinationLogic:"\u7EC4\u5408\u903B\u8F91",editShapeQuery:"\u7F16\u8F91\u5F62\u72B6\u67E5\u8BE2",excludeRegex:"\u6B63\u5219\u6392\u9664",excludeRegexDesc:"\u4F7F\u7528\u6B63\u5219\u8868\u8FBE\u5F0F\u81EA\u52A8\u6392\u9664\u67D0\u4E9B\u503C\u3002\u65B0\u884C\u8868\u793A\u65B0\u7684\u6B63\u5219\u8868\u8FBE\u5F0F\u3002",setShapeQueryFor:"\u8BBE\u7F6E\u5F62\u72B6\u67E5\u8BE2\u4E3A",files:"\u6587\u4EF6",logicKey:{contains:"\u5305\u542B",containsNot:"\u4E0D\u5305\u542B",is:"\u662F",isNot:"\u4E0D\u662F",containsRegex:"\u5305\u542B\u6B63\u5219",containsRegexNot:"\u4E0D\u5305\u542B\u6B63\u5219",matchesRegex:"\u5339\u914D\u6B63\u5219",matchesRegexNot:"\u4E0D\u5339\u914D\u6B63\u5219",isEmpty:"\u4E3A\u7A7A",isEmptyNot:"\u4E0D\u4E3A\u7A7A"},matchingFiles:"\u5339\u914D\u6587\u4EF6",match:"\u5339\u914D",matches:"\u5339\u914D\u9879",query:"\u67E5\u8BE2",rules:"\u89C4\u5219",source:{all:"\u5168\u90E8",tag:"\u6807\u7B7E",link:"\u94FE\u63A5",property:"\u5C5E\u6027",file:"\u6587\u4EF6",folder:"\u6587\u4EF6\u5939",folderRec:"\u6587\u4EF6\u5939\u53CA\u5B50\u6587\u4EF6\u5939",path:"\u8DEF\u5F84"},viewMatches:"\u67E5\u770B\u5339\u914D\u9879"},nx={defaultState:"\u9ED8\u8BA4\u72B6\u6001",editStateName:"\u7F16\u8F91\u72B6\u6001\u540D\u79F0",graphState:"\u56FE\u8C31\u72B6\u6001",newStateName:"\u65B0\u72B6\u6001\u540D\u79F0",openSettings:"\u6253\u5F00\u72B6\u6001\u8BBE\u7F6E",saveConfigsWithState:"\u4FDD\u5B58\u72B6\u6001\u65F6\u7684\u914D\u7F6E",saveConfigsWithStateDesc:"\u4FDD\u5B58\u72B6\u6001\u65F6\uFF0C\u63D2\u4EF6\u5C06\u81EA\u52A8\u4FDD\u5B58\u4E0E\u8BE5\u72B6\u6001\u540C\u540D\u7684\u914D\u7F6E\uFF08\u5E76\u6E05\u9664\u65E0\u6548\u5B57\u7B26\uFF09",saveForDefaultState:"\u4FDD\u5B58\u4E3A\u9ED8\u8BA4\u72B6\u6001",saveForDefaultStateDesc:"\u5C06\u5F53\u524D\u8BBE\u7F6E\u4FDD\u5B58\u4E3A\u9ED8\u8BA4\u72B6\u6001\u8BBE\u7F6E",saveForNormalState:"\u4FDD\u5B58\u4E3A\u5E38\u89C4\u72B6\u6001",saveForNormalStateDesc:"(\u65E0\u63D2\u4EF6\u542F\u7528)",saveForNormalStateTooltip:"\u5C06\u5F53\u524D\u8BBE\u7F6E\u4FDD\u5B58\u4E3A\u5E38\u89C4\u72B6\u6001\uFF08\u539F\u751F\u56FE\u8C31\uFF09\u7684\u8BBE\u7F6E",showGraphState:"\u663E\u793A\u56FE\u8C31\u72B6\u6001",startingState:"\u521D\u59CB\u72B6\u6001",startingStateDesc:"\u9009\u62E9\u7528\u4E8E\u521D\u59CB\u5316\u63D2\u4EF6\u7684\u72B6\u6001",states:"\u72B6\u6001",syncDefaultState:"\u540C\u6B65\u9ED8\u8BA4\u72B6\u6001",syncDefaultStateDesc:"\u59CB\u7EC8\u4F7F\u7528\u6838\u5FC3\u63D2\u4EF6\u7684\u5F53\u524D\u9009\u9879\u6253\u5F00\u9ED8\u8BA4\u72B6\u6001\uFF0C\u65E0\u9700\u624B\u52A8\u4FDD\u5B58"},ox={AdamicAdar:"Adamic Adar",authority:"\u6743\u5A01\u4E2D\u5FC3\u6027 (\u6765\u81EAHITS)",backlinksCount:"\u53CD\u5411\u94FE\u63A5\u6570",backUniquelinksCount:"\u552F\u4E00\u53CD\u5411\u94FE\u63A5\u6570",betweenness:"\u4E2D\u4ECB\u4E2D\u5FC3\u6027 (Betweenness centrality)",BoW:"Bag of words",closeness:"\u63A5\u8FD1\u4E2D\u5FC3\u6027 (Closeness centrality)",clusteringCoefficient:"\u805A\u7C7B\u7CFB\u6570 (Clustering coefficient)",coCitations:"\u88AB\u5F15\u6B21\u6570 (Co-citations)",constant:"\u5E38\u6570",creationTime:"\u6587\u4EF6\u521B\u5EFA\u65F6\u95F4",degree:"\u5EA6\u4E2D\u5FC3\u6027 (Degree centrality)",eccentricity:"\u8FDE\u901A\u56FE\u4E2D\u7684\u79BB\u5FC3\u7387 (Eccentricity in the connected graph)",eigenvector:"\u7279\u5F81\u5411\u91CF\u4E2D\u5FC3\u6027 (Eigenvector centrality)",filenameLength:"\u6587\u4EF6\u540D\u957F\u5EA6",forwardlinksCount:"\u6B63\u5411\u94FE\u63A5\u6570",forwardUniquelinksCount:"\u552F\u4E00\u6B63\u5411\u94FE\u63A5\u6570",totallinksCount:"\u6B63\u53CD\u94FE\u63A5\u603B\u6570",totalUniquelinksCount:"\u552F\u4E00\u6B63\u53CD\u94FE\u63A5\u603B\u6570",hub:"\u67A2\u7EBD\u4E2D\u5FC3\u6027 (Hub centrality)",Jaccard:"Jaccard\u76F8\u4F3C\u5EA6 (Jaccard similarity)",modifiedTime:"\u6700\u540E\u4FEE\u6539\u65F6\u95F4",Occurences:"\u51FA\u73B0\u6B21\u6570",OtsukaOchiai:"Otsuka-Ochiai\u7CFB\u6570 (Otsuka-Ochiai coefficient)",overlap:"\u91CD\u53E0\u7CFB\u6570 (Overlap coefficient)",tagsCount:"\u6807\u7B7E\u6570",topological:"\u62D3\u6251\u4F20\u64AD (Topological propagation)",warningUnreliableOS:"\u6B64\u8BA1\u7B97\u4E0D\u53EF\u9760\uFF0C\u53EF\u80FD\u56E0\u64CD\u4F5C\u7CFB\u7EDF\u800C\u5F02\u3002",sentiment:"\u60C5\u611F\u5206\u6790 (Sentiment)"},ax={horizontalLegend:"\u6C34\u5E73\u56FE\u4F8B",horizontalLegendDesc:"\u663E\u793A\u6C34\u5E73\u5E03\u5C40\u7684\u56FE\u4F8B\uFF08\u5305\u542B\u6807\u7B7E\u3001\u5C5E\u6027\u548C\u6807\u7B7E\u5207\u6362\u6309\u94AE\uFF09",howToUse:"\u4F7F\u7528\u8BF4\u660E",howToUseGradientMaker:"
  • \u62D6\u52A8\u63A7\u5236\u70B9\u6CBF\u6E10\u53D8\u79FB\u52A8\u989C\u8272\u505C\u6B62\u70B9
  • \u70B9\u51FB\u63A7\u5236\u70B9\u66F4\u6539\u5176\u989C\u8272
  • \u53CC\u51FB\u6E10\u53D8\u6DFB\u52A0\u65B0\u989C\u8272\u505C\u6B62\u70B9
  • Backspace\u3001Delete\u6216Clear\u952E\u5220\u9664\u63A7\u5236\u70B9
  • \u63D2\u503C\uFF1A\u5728\u505C\u6B62\u70B9\u95F4\u521B\u5EFA\u5E73\u6ED1\u989C\u8272\u8FC7\u6E21
  • \u53CD\u8F6C\uFF1A\u7FFB\u8F6C\u6700\u7EC8\u8C03\u8272\u677F\u987A\u5E8F\uFF08\u5DE6\u2194\u53F3\uFF09
",name:"\u540D\u79F0"},lx={plugin:Zv,beta:Qv,controls:Jv,errors:ex,features:tx,inputs:rx,notices:ix,query:sx,states:nx,statsFunctions:ox,UI:ax};var V6=8224125,Jr="default-vault",He="tag",ne="link",pe="folder",ei={};ei[He]=[];ei[ne]=["tags","file"];ei[pe]=[];i18next.addResourceBundle("en","extended-graph",sp);i18next.addResourceBundle("fr","extended-graph",np);i18next.addResourceBundle("zh","extended-graph",op);var m=i18next.getFixedT(null,"extended-graph"),Gu=i18next.getFixedT(null,"default");var u=class{},Uu=class{constructor(e){this.interactiveManagers=new Map;this.legendUI=null;this.foldersUI=null;this.colorGroupHaveChanged=!1;this.statePinnedNodes=null;this.view=e,this.settings=structuredClone(u.settings),this.canonicalizeProperties(),this.type=this.view.getViewType()==="graph"?"graph":"localgraph";let t=ts(this.view);if(!t)throw new Error("Graph engine is not initialized");this.engine=t,this.renderer=this.view.renderer}canonicalizeProperties(){if(this.settings.canonicalizePropertiesWithDataview)for(let e in this.settings.additionalProperties){let t=zt(e);t!==e&&(t in this.settings.additionalProperties?delete this.settings.additionalProperties[e]:(this.settings.additionalProperties[t]=this.settings.additionalProperties[e],delete this.settings.additionalProperties[e]),t in this.settings.interactiveSettings?delete this.settings.interactiveSettings[e]:(this.settings.interactiveSettings[t]=this.settings.interactiveSettings[e],delete this.settings.interactiveSettings[e]))}}setState(e){if(this.stateData=u.statesManager.getStateDataById(e),u.settings.saveConfigsWithState){let t=u.statesManager.getConfig(e);t&&(this.settings=t)}}};var z6=require("obsidian");function T0(r){let e=r.app.workspace.getActiveViewOfType(z6.ItemView);if(e&&(e.getViewType()==="graph"||e.getViewType()==="localgraph"))return e}function W6(r){cx(r),ux(r),hx(r),dx(r),px(r),fx(r),gx(r)}function cx(r){r.addCommand({id:"enable-in-graph-view",name:m("controls.enableInGraphView"),checkCallback:e=>{let t=T0(r);if(t&&!u.graphsManager.isPluginAlreadyEnabled(t))return e||u.graphsManager.enablePlugin(t),!0}}),r.addCommand({id:"disable-in-graph-view",name:m("controls.disableInGraphView"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.graphsManager.disablePlugin(t),!0}}),r.addCommand({id:"reset-in-graph-view",name:m("controls.resetInGraphView"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.graphsManager.resetPlugin(t),!0}})}function ux(r){r.addCommand({id:"copy-svg-screenshot",name:m("features.svgScreenshotCopy"),checkCallback:e=>{let t=T0(r);if(t)return e||u.graphsManager.getSVGScreenshot(t),!0}})}function hx(r){r.addCommand({id:"save-for-default-state",name:m("states.saveForDefaultState"),checkCallback:e=>{let t=T0(r);if(t)return e||u.statesManager.saveForDefaultState(t),!0}}),r.addCommand({id:"save-for-normal-state",name:m("states.saveForNormalState")+" "+m("states.saveForNormalStateDesc"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.statesManager.saveForNormalState(t),!0}}),r.addCommand({id:"show-graph-state",name:m("states.showGraphState"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.statesManager.showGraphState(t),!0}})}function dx(r){r.addCommand({id:"enable-all-folders",name:`${m("plugin.folders")}: ${m("controls.showAll")}`,checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.graphsManager.allInstances.get(t.leaf.id)?.foldersSet?.enableAll(),!0}}),r.addCommand({id:"enable-more-than-one-node-folders",name:`${m("plugin.folders")}: ${m("controls.showAll")} (${m("controls.toggleAllWithMoreThanOneNode")})`,checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.graphsManager.allInstances.get(t.leaf.id)?.foldersSet?.enableAllWithAtLeastOneNode(),!0}}),r.addCommand({id:"disable-all-folders",name:`${m("plugin.folders")}: ${m("controls.hideAll")}`,checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.graphsManager.allInstances.get(t.leaf.id)?.foldersSet?.disableAll(),!0}}),r.addCommand({id:"disable-more-than-one-node-folders",name:`${m("plugin.folders")}: ${m("controls.hideAll")} (${m("controls.toggleAllWithMoreThanOneNode")})`,checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.graphsManager.allInstances.get(t.leaf.id)?.foldersSet?.disableAllWithAtLeastOneNode(),!0}})}function px(r){r.addCommand({id:"pin-selected-nodes",name:m("features.pinSelectedNodes"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t)){let i=u.graphsManager.allInstances.get(t.leaf.id);return!i||Object.keys(i.nodesSet.selectedNodes).length===0?void 0:(e||i.nodesSet.pinSelectedNodes(),!0)}}}),r.addCommand({id:"unpin-selected-nodes",name:m("features.unpinSelectedNodes"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t)){let i=u.graphsManager.allInstances.get(t.leaf.id);return!i||Object.keys(i.nodesSet.selectedNodes).length===0||Object.keys(i.nodesSet.selectedNodes).every(s=>!i.nodesSet.isNodePinned(s))?void 0:(e||i.nodesSet.unpinSelectedNodes(),!0)}}}),r.addCommand({id:"unpin-all-nodes",name:m("features.unpinAllNodes"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t)){if(!e){let i=u.graphsManager.allInstances.get(t.leaf.id);i&&new yt(i).unpinAllNodes()}return!0}}})}function fx(r){r.addCommand({id:"select-all-nodes",name:m("controls.selectAllNodes"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t)){let i=u.graphsManager.allInstances.get(t.leaf.id);return i?(e||(i.nodesSet.selectNodes(i.renderer.nodes),i.renderer.changed()),!0):void 0}}}),r.addCommand({id:"invert-selection",name:m("controls.selectInvert"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t)){let i=u.graphsManager.allInstances.get(t.leaf.id);return!i||Object.keys(i.nodesSet.selectedNodes).length===0?void 0:(e||(i.nodesSet.invertSelection(),i.renderer.changed()),!0)}}})}function gx(r){r.addCommand({id:"flicker-open-nodes",name:m("features.focusFlickerOpenNodes"),checkCallback:e=>{if(u.graphsManager.allInstances.size>0&&u.graphsManager.openNodes.length>0){if(!e)for(let t of u.graphsManager.allInstances.values())for(let i of u.graphsManager.openNodes)t.nodesSet.extendedElementsMap.get(i)?.flicker();return!0}}}),r.addCommand({id:"flicker-search-nodes",name:m("features.focusFlickerSearchNodes"),checkCallback:e=>{let t=u.graphsManager.getSearchResults();if(u.graphsManager.allInstances.size>0&&t.length>0){if(!e)for(let i of u.graphsManager.allInstances.values())for(let s of t)i.nodesSet.extendedElementsMap.get(s)?.flicker();return!0}}})}var Vu=class{constructor(){this.proxyKey="__isExtendedGraphProxy";this.proxyFunctionKey="__isExtendedGraphFunctionProxy";this.coreTargets=new Map}registerProxy(e,t,i){if(!(t in e)){console.warn("Invalid property while creating proxy:",t);return}let s=e[t];if(!s){console.warn("Trying to create a proxy for a undefined or null property:",t);return}if(this.isProxy(s,e,t))return;let n=new Proxy(e[t],i);return e[t]=n,typeof s=="function"?(this.proxyFunctionKey in e||(e[this.proxyFunctionKey]={}),e[this.proxyFunctionKey][t]=!0):n[this.proxyKey]=!0,this.coreTargets.set(n,{owner:e,property:t,coreTarget:s}),n}isProxy(e,t,i){if(typeof e=="function"){if(!t||!i)throw new Error("Can't check if the function is a proxy without an owner and a property provided.");return this.proxyFunctionKey in t&&i in t[this.proxyFunctionKey]&&t[this.proxyFunctionKey][i]===!0}return this.proxyKey in e&&e[this.proxyKey]===!0}getTargetForOwner(e,t){return[...this.coreTargets.values()].find(i=>i.owner===e&&t===t)}getTargetForProxy(e){if(e!=null)return this.coreTargets.get(e)?.coreTarget}unregisterProxy(e){if(e==null)return;let t=this.coreTargets.get(e);if(t){let{owner:i,property:s,coreTarget:n}=t;if(!this.isProxy(e,i,s))return;this.coreTargets.delete(e),i[s]===e?(i[s]=n,delete i[s][this.proxyKey],this.proxyFunctionKey in i&&s in i[this.proxyFunctionKey]&&delete i[this.proxyFunctionKey][s]):(console.warn("The core reference is no longer pointing to the proxy. Instead :"),console.warn(i[s]))}}unregisterAll(){for(let[e,t]of this.coreTargets){let{owner:i,property:s,coreTarget:n}=t;this.coreTargets.delete(e),i[s]===e&&(i[s]=n,delete i[s][this.proxyKey])}}};var bt=require("obsidian");var zu=class extends bt.Component{constructor(){super(...arguments);this.globalUIs=new Map;this.optionsBackup=new Map;this.allInstances=new Map;this.openNodes=[];this.observedSearched=new Map;this.localGraphID=null;this.isHandlingMarkdownViewChange=!1;this.isResetting=new Map}onload(){this.addStatusBarItem(),this.createSearchObserver(),this.registerEvents()}addStatusBarItem(){this.statusBarItem=u.plugin.addStatusBarItem(),this.statusBarItem.addClasses(["plugin-extended-graph"])}createSearchObserver(){this.searchObserver=new MutationObserver((t,i)=>{for(let s of t)if(s.type==="childList"){let n=this.observedSearched.entries().find(o=>o[1].childrenEl===s.target);n&&this.computeSearchNodes(n[0])}})}registerEvents(){this.onMetadataCacheChange=this.onMetadataCacheChange.bind(this),N0(!1)?this.registerEvent(u.app.metadataCache.on("dataview:metadata-change",(t,i,s)=>{this.isCoreGraphLoaded()&&t==="update"&&this.onMetadataCacheChange(i)})):this.registerEvent(u.app.metadataCache.on("changed",(t,i,s)=>{this.isCoreGraphLoaded()&&this.onMetadataCacheChange(t,i,s)})),this.onDelete=this.onDelete.bind(this),this.registerEvent(u.app.vault.on("delete",t=>{this.isCoreGraphLoaded()&&this.onDelete(t)})),this.onRename=this.onRename.bind(this),this.registerEvent(u.app.vault.on("rename",(t,i)=>{this.isCoreGraphLoaded()&&this.onRename(t,i)})),this.onCSSChange=this.onCSSChange.bind(this),this.registerEvent(u.app.workspace.on("css-change",()=>{this.isCoreGraphLoaded()&&this.onCSSChange()})),this.registerEvent(u.app.workspace.on("layout-change",()=>{this.isCoreGraphLoaded()&&u.plugin.onLayoutChange()})),this.onActiveLeafChange=this.onActiveLeafChange.bind(this),this.registerEvent(u.app.workspace.on("active-leaf-change",t=>{this.isCoreGraphLoaded()&&this.onActiveLeafChange(t)})),this.onFileOpen=this.onFileOpen.bind(this),this.registerEvent(u.app.workspace.on("file-open",t=>{this.isCoreGraphLoaded()&&this.onFileOpen(t)})),this.updatePaletteForInteractive=this.updatePaletteForInteractive.bind(this),this.registerEvent(u.app.workspace.on("extended-graph:settings-colorpalette-changed",t=>{this.isCoreGraphLoaded()&&this.updatePaletteForInteractive(t)})),this.updateColorForInteractiveType=this.updateColorForInteractiveType.bind(this),this.registerEvent(u.app.workspace.on("extended-graph:settings-interactive-color-changed",(t,i)=>{this.isCoreGraphLoaded()&&this.updateColorForInteractiveType(t,i)})),this.onNodeMenuOpened=this.onNodeMenuOpened.bind(this),this.registerEvent(u.app.workspace.on("file-menu",(t,i,s,n)=>{this.isCoreGraphLoaded()&&this.onNodeMenuOpened(t,i,s,n)}))}isCoreGraphLoaded(){return!!u.app.internalPlugins.getPluginById("graph")?._loaded}initializeNodesSizeCalculator(){this.nodesSizeCalculator=cr.getCalculator("size"),this.nodesSizeCalculator?.computeStats(u.settings.graphStatsDirection).catch(t=>{console.error(t),new bt.Notice(`${m("notices.nodeStatSizeFailed")} (${is[u.settings.nodesSizeFunction]}). ${m("notices.functionToDefault")}`),u.settings.nodesSizeFunction="default",u.plugin.saveSettings(),this.nodesSizeCalculator=void 0})}initializeNodesColorCalculator(){this.nodesColorCalculator=cr.getCalculator("color"),this.nodesColorCalculator?.computeStats(u.settings.graphStatsDirection).catch(t=>{console.error(t),new bt.Notice(`${m("notices.nodeStatColorFailed")} (${is[u.settings.nodesColorFunction]}). ${m("notices.functionToDefault")}`),u.settings.nodesColorFunction="default",u.plugin.saveSettings(),this.nodesColorCalculator=void 0})}initializeLinksSizeCalculator(){this.canUseLinkStatFunction("size")&&(this.linksSizeCalculator=Ps.getCalculator("size"),this.linksSizeCalculator?.computeStats(u.settings.graphStatsDirection).catch(t=>{console.error(t),u.settings.linksSizeFunction="default",u.plugin.saveSettings(),new bt.Notice(`${m("notices.linkStatSizeFailed")} (${rs[u.settings.linksSizeFunction]}). ${m("notices.functionToDefault")}`),this.linksSizeCalculator=void 0}))}initializeLinksColorCalculator(){this.canUseLinkStatFunction("color")&&(this.linksColorCalculator=Ps.getCalculator("color"),this.linksColorCalculator?.computeStats(u.settings.graphStatsDirection).catch(t=>{console.error(t),u.settings.linksColorFunction="default",u.plugin.saveSettings(),new bt.Notice(`${m("notices.linkStatColorFailed")} (${rs[u.settings.linksColorFunction]}). ${m("notices.functionToDefault")}`),this.linksColorCalculator=void 0}))}canUseLinkStatFunction(t){let i=t==="color"?u.settings.linksColorFunction:u.settings.linksSizeFunction;return!y0()&&Pn[i]?(new bt.Notice(`${m("notices.nlpPluginRequired")} (${i})`),t==="color"?(this.linksColorCalculator=void 0,u.settings.linksColorFunction="default"):(this.linksSizeCalculator=void 0,u.settings.linksSizeFunction="default"),u.plugin.saveSettings(),!1):!0}onCSSChange(){for(let t of this.allInstances.values())t.cssBridge.onCSSChange()}onMetadataCacheChange(t,i,s){for(let n of this.allInstances.values()){if(!n.graph||!n.renderer)return;let o=n.nodesSet.extendedElementsMap.get(t.path);if(!o)return;for(let[l,c]of n.nodesSet.managers){let h=[...ct(l,t,n.settings)];h=h.filter(w=>!Xe.excludeType(u.settings,l,w)),h.length===0&&h.push(n.settings.interactiveSettings[l].noneType);let{typesToRemove:d,typesToAdd:p}=o.matchesTypes(l,[...h]);for(let w of d)n.nodesSet.typesMap[l][w].delete(o.id);for(let w of p)n.nodesSet.typesMap[l][w]||(n.nodesSet.typesMap[l][w]=new Set),n.nodesSet.typesMap[l][w].add(o.id);o.setTypes(l,new Set(h));let g=d.filter(w=>n.nodesSet.typesMap[l][w].size===0);g.length>0&&c.removeTypes(g);let v=c.getTypes(),C=p.filter(w=>!v.includes(w));C.length>0&&c.addTypes(C),g.length===0&&C.length===0&&(d.length>0||p.length>0)&&o.graphicsWrapper.resetManagerGraphics(c)}let a=n.linksSet.managers.get(ne);if(a){let l=H6(t),c=Array.from(n.linksSet.extendedElementsMap.values()).filter(d=>d.coreElement.source.id===t.path);for(let d of c)l.contains(d.coreElement.target.id)||n.linksSet.delete(d);let h=Lo(n.settings,t);for(let d of l)h.has(d)||h.set(d,new Set);for(let[d,p]of h){let g=n.linksSet.extendedElementsMap.get(Wt({source:{id:t.path},target:{id:d}}));if(!g)continue;p=new Set([...p].filter(L=>!Xe.excludeType(u.settings,ne,L))),p.size===0&&p.add(n.settings.interactiveSettings[ne].noneType);let{typesToRemove:v,typesToAdd:C}=g.matchesTypes(ne,[...p]);for(let L of v)n.linksSet.typesMap[ne][L].delete(g.id);for(let L of C)n.linksSet.typesMap[ne][L]||(n.linksSet.typesMap[ne][L]=new Set),n.linksSet.typesMap[ne][L].add(g.id);g.setTypes(ne,new Set(p));let w=v.filter(L=>n.linksSet.typesMap[ne][L].size===0);w.length>0&&a.removeTypes(w);let k=a.getTypes(),B=C.filter(L=>!k.includes(L));B.length>0&&a.addTypes(B),w.length===0&&B.length===0&&(v.length>0||C.length>0)&&g.graphicsWrapper?.resetManagerGraphics(a)}}if(n.settings.externalLinks!=="none"){let l=h=>h.flatMap(d=>[d.domain,d.href]).filter(d=>d!==void 0).unique(),c=l(n.nodesSet.getExternalLinks(t.path));n.nodesSet.cacheExternalLinks(t.path,!0).then(h=>{let d=l(n.nodesSet.getExternalLinks(t.path));c.filter(g=>!d.includes(g)).concat(d.filter(g=>!c.includes(g))).length>0&&n.engine.render()})}}}onDelete(t){let i=t.path;if(t instanceof bt.TFile)for(let[s,n]of this.allInstances){let o=n.nodesSet,a=o.extendedElementsMap.get(i);if(!a)continue;for(let[h,d]of o.managers){let p=a.getTypes(h),g=[];for(let v of p)o.typesMap[h][v].delete(i),o.typesMap[h][v]?.size===0&&g.push(v);d.removeTypes(g)}o.extendedElementsMap.delete(i),o.connectedIDs.delete(i),a?.graphicsWrapper?.disconnect(),a?.graphicsWrapper?.destroyGraphics();let l=n.linksSet,c=[...l.extendedElementsMap.values()].filter(h=>h.coreElement.source.id===i);for(let h of c){let d=h.id,p=h.getTypes(ne),g=[];for(let v of p)l.typesMap[ne][v].delete(d),l.typesMap[ne][v]?.size===0&&g.push(v);l.managers.get(ne)?.removeTypes(g),l.extendedElementsMap.delete(d),l.connectedIDs.delete(d),h?.graphicsWrapper?.disconnect(),h?.graphicsWrapper?.destroyGraphics()}}else if(t instanceof bt.TFolder)for(let[s,n]of this.allInstances)n.foldersSet?.managers.get(pe)?.removeTypes([i])}onRename(t,i){let s=t.path,n=function(o,a){return o===a};for(let[o,a]of this.allInstances){for(let[c,h]of a.nodesSet.managers)a.nodesSet.typesMap[c]=Object.fromEntries(Object.entries(a.nodesSet.typesMap[c]).map(([d,p])=>[d,new Set([...p].filter(g=>!n(i,g)))]));for(let[c,h]of a.linksSet.managers)a.linksSet.typesMap[c]=Object.fromEntries(Object.entries(a.linksSet.typesMap[c]).map(([d,p])=>[d,new Set([...p].filter(g=>{let v=a.linksSet.extendedElementsMap.get(g);return v&&!n(i,v.coreElement.source.id)&&!n(i,v.coreElement.target.id)}))]));for(let c of[...a.nodesSet.extendedElementsMap.values()])i===c.id&&(a.nodesSet.extendedElementsMap.delete(c.id),c.id=s,a.nodesSet.extendedElementsMap.set(c.id,c),a.nodesSet.connectedIDs.has(i)&&(a.nodesSet.connectedIDs.delete(i),a.nodesSet.connectedIDs.add(s)));for(let c of[...a.linksSet.extendedElementsMap.values()]){let h=i===c.coreElement.source.id,d=i===c.coreElement.target.id;if(h||d){let p=c.id;a.linksSet.extendedElementsMap.delete(c.id),h&&(c.id=Wt({source:{id:s},target:{id:c.coreElement.target.id}})),d&&(c.id=Wt({source:{id:c.coreElement.source.id},target:{id:s}})),a.linksSet.extendedElementsMap.set(c.id,c),a.linksSet.connectedIDs.has(p)&&(a.linksSet.connectedIDs.delete(p),a.linksSet.connectedIDs.add(c.id))}}let l=new yt(a);for(let[c,h]of a.nodesSet.extendedElementsMap)h.isPinned&&c===s&&l.pinNode(s,h.coreElement.x,h.coreElement.y);for(let c of u.settings.states){if(!c.pinNodes)break;let h=structuredClone(Object.entries(c.pinNodes));for(let[d,p]of h)i===d&&(delete c.pinNodes[d],c.pinNodes[s]=p);u.statesManager.onStateNeedsSaving(c,!1)}}}initLeaf(t){let i=j6(t);if(!(!i||i.leaf.isDeferred)){try{this.setGlobalUI(i)}catch(s){console.warn("WARNING: could not set global UI."),console.warn(s)}this.isPluginAlreadyEnabled(i)||(this.isGlobalGraphAlreadyOpened(i)||this.backupOptions(i),u.settings.enableFeatures[i.getViewType()]["auto-enabled"]&&this.enablePlugin(i,u.settings.startingStateID))}}isPluginAlreadyEnabled(t){return this.allInstances.has(t.leaf.id)}isGlobalGraphAlreadyOpened(t){return this.optionsBackup.has(t.leaf.id)&&t.getViewType()==="graph"}syncWithLeaves(t){let i=t.map(l=>l.id),s=t.find(l=>l.view.getViewType()==="localgraph"&&l.view instanceof bt.View&&!l.isDeferred&&!ap(l.view));this.localGraphID=s?s.id:null;let n=[...this.allInstances.keys()];for(let l of n)i.includes(l)||this.disablePluginFromLeafID(l);let o=[...this.optionsBackup.keys()];for(let l of o)!i.includes(l)&&this.lastBackup!==l&&this.optionsBackup.delete(l);let a=[...this.globalUIs.keys()];for(let l of a)i.includes(l)||this.globalUIs.delete(l);this.computeOpenNodes(),this.observeSearchViews()}computeOpenNodes(){let t=[];u.app.workspace.iterateAllLeaves(n=>{"state"in n.view&&typeof n.view.state=="object"&&n.view.state&&"file"in n.view.state&&typeof n.view.state.file=="string"?t.push(n.view.state.file):"file"in n.view&&n.view.file instanceof bt.TFile&&t.push(n.view.file.path)});let i=this.openNodes.filter(n=>!t.contains(n)),s=t.filter(n=>!this.openNodes.contains(n));if(i.length>0||s.length>0)for(let n of this.allInstances.values()){if(!n.settings.enableFeatures[n.type].focus||!n.settings.highlightOpenNodes)continue;let o=!1;for(let a of i){let l=n.nodesSet.extendedElementsMap.get(a);l&&(l.toggleOpenInTab(!1),o=!0)}for(let a of s){let l=n.nodesSet.extendedElementsMap.get(a);l&&(l.toggleOpenInTab(!0),o=!0)}o&&n.renderer.changed()}this.openNodes=t}observeSearchViews(){let t=u.app.workspace.getLeavesOfType("search");for(let i of Array.from(this.observedSearched.keys()))t.find(s=>s.view===i&&!s.isDeferred)||this.observedSearched.delete(i);for(let i of t){let s=i.view;if(!("dom"in s&&s.dom&&typeof s.dom=="object"))continue;if(!("resultDomLookup"in s.dom&&s.dom.resultDomLookup&&s.dom.resultDomLookup instanceof Map))return;if(!("childrenEl"in s.dom&&s.dom.childrenEl&&s.dom.childrenEl instanceof HTMLDivElement))continue;let n=s.dom.childrenEl;(!this.observedSearched.has(s)||this.observedSearched.get(s)?.childrenEl!==n)&&(this.searchObserver.observe(n,{childList:!0}),this.observedSearched.set(s,{childrenEl:n,results:[]}))}}computeSearchNodes(t){if(t.getViewType()!=="search")return;let i=this.observedSearched.get(t);if(!i||!("dom"in t&&t.dom&&typeof t.dom=="object")||!("resultDomLookup"in t.dom&&t.dom.resultDomLookup&&t.dom.resultDomLookup instanceof Map))return;let s=t.dom.resultDomLookup,n=[];for(let l of s.keys())l instanceof bt.TFile&&n.push(l.path);let o=i.results.filter(l=>!n.contains(l)),a=n.filter(l=>!i.results.contains(l));if(o.length>0||a.length>0)for(let l of this.allInstances.values()){if(!l.settings.enableFeatures[l.type].focus||!l.settings.highlightSearchResults)continue;let c=!1;for(let h of o){let d=l.nodesSet.extendedElementsMap.get(h);d&&(d.toggleIsSearchResult(!1),c=!0)}for(let h of a){let d=l.nodesSet.extendedElementsMap.get(h);d&&(d.toggleIsSearchResult(!0),c=!0)}c&&l.renderer.changed()}i.results=n}isSearchResult(t){for(let i of this.observedSearched.values())if(t in i.results)return!0;return!1}getSearchResults(){return this.observedSearched.values().reduce((t,i)=>t.concat(i.results),[])}setGlobalUI(t){let i=this.globalUIs.get(t.leaf.id);if(i)return i;let s=new $u(t);t.addChild(s);let n=new qu(t);return n.onPluginDisabled(),t.addChild(n),i={menu:s,control:n},this.globalUIs.set(t.leaf.id,i),i}updatePaletteForInteractive(t){this.allInstances.forEach(i=>{i.interactiveManagers.get(t)?.recomputeColors()})}updateColorForInteractiveType(t,i){this.allInstances.forEach(s=>{s.interactiveManagers.get(t)?.recomputeColor(i)})}updateSizeFunctionForNodesStat(){for(let[t,i]of this.allInstances)i.settings.nodesSizeFunction=u.settings.nodesSizeFunction,i.renderer.changed()}updatePaletteForNodesStat(){for(let[t,i]of this.allInstances)i.settings.nodesColorFunction=u.settings.nodesColorFunction,i.renderer.changed()}updateSizeFunctionForLinksStat(){for(let[t,i]of this.allInstances){if(!i.settings.curvedLinks)for(let[s,n]of i.linksSet.extendedElementsMap)n.changeCoreLinkThickness();i.renderer.changed()}}updatePaletteForLinksStat(){for(let[t,i]of this.allInstances){for(let[s,n]of i.linksSet.extendedElementsMap)n.graphicsWrapper?.updateGraphics();i.renderer.changed()}}enablePlugin(t,i,s=!0){if(this.isResetting.get(t.leaf.id)||this.backupOptions(t),this.isPluginAlreadyEnabled(t)||this.isNodeLimitExceededForView(t))return;let n=this.setGlobalUI(t);n.menu.disableUI();let o=async()=>{let a=await this.addGraph(t,i??u.settings.startingStateID,s);u.settings.enableFeatures[a.type]["elements-stats"]&&(this.nodesSizeCalculator?.functionKey!==u.settings.nodesSizeFunction&&!Xe.needDynamicGraphology(a,{element:"node",stat:"size"})&&this.initializeNodesSizeCalculator(),this.nodesColorCalculator?.functionKey!==u.settings.nodesColorFunction&&!Xe.needDynamicGraphology(a,{element:"node",stat:"color"})&&this.initializeNodesColorCalculator(),this.linksSizeCalculator?.functionKey!==u.settings.linksSizeFunction&&!Xe.needDynamicGraphology(a,{element:"link",stat:"size"})&&this.initializeLinksSizeCalculator(),this.linksColorCalculator?.functionKey!==u.settings.linksColorFunction&&!Xe.needDynamicGraphology(a,{element:"link",stat:"color"})&&this.initializeLinksColorCalculator()),n.menu.setEnableUIState(),n.control.onPluginEnabled(a),this.updateStatusBarItem(t.leaf)};u.settings.syncDefaultState?u.statesManager.saveForDefaultState(t).then(()=>o()):o()}async addGraph(t,i,s){let n=this.allInstances.get(t.leaf.id);return n||(n=new Uu(t),this.allInstances.set(t.leaf.id,n),n.setState(i),new Wu(n,s),i&&n.statesUI.setValue(i),n.graphEventsDispatcher.load(),t.addChild(n.graphEventsDispatcher),t.getViewType()==="localgraph"&&!ap(t)&&(this.localGraphID=t.leaf.id),n)}isNodeLimitExceededForView(t){return t.renderer.nodes.length>u.settings.maxNodes?(new bt.Notice(`${m("notices.nodeLimiteExceeded")} (${t.renderer.nodes.length}). ${m("notices.nodeLimitIs")} ${u.settings.maxNodes}. ${m("notices.changeInSettings")}.`),!0):!1}isNodeLimitExceededForData(t,i=!0){return Object.keys(t.nodes).length>u.settings.maxNodes?(i&&new bt.Notice(`${m("notices.nodeLimiteExceeded")} (${Object.keys(t.nodes).length}). ${m("notices.nodeLimitIs")} ${u.settings.maxNodes}. ${m("plugin.name")} ${m("notices.disabled")}. ${m("notices.changeInSettings")}.`),!0):!1}onPluginLoaded(t){this.isResetting.set(t.leaf.id,!1),this.globalUIs.get(t.leaf.id)?.menu.enableUI()}disablePlugin(t){this.disablePluginFromLeafID(t.leaf.id),this.isResetting.get(t.leaf.id)||t.renderer.changed()}disablePluginFromLeafID(t){this.disableUI(t),this.unloadDispatcher(t)}disableUI(t){let i=this.globalUIs.get(t);i&&(i.menu.disableUI(),i.menu.setDisableUIState(),i.control.onPluginDisabled())}unloadDispatcher(t){let i=this.allInstances.get(t);i?i.graphEventsDispatcher.unload():this.globalUIs.get(t)?.menu.enableUI()}onPluginUnloaded(t){this.allInstances.delete(t.leaf.id),this.localGraphID===t.leaf.id&&(this.localGraphID=null),this.isResetting.get(t.leaf.id)||(t._loaded&&this.applyNormalState(t),this.restoreBackupInGraphJson(),this.globalUIs.get(t.leaf.id)?.menu.enableUI()),this.updateStatusBarItem(t.leaf)}resetAllPlugins(t){let i=[...this.allInstances.values()].filter(s=>s.type===t).map(s=>s.view);for(let s of i)this.resetPlugin(s)}resetPlugin(t,i=!0,s){this.isResetting.set(t.leaf.id,!0);let n=this.allInstances.get(t.leaf.id);s=s??n?.stateData?.id;let o=n?.renderer.targetScale??!1;this.disablePlugin(t),this.enablePlugin(t,s,i);let a=this.allInstances.get(t.leaf.id);a&&o&&(a.renderer.targetScale=o)}onActiveLeafChange(t){this.updateStatusBarItem(t)}isMarkdownLeaf(t){return t.view.getViewType()==="markdown"&&t.view instanceof bt.FileView}onFileOpen(t){if(!this.isHandlingMarkdownViewChange){if(this.isHandlingMarkdownViewChange=!0,this.localGraphID){let i=this.allInstances.get(this.localGraphID);if(i){let s=this.allInstances.get(i.view.leaf.id);s&&(this.isResetting.set(this.localGraphID,!0),s.graphEventsDispatcher.reloadLocalDispatcher())}}if(t&&Sl()){let s=u.app.workspace.getLeavesOfType("markdown").filter(n=>n.view instanceof bt.MarkdownView&&n.view.file===t);for(let n of s){if(!(n.view instanceof bt.MarkdownView))continue;let o=n.view,a=Sl()?.graphViews.find(l=>l.node===o.contentEl.querySelector(`.${Cl()}`))?.leaf.view;if(a&&this.allInstances.get(a.leaf.id)){let l=a;this.zoomOnNode(l,t.path,l.renderer.targetScale)}}}this.isHandlingMarkdownViewChange=!1}}backupOptions(t){let i=ts(t);if(!i)return;let s=structuredClone(i.getOptions());this.optionsBackup.set(t.leaf.id,s),this.lastBackup=t.leaf.id,u.settings.backupGraphOptions=s,u.plugin.saveSettings()}restoreBackupInGraphJson(){let t=this.optionsBackup.get(this.lastBackup),i=this.getCorePluginInstance();i&&t&&(i.options.colorGroups=t.colorGroups,i.options.search=t.search,i.options.hideUnresolved=t.hideUnresolved,i.options.showAttachments=t.showAttachments,i.options.showOrphans=t.showOrphans,i.options.showTags=t.showTags,i.options.localBacklinks=t.localBacklinks,i.options.localForelinks=t.localForelinks,i.options.localInterlinks=t.localInterlinks,i.options.localJumps=t.localJumps,i.options.lineSizeMultiplier=t.lineSizeMultiplier,i.options.nodeSizeMultiplier=t.nodeSizeMultiplier,i.options.showArrow=t.showArrow,i.options.textFadeMultiplier=t.textFadeMultiplier,i.options.centerStrength=t.centerStrength,i.options.linkDistance=t.linkDistance,i.options.linkStrength=t.linkStrength,i.options.repelStrength=t.repelStrength,i.saveOptions())}getCorePluginInstance(){return u.app.internalPlugins.getPluginById("graph")?.instance}applyNormalState(t){let i=ts(t),s=this.optionsBackup.get(t.leaf.id);if(i&&s){i.setOptions(s);for(let n of i.renderer.nodes)n.fontDirty=!0}}onNodeMenuOpened(t,i,s,n){s==="graph-context-menu"&&n&&i instanceof bt.TFile&&this.allInstances.get(n.id)?.graphEventsDispatcher.inputsManager.onNodeMenuOpened(t,i)}getSVGScreenshot(t){let i=this.allInstances.get(t.leaf.id),s;if(i)s=new Hu(i);else{let n=ts(t);if(!n)return;s=new ju(n)}s.toClipboard()}zoomOnNode(t,i,s){let n=t.renderer,o=n.nodes.find(g=>g.id===i);if(!o)return;let a=n.scale;s===void 0&&(s=u.settings.zoomFactor);let l=n.panX,c=n.panY;n.targetScale=Math.min(8,Math.max(1/128,s));let h=n.zoomCenterX,d=n.zoomCenterY;if(h===0&&d===0){let g=window.devicePixelRatio;h=n.width/2*g,d=n.height/2*g}let p=.85;a=a*p+s*(1-p),l-=o.x*a+l-h,c-=o.y*a+c-d,n.setPan(l,c),n.setScale(a),n.changed()}updateStatusBarItem(t,i){if(this.statusBarItem.detach(),this.addStatusBarItem(),t&&(t.view.getViewType()==="graph"||t.view.getViewType()==="localgraph")){i===void 0&&(i=t.view.renderer.nodes.length),i!==void 0&&this.statusBarItem.createSpan({text:i.toString()+" "+m("plugin.nodes"),cls:"status-bar-item-segment"});let s=this.allInstances.get(t.id);if(s){this.statusBarItem.addClass("mod-clickable"),this.statusBarItem.addEventListener("click",()=>{new Bs(s).open()});let n=Object.keys(s.nodesSet.selectedNodes).length;n>0&&this.statusBarItem.createSpan({text:`(${n} ${m("inputs.selected")})`,cls:"status-bar-item-segment"});let o=createSpan({cls:"status-bar-item-icon status-bar-item-segment"});(0,bt.setIcon)(o,"info"),this.statusBarItem.appendChild(o)}else this.statusBarItem.removeClass("mod-clickable")}}};var Rs=class{constructor(e){this.data=new Yu;this.data.name=e}setID(e){this.data.id=e||crypto.randomUUID()}saveGraph(e){for(let[t,i]of e.interactiveManagers)this.data.toggleTypes[t]=i.getTypes().filter(s=>u.settings.interactiveSettings[t].enableByDefault!==i.isActive(s));this.data.pinNodes={};for(let[t,i]of e.nodesSet.extendedElementsMap)i.isPinned&&(this.data.pinNodes[t]={x:i.coreElement.x,y:i.coreElement.y});this.data.engineOptions=new ti(e.engine.getOptions()),this.data.hiddenLegendRows=structuredClone(e.stateData?.hiddenLegendRows)??[],this.data.collapsedLegendRows=structuredClone(e.stateData?.collapsedLegendRows)??[],this.data.logicTypes=structuredClone(e.stateData?.logicTypes)??{},e.layersManager&&(this.data.enableLayers=e.layersManager.isEnabled,this.data.currentLayerLevel=e.layersManager.currentLevel)}saveState(e){return this.data=e,this.completeDefaultOptions()}isValidProperty(e){return["id","name","toggleTypes","logicTypes","pinNodes","engineOptions","hiddenLegendRows","collapsedLegendRows","enableLayers","currentLayerLevel"].includes(e)}completeDefaultOptions(){let e=!1;if(this.data.toggleTypes||(this.data.toggleTypes={},e=!0),this.data.toggleTypes[He]||(this.data.toggleTypes[He]=[],e=!0),this.data.toggleTypes[ne]||(this.data.toggleTypes[ne]=[],e=!0),this.data.toggleTypes[pe]||(this.data.toggleTypes[pe]=[],e=!0),this.data.logicTypes||(this.data.logicTypes={},e=!0),this.data.logicTypes[He]||(this.data.logicTypes[He]="OR",e=!0),this.data.logicTypes[ne]||(this.data.logicTypes[ne]="OR",e=!0),this.data.logicTypes[pe]||(this.data.logicTypes[pe]="OR",e=!0),this.data.pinNodes||(this.data.pinNodes={},e=!0),!this.data.engineOptions)this.data.engineOptions=new ti,e=!0;else if(this.data.engineOptions.search===void 0){let t=u.graphsManager.getCorePluginInstance();t&&(this.data.engineOptions.search=t.options.search??"",e=!0)}this.data.hiddenLegendRows||(this.data.hiddenLegendRows=[],e=!0),this.data.collapsedLegendRows||(this.data.collapsedLegendRows=[],e=!0);for(let t in this.data)this.isValidProperty(t)||(this.data=this.excludeKey(this.data,t),e=!0);return e}excludeKey(e,t){let{[t]:i,...s}=e;return s}};var ti=class{constructor(e){this.colorGroups=[];this.search="";this.hideUnresolved=!1;this.showAttachments=!1;this.showOrphans=!0;this.showTags=!1;this.localBacklinks=!0;this.localForelinks=!0;this.localInterlinks=!1;this.localJumps=1;this.lineSizeMultiplier=1;this.nodeSizeMultiplier=1;this.showArrow=!1;this.textFadeMultiplier=0;this.centerStrength=1-Math.log(.109)/Math.log(.01);this.linkDistance=250;this.linkStrength=1;this.repelStrength=10;e&&(this.colorGroups=e.colorGroups,this.search=e.search,this.hideUnresolved=e.hideUnresolved,this.showAttachments=e.showAttachments,this.showOrphans=e.showOrphans,this.showTags=e.showTags,this.localBacklinks=e.localBacklinks,this.localForelinks=e.localForelinks,this.localInterlinks=e.localInterlinks,this.localJumps=e.localJumps,this.lineSizeMultiplier=e.lineSizeMultiplier,this.nodeSizeMultiplier=e.nodeSizeMultiplier,this.showArrow=e.showArrow,this.textFadeMultiplier=e.textFadeMultiplier,this.centerStrength=e.centerStrength,this.linkDistance=e.linkDistance,this.linkStrength=e.linkStrength,this.repelStrength=e.repelStrength)}},Yu=class{constructor(){this.id="";this.name="";this.enableLayers=!1;this.currentLayerLevel=0;this.toggleTypes={},this.toggleTypes[He]=[],this.toggleTypes[ne]=[],this.toggleTypes[pe]=[],this.logicTypes={},this.logicTypes[He]="OR",this.logicTypes[ne]="OR",this.logicTypes[pe]="OR",this.pinNodes={},this.hiddenLegendRows=[],this.collapsedLegendRows=[],this.engineOptions=new ti}},Bn=class{static getLogicType(e,t){return e.stateData&&e.stateData.logicTypes&&e.stateData.logicTypes[t]?e.stateData.logicTypes[t]:"OR"}};var wl=require("obsidian");var Xu=class{constructor(){this.cacheStatesConfigs={};this.mapStatesConfig()}getStateDataById(e){return u.settings.states.find(t=>t.id===e)}newState(e,t){let i=new Rs(t);return i.setID(),i.saveGraph(e),this.onStateNeedsSaving(i.data),this.saveConfigForState(e,i),i.data.id}changeState(e,t){let i=this.getStateDataById(t);if(!i)return;let s=this.getConfig(t);if(u.settings.saveConfigsWithState&&!u.graphsManager.isResetting.get(e.view.leaf.id)&&s)if(Xe.needReload(e.settings,s,e.type)){u.graphsManager.resetPlugin(e.view,!0,t);return}else e.settings=s;i=this.validateStateData(i),e.stateData=i,e.graphEventsDispatcher.lastFilteringAction&&(e.graphEventsDispatcher.lastFilteringAction.record=!1),setTimeout(()=>{if(this.updateInteractiveManagers(i,e),i.engineOptions){e.colorGroupHaveChanged=i.engineOptions.colorGroups!==e.engine.options.colorGroups,e.engine.setOptions(i.engineOptions);for(let n of e.renderer.nodes)n.fontDirty=!0}e.layersManager?.setCurrentLevel(i.currentLayerLevel??0,!1),e.legendUI?.updateUIFromState(),e.statePinnedNodes=structuredClone(i.pinNodes)??{},e.statesUI.currentStateID===t&&e.graphEventsDispatcher.lastFilteringAction&&(e.graphEventsDispatcher.lastFilteringAction.record=!0)},200)}validateStateData(e){let t=new Rs(e.name);return t.saveState(e)&&this.onStateNeedsSaving(t.data),t.data}updateInteractiveManagers(e,t){this.updateManagers(e,t.nodesSet.managers,t.legendUI),this.updateManagers(e,t.linksSet.managers,t.legendUI),t.foldersSet&&this.updateManagers(e,t.foldersSet.managers,t.foldersUI)}updateManagers(e,t,i){for(let[s,n]of t){u.settings.interactiveSettings[s].hasOwnProperty("enableByDefault")||(u.settings.interactiveSettings[s].enableByDefault=s!==pe,u.plugin.saveSettings());let o=u.settings.interactiveSettings[s].enableByDefault;if(this.loadStateForInteractiveManager(n,e),i&&e.toggleTypes&&(o?i.enableAllUI(s):i.disableAllUI(s),e.toggleTypes.hasOwnProperty(s)))for(let a of e.toggleTypes[s])o?i.disableUI(s,a):i.enableUI(s,a)}}loadStateForInteractiveManager(e,t){if(!t.toggleTypes)return;let i=u.settings.interactiveSettings[e.name].enableByDefault,s=t.toggleTypes[e.name]??[],n=[],o=[];e.getTypes().forEach(a=>{let l=e.interactives.get(a);l&&(i===l.isActive&&s.includes(a)?(l.isActive=!i,i?n.push(a):o.push(a)):i!==l.isActive&&!s.includes(a)&&(l.isActive=i,i?o.push(a):n.push(a)))}),n.length>0&&e.instances.interactiveEventsDispatcher.onInteractivesDisabled(e.name,n),o.length>0&&e.instances.interactiveEventsDispatcher.onInteractivesEnabled(e.name,o)}async saveState(e,t){if(t===Jr)return;let i=u.settings.states.find(n=>n.id==t);if(!i)return;let s=new Rs(i.name);s.saveState(i),s.setID(t),s.saveGraph(e),await this.onStateNeedsSaving(s.data),this.saveConfigForState(e,s)}async saveConfigForState(e,t){if(!e.settings.saveConfigsWithState)return;let i=$6(t.data.name);Ku(i,!1)||(i="state_"+t.data.id);let s=u.configurationDirectory+"/"+i+".json";u.plugin.exportSettings(s,e.settings,t),this.cacheStatesConfigs[t.data.id]={filepath:s,settings:await u.plugin.loadConfigFile(s).then(n=>(delete n.stateID,n))}}async onStateNeedsSaving(e,t=!1){this.updateStateArray(e),await u.plugin.saveSettings().then(()=>{t&&new wl.Notice(`${m("plugin.name")}: ${m("notices.stateSaved")} (${e.name})`),this.updateAllStates()})}async saveForDefaultState(e){let t=this.getStateDataById(Jr);if(!t)return;let i=ts(e);i&&(t.engineOptions=new ti(i.getOptions()),await this.onStateNeedsSaving(t,!0))}saveForNormalState(e){let t=u.app.internalPlugins.getPluginById("graph").instance,i=ts(e);i&&(t.options=i.getOptions(),t.saveOptions(),u.graphsManager.backupOptions(e),new wl.Notice(m("notices.normalStateSave")))}updateStateArray(e){let t=u.settings.states.findIndex(i=>i.name===e.name);t>=0?u.settings.states[t]=e:u.settings.states.push(e)}updateAllStates(){u.graphsManager.allInstances.forEach(e=>{e.statesUI.updateStatesList()})}renameState(e,t){let i=this.getStateDataById(e);!i||i.name===t||(i.name=t,u.plugin.saveSettings().then(()=>{new wl.Notice(`${m("plugin.name")}: ${m("notices.stateRenamed")} (${t})`),this.updateAllStates()}))}deleteState(e){if(e===Jr)return;let t=this.getStateDataById(e);t&&(u.settings.states.remove(t),u.plugin.saveSettings().then(()=>{new wl.Notice(`${m("plugin.name")}: ${m("notices.stateDeleted")} (${t.name})`),this.updateAllStates()}),delete this.cacheStatesConfigs[e])}showGraphState(e){let t=u.graphsManager.allInstances.get(e.leaf.id);if(!t)return;new Bs(t).open()}async mapStatesConfig(){let e=await Mo();for(let t of e)this.cacheConfig(t)}async cacheConfig(e){let t=u.settings.states.map(s=>s.id),i=await u.plugin.loadConfigFile(e);i.stateID&&t.contains(i.stateID)&&(this.cacheStatesConfigs[i.stateID]={filepath:e,settings:await u.plugin.loadConfigFile(e).then(s=>(delete s.stateID,s))})}hasConfig(e){return e in this.cacheStatesConfigs}getConfig(e){return this.cacheStatesConfigs[e]?.settings}getStateFromConfig(e){return Object.keys(this.cacheStatesConfigs).find(t=>this.cacheStatesConfigs[t].filepath===e)}};var{min:mx,max:yx}=Math,Ar=(r,e=0,t=1)=>mx(yx(e,r),t);var Rn=r=>{r._clipped=!1,r._unclipped=r.slice(0);for(let e=0;e<=3;e++)e<3?((r[e]<0||r[e]>255)&&(r._clipped=!0),r[e]=Ar(r[e],0,255)):e===3&&(r[e]=Ar(r[e],0,1));return r};var q6={};for(let r of["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"])q6[`[object ${r}]`]=r.toLowerCase();function Ee(r){return q6[Object.prototype.toString.call(r)]||"object"}var he=(r,e=null)=>r.length>=3?Array.prototype.slice.call(r):Ee(r[0])=="object"&&e?e.split("").filter(t=>r[0][t]!==void 0).map(t=>r[0][t]):r[0].slice(0);var ur=r=>{if(r.length<2)return null;let e=r.length-1;return Ee(r[e])=="string"?r[e].toLowerCase():null};var{PI:Zu,min:Qu,max:Ju}=Math,v0=r=>Math.round(r*100)/100,Tl=r=>Math.round(r*100)/100,kr=Zu*2,eh=Zu/3,Y6=Zu/180,X6=180/Zu;function th(r){return[...r.slice(0,3).reverse(),...r.slice(3)]}var Fe={format:{},autodetect:[]};var lp=class{constructor(...e){let t=this;if(Ee(e[0])==="object"&&e[0].constructor&&e[0].constructor===this.constructor)return e[0];let i=ur(e),s=!1;if(!i){s=!0,Fe.sorted||(Fe.autodetect=Fe.autodetect.sort((n,o)=>o.p-n.p),Fe.sorted=!0);for(let n of Fe.autodetect)if(i=n.test(...e),i)break}if(Fe.format[i]){let n=Fe.format[i].apply(null,s?e:e.slice(0,-1));t._rgb=Rn(n)}else throw new Error("unknown format: "+e);t._rgb.length===3&&t._rgb.push(1)}toString(){return Ee(this.hex)=="function"?this.hex():`[${this._rgb.join(",")}]`}},Y=lp;var K6="3.1.2";var Z6=(...r)=>new Y(...r);Z6.version=K6;var Le=Z6;var vx={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},Os=vx;var xx=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,Dx=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,bx=r=>{if(r.match(xx)){(r.length===4||r.length===7)&&(r=r.substr(1)),r.length===3&&(r=r.split(""),r=r[0]+r[0]+r[1]+r[1]+r[2]+r[2]);let e=parseInt(r,16),t=e>>16,i=e>>8&255,s=e&255;return[t,i,s,1]}if(r.match(Dx)){(r.length===5||r.length===9)&&(r=r.substr(1)),r.length===4&&(r=r.split(""),r=r[0]+r[0]+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]);let e=parseInt(r,16),t=e>>24&255,i=e>>16&255,s=e>>8&255,n=Math.round((e&255)/255*100)/100;return[t,i,s,n]}throw new Error(`unknown hex color: ${r}`)},rh=bx;var{round:ih}=Math,Ex=(...r)=>{let[e,t,i,s]=he(r,"rgba"),n=ur(r)||"auto";s===void 0&&(s=1),n==="auto"&&(n=s<1?"rgba":"rgb"),e=ih(e),t=ih(t),i=ih(i);let a="000000"+(e<<16|t<<8|i).toString(16);a=a.substr(a.length-6);let l="0"+ih(s*255).toString(16);switch(l=l.substr(l.length-2),n.toLowerCase()){case"rgba":return`#${a}${l}`;case"argb":return`#${l}${a}`;default:return`#${a}`}},sh=Ex;Y.prototype.name=function(){let r=sh(this._rgb,"rgb");for(let e of Object.keys(Os))if(Os[e]===r)return e.toLowerCase();return r};Fe.format.named=r=>{if(r=r.toLowerCase(),Os[r])return rh(Os[r]);throw new Error("unknown color name: "+r)};Fe.autodetect.push({p:5,test:(r,...e)=>{if(!e.length&&Ee(r)==="string"&&Os[r.toLowerCase()])return"named"}});Y.prototype.alpha=function(r,e=!1){return r!==void 0&&Ee(r)==="number"?e?(this._rgb[3]=r,this):new Y([this._rgb[0],this._rgb[1],this._rgb[2],r],"rgb"):this._rgb[3]};Y.prototype.clipped=function(){return this._rgb._clipped||!1};var _l={Kn:18,labWhitePoint:"d65",Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452,kE:.008856451679035631,kKE:8,kK:903.2962962962963,RefWhiteRGB:{X:.95047,Y:1,Z:1.08883},MtxRGB2XYZ:{m00:.4124564390896922,m01:.21267285140562253,m02:.0193338955823293,m10:.357576077643909,m11:.715152155287818,m12:.11919202588130297,m20:.18043748326639894,m21:.07217499330655958,m22:.9503040785363679},MtxXYZ2RGB:{m00:3.2404541621141045,m01:-.9692660305051868,m02:.055643430959114726,m10:-1.5371385127977166,m11:1.8760108454466942,m12:-.2040259135167538,m20:-.498531409556016,m21:.041556017530349834,m22:1.0572251882231791},As:.9414285350000001,Bs:1.040417467,Cs:1.089532651,MtxAdaptMa:{m00:.8951,m01:-.7502,m02:.0389,m10:.2664,m11:1.7135,m12:-.0685,m20:-.1614,m21:.0367,m22:1.0296},MtxAdaptMaI:{m00:.9869929054667123,m01:.43230526972339456,m02:-.008528664575177328,m10:-.14705425642099013,m11:.5183602715367776,m12:.04004282165408487,m20:.15996265166373125,m21:.0492912282128556,m22:.9684866957875502}},Ci=_l,Sx=new Map([["a",[1.0985,.35585]],["b",[1.0985,.35585]],["c",[.98074,1.18232]],["d50",[.96422,.82521]],["d55",[.95682,.92149]],["d65",[.95047,1.08883]],["e",[1,1,1]],["f2",[.99186,.67393]],["f7",[.95041,1.08747]],["f11",[1.00962,.6435]],["icc",[.96422,.82521]]]);function Ir(r){let e=Sx.get(String(r).toLowerCase());if(!e)throw new Error("unknown Lab illuminant "+r);_l.labWhitePoint=r,_l.Xn=e[0],_l.Zn=e[1]}function Gs(){return _l.labWhitePoint}var Cx=(...r)=>{r=he(r,"lab");let[e,t,i]=r,[s,n,o]=wx(e,t,i),[a,l,c]=up(s,n,o);return[a,l,c,r.length>3?r[3]:1]},wx=(r,e,t)=>{let{kE:i,kK:s,kKE:n,Xn:o,Yn:a,Zn:l}=Ci,c=(r+16)/116,h=.002*e+c,d=c-.005*t,p=h*h*h,g=d*d*d,v=p>i?p:(116*h-16)/s,C=r>n?Math.pow((r+16)/116,3):r/s,w=g>i?g:(116*d-16)/s,k=v*o,B=C*a,L=w*l;return[k,B,L]},cp=r=>{let e=Math.sign(r);return r=Math.abs(r),(r<=.0031308?r*12.92:1.055*Math.pow(r,1/2.4)-.055)*e},up=(r,e,t)=>{let{MtxAdaptMa:i,MtxAdaptMaI:s,MtxXYZ2RGB:n,RefWhiteRGB:o,Xn:a,Yn:l,Zn:c}=Ci,h=a*i.m00+l*i.m10+c*i.m20,d=a*i.m01+l*i.m11+c*i.m21,p=a*i.m02+l*i.m12+c*i.m22,g=o.X*i.m00+o.Y*i.m10+o.Z*i.m20,v=o.X*i.m01+o.Y*i.m11+o.Z*i.m21,C=o.X*i.m02+o.Y*i.m12+o.Z*i.m22,w=(r*i.m00+e*i.m10+t*i.m20)*(g/h),k=(r*i.m01+e*i.m11+t*i.m21)*(v/d),B=(r*i.m02+e*i.m12+t*i.m22)*(C/p),L=w*s.m00+k*s.m10+B*s.m20,T=w*s.m01+k*s.m11+B*s.m21,W=w*s.m02+k*s.m12+B*s.m22,j=cp(L*n.m00+T*n.m10+W*n.m20),I=cp(L*n.m01+T*n.m11+W*n.m21),R=cp(L*n.m02+T*n.m12+W*n.m22);return[j*255,I*255,R*255]},No=Cx;var Tx=(...r)=>{let[e,t,i,...s]=he(r,"rgb"),[n,o,a]=dp(e,t,i),[l,c,h]=_x(n,o,a);return[l,c,h,...s.length>0&&s[0]<1?[s[0]]:[]]};function _x(r,e,t){let{Xn:i,Yn:s,Zn:n,kE:o,kK:a}=Ci,l=r/i,c=e/s,h=t/n,d=l>o?Math.pow(l,1/3):(a*l+16)/116,p=c>o?Math.pow(c,1/3):(a*c+16)/116,g=h>o?Math.pow(h,1/3):(a*h+16)/116;return[116*p-16,500*(d-p),200*(p-g)]}function hp(r){let e=Math.sign(r);return r=Math.abs(r),(r<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4))*e}var dp=(r,e,t)=>{r=hp(r/255),e=hp(e/255),t=hp(t/255);let{MtxRGB2XYZ:i,MtxAdaptMa:s,MtxAdaptMaI:n,Xn:o,Yn:a,Zn:l,As:c,Bs:h,Cs:d}=Ci,p=r*i.m00+e*i.m10+t*i.m20,g=r*i.m01+e*i.m11+t*i.m21,v=r*i.m02+e*i.m12+t*i.m22,C=o*s.m00+a*s.m10+l*s.m20,w=o*s.m01+a*s.m11+l*s.m21,k=o*s.m02+a*s.m12+l*s.m22,B=p*s.m00+g*s.m10+v*s.m20,L=p*s.m01+g*s.m11+v*s.m21,T=p*s.m02+g*s.m12+v*s.m22;return B*=C/c,L*=w/h,T*=k/d,p=B*n.m00+L*n.m10+T*n.m20,g=B*n.m01+L*n.m11+T*n.m21,v=B*n.m02+L*n.m12+T*n.m22,[p,g,v]},Po=Tx;Y.prototype.lab=function(){return Po(this._rgb)};var Fx=(...r)=>new Y(...r,"lab");Object.assign(Le,{lab:Fx,getLabWhitePoint:Gs,setLabWhitePoint:Ir});Fe.format.lab=No;Fe.autodetect.push({p:2,test:(...r)=>{if(r=he(r,"lab"),Ee(r)==="array"&&r.length===3)return"lab"}});Y.prototype.darken=function(r=1){let e=this,t=e.lab();return t[0]-=Ci.Kn*r,new Y(t,"lab").alpha(e.alpha(),!0)};Y.prototype.brighten=function(r=1){return this.darken(-r)};Y.prototype.darker=Y.prototype.darken;Y.prototype.brighter=Y.prototype.brighten;Y.prototype.get=function(r){let[e,t]=r.split("."),i=this[e]();if(t){let s=e.indexOf(t)-(e.substr(0,2)==="ok"?2:0);if(s>-1)return i[s];throw new Error(`unknown channel ${t} in mode ${e}`)}else return i};var{pow:Ax}=Math,kx=1e-7,Ix=20;Y.prototype.luminance=function(r,e="rgb"){if(r!==void 0&&Ee(r)==="number"){if(r===0)return new Y([0,0,0,this._rgb[3]],"rgb");if(r===1)return new Y([255,255,255,this._rgb[3]],"rgb");let t=this.luminance(),i=Ix,s=(o,a)=>{let l=o.interpolate(a,.5,e),c=l.luminance();return Math.abs(r-c)r?s(o,l):s(l,a)},n=(t>r?s(new Y([0,0,0]),this):s(this,new Y([255,255,255]))).rgb();return new Y([...n,this._rgb[3]])}return Lx(...this._rgb.slice(0,3))};var Lx=(r,e,t)=>(r=pp(r),e=pp(e),t=pp(t),.2126*r+.7152*e+.0722*t),pp=r=>(r/=255,r<=.03928?r/12.92:Ax((r+.055)/1.055,2.4));var pt={};var wi=(r,e,t=.5,...i)=>{let s=i[0]||"lrgb";if(!pt[s]&&!i.length&&(s=Object.keys(pt)[0]),!pt[s])throw new Error(`interpolation mode ${s} is not defined`);return Ee(r)!=="object"&&(r=new Y(r)),Ee(e)!=="object"&&(e=new Y(e)),pt[s](r,e,t).alpha(r.alpha()+t*(e.alpha()-r.alpha()))};Y.prototype.mix=Y.prototype.interpolate=function(r,e=.5,...t){return wi(this,r,e,...t)};Y.prototype.premultiply=function(r=!1){let e=this._rgb,t=e[3];return r?(this._rgb=[e[0]*t,e[1]*t,e[2]*t,t],this):new Y([e[0]*t,e[1]*t,e[2]*t,t],"rgb")};var{sin:Mx,cos:Nx}=Math,Px=(...r)=>{let[e,t,i]=he(r,"lch");return isNaN(i)&&(i=0),i=i*Y6,[e,Nx(i)*t,Mx(i)*t]},nh=Px;var Bx=(...r)=>{r=he(r,"lch");let[e,t,i]=r,[s,n,o]=nh(e,t,i),[a,l,c]=No(s,n,o);return[a,l,c,r.length>3?r[3]:1]},Bo=Bx;var Rx=(...r)=>{let e=th(he(r,"hcl"));return Bo(...e)},Q6=Rx;var{sqrt:Ox,atan2:Gx,round:Ux}=Math,Vx=(...r)=>{let[e,t,i]=he(r,"lab"),s=Ox(t*t+i*i),n=(Gx(i,t)*X6+360)%360;return Ux(s*1e4)===0&&(n=Number.NaN),[e,s,n]},oh=Vx;var zx=(...r)=>{let[e,t,i,...s]=he(r,"rgb"),[n,o,a]=Po(e,t,i),[l,c,h]=oh(n,o,a);return[l,c,h,...s.length>0&&s[0]<1?[s[0]]:[]]},Fl=zx;Y.prototype.lch=function(){return Fl(this._rgb)};Y.prototype.hcl=function(){return th(Fl(this._rgb))};var Wx=(...r)=>new Y(...r,"lch"),Hx=(...r)=>new Y(...r,"hcl");Object.assign(Le,{lch:Wx,hcl:Hx});Fe.format.lch=Bo;Fe.format.hcl=Q6;["lch","hcl"].forEach(r=>Fe.autodetect.push({p:2,test:(...e)=>{if(e=he(e,r),Ee(e)==="array"&&e.length===3)return r}}));Y.prototype.saturate=function(r=1){let e=this,t=e.lch();return t[1]+=Ci.Kn*r,t[1]<0&&(t[1]=0),new Y(t,"lch").alpha(e.alpha(),!0)};Y.prototype.desaturate=function(r=1){return this.saturate(-r)};Y.prototype.set=function(r,e,t=!1){let[i,s]=r.split("."),n=this[i]();if(s){let o=i.indexOf(s)-(i.substr(0,2)==="ok"?2:0);if(o>-1){if(Ee(e)=="string")switch(e.charAt(0)){case"+":n[o]+=+e;break;case"-":n[o]+=+e;break;case"*":n[o]*=+e.substr(1);break;case"/":n[o]/=+e.substr(1);break;default:n[o]=+e}else if(Ee(e)==="number")n[o]=e;else throw new Error("unsupported value for Color.set");let a=new Y(n,i);return t?(this._rgb=a._rgb,this):a}throw new Error(`unknown channel ${s} in mode ${i}`)}else return n};Y.prototype.tint=function(r=.5,...e){return wi(this,"white",r,...e)};Y.prototype.shade=function(r=.5,...e){return wi(this,"black",r,...e)};var jx=(r,e,t)=>{let i=r._rgb,s=e._rgb;return new Y(i[0]+t*(s[0]-i[0]),i[1]+t*(s[1]-i[1]),i[2]+t*(s[2]-i[2]),"rgb")};pt.rgb=jx;var{sqrt:fp,pow:Ro}=Math,$x=(r,e,t)=>{let[i,s,n]=r._rgb,[o,a,l]=e._rgb;return new Y(fp(Ro(i,2)*(1-t)+Ro(o,2)*t),fp(Ro(s,2)*(1-t)+Ro(a,2)*t),fp(Ro(n,2)*(1-t)+Ro(l,2)*t),"rgb")};pt.lrgb=$x;var qx=(r,e,t)=>{let i=r.lab(),s=e.lab();return new Y(i[0]+t*(s[0]-i[0]),i[1]+t*(s[1]-i[1]),i[2]+t*(s[2]-i[2]),"lab")};pt.lab=qx;var Lr=(r,e,t,i)=>{let s,n;i==="hsl"?(s=r.hsl(),n=e.hsl()):i==="hsv"?(s=r.hsv(),n=e.hsv()):i==="hcg"?(s=r.hcg(),n=e.hcg()):i==="hsi"?(s=r.hsi(),n=e.hsi()):i==="lch"||i==="hcl"?(i="hcl",s=r.hcl(),n=e.hcl()):i==="oklch"&&(s=r.oklch().reverse(),n=e.oklch().reverse());let o,a,l,c,h,d;(i.substr(0,1)==="h"||i==="oklch")&&([o,l,h]=s,[a,c,d]=n);let p,g,v,C;return!isNaN(o)&&!isNaN(a)?(a>o&&a-o>180?C=a-(o+360):a180?C=a+360-o:C=a-o,g=o+t*C):isNaN(o)?isNaN(a)?g=Number.NaN:(g=a,(h==1||h==0)&&i!="hsv"&&(p=c)):(g=o,(d==1||d==0)&&i!="hsv"&&(p=l)),p===void 0&&(p=l+t*(c-l)),v=h+t*(d-h),i==="oklch"?new Y([v,p,g],i):new Y([g,p,v],i)};var J6=(r,e,t)=>Lr(r,e,t,"lch");pt.lch=J6;pt.hcl=J6;var Yx=r=>{if(Ee(r)=="number"&&r>=0&&r<=16777215){let e=r>>16,t=r>>8&255,i=r&255;return[e,t,i,1]}throw new Error("unknown num color: "+r)},e4=Yx;var Xx=(...r)=>{let[e,t,i]=he(r,"rgb");return(e<<16)+(t<<8)+i},t4=Xx;Y.prototype.num=function(){return t4(this._rgb)};var Kx=(...r)=>new Y(...r,"num");Object.assign(Le,{num:Kx});Fe.format.num=e4;Fe.autodetect.push({p:5,test:(...r)=>{if(r.length===1&&Ee(r[0])==="number"&&r[0]>=0&&r[0]<=16777215)return"num"}});var Zx=(r,e,t)=>{let i=r.num(),s=e.num();return new Y(i+t*(s-i),"num")};pt.num=Zx;var{floor:Qx}=Math,Jx=(...r)=>{r=he(r,"hcg");let[e,t,i]=r,s,n,o;i=i*255;let a=t*255;if(t===0)s=n=o=i;else{e===360&&(e=0),e>360&&(e-=360),e<0&&(e+=360),e/=60;let l=Qx(e),c=e-l,h=i*(1-t),d=h+a*(1-c),p=h+a*c,g=h+a;switch(l){case 0:[s,n,o]=[g,p,h];break;case 1:[s,n,o]=[d,g,h];break;case 2:[s,n,o]=[h,g,p];break;case 3:[s,n,o]=[h,d,g];break;case 4:[s,n,o]=[p,h,g];break;case 5:[s,n,o]=[g,h,d];break}}return[s,n,o,r.length>3?r[3]:1]},r4=Jx;var eD=(...r)=>{let[e,t,i]=he(r,"rgb"),s=Qu(e,t,i),n=Ju(e,t,i),o=n-s,a=o*100/255,l=s/(255-o)*100,c;return o===0?c=Number.NaN:(e===n&&(c=(t-i)/o),t===n&&(c=2+(i-e)/o),i===n&&(c=4+(e-t)/o),c*=60,c<0&&(c+=360)),[c,a,l]},i4=eD;Y.prototype.hcg=function(){return i4(this._rgb)};var tD=(...r)=>new Y(...r,"hcg");Le.hcg=tD;Fe.format.hcg=r4;Fe.autodetect.push({p:1,test:(...r)=>{if(r=he(r,"hcg"),Ee(r)==="array"&&r.length===3)return"hcg"}});var rD=(r,e,t)=>Lr(r,e,t,"hcg");pt.hcg=rD;var{cos:Oo}=Math,iD=(...r)=>{r=he(r,"hsi");let[e,t,i]=r,s,n,o;return isNaN(e)&&(e=0),isNaN(t)&&(t=0),e>360&&(e-=360),e<0&&(e+=360),e/=360,e<1/3?(o=(1-t)/3,s=(1+t*Oo(kr*e)/Oo(eh-kr*e))/3,n=1-(o+s)):e<2/3?(e-=1/3,s=(1-t)/3,n=(1+t*Oo(kr*e)/Oo(eh-kr*e))/3,o=1-(s+n)):(e-=2/3,n=(1-t)/3,o=(1+t*Oo(kr*e)/Oo(eh-kr*e))/3,s=1-(n+o)),s=Ar(i*s*3),n=Ar(i*n*3),o=Ar(i*o*3),[s*255,n*255,o*255,r.length>3?r[3]:1]},s4=iD;var{min:sD,sqrt:nD,acos:oD}=Math,aD=(...r)=>{let[e,t,i]=he(r,"rgb");e/=255,t/=255,i/=255;let s,n=sD(e,t,i),o=(e+t+i)/3,a=o>0?1-n/o:0;return a===0?s=NaN:(s=(e-t+(e-i))/2,s/=nD((e-t)*(e-t)+(e-i)*(t-i)),s=oD(s),i>t&&(s=kr-s),s/=kr),[s*360,a,o]},n4=aD;Y.prototype.hsi=function(){return n4(this._rgb)};var lD=(...r)=>new Y(...r,"hsi");Le.hsi=lD;Fe.format.hsi=s4;Fe.autodetect.push({p:2,test:(...r)=>{if(r=he(r,"hsi"),Ee(r)==="array"&&r.length===3)return"hsi"}});var cD=(r,e,t)=>Lr(r,e,t,"hsi");pt.hsi=cD;var uD=(...r)=>{r=he(r,"hsl");let[e,t,i]=r,s,n,o;if(t===0)s=n=o=i*255;else{let a=[0,0,0],l=[0,0,0],c=i<.5?i*(1+t):i+t-i*t,h=2*i-c,d=e/360;a[0]=d+1/3,a[1]=d,a[2]=d-1/3;for(let p=0;p<3;p++)a[p]<0&&(a[p]+=1),a[p]>1&&(a[p]-=1),6*a[p]<1?l[p]=h+(c-h)*6*a[p]:2*a[p]<1?l[p]=c:3*a[p]<2?l[p]=h+(c-h)*(2/3-a[p])*6:l[p]=h;[s,n,o]=[l[0]*255,l[1]*255,l[2]*255]}return r.length>3?[s,n,o,r[3]]:[s,n,o,1]},Al=uD;var hD=(...r)=>{r=he(r,"rgba");let[e,t,i]=r;e/=255,t/=255,i/=255;let s=Qu(e,t,i),n=Ju(e,t,i),o=(n+s)/2,a,l;return n===s?(a=0,l=Number.NaN):a=o<.5?(n-s)/(n+s):(n-s)/(2-n-s),e==n?l=(t-i)/(n-s):t==n?l=2+(i-e)/(n-s):i==n&&(l=4+(e-t)/(n-s)),l*=60,l<0&&(l+=360),r.length>3&&r[3]!==void 0?[l,a,o,r[3]]:[l,a,o]},ah=hD;Y.prototype.hsl=function(){return ah(this._rgb)};var dD=(...r)=>new Y(...r,"hsl");Le.hsl=dD;Fe.format.hsl=Al;Fe.autodetect.push({p:2,test:(...r)=>{if(r=he(r,"hsl"),Ee(r)==="array"&&r.length===3)return"hsl"}});var pD=(r,e,t)=>Lr(r,e,t,"hsl");pt.hsl=pD;var{floor:fD}=Math,gD=(...r)=>{r=he(r,"hsv");let[e,t,i]=r,s,n,o;if(i*=255,t===0)s=n=o=i;else{e===360&&(e=0),e>360&&(e-=360),e<0&&(e+=360),e/=60;let a=fD(e),l=e-a,c=i*(1-t),h=i*(1-t*l),d=i*(1-t*(1-l));switch(a){case 0:[s,n,o]=[i,d,c];break;case 1:[s,n,o]=[h,i,c];break;case 2:[s,n,o]=[c,i,d];break;case 3:[s,n,o]=[c,h,i];break;case 4:[s,n,o]=[d,c,i];break;case 5:[s,n,o]=[i,c,h];break}}return[s,n,o,r.length>3?r[3]:1]},o4=gD;var{min:mD,max:yD}=Math,vD=(...r)=>{r=he(r,"rgb");let[e,t,i]=r,s=mD(e,t,i),n=yD(e,t,i),o=n-s,a,l,c;return c=n/255,n===0?(a=Number.NaN,l=0):(l=o/n,e===n&&(a=(t-i)/o),t===n&&(a=2+(i-e)/o),i===n&&(a=4+(e-t)/o),a*=60,a<0&&(a+=360)),[a,l,c]},a4=vD;Y.prototype.hsv=function(){return a4(this._rgb)};var xD=(...r)=>new Y(...r,"hsv");Le.hsv=xD;Fe.format.hsv=o4;Fe.autodetect.push({p:2,test:(...r)=>{if(r=he(r,"hsv"),Ee(r)==="array"&&r.length===3)return"hsv"}});var DD=(r,e,t)=>Lr(r,e,t,"hsv");pt.hsv=DD;function On(r,e){let t=r.length;Array.isArray(r[0])||(r=[r]),Array.isArray(e[0])||(e=e.map(o=>[o]));let i=e[0].length,s=e[0].map((o,a)=>e.map(l=>l[a])),n=r.map(o=>s.map(a=>Array.isArray(o)?o.reduce((l,c,h)=>l+c*(a[h]||0),0):a.reduce((l,c)=>l+c*o,0)));return t===1&&(n=n[0]),i===1?n.map(o=>o[0]):n}var bD=(...r)=>{r=he(r,"lab");let[e,t,i,...s]=r,[n,o,a]=ED([e,t,i]),[l,c,h]=up(n,o,a);return[l,c,h,...s.length>0&&s[0]<1?[s[0]]:[]]};function ED(r){var e=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],t=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],i=On(t,r);return On(e,i.map(s=>s**3))}var Go=bD;var SD=(...r)=>{let[e,t,i,...s]=he(r,"rgb"),n=dp(e,t,i);return[...CD(n),...s.length>0&&s[0]<1?[s[0]]:[]]};function CD(r){let e=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],t=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],i=On(e,r);return On(t,i.map(s=>Math.cbrt(s)))}var Uo=SD;Y.prototype.oklab=function(){return Uo(this._rgb)};var wD=(...r)=>new Y(...r,"oklab");Object.assign(Le,{oklab:wD});Fe.format.oklab=Go;Fe.autodetect.push({p:2,test:(...r)=>{if(r=he(r,"oklab"),Ee(r)==="array"&&r.length===3)return"oklab"}});var TD=(r,e,t)=>{let i=r.oklab(),s=e.oklab();return new Y(i[0]+t*(s[0]-i[0]),i[1]+t*(s[1]-i[1]),i[2]+t*(s[2]-i[2]),"oklab")};pt.oklab=TD;var _D=(r,e,t)=>Lr(r,e,t,"oklch");pt.oklch=_D;var{pow:gp,sqrt:mp,PI:yp,cos:l4,sin:c4,atan2:FD}=Math,u4=(r,e="lrgb",t=null)=>{let i=r.length;t||(t=Array.from(new Array(i)).map(()=>1));let s=i/t.reduce(function(d,p){return d+p});if(t.forEach((d,p)=>{t[p]*=s}),r=r.map(d=>new Y(d)),e==="lrgb")return AD(r,t);let n=r.shift(),o=n.get(e),a=[],l=0,c=0;for(let d=0;d{let g=d.get(e);h+=d.alpha()*t[p+1];for(let v=0;v=360;)p-=360;o[d]=p}else o[d]=o[d]/a[d];return h/=i,new Y(o,e).alpha(h>.99999?1:h,!0)},AD=(r,e)=>{let t=r.length,i=[0,0,0,0];for(let s=0;s.9999999&&(i[3]=1),new Y(Rn(i))};var{pow:kD}=Math;function Gn(r){let e="rgb",t=Le("#ccc"),i=0,s=[0,1],n=[],o=[0,0],a=!1,l=[],c=!1,h=0,d=1,p=!1,g={},v=!0,C=1,w=function(I){if(I=I||["#fff","#000"],I&&Ee(I)==="string"&&Le.brewer&&Le.brewer[I.toLowerCase()]&&(I=Le.brewer[I.toLowerCase()]),Ee(I)==="array"){I.length===1&&(I=[I[0],I[0]]),I=I.slice(0);for(let R=0;R=a[z];)z++;return z-1}return 0},B=I=>I,L=I=>I,T=function(I,R){let z,U;if(R==null&&(R=!1),isNaN(I)||I===null)return t;R?U=I:a&&a.length>2?U=k(I)/(a.length-2):d!==h?U=(I-h)/(d-h):U=1,U=L(U),R||(U=B(U)),C!==1&&(U=kD(U,C)),U=o[0]+U*(1-o[0]-o[1]),U=Ar(U,0,1);let q=Math.floor(U*1e4);if(v&&g[q])z=g[q];else{if(Ee(l)==="array")for(let re=0;re=$&&re===n.length-1){z=l[re];break}if(U>$&&Ug={};w(r);let j=function(I){let R=Le(T(I));return c&&R[c]?R[c]():R};return j.classes=function(I){if(I!=null){if(Ee(I)==="array")a=I,s=[I[0],I[I.length-1]];else{let R=Le.analyze(s);I===0?a=[R.min,R.max]:a=Le.limits(R,"e",I)}return j}return a},j.domain=function(I){if(!arguments.length)return s;h=I[0],d=I[I.length-1],n=[];let R=l.length;if(I.length===R&&h!==d)for(let z of Array.from(I))n.push((z-h)/(d-h));else{for(let z=0;z2){let z=I.map((q,re)=>re/(I.length-1)),U=I.map(q=>(q-h)/(d-h));U.every((q,re)=>z[re]===q)||(L=q=>{if(q<=0||q>=1)return q;let re=0;for(;q>=U[re+1];)re++;let $=(q-U[re])/(U[re+1]-U[re]);return z[re]+$*(z[re+1]-z[re])})}}return s=[h,d],j},j.mode=function(I){return arguments.length?(e=I,W(),j):e},j.range=function(I,R){return w(I,R),j},j.out=function(I){return c=I,j},j.spread=function(I){return arguments.length?(i=I,j):i},j.correctLightness=function(I){return I==null&&(I=!0),p=I,W(),p?B=function(R){let z=T(0,!0).lab()[0],U=T(1,!0).lab()[0],q=z>U,re=T(R,!0).lab()[0],$=z+(U-z)*R,Q=re-$,Te=0,ye=1,xe=20;for(;Math.abs(Q)>.01&&xe-- >0;)(function(){return q&&(Q*=-1),Q<0?(Te=R,R+=(ye-R)*.5):(ye=R,R+=(Te-R)*.5),re=T(R,!0).lab()[0],Q=re-$})();return R}:B=R=>R,j},j.padding=function(I){return I!=null?(Ee(I)==="number"&&(I=[I,I]),o=I,j):o},j.colors=function(I,R){arguments.length<2&&(R="hex");let z=[];if(arguments.length===0)z=l.slice(0);else if(I===1)z=[j(.5)];else if(I>1){let U=s[0],q=s[1]-U;z=ID(0,I,!1).map(re=>j(U+re/(I-1)*q))}else{r=[];let U=[];if(a&&a.length>2)for(let q=1,re=a.length,$=1<=re;$?qre;$?q++:q--)U.push((a[q-1]+a[q])*.5);else U=s;z=U.map(q=>j(q))}return Le[R]&&(z=z.map(U=>U[R]())),z},j.cache=function(I){return I!=null?(v=I,j):v},j.gamma=function(I){return I!=null?(C=I,j):C},j.nodata=function(I){return I!=null?(t=Le(I),j):t},j}function ID(r,e,t){let i=[],s=rn;s?o++:o--)i.push(o);return i}var LD=function(r){let e=[1,1];for(let t=1;tnew Y(n)),r.length===2)[t,i]=r.map(n=>n.lab()),e=function(n){let o=[0,1,2].map(a=>t[a]+n*(i[a]-t[a]));return new Y(o,"lab")};else if(r.length===3)[t,i,s]=r.map(n=>n.lab()),e=function(n){let o=[0,1,2].map(a=>(1-n)*(1-n)*t[a]+2*(1-n)*n*i[a]+n*n*s[a]);return new Y(o,"lab")};else if(r.length===4){let n;[t,i,s,n]=r.map(o=>o.lab()),e=function(o){let a=[0,1,2].map(l=>(1-o)*(1-o)*(1-o)*t[l]+3*(1-o)*(1-o)*o*i[l]+3*(1-o)*o*o*s[l]+o*o*o*n[l]);return new Y(a,"lab")}}else if(r.length>=5){let n,o,a;n=r.map(l=>l.lab()),a=r.length-1,o=LD(a),e=function(l){let c=1-l,h=[0,1,2].map(d=>n.reduce((p,g,v)=>p+o[v]*c**(a-v)*l**v*g[d],0));return new Y(h,"lab")}}else throw new RangeError("No point in running bezier with only one color.");return e},h4=r=>{let e=MD(r);return e.scale=()=>Gn(e),e};var{round:d4}=Math;Y.prototype.rgb=function(r=!0){return r===!1?this._rgb.slice(0,3):this._rgb.slice(0,3).map(d4)};Y.prototype.rgba=function(r=!0){return this._rgb.slice(0,4).map((e,t)=>t<3?r===!1?e:d4(e):e)};var ND=(...r)=>new Y(...r,"rgb");Object.assign(Le,{rgb:ND});Fe.format.rgb=(...r)=>{let e=he(r,"rgba");return e[3]===void 0&&(e[3]=1),e};Fe.autodetect.push({p:3,test:(...r)=>{if(r=he(r,"rgba"),Ee(r)==="array"&&(r.length===3||r.length===4&&Ee(r[3])=="number"&&r[3]>=0&&r[3]<=1))return"rgb"}});var ri=(r,e,t)=>{if(!ri[t])throw new Error("unknown blend mode "+t);return ri[t](r,e)},Us=r=>(e,t)=>{let i=Le(t).rgb(),s=Le(e).rgb();return Le.rgb(r(i,s))},Vs=r=>(e,t)=>{let i=[];return i[0]=r(e[0],t[0]),i[1]=r(e[1],t[1]),i[2]=r(e[2],t[2]),i},PD=r=>r,BD=(r,e)=>r*e/255,RD=(r,e)=>r>e?e:r,OD=(r,e)=>r>e?r:e,GD=(r,e)=>255*(1-(1-r/255)*(1-e/255)),UD=(r,e)=>e<128?2*r*e/255:255*(1-2*(1-r/255)*(1-e/255)),VD=(r,e)=>255*(1-(1-e/255)/(r/255)),zD=(r,e)=>r===255?255:(r=255*(e/255)/(1-r/255),r>255?255:r);ri.normal=Us(Vs(PD));ri.multiply=Us(Vs(BD));ri.screen=Us(Vs(GD));ri.overlay=Us(Vs(UD));ri.darken=Us(Vs(RD));ri.lighten=Us(Vs(OD));ri.dodge=Us(Vs(zD));ri.burn=Us(Vs(VD));var p4=ri;var{pow:WD,sin:HD,cos:jD}=Math;function f4(r=300,e=-1.5,t=1,i=1,s=[0,1]){let n=0,o;Ee(s)==="array"?o=s[1]-s[0]:(o=0,s=[s,s]);let a=function(l){let c=kr*((r+120)/360+e*l),h=WD(s[0]+o*l,i),p=(n!==0?t[0]+l*n:t)*h*(1-h)/2,g=jD(c),v=HD(c),C=h+p*(-.14861*g+1.78277*v),w=h+p*(-.29227*g-.90649*v),k=h+p*(1.97294*g);return Le(Rn([C*255,w*255,k*255,1]))};return a.start=function(l){return l==null?r:(r=l,a)},a.rotations=function(l){return l==null?e:(e=l,a)},a.gamma=function(l){return l==null?i:(i=l,a)},a.hue=function(l){return l==null?t:(t=l,Ee(t)==="array"?(n=t[1]-t[0],n===0&&(t=t[1])):n=0,a)},a.lightness=function(l){return l==null?s:(Ee(l)==="array"?(s=l,o=l[1]-l[0]):(s=[l,l],o=0),a)},a.scale=()=>Le.scale(a),a.hue(t),a}var $D="0123456789abcdef",{floor:qD,random:YD}=Math,g4=()=>{let r="#";for(let e=0;e<6;e++)r+=$D.charAt(qD(YD()*16));return new Y(r,"hex")};var{log:m4,pow:XD,floor:KD,abs:ZD}=Math;function vp(r,e=null){let t={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0};return Ee(r)==="object"&&(r=Object.values(r)),r.forEach(i=>{e&&Ee(i)==="object"&&(i=i[e]),i!=null&&!isNaN(i)&&(t.values.push(i),t.sum+=i,it.max&&(t.max=i),t.count+=1)}),t.domain=[t.min,t.max],t.limits=(i,s)=>xp(t,i,s),t}function xp(r,e="equal",t=7){Ee(r)=="array"&&(r=vp(r));let{min:i,max:s}=r,n=r.values.sort((a,l)=>a-l);if(t===1)return[i,s];let o=[];if(e.substr(0,1)==="c"&&(o.push(i),o.push(s)),e.substr(0,1)==="e"){o.push(i);for(let a=1;a 0");let a=Math.LOG10E*m4(i),l=Math.LOG10E*m4(s);o.push(i);for(let c=1;c200&&(d=!1)}let v={};for(let w=0;ww-k),o.push(C[0]);for(let w=1;w{r=new Y(r),e=new Y(e);let t=r.luminance(),i=e.luminance();return t>i?(t+.05)/(i+.05):(i+.05)/(t+.05)};var v4=.027,QD=5e-4,JD=.1,x4=1.14,lh=.022,D4=1.414,E4=(r,e)=>{r=new Y(r),e=new Y(e),r.alpha()<1&&(r=wi(e,r,r.alpha(),"rgb"));let t=b4(...r.rgb()),i=b4(...e.rgb()),s=t>=lh?t:t+Math.pow(lh-t,D4),n=i>=lh?i:i+Math.pow(lh-i,D4),o=Math.pow(n,.56)-Math.pow(s,.57),a=Math.pow(n,.65)-Math.pow(s,.62),l=Math.abs(n-s)0?l-v4:l+v4)*100};function b4(r,e,t){return .2126729*Math.pow(r/255,2.4)+.7151522*Math.pow(e/255,2.4)+.072175*Math.pow(t/255,2.4)}var{sqrt:ss,pow:Xt,min:eb,max:tb,atan2:S4,abs:C4,cos:ch,sin:w4,exp:rb,PI:T4}=Math;function _4(r,e,t=1,i=1,s=1){var n=function(gt){return 360*gt/(2*T4)},o=function(gt){return 2*T4*gt/360};r=new Y(r),e=new Y(e);let[a,l,c]=Array.from(r.lab()),[h,d,p]=Array.from(e.lab()),g=(a+h)/2,v=ss(Xt(l,2)+Xt(c,2)),C=ss(Xt(d,2)+Xt(p,2)),w=(v+C)/2,k=.5*(1-ss(Xt(w,7)/(Xt(w,7)+Xt(25,7)))),B=l*(1+k),L=d*(1+k),T=ss(Xt(B,2)+Xt(c,2)),W=ss(Xt(L,2)+Xt(p,2)),j=(T+W)/2,I=n(S4(c,B)),R=n(S4(p,L)),z=I>=0?I:I+360,U=R>=0?R:R+360,q=C4(z-U)>180?(z+U+360)/2:(z+U)/2,re=1-.17*ch(o(q-30))+.24*ch(o(2*q))+.32*ch(o(3*q+6))-.2*ch(o(4*q-63)),$=U-z;$=C4($)<=180?$:U<=z?$+360:$-360,$=2*ss(T*W)*w4(o($)/2);let Q=h-a,Te=W-T,ye=1+.015*Xt(g-50,2)/ss(20+Xt(g-50,2)),xe=1+.045*j,De=1+.015*j*re,_e=30*rb(-Xt((q-275)/25,2)),rt=-(2*ss(Xt(j,7)/(Xt(j,7)+Xt(25,7))))*w4(2*o(_e)),et=ss(Xt(Q/(t*ye),2)+Xt(Te/(i*xe),2)+Xt($/(s*De),2)+rt*(Te/(i*xe))*($/(s*De)));return tb(0,eb(100,et))}function F4(r,e,t="lab"){r=new Y(r),e=new Y(e);let i=r.get(t),s=e.get(t),n=0;for(let o in i){let a=(i[o]||0)-(s[o]||0);n+=a*a}return Math.sqrt(n)}var A4=(...r)=>{try{return new Y(...r),!0}catch{return!1}};var k4={cool(){return Gn([Le.hsl(180,1,.9),Le.hsl(250,.7,.4)])},hot(){return Gn(["#000","#f00","#ff0","#fff"],[0,.25,.75,1]).mode("rgb")}};var Dp={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},L4=Object.keys(Dp),I4=new Map(L4.map(r=>[r.toLowerCase(),r])),ib=typeof Proxy=="function"?new Proxy(Dp,{get(r,e){let t=e.toLowerCase();if(I4.has(t))return r[I4.get(t)]},getOwnPropertyNames(){return Object.getOwnPropertyNames(L4)}}):Dp,M4=ib;var sb=(...r)=>{r=he(r,"cmyk");let[e,t,i,s]=r,n=r.length>4?r[4]:1;return s===1?[0,0,0,n]:[e>=1?0:255*(1-e)*(1-s),t>=1?0:255*(1-t)*(1-s),i>=1?0:255*(1-i)*(1-s),n]},N4=sb;var{max:P4}=Math,nb=(...r)=>{let[e,t,i]=he(r,"rgb");e=e/255,t=t/255,i=i/255;let s=1-P4(e,P4(t,i)),n=s<1?1/(1-s):0,o=(1-e-s)*n,a=(1-t-s)*n,l=(1-i-s)*n;return[o,a,l,s]},B4=nb;Y.prototype.cmyk=function(){return B4(this._rgb)};var ob=(...r)=>new Y(...r,"cmyk");Object.assign(Le,{cmyk:ob});Fe.format.cmyk=N4;Fe.autodetect.push({p:2,test:(...r)=>{if(r=he(r,"cmyk"),Ee(r)==="array"&&r.length===4)return"cmyk"}});var ab=(...r)=>{let e=he(r,"hsla"),t=ur(r)||"lsa";return e[0]=v0(e[0]||0)+"deg",e[1]=v0(e[1]*100)+"%",e[2]=v0(e[2]*100)+"%",t==="hsla"||e.length>3&&e[3]<1?(e[3]="/ "+(e.length>3?e[3]:1),t="hsla"):e.length=3,`${t.substr(0,3)}(${e.join(" ")})`},R4=ab;var lb=(...r)=>{let e=he(r,"lab"),t=ur(r)||"lab";return e[0]=v0(e[0])+"%",e[1]=v0(e[1]),e[2]=v0(e[2]),t==="laba"||e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`lab(${e.join(" ")})`},O4=lb;var cb=(...r)=>{let e=he(r,"lch"),t=ur(r)||"lab";return e[0]=v0(e[0])+"%",e[1]=v0(e[1]),e[2]=isNaN(e[2])?"none":v0(e[2])+"deg",t==="lcha"||e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`lch(${e.join(" ")})`},G4=cb;var ub=(...r)=>{let e=he(r,"lab");return e[0]=v0(e[0]*100)+"%",e[1]=Tl(e[1]),e[2]=Tl(e[2]),e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`oklab(${e.join(" ")})`},U4=ub;var hb=(...r)=>{let[e,t,i,...s]=he(r,"rgb"),[n,o,a]=Uo(e,t,i),[l,c,h]=oh(n,o,a);return[l,c,h,...s.length>0&&s[0]<1?[s[0]]:[]]},uh=hb;var db=(...r)=>{let e=he(r,"lch");return e[0]=v0(e[0]*100)+"%",e[1]=Tl(e[1]),e[2]=isNaN(e[2])?"none":v0(e[2])+"deg",e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`oklch(${e.join(" ")})`},V4=db;var{round:bp}=Math,pb=(...r)=>{let e=he(r,"rgba"),t=ur(r)||"rgb";if(t.substr(0,3)==="hsl")return R4(ah(e),t);if(t.substr(0,3)==="lab"){let i=Gs();Ir("d50");let s=O4(Po(e),t);return Ir(i),s}if(t.substr(0,3)==="lch"){let i=Gs();Ir("d50");let s=G4(Fl(e),t);return Ir(i),s}return t.substr(0,5)==="oklab"?U4(Uo(e)):t.substr(0,5)==="oklch"?V4(uh(e)):(e[0]=bp(e[0]),e[1]=bp(e[1]),e[2]=bp(e[2]),(t==="rgba"||e.length>3&&e[3]<1)&&(e[3]="/ "+(e.length>3?e[3]:1),t="rgba"),`${t.substr(0,3)}(${e.slice(0,t==="rgb"?3:4).join(" ")})`)},z4=pb;var fb=(...r)=>{r=he(r,"lch");let[e,t,i,...s]=r,[n,o,a]=nh(e,t,i),[l,c,h]=Go(n,o,a);return[l,c,h,...s.length>0&&s[0]<1?[s[0]]:[]]},hh=fb;var ns=/((?:-?\d+)|(?:-?\d+(?:\.\d+)?)%|none)/.source,ii=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%?)|none)/.source,dh=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%)|none)/.source,Mr=/\s*/.source,zo=/\s+/.source,Ep=/\s*,\s*/.source,ph=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)(?:deg)?)|none)/.source,Wo=/\s*(?:\/\s*((?:[01]|[01]?\.\d+)|\d+(?:\.\d+)?%))?/.source,W4=new RegExp("^rgba?\\("+Mr+[ns,ns,ns].join(zo)+Wo+"\\)$"),H4=new RegExp("^rgb\\("+Mr+[ns,ns,ns].join(Ep)+Mr+"\\)$"),j4=new RegExp("^rgba\\("+Mr+[ns,ns,ns,ii].join(Ep)+Mr+"\\)$"),$4=new RegExp("^hsla?\\("+Mr+[ph,dh,dh].join(zo)+Wo+"\\)$"),q4=new RegExp("^hsl?\\("+Mr+[ph,dh,dh].join(Ep)+Mr+"\\)$"),Y4=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,X4=new RegExp("^lab\\("+Mr+[ii,ii,ii].join(zo)+Wo+"\\)$"),K4=new RegExp("^lch\\("+Mr+[ii,ii,ph].join(zo)+Wo+"\\)$"),Z4=new RegExp("^oklab\\("+Mr+[ii,ii,ii].join(zo)+Wo+"\\)$"),Q4=new RegExp("^oklch\\("+Mr+[ii,ii,ph].join(zo)+Wo+"\\)$"),{round:J4}=Math,Vo=r=>r.map((e,t)=>t<=2?Ar(J4(e),0,255):e),Kt=(r,e=0,t=100,i=!1)=>(typeof r=="string"&&r.endsWith("%")&&(r=parseFloat(r.substring(0,r.length-1))/100,i?r=e+(r+1)*.5*(t-e):r=e+r*(t-e)),+r),P0=(r,e)=>r==="none"?e:r,e7=r=>{if(r=r.toLowerCase().trim(),r==="transparent")return[0,0,0,0];let e;if(Fe.format.named)try{return Fe.format.named(r)}catch{}if((e=r.match(W4))||(e=r.match(H4))){let t=e.slice(1,4);for(let s=0;s<3;s++)t[s]=+Kt(P0(t[s],0),0,255);t=Vo(t);let i=e[4]!==void 0?+Kt(e[4],0,1):1;return t[3]=i,t}if(e=r.match(j4)){let t=e.slice(1,5);for(let i=0;i<4;i++)t[i]=+Kt(t[i],0,255);return t}if((e=r.match($4))||(e=r.match(q4))){let t=e.slice(1,4);t[0]=+P0(t[0].replace("deg",""),0),t[1]=+Kt(P0(t[1],0),0,100)*.01,t[2]=+Kt(P0(t[2],0),0,100)*.01;let i=Vo(Al(t)),s=e[4]!==void 0?+Kt(e[4],0,1):1;return i[3]=s,i}if(e=r.match(Y4)){let t=e.slice(1,4);t[1]*=.01,t[2]*=.01;let i=Al(t);for(let s=0;s<3;s++)i[s]=J4(i[s]);return i[3]=+e[4],i}if(e=r.match(X4)){let t=e.slice(1,4);t[0]=Kt(P0(t[0],0),0,100),t[1]=Kt(P0(t[1],0),-125,125,!0),t[2]=Kt(P0(t[2],0),-125,125,!0);let i=Gs();Ir("d50");let s=Vo(No(t));Ir(i);let n=e[4]!==void 0?+Kt(e[4],0,1):1;return s[3]=n,s}if(e=r.match(K4)){let t=e.slice(1,4);t[0]=Kt(t[0],0,100),t[1]=Kt(P0(t[1],0),0,150,!1),t[2]=+P0(t[2].replace("deg",""),0);let i=Gs();Ir("d50");let s=Vo(Bo(t));Ir(i);let n=e[4]!==void 0?+Kt(e[4],0,1):1;return s[3]=n,s}if(e=r.match(Z4)){let t=e.slice(1,4);t[0]=Kt(P0(t[0],0),0,1),t[1]=Kt(P0(t[1],0),-.4,.4,!0),t[2]=Kt(P0(t[2],0),-.4,.4,!0);let i=Vo(Go(t)),s=e[4]!==void 0?+Kt(e[4],0,1):1;return i[3]=s,i}if(e=r.match(Q4)){let t=e.slice(1,4);t[0]=Kt(P0(t[0],0),0,1),t[1]=Kt(P0(t[1],0),0,.4,!1),t[2]=+P0(t[2].replace("deg",""),0);let i=Vo(hh(t)),s=e[4]!==void 0?+Kt(e[4],0,1):1;return i[3]=s,i}};e7.test=r=>W4.test(r)||$4.test(r)||X4.test(r)||K4.test(r)||Z4.test(r)||Q4.test(r)||H4.test(r)||j4.test(r)||q4.test(r)||Y4.test(r)||r==="transparent";var Sp=e7;Y.prototype.css=function(r){return z4(this._rgb,r)};var gb=(...r)=>new Y(...r,"css");Le.css=gb;Fe.format.css=Sp;Fe.autodetect.push({p:5,test:(r,...e)=>{if(!e.length&&Ee(r)==="string"&&Sp.test(r))return"css"}});Fe.format.gl=(...r)=>{let e=he(r,"rgba");return e[0]*=255,e[1]*=255,e[2]*=255,e};var mb=(...r)=>new Y(...r,"gl");Le.gl=mb;Y.prototype.gl=function(){let r=this._rgb;return[r[0]/255,r[1]/255,r[2]/255,r[3]]};Y.prototype.hex=function(r){return sh(this._rgb,r)};var yb=(...r)=>new Y(...r,"hex");Le.hex=yb;Fe.format.hex=rh;Fe.autodetect.push({p:4,test:(r,...e)=>{if(!e.length&&Ee(r)==="string"&&[3,4,5,6,7,8,9].indexOf(r.length)>=0)return"hex"}});var{log:fh}=Math,vb=r=>{let e=r/100,t,i,s;return e<66?(t=255,i=e<6?0:-155.25485562709179-.44596950469579133*(i=e-2)+104.49216199393888*fh(i),s=e<20?0:-254.76935184120902+.8274096064007395*(s=e-10)+115.67994401066147*fh(s)):(t=351.97690566805693+.114206453784165*(t=e-55)-40.25366309332127*fh(t),i=325.4494125711974+.07943456536662342*(i=e-50)-28.0852963507957*fh(i),s=255),[t,i,s,1]},gh=vb;var{round:xb}=Math,Db=(...r)=>{let e=he(r,"rgb"),t=e[0],i=e[2],s=1e3,n=4e4,o=.4,a;for(;n-s>o;){a=(n+s)*.5;let l=gh(a);l[2]/l[0]>=i/t?n=a:s=a}return xb(a)},t7=Db;Y.prototype.temp=Y.prototype.kelvin=Y.prototype.temperature=function(){return t7(this._rgb)};var Cp=(...r)=>new Y(...r,"temp");Object.assign(Le,{temp:Cp,kelvin:Cp,temperature:Cp});Fe.format.temp=Fe.format.kelvin=Fe.format.temperature=gh;Y.prototype.oklch=function(){return uh(this._rgb)};var bb=(...r)=>new Y(...r,"oklch");Object.assign(Le,{oklch:bb});Fe.format.oklch=hh;Fe.autodetect.push({p:2,test:(...r)=>{if(r=he(r,"oklch"),Ee(r)==="array"&&r.length===3)return"oklch"}});Object.assign(Le,{analyze:vp,average:u4,bezier:h4,blend:p4,brewer:M4,Color:Y,colors:Os,contrast:y4,contrastAPCA:E4,cubehelix:f4,deltaE:_4,distance:F4,input:Fe,interpolate:wi,limits:xp,mix:wi,random:g4,scale:Gn,scales:k4,valid:A4});var mh=Le;function wp(r,e){return r>>e&255}var r7=16,i7=8,s7=0;function os(r,e,t){return(r<e.toString(16).padStart(2,"0"));function as(r,e){return e===void 0?"#"+Un[$0(r)]+Un[q0(r)]+Un[Y0(r)]:"#"+Un[$0(r)]+Un[q0(r)]+Un[Y0(r)]+Un[Math.round(e*255)]}function Ti(r){let e=0,t=0,i=0,s=255;switch(r.length){case 4:{e=(Zt(r.charCodeAt(1))<<4)+Zt(r.charCodeAt(1)),t=(Zt(r.charCodeAt(2))<<4)+Zt(r.charCodeAt(2)),i=(Zt(r.charCodeAt(3))<<4)+Zt(r.charCodeAt(3));break}case 7:{e=(Zt(r.charCodeAt(1))<<4)+Zt(r.charCodeAt(2)),t=(Zt(r.charCodeAt(3))<<4)+Zt(r.charCodeAt(4)),i=(Zt(r.charCodeAt(5))<<4)+Zt(r.charCodeAt(6));break}case 9:{e=(Zt(r.charCodeAt(1))<<4)+Zt(r.charCodeAt(2)),t=(Zt(r.charCodeAt(3))<<4)+Zt(r.charCodeAt(4)),i=(Zt(r.charCodeAt(5))<<4)+Zt(r.charCodeAt(6)),s=(Zt(r.charCodeAt(7))<<4)+Zt(r.charCodeAt(8));break}default:break}return{rgb:os(e,t,i),a:s}}function Zt(r){return(r&15)+9*(r>>6)}function si(r){try{let e=mh(r);return{rgb:e.num(),a:e.alpha()}}catch(e){let t=document.createElement("canvas"),i=t.getContext("2d");if(!i)throw e;t.width=1,t.height=1,i.fillStyle=r,i.fillRect(0,0,t.width,t.height);let s=i.getImageData(0,0,1,1).data;return{rgb:os(s[0],s[1],s[2]),a:s[3]/255}}}function n7(r,e){return os(Math.clamp($0(r)*e,0,255),Math.clamp(q0(r)*e,0,255),Math.clamp(Y0(r)*e,0,255))}function yh(r,e,t,i=1){if(t<=0)return r;if(t>=1)return e;let s=(l,c)=>Math.round((l**(1/i)*(1-t)+c**(1/i)*t)**i),n=s($0(r),$0(e)),o=s(q0(r),q0(e)),a=s(Y0(r),Y0(e));return os(n,o,a)}var vh={"Perceptually Uniform Sequential":["viridis","plasma","inferno","magma","cividis"],"Sequential colormaps":["Greys","Purples","Blues","Greens","Oranges","Reds","YlOrBr","YlOrRd","OrRd","PuRd","RdPu","BuPu","GnBu","PuBu","YlGnBu","PuBuGn","BuGn","YlGn"],"Sequential (2)":["binary","gist_yarg","gist_gray","gray","bone","pink","spring","summer","autumn","winter","cool","Wistia","hot","afmhot","gist_heat","copper"],Diverging:["PiYG","PRGn","BrBG","PuOr","RdGy","RdBu","RdYlBu","RdYlGn","Spectral","coolwarm","bwr","seismic"],Cyclic:["twilight","twilight_shifted","hsv"],Miscellaneous:["ocean","gist_earth","terrain","gist_stern","gnuplot","gnuplot2","CMRmap","cubehelix","brg","gist_rainbow","rainbow","jet","turbo","nipy_spectral","gist_ncar"]},ce={};ce.Accent={interpolate:!1,colors:[[.498,.7882,.498],[.7451,.6824,.8314],[.9922,.7529,.5255],[1,1,.6],[.2196,.4235,.6902],[.9412,.0078,.498],[.749,.3569,.0902],[.4,.4,.4]]};ce.Blues={interpolate:!0,colors:[[.9686,.9843,1],[.9656,.9823,.999],[.9625,.9804,.998],[.9594,.9784,.997],[.9563,.9764,.9961],[.9532,.9745,.9951],[.9502,.9725,.9941],[.9471,.9705,.9931],[.944,.9686,.9921],[.9409,.9666,.9911],[.9379,.9646,.9902],[.9348,.9627,.9892],[.9317,.9607,.9882],[.9286,.9587,.9872],[.9256,.9568,.9862],[.9225,.9548,.9852],[.9194,.9528,.9843],[.9163,.9508,.9833],[.9133,.9489,.9823],[.9102,.9469,.9813],[.9071,.9449,.9803],[.904,.943,.9793],[.901,.941,.9783],[.8979,.939,.9774],[.8948,.9371,.9764],[.8917,.9351,.9754],[.8887,.9331,.9744],[.8856,.9312,.9734],[.8825,.9292,.9724],[.8794,.9272,.9715],[.8764,.9253,.9705],[.8733,.9233,.9695],[.8702,.9213,.9685],[.8673,.9194,.9675],[.8643,.9174,.9665],[.8614,.9154,.9656],[.8584,.9134,.9646],[.8555,.9115,.9636],[.8525,.9095,.9626],[.8496,.9075,.9616],[.8466,.9056,.9606],[.8436,.9036,.9596],[.8407,.9016,.9587],[.8377,.8997,.9577],[.8348,.8977,.9567],[.8318,.8957,.9557],[.8289,.8938,.9547],[.8259,.8918,.9537],[.823,.8898,.9528],[.82,.8879,.9518],[.8171,.8859,.9508],[.8141,.8839,.9498],[.8112,.882,.9488],[.8082,.88,.9478],[.8053,.878,.9469],[.8023,.876,.9459],[.7994,.8741,.9449],[.7964,.8721,.9439],[.7934,.8701,.9429],[.7905,.8682,.9419],[.7875,.8662,.9409],[.7846,.8642,.94],[.7816,.8623,.939],[.7787,.8603,.938],[.7752,.8583,.9368],[.7703,.8562,.9351],[.7654,.8541,.9334],[.7605,.852,.9317],[.7556,.8499,.9299],[.7506,.8478,.9282],[.7457,.8458,.9265],[.7408,.8437,.9248],[.7359,.8416,.923],[.7309,.8395,.9213],[.726,.8374,.9196],[.7211,.8353,.9179],[.7162,.8332,.9162],[.7113,.8311,.9144],[.7063,.829,.9127],[.7014,.8269,.911],[.6965,.8248,.9093],[.6916,.8227,.9075],[.6867,.8207,.9058],[.6817,.8186,.9041],[.6768,.8165,.9024],[.6719,.8144,.9007],[.667,.8123,.8989],[.6621,.8102,.8972],[.6571,.8081,.8955],[.6522,.806,.8938],[.6473,.8039,.892],[.6424,.8018,.8903],[.6374,.7997,.8886],[.6325,.7976,.8869],[.6276,.7956,.8852],[.6227,.7935,.8834],[.6173,.7909,.8818],[.611,.7874,.8805],[.6047,.784,.8791],[.5984,.7805,.8778],[.5922,.7771,.8764],[.5859,.7736,.8751],[.5796,.7702,.8737],[.5733,.7668,.8724],[.5671,.7633,.871],[.5608,.7599,.8697],[.5545,.7564,.8683],[.5482,.753,.867],[.542,.7495,.8656],[.5357,.7461,.8643],[.5294,.7426,.8629],[.5231,.7392,.8615],[.5169,.7357,.8602],[.5106,.7323,.8588],[.5043,.7289,.8575],[.498,.7254,.8561],[.4918,.722,.8548],[.4855,.7185,.8534],[.4792,.7151,.8521],[.4729,.7116,.8507],[.4667,.7082,.8494],[.4604,.7047,.848],[.4541,.7013,.8467],[.4478,.6979,.8453],[.4416,.6944,.844],[.4353,.691,.8426],[.429,.6875,.8412],[.4227,.6841,.8399],[.4171,.6806,.8382],[.412,.6772,.8363],[.407,.6737,.8343],[.402,.6703,.8323],[.3969,.6669,.8304],[.3919,.6634,.8284],[.3868,.66,.8264],[.3818,.6565,.8245],[.3767,.6531,.8225],[.3717,.6496,.8205],[.3666,.6462,.8185],[.3616,.6427,.8166],[.3566,.6393,.8146],[.3515,.6358,.8126],[.3465,.6324,.8107],[.3414,.629,.8087],[.3364,.6255,.8067],[.3313,.6221,.8048],[.3263,.6186,.8028],[.3212,.6152,.8008],[.3162,.6117,.7989],[.3112,.6083,.7969],[.3061,.6048,.7949],[.3011,.6014,.793],[.296,.598,.791],[.291,.5945,.789],[.2859,.5911,.7871],[.2809,.5876,.7851],[.2758,.5842,.7831],[.2708,.5807,.7811],[.2658,.5773,.7792],[.2607,.5738,.7772],[.2563,.57,.7752],[.2522,.566,.7731],[.2482,.5619,.771],[.2441,.5578,.7689],[.24,.5538,.7668],[.236,.5497,.7647],[.2319,.5457,.7626],[.2279,.5416,.7605],[.2238,.5375,.7584],[.2197,.5335,.7563],[.2157,.5294,.7542],[.2116,.5254,.7522],[.2076,.5213,.7501],[.2035,.5172,.748],[.1994,.5132,.7459],[.1954,.5091,.7438],[.1913,.5051,.7417],[.1873,.501,.7396],[.1832,.4969,.7375],[.1791,.4929,.7354],[.1751,.4888,.7333],[.171,.4848,.7312],[.167,.4807,.7292],[.1629,.4766,.7271],[.1588,.4726,.725],[.1548,.4685,.7229],[.1507,.4645,.7208],[.1467,.4604,.7187],[.1426,.4563,.7166],[.1385,.4523,.7145],[.1345,.4482,.7124],[.1304,.4442,.7103],[.1271,.4402,.7075],[.124,.4362,.7044],[.121,.4323,.7013],[.1179,.4284,.6983],[.1148,.4244,.6952],[.1117,.4205,.6921],[.1087,.4166,.689],[.1056,.4126,.686],[.1025,.4087,.6829],[.0994,.4048,.6798],[.0963,.4008,.6767],[.0933,.3969,.6737],[.0902,.3929,.6706],[.0871,.389,.6675],[.084,.3851,.6644],[.081,.3811,.6614],[.0779,.3772,.6583],[.0748,.3733,.6552],[.0717,.3693,.6521],[.0687,.3654,.6491],[.0656,.3614,.646],[.0625,.3575,.6429],[.0594,.3536,.6398],[.0564,.3496,.6368],[.0533,.3457,.6337],[.0502,.3418,.6306],[.0471,.3378,.6275],[.0441,.3339,.6245],[.041,.33,.6214],[.0379,.326,.6183],[.0348,.3221,.6152],[.0318,.3181,.6121],[.0314,.3141,.6065],[.0314,.31,.6005],[.0314,.306,.5944],[.0314,.3019,.5884],[.0314,.2979,.5824],[.0314,.2938,.5763],[.0314,.2897,.5703],[.0314,.2857,.5643],[.0314,.2816,.5583],[.0314,.2776,.5522],[.0314,.2735,.5462],[.0314,.2694,.5402],[.0314,.2654,.5341],[.0314,.2613,.5281],[.0314,.2573,.5221],[.0314,.2532,.5161],[.0314,.2491,.51],[.0314,.2451,.504],[.0314,.241,.498],[.0314,.237,.4919],[.0314,.2329,.4859],[.0314,.2288,.4799],[.0314,.2248,.4739],[.0314,.2207,.4678],[.0314,.2167,.4618],[.0314,.2126,.4558],[.0314,.2085,.4498],[.0314,.2045,.4437],[.0314,.2004,.4377],[.0314,.1964,.4317],[.0314,.1923,.4256],[.0314,.1882,.4196]]};ce.BrBG={interpolate:!0,colors:[[.3294,.1882,.0196],[.338,.1933,.0204],[.3466,.1984,.0211],[.3552,.2035,.0219],[.3639,.2085,.0227],[.3725,.2136,.0235],[.3811,.2187,.0242],[.3897,.2238,.025],[.3983,.2288,.0258],[.4069,.2339,.0265],[.4155,.239,.0273],[.4241,.2441,.0281],[.4328,.2491,.0288],[.4414,.2542,.0296],[.45,.2593,.0304],[.4586,.2644,.0311],[.4672,.2694,.0319],[.4758,.2745,.0327],[.4844,.2796,.0334],[.493,.2847,.0342],[.5017,.2897,.035],[.5103,.2948,.0358],[.5189,.2999,.0365],[.5275,.305,.0373],[.5361,.31,.0381],[.5447,.3151,.0388],[.5529,.3213,.0419],[.5608,.3287,.0473],[.5686,.3361,.0527],[.5765,.3435,.0581],[.5843,.3509,.0634],[.5922,.3582,.0688],[.6,.3656,.0742],[.6078,.373,.0796],[.6157,.3804,.085],[.6235,.3878,.0903],[.6314,.3952,.0957],[.6392,.4025,.1011],[.6471,.4099,.1065],[.6549,.4173,.1119],[.6627,.4247,.1173],[.6706,.4321,.1226],[.6784,.4394,.128],[.6863,.4468,.1334],[.6941,.4542,.1388],[.702,.4616,.1442],[.7098,.469,.1496],[.7176,.4764,.1549],[.7255,.4837,.1603],[.7333,.4911,.1657],[.7412,.4985,.1711],[.749,.5059,.1765],[.7539,.5159,.1888],[.7589,.5259,.2011],[.7638,.5359,.2134],[.7687,.5459,.2257],[.7736,.5559,.238],[.7785,.5659,.2503],[.7835,.5759,.2626],[.7884,.5859,.2749],[.7933,.5958,.2872],[.7982,.6058,.2995],[.8032,.6158,.3118],[.8081,.6258,.3241],[.813,.6358,.3364],[.8179,.6458,.3487],[.8228,.6558,.361],[.8278,.6658,.3733],[.8327,.6758,.3856],[.8376,.6858,.3979],[.8425,.6958,.4102],[.8474,.7058,.4225],[.8524,.7158,.4348],[.8573,.7258,.4471],[.8622,.7358,.4594],[.8671,.7458,.4717],[.872,.7558,.484],[.8763,.7637,.4956],[.8798,.7696,.5063],[.8834,.7754,.5171],[.8869,.7812,.5279],[.8904,.7871,.5386],[.894,.7929,.5494],[.8975,.7988,.5602],[.901,.8046,.5709],[.9046,.8105,.5817],[.9081,.8163,.5925],[.9116,.8221,.6032],[.9152,.828,.614],[.9187,.8338,.6248],[.9223,.8397,.6355],[.9258,.8455,.6463],[.9293,.8514,.6571],[.9329,.8572,.6678],[.9364,.8631,.6786],[.9399,.8689,.6894],[.9435,.8747,.7001],[.947,.8806,.7109],[.9506,.8864,.7216],[.9541,.8923,.7324],[.9576,.8981,.7432],[.9612,.904,.7539],[.9647,.9098,.7647],[.9646,.9118,.7724],[.9644,.9138,.7801],[.9642,.9158,.7878],[.9641,.9178,.7955],[.9639,.9198,.8032],[.9638,.9218,.8108],[.9636,.9238,.8185],[.9635,.9258,.8262],[.9633,.9278,.8339],[.9632,.9298,.8416],[.963,.9318,.8493],[.9629,.9338,.857],[.9627,.9358,.8647],[.9626,.9378,.8724],[.9624,.9398,.88],[.9622,.9418,.8877],[.9621,.9438,.8954],[.9619,.9458,.9031],[.9618,.9478,.9108],[.9616,.9498,.9185],[.9615,.9518,.9262],[.9613,.9538,.9339],[.9612,.9558,.9416],[.961,.9578,.9493],[.9609,.9598,.9569],[.9572,.9599,.9596],[.9502,.9582,.9571],[.9431,.9566,.9546],[.936,.9549,.9522],[.929,.9532,.9497],[.9219,.9515,.9473],[.9148,.9498,.9448],[.9077,.9481,.9423],[.9007,.9464,.9399],[.8936,.9447,.9374],[.8865,.943,.9349],[.8794,.9413,.9325],[.8724,.9396,.93],[.8653,.9379,.9276],[.8582,.9363,.9251],[.8511,.9346,.9226],[.8441,.9329,.9202],[.837,.9312,.9177],[.8299,.9295,.9153],[.8228,.9278,.9128],[.8158,.9261,.9103],[.8087,.9244,.9079],[.8016,.9227,.9054],[.7945,.921,.903],[.7875,.9193,.9005],[.7804,.9176,.898],[.7695,.9132,.8925],[.7586,.9087,.887],[.7476,.9043,.8814],[.7367,.8998,.8759],[.7258,.8953,.8704],[.7149,.8909,.8648],[.704,.8864,.8593],[.693,.882,.8537],[.6821,.8775,.8482],[.6712,.873,.8427],[.6603,.8686,.8371],[.6494,.8641,.8316],[.6384,.8597,.8261],[.6275,.8552,.8205],[.6166,.8507,.815],[.6057,.8463,.8095],[.5948,.8418,.8039],[.5839,.8374,.7984],[.5729,.8329,.7928],[.562,.8285,.7873],[.5511,.824,.7818],[.5402,.8195,.7762],[.5293,.8151,.7707],[.5183,.8106,.7652],[.5074,.8062,.7596],[.4962,.7998,.753],[.4847,.7915,.7453],[.4731,.7832,.7376],[.4616,.7749,.73],[.4501,.7666,.7223],[.4385,.7582,.7146],[.427,.7499,.7069],[.4155,.7416,.6992],[.4039,.7333,.6915],[.3924,.725,.6838],[.3809,.7167,.6761],[.3693,.7084,.6684],[.3578,.7001,.6607],[.3463,.6918,.6531],[.3347,.6835,.6454],[.3232,.6752,.6377],[.3116,.6669,.63],[.3001,.6586,.6223],[.2886,.6503,.6146],[.277,.642,.6069],[.2655,.6337,.5992],[.254,.6254,.5915],[.2424,.6171,.5839],[.2309,.6088,.5762],[.2194,.6005,.5685],[.2078,.5922,.5608],[.1998,.5846,.5532],[.1918,.5771,.5457],[.1839,.5696,.5382],[.1759,.562,.5306],[.1679,.5545,.5231],[.1599,.5469,.5156],[.1519,.5394,.508],[.1439,.5319,.5005],[.1359,.5243,.493],[.1279,.5168,.4854],[.1199,.5093,.4779],[.1119,.5017,.4704],[.1039,.4942,.4628],[.0959,.4867,.4553],[.0879,.4791,.4478],[.0799,.4716,.4402],[.0719,.4641,.4327],[.0639,.4565,.4251],[.0559,.449,.4176],[.0479,.4414,.4101],[.0399,.4339,.4025],[.0319,.4264,.395],[.0239,.4188,.3875],[.0159,.4113,.3799],[.0079,.4038,.3724],[.0038,.3968,.3651],[.0037,.3903,.358],[.0035,.3839,.3509],[.0034,.3774,.3439],[.0032,.3709,.3368],[.0031,.3645,.3297],[.0029,.358,.3226],[.0028,.3516,.3156],[.0026,.3451,.3085],[.0025,.3386,.3014],[.0023,.3322,.2943],[.0022,.3257,.2873],[.002,.3193,.2802],[.0018,.3128,.2731],[.0017,.3063,.2661],[.0015,.2999,.259],[.0014,.2934,.2519],[.0012,.287,.2448],[.0011,.2805,.2378],[9e-4,.274,.2307],[8e-4,.2676,.2236],[6e-4,.2611,.2165],[5e-4,.2547,.2095],[3e-4,.2482,.2024],[2e-4,.2418,.1953],[0,.2353,.1882]]};ce.BuGn={interpolate:!0,colors:[[.9686,.9882,.9922],[.9664,.9874,.9917],[.9642,.9865,.9912],[.962,.9857,.9907],[.9598,.9848,.9902],[.9576,.9839,.9897],[.9553,.9831,.9892],[.9531,.9822,.9887],[.9509,.9813,.9882],[.9487,.9805,.9877],[.9465,.9796,.9872],[.9443,.9788,.9867],[.9421,.9779,.9863],[.9398,.977,.9858],[.9376,.9762,.9853],[.9354,.9753,.9848],[.9332,.9745,.9843],[.931,.9736,.9838],[.9288,.9727,.9833],[.9266,.9719,.9828],[.9243,.971,.9823],[.9221,.9701,.9818],[.9199,.9693,.9813],[.9177,.9684,.9808],[.9155,.9676,.9803],[.9133,.9667,.9799],[.911,.9658,.9794],[.9088,.965,.9789],[.9066,.9641,.9784],[.9044,.9633,.9779],[.9022,.9624,.9774],[.9,.9615,.9769],[.8977,.9606,.9762],[.8946,.9595,.9738],[.8915,.9584,.9715],[.8884,.9573,.9692],[.8854,.9562,.9668],[.8823,.9551,.9645],[.8792,.954,.9622],[.8761,.9529,.9598],[.873,.9518,.9575],[.87,.9507,.9551],[.8669,.9496,.9528],[.8638,.9485,.9505],[.8607,.9474,.9481],[.8577,.9463,.9458],[.8546,.9451,.9435],[.8515,.944,.9411],[.8484,.9429,.9388],[.8454,.9418,.9364],[.8423,.9407,.9341],[.8392,.9396,.9318],[.8361,.9385,.9294],[.8331,.9374,.9271],[.83,.9363,.9248],[.8269,.9352,.9224],[.8238,.9341,.9201],[.8208,.933,.9177],[.8177,.9319,.9154],[.8146,.9307,.9131],[.8115,.9296,.9107],[.8085,.9285,.9084],[.8054,.9274,.9061],[.8023,.9263,.9037],[.7984,.9249,.9011],[.7922,.9224,.8975],[.7859,.92,.8939],[.7796,.9175,.8904],[.7733,.915,.8868],[.7671,.9126,.8832],[.7608,.9101,.8797],[.7545,.9077,.8761],[.7482,.9052,.8725],[.742,.9027,.869],[.7357,.9003,.8654],[.7294,.8978,.8618],[.7231,.8953,.8583],[.7169,.8929,.8547],[.7106,.8904,.8511],[.7043,.888,.8476],[.698,.8855,.844],[.6918,.883,.8404],[.6855,.8806,.8368],[.6792,.8781,.8333],[.6729,.8757,.8297],[.6667,.8732,.8261],[.6604,.8707,.8226],[.6541,.8683,.819],[.6478,.8658,.8154],[.6416,.8634,.8119],[.6353,.8609,.8083],[.629,.8584,.8047],[.6227,.856,.8012],[.6165,.8535,.7976],[.6102,.8511,.794],[.6039,.8486,.7905],[.5976,.846,.7865],[.5914,.8433,.782],[.5851,.8406,.7774],[.5788,.8379,.7729],[.5725,.8352,.7683],[.5663,.8325,.7638],[.56,.8298,.7592],[.5537,.8271,.7547],[.5475,.8244,.7501],[.5412,.8217,.7456],[.5349,.819,.741],[.5286,.8163,.7365],[.5224,.8136,.7319],[.5161,.8109,.7274],[.5098,.8082,.7228],[.5035,.8054,.7182],[.4973,.8027,.7137],[.491,.8,.7091],[.4847,.7973,.7046],[.4784,.7946,.7],[.4722,.7919,.6955],[.4659,.7892,.6909],[.4596,.7865,.6864],[.4533,.7838,.6818],[.4471,.7811,.6773],[.4408,.7784,.6727],[.4345,.7757,.6682],[.4282,.773,.6636],[.422,.7703,.6591],[.4157,.7676,.6545],[.4094,.7648,.65],[.4031,.7621,.6454],[.3977,.7596,.6403],[.3932,.7571,.6346],[.3886,.7546,.629],[.3841,.7522,.6233],[.3795,.7497,.6177],[.375,.7473,.612],[.3704,.7448,.6064],[.3659,.7423,.6007],[.3613,.7399,.595],[.3568,.7374,.5894],[.3522,.7349,.5837],[.3477,.7325,.5781],[.3431,.73,.5724],[.3385,.7276,.5667],[.334,.7251,.5611],[.3294,.7226,.5554],[.3249,.7202,.5498],[.3203,.7177,.5441],[.3158,.7153,.5384],[.3112,.7128,.5328],[.3067,.7103,.5271],[.3021,.7079,.5215],[.2976,.7054,.5158],[.293,.703,.5101],[.2885,.7005,.5045],[.2839,.698,.4988],[.2794,.6956,.4932],[.2748,.6931,.4875],[.2703,.6907,.4818],[.2657,.6882,.4762],[.2612,.6857,.4705],[.2566,.6833,.4649],[.2526,.6797,.459],[.2489,.6754,.4529],[.2452,.671,.4469],[.2415,.6667,.4409],[.2378,.6624,.4349],[.2341,.6581,.4288],[.2304,.6538,.4228],[.2268,.6495,.4168],[.2231,.6452,.4107],[.2194,.6409,.4047],[.2157,.6366,.3987],[.212,.6323,.3927],[.2083,.628,.3866],[.2046,.6237,.3806],[.2009,.6194,.3746],[.1972,.6151,.3686],[.1935,.6108,.3625],[.1899,.6065,.3565],[.1862,.6022,.3505],[.1825,.5978,.3444],[.1788,.5935,.3384],[.1751,.5892,.3324],[.1714,.5849,.3264],[.1677,.5806,.3203],[.164,.5763,.3143],[.1603,.572,.3083],[.1566,.5677,.3022],[.1529,.5634,.2962],[.1493,.5591,.2902],[.1456,.5548,.2842],[.1419,.5505,.2781],[.1382,.5462,.2721],[.134,.5423,.2683],[.1297,.5386,.2652],[.1254,.5349,.2621],[.1211,.5313,.2591],[.1168,.5276,.256],[.1125,.5239,.2529],[.1082,.5202,.2498],[.1039,.5165,.2468],[.0996,.5128,.2437],[.0953,.5091,.2406],[.091,.5054,.2375],[.0867,.5017,.2344],[.0824,.498,.2314],[.078,.4943,.2283],[.0737,.4907,.2252],[.0694,.487,.2221],[.0651,.4833,.2191],[.0608,.4796,.216],[.0565,.4759,.2129],[.0522,.4722,.2098],[.0479,.4685,.2068],[.0436,.4648,.2037],[.0393,.4611,.2006],[.035,.4574,.1975],[.0307,.4537,.1945],[.0264,.4501,.1914],[.0221,.4464,.1883],[.0178,.4427,.1852],[.0135,.439,.1822],[.0092,.4353,.1791],[.0048,.4316,.176],[5e-4,.4279,.1729],[0,.423,.1707],[0,.418,.1686],[0,.4129,.1665],[0,.4079,.1644],[0,.4029,.1624],[0,.3978,.1603],[0,.3928,.1582],[0,.3877,.1561],[0,.3827,.154],[0,.3776,.1519],[0,.3726,.1498],[0,.3676,.1477],[0,.3625,.1456],[0,.3575,.1435],[0,.3524,.1414],[0,.3474,.1393],[0,.3423,.1373],[0,.3373,.1352],[0,.3322,.1331],[0,.3272,.131],[0,.3222,.1289],[0,.3171,.1268],[0,.3121,.1247],[0,.307,.1226],[0,.302,.1205],[0,.2969,.1184],[0,.2919,.1163],[0,.2868,.1142],[0,.2818,.1122],[0,.2768,.1101],[0,.2717,.108],[0,.2667,.1059]]};ce.BuPu={interpolate:!0,colors:[[.9686,.9882,.9922],[.9658,.9863,.991],[.963,.9843,.9899],[.9601,.9823,.9888],[.9573,.9804,.9877],[.9545,.9784,.9866],[.9516,.9764,.9855],[.9488,.9745,.9844],[.946,.9725,.9833],[.9432,.9705,.9822],[.9403,.9686,.9811],[.9375,.9666,.98],[.9347,.9646,.9789],[.9318,.9626,.9778],[.929,.9607,.9767],[.9262,.9587,.9755],[.9234,.9567,.9744],[.9205,.9548,.9733],[.9177,.9528,.9722],[.9149,.9508,.9711],[.912,.9489,.97],[.9092,.9469,.9689],[.9064,.9449,.9678],[.9035,.943,.9667],[.9007,.941,.9656],[.8979,.939,.9645],[.8951,.9371,.9634],[.8922,.9351,.9623],[.8894,.9331,.9612],[.8866,.9311,.96],[.8837,.9292,.9589],[.8809,.9272,.9578],[.8779,.9251,.9566],[.8739,.922,.9549],[.8698,.919,.9532],[.8657,.9159,.9515],[.8617,.9128,.9498],[.8576,.9097,.948],[.8536,.9067,.9463],[.8495,.9036,.9446],[.8454,.9005,.9429],[.8414,.8974,.9411],[.8373,.8943,.9394],[.8333,.8913,.9377],[.8292,.8882,.936],[.8251,.8851,.9343],[.8211,.882,.9325],[.817,.879,.9308],[.813,.8759,.9291],[.8089,.8728,.9274],[.8048,.8697,.9256],[.8008,.8667,.9239],[.7967,.8636,.9222],[.7927,.8605,.9205],[.7886,.8574,.9188],[.7845,.8544,.917],[.7805,.8513,.9153],[.7764,.8482,.9136],[.7724,.8451,.9119],[.7683,.8421,.9101],[.7642,.839,.9084],[.7602,.8359,.9067],[.7561,.8328,.905],[.7521,.8298,.9033],[.748,.8267,.9016],[.7439,.8239,.9001],[.7399,.8211,.8986],[.7358,.8183,.8972],[.7318,.8154,.8957],[.7277,.8126,.8942],[.7236,.8098,.8927],[.7196,.8069,.8913],[.7155,.8041,.8898],[.7115,.8013,.8883],[.7074,.7984,.8868],[.7033,.7956,.8854],[.6993,.7928,.8839],[.6952,.79,.8824],[.6912,.7871,.8809],[.6871,.7843,.8794],[.683,.7815,.878],[.679,.7786,.8765],[.6749,.7758,.875],[.6709,.773,.8735],[.6668,.7701,.8721],[.6627,.7673,.8706],[.6587,.7645,.8691],[.6546,.7617,.8676],[.6506,.7588,.8662],[.6465,.756,.8647],[.6424,.7532,.8632],[.6384,.7503,.8617],[.6343,.7475,.8603],[.6303,.7447,.8588],[.6262,.7419,.8573],[.6221,.739,.8558],[.6188,.7355,.854],[.6166,.7308,.8515],[.6143,.7262,.8491],[.6121,.7215,.8466],[.6099,.7168,.8441],[.6077,.7121,.8417],[.6055,.7075,.8392],[.6033,.7028,.8368],[.6011,.6981,.8343],[.5988,.6934,.8318],[.5966,.6888,.8294],[.5944,.6841,.8269],[.5922,.6794,.8245],[.59,.6747,.822],[.5878,.67,.8195],[.5856,.6654,.8171],[.5833,.6607,.8146],[.5811,.656,.8121],[.5789,.6513,.8097],[.5767,.6467,.8072],[.5745,.642,.8048],[.5723,.6373,.8023],[.5701,.6326,.7998],[.5678,.628,.7974],[.5656,.6233,.7949],[.5634,.6186,.7925],[.5612,.6139,.79],[.559,.6093,.7875],[.5568,.6046,.7851],[.5546,.5999,.7826],[.5523,.5952,.7802],[.5501,.5906,.7777],[.549,.5856,.7752],[.549,.5803,.7726],[.549,.575,.77],[.549,.5697,.7674],[.549,.5644,.7648],[.549,.5591,.7623],[.549,.5538,.7597],[.549,.5486,.7571],[.549,.5433,.7545],[.549,.538,.7519],[.549,.5327,.7493],[.549,.5274,.7468],[.549,.5221,.7442],[.549,.5168,.7416],[.549,.5115,.739],[.549,.5062,.7364],[.549,.5009,.7338],[.549,.4957,.7313],[.549,.4904,.7287],[.549,.4851,.7261],[.549,.4798,.7235],[.549,.4745,.7209],[.549,.4692,.7183],[.549,.4639,.7158],[.549,.4586,.7132],[.549,.4533,.7106],[.549,.448,.708],[.549,.4428,.7054],[.549,.4375,.7028],[.549,.4322,.7003],[.549,.4269,.6977],[.549,.4216,.6951],[.5487,.4164,.6926],[.5482,.4112,.6901],[.5477,.406,.6877],[.5472,.4009,.6852],[.5467,.3957,.6827],[.5463,.3905,.6803],[.5458,.3854,.6778],[.5453,.3802,.6754],[.5448,.375,.6729],[.5443,.3699,.6704],[.5438,.3647,.668],[.5433,.3595,.6655],[.5428,.3544,.6631],[.5423,.3492,.6606],[.5418,.344,.6581],[.5413,.3389,.6557],[.5408,.3337,.6532],[.5403,.3285,.6507],[.5399,.3234,.6483],[.5394,.3182,.6458],[.5389,.313,.6434],[.5384,.3079,.6409],[.5379,.3027,.6384],[.5374,.2975,.636],[.5369,.2924,.6335],[.5364,.2872,.6311],[.5359,.282,.6286],[.5354,.2769,.6261],[.5349,.2717,.6237],[.5344,.2665,.6212],[.5339,.2614,.6188],[.5335,.2562,.6163],[.5327,.2503,.6126],[.5318,.2441,.6086],[.531,.238,.6045],[.5301,.2318,.6005],[.5292,.2257,.5964],[.5284,.2195,.5923],[.5275,.2134,.5883],[.5267,.2072,.5842],[.5258,.2011,.5802],[.5249,.1949,.5761],[.5241,.1888,.572],[.5232,.1826,.568],[.5224,.1765,.5639],[.5215,.1703,.5599],[.5206,.1642,.5558],[.5198,.158,.5517],[.5189,.1519,.5477],[.518,.1457,.5436],[.5172,.1396,.5396],[.5163,.1334,.5355],[.5155,.1273,.5314],[.5146,.1211,.5274],[.5137,.115,.5233],[.5129,.1088,.5193],[.512,.1027,.5152],[.5112,.0965,.5111],[.5103,.0903,.5071],[.5094,.0842,.503],[.5086,.078,.499],[.5077,.0719,.4949],[.5069,.0657,.4908],[.506,.0596,.4868],[.5003,.0572,.481],[.4939,.0554,.475],[.4875,.0535,.4689],[.4811,.0517,.4629],[.4747,.0498,.4569],[.4683,.048,.4509],[.4619,.0461,.4448],[.4555,.0443,.4388],[.4491,.0424,.4328],[.4427,.0406,.4267],[.4363,.0388,.4207],[.4299,.0369,.4147],[.4235,.0351,.4087],[.4171,.0332,.4026],[.4107,.0314,.3966],[.4043,.0295,.3906],[.3979,.0277,.3845],[.3915,.0258,.3785],[.3851,.024,.3725],[.3787,.0221,.3665],[.3723,.0203,.3604],[.3659,.0185,.3544],[.3595,.0166,.3484],[.3531,.0148,.3423],[.3467,.0129,.3363],[.3403,.0111,.3303],[.3339,.0092,.3243],[.3276,.0074,.3182],[.3212,.0055,.3122],[.3148,.0037,.3062],[.3084,.0018,.3001],[.302,0,.2941]]};ce.CMRmap={interpolate:!0,colors:[[0,0,0],[.0047,.0047,.0157],[.0094,.0094,.0314],[.0141,.0141,.0471],[.0188,.0188,.0627],[.0235,.0235,.0784],[.0282,.0282,.0941],[.0329,.0329,.1098],[.0376,.0376,.1255],[.0424,.0424,.1412],[.0471,.0471,.1569],[.0518,.0518,.1725],[.0565,.0565,.1882],[.0612,.0612,.2039],[.0659,.0659,.2196],[.0706,.0706,.2353],[.0753,.0753,.251],[.08,.08,.2667],[.0847,.0847,.2824],[.0894,.0894,.298],[.0941,.0941,.3137],[.0988,.0988,.3294],[.1035,.1035,.3451],[.1082,.1082,.3608],[.1129,.1129,.3765],[.1176,.1176,.3922],[.1224,.1224,.4078],[.1271,.1271,.4235],[.1318,.1318,.4392],[.1365,.1365,.4549],[.1412,.1412,.4706],[.1459,.1459,.4863],[.1506,.15,.501],[.1553,.15,.5088],[.16,.15,.5167],[.1647,.15,.5245],[.1694,.15,.5324],[.1741,.15,.5402],[.1788,.15,.548],[.1835,.15,.5559],[.1882,.15,.5637],[.1929,.15,.5716],[.1976,.15,.5794],[.2024,.15,.5873],[.2071,.15,.5951],[.2118,.15,.6029],[.2165,.15,.6108],[.2212,.15,.6186],[.2259,.15,.6265],[.2306,.15,.6343],[.2353,.15,.6422],[.24,.15,.65],[.2447,.15,.6578],[.2494,.15,.6657],[.2541,.15,.6735],[.2588,.15,.6814],[.2635,.15,.6892],[.2682,.15,.6971],[.2729,.15,.7049],[.2776,.15,.7127],[.2824,.15,.7206],[.2871,.15,.7284],[.2918,.15,.7363],[.2965,.15,.7441],[.3024,.1504,.748],[.3118,.152,.7402],[.3212,.1535,.7324],[.3306,.1551,.7245],[.34,.1567,.7167],[.3494,.1582,.7088],[.3588,.1598,.701],[.3682,.1614,.6931],[.3776,.1629,.6853],[.3871,.1645,.6775],[.3965,.1661,.6696],[.4059,.1676,.6618],[.4153,.1692,.6539],[.4247,.1708,.6461],[.4341,.1724,.6382],[.4435,.1739,.6304],[.4529,.1755,.6225],[.4624,.1771,.6147],[.4718,.1786,.6069],[.4812,.1802,.599],[.4906,.1818,.5912],[.5,.1833,.5833],[.5094,.1849,.5755],[.5188,.1865,.5676],[.5282,.188,.5598],[.5376,.1896,.552],[.5471,.1912,.5441],[.5565,.1927,.5363],[.5659,.1943,.5284],[.5753,.1959,.5206],[.5847,.1975,.5127],[.5941,.199,.5049],[.6047,.2006,.4959],[.6173,.2022,.4849],[.6298,.2037,.4739],[.6424,.2053,.4629],[.6549,.2069,.452],[.6675,.2084,.441],[.68,.21,.43],[.6925,.2116,.419],[.7051,.2131,.408],[.7176,.2147,.3971],[.7302,.2163,.3861],[.7427,.2178,.3751],[.7553,.2194,.3641],[.7678,.221,.3531],[.7804,.2225,.3422],[.7929,.2241,.3312],[.8055,.2257,.3202],[.818,.2273,.3092],[.8306,.2288,.2982],[.8431,.2304,.2873],[.8557,.232,.2763],[.8682,.2335,.2653],[.8808,.2351,.2543],[.8933,.2367,.2433],[.9059,.2382,.2324],[.9184,.2398,.2214],[.931,.2414,.2104],[.9435,.2429,.1994],[.9561,.2445,.1884],[.9686,.2461,.1775],[.9812,.2476,.1665],[.9937,.2492,.1555],[.9984,.2539,.1476],[.9953,.2618,.1429],[.9922,.2696,.1382],[.989,.2775,.1335],[.9859,.2853,.1288],[.9827,.2931,.1241],[.9796,.301,.1194],[.9765,.3088,.1147],[.9733,.3167,.11],[.9702,.3245,.1053],[.9671,.3324,.1006],[.9639,.3402,.0959],[.9608,.348,.0912],[.9576,.3559,.0865],[.9545,.3637,.0818],[.9514,.3716,.0771],[.9482,.3794,.0724],[.9451,.3873,.0676],[.942,.3951,.0629],[.9388,.4029,.0582],[.9357,.4108,.0535],[.9325,.4186,.0488],[.9294,.4265,.0441],[.9263,.4343,.0394],[.9231,.4422,.0347],[.92,.45,.03],[.9169,.4578,.0253],[.9137,.4657,.0206],[.9106,.4735,.0159],[.9075,.4814,.0112],[.9043,.4892,.0065],[.9012,.4971,.0018],[.9,.5049,.002],[.9,.5127,.0051],[.9,.5206,.0082],[.9,.5284,.0114],[.9,.5363,.0145],[.9,.5441,.0176],[.9,.552,.0208],[.9,.5598,.0239],[.9,.5676,.0271],[.9,.5755,.0302],[.9,.5833,.0333],[.9,.5912,.0365],[.9,.599,.0396],[.9,.6069,.0427],[.9,.6147,.0459],[.9,.6225,.049],[.9,.6304,.0522],[.9,.6382,.0553],[.9,.6461,.0584],[.9,.6539,.0616],[.9,.6618,.0647],[.9,.6696,.0678],[.9,.6775,.071],[.9,.6853,.0741],[.9,.6931,.0773],[.9,.701,.0804],[.9,.7088,.0835],[.9,.7167,.0867],[.9,.7245,.0898],[.9,.7324,.0929],[.9,.7402,.0961],[.9,.748,.0992],[.9,.7535,.1094],[.9,.7582,.122],[.9,.7629,.1345],[.9,.7676,.1471],[.9,.7724,.1596],[.9,.7771,.1722],[.9,.7818,.1847],[.9,.7865,.1973],[.9,.7912,.2098],[.9,.7959,.2224],[.9,.8006,.2349],[.9,.8053,.2475],[.9,.81,.26],[.9,.8147,.2725],[.9,.8194,.2851],[.9,.8241,.2976],[.9,.8288,.3102],[.9,.8335,.3227],[.9,.8382,.3353],[.9,.8429,.3478],[.9,.8476,.3604],[.9,.8524,.3729],[.9,.8571,.3855],[.9,.8618,.398],[.9,.8665,.4106],[.9,.8712,.4231],[.9,.8759,.4357],[.9,.8806,.4482],[.9,.8853,.4608],[.9,.89,.4733],[.9,.8947,.4859],[.9,.8994,.4984],[.9027,.9027,.5137],[.9059,.9059,.5294],[.909,.909,.5451],[.9122,.9122,.5608],[.9153,.9153,.5765],[.9184,.9184,.5922],[.9216,.9216,.6078],[.9247,.9247,.6235],[.9278,.9278,.6392],[.931,.931,.6549],[.9341,.9341,.6706],[.9373,.9373,.6863],[.9404,.9404,.702],[.9435,.9435,.7176],[.9467,.9467,.7333],[.9498,.9498,.749],[.9529,.9529,.7647],[.9561,.9561,.7804],[.9592,.9592,.7961],[.9624,.9624,.8118],[.9655,.9655,.8275],[.9686,.9686,.8431],[.9718,.9718,.8588],[.9749,.9749,.8745],[.978,.978,.8902],[.9812,.9812,.9059],[.9843,.9843,.9216],[.9875,.9875,.9373],[.9906,.9906,.9529],[.9937,.9937,.9686],[.9969,.9969,.9843],[1,1,1]]};ce.Dark2={interpolate:!1,colors:[[.1059,.6196,.4667],[.851,.3725,.0078],[.4588,.4392,.702],[.9059,.1608,.5412],[.4,.651,.1176],[.902,.6706,.0078],[.651,.4627,.1137],[.4,.4,.4]]};ce.GnBu={interpolate:!0,colors:[[.9686,.9882,.9412],[.9658,.9871,.9386],[.963,.986,.936],[.9601,.9849,.9334],[.9573,.9838,.9308],[.9545,.9827,.9283],[.9516,.9816,.9257],[.9488,.9805,.9231],[.946,.9794,.9205],[.9432,.9783,.9179],[.9403,.9772,.9153],[.9375,.9761,.9128],[.9347,.9749,.9102],[.9318,.9738,.9076],[.929,.9727,.905],[.9262,.9716,.9024],[.9234,.9705,.8998],[.9205,.9694,.8973],[.9177,.9683,.8947],[.9149,.9672,.8921],[.912,.9661,.8895],[.9092,.965,.8869],[.9064,.9639,.8843],[.9035,.9628,.8818],[.9007,.9617,.8792],[.8979,.9606,.8766],[.8951,.9594,.874],[.8922,.9583,.8714],[.8894,.9572,.8688],[.8866,.9561,.8663],[.8837,.955,.8637],[.8809,.9539,.8611],[.8781,.9528,.8585],[.8757,.9518,.8558],[.8732,.9508,.8531],[.8707,.9499,.8504],[.8683,.9489,.8477],[.8658,.9479,.845],[.8634,.9469,.8422],[.8609,.9459,.8395],[.8584,.9449,.8368],[.856,.944,.8341],[.8535,.943,.8314],[.8511,.942,.8287],[.8486,.941,.826],[.8461,.94,.8233],[.8437,.939,.8206],[.8412,.9381,.8179],[.8388,.9371,.8152],[.8363,.9361,.8125],[.8338,.9351,.8098],[.8314,.9341,.8071],[.8289,.9331,.8044],[.8265,.9321,.8016],[.824,.9312,.7989],[.8215,.9302,.7962],[.8191,.9292,.7935],[.8166,.9282,.7908],[.8141,.9272,.7881],[.8117,.9262,.7854],[.8092,.9253,.7827],[.8068,.9243,.78],[.8043,.9233,.7773],[.8018,.9223,.7746],[.7989,.9211,.7721],[.7945,.9194,.7701],[.79,.9177,.7681],[.7856,.916,.7662],[.7812,.9142,.7642],[.7767,.9125,.7622],[.7723,.9108,.7602],[.7679,.9091,.7583],[.7635,.9074,.7563],[.759,.9056,.7543],[.7546,.9039,.7524],[.7502,.9022,.7504],[.7457,.9005,.7484],[.7413,.8987,.7465],[.7369,.897,.7445],[.7325,.8953,.7425],[.728,.8936,.7406],[.7236,.8919,.7386],[.7192,.8901,.7366],[.7147,.8884,.7347],[.7103,.8867,.7327],[.7059,.885,.7307],[.7015,.8832,.7288],[.697,.8815,.7268],[.6926,.8798,.7248],[.6882,.8781,.7228],[.6837,.8764,.7209],[.6793,.8746,.7189],[.6749,.8729,.7169],[.6704,.8712,.715],[.666,.8695,.713],[.6616,.8677,.711],[.6567,.8659,.7105],[.6512,.8638,.7123],[.6457,.8617,.7142],[.6401,.8596,.716],[.6346,.8575,.7179],[.6291,.8554,.7197],[.6235,.8533,.7216],[.618,.8512,.7234],[.6125,.8492,.7253],[.6069,.8471,.7271],[.6014,.845,.729],[.5958,.8429,.7308],[.5903,.8408,.7326],[.5848,.8387,.7345],[.5792,.8366,.7363],[.5737,.8345,.7382],[.5682,.8324,.74],[.5626,.8303,.7419],[.5571,.8282,.7437],[.5516,.8261,.7456],[.546,.8241,.7474],[.5405,.822,.7493],[.5349,.8199,.7511],[.5294,.8178,.7529],[.5239,.8157,.7548],[.5183,.8136,.7566],[.5128,.8115,.7585],[.5073,.8094,.7603],[.5017,.8073,.7622],[.4962,.8052,.764],[.4907,.8031,.7659],[.4851,.801,.7677],[.4796,.7985,.7696],[.474,.7954,.7714],[.4685,.7923,.7732],[.463,.7892,.7751],[.4574,.7862,.7769],[.4519,.7831,.7788],[.4464,.78,.7806],[.4408,.7769,.7825],[.4353,.7739,.7843],[.4298,.7708,.7862],[.4242,.7677,.788],[.4187,.7646,.7899],[.4131,.7616,.7917],[.4076,.7585,.7935],[.4021,.7554,.7954],[.3965,.7523,.7972],[.391,.7493,.7991],[.3855,.7462,.8009],[.3799,.7431,.8028],[.3744,.74,.8046],[.3689,.7369,.8065],[.3633,.7339,.8083],[.3578,.7308,.8101],[.3522,.7277,.812],[.3467,.7246,.8138],[.3412,.7216,.8157],[.3356,.7185,.8175],[.3301,.7154,.8194],[.3246,.7123,.8212],[.319,.7093,.8231],[.3135,.7062,.8249],[.308,.7031,.8268],[.3032,.699,.8258],[.2989,.6942,.8233],[.2946,.6894,.8207],[.2903,.6846,.8181],[.286,.6798,.8155],[.2817,.675,.8129],[.2774,.6702,.8103],[.273,.6654,.8078],[.2687,.6606,.8052],[.2644,.6558,.8026],[.2601,.651,.8],[.2558,.6462,.7974],[.2515,.6414,.7948],[.2472,.6366,.7922],[.2429,.6318,.7897],[.2386,.627,.7871],[.2343,.6222,.7845],[.23,.6174,.7819],[.2257,.6126,.7793],[.2214,.6078,.7767],[.2171,.603,.7742],[.2128,.5982,.7716],[.2085,.5934,.769],[.2042,.5886,.7664],[.1998,.5838,.7638],[.1955,.579,.7612],[.1912,.5742,.7587],[.1869,.5694,.7561],[.1826,.5646,.7535],[.1783,.5598,.7509],[.174,.555,.7483],[.1697,.5502,.7457],[.1654,.5457,.7434],[.1611,.5413,.7412],[.1568,.5368,.739],[.1525,.5324,.7368],[.1482,.528,.7346],[.1439,.5236,.7324],[.1396,.5191,.7301],[.1353,.5147,.7279],[.1309,.5103,.7257],[.1266,.5058,.7235],[.1223,.5014,.7213],[.118,.497,.7191],[.1137,.4925,.7169],[.1094,.4881,.7146],[.1051,.4837,.7124],[.1008,.4793,.7102],[.0965,.4748,.708],[.0922,.4704,.7058],[.0879,.466,.7036],[.0836,.4615,.7014],[.0793,.4571,.6991],[.075,.4527,.6969],[.0707,.4483,.6947],[.0664,.4438,.6925],[.0621,.4394,.6903],[.0577,.435,.6881],[.0534,.4305,.6859],[.0491,.4261,.6836],[.0448,.4217,.6814],[.0405,.4173,.6792],[.0362,.4128,.677],[.0319,.4084,.6748],[.0314,.4035,.6699],[.0314,.3986,.6646],[.0314,.3937,.6593],[.0314,.3888,.654],[.0314,.3839,.6487],[.0314,.3789,.6434],[.0314,.374,.6381],[.0314,.3691,.6328],[.0314,.3642,.6276],[.0314,.3592,.6223],[.0314,.3543,.617],[.0314,.3494,.6117],[.0314,.3445,.6064],[.0314,.3396,.6011],[.0314,.3346,.5958],[.0314,.3297,.5905],[.0314,.3248,.5852],[.0314,.3199,.5799],[.0314,.315,.5747],[.0314,.31,.5694],[.0314,.3051,.5641],[.0314,.3002,.5588],[.0314,.2953,.5535],[.0314,.2903,.5482],[.0314,.2854,.5429],[.0314,.2805,.5376],[.0314,.2756,.5323],[.0314,.2707,.527],[.0314,.2657,.5218],[.0314,.2608,.5165],[.0314,.2559,.5112],[.0314,.251,.5059]]};ce.Greens={interpolate:!0,colors:[[.9686,.9882,.9608],[.9664,.9874,.9582],[.9642,.9865,.9556],[.962,.9857,.953],[.9598,.9848,.9504],[.9576,.9839,.9479],[.9553,.9831,.9453],[.9531,.9822,.9427],[.9509,.9813,.9401],[.9487,.9805,.9375],[.9465,.9796,.9349],[.9443,.9788,.9324],[.9421,.9779,.9298],[.9398,.977,.9272],[.9376,.9762,.9246],[.9354,.9753,.922],[.9332,.9745,.9194],[.931,.9736,.9169],[.9288,.9727,.9143],[.9266,.9719,.9117],[.9243,.971,.9091],[.9221,.9701,.9065],[.9199,.9693,.9039],[.9177,.9684,.9014],[.9155,.9676,.8988],[.9133,.9667,.8962],[.911,.9658,.8936],[.9088,.965,.891],[.9066,.9641,.8884],[.9044,.9633,.8859],[.9022,.9624,.8833],[.9,.9615,.8807],[.8976,.9606,.8779],[.8939,.9591,.874],[.8902,.9576,.8701],[.8865,.9562,.8661],[.8828,.9547,.8622],[.8791,.9532,.8583],[.8754,.9517,.8543],[.8717,.9503,.8504],[.8681,.9488,.8464],[.8644,.9473,.8425],[.8607,.9458,.8386],[.857,.9444,.8346],[.8533,.9429,.8307],[.8496,.9414,.8268],[.8459,.9399,.8228],[.8422,.9385,.8189],[.8385,.937,.8149],[.8348,.9355,.811],[.8311,.934,.8071],[.8275,.9325,.8031],[.8238,.9311,.7992],[.8201,.9296,.7953],[.8164,.9281,.7913],[.8127,.9266,.7874],[.809,.9252,.7835],[.8053,.9237,.7795],[.8016,.9222,.7756],[.7979,.9207,.7716],[.7942,.9193,.7677],[.7905,.9178,.7638],[.7869,.9163,.7598],[.7832,.9148,.7559],[.7792,.9132,.7518],[.7745,.9113,.7473],[.7699,.9093,.7427],[.7652,.9073,.7381],[.7605,.9054,.7336],[.7558,.9034,.729],[.7512,.9014,.7245],[.7465,.8995,.7199],[.7418,.8975,.7154],[.7371,.8955,.7108],[.7325,.8935,.7063],[.7278,.8916,.7017],[.7231,.8896,.6972],[.7184,.8876,.6926],[.7138,.8857,.6881],[.7091,.8837,.6835],[.7044,.8817,.679],[.6997,.8798,.6744],[.6951,.8778,.6699],[.6904,.8758,.6653],[.6857,.8739,.6608],[.681,.8719,.6562],[.6764,.8699,.6517],[.6717,.868,.6471],[.667,.866,.6426],[.6623,.864,.638],[.6577,.8621,.6334],[.653,.8601,.6289],[.6483,.8581,.6243],[.6436,.8561,.6198],[.639,.8542,.6152],[.6343,.8522,.6107],[.6293,.85,.6061],[.6238,.8474,.6016],[.6182,.8448,.597],[.6127,.8423,.5925],[.6072,.8397,.5879],[.6016,.8371,.5834],[.5961,.8345,.5788],[.5905,.8319,.5743],[.585,.8293,.5697],[.5795,.8268,.5652],[.5739,.8242,.5606],[.5684,.8216,.5561],[.5629,.819,.5515],[.5573,.8164,.547],[.5518,.8138,.5424],[.5463,.8113,.5379],[.5407,.8087,.5333],[.5352,.8061,.5288],[.5296,.8035,.5242],[.5241,.8009,.5196],[.5186,.7983,.5151],[.513,.7958,.5105],[.5075,.7932,.506],[.502,.7906,.5014],[.4964,.788,.4969],[.4909,.7854,.4923],[.4854,.7828,.4878],[.4798,.7803,.4832],[.4743,.7777,.4787],[.4687,.7751,.4741],[.4632,.7725,.4696],[.4577,.7699,.465],[.4518,.7671,.4612],[.4455,.764,.4581],[.4392,.7609,.4551],[.4329,.7579,.452],[.4267,.7548,.4489],[.4204,.7517,.4458],[.4141,.7486,.4428],[.4078,.7456,.4397],[.4016,.7425,.4366],[.3953,.7394,.4335],[.389,.7363,.4304],[.3827,.7333,.4274],[.3765,.7302,.4243],[.3702,.7271,.4212],[.3639,.724,.4181],[.3576,.721,.4151],[.3514,.7179,.412],[.3451,.7148,.4089],[.3388,.7117,.4058],[.3325,.7087,.4028],[.3263,.7056,.3997],[.32,.7025,.3966],[.3137,.6994,.3935],[.3075,.6963,.3905],[.3012,.6933,.3874],[.2949,.6902,.3843],[.2886,.6871,.3812],[.2824,.684,.3782],[.2761,.681,.3751],[.2698,.6779,.372],[.2635,.6748,.3689],[.2573,.6717,.3659],[.2526,.6681,.3629],[.2489,.6642,.3599],[.2452,.6603,.357],[.2415,.6563,.354],[.2378,.6524,.351],[.2341,.6484,.3481],[.2304,.6445,.3451],[.2268,.6406,.3422],[.2231,.6366,.3392],[.2194,.6327,.3363],[.2157,.6288,.3333],[.212,.6248,.3304],[.2083,.6209,.3274],[.2046,.6169,.3245],[.2009,.613,.3215],[.1972,.6091,.3186],[.1935,.6051,.3156],[.1899,.6012,.3127],[.1862,.5973,.3097],[.1825,.5933,.3068],[.1788,.5894,.3038],[.1751,.5855,.3009],[.1714,.5815,.2979],[.1677,.5776,.2949],[.164,.5736,.292],[.1603,.5697,.289],[.1566,.5658,.2861],[.1529,.5618,.2831],[.1493,.5579,.2802],[.1456,.554,.2772],[.1419,.55,.2743],[.1382,.5461,.2713],[.134,.5423,.2683],[.1297,.5386,.2652],[.1254,.5349,.2621],[.1211,.5313,.2591],[.1168,.5276,.256],[.1125,.5239,.2529],[.1082,.5202,.2498],[.1039,.5165,.2468],[.0996,.5128,.2437],[.0953,.5091,.2406],[.091,.5054,.2375],[.0867,.5017,.2344],[.0824,.498,.2314],[.078,.4943,.2283],[.0737,.4907,.2252],[.0694,.487,.2221],[.0651,.4833,.2191],[.0608,.4796,.216],[.0565,.4759,.2129],[.0522,.4722,.2098],[.0479,.4685,.2068],[.0436,.4648,.2037],[.0393,.4611,.2006],[.035,.4574,.1975],[.0307,.4537,.1945],[.0264,.4501,.1914],[.0221,.4464,.1883],[.0178,.4427,.1852],[.0135,.439,.1822],[.0092,.4353,.1791],[.0048,.4316,.176],[5e-4,.4279,.1729],[0,.423,.1707],[0,.418,.1686],[0,.4129,.1665],[0,.4079,.1644],[0,.4029,.1624],[0,.3978,.1603],[0,.3928,.1582],[0,.3877,.1561],[0,.3827,.154],[0,.3776,.1519],[0,.3726,.1498],[0,.3676,.1477],[0,.3625,.1456],[0,.3575,.1435],[0,.3524,.1414],[0,.3474,.1393],[0,.3423,.1373],[0,.3373,.1352],[0,.3322,.1331],[0,.3272,.131],[0,.3222,.1289],[0,.3171,.1268],[0,.3121,.1247],[0,.307,.1226],[0,.302,.1205],[0,.2969,.1184],[0,.2919,.1163],[0,.2868,.1142],[0,.2818,.1122],[0,.2768,.1101],[0,.2717,.108],[0,.2667,.1059]]};ce.Greys={interpolate:!0,colors:[[1,1,1],[.9982,.9982,.9982],[.9963,.9963,.9963],[.9945,.9945,.9945],[.9926,.9926,.9926],[.9908,.9908,.9908],[.9889,.9889,.9889],[.9871,.9871,.9871],[.9852,.9852,.9852],[.9834,.9834,.9834],[.9815,.9815,.9815],[.9797,.9797,.9797],[.9779,.9779,.9779],[.976,.976,.976],[.9742,.9742,.9742],[.9723,.9723,.9723],[.9705,.9705,.9705],[.9686,.9686,.9686],[.9668,.9668,.9668],[.9649,.9649,.9649],[.9631,.9631,.9631],[.9612,.9612,.9612],[.9594,.9594,.9594],[.9576,.9576,.9576],[.9557,.9557,.9557],[.9539,.9539,.9539],[.952,.952,.952],[.9502,.9502,.9502],[.9483,.9483,.9483],[.9465,.9465,.9465],[.9446,.9446,.9446],[.9428,.9428,.9428],[.9408,.9408,.9408],[.938,.938,.938],[.9352,.9352,.9352],[.9323,.9323,.9323],[.9295,.9295,.9295],[.9267,.9267,.9267],[.9238,.9238,.9238],[.921,.921,.921],[.9182,.9182,.9182],[.9154,.9154,.9154],[.9125,.9125,.9125],[.9097,.9097,.9097],[.9069,.9069,.9069],[.904,.904,.904],[.9012,.9012,.9012],[.8984,.8984,.8984],[.8955,.8955,.8955],[.8927,.8927,.8927],[.8899,.8899,.8899],[.8871,.8871,.8871],[.8842,.8842,.8842],[.8814,.8814,.8814],[.8786,.8786,.8786],[.8757,.8757,.8757],[.8729,.8729,.8729],[.8701,.8701,.8701],[.8673,.8673,.8673],[.8644,.8644,.8644],[.8616,.8616,.8616],[.8588,.8588,.8588],[.8559,.8559,.8559],[.8531,.8531,.8531],[.8501,.8501,.8501],[.8467,.8467,.8467],[.8432,.8432,.8432],[.8398,.8398,.8398],[.8363,.8363,.8363],[.8329,.8329,.8329],[.8295,.8295,.8295],[.826,.826,.826],[.8226,.8226,.8226],[.8191,.8191,.8191],[.8157,.8157,.8157],[.8122,.8122,.8122],[.8088,.8088,.8088],[.8053,.8053,.8053],[.8019,.8019,.8019],[.7984,.7984,.7984],[.795,.795,.795],[.7916,.7916,.7916],[.7881,.7881,.7881],[.7847,.7847,.7847],[.7812,.7812,.7812],[.7778,.7778,.7778],[.7743,.7743,.7743],[.7709,.7709,.7709],[.7674,.7674,.7674],[.764,.764,.764],[.7606,.7606,.7606],[.7571,.7571,.7571],[.7537,.7537,.7537],[.7502,.7502,.7502],[.7468,.7468,.7468],[.7433,.7433,.7433],[.7394,.7394,.7394],[.7346,.7346,.7346],[.7298,.7298,.7298],[.725,.725,.725],[.7202,.7202,.7202],[.7154,.7154,.7154],[.7106,.7106,.7106],[.7058,.7058,.7058],[.701,.701,.701],[.6962,.6962,.6962],[.6914,.6914,.6914],[.6866,.6866,.6866],[.6818,.6818,.6818],[.677,.677,.677],[.6722,.6722,.6722],[.6674,.6674,.6674],[.6626,.6626,.6626],[.6578,.6578,.6578],[.653,.653,.653],[.6482,.6482,.6482],[.6434,.6434,.6434],[.6386,.6386,.6386],[.6338,.6338,.6338],[.629,.629,.629],[.6242,.6242,.6242],[.6194,.6194,.6194],[.6146,.6146,.6146],[.6098,.6098,.6098],[.605,.605,.605],[.6002,.6002,.6002],[.5954,.5954,.5954],[.5906,.5906,.5906],[.5861,.5861,.5861],[.5818,.5818,.5818],[.5775,.5775,.5775],[.5732,.5732,.5732],[.5689,.5689,.5689],[.5646,.5646,.5646],[.5602,.5602,.5602],[.5559,.5559,.5559],[.5516,.5516,.5516],[.5473,.5473,.5473],[.543,.543,.543],[.5387,.5387,.5387],[.5344,.5344,.5344],[.5301,.5301,.5301],[.5258,.5258,.5258],[.5215,.5215,.5215],[.5172,.5172,.5172],[.5129,.5129,.5129],[.5086,.5086,.5086],[.5043,.5043,.5043],[.5,.5,.5],[.4957,.4957,.4957],[.4913,.4913,.4913],[.487,.487,.487],[.4827,.4827,.4827],[.4784,.4784,.4784],[.4741,.4741,.4741],[.4698,.4698,.4698],[.4655,.4655,.4655],[.4612,.4612,.4612],[.4569,.4569,.4569],[.4526,.4526,.4526],[.4484,.4484,.4484],[.4444,.4444,.4444],[.4403,.4403,.4403],[.4363,.4363,.4363],[.4322,.4322,.4322],[.4281,.4281,.4281],[.4241,.4241,.4241],[.42,.42,.42],[.416,.416,.416],[.4119,.4119,.4119],[.4078,.4078,.4078],[.4038,.4038,.4038],[.3997,.3997,.3997],[.3957,.3957,.3957],[.3916,.3916,.3916],[.3875,.3875,.3875],[.3835,.3835,.3835],[.3794,.3794,.3794],[.3754,.3754,.3754],[.3713,.3713,.3713],[.3672,.3672,.3672],[.3632,.3632,.3632],[.3591,.3591,.3591],[.3551,.3551,.3551],[.351,.351,.351],[.3469,.3469,.3469],[.3429,.3429,.3429],[.3388,.3388,.3388],[.3348,.3348,.3348],[.3307,.3307,.3307],[.3266,.3266,.3266],[.3226,.3226,.3226],[.3174,.3174,.3174],[.3119,.3119,.3119],[.3063,.3063,.3063],[.3008,.3008,.3008],[.2953,.2953,.2953],[.2897,.2897,.2897],[.2842,.2842,.2842],[.2787,.2787,.2787],[.2731,.2731,.2731],[.2676,.2676,.2676],[.2621,.2621,.2621],[.2565,.2565,.2565],[.251,.251,.251],[.2454,.2454,.2454],[.2399,.2399,.2399],[.2344,.2344,.2344],[.2288,.2288,.2288],[.2233,.2233,.2233],[.2178,.2178,.2178],[.2122,.2122,.2122],[.2067,.2067,.2067],[.2012,.2012,.2012],[.1956,.1956,.1956],[.1901,.1901,.1901],[.1845,.1845,.1845],[.179,.179,.179],[.1735,.1735,.1735],[.1679,.1679,.1679],[.1624,.1624,.1624],[.1569,.1569,.1569],[.1513,.1513,.1513],[.1458,.1458,.1458],[.1411,.1411,.1411],[.1366,.1366,.1366],[.132,.132,.132],[.1275,.1275,.1275],[.1229,.1229,.1229],[.1184,.1184,.1184],[.1138,.1138,.1138],[.1093,.1093,.1093],[.1047,.1047,.1047],[.1001,.1001,.1001],[.0956,.0956,.0956],[.091,.091,.091],[.0865,.0865,.0865],[.0819,.0819,.0819],[.0774,.0774,.0774],[.0728,.0728,.0728],[.0683,.0683,.0683],[.0637,.0637,.0637],[.0592,.0592,.0592],[.0546,.0546,.0546],[.0501,.0501,.0501],[.0455,.0455,.0455],[.041,.041,.041],[.0364,.0364,.0364],[.0319,.0319,.0319],[.0273,.0273,.0273],[.0228,.0228,.0228],[.0182,.0182,.0182],[.0137,.0137,.0137],[.0091,.0091,.0091],[.0046,.0046,.0046],[0,0,0]]};ce.OrRd={interpolate:!0,colors:[[1,.9686,.9255],[.9999,.9668,.9211],[.9998,.9649,.9166],[.9996,.9631,.9122],[.9995,.9612,.9078],[.9994,.9594,.9033],[.9993,.9576,.8989],[.9991,.9557,.8945],[.999,.9539,.8901],[.9989,.952,.8856],[.9988,.9502,.8812],[.9986,.9483,.8768],[.9985,.9465,.8723],[.9984,.9446,.8679],[.9983,.9428,.8635],[.9982,.9409,.8591],[.998,.9391,.8546],[.9979,.9373,.8502],[.9978,.9354,.8458],[.9977,.9336,.8413],[.9975,.9317,.8369],[.9974,.9299,.8325],[.9973,.928,.8281],[.9972,.9262,.8236],[.997,.9243,.8192],[.9969,.9225,.8148],[.9968,.9206,.8103],[.9967,.9188,.8059],[.9966,.917,.8015],[.9964,.9151,.797],[.9963,.9133,.7926],[.9962,.9114,.7882],[.9961,.9095,.7837],[.9959,.907,.7785],[.9958,.9046,.7733],[.9957,.9021,.7682],[.9956,.8997,.763],[.9954,.8972,.7578],[.9953,.8947,.7527],[.9952,.8923,.7475],[.9951,.8898,.7423],[.995,.8874,.7372],[.9948,.8849,.732],[.9947,.8824,.7268],[.9946,.88,.7217],[.9945,.8775,.7165],[.9943,.875,.7113],[.9942,.8726,.7062],[.9941,.8701,.701],[.994,.8677,.6958],[.9938,.8652,.6907],[.9937,.8627,.6855],[.9936,.8603,.6803],[.9935,.8578,.6752],[.9934,.8554,.67],[.9932,.8529,.6648],[.9931,.8504,.6597],[.993,.848,.6545],[.9929,.8455,.6493],[.9927,.8431,.6442],[.9926,.8406,.639],[.9925,.8381,.6338],[.9924,.8357,.6287],[.9922,.8332,.6235],[.9922,.8306,.6188],[.9922,.8275,.6156],[.9922,.8245,.6124],[.9922,.8214,.6092],[.9922,.8183,.606],[.9922,.8152,.6028],[.9922,.8121,.5996],[.9922,.8091,.5964],[.9922,.806,.5932],[.9922,.8029,.59],[.9922,.7998,.5868],[.9922,.7968,.5836],[.9922,.7937,.5804],[.9922,.7906,.5772],[.9922,.7875,.574],[.9922,.7845,.5708],[.9922,.7814,.5676],[.9922,.7783,.5644],[.9922,.7752,.5612],[.9922,.7722,.558],[.9922,.7691,.5548],[.9922,.766,.5516],[.9922,.7629,.5484],[.9922,.7599,.5452],[.9922,.7568,.542],[.9922,.7537,.5388],[.9922,.7506,.5356],[.9922,.7476,.5324],[.9922,.7445,.5292],[.9922,.7414,.526],[.9922,.7383,.5228],[.9922,.7353,.5196],[.9921,.7312,.5157],[.992,.7256,.5104],[.9919,.7199,.5051],[.9917,.7142,.4998],[.9916,.7086,.4945],[.9915,.7029,.4892],[.9914,.6973,.4839],[.9912,.6916,.4786],[.9911,.6859,.4733],[.991,.6803,.4681],[.9909,.6746,.4628],[.9908,.669,.4575],[.9906,.6633,.4522],[.9905,.6576,.4469],[.9904,.652,.4416],[.9903,.6463,.4363],[.9901,.6407,.431],[.99,.635,.4257],[.9899,.6293,.4204],[.9898,.6237,.4151],[.9897,.618,.4099],[.9895,.6124,.4046],[.9894,.6067,.3993],[.9893,.601,.394],[.9892,.5954,.3887],[.989,.5897,.3834],[.9889,.5841,.3781],[.9888,.5784,.3728],[.9887,.5727,.3675],[.9885,.5671,.3622],[.9884,.5614,.357],[.9883,.5558,.3517],[.9874,.5505,.348],[.9858,.5456,.3459],[.9842,.5406,.3438],[.9826,.5357,.3417],[.981,.5308,.3396],[.9794,.5259,.3375],[.9778,.521,.3354],[.9762,.516,.3333],[.9746,.5111,.3312],[.973,.5062,.3292],[.9714,.5013,.3271],[.9698,.4963,.325],[.9682,.4914,.3229],[.9666,.4865,.3208],[.965,.4816,.3187],[.9634,.4767,.3166],[.9618,.4717,.3145],[.9602,.4668,.3124],[.9586,.4619,.3103],[.957,.457,.3082],[.9554,.4521,.3061],[.9538,.4471,.3041],[.9522,.4422,.302],[.9506,.4373,.2999],[.9491,.4324,.2978],[.9475,.4275,.2957],[.9459,.4225,.2936],[.9443,.4176,.2915],[.9427,.4127,.2894],[.9411,.4078,.2873],[.9395,.4028,.2852],[.9379,.3979,.2831],[.9354,.392,.2792],[.9325,.3855,.2742],[.9295,.379,.2691],[.9266,.3724,.2641],[.9236,.3659,.259],[.9206,.3594,.254],[.9177,.3529,.2489],[.9147,.3464,.2439],[.9118,.3398,.2388],[.9088,.3333,.2338],[.9059,.3268,.2288],[.9029,.3203,.2237],[.9,.3138,.2187],[.897,.3072,.2136],[.8941,.3007,.2086],[.8911,.2942,.2035],[.8882,.2877,.1985],[.8852,.2812,.1934],[.8823,.2746,.1884],[.8793,.2681,.1834],[.8764,.2616,.1783],[.8734,.2551,.1733],[.8704,.2486,.1682],[.8675,.242,.1632],[.8645,.2355,.1581],[.8616,.229,.1531],[.8586,.2225,.1481],[.8557,.2159,.143],[.8527,.2094,.138],[.8498,.2029,.1329],[.8468,.1964,.1279],[.8439,.1899,.1228],[.8398,.1838,.1187],[.8354,.1779,.1149],[.831,.172,.1111],[.8265,.1661,.1073],[.8221,.1602,.1035],[.8177,.1543,.0996],[.8132,.1484,.0958],[.8088,.1425,.092],[.8044,.1366,.0882],[.8,.1307,.0844],[.7955,.1248,.0806],[.7911,.1188,.0768],[.7867,.1129,.0729],[.7822,.107,.0691],[.7778,.1011,.0653],[.7734,.0952,.0615],[.769,.0893,.0577],[.7645,.0834,.0539],[.7601,.0775,.0501],[.7557,.0716,.0462],[.7512,.0657,.0424],[.7468,.0598,.0386],[.7424,.0539,.0348],[.7379,.048,.031],[.7335,.0421,.0272],[.7291,.0362,.0234],[.7247,.0303,.0195],[.7202,.0244,.0157],[.7158,.0185,.0119],[.7114,.0125,.0081],[.7069,.0066,.0043],[.7025,7e-4,5e-4],[.6964,0,0],[.69,0,0],[.6836,0,0],[.6772,0,0],[.6708,0,0],[.6644,0,0],[.658,0,0],[.6516,0,0],[.6452,0,0],[.6388,0,0],[.6324,0,0],[.626,0,0],[.6196,0,0],[.6132,0,0],[.6068,0,0],[.6004,0,0],[.594,0,0],[.5876,0,0],[.5812,0,0],[.5748,0,0],[.5684,0,0],[.562,0,0],[.5556,0,0],[.5492,0,0],[.5428,0,0],[.5364,0,0],[.53,0,0],[.5236,0,0],[.5172,0,0],[.5108,0,0],[.5044,0,0],[.498,0,0]]};ce.Oranges={interpolate:!0,colors:[[1,.9608,.9216],[.9999,.9589,.918],[.9998,.9571,.9144],[.9996,.9552,.9109],[.9995,.9534,.9073],[.9994,.9516,.9037],[.9993,.9497,.9002],[.9991,.9479,.8966],[.999,.946,.893],[.9989,.9442,.8895],[.9988,.9423,.8859],[.9986,.9405,.8823],[.9985,.9386,.8788],[.9984,.9368,.8752],[.9983,.9349,.8716],[.9982,.9331,.8681],[.998,.9313,.8645],[.9979,.9294,.8609],[.9978,.9276,.8573],[.9977,.9257,.8538],[.9975,.9239,.8502],[.9974,.922,.8466],[.9973,.9202,.8431],[.9972,.9183,.8395],[.997,.9165,.8359],[.9969,.9146,.8324],[.9968,.9128,.8288],[.9967,.911,.8252],[.9966,.9091,.8217],[.9964,.9073,.8181],[.9963,.9054,.8145],[.9962,.9036,.811],[.9961,.9016,.8072],[.9959,.8989,.8018],[.9958,.8962,.7963],[.9957,.8935,.7909],[.9956,.8908,.7855],[.9954,.8881,.7801],[.9953,.8854,.7747],[.9952,.8827,.7693],[.9951,.88,.7639],[.995,.8773,.7584],[.9948,.8746,.753],[.9947,.8718,.7476],[.9946,.8691,.7422],[.9945,.8664,.7368],[.9943,.8637,.7314],[.9942,.861,.726],[.9941,.8583,.7206],[.994,.8556,.7151],[.9938,.8529,.7097],[.9937,.8502,.7043],[.9936,.8475,.6989],[.9935,.8448,.6935],[.9934,.8421,.6881],[.9932,.8394,.6827],[.9931,.8367,.6772],[.993,.834,.6718],[.9929,.8312,.6664],[.9927,.8285,.661],[.9926,.8258,.6556],[.9925,.8231,.6502],[.9924,.8204,.6448],[.9922,.8177,.6394],[.9922,.8146,.6336],[.9922,.8105,.6268],[.9922,.8063,.6201],[.9922,.8021,.6133],[.9922,.7979,.6065],[.9922,.7937,.5998],[.9922,.7895,.593],[.9922,.7854,.5862],[.9922,.7812,.5795],[.9922,.777,.5727],[.9922,.7728,.5659],[.9922,.7686,.5592],[.9922,.7644,.5524],[.9922,.7603,.5456],[.9922,.7561,.5389],[.9922,.7519,.5321],[.9922,.7477,.5253],[.9922,.7435,.5186],[.9922,.7393,.5118],[.9922,.7352,.505],[.9922,.731,.4983],[.9922,.7268,.4915],[.9922,.7226,.4847],[.9922,.7184,.478],[.9922,.7142,.4712],[.9922,.7101,.4644],[.9922,.7059,.4577],[.9922,.7017,.4509],[.9922,.6975,.4441],[.9922,.6933,.4374],[.9922,.6892,.4306],[.9922,.685,.4238],[.9922,.6808,.4174],[.9922,.6768,.4117],[.9922,.6727,.4059],[.9922,.6687,.4001],[.9922,.6646,.3943],[.9922,.6605,.3885],[.9922,.6565,.3827],[.9922,.6524,.377],[.9922,.6484,.3712],[.9922,.6443,.3654],[.9922,.6402,.3596],[.9922,.6362,.3538],[.9922,.6321,.3481],[.9922,.6281,.3423],[.9922,.624,.3365],[.9922,.6199,.3307],[.9922,.6159,.3249],[.9922,.6118,.3191],[.9922,.6078,.3134],[.9922,.6037,.3076],[.9922,.5996,.3018],[.9922,.5956,.296],[.9922,.5915,.2902],[.9922,.5875,.2844],[.9922,.5834,.2787],[.9922,.5793,.2729],[.9922,.5753,.2671],[.9922,.5712,.2613],[.9922,.5672,.2555],[.9922,.5631,.2498],[.9922,.559,.244],[.9922,.555,.2382],[.9914,.5507,.2328],[.9899,.5463,.2277],[.9885,.5419,.2227],[.987,.5374,.2176],[.9855,.533,.2126],[.984,.5286,.2076],[.9826,.5242,.2025],[.9811,.5197,.1975],[.9796,.5153,.1924],[.9781,.5109,.1874],[.9767,.5064,.1823],[.9752,.502,.1773],[.9737,.4976,.1722],[.9722,.4931,.1672],[.9707,.4887,.1622],[.9693,.4843,.1571],[.9678,.4799,.1521],[.9663,.4754,.147],[.9648,.471,.142],[.9634,.4666,.1369],[.9619,.4621,.1319],[.9604,.4577,.1268],[.9589,.4533,.1218],[.9575,.4489,.1168],[.956,.4444,.1117],[.9545,.44,.1067],[.953,.4356,.1016],[.9516,.4311,.0966],[.9501,.4267,.0915],[.9486,.4223,.0865],[.9471,.4179,.0814],[.9457,.4134,.0764],[.9433,.4092,.0731],[.9403,.4052,.0709],[.9373,.4011,.0687],[.9344,.397,.0665],[.9314,.393,.0643],[.9285,.3889,.0621],[.9255,.3849,.0598],[.9226,.3808,.0576],[.9196,.3767,.0554],[.9167,.3727,.0532],[.9137,.3686,.051],[.9108,.3646,.0488],[.9078,.3605,.0466],[.9049,.3564,.0443],[.9019,.3524,.0421],[.899,.3483,.0399],[.896,.3443,.0377],[.8931,.3402,.0355],[.8901,.3361,.0333],[.8872,.3321,.031],[.8842,.328,.0288],[.8812,.324,.0266],[.8783,.3199,.0244],[.8753,.3158,.0222],[.8724,.3118,.02],[.8694,.3077,.0178],[.8665,.3037,.0155],[.8635,.2996,.0133],[.8606,.2955,.0111],[.8576,.2915,.0089],[.8547,.2874,.0067],[.8517,.2834,.0045],[.8463,.2807,.0041],[.84,.2785,.0044],[.8337,.2763,.0046],[.8275,.274,.0048],[.8212,.2718,.0051],[.8149,.2696,.0053],[.8086,.2674,.0056],[.8024,.2652,.0058],[.7961,.263,.0061],[.7898,.2608,.0063],[.7835,.2585,.0066],[.7773,.2563,.0068],[.771,.2541,.0071],[.7647,.2519,.0073],[.7584,.2497,.0076],[.7522,.2475,.0078],[.7459,.2453,.008],[.7396,.243,.0083],[.7333,.2408,.0085],[.7271,.2386,.0088],[.7208,.2364,.009],[.7145,.2342,.0093],[.7082,.232,.0095],[.702,.2298,.0098],[.6957,.2275,.01],[.6894,.2253,.0103],[.6831,.2231,.0105],[.6769,.2209,.0107],[.6706,.2187,.011],[.6643,.2165,.0112],[.658,.2143,.0115],[.6518,.212,.0117],[.6468,.2101,.0119],[.642,.2083,.012],[.6372,.2065,.0121],[.6324,.2046,.0122],[.6276,.2028,.0124],[.6228,.2009,.0125],[.618,.1991,.0126],[.6132,.1972,.0127],[.6084,.1954,.0129],[.6036,.1935,.013],[.5988,.1917,.0131],[.594,.1899,.0132],[.5892,.188,.0133],[.5844,.1862,.0135],[.5796,.1843,.0136],[.5748,.1825,.0137],[.57,.1806,.0138],[.5652,.1788,.014],[.5604,.1769,.0141],[.5556,.1751,.0142],[.5508,.1732,.0143],[.546,.1714,.0145],[.5412,.1696,.0146],[.5364,.1677,.0147],[.5316,.1659,.0148],[.5268,.164,.0149],[.522,.1622,.0151],[.5172,.1603,.0152],[.5124,.1585,.0153],[.5076,.1566,.0154],[.5028,.1548,.0156],[.498,.1529,.0157]]};ce.PRGn={interpolate:!0,colors:[[.251,0,.2941],[.2593,.0065,.3027],[.2676,.0129,.3113],[.2759,.0194,.32],[.2842,.0258,.3286],[.2925,.0323,.3372],[.3008,.0388,.3458],[.3091,.0452,.3544],[.3174,.0517,.363],[.3257,.0581,.3716],[.334,.0646,.3802],[.3423,.071,.3889],[.3506,.0775,.3975],[.3589,.084,.4061],[.3672,.0904,.4147],[.3755,.0969,.4233],[.3839,.1033,.4319],[.3922,.1098,.4405],[.4005,.1163,.4491],[.4088,.1227,.4577],[.4171,.1292,.4664],[.4254,.1356,.475],[.4337,.1421,.4836],[.442,.1486,.4922],[.4503,.155,.5008],[.4586,.1615,.5094],[.4654,.1701,.5168],[.4708,.1809,.523],[.4762,.1916,.5291],[.4816,.2024,.5353],[.487,.2131,.5414],[.4923,.2239,.5476],[.4977,.2347,.5537],[.5031,.2454,.5599],[.5085,.2562,.566],[.5139,.267,.5722],[.5193,.2777,.5783],[.5246,.2885,.5845],[.53,.2993,.5906],[.5354,.31,.5968],[.5408,.3208,.6029],[.5462,.3316,.6091],[.5516,.3423,.6152],[.5569,.3531,.6214],[.5623,.3639,.6275],[.5677,.3746,.6337],[.5731,.3854,.6398],[.5785,.3962,.646],[.5839,.4069,.6521],[.5892,.4177,.6583],[.5946,.4285,.6644],[.6,.4392,.6706],[.6063,.4474,.6761],[.6126,.4555,.6817],[.6189,.4637,.6872],[.6252,.4718,.6927],[.6315,.48,.6983],[.6378,.4881,.7038],[.6441,.4963,.7093],[.6504,.5044,.7149],[.6567,.5126,.7204],[.6631,.5207,.726],[.6694,.5289,.7315],[.6757,.537,.737],[.682,.5452,.7426],[.6883,.5533,.7481],[.6946,.5615,.7536],[.7009,.5696,.7592],[.7072,.5778,.7647],[.7135,.5859,.7702],[.7198,.5941,.7758],[.7261,.6022,.7813],[.7324,.6104,.7869],[.7387,.6185,.7924],[.745,.6267,.7979],[.7513,.6348,.8035],[.7576,.643,.809],[.7636,.6507,.8137],[.7693,.6579,.8175],[.775,.6651,.8214],[.7807,.6724,.8252],[.7864,.6796,.8291],[.7921,.6868,.8329],[.7978,.694,.8368],[.8035,.7013,.8406],[.8092,.7085,.8444],[.8148,.7157,.8483],[.8205,.723,.8521],[.8262,.7302,.856],[.8319,.7374,.8598],[.8376,.7446,.8637],[.8433,.7519,.8675],[.849,.7591,.8714],[.8547,.7663,.8752],[.8604,.7735,.879],[.8661,.7808,.8829],[.8717,.788,.8867],[.8774,.7952,.8906],[.8831,.8025,.8944],[.8888,.8097,.8983],[.8945,.8169,.9021],[.9002,.8241,.906],[.9059,.8314,.9098],[.9083,.8368,.9121],[.9108,.8421,.9144],[.9133,.8475,.9167],[.9157,.8529,.919],[.9182,.8583,.9213],[.9206,.8637,.9236],[.9231,.8691,.926],[.9256,.8744,.9283],[.928,.8798,.9306],[.9305,.8852,.9329],[.9329,.8906,.9352],[.9354,.896,.9375],[.9379,.9013,.9398],[.9403,.9067,.9421],[.9428,.9121,.9444],[.9453,.9175,.9467],[.9477,.9229,.949],[.9502,.9283,.9513],[.9526,.9336,.9536],[.9551,.939,.9559],[.9576,.9444,.9582],[.96,.9498,.9606],[.9625,.9552,.9629],[.9649,.9606,.9652],[.9674,.9659,.9675],[.9663,.9681,.9659],[.9617,.967,.9603],[.9571,.9659,.9548],[.9525,.9649,.9493],[.9479,.9638,.9437],[.9433,.9627,.9382],[.9386,.9616,.9326],[.934,.9606,.9271],[.9294,.9595,.9216],[.9248,.9584,.916],[.9202,.9573,.9105],[.9156,.9562,.905],[.911,.9552,.8994],[.9063,.9541,.8939],[.9017,.953,.8884],[.8971,.9519,.8828],[.8925,.9509,.8773],[.8879,.9498,.8717],[.8833,.9487,.8662],[.8787,.9476,.8607],[.874,.9466,.8551],[.8694,.9455,.8496],[.8648,.9444,.8441],[.8602,.9433,.8385],[.8556,.9423,.833],[.851,.9412,.8275],[.8431,.9379,.8196],[.8353,.9347,.8118],[.8275,.9315,.8039],[.8196,.9283,.7961],[.8118,.925,.7882],[.8039,.9218,.7804],[.7961,.9186,.7725],[.7882,.9153,.7647],[.7804,.9121,.7569],[.7725,.9089,.749],[.7647,.9057,.7412],[.7569,.9024,.7333],[.749,.8992,.7255],[.7412,.896,.7176],[.7333,.8927,.7098],[.7255,.8895,.702],[.7176,.8863,.6941],[.7098,.883,.6863],[.702,.8798,.6784],[.6941,.8766,.6706],[.6863,.8734,.6627],[.6784,.8701,.6549],[.6706,.8669,.6471],[.6627,.8637,.6392],[.6549,.8604,.6314],[.6451,.8554,.6226],[.6334,.8484,.6129],[.6218,.8415,.6032],[.6101,.8346,.5935],[.5984,.8277,.5839],[.5867,.8208,.5742],[.575,.8138,.5645],[.5633,.8069,.5548],[.5516,.8,.5451],[.5399,.7931,.5354],[.5283,.7862,.5257],[.5166,.7792,.516],[.5049,.7723,.5063],[.4932,.7654,.4967],[.4815,.7585,.487],[.4698,.7516,.4773],[.4581,.7446,.4676],[.4464,.7377,.4579],[.4348,.7308,.4482],[.4231,.7239,.4385],[.4114,.717,.4288],[.3997,.71,.4191],[.388,.7031,.4095],[.3763,.6962,.3998],[.3646,.6893,.3901],[.3529,.6824,.3804],[.3433,.674,.3739],[.3336,.6657,.3675],[.3239,.6574,.361],[.3142,.6491,.3546],[.3045,.6408,.3481],[.2948,.6325,.3416],[.2851,.6242,.3352],[.2754,.6159,.3287],[.2657,.6076,.3223],[.2561,.5993,.3158],[.2464,.591,.3093],[.2367,.5827,.3029],[.227,.5744,.2964],[.2173,.5661,.29],[.2076,.5578,.2835],[.1979,.5495,.277],[.1882,.5412,.2706],[.1785,.5329,.2641],[.1689,.5246,.2577],[.1592,.5163,.2512],[.1495,.508,.2448],[.1398,.4997,.2383],[.1301,.4913,.2318],[.1204,.483,.2254],[.1107,.4747,.2189],[.1038,.4666,.2135],[.0997,.4586,.2092],[.0955,.4506,.2049],[.0913,.4426,.2006],[.0872,.4346,.1963],[.083,.4266,.192],[.0789,.4186,.1877],[.0747,.4106,.1834],[.0706,.4026,.1791],[.0664,.3946,.1748],[.0623,.3866,.1705],[.0581,.3786,.1662],[.054,.3706,.1619],[.0498,.3626,.1576],[.0457,.3546,.1532],[.0415,.3466,.1489],[.0374,.3386,.1446],[.0332,.3306,.1403],[.0291,.3226,.136],[.0249,.3146,.1317],[.0208,.3067,.1274],[.0166,.2987,.1231],[.0125,.2907,.1188],[.0083,.2827,.1145],[.0042,.2747,.1102],[0,.2667,.1059]]};ce.Paired={interpolate:!1,colors:[[.651,.8078,.8902],[.1216,.4706,.7059],[.698,.8745,.5412],[.2,.6275,.1725],[.9843,.6039,.6],[.8902,.102,.1098],[.9922,.749,.4353],[1,.498,0],[.7922,.698,.8392],[.4157,.2392,.6039],[1,1,.6],[.6941,.349,.1569]]};ce.Pastel1={interpolate:!1,colors:[[.9843,.7059,.6824],[.702,.8039,.8902],[.8,.9216,.7725],[.8706,.7961,.8941],[.9961,.851,.651],[1,1,.8],[.898,.8471,.7412],[.9922,.8549,.9255],[.949,.949,.949]]};ce.Pastel2={interpolate:!1,colors:[[.702,.8863,.8039],[.9922,.8039,.6745],[.7961,.8353,.9098],[.9569,.7922,.8941],[.902,.9608,.7882],[1,.949,.6824],[.9451,.8863,.8],[.8,.8,.8]]};ce.PiYG={interpolate:!0,colors:[[.5569,.0039,.3216],[.5653,.0079,.3282],[.5738,.0119,.3348],[.5822,.0159,.3414],[.5907,.0199,.348],[.5992,.0239,.3546],[.6076,.0279,.3612],[.6161,.0319,.3679],[.6245,.0359,.3745],[.633,.0399,.3811],[.6414,.0439,.3877],[.6499,.0479,.3943],[.6584,.0519,.4009],[.6668,.0559,.4075],[.6753,.0599,.4141],[.6837,.0639,.4208],[.6922,.0679,.4274],[.7007,.0719,.434],[.7091,.0759,.4406],[.7176,.0799,.4472],[.726,.0839,.4538],[.7345,.0879,.4604],[.7429,.0919,.4671],[.7514,.0959,.4737],[.7599,.0999,.4803],[.7683,.1039,.4869],[.7745,.113,.494],[.7783,.1271,.5015],[.7822,.1413,.509],[.786,.1554,.5166],[.7899,.1696,.5241],[.7937,.1837,.5316],[.7975,.1978,.5392],[.8014,.212,.5467],[.8052,.2261,.5542],[.8091,.2403,.5618],[.8129,.2544,.5693],[.8168,.2686,.5769],[.8206,.2827,.5844],[.8245,.2969,.5919],[.8283,.311,.5995],[.8321,.3252,.607],[.836,.3393,.6145],[.8398,.3535,.6221],[.8437,.3676,.6296],[.8475,.3818,.6371],[.8514,.3959,.6447],[.8552,.4101,.6522],[.8591,.4242,.6597],[.8629,.4384,.6673],[.8667,.4525,.6748],[.8706,.4667,.6824],[.8735,.4764,.6891],[.8764,.486,.6959],[.8794,.4957,.7027],[.8823,.5054,.7094],[.8852,.5151,.7162],[.8881,.5248,.723],[.891,.5345,.7297],[.894,.5442,.7365],[.8969,.5539,.7433],[.8998,.5636,.75],[.9027,.5732,.7568],[.9057,.5829,.7636],[.9086,.5926,.7703],[.9115,.6023,.7771],[.9144,.612,.7839],[.9173,.6217,.7906],[.9203,.6314,.7974],[.9232,.6411,.8042],[.9261,.6507,.8109],[.929,.6604,.8177],[.9319,.6701,.8245],[.9349,.6798,.8312],[.9378,.6895,.838],[.9407,.6992,.8448],[.9436,.7089,.8515],[.946,.717,.8565],[.9479,.7234,.8597],[.9497,.7299,.863],[.9516,.7363,.8662],[.9534,.7428,.8694],[.9552,.7493,.8727],[.9571,.7557,.8759],[.9589,.7622,.8791],[.9608,.7686,.8824],[.9626,.7751,.8856],[.9645,.7815,.8888],[.9663,.788,.892],[.9682,.7945,.8953],[.97,.8009,.8985],[.9719,.8074,.9017],[.9737,.8138,.905],[.9755,.8203,.9082],[.9774,.8268,.9114],[.9792,.8332,.9146],[.9811,.8397,.9179],[.9829,.8461,.9211],[.9848,.8526,.9243],[.9866,.8591,.9276],[.9885,.8655,.9308],[.9903,.872,.934],[.9922,.8784,.9373],[.9912,.882,.9385],[.9903,.8855,.9397],[.9894,.889,.9409],[.9885,.8926,.9422],[.9875,.8961,.9434],[.9866,.8997,.9446],[.9857,.9032,.9459],[.9848,.9067,.9471],[.9839,.9103,.9483],[.9829,.9138,.9496],[.982,.9173,.9508],[.9811,.9209,.952],[.9802,.9244,.9532],[.9792,.928,.9545],[.9783,.9315,.9557],[.9774,.935,.9569],[.9765,.9386,.9582],[.9755,.9421,.9594],[.9746,.9456,.9606],[.9737,.9492,.9619],[.9728,.9527,.9631],[.9719,.9562,.9643],[.9709,.9598,.9656],[.97,.9633,.9668],[.9691,.9669,.968],[.9673,.9685,.9656],[.9647,.9682,.9596],[.9621,.9679,.9536],[.9595,.9676,.9476],[.9569,.9672,.9416],[.9542,.9669,.9356],[.9516,.9666,.9296],[.949,.9663,.9236],[.9464,.966,.9176],[.9438,.9657,.9116],[.9412,.9654,.9057],[.9386,.9651,.8997],[.9359,.9648,.8937],[.9333,.9645,.8877],[.9307,.9642,.8817],[.9281,.9639,.8757],[.9255,.9636,.8697],[.9229,.9632,.8637],[.9203,.9629,.8577],[.9176,.9626,.8517],[.915,.9623,.8457],[.9124,.962,.8397],[.9098,.9617,.8337],[.9072,.9614,.8277],[.9046,.9611,.8217],[.902,.9608,.8157],[.8949,.9577,.8043],[.8878,.9546,.7929],[.8807,.9516,.7815],[.8737,.9485,.7702],[.8666,.9454,.7588],[.8595,.9423,.7474],[.8524,.9393,.736],[.8454,.9362,.7246],[.8383,.9331,.7133],[.8312,.93,.7019],[.8241,.927,.6905],[.8171,.9239,.6791],[.81,.9208,.6677],[.8029,.9177,.6564],[.7958,.9146,.645],[.7888,.9116,.6336],[.7817,.9085,.6222],[.7746,.9054,.6108],[.7676,.9023,.5995],[.7605,.8993,.5881],[.7534,.8962,.5767],[.7463,.8931,.5653],[.7393,.89,.5539],[.7322,.887,.5426],[.7251,.8839,.5312],[.7172,.8795,.5202],[.7084,.8738,.5096],[.6997,.8681,.499],[.6909,.8624,.4884],[.6821,.8567,.4777],[.6734,.8511,.4671],[.6646,.8454,.4565],[.6558,.8397,.4459],[.6471,.834,.4353],[.6383,.8283,.4247],[.6295,.8226,.4141],[.6208,.8169,.4035],[.612,.8112,.3928],[.6032,.8055,.3822],[.5945,.7998,.3716],[.5857,.7942,.361],[.5769,.7885,.3504],[.5682,.7828,.3398],[.5594,.7771,.3292],[.5506,.7714,.3186],[.5419,.7657,.308],[.5331,.76,.2973],[.5243,.7543,.2867],[.5156,.7486,.2761],[.5068,.7429,.2655],[.498,.7373,.2549],[.4903,.7308,.25],[.4827,.7243,.2451],[.475,.7179,.2401],[.4673,.7114,.2352],[.4596,.705,.2303],[.4519,.6985,.2254],[.4442,.692,.2205],[.4365,.6856,.2155],[.4288,.6791,.2106],[.4211,.6727,.2057],[.4135,.6662,.2008],[.4058,.6597,.1958],[.3981,.6533,.1909],[.3904,.6468,.186],[.3827,.6404,.1811],[.375,.6339,.1762],[.3673,.6275,.1712],[.3596,.621,.1663],[.3519,.6145,.1614],[.3443,.6081,.1565],[.3366,.6016,.1516],[.3289,.5952,.1466],[.3212,.5887,.1417],[.3135,.5822,.1368],[.3058,.5758,.1319],[.299,.569,.1288],[.2932,.5619,.1276],[.2874,.5549,.1263],[.2815,.5478,.1251],[.2757,.5407,.1239],[.2698,.5336,.1226],[.264,.5266,.1214],[.2581,.5195,.1202],[.2523,.5124,.119],[.2464,.5053,.1177],[.2406,.4983,.1165],[.2348,.4912,.1153],[.2289,.4841,.114],[.2231,.477,.1128],[.2172,.47,.1116],[.2114,.4629,.1103],[.2055,.4558,.1091],[.1997,.4488,.1079],[.1938,.4417,.1067],[.188,.4346,.1054],[.1822,.4275,.1042],[.1763,.4205,.103],[.1705,.4134,.1017],[.1646,.4063,.1005],[.1588,.3992,.0993],[.1529,.3922,.098]]};ce.PuBu={interpolate:!0,colors:[[1,.9686,.9843],[.9977,.9667,.9832],[.9953,.9647,.9821],[.993,.9627,.981],[.9906,.9608,.9799],[.9883,.9588,.9788],[.986,.9568,.9777],[.9836,.9548,.9766],[.9813,.9529,.9755],[.979,.9509,.9743],[.9766,.9489,.9732],[.9743,.947,.9721],[.9719,.945,.971],[.9696,.943,.9699],[.9673,.9411,.9688],[.9649,.9391,.9677],[.9626,.9371,.9666],[.9603,.9352,.9655],[.9579,.9332,.9644],[.9556,.9312,.9633],[.9532,.9293,.9622],[.9509,.9273,.9611],[.9486,.9253,.96],[.9462,.9234,.9588],[.9439,.9214,.9577],[.9416,.9194,.9566],[.9392,.9174,.9555],[.9369,.9155,.9544],[.9345,.9135,.9533],[.9322,.9115,.9522],[.9299,.9096,.9511],[.9275,.9076,.95],[.9251,.9055,.9488],[.9216,.9028,.9474],[.9182,.9001,.9459],[.9147,.8974,.9444],[.9113,.8947,.9429],[.9078,.892,.9415],[.9044,.8893,.94],[.9009,.8866,.9385],[.8975,.8839,.937],[.8941,.8812,.9355],[.8906,.8785,.9341],[.8872,.8758,.9326],[.8837,.8731,.9311],[.8803,.8704,.9296],[.8768,.8677,.9282],[.8734,.8649,.9267],[.8699,.8622,.9252],[.8665,.8595,.9237],[.8631,.8568,.9223],[.8596,.8541,.9208],[.8562,.8514,.9193],[.8527,.8487,.9178],[.8493,.846,.9164],[.8458,.8433,.9149],[.8424,.8406,.9134],[.8389,.8379,.9119],[.8355,.8352,.9104],[.832,.8325,.909],[.8286,.8298,.9075],[.8252,.8271,.906],[.8217,.8243,.9045],[.8183,.8216,.9031],[.8144,.819,.9016],[.8092,.8165,.9003],[.8041,.8141,.8989],[.7989,.8116,.8976],[.7937,.8092,.8962],[.7886,.8067,.8949],[.7834,.8042,.8935],[.7782,.8018,.8921],[.7731,.7993,.8908],[.7679,.7968,.8894],[.7627,.7944,.8881],[.7576,.7919,.8867],[.7524,.7895,.8854],[.7472,.787,.884],[.7421,.7845,.8827],[.7369,.7821,.8813],[.7317,.7796,.88],[.7266,.7772,.8786],[.7214,.7747,.8773],[.7162,.7722,.8759],[.711,.7698,.8746],[.7059,.7673,.8732],[.7007,.7649,.8718],[.6955,.7624,.8705],[.6904,.7599,.8691],[.6852,.7575,.8678],[.68,.755,.8664],[.6749,.7526,.8651],[.6697,.7501,.8637],[.6645,.7476,.8624],[.6594,.7452,.861],[.6542,.7427,.8597],[.6487,.7403,.8583],[.6425,.7378,.8568],[.6364,.7353,.8553],[.6302,.7329,.8538],[.6241,.7304,.8524],[.6179,.728,.8509],[.6118,.7255,.8494],[.6056,.723,.8479],[.5995,.7206,.8465],[.5933,.7181,.845],[.5872,.7156,.8435],[.581,.7132,.842],[.5749,.7107,.8406],[.5687,.7083,.8391],[.5626,.7058,.8376],[.5564,.7033,.8361],[.5502,.7009,.8346],[.5441,.6984,.8332],[.5379,.696,.8317],[.5318,.6935,.8302],[.5256,.691,.8287],[.5195,.6886,.8273],[.5133,.6861,.8258],[.5072,.6837,.8243],[.501,.6812,.8228],[.4949,.6787,.8214],[.4887,.6763,.8199],[.4826,.6738,.8184],[.4764,.6714,.8169],[.4703,.6689,.8155],[.4641,.6664,.814],[.458,.664,.8125],[.4511,.6612,.8108],[.4435,.6581,.809],[.4358,.6551,.8072],[.4282,.652,.8053],[.4206,.6489,.8035],[.4129,.6458,.8016],[.4053,.6428,.7998],[.3977,.6397,.7979],[.3901,.6366,.7961],[.3824,.6335,.7942],[.3748,.6304,.7924],[.3672,.6274,.7905],[.3596,.6243,.7887],[.3519,.6212,.7869],[.3443,.6181,.785],[.3367,.6151,.7832],[.329,.612,.7813],[.3214,.6089,.7795],[.3138,.6058,.7776],[.3062,.6028,.7758],[.2985,.5997,.7739],[.2909,.5966,.7721],[.2833,.5935,.7702],[.2756,.5905,.7684],[.268,.5874,.7666],[.2604,.5843,.7647],[.2528,.5812,.7629],[.2451,.5782,.761],[.2375,.5751,.7592],[.2299,.572,.7573],[.2223,.5689,.7555],[.2146,.5659,.7536],[.208,.5622,.7517],[.202,.5583,.7497],[.1959,.5544,.7478],[.1899,.5504,.7458],[.1839,.5465,.7438],[.1779,.5426,.7419],[.1718,.5386,.7399],[.1658,.5347,.7379],[.1598,.5307,.736],[.1537,.5268,.734],[.1477,.5229,.732],[.1417,.5189,.7301],[.1357,.515,.7281],[.1296,.5111,.7261],[.1236,.5071,.7242],[.1176,.5032,.7222],[.1115,.4993,.7202],[.1055,.4953,.7182],[.0995,.4914,.7163],[.0935,.4874,.7143],[.0874,.4835,.7123],[.0814,.4796,.7104],[.0754,.4756,.7084],[.0693,.4717,.7064],[.0633,.4678,.7045],[.0573,.4638,.7025],[.0513,.4599,.7005],[.0452,.4559,.6986],[.0392,.452,.6966],[.0332,.4481,.6946],[.0271,.4441,.6927],[.0211,.4402,.6907],[.0195,.4372,.687],[.0194,.4345,.6827],[.0193,.4318,.6784],[.0191,.4291,.674],[.019,.4264,.6697],[.0189,.4237,.6654],[.0188,.4209,.6611],[.0187,.4182,.6568],[.0185,.4155,.6525],[.0184,.4128,.6482],[.0183,.4101,.6439],[.0182,.4074,.6396],[.018,.4047,.6353],[.0179,.402,.631],[.0178,.3993,.6267],[.0177,.3966,.6224],[.0175,.3939,.6181],[.0174,.3912,.6138],[.0173,.3885,.6095],[.0172,.3858,.6052],[.0171,.3831,.6008],[.0169,.3803,.5965],[.0168,.3776,.5922],[.0167,.3749,.5879],[.0166,.3722,.5836],[.0164,.3695,.5793],[.0163,.3668,.575],[.0162,.3641,.5707],[.0161,.3614,.5664],[.0159,.3587,.5621],[.0158,.356,.5578],[.0157,.3533,.5535],[.0155,.3493,.5472],[.0152,.3451,.5407],[.015,.3409,.5342],[.0147,.3367,.5277],[.0145,.3325,.5212],[.0142,.3284,.5146],[.014,.3242,.5081],[.0137,.32,.5016],[.0135,.3158,.4951],[.0133,.3116,.4886],[.013,.3075,.482],[.0128,.3033,.4755],[.0125,.2991,.469],[.0123,.2949,.4625],[.012,.2907,.4559],[.0118,.2865,.4494],[.0115,.2824,.4429],[.0113,.2782,.4364],[.011,.274,.4299],[.0108,.2698,.4233],[.0105,.2656,.4168],[.0103,.2614,.4103],[.0101,.2573,.4038],[.0098,.2531,.3973],[.0096,.2489,.3907],[.0093,.2447,.3842],[.0091,.2405,.3777],[.0088,.2363,.3712],[.0086,.2322,.3647],[.0083,.228,.3581],[.0081,.2238,.3516],[.0078,.2196,.3451]]};ce.PuBuGn={interpolate:!0,colors:[[1,.9686,.9843],[.9977,.966,.983],[.9953,.9635,.9816],[.993,.9609,.9803],[.9906,.9583,.9789],[.9883,.9557,.9775],[.986,.9531,.9762],[.9836,.9505,.9748],[.9813,.948,.9735],[.979,.9454,.9721],[.9766,.9428,.9708],[.9743,.9402,.9694],[.9719,.9376,.9681],[.9696,.935,.9667],[.9673,.9325,.9654],[.9649,.9299,.964],[.9626,.9273,.9627],[.9603,.9247,.9613],[.9579,.9221,.96],[.9556,.9195,.9586],[.9532,.917,.9572],[.9509,.9144,.9559],[.9486,.9118,.9545],[.9462,.9092,.9532],[.9439,.9066,.9518],[.9416,.904,.9505],[.9392,.9015,.9491],[.9369,.8989,.9478],[.9345,.8963,.9464],[.9322,.8937,.9451],[.9299,.8911,.9437],[.9275,.8885,.9424],[.9251,.886,.941],[.9216,.8839,.9398],[.9182,.8818,.9386],[.9147,.8797,.9373],[.9113,.8776,.9361],[.9078,.8756,.9349],[.9044,.8735,.9336],[.9009,.8714,.9324],[.8975,.8693,.9312],[.8941,.8672,.93],[.8906,.8651,.9287],[.8872,.863,.9275],[.8837,.8609,.9263],[.8803,.8588,.925],[.8768,.8567,.9238],[.8734,.8546,.9226],[.8699,.8525,.9213],[.8665,.8505,.9201],[.8631,.8484,.9189],[.8596,.8463,.9176],[.8562,.8442,.9164],[.8527,.8421,.9152],[.8493,.84,.914],[.8458,.8379,.9127],[.8424,.8358,.9115],[.8389,.8337,.9103],[.8355,.8316,.909],[.832,.8295,.9078],[.8286,.8275,.9066],[.8252,.8254,.9053],[.8217,.8233,.9041],[.8183,.8212,.9029],[.8144,.819,.9016],[.8092,.8165,.9003],[.8041,.8141,.8989],[.7989,.8116,.8976],[.7937,.8092,.8962],[.7886,.8067,.8949],[.7834,.8042,.8935],[.7782,.8018,.8921],[.7731,.7993,.8908],[.7679,.7968,.8894],[.7627,.7944,.8881],[.7576,.7919,.8867],[.7524,.7895,.8854],[.7472,.787,.884],[.7421,.7845,.8827],[.7369,.7821,.8813],[.7317,.7796,.88],[.7266,.7772,.8786],[.7214,.7747,.8773],[.7162,.7722,.8759],[.711,.7698,.8746],[.7059,.7673,.8732],[.7007,.7649,.8718],[.6955,.7624,.8705],[.6904,.7599,.8691],[.6852,.7575,.8678],[.68,.755,.8664],[.6749,.7526,.8651],[.6697,.7501,.8637],[.6645,.7476,.8624],[.6594,.7452,.861],[.6542,.7427,.8597],[.6481,.7403,.8583],[.6403,.7378,.8568],[.6326,.7353,.8553],[.6248,.7329,.8538],[.6171,.7304,.8524],[.6093,.728,.8509],[.6016,.7255,.8494],[.5938,.723,.8479],[.5861,.7206,.8465],[.5783,.7181,.845],[.5706,.7156,.8435],[.5628,.7132,.842],[.5551,.7107,.8406],[.5473,.7083,.8391],[.5396,.7058,.8376],[.5318,.7033,.8361],[.5241,.7009,.8346],[.5163,.6984,.8332],[.5086,.696,.8317],[.5008,.6935,.8302],[.4931,.691,.8287],[.4853,.6886,.8273],[.4776,.6861,.8258],[.4698,.6837,.8243],[.4621,.6812,.8228],[.4543,.6787,.8214],[.4466,.6763,.8199],[.4388,.6738,.8184],[.431,.6714,.8169],[.4233,.6689,.8155],[.4155,.6664,.814],[.4078,.664,.8125],[.4009,.6612,.8108],[.3949,.6581,.809],[.3889,.6551,.8072],[.3828,.652,.8053],[.3768,.6489,.8035],[.3708,.6458,.8016],[.3647,.6428,.7998],[.3587,.6397,.7979],[.3527,.6366,.7961],[.3467,.6335,.7942],[.3406,.6304,.7924],[.3346,.6274,.7905],[.3286,.6243,.7887],[.3225,.6212,.7869],[.3165,.6181,.785],[.3105,.6151,.7832],[.3045,.612,.7813],[.2984,.6089,.7795],[.2924,.6058,.7776],[.2864,.6028,.7758],[.2803,.5997,.7739],[.2743,.5966,.7721],[.2683,.5935,.7702],[.2623,.5905,.7684],[.2562,.5874,.7666],[.2502,.5843,.7647],[.2442,.5812,.7629],[.2381,.5782,.761],[.2321,.5751,.7592],[.2261,.572,.7573],[.2201,.5689,.7555],[.214,.5659,.7536],[.2078,.5636,.7488],[.2014,.5617,.7421],[.195,.5599,.7355],[.1886,.558,.7289],[.1822,.5562,.7222],[.1758,.5543,.7156],[.1694,.5525,.7089],[.163,.5506,.7023],[.1566,.5488,.6956],[.1502,.5469,.689],[.1438,.5451,.6824],[.1374,.5433,.6757],[.131,.5414,.6691],[.1246,.5396,.6624],[.1182,.5377,.6558],[.1118,.5359,.6491],[.1054,.534,.6425],[.099,.5322,.6358],[.0926,.5303,.6292],[.0862,.5285,.6226],[.0798,.5266,.6159],[.0734,.5248,.6093],[.067,.523,.6026],[.0606,.5211,.596],[.0542,.5193,.5893],[.0478,.5174,.5827],[.0414,.5156,.5761],[.035,.5137,.5694],[.0286,.5119,.5628],[.0222,.51,.5561],[.0158,.5082,.5495],[.0094,.5063,.5428],[.0078,.5039,.5367],[.0076,.5014,.5306],[.0075,.4988,.5246],[.0074,.4962,.5186],[.0073,.4936,.5125],[.0071,.491,.5065],[.007,.4884,.5005],[.0069,.4859,.4945],[.0068,.4833,.4884],[.0066,.4807,.4824],[.0065,.4781,.4764],[.0064,.4755,.4703],[.0063,.4729,.4643],[.0062,.4704,.4583],[.006,.4678,.4523],[.0059,.4652,.4462],[.0058,.4626,.4402],[.0057,.46,.4342],[.0055,.4574,.4281],[.0054,.4549,.4221],[.0053,.4523,.4161],[.0052,.4497,.4101],[.005,.4471,.404],[.0049,.4445,.398],[.0048,.4419,.392],[.0047,.4394,.3859],[.0046,.4368,.3799],[.0044,.4342,.3739],[.0043,.4316,.3679],[.0042,.429,.3618],[.0041,.4264,.3558],[.0039,.4239,.3498],[.0039,.4194,.3453],[.0039,.4148,.3409],[.0039,.4101,.3366],[.0039,.4054,.3323],[.0039,.4007,.328],[.0039,.3961,.3237],[.0039,.3914,.3194],[.0039,.3867,.3151],[.0039,.382,.3108],[.0039,.3774,.3065],[.0039,.3727,.3022],[.0039,.368,.2979],[.0039,.3633,.2936],[.0039,.3587,.2893],[.0039,.354,.285],[.0039,.3493,.2807],[.0039,.3446,.2764],[.0039,.34,.272],[.0039,.3353,.2677],[.0039,.3306,.2634],[.0039,.3259,.2591],[.0039,.3213,.2548],[.0039,.3166,.2505],[.0039,.3119,.2462],[.0039,.3072,.2419],[.0039,.3026,.2376],[.0039,.2979,.2333],[.0039,.2932,.229],[.0039,.2885,.2247],[.0039,.2839,.2204],[.0039,.2792,.2161],[.0039,.2745,.2118]]};ce.PuOr={interpolate:!0,colors:[[.498,.2314,.0314],[.506,.2358,.0311],[.514,.2403,.0308],[.522,.2448,.0304],[.53,.2492,.0301],[.538,.2537,.0298],[.546,.2581,.0295],[.554,.2626,.0292],[.562,.2671,.0289],[.57,.2715,.0286],[.578,.276,.0283],[.586,.2804,.028],[.594,.2849,.0277],[.602,.2894,.0274],[.61,.2938,.0271],[.618,.2983,.0268],[.626,.3027,.0265],[.634,.3072,.0261],[.642,.3116,.0258],[.65,.3161,.0255],[.658,.3206,.0252],[.666,.325,.0249],[.674,.3295,.0246],[.682,.3339,.0243],[.69,.3384,.024],[.698,.3429,.0237],[.7054,.3483,.0246],[.7123,.3548,.0268],[.7193,.3612,.0289],[.7262,.3677,.0311],[.7331,.3742,.0332],[.74,.3806,.0354],[.7469,.3871,.0375],[.7539,.3935,.0397],[.7608,.4,.0418],[.7677,.4065,.044],[.7746,.4129,.0461],[.7815,.4194,.0483],[.7885,.4258,.0504],[.7954,.4323,.0526],[.8023,.4388,.0547],[.8092,.4452,.0569],[.8161,.4517,.0591],[.8231,.4581,.0612],[.83,.4646,.0634],[.8369,.471,.0655],[.8438,.4775,.0677],[.8507,.484,.0698],[.8577,.4904,.072],[.8646,.4969,.0741],[.8715,.5033,.0763],[.8784,.5098,.0784],[.8829,.5181,.0906],[.8874,.5264,.1027],[.8918,.5347,.1149],[.8963,.543,.127],[.9007,.5513,.1392],[.9052,.5596,.1513],[.9097,.5679,.1635],[.9141,.5762,.1756],[.9186,.5845,.1878],[.923,.5928,.1999],[.9275,.6012,.2121],[.9319,.6095,.2242],[.9364,.6178,.2364],[.9409,.6261,.2485],[.9453,.6344,.2607],[.9498,.6427,.2728],[.9542,.651,.285],[.9587,.6593,.2971],[.9632,.6676,.3093],[.9676,.6759,.3214],[.9721,.6842,.3336],[.9765,.6925,.3457],[.981,.7008,.3579],[.9855,.7091,.37],[.9899,.7174,.3822],[.9922,.7246,.3946],[.9924,.7308,.4074],[.9925,.7369,.4201],[.9927,.7431,.4329],[.9928,.7493,.4457],[.993,.7554,.4584],[.9932,.7616,.4712],[.9933,.7677,.484],[.9935,.7739,.4967],[.9936,.78,.5095],[.9938,.7862,.5223],[.9939,.7923,.535],[.9941,.7985,.5478],[.9942,.8046,.5606],[.9944,.8108,.5733],[.9945,.8169,.5861],[.9947,.8231,.5988],[.9948,.8292,.6116],[.995,.8354,.6244],[.9952,.8415,.6371],[.9953,.8477,.6499],[.9955,.8538,.6627],[.9956,.86,.6754],[.9958,.8661,.6882],[.9959,.8723,.701],[.9961,.8784,.7137],[.995,.882,.7237],[.9939,.8855,.7337],[.9928,.889,.7437],[.9918,.8926,.7537],[.9907,.8961,.7637],[.9896,.8997,.7737],[.9885,.9032,.7837],[.9875,.9067,.7937],[.9864,.9103,.8037],[.9853,.9138,.8137],[.9842,.9173,.8237],[.9832,.9209,.8337],[.9821,.9244,.8437],[.981,.928,.8537],[.9799,.9315,.8637],[.9789,.935,.8737],[.9778,.9386,.8837],[.9767,.9421,.8937],[.9756,.9456,.9037],[.9745,.9492,.9136],[.9735,.9527,.9236],[.9724,.9562,.9336],[.9713,.9598,.9436],[.9702,.9633,.9536],[.9692,.9669,.9636],[.9662,.9664,.9677],[.9615,.9619,.9659],[.9567,.9575,.964],[.9519,.953,.9622],[.9472,.9486,.9603],[.9424,.9441,.9585],[.9376,.9396,.9566],[.9329,.9352,.9548],[.9281,.9307,.9529],[.9233,.9263,.9511],[.9186,.9218,.9493],[.9138,.9173,.9474],[.909,.9129,.9456],[.9043,.9084,.9437],[.8995,.904,.9419],[.8947,.8995,.94],[.89,.895,.9382],[.8852,.8906,.9363],[.8804,.8861,.9345],[.8757,.8817,.9326],[.8709,.8772,.9308],[.8661,.8727,.929],[.8614,.8683,.9271],[.8566,.8638,.9253],[.8518,.8594,.9234],[.8471,.8549,.9216],[.8412,.8477,.9177],[.8354,.8404,.9139],[.8295,.8332,.91],[.8237,.826,.9062],[.8178,.8188,.9023],[.812,.8115,.8985],[.8062,.8043,.8947],[.8003,.7971,.8908],[.7945,.7899,.887],[.7886,.7826,.8831],[.7828,.7754,.8793],[.7769,.7682,.8754],[.7711,.7609,.8716],[.7652,.7537,.8677],[.7594,.7465,.8639],[.7536,.7393,.8601],[.7477,.732,.8562],[.7419,.7248,.8524],[.736,.7176,.8485],[.7302,.7103,.8447],[.7243,.7031,.8408],[.7185,.6959,.837],[.7126,.6887,.8331],[.7068,.6814,.8293],[.701,.6742,.8255],[.6942,.6663,.8206],[.6865,.6577,.8148],[.6788,.6491,.8089],[.6711,.6404,.8031],[.6634,.6318,.7972],[.6557,.6232,.7914],[.6481,.6146,.7855],[.6404,.606,.7797],[.6327,.5974,.7739],[.625,.5888,.768],[.6173,.5802,.7622],[.6096,.5715,.7563],[.6019,.5629,.7505],[.5942,.5543,.7446],[.5865,.5457,.7388],[.5789,.5371,.7329],[.5712,.5285,.7271],[.5635,.5199,.7213],[.5558,.5113,.7154],[.5481,.5027,.7096],[.5404,.494,.7037],[.5327,.4854,.6979],[.525,.4768,.692],[.5173,.4682,.6862],[.5097,.4596,.6804],[.502,.451,.6745],[.4952,.4393,.669],[.4884,.4276,.6634],[.4817,.4159,.6579],[.4749,.4042,.6524],[.4681,.3925,.6468],[.4614,.3809,.6413],[.4546,.3692,.6358],[.4478,.3575,.6302],[.4411,.3458,.6247],[.4343,.3341,.6191],[.4275,.3224,.6136],[.4208,.3107,.6081],[.414,.299,.6025],[.4072,.2874,.597],[.4005,.2757,.5915],[.3937,.264,.5859],[.3869,.2523,.5804],[.3802,.2406,.5749],[.3734,.2289,.5693],[.3666,.2172,.5638],[.3599,.2055,.5582],[.3531,.1938,.5527],[.3463,.1822,.5472],[.3396,.1705,.5416],[.3328,.1588,.5361],[.3264,.1499,.5286],[.3204,.1439,.5193],[.3144,.1379,.5099],[.3084,.1319,.5005],[.3024,.126,.4911],[.2964,.12,.4817],[.2904,.114,.4724],[.2844,.108,.463],[.2784,.102,.4536],[.2724,.096,.4442],[.2664,.09,.4348],[.2604,.084,.4255],[.2544,.078,.4161],[.2484,.072,.4067],[.2424,.066,.3973],[.2364,.06,.3879],[.2304,.054,.3785],[.2245,.048,.3692],[.2185,.042,.3598],[.2125,.036,.3504],[.2065,.03,.341],[.2005,.024,.3316],[.1945,.018,.3223],[.1885,.012,.3129],[.1825,.006,.3035],[.1765,0,.2941]]};ce.PuRd={interpolate:!0,colors:[[.9686,.9569,.9765],[.9667,.9545,.9752],[.9647,.9522,.974],[.9627,.9499,.9728],[.9608,.9475,.9715],[.9588,.9452,.9703],[.9568,.9428,.9691],[.9548,.9405,.9679],[.9529,.9382,.9666],[.9509,.9358,.9654],[.9489,.9335,.9642],[.947,.9311,.9629],[.945,.9288,.9617],[.943,.9265,.9605],[.9411,.9241,.9592],[.9391,.9218,.958],[.9371,.9195,.9568],[.9352,.9171,.9556],[.9332,.9148,.9543],[.9312,.9124,.9531],[.9293,.9101,.9519],[.9273,.9078,.9506],[.9253,.9054,.9494],[.9234,.9031,.9482],[.9214,.9008,.9469],[.9194,.8984,.9457],[.9174,.8961,.9445],[.9155,.8937,.9433],[.9135,.8914,.942],[.9115,.8891,.9408],[.9096,.8867,.9396],[.9076,.8844,.9383],[.9056,.8817,.9369],[.9033,.8768,.9343],[.9009,.8719,.9318],[.8986,.867,.9292],[.8962,.8621,.9266],[.8939,.8571,.924],[.8916,.8522,.9214],[.8892,.8473,.9188],[.8869,.8424,.9163],[.8846,.8374,.9137],[.8822,.8325,.9111],[.8799,.8276,.9085],[.8775,.8227,.9059],[.8752,.8178,.9033],[.8729,.8128,.9008],[.8705,.8079,.8982],[.8682,.803,.8956],[.8659,.7981,.893],[.8635,.7932,.8904],[.8612,.7882,.8878],[.8588,.7833,.8853],[.8565,.7784,.8827],[.8542,.7735,.8801],[.8518,.7686,.8775],[.8495,.7636,.8749],[.8472,.7587,.8723],[.8448,.7538,.8698],[.8425,.7489,.8672],[.8401,.7439,.8646],[.8378,.739,.862],[.8355,.7341,.8594],[.8331,.7292,.8568],[.831,.7244,.8543],[.8297,.7198,.852],[.8283,.7152,.8496],[.827,.7107,.8473],[.8256,.7061,.845],[.8243,.7016,.8426],[.8229,.697,.8403],[.8216,.6925,.838],[.8202,.6879,.8356],[.8189,.6834,.8333],[.8175,.6788,.8309],[.8161,.6743,.8286],[.8148,.6697,.8263],[.8134,.6652,.8239],[.8121,.6606,.8216],[.8107,.6561,.8193],[.8094,.6515,.8169],[.808,.647,.8146],[.8067,.6424,.8122],[.8053,.6379,.8099],[.804,.6333,.8076],[.8026,.6288,.8052],[.8013,.6242,.8029],[.7999,.6197,.8006],[.7986,.6151,.7982],[.7972,.6105,.7959],[.7958,.606,.7935],[.7945,.6014,.7912],[.7931,.5969,.7889],[.7918,.5923,.7865],[.7904,.5878,.7842],[.7891,.5832,.7819],[.7893,.5782,.7793],[.792,.5724,.7765],[.7947,.5667,.7737],[.7974,.5609,.7708],[.8001,.5551,.768],[.8028,.5493,.7652],[.8055,.5435,.7624],[.8082,.5377,.7595],[.8109,.532,.7567],[.8136,.5262,.7539],[.8163,.5204,.751],[.819,.5146,.7482],[.8217,.5088,.7454],[.8244,.5031,.7425],[.8271,.4973,.7397],[.8299,.4915,.7369],[.8326,.4857,.7341],[.8353,.4799,.7312],[.838,.4741,.7284],[.8407,.4684,.7256],[.8434,.4626,.7227],[.8461,.4568,.7199],[.8488,.451,.7171],[.8515,.4452,.7142],[.8542,.4394,.7114],[.8569,.4337,.7086],[.8596,.4279,.7058],[.8623,.4221,.7029],[.865,.4163,.7001],[.8677,.4105,.6973],[.8704,.4048,.6944],[.8732,.399,.6916],[.875,.3924,.6879],[.876,.385,.6832],[.877,.3776,.6785],[.878,.3702,.6738],[.8789,.3629,.6692],[.8799,.3555,.6645],[.8809,.3481,.6598],[.8819,.3407,.6551],[.8829,.3333,.6505],[.8839,.326,.6458],[.8848,.3186,.6411],[.8858,.3112,.6364],[.8868,.3038,.6318],[.8878,.2964,.6271],[.8888,.289,.6224],[.8898,.2817,.6177],[.8907,.2743,.6131],[.8917,.2669,.6084],[.8927,.2595,.6037],[.8937,.2521,.599],[.8947,.2448,.5944],[.8957,.2374,.5897],[.8967,.23,.585],[.8976,.2226,.5803],[.8986,.2152,.5757],[.8996,.2078,.571],[.9006,.2005,.5663],[.9016,.1931,.5616],[.9026,.1857,.557],[.9035,.1783,.5523],[.9045,.1709,.5476],[.9055,.1636,.5429],[.904,.159,.5372],[.9009,.1562,.5308],[.8978,.1534,.5244],[.8947,.1505,.518],[.8917,.1477,.5116],[.8886,.1449,.5052],[.8855,.142,.4988],[.8824,.1392,.4924],[.8794,.1364,.486],[.8763,.1335,.4796],[.8732,.1307,.4732],[.8701,.1279,.4668],[.8671,.1251,.4604],[.864,.1222,.454],[.8609,.1194,.4476],[.8578,.1166,.4412],[.8547,.1137,.4348],[.8517,.1109,.4284],[.8486,.1081,.422],[.8455,.1053,.4156],[.8424,.1024,.4092],[.8394,.0996,.4028],[.8363,.0968,.3964],[.8332,.0939,.39],[.8301,.0911,.3836],[.8271,.0883,.3772],[.824,.0854,.3708],[.8209,.0826,.3644],[.8178,.0798,.358],[.8148,.077,.3516],[.8117,.0741,.3453],[.8086,.0713,.3389],[.8029,.0689,.3355],[.7962,.0667,.3332],[.7896,.0645,.3308],[.7829,.0623,.3285],[.7763,.0601,.3262],[.7696,.0579,.3238],[.763,.0556,.3215],[.7564,.0534,.3191],[.7497,.0512,.3168],[.7431,.049,.3145],[.7364,.0468,.3121],[.7298,.0446,.3098],[.7231,.0424,.3075],[.7165,.0401,.3051],[.7099,.0379,.3028],[.7032,.0357,.3004],[.6966,.0335,.2981],[.6899,.0313,.2958],[.6833,.0291,.2934],[.6766,.0269,.2911],[.67,.0246,.2888],[.6633,.0224,.2864],[.6567,.0202,.2841],[.6501,.018,.2817],[.6434,.0158,.2794],[.6368,.0136,.2771],[.6301,.0113,.2747],[.6235,.0091,.2724],[.6168,.0069,.27],[.6102,.0047,.2677],[.6036,.0025,.2654],[.5969,3e-4,.263],[.5908,0,.2589],[.5848,0,.2544],[.5787,0,.25],[.5727,0,.2456],[.5667,0,.2412],[.5607,0,.2367],[.5546,0,.2323],[.5486,0,.2279],[.5426,0,.2234],[.5365,0,.219],[.5305,0,.2146],[.5245,0,.2101],[.5185,0,.2057],[.5124,0,.2013],[.5064,0,.1969],[.5004,0,.1924],[.4943,0,.188],[.4883,0,.1836],[.4823,0,.1791],[.4763,0,.1747],[.4702,0,.1703],[.4642,0,.1659],[.4582,0,.1614],[.4521,0,.157],[.4461,0,.1526],[.4401,0,.1481],[.4341,0,.1437],[.428,0,.1393],[.422,0,.1349],[.416,0,.1304],[.41,0,.126],[.4039,0,.1216]]};ce.Purples={interpolate:!0,colors:[[.9882,.9843,.9922],[.9866,.9826,.9912],[.985,.9809,.9902],[.9834,.9791,.9892],[.9818,.9774,.9882],[.9802,.9757,.9872],[.9786,.974,.9863],[.977,.9723,.9853],[.9754,.9705,.9843],[.9738,.9688,.9833],[.9722,.9671,.9823],[.9706,.9654,.9813],[.969,.9636,.9803],[.9674,.9619,.9794],[.9658,.9602,.9784],[.9642,.9585,.9774],[.9626,.9568,.9764],[.961,.955,.9754],[.9594,.9533,.9744],[.9578,.9516,.9735],[.9562,.9499,.9725],[.9546,.9481,.9715],[.953,.9464,.9705],[.9514,.9447,.9695],[.9499,.943,.9685],[.9483,.9413,.9676],[.9467,.9395,.9666],[.9451,.9378,.9656],[.9435,.9361,.9646],[.9419,.9344,.9636],[.9403,.9326,.9626],[.9387,.9309,.9616],[.9369,.9291,.9606],[.9343,.9268,.9594],[.9318,.9244,.9582],[.9292,.9221,.9569],[.9266,.9198,.9557],[.924,.9174,.9545],[.9214,.9151,.9532],[.9188,.9128,.952],[.9163,.9104,.9508],[.9137,.9081,.9496],[.9111,.9057,.9483],[.9085,.9034,.9471],[.9059,.9011,.9459],[.9033,.8987,.9446],[.9008,.8964,.9434],[.8982,.8941,.9422],[.8956,.8917,.9409],[.893,.8894,.9397],[.8904,.887,.9385],[.8878,.8847,.9373],[.8853,.8824,.936],[.8827,.88,.9348],[.8801,.8777,.9336],[.8775,.8754,.9323],[.8749,.873,.9311],[.8723,.8707,.9299],[.8698,.8683,.9286],[.8672,.866,.9274],[.8646,.8637,.9262],[.862,.8613,.925],[.8594,.859,.9237],[.8568,.8567,.9225],[.854,.854,.9211],[.8503,.8504,.9193],[.8466,.8469,.9174],[.8429,.8433,.9156],[.8392,.8397,.9137],[.8355,.8362,.9119],[.8318,.8326,.91],[.8281,.829,.9082],[.8245,.8255,.9063],[.8208,.8219,.9045],[.8171,.8183,.9027],[.8134,.8148,.9008],[.8097,.8112,.899],[.806,.8076,.8971],[.8023,.8041,.8953],[.7986,.8005,.8934],[.7949,.7969,.8916],[.7912,.7934,.8897],[.7875,.7898,.8879],[.7839,.7862,.886],[.7802,.7827,.8842],[.7765,.7791,.8824],[.7728,.7755,.8805],[.7691,.7719,.8787],[.7654,.7684,.8768],[.7617,.7648,.875],[.758,.7612,.8731],[.7543,.7577,.8713],[.7506,.7541,.8694],[.7469,.7505,.8676],[.7433,.747,.8657],[.7396,.7434,.8639],[.7359,.7396,.8618],[.7322,.7353,.8594],[.7285,.7309,.8569],[.7248,.7266,.8544],[.7211,.7223,.852],[.7174,.718,.8495],[.7137,.7137,.8471],[.71,.7094,.8446],[.7063,.7051,.8421],[.7027,.7008,.8397],[.699,.6965,.8372],[.6953,.6922,.8348],[.6916,.6879,.8323],[.6879,.6836,.8298],[.6842,.6793,.8274],[.6805,.675,.8249],[.6768,.6707,.8225],[.6731,.6664,.82],[.6694,.6621,.8175],[.6657,.6577,.8151],[.6621,.6534,.8126],[.6584,.6491,.8101],[.6547,.6448,.8077],[.651,.6405,.8052],[.6473,.6362,.8028],[.6436,.6319,.8003],[.6399,.6276,.7978],[.6362,.6233,.7954],[.6325,.619,.7929],[.6288,.6147,.7905],[.6251,.6104,.788],[.6215,.6061,.7855],[.6178,.6021,.7835],[.6141,.5986,.7817],[.6104,.595,.78],[.6067,.5914,.7783],[.603,.5879,.7766],[.5993,.5843,.7748],[.5956,.5807,.7731],[.5919,.5772,.7714],[.5882,.5736,.7697],[.5845,.57,.768],[.5809,.5665,.7662],[.5772,.5629,.7645],[.5735,.5593,.7628],[.5698,.5558,.7611],[.5661,.5522,.7593],[.5624,.5486,.7576],[.5587,.5451,.7559],[.555,.5415,.7542],[.5513,.5379,.7524],[.5476,.5343,.7507],[.5439,.5308,.749],[.5403,.5272,.7473],[.5366,.5236,.7456],[.5329,.5201,.7438],[.5292,.5165,.7421],[.5255,.5129,.7404],[.5218,.5094,.7387],[.5181,.5058,.7369],[.5144,.5022,.7352],[.5107,.4987,.7335],[.507,.4951,.7318],[.5033,.4915,.7301],[.5003,.4868,.7276],[.4976,.4814,.7248],[.4949,.476,.722],[.4921,.4706,.7192],[.4894,.4652,.7163],[.4867,.4597,.7135],[.484,.4543,.7107],[.4813,.4489,.7078],[.4786,.4435,.705],[.4759,.4381,.7022],[.4732,.4327,.6993],[.4705,.4273,.6965],[.4678,.4219,.6937],[.4651,.4164,.6909],[.4624,.411,.688],[.4597,.4056,.6852],[.457,.4002,.6824],[.4543,.3948,.6795],[.4515,.3894,.6767],[.4488,.384,.6739],[.4461,.3785,.671],[.4434,.3731,.6682],[.4407,.3677,.6654],[.438,.3623,.6626],[.4353,.3569,.6597],[.4326,.3515,.6569],[.4299,.3461,.6541],[.4272,.3407,.6512],[.4245,.3352,.6484],[.4218,.3298,.6456],[.4191,.3244,.6428],[.4164,.319,.6399],[.4137,.3138,.6374],[.4109,.3086,.6349],[.4082,.3034,.6324],[.4055,.2983,.63],[.4028,.2931,.6275],[.4001,.2879,.6251],[.3974,.2828,.6226],[.3947,.2776,.6201],[.392,.2724,.6177],[.3893,.2673,.6152],[.3866,.2621,.6128],[.3839,.2569,.6103],[.3812,.2518,.6078],[.3785,.2466,.6054],[.3758,.2414,.6029],[.3731,.2363,.6005],[.3703,.2311,.598],[.3676,.2259,.5955],[.3649,.2208,.5931],[.3622,.2156,.5906],[.3595,.2104,.5882],[.3568,.2053,.5857],[.3541,.2001,.5832],[.3514,.1949,.5808],[.3487,.1898,.5783],[.346,.1846,.5759],[.3433,.1794,.5734],[.3406,.1743,.5709],[.3379,.1691,.5685],[.3352,.1639,.566],[.3325,.1588,.5636],[.3298,.1536,.5611],[.3272,.1487,.5588],[.3246,.1439,.5566],[.322,.1391,.5544],[.3194,.1343,.5522],[.3168,.1296,.55],[.3142,.1248,.5478],[.3116,.12,.5456],[.3091,.1152,.5433],[.3065,.1104,.5411],[.3039,.1056,.5389],[.3013,.1008,.5367],[.2987,.096,.5345],[.2961,.0912,.5323],[.2936,.0864,.5301],[.291,.0816,.5278],[.2884,.0768,.5256],[.2858,.072,.5234],[.2832,.0672,.5212],[.2806,.0624,.519],[.2781,.0576,.5168],[.2755,.0528,.5146],[.2729,.048,.5123],[.2703,.0432,.5101],[.2677,.0384,.5079],[.2651,.0336,.5057],[.2626,.0288,.5035],[.26,.024,.5013],[.2574,.0192,.4991],[.2548,.0144,.4968],[.2522,.0096,.4946],[.2496,.0048,.4924],[.2471,0,.4902]]};ce.RdBu={interpolate:!0,colors:[[.4039,0,.1216],[.4155,.0037,.1234],[.427,.0074,.1253],[.4385,.0111,.1271],[.4501,.0148,.129],[.4616,.0185,.1308],[.4731,.0221,.1326],[.4847,.0258,.1345],[.4962,.0295,.1363],[.5077,.0332,.1382],[.5193,.0369,.14],[.5308,.0406,.1419],[.5423,.0443,.1437],[.5539,.048,.1456],[.5654,.0517,.1474],[.5769,.0554,.1493],[.5885,.0591,.1511],[.6,.0627,.1529],[.6115,.0664,.1548],[.6231,.0701,.1566],[.6346,.0738,.1585],[.6461,.0775,.1603],[.6577,.0812,.1622],[.6692,.0849,.164],[.6807,.0886,.1659],[.6923,.0923,.1677],[.7008,.0997,.1712],[.7063,.1107,.1765],[.7119,.1218,.1817],[.7174,.1329,.1869],[.723,.1439,.1922],[.7285,.155,.1974],[.734,.1661,.2026],[.7396,.1772,.2078],[.7451,.1882,.2131],[.7506,.1993,.2183],[.7562,.2104,.2235],[.7617,.2215,.2288],[.7672,.2325,.234],[.7728,.2436,.2392],[.7783,.2547,.2444],[.7839,.2657,.2497],[.7894,.2768,.2549],[.7949,.2879,.2601],[.8005,.299,.2654],[.806,.31,.2706],[.8115,.3211,.2758],[.8171,.3322,.281],[.8226,.3433,.2863],[.8281,.3543,.2915],[.8337,.3654,.2967],[.8392,.3765,.302],[.8438,.3871,.3101],[.8484,.3977,.3183],[.8531,.4083,.3264],[.8577,.4189,.3346],[.8623,.4295,.3427],[.8669,.4401,.3509],[.8715,.4507,.359],[.8761,.4614,.3672],[.8807,.472,.3753],[.8854,.4826,.3835],[.89,.4932,.3916],[.8946,.5038,.3998],[.8992,.5144,.4079],[.9038,.525,.4161],[.9084,.5356,.4242],[.913,.5463,.4324],[.9176,.5569,.4405],[.9223,.5675,.4487],[.9269,.5781,.4568],[.9315,.5887,.465],[.9361,.5993,.4731],[.9407,.6099,.4813],[.9453,.6205,.4894],[.9499,.6311,.4976],[.9546,.6418,.5057],[.9576,.6512,.5151],[.9589,.6595,.5257],[.9603,.6678,.5363],[.9617,.6761,.5469],[.9631,.6844,.5576],[.9645,.6927,.5682],[.9659,.701,.5788],[.9672,.7093,.5894],[.9686,.7176,.6],[.97,.726,.6106],[.9714,.7343,.6212],[.9728,.7426,.6318],[.9742,.7509,.6424],[.9755,.7592,.6531],[.9769,.7675,.6637],[.9783,.7758,.6743],[.9797,.7841,.6849],[.9811,.7924,.6955],[.9825,.8007,.7061],[.9839,.809,.7167],[.9852,.8173,.7273],[.9866,.8256,.7379],[.988,.8339,.7486],[.9894,.8422,.7592],[.9908,.8505,.7698],[.9922,.8588,.7804],[.9912,.8631,.7878],[.9903,.8674,.7952],[.9894,.8717,.8025],[.9885,.876,.8099],[.9875,.8804,.8173],[.9866,.8847,.8247],[.9857,.889,.8321],[.9848,.8933,.8394],[.9839,.8976,.8468],[.9829,.9019,.8542],[.982,.9062,.8616],[.9811,.9105,.869],[.9802,.9148,.8764],[.9792,.9191,.8837],[.9783,.9234,.8911],[.9774,.9277,.8985],[.9765,.932,.9059],[.9755,.9363,.9133],[.9746,.9406,.9206],[.9737,.9449,.928],[.9728,.9493,.9354],[.9719,.9536,.9428],[.9709,.9579,.9502],[.97,.9622,.9576],[.9691,.9665,.9649],[.9657,.9672,.9681],[.9599,.9645,.967],[.954,.9617,.9659],[.9482,.9589,.9649],[.9423,.9562,.9638],[.9365,.9534,.9627],[.9306,.9506,.9616],[.9248,.9479,.9606],[.919,.9451,.9595],[.9131,.9423,.9584],[.9073,.9396,.9573],[.9014,.9368,.9562],[.8956,.934,.9552],[.8897,.9313,.9541],[.8839,.9285,.953],[.878,.9257,.9519],[.8722,.923,.9509],[.8664,.9202,.9498],[.8605,.9174,.9487],[.8547,.9146,.9476],[.8488,.9119,.9466],[.843,.9091,.9455],[.8371,.9063,.9444],[.8313,.9036,.9433],[.8255,.9008,.9423],[.8196,.898,.9412],[.8099,.8931,.9384],[.8002,.8882,.9356],[.7905,.8833,.9329],[.7809,.8784,.9301],[.7712,.8734,.9273],[.7615,.8685,.9246],[.7518,.8636,.9218],[.7421,.8587,.919],[.7324,.8537,.9163],[.7227,.8488,.9135],[.713,.8439,.9107],[.7033,.839,.908],[.6937,.8341,.9052],[.684,.8291,.9024],[.6743,.8242,.8997],[.6646,.8193,.8969],[.6549,.8144,.8941],[.6452,.8095,.8913],[.6355,.8045,.8886],[.6258,.7996,.8858],[.6161,.7947,.883],[.6065,.7898,.8803],[.5968,.7849,.8775],[.5871,.7799,.8747],[.5774,.775,.872],[.5665,.7687,.8685],[.5543,.761,.8644],[.5422,.7533,.8602],[.53,.7456,.8561],[.5179,.7379,.8519],[.5057,.7303,.8478],[.4936,.7226,.8436],[.4814,.7149,.8394],[.4693,.7072,.8353],[.4571,.6995,.8311],[.445,.6918,.827],[.4328,.6841,.8228],[.4207,.6764,.8187],[.4085,.6687,.8145],[.3964,.6611,.8104],[.3842,.6534,.8062],[.3721,.6457,.8021],[.3599,.638,.7979],[.3478,.6303,.7938],[.3356,.6226,.7896],[.3235,.6149,.7855],[.3113,.6072,.7813],[.2992,.5995,.7772],[.287,.5918,.773],[.2749,.5842,.7689],[.2627,.5765,.7647],[.2575,.5696,.7612],[.2523,.5626,.7576],[.2471,.5557,.7541],[.2418,.5488,.7506],[.2366,.5419,.747],[.2314,.5349,.7435],[.2261,.528,.7399],[.2209,.5211,.7364],[.2157,.5142,.7329],[.2105,.5073,.7293],[.2052,.5003,.7258],[.2,.4934,.7223],[.1948,.4865,.7187],[.1895,.4796,.7152],[.1843,.4727,.7116],[.1791,.4657,.7081],[.1739,.4588,.7046],[.1686,.4519,.701],[.1634,.445,.6975],[.1582,.4381,.694],[.1529,.4311,.6904],[.1477,.4242,.6869],[.1425,.4173,.6834],[.1373,.4104,.6798],[.132,.4035,.6763],[.1273,.3958,.6687],[.123,.3875,.6572],[.1186,.3792,.6457],[.1143,.3709,.6341],[.11,.3626,.6226],[.1057,.3543,.6111],[.1014,.346,.5995],[.0971,.3377,.588],[.0928,.3294,.5765],[.0885,.3211,.5649],[.0842,.3128,.5534],[.0799,.3045,.5419],[.0756,.2962,.5303],[.0713,.2879,.5188],[.067,.2796,.5073],[.0627,.2713,.4957],[.0584,.263,.4842],[.0541,.2547,.4727],[.0498,.2464,.4611],[.0454,.2381,.4496],[.0411,.2298,.4381],[.0368,.2215,.4265],[.0325,.2131,.415],[.0282,.2048,.4035],[.0239,.1965,.3919],[.0196,.1882,.3804]]};ce.RdGy={interpolate:!0,colors:[[.4039,0,.1216],[.4155,.0037,.1234],[.427,.0074,.1253],[.4385,.0111,.1271],[.4501,.0148,.129],[.4616,.0185,.1308],[.4731,.0221,.1326],[.4847,.0258,.1345],[.4962,.0295,.1363],[.5077,.0332,.1382],[.5193,.0369,.14],[.5308,.0406,.1419],[.5423,.0443,.1437],[.5539,.048,.1456],[.5654,.0517,.1474],[.5769,.0554,.1493],[.5885,.0591,.1511],[.6,.0627,.1529],[.6115,.0664,.1548],[.6231,.0701,.1566],[.6346,.0738,.1585],[.6461,.0775,.1603],[.6577,.0812,.1622],[.6692,.0849,.164],[.6807,.0886,.1659],[.6923,.0923,.1677],[.7008,.0997,.1712],[.7063,.1107,.1765],[.7119,.1218,.1817],[.7174,.1329,.1869],[.723,.1439,.1922],[.7285,.155,.1974],[.734,.1661,.2026],[.7396,.1772,.2078],[.7451,.1882,.2131],[.7506,.1993,.2183],[.7562,.2104,.2235],[.7617,.2215,.2288],[.7672,.2325,.234],[.7728,.2436,.2392],[.7783,.2547,.2444],[.7839,.2657,.2497],[.7894,.2768,.2549],[.7949,.2879,.2601],[.8005,.299,.2654],[.806,.31,.2706],[.8115,.3211,.2758],[.8171,.3322,.281],[.8226,.3433,.2863],[.8281,.3543,.2915],[.8337,.3654,.2967],[.8392,.3765,.302],[.8438,.3871,.3101],[.8484,.3977,.3183],[.8531,.4083,.3264],[.8577,.4189,.3346],[.8623,.4295,.3427],[.8669,.4401,.3509],[.8715,.4507,.359],[.8761,.4614,.3672],[.8807,.472,.3753],[.8854,.4826,.3835],[.89,.4932,.3916],[.8946,.5038,.3998],[.8992,.5144,.4079],[.9038,.525,.4161],[.9084,.5356,.4242],[.913,.5463,.4324],[.9176,.5569,.4405],[.9223,.5675,.4487],[.9269,.5781,.4568],[.9315,.5887,.465],[.9361,.5993,.4731],[.9407,.6099,.4813],[.9453,.6205,.4894],[.9499,.6311,.4976],[.9546,.6418,.5057],[.9576,.6512,.5151],[.9589,.6595,.5257],[.9603,.6678,.5363],[.9617,.6761,.5469],[.9631,.6844,.5576],[.9645,.6927,.5682],[.9659,.701,.5788],[.9672,.7093,.5894],[.9686,.7176,.6],[.97,.726,.6106],[.9714,.7343,.6212],[.9728,.7426,.6318],[.9742,.7509,.6424],[.9755,.7592,.6531],[.9769,.7675,.6637],[.9783,.7758,.6743],[.9797,.7841,.6849],[.9811,.7924,.6955],[.9825,.8007,.7061],[.9839,.809,.7167],[.9852,.8173,.7273],[.9866,.8256,.7379],[.988,.8339,.7486],[.9894,.8422,.7592],[.9908,.8505,.7698],[.9922,.8588,.7804],[.9925,.8644,.789],[.9928,.8699,.7976],[.9931,.8754,.8062],[.9934,.881,.8148],[.9937,.8865,.8235],[.994,.892,.8321],[.9943,.8976,.8407],[.9946,.9031,.8493],[.9949,.9087,.8579],[.9952,.9142,.8665],[.9955,.9197,.8751],[.9958,.9253,.8837],[.9962,.9308,.8923],[.9965,.9363,.901],[.9968,.9419,.9096],[.9971,.9474,.9182],[.9974,.9529,.9268],[.9977,.9585,.9354],[.998,.964,.944],[.9983,.9696,.9526],[.9986,.9751,.9612],[.9989,.9806,.9699],[.9992,.9862,.9785],[.9995,.9917,.9871],[.9998,.9972,.9957],[.9976,.9976,.9976],[.9928,.9928,.9928],[.9881,.9881,.9881],[.9833,.9833,.9833],[.9785,.9785,.9785],[.9738,.9738,.9738],[.969,.969,.969],[.9642,.9642,.9642],[.9595,.9595,.9595],[.9547,.9547,.9547],[.9499,.9499,.9499],[.9452,.9452,.9452],[.9404,.9404,.9404],[.9356,.9356,.9356],[.9309,.9309,.9309],[.9261,.9261,.9261],[.9213,.9213,.9213],[.9166,.9166,.9166],[.9118,.9118,.9118],[.907,.907,.907],[.9023,.9023,.9023],[.8975,.8975,.8975],[.8927,.8927,.8927],[.888,.888,.888],[.8832,.8832,.8832],[.8784,.8784,.8784],[.8726,.8726,.8726],[.8667,.8667,.8667],[.8609,.8609,.8609],[.8551,.8551,.8551],[.8492,.8492,.8492],[.8434,.8434,.8434],[.8375,.8375,.8375],[.8317,.8317,.8317],[.8258,.8258,.8258],[.82,.82,.82],[.8141,.8141,.8141],[.8083,.8083,.8083],[.8025,.8025,.8025],[.7966,.7966,.7966],[.7908,.7908,.7908],[.7849,.7849,.7849],[.7791,.7791,.7791],[.7732,.7732,.7732],[.7674,.7674,.7674],[.7616,.7616,.7616],[.7557,.7557,.7557],[.7499,.7499,.7499],[.744,.744,.744],[.7382,.7382,.7382],[.7323,.7323,.7323],[.7255,.7255,.7255],[.7176,.7176,.7176],[.7098,.7098,.7098],[.702,.702,.702],[.6941,.6941,.6941],[.6863,.6863,.6863],[.6784,.6784,.6784],[.6706,.6706,.6706],[.6627,.6627,.6627],[.6549,.6549,.6549],[.6471,.6471,.6471],[.6392,.6392,.6392],[.6314,.6314,.6314],[.6235,.6235,.6235],[.6157,.6157,.6157],[.6078,.6078,.6078],[.6,.6,.6],[.5922,.5922,.5922],[.5843,.5843,.5843],[.5765,.5765,.5765],[.5686,.5686,.5686],[.5608,.5608,.5608],[.5529,.5529,.5529],[.5451,.5451,.5451],[.5373,.5373,.5373],[.5294,.5294,.5294],[.5205,.5205,.5205],[.5116,.5116,.5116],[.5027,.5027,.5027],[.4937,.4937,.4937],[.4848,.4848,.4848],[.4759,.4759,.4759],[.467,.467,.467],[.4581,.4581,.4581],[.4491,.4491,.4491],[.4402,.4402,.4402],[.4313,.4313,.4313],[.4224,.4224,.4224],[.4135,.4135,.4135],[.4045,.4045,.4045],[.3956,.3956,.3956],[.3867,.3867,.3867],[.3778,.3778,.3778],[.3689,.3689,.3689],[.3599,.3599,.3599],[.351,.351,.351],[.3421,.3421,.3421],[.3332,.3332,.3332],[.3243,.3243,.3243],[.3153,.3153,.3153],[.3064,.3064,.3064],[.298,.298,.298],[.2902,.2902,.2902],[.2824,.2824,.2824],[.2745,.2745,.2745],[.2667,.2667,.2667],[.2588,.2588,.2588],[.251,.251,.251],[.2431,.2431,.2431],[.2353,.2353,.2353],[.2275,.2275,.2275],[.2196,.2196,.2196],[.2118,.2118,.2118],[.2039,.2039,.2039],[.1961,.1961,.1961],[.1882,.1882,.1882],[.1804,.1804,.1804],[.1725,.1725,.1725],[.1647,.1647,.1647],[.1569,.1569,.1569],[.149,.149,.149],[.1412,.1412,.1412],[.1333,.1333,.1333],[.1255,.1255,.1255],[.1176,.1176,.1176],[.1098,.1098,.1098],[.102,.102,.102]]};ce.RdPu={interpolate:!0,colors:[[1,.9686,.9529],[.9998,.9658,.9502],[.9995,.963,.9475],[.9993,.9601,.9448],[.999,.9573,.9421],[.9988,.9545,.9394],[.9985,.9516,.9367],[.9983,.9488,.934],[.998,.946,.9313],[.9978,.9432,.9286],[.9975,.9403,.9259],[.9973,.9375,.9232],[.997,.9347,.9205],[.9968,.9318,.9178],[.9966,.929,.915],[.9963,.9262,.9123],[.9961,.9234,.9096],[.9958,.9205,.9069],[.9956,.9177,.9042],[.9953,.9149,.9015],[.9951,.912,.8988],[.9948,.9092,.8961],[.9946,.9064,.8934],[.9943,.9035,.8907],[.9941,.9007,.888],[.9938,.8979,.8853],[.9936,.8951,.8826],[.9934,.8922,.8799],[.9931,.8894,.8772],[.9929,.8866,.8744],[.9926,.8837,.8717],[.9924,.8809,.869],[.9921,.878,.8662],[.992,.8747,.8627],[.9919,.8714,.8591],[.9918,.8681,.8555],[.9916,.8647,.8519],[.9915,.8614,.8484],[.9914,.8581,.8448],[.9913,.8548,.8412],[.9912,.8514,.8377],[.991,.8481,.8341],[.9909,.8448,.8305],[.9908,.8415,.827],[.9907,.8382,.8234],[.9905,.8348,.8198],[.9904,.8315,.8163],[.9903,.8282,.8127],[.9902,.8249,.8091],[.99,.8215,.8056],[.9899,.8182,.802],[.9898,.8149,.7984],[.9897,.8116,.7949],[.9896,.8083,.7913],[.9894,.8049,.7877],[.9893,.8016,.7842],[.9892,.7983,.7806],[.9891,.795,.777],[.9889,.7916,.7735],[.9888,.7883,.7699],[.9887,.785,.7663],[.9886,.7817,.7628],[.9885,.7784,.7592],[.9883,.775,.7556],[.9882,.7714,.7526],[.9879,.7667,.7512],[.9877,.762,.7499],[.9874,.7574,.7485],[.9872,.7527,.7472],[.9869,.748,.7458],[.9867,.7433,.7445],[.9865,.7387,.7431],[.9862,.734,.7418],[.986,.7293,.7404],[.9857,.7246,.7391],[.9855,.72,.7377],[.9852,.7153,.7364],[.985,.7106,.735],[.9847,.7059,.7337],[.9845,.7013,.7323],[.9842,.6966,.7309],[.984,.6919,.7296],[.9837,.6872,.7282],[.9835,.6826,.7269],[.9833,.6779,.7255],[.983,.6732,.7242],[.9828,.6685,.7228],[.9825,.6639,.7215],[.9823,.6592,.7201],[.982,.6545,.7188],[.9818,.6498,.7174],[.9815,.6452,.7161],[.9813,.6405,.7147],[.981,.6358,.7134],[.9808,.6311,.712],[.9805,.6265,.7106],[.9803,.621,.7089],[.9799,.6142,.7064],[.9795,.6075,.704],[.9791,.6007,.7015],[.9788,.5939,.699],[.9784,.5872,.6966],[.978,.5804,.6941],[.9777,.5736,.6917],[.9773,.5669,.6892],[.9769,.5601,.6867],[.9766,.5533,.6843],[.9762,.5466,.6818],[.9758,.5398,.6794],[.9755,.533,.6769],[.9751,.5263,.6744],[.9747,.5195,.672],[.9743,.5127,.6695],[.974,.506,.6671],[.9736,.4992,.6646],[.9732,.4924,.6621],[.9729,.4857,.6597],[.9725,.4789,.6572],[.9721,.4721,.6547],[.9718,.4654,.6523],[.9714,.4586,.6498],[.971,.4518,.6474],[.9707,.4451,.6449],[.9703,.4383,.6424],[.9699,.4315,.64],[.9696,.4248,.6375],[.9692,.418,.6351],[.9688,.4112,.6326],[.967,.4046,.6308],[.9638,.3982,.6295],[.9606,.3918,.6283],[.9574,.3855,.6271],[.9542,.3791,.6258],[.951,.3727,.6246],[.9478,.3663,.6234],[.9446,.3599,.6221],[.9414,.3535,.6209],[.9382,.3471,.6197],[.935,.3407,.6185],[.9318,.3343,.6172],[.9286,.3279,.616],[.9254,.3215,.6148],[.9222,.3151,.6135],[.919,.3087,.6123],[.9158,.3023,.6111],[.9126,.2959,.6098],[.9095,.2895,.6086],[.9063,.2831,.6074],[.9031,.2767,.6062],[.8999,.2703,.6049],[.8967,.2639,.6037],[.8935,.2575,.6025],[.8903,.2511,.6012],[.8871,.2447,.6],[.8839,.2383,.5988],[.8807,.2319,.5975],[.8775,.2255,.5963],[.8743,.2191,.5951],[.8711,.2127,.5938],[.8679,.2063,.5926],[.8631,.2,.5902],[.8573,.1937,.5872],[.8515,.1875,.5841],[.8457,.1812,.581],[.8399,.1749,.5779],[.8341,.1686,.5749],[.8284,.1624,.5718],[.8226,.1561,.5687],[.8168,.1498,.5656],[.811,.1435,.5626],[.8052,.1373,.5595],[.7994,.131,.5564],[.7937,.1247,.5533],[.7879,.1184,.5502],[.7821,.1122,.5472],[.7763,.1059,.5441],[.7705,.0996,.541],[.7648,.0933,.5379],[.759,.0871,.5349],[.7532,.0808,.5318],[.7474,.0745,.5287],[.7416,.0682,.5256],[.7358,.062,.5226],[.7301,.0557,.5195],[.7243,.0494,.5164],[.7185,.0431,.5133],[.7127,.0369,.5103],[.7069,.0306,.5072],[.7011,.0243,.5041],[.6954,.018,.501],[.6896,.0118,.498],[.6838,.0055,.4949],[.6776,.0039,.4935],[.6712,.0039,.4926],[.6648,.0039,.4917],[.6584,.0039,.4909],[.652,.0039,.49],[.6456,.0039,.4892],[.6392,.0039,.4883],[.6328,.0039,.4874],[.6264,.0039,.4866],[.62,.0039,.4857],[.6136,.0039,.4849],[.6072,.0039,.484],[.6008,.0039,.4831],[.5944,.0039,.4823],[.588,.0039,.4814],[.5816,.0039,.4806],[.5752,.0039,.4797],[.5688,.0039,.4788],[.5624,.0039,.478],[.556,.0039,.4771],[.5496,.0039,.4762],[.5432,.0039,.4754],[.5368,.0039,.4745],[.5304,.0039,.4737],[.524,.0039,.4728],[.5176,.0039,.4719],[.5112,.0039,.4711],[.5048,.0039,.4702],[.4984,.0039,.4694],[.492,.0039,.4685],[.4856,.0039,.4676],[.4792,.0039,.4668],[.4732,.0038,.4653],[.4671,.0037,.4637],[.4611,.0036,.4621],[.4551,.0034,.4605],[.449,.0033,.4589],[.443,.0032,.4573],[.437,.0031,.4557],[.431,.003,.4541],[.4249,.0028,.4525],[.4189,.0027,.4509],[.4129,.0026,.4493],[.4068,.0025,.4477],[.4008,.0023,.4461],[.3948,.0022,.4445],[.3888,.0021,.4429],[.3827,.002,.4413],[.3767,.0018,.4397],[.3707,.0017,.4381],[.3646,.0016,.4365],[.3586,.0015,.4349],[.3526,.0014,.4333],[.3466,.0012,.4317],[.3405,.0011,.4301],[.3345,.001,.4285],[.3285,9e-4,.4269],[.3224,7e-4,.4253],[.3164,6e-4,.4237],[.3104,5e-4,.4221],[.3044,4e-4,.4205],[.2983,2e-4,.4189],[.2923,1e-4,.4173],[.2863,0,.4157]]};ce.RdYlBu={interpolate:!0,colors:[[.6471,0,.149],[.6547,.0074,.1492],[.6624,.0148,.1493],[.6701,.0221,.1495],[.6778,.0295,.1496],[.6855,.0369,.1498],[.6932,.0443,.1499],[.7009,.0517,.1501],[.7086,.0591,.1502],[.7163,.0664,.1504],[.724,.0738,.1506],[.7316,.0812,.1507],[.7393,.0886,.1509],[.747,.096,.151],[.7547,.1033,.1512],[.7624,.1107,.1513],[.7701,.1181,.1515],[.7778,.1255,.1516],[.7855,.1329,.1518],[.7932,.1403,.1519],[.8008,.1476,.1521],[.8085,.155,.1522],[.8162,.1624,.1524],[.8239,.1698,.1526],[.8316,.1772,.1527],[.8393,.1845,.1529],[.8454,.1929,.1551],[.8498,.2023,.1594],[.8543,.2117,.1637],[.8587,.2211,.168],[.8632,.2304,.1723],[.8677,.2398,.1766],[.8721,.2492,.1809],[.8766,.2586,.1852],[.881,.268,.1895],[.8855,.2774,.1938],[.89,.2867,.1982],[.8944,.2961,.2025],[.8989,.3055,.2068],[.9033,.3149,.2111],[.9078,.3243,.2154],[.9123,.3336,.2197],[.9167,.343,.224],[.9212,.3524,.2283],[.9256,.3618,.2326],[.9301,.3712,.2369],[.9346,.3805,.2412],[.939,.3899,.2455],[.9435,.3993,.2498],[.9479,.4087,.2541],[.9524,.4181,.2584],[.9569,.4275,.2627],[.9582,.4374,.2674],[.9596,.4474,.272],[.961,.4574,.2766],[.9624,.4674,.2812],[.9638,.4774,.2858],[.9652,.4874,.2904],[.9666,.4974,.295],[.9679,.5074,.2997],[.9693,.5174,.3043],[.9707,.5274,.3089],[.9721,.5374,.3135],[.9735,.5474,.3181],[.9749,.5574,.3227],[.9762,.5674,.3273],[.9776,.5774,.3319],[.979,.5874,.3366],[.9804,.5974,.3412],[.9818,.6074,.3458],[.9832,.6174,.3504],[.9845,.6274,.355],[.9859,.6374,.3596],[.9873,.6474,.3642],[.9887,.6574,.3689],[.9901,.6674,.3735],[.9915,.6774,.3781],[.9922,.6862,.384],[.9924,.6939,.3912],[.9925,.7016,.3985],[.9927,.7093,.4057],[.9928,.717,.4129],[.993,.7246,.4201],[.9932,.7323,.4274],[.9933,.74,.4346],[.9935,.7477,.4418],[.9936,.7554,.4491],[.9938,.7631,.4563],[.9939,.7708,.4635],[.9941,.7785,.4707],[.9942,.7862,.478],[.9944,.7938,.4852],[.9945,.8015,.4924],[.9947,.8092,.4997],[.9948,.8169,.5069],[.995,.8246,.5141],[.9952,.8323,.5213],[.9953,.84,.5286],[.9955,.8477,.5358],[.9956,.8554,.543],[.9958,.8631,.5502],[.9959,.8707,.5575],[.9961,.8784,.5647],[.9962,.8832,.5719],[.9964,.888,.5792],[.9965,.8927,.5864],[.9967,.8975,.5936],[.9968,.9023,.6008],[.997,.907,.6081],[.9972,.9118,.6153],[.9973,.9166,.6225],[.9975,.9213,.6298],[.9976,.9261,.637],[.9978,.9309,.6442],[.9979,.9356,.6514],[.9981,.9404,.6587],[.9982,.9452,.6659],[.9984,.9499,.6731],[.9985,.9547,.6804],[.9987,.9595,.6876],[.9988,.9642,.6948],[.999,.969,.702],[.9992,.9738,.7093],[.9993,.9785,.7165],[.9995,.9833,.7237],[.9996,.9881,.7309],[.9998,.9928,.7382],[.9999,.9976,.7454],[.9976,.9991,.7534],[.9928,.9972,.7622],[.9881,.9954,.7709],[.9833,.9935,.7797],[.9785,.9917,.7885],[.9738,.9899,.7972],[.969,.988,.806],[.9642,.9862,.8148],[.9595,.9843,.8235],[.9547,.9825,.8323],[.9499,.9806,.8411],[.9452,.9788,.8498],[.9404,.9769,.8586],[.9356,.9751,.8674],[.9309,.9732,.8761],[.9261,.9714,.8849],[.9213,.9696,.8937],[.9166,.9677,.9024],[.9118,.9659,.9112],[.907,.964,.92],[.9023,.9622,.9287],[.8975,.9603,.9375],[.8927,.9585,.9463],[.888,.9566,.955],[.8832,.9548,.9638],[.8784,.9529,.9725],[.8703,.9489,.9702],[.8621,.9449,.9679],[.854,.9409,.9656],[.8458,.9369,.9633],[.8377,.9329,.961],[.8295,.929,.9587],[.8214,.925,.9564],[.8132,.921,.9541],[.8051,.917,.9518],[.7969,.913,.9495],[.7888,.909,.9472],[.7806,.905,.9449],[.7725,.901,.9426],[.7643,.897,.9403],[.7562,.893,.9379],[.748,.889,.9356],[.7399,.885,.9333],[.7317,.881,.931],[.7236,.877,.9287],[.7154,.873,.9264],[.7073,.869,.9241],[.6991,.865,.9218],[.691,.861,.9195],[.6828,.857,.9172],[.6747,.853,.9149],[.6664,.8476,.9119],[.6579,.8408,.9082],[.6494,.8341,.9045],[.641,.8273,.9008],[.6325,.8205,.8971],[.6241,.8138,.8934],[.6156,.807,.8897],[.6072,.8002,.886],[.5987,.7935,.8824],[.5902,.7867,.8787],[.5818,.7799,.875],[.5733,.7732,.8713],[.5649,.7664,.8676],[.5564,.7596,.8639],[.5479,.7529,.8602],[.5395,.7461,.8565],[.531,.7393,.8528],[.5226,.7326,.8491],[.5141,.7258,.8454],[.5057,.719,.8418],[.4972,.7123,.8381],[.4887,.7055,.8344],[.4803,.6987,.8307],[.4718,.692,.827],[.4634,.6852,.8233],[.4549,.6784,.8196],[.4477,.6698,.8151],[.4404,.6612,.8107],[.4332,.6526,.8062],[.426,.644,.8018],[.4188,.6354,.7973],[.4115,.6268,.7928],[.4043,.6181,.7884],[.3971,.6095,.7839],[.3899,.6009,.7795],[.3826,.5923,.775],[.3754,.5837,.7705],[.3682,.5751,.7661],[.3609,.5665,.7616],[.3537,.5579,.7572],[.3465,.5493,.7527],[.3393,.5406,.7483],[.332,.532,.7438],[.3248,.5234,.7393],[.3176,.5148,.7349],[.3103,.5062,.7304],[.3031,.4976,.726],[.2959,.489,.7215],[.2887,.4804,.717],[.2814,.4717,.7126],[.2742,.4631,.7081],[.2691,.454,.7035],[.266,.4443,.6987],[.2629,.4346,.694],[.2598,.4249,.6892],[.2567,.4152,.6844],[.2537,.4055,.6797],[.2506,.3958,.6749],[.2475,.3862,.6701],[.2444,.3765,.6654],[.2414,.3668,.6606],[.2383,.3571,.6558],[.2352,.3474,.6511],[.2321,.3377,.6463],[.2291,.328,.6415],[.226,.3183,.6368],[.2229,.3087,.632],[.2198,.299,.6272],[.2168,.2893,.6225],[.2137,.2796,.6177],[.2106,.2699,.6129],[.2075,.2602,.6082],[.2045,.2505,.6034],[.2014,.2408,.5986],[.1983,.2311,.5938],[.1952,.2215,.5891],[.1922,.2118,.5843]]};ce.RdYlGn={interpolate:!0,colors:[[.6471,0,.149],[.6547,.0074,.1492],[.6624,.0148,.1493],[.6701,.0221,.1495],[.6778,.0295,.1496],[.6855,.0369,.1498],[.6932,.0443,.1499],[.7009,.0517,.1501],[.7086,.0591,.1502],[.7163,.0664,.1504],[.724,.0738,.1506],[.7316,.0812,.1507],[.7393,.0886,.1509],[.747,.096,.151],[.7547,.1033,.1512],[.7624,.1107,.1513],[.7701,.1181,.1515],[.7778,.1255,.1516],[.7855,.1329,.1518],[.7932,.1403,.1519],[.8008,.1476,.1521],[.8085,.155,.1522],[.8162,.1624,.1524],[.8239,.1698,.1526],[.8316,.1772,.1527],[.8393,.1845,.1529],[.8454,.1929,.1551],[.8498,.2023,.1594],[.8543,.2117,.1637],[.8587,.2211,.168],[.8632,.2304,.1723],[.8677,.2398,.1766],[.8721,.2492,.1809],[.8766,.2586,.1852],[.881,.268,.1895],[.8855,.2774,.1938],[.89,.2867,.1982],[.8944,.2961,.2025],[.8989,.3055,.2068],[.9033,.3149,.2111],[.9078,.3243,.2154],[.9123,.3336,.2197],[.9167,.343,.224],[.9212,.3524,.2283],[.9256,.3618,.2326],[.9301,.3712,.2369],[.9346,.3805,.2412],[.939,.3899,.2455],[.9435,.3993,.2498],[.9479,.4087,.2541],[.9524,.4181,.2584],[.9569,.4275,.2627],[.9582,.4374,.2674],[.9596,.4474,.272],[.961,.4574,.2766],[.9624,.4674,.2812],[.9638,.4774,.2858],[.9652,.4874,.2904],[.9666,.4974,.295],[.9679,.5074,.2997],[.9693,.5174,.3043],[.9707,.5274,.3089],[.9721,.5374,.3135],[.9735,.5474,.3181],[.9749,.5574,.3227],[.9762,.5674,.3273],[.9776,.5774,.3319],[.979,.5874,.3366],[.9804,.5974,.3412],[.9818,.6074,.3458],[.9832,.6174,.3504],[.9845,.6274,.355],[.9859,.6374,.3596],[.9873,.6474,.3642],[.9887,.6574,.3689],[.9901,.6674,.3735],[.9915,.6774,.3781],[.9922,.6862,.3836],[.9924,.6939,.3901],[.9925,.7016,.3965],[.9927,.7093,.403],[.9928,.717,.4095],[.993,.7246,.4159],[.9932,.7323,.4224],[.9933,.74,.4288],[.9935,.7477,.4353],[.9936,.7554,.4418],[.9938,.7631,.4482],[.9939,.7708,.4547],[.9941,.7785,.4611],[.9942,.7862,.4676],[.9944,.7938,.474],[.9945,.8015,.4805],[.9947,.8092,.487],[.9948,.8169,.4934],[.995,.8246,.4999],[.9952,.8323,.5063],[.9953,.84,.5128],[.9955,.8477,.5193],[.9956,.8554,.5257],[.9958,.8631,.5322],[.9959,.8707,.5386],[.9961,.8784,.5451],[.9962,.8832,.5531],[.9964,.888,.5611],[.9965,.8927,.5691],[.9967,.8975,.5771],[.9968,.9023,.5851],[.997,.907,.5931],[.9972,.9118,.6011],[.9973,.9166,.6091],[.9975,.9213,.6171],[.9976,.9261,.6251],[.9978,.9309,.6331],[.9979,.9356,.6411],[.9981,.9404,.6491],[.9982,.9452,.6571],[.9984,.9499,.6651],[.9985,.9547,.673],[.9987,.9595,.681],[.9988,.9642,.689],[.999,.969,.697],[.9992,.9738,.705],[.9993,.9785,.713],[.9995,.9833,.721],[.9996,.9881,.729],[.9998,.9928,.737],[.9999,.9976,.745],[.9971,.9988,.745],[.9912,.9963,.737],[.9854,.9938,.729],[.9795,.9914,.721],[.9737,.9889,.713],[.9679,.9865,.705],[.962,.984,.697],[.9562,.9815,.689],[.9503,.9791,.681],[.9445,.9766,.673],[.9386,.9742,.6651],[.9328,.9717,.6571],[.927,.9692,.6491],[.9211,.9668,.6411],[.9153,.9643,.6331],[.9094,.9619,.6251],[.9036,.9594,.6171],[.8977,.9569,.6091],[.8919,.9545,.6011],[.886,.952,.5931],[.8802,.9496,.5851],[.8744,.9471,.5771],[.8685,.9446,.5691],[.8627,.9422,.5611],[.8568,.9397,.5531],[.851,.9373,.5451],[.8431,.9339,.54],[.8353,.9305,.5349],[.8275,.9271,.5299],[.8196,.9237,.5248],[.8118,.9203,.5197],[.8039,.917,.5146],[.7961,.9136,.5096],[.7882,.9102,.5045],[.7804,.9068,.4994],[.7725,.9034,.4943],[.7647,.9,.4893],[.7569,.8967,.4842],[.749,.8933,.4791],[.7412,.8899,.474],[.7333,.8865,.469],[.7255,.8831,.4639],[.7176,.8797,.4588],[.7098,.8764,.4537],[.702,.873,.4487],[.6941,.8696,.4436],[.6863,.8662,.4385],[.6784,.8628,.4334],[.6706,.8594,.4284],[.6627,.8561,.4233],[.6549,.8527,.4182],[.6461,.8488,.4151],[.6362,.8445,.4141],[.6264,.8402,.413],[.6165,.8359,.4119],[.6067,.8316,.4108],[.5968,.8273,.4098],[.587,.823,.4087],[.5772,.8187,.4076],[.5673,.8144,.4065],[.5575,.8101,.4055],[.5476,.8058,.4044],[.5378,.8015,.4033],[.528,.7972,.4022],[.5181,.7928,.4012],[.5083,.7885,.4001],[.4984,.7842,.399],[.4886,.7799,.3979],[.4787,.7756,.3968],[.4689,.7713,.3958],[.4591,.767,.3947],[.4492,.7627,.3936],[.4394,.7584,.3925],[.4295,.7541,.3915],[.4197,.7498,.3904],[.4098,.7455,.3893],[.4,.7412,.3882],[.3883,.7355,.3853],[.3766,.7298,.3824],[.3649,.7241,.3795],[.3532,.7184,.3765],[.3416,.7127,.3736],[.3299,.707,.3707],[.3182,.7013,.3678],[.3065,.6957,.3649],[.2948,.69,.3619],[.2831,.6843,.359],[.2714,.6786,.3561],[.2597,.6729,.3532],[.2481,.6672,.3502],[.2364,.6615,.3473],[.2247,.6558,.3444],[.213,.6501,.3415],[.2013,.6444,.3386],[.1896,.6388,.3356],[.1779,.6331,.3327],[.1662,.6274,.3298],[.1546,.6217,.3269],[.1429,.616,.324],[.1312,.6103,.321],[.1195,.6046,.3181],[.1078,.5989,.3152],[.1,.5924,.3118],[.096,.585,.308],[.092,.5776,.3041],[.088,.5702,.3003],[.084,.5629,.2964],[.08,.5555,.2926],[.076,.5481,.2887],[.072,.5407,.2849],[.068,.5333,.281],[.064,.526,.2772],[.06,.5186,.2734],[.056,.5112,.2695],[.052,.5038,.2657],[.048,.4964,.2618],[.044,.489,.258],[.04,.4817,.2541],[.036,.4743,.2503],[.032,.4669,.2464],[.028,.4595,.2426],[.024,.4521,.2388],[.02,.4448,.2349],[.016,.4374,.2311],[.012,.43,.2272],[.008,.4226,.2234],[.004,.4152,.2195],[0,.4078,.2157]]};ce.Reds={interpolate:!0,colors:[[1,.9608,.9412],[.9999,.9582,.9375],[.9998,.9556,.9338],[.9996,.953,.9301],[.9995,.9504,.9264],[.9994,.9479,.9227],[.9993,.9453,.919],[.9991,.9427,.9153],[.999,.9401,.9116],[.9989,.9375,.908],[.9988,.9349,.9043],[.9986,.9324,.9006],[.9985,.9298,.8969],[.9984,.9272,.8932],[.9983,.9246,.8895],[.9982,.922,.8858],[.998,.9194,.8821],[.9979,.9169,.8784],[.9978,.9143,.8747],[.9977,.9117,.871],[.9975,.9091,.8674],[.9974,.9065,.8637],[.9973,.9039,.86],[.9972,.9014,.8563],[.997,.8988,.8526],[.9969,.8962,.8489],[.9968,.8936,.8452],[.9967,.891,.8415],[.9966,.8884,.8378],[.9964,.8859,.8341],[.9963,.8833,.8304],[.9962,.8807,.8268],[.996,.8779,.8228],[.9958,.8733,.8167],[.9956,.8688,.8107],[.9953,.8642,.8047],[.9951,.8597,.7987],[.9948,.8551,.7926],[.9946,.8505,.7866],[.9943,.846,.7806],[.9941,.8414,.7745],[.9938,.8369,.7685],[.9936,.8323,.7625],[.9933,.8278,.7565],[.9931,.8232,.7504],[.9928,.8187,.7444],[.9926,.8141,.7384],[.9924,.8096,.7323],[.9921,.805,.7263],[.9919,.8005,.7203],[.9916,.7959,.7143],[.9914,.7914,.7082],[.9911,.7868,.7022],[.9909,.7823,.6962],[.9906,.7777,.6901],[.9904,.7732,.6841],[.9901,.7686,.6781],[.9899,.7641,.6721],[.9897,.7595,.666],[.9894,.755,.66],[.9892,.7504,.654],[.9889,.7459,.648],[.9887,.7413,.6419],[.9884,.7367,.6359],[.9882,.7321,.6299],[.9882,.727,.6241],[.9882,.722,.6184],[.9882,.7169,.6126],[.9882,.7119,.6068],[.9882,.7069,.601],[.9882,.7018,.5952],[.9882,.6968,.5895],[.9882,.6917,.5837],[.9882,.6867,.5779],[.9882,.6816,.5721],[.9882,.6766,.5663],[.9882,.6715,.5605],[.9882,.6665,.5548],[.9882,.6615,.549],[.9882,.6564,.5432],[.9882,.6514,.5374],[.9882,.6463,.5316],[.9882,.6413,.5258],[.9882,.6362,.5201],[.9882,.6312,.5143],[.9882,.6261,.5085],[.9882,.6211,.5027],[.9882,.6161,.4969],[.9882,.611,.4911],[.9882,.606,.4854],[.9882,.6009,.4796],[.9882,.5959,.4738],[.9882,.5908,.468],[.9882,.5858,.4622],[.9882,.5807,.4565],[.9882,.5757,.4507],[.9882,.5707,.4452],[.9881,.5658,.4403],[.9879,.5609,.4354],[.9878,.5559,.4304],[.9877,.551,.4255],[.9876,.5461,.4206],[.9875,.5412,.4157],[.9873,.5363,.4108],[.9872,.5313,.4058],[.9871,.5264,.4009],[.987,.5215,.396],[.9868,.5166,.3911],[.9867,.5116,.3862],[.9866,.5067,.3812],[.9865,.5018,.3763],[.9863,.4969,.3714],[.9862,.492,.3665],[.9861,.487,.3616],[.986,.4821,.3566],[.9859,.4772,.3517],[.9857,.4723,.3468],[.9856,.4674,.3419],[.9855,.4624,.3369],[.9854,.4575,.332],[.9852,.4526,.3271],[.9851,.4477,.3222],[.985,.4428,.3173],[.9849,.4378,.3123],[.9847,.4329,.3074],[.9846,.428,.3025],[.9845,.4231,.2976],[.9844,.4181,.2927],[.9836,.4128,.2884],[.9821,.407,.2847],[.9806,.4012,.281],[.9791,.3954,.2773],[.9777,.3897,.2736],[.9762,.3839,.2699],[.9747,.3781,.2662],[.9732,.3723,.2625],[.9718,.3665,.2588],[.9703,.3608,.2551],[.9688,.355,.2514],[.9673,.3492,.2478],[.9659,.3434,.2441],[.9644,.3376,.2404],[.9629,.3318,.2367],[.9614,.3261,.233],[.96,.3203,.2293],[.9585,.3145,.2256],[.957,.3087,.2219],[.9555,.3029,.2182],[.954,.2971,.2145],[.9526,.2914,.2108],[.9511,.2856,.2072],[.9496,.2798,.2035],[.9481,.274,.1998],[.9467,.2682,.1961],[.9452,.2625,.1924],[.9437,.2567,.1887],[.9422,.2509,.185],[.9408,.2451,.1813],[.9393,.2393,.1776],[.9378,.2335,.1739],[.9345,.2287,.1714],[.9301,.2244,.1696],[.9256,.2201,.1677],[.9212,.2158,.1659],[.9168,.2115,.164],[.9123,.2072,.1622],[.9079,.2028,.1603],[.9035,.1985,.1585],[.8991,.1942,.1566],[.8946,.1899,.1548],[.8902,.1856,.1529],[.8858,.1813,.1511],[.8813,.177,.1493],[.8769,.1727,.1474],[.8725,.1684,.1456],[.8681,.1641,.1437],[.8636,.1598,.1419],[.8592,.1555,.14],[.8548,.1512,.1382],[.8503,.1469,.1363],[.8459,.1426,.1345],[.8415,.1383,.1326],[.837,.1339,.1308],[.8326,.1296,.129],[.8282,.1253,.1271],[.8238,.121,.1253],[.8193,.1167,.1234],[.8149,.1124,.1216],[.8105,.1081,.1197],[.806,.1038,.1179],[.8016,.0995,.116],[.7972,.0952,.1142],[.7926,.0933,.113],[.7879,.0922,.112],[.7832,.0911,.111],[.7785,.09,.11],[.7739,.0889,.1091],[.7692,.0878,.1081],[.7645,.0866,.1071],[.7598,.0855,.1061],[.7552,.0844,.1051],[.7505,.0833,.1041],[.7458,.0822,.1031],[.7411,.0811,.1022],[.7365,.08,.1012],[.7318,.0789,.1002],[.7271,.0778,.0992],[.7224,.0767,.0982],[.7178,.0756,.0972],[.7131,.0745,.0963],[.7084,.0734,.0953],[.7037,.0722,.0943],[.6991,.0711,.0933],[.6944,.07,.0923],[.6897,.0689,.0913],[.685,.0678,.0903],[.6804,.0667,.0894],[.6757,.0656,.0884],[.671,.0645,.0874],[.6663,.0634,.0864],[.6617,.0623,.0854],[.657,.0612,.0844],[.6523,.0601,.0835],[.6476,.059,.0825],[.6404,.0572,.0815],[.6328,.0554,.0805],[.6251,.0535,.0795],[.6175,.0517,.0785],[.6099,.0498,.0776],[.6022,.048,.0766],[.5946,.0461,.0756],[.587,.0443,.0746],[.5794,.0424,.0736],[.5717,.0406,.0726],[.5641,.0388,.0716],[.5565,.0369,.0707],[.5489,.0351,.0697],[.5412,.0332,.0687],[.5336,.0314,.0677],[.526,.0295,.0667],[.5183,.0277,.0657],[.5107,.0258,.0648],[.5031,.024,.0638],[.4955,.0221,.0628],[.4878,.0203,.0618],[.4802,.0185,.0608],[.4726,.0166,.0598],[.4649,.0148,.0589],[.4573,.0129,.0579],[.4497,.0111,.0569],[.4421,.0092,.0559],[.4344,.0074,.0549],[.4268,.0055,.0539],[.4192,.0037,.0529],[.4115,.0018,.052],[.4039,0,.051]]};ce.Set1={interpolate:!1,colors:[[.8941,.102,.1098],[.2157,.4941,.7216],[.302,.6863,.2902],[.5961,.3059,.6392],[1,.498,0],[1,1,.2],[.651,.3373,.1569],[.9686,.5059,.749],[.6,.6,.6]]};ce.Set2={interpolate:!1,colors:[[.4,.7608,.6471],[.9882,.5529,.3843],[.5529,.6275,.7961],[.9059,.5412,.7647],[.651,.8471,.3294],[1,.851,.1843],[.898,.7686,.5804],[.702,.702,.702]]};ce.Set3={interpolate:!1,colors:[[.5529,.8275,.7804],[1,1,.702],[.7451,.7294,.8549],[.9843,.502,.4471],[.502,.6941,.8275],[.9922,.7059,.3843],[.702,.8706,.4118],[.9882,.8039,.898],[.851,.851,.851],[.7373,.502,.7412],[.8,.9216,.7725],[1,.9294,.4353]]};ce.Spectral={interpolate:!0,colors:[[.6196,.0039,.2588],[.6281,.0133,.2608],[.6365,.0227,.2628],[.645,.0321,.2648],[.6534,.0414,.2668],[.6619,.0508,.2688],[.6704,.0602,.2708],[.6788,.0696,.2728],[.6873,.079,.2748],[.6957,.0884,.2768],[.7042,.0977,.2788],[.7126,.1071,.2808],[.7211,.1165,.2828],[.7296,.1259,.2848],[.738,.1353,.2868],[.7465,.1446,.2888],[.7549,.154,.2908],[.7634,.1634,.2928],[.7719,.1728,.2948],[.7803,.1822,.2968],[.7888,.1915,.2988],[.7972,.2009,.3008],[.8057,.2103,.3028],[.8141,.2197,.3048],[.8226,.2291,.3068],[.8311,.2384,.3088],[.8377,.2468,.3089],[.8424,.254,.307],[.8472,.2612,.3052],[.852,.2684,.3033],[.8567,.2757,.3015],[.8615,.2829,.2997],[.8663,.2901,.2978],[.871,.2973,.296],[.8758,.3046,.2941],[.8806,.3118,.2923],[.8854,.319,.2904],[.8901,.3263,.2886],[.8949,.3335,.2867],[.8997,.3407,.2849],[.9044,.3479,.283],[.9092,.3552,.2812],[.914,.3624,.2794],[.9187,.3696,.2775],[.9235,.3769,.2757],[.9283,.3841,.2738],[.933,.3913,.272],[.9378,.3985,.2701],[.9426,.4058,.2683],[.9473,.413,.2664],[.9521,.4202,.2646],[.9569,.4275,.2627],[.9582,.4374,.2674],[.9596,.4474,.272],[.961,.4574,.2766],[.9624,.4674,.2812],[.9638,.4774,.2858],[.9652,.4874,.2904],[.9666,.4974,.295],[.9679,.5074,.2997],[.9693,.5174,.3043],[.9707,.5274,.3089],[.9721,.5374,.3135],[.9735,.5474,.3181],[.9749,.5574,.3227],[.9762,.5674,.3273],[.9776,.5774,.3319],[.979,.5874,.3366],[.9804,.5974,.3412],[.9818,.6074,.3458],[.9832,.6174,.3504],[.9845,.6274,.355],[.9859,.6374,.3596],[.9873,.6474,.3642],[.9887,.6574,.3689],[.9901,.6674,.3735],[.9915,.6774,.3781],[.9922,.6862,.3836],[.9924,.6939,.3901],[.9925,.7016,.3965],[.9927,.7093,.403],[.9928,.717,.4095],[.993,.7246,.4159],[.9932,.7323,.4224],[.9933,.74,.4288],[.9935,.7477,.4353],[.9936,.7554,.4418],[.9938,.7631,.4482],[.9939,.7708,.4547],[.9941,.7785,.4611],[.9942,.7862,.4676],[.9944,.7938,.474],[.9945,.8015,.4805],[.9947,.8092,.487],[.9948,.8169,.4934],[.995,.8246,.4999],[.9952,.8323,.5063],[.9953,.84,.5128],[.9955,.8477,.5193],[.9956,.8554,.5257],[.9958,.8631,.5322],[.9959,.8707,.5386],[.9961,.8784,.5451],[.9962,.8832,.5531],[.9964,.888,.5611],[.9965,.8927,.5691],[.9967,.8975,.5771],[.9968,.9023,.5851],[.997,.907,.5931],[.9972,.9118,.6011],[.9973,.9166,.6091],[.9975,.9213,.6171],[.9976,.9261,.6251],[.9978,.9309,.6331],[.9979,.9356,.6411],[.9981,.9404,.6491],[.9982,.9452,.6571],[.9984,.9499,.6651],[.9985,.9547,.673],[.9987,.9595,.681],[.9988,.9642,.689],[.999,.969,.697],[.9992,.9738,.705],[.9993,.9785,.713],[.9995,.9833,.721],[.9996,.9881,.729],[.9998,.9928,.737],[.9999,.9976,.745],[.9981,.9992,.746],[.9942,.9977,.74],[.9904,.9962,.734],[.9865,.9946,.728],[.9827,.9931,.722],[.9789,.9915,.716],[.975,.99,.71],[.9712,.9885,.704],[.9673,.9869,.698],[.9635,.9854,.692],[.9596,.9839,.686],[.9558,.9823,.68],[.9519,.9808,.674],[.9481,.9792,.6681],[.9443,.9777,.6621],[.9404,.9762,.6561],[.9366,.9746,.6501],[.9327,.9731,.6441],[.9289,.9715,.6381],[.925,.97,.6321],[.9212,.9685,.6261],[.9173,.9669,.6201],[.9135,.9654,.6141],[.9097,.9639,.6081],[.9058,.9623,.6021],[.902,.9608,.5961],[.8929,.9571,.5979],[.8838,.9534,.5998],[.8747,.9497,.6016],[.8657,.946,.6035],[.8566,.9423,.6053],[.8475,.9386,.6072],[.8384,.9349,.609],[.8294,.9313,.6108],[.8203,.9276,.6127],[.8112,.9239,.6145],[.8022,.9202,.6164],[.7931,.9165,.6182],[.784,.9128,.6201],[.7749,.9091,.6219],[.7659,.9054,.6238],[.7568,.9017,.6256],[.7477,.898,.6275],[.7386,.8943,.6293],[.7296,.8907,.6311],[.7205,.887,.633],[.7114,.8833,.6348],[.7023,.8796,.6367],[.6933,.8759,.6385],[.6842,.8722,.6404],[.6751,.8685,.6422],[.6653,.8646,.6432],[.6547,.8604,.6434],[.6441,.8563,.6435],[.6334,.8521,.6437],[.6228,.848,.6438],[.6122,.8438,.644],[.6016,.8397,.6441],[.591,.8355,.6443],[.5804,.8314,.6444],[.5698,.8272,.6446],[.5592,.8231,.6448],[.5486,.8189,.6449],[.5379,.8148,.6451],[.5273,.8106,.6452],[.5167,.8065,.6454],[.5061,.8023,.6455],[.4955,.7982,.6457],[.4849,.794,.6458],[.4743,.7899,.646],[.4637,.7857,.6461],[.4531,.7815,.6463],[.4424,.7774,.6464],[.4318,.7732,.6466],[.4212,.7691,.6468],[.4106,.7649,.6469],[.4,.7608,.6471],[.392,.7519,.6507],[.384,.7429,.6544],[.376,.734,.6581],[.368,.7251,.6618],[.36,.7162,.6655],[.352,.7073,.6692],[.344,.6983,.6729],[.336,.6894,.6766],[.328,.6805,.6803],[.32,.6716,.684],[.312,.6627,.6877],[.304,.6537,.6913],[.296,.6448,.695],[.288,.6359,.6987],[.28,.627,.7024],[.272,.6181,.7061],[.2641,.6092,.7098],[.2561,.6002,.7135],[.2481,.5913,.7172],[.2401,.5824,.7209],[.2321,.5735,.7246],[.2241,.5646,.7283],[.2161,.5556,.7319],[.2081,.5467,.7356],[.2001,.5378,.7393],[.1995,.529,.7391],[.2062,.5202,.7349],[.213,.5114,.7308],[.2198,.5027,.7266],[.2265,.4939,.7225],[.2333,.4851,.7183],[.2401,.4764,.7142],[.2468,.4676,.71],[.2536,.4588,.7059],[.2604,.4501,.7017],[.2671,.4413,.6976],[.2739,.4325,.6934],[.2807,.4238,.6893],[.2874,.415,.6851],[.2942,.4062,.681],[.301,.3975,.6768],[.3077,.3887,.6727],[.3145,.3799,.6685],[.3213,.3712,.6644],[.328,.3624,.6602],[.3348,.3536,.6561],[.3416,.3449,.6519],[.3483,.3361,.6478],[.3551,.3273,.6436],[.3619,.3186,.6394],[.3686,.3098,.6353]]};ce.Wistia={interpolate:!0,colors:[[.8941,1,.4784],[.8958,.9986,.4725],[.8974,.9972,.4666],[.8991,.9958,.4607],[.9008,.9943,.4548],[.9024,.9929,.4489],[.9041,.9915,.443],[.9057,.9901,.4371],[.9074,.9887,.4312],[.9091,.9873,.4253],[.9107,.9859,.4194],[.9124,.9844,.4135],[.914,.983,.4076],[.9157,.9816,.4017],[.9174,.9802,.3958],[.919,.9788,.3899],[.9207,.9774,.3839],[.9224,.9759,.378],[.924,.9745,.3721],[.9257,.9731,.3662],[.9273,.9717,.3603],[.929,.9703,.3544],[.9307,.9689,.3485],[.9323,.9675,.3426],[.934,.966,.3367],[.9356,.9646,.3308],[.9373,.9632,.3249],[.939,.9618,.319],[.9406,.9604,.3131],[.9423,.959,.3072],[.9439,.9576,.3013],[.9456,.9561,.2954],[.9473,.9547,.2895],[.9489,.9533,.2836],[.9506,.9519,.2776],[.9522,.9505,.2717],[.9539,.9491,.2658],[.9556,.9477,.2599],[.9572,.9462,.254],[.9589,.9448,.2481],[.9606,.9434,.2422],[.9622,.942,.2363],[.9639,.9406,.2304],[.9655,.9392,.2245],[.9672,.9377,.2186],[.9689,.9363,.2127],[.9705,.9349,.2068],[.9722,.9335,.2009],[.9738,.9321,.195],[.9755,.9307,.1891],[.9772,.9293,.1832],[.9788,.9278,.1773],[.9805,.9264,.1713],[.9821,.925,.1654],[.9838,.9236,.1595],[.9855,.9222,.1536],[.9871,.9208,.1477],[.9888,.9194,.1418],[.9904,.9179,.1359],[.9921,.9165,.13],[.9938,.9151,.1241],[.9954,.9137,.1182],[.9971,.9123,.1123],[.9988,.9109,.1064],[1,.9091,.1016],[1,.9065,.1],[1,.9039,.0984],[1,.9012,.0968],[1,.8986,.0952],[1,.8959,.0936],[1,.8933,.092],[1,.8906,.0904],[1,.888,.0888],[1,.8853,.0872],[1,.8827,.0856],[1,.88,.084],[1,.8774,.0824],[1,.8748,.0808],[1,.8721,.0792],[1,.8695,.0776],[1,.8668,.076],[1,.8642,.0744],[1,.8615,.0728],[1,.8589,.0712],[1,.8562,.0696],[1,.8536,.068],[1,.8509,.0664],[1,.8483,.0648],[1,.8457,.0632],[1,.843,.0616],[1,.8404,.06],[1,.8377,.0584],[1,.8351,.0568],[1,.8324,.0552],[1,.8298,.0536],[1,.8271,.052],[1,.8245,.0504],[1,.8219,.0488],[1,.8192,.0472],[1,.8166,.0456],[1,.8139,.044],[1,.8113,.0424],[1,.8086,.0408],[1,.806,.0392],[1,.8033,.0376],[1,.8007,.036],[1,.798,.0344],[1,.7954,.0328],[1,.7928,.0312],[1,.7901,.0296],[1,.7875,.028],[1,.7848,.0264],[1,.7822,.0248],[1,.7795,.0232],[1,.7769,.0216],[1,.7742,.02],[1,.7716,.0184],[1,.769,.0168],[1,.7663,.0152],[1,.7637,.0136],[1,.761,.012],[1,.7584,.0104],[1,.7557,.0088],[1,.7531,.0072],[1,.7504,.0056],[1,.7478,.004],[1,.7451,.0024],[1,.7425,8e-4],[1,.7403,0],[1,.7385,0],[1,.7367,0],[1,.7349,0],[1,.7331,0],[1,.7314,0],[1,.7296,0],[1,.7278,0],[1,.726,0],[1,.7242,0],[1,.7224,0],[1,.7207,0],[1,.7189,0],[1,.7171,0],[1,.7153,0],[1,.7135,0],[1,.7117,0],[1,.71,0],[1,.7082,0],[1,.7064,0],[1,.7046,0],[1,.7028,0],[1,.701,0],[1,.6993,0],[1,.6975,0],[1,.6957,0],[1,.6939,0],[1,.6921,0],[1,.6903,0],[1,.6886,0],[1,.6868,0],[1,.685,0],[1,.6832,0],[1,.6814,0],[1,.6796,0],[1,.6778,0],[1,.6761,0],[1,.6743,0],[1,.6725,0],[1,.6707,0],[1,.6689,0],[1,.6671,0],[1,.6654,0],[1,.6636,0],[1,.6618,0],[1,.66,0],[1,.6582,0],[1,.6564,0],[1,.6547,0],[1,.6529,0],[1,.6511,0],[1,.6493,0],[1,.6475,0],[1,.6457,0],[1,.644,0],[1,.6422,0],[1,.6404,0],[1,.6386,0],[1,.6368,0],[1,.635,0],[1,.6332,0],[1,.6315,0],[1,.6297,0],[1,.6279,0],[.9999,.6259,0],[.9997,.6239,0],[.9995,.6219,0],[.9993,.6198,0],[.9991,.6178,0],[.9989,.6158,0],[.9988,.6137,0],[.9986,.6117,0],[.9984,.6097,0],[.9982,.6077,0],[.998,.6056,0],[.9978,.6036,0],[.9976,.6016,0],[.9975,.5995,0],[.9973,.5975,0],[.9971,.5955,0],[.9969,.5934,0],[.9967,.5914,0],[.9965,.5894,0],[.9964,.5874,0],[.9962,.5853,0],[.996,.5833,0],[.9958,.5813,0],[.9956,.5792,0],[.9954,.5772,0],[.9952,.5752,0],[.9951,.5731,0],[.9949,.5711,0],[.9947,.5691,0],[.9945,.5671,0],[.9943,.565,0],[.9941,.563,0],[.994,.561,0],[.9938,.5589,0],[.9936,.5569,0],[.9934,.5549,0],[.9932,.5528,0],[.993,.5508,0],[.9928,.5488,0],[.9927,.5468,0],[.9925,.5447,0],[.9923,.5427,0],[.9921,.5407,0],[.9919,.5386,0],[.9917,.5366,0],[.9916,.5346,0],[.9914,.5325,0],[.9912,.5305,0],[.991,.5285,0],[.9908,.5265,0],[.9906,.5244,0],[.9904,.5224,0],[.9903,.5204,0],[.9901,.5183,0],[.9899,.5163,0],[.9897,.5143,0],[.9895,.5122,0],[.9893,.5102,0],[.9892,.5082,0],[.989,.5062,0],[.9888,.5041,0],[.9886,.5021,0],[.9884,.5001,0],[.9882,.498,0]]};ce.YlGn={interpolate:!0,colors:[[1,1,.898],[.999,.9996,.8926],[.998,.9993,.8872],[.997,.9989,.8818],[.9961,.9985,.8764],[.9951,.9982,.871],[.9941,.9978,.8656],[.9931,.9974,.8601],[.9921,.997,.8547],[.9911,.9967,.8493],[.9902,.9963,.8439],[.9892,.9959,.8385],[.9882,.9956,.8331],[.9872,.9952,.8277],[.9862,.9948,.8223],[.9852,.9945,.8168],[.9843,.9941,.8114],[.9833,.9937,.806],[.9823,.9934,.8006],[.9813,.993,.7952],[.9803,.9926,.7898],[.9793,.9922,.7844],[.9783,.9919,.7789],[.9774,.9915,.7735],[.9764,.9911,.7681],[.9754,.9908,.7627],[.9744,.9904,.7573],[.9734,.99,.7519],[.9724,.9897,.7465],[.9715,.9893,.7411],[.9705,.9889,.7356],[.9695,.9886,.7302],[.9682,.9881,.7252],[.9645,.9866,.7224],[.9608,.9851,.7197],[.9571,.9836,.717],[.9534,.9821,.7143],[.9497,.9807,.7116],[.946,.9792,.7089],[.9423,.9777,.7062],[.9386,.9762,.7035],[.9349,.9748,.7008],[.9313,.9733,.6981],[.9276,.9718,.6954],[.9239,.9703,.6927],[.9202,.9689,.69],[.9165,.9674,.6873],[.9128,.9659,.6846],[.9091,.9644,.6818],[.9054,.963,.6791],[.9017,.9615,.6764],[.898,.96,.6737],[.8943,.9585,.671],[.8907,.957,.6683],[.887,.9556,.6656],[.8833,.9541,.6629],[.8796,.9526,.6602],[.8759,.9511,.6575],[.8722,.9497,.6548],[.8685,.9482,.6521],[.8648,.9467,.6494],[.8611,.9452,.6467],[.8574,.9438,.644],[.8537,.9423,.6412],[.8496,.9406,.6386],[.8442,.9383,.636],[.8388,.9359,.6334],[.8334,.9336,.6308],[.828,.9312,.6282],[.8226,.9289,.6257],[.8171,.9266,.6231],[.8117,.9242,.6205],[.8063,.9219,.6179],[.8009,.9196,.6153],[.7955,.9172,.6127],[.7901,.9149,.6101],[.7847,.9125,.6076],[.7793,.9102,.605],[.7738,.9079,.6024],[.7684,.9055,.5998],[.763,.9032,.5972],[.7576,.9009,.5946],[.7522,.8985,.5921],[.7468,.8962,.5895],[.7414,.8938,.5869],[.7359,.8915,.5843],[.7305,.8892,.5817],[.7251,.8868,.5791],[.7197,.8845,.5766],[.7143,.8822,.574],[.7089,.8798,.5714],[.7035,.8775,.5688],[.6981,.8751,.5662],[.6926,.8728,.5636],[.6872,.8705,.5611],[.6818,.8681,.5585],[.676,.8656,.5559],[.6695,.8628,.5533],[.6629,.8599,.5507],[.6564,.8571,.5481],[.6499,.8543,.5456],[.6434,.8515,.543],[.6369,.8486,.5404],[.6303,.8458,.5378],[.6238,.843,.5352],[.6173,.8401,.5326],[.6108,.8373,.5301],[.6043,.8345,.5275],[.5977,.8316,.5249],[.5912,.8288,.5223],[.5847,.826,.5197],[.5782,.8232,.5171],[.5717,.8203,.5146],[.5651,.8175,.512],[.5586,.8147,.5094],[.5521,.8118,.5068],[.5456,.809,.5042],[.5391,.8062,.5016],[.5325,.8034,.4991],[.526,.8005,.4965],[.5195,.7977,.4939],[.513,.7949,.4913],[.5065,.792,.4887],[.4999,.7892,.4861],[.4934,.7864,.4836],[.4869,.7835,.481],[.4804,.7807,.4784],[.4738,.7779,.4758],[.4672,.7748,.4728],[.4604,.7715,.4693],[.4537,.7682,.4659],[.4469,.7648,.4625],[.4401,.7615,.459],[.4334,.7582,.4556],[.4266,.7549,.4521],[.4198,.7516,.4487],[.4131,.7482,.4452],[.4063,.7449,.4418],[.3995,.7416,.4383],[.3928,.7383,.4349],[.386,.7349,.4314],[.3792,.7316,.428],[.3725,.7283,.4246],[.3657,.725,.4211],[.3589,.7217,.4177],[.3522,.7183,.4142],[.3454,.715,.4108],[.3386,.7117,.4073],[.3319,.7084,.4039],[.3251,.7051,.4004],[.3183,.7017,.397],[.3116,.6984,.3936],[.3048,.6951,.3901],[.298,.6918,.3867],[.2913,.6884,.3832],[.2845,.6851,.3798],[.2777,.6818,.3763],[.271,.6785,.3729],[.2642,.6752,.3694],[.2574,.6718,.366],[.2526,.6676,.3627],[.2489,.6628,.3595],[.2452,.658,.3563],[.2415,.6532,.3531],[.2378,.6484,.3499],[.2341,.6436,.3467],[.2304,.6388,.3435],[.2268,.634,.3403],[.2231,.6292,.3371],[.2194,.6244,.3339],[.2157,.6196,.3307],[.212,.6148,.3275],[.2083,.61,.3243],[.2046,.6052,.3211],[.2009,.6004,.3179],[.1972,.5956,.3147],[.1935,.5908,.3115],[.1899,.586,.3083],[.1862,.5812,.3051],[.1825,.5764,.3019],[.1788,.5716,.2987],[.1751,.5668,.2955],[.1714,.562,.2923],[.1677,.5572,.2891],[.164,.5524,.2859],[.1603,.5476,.2827],[.1566,.5428,.2795],[.1529,.538,.2763],[.1493,.5332,.2731],[.1456,.5284,.2699],[.1419,.5236,.2667],[.1382,.5188,.2635],[.134,.5151,.2616],[.1297,.5116,.2602],[.1254,.5082,.2587],[.1211,.5047,.2572],[.1168,.5013,.2557],[.1125,.4978,.2543],[.1082,.4944,.2528],[.1039,.4909,.2513],[.0996,.4875,.2498],[.0953,.4841,.2484],[.091,.4806,.2469],[.0867,.4772,.2454],[.0824,.4737,.2439],[.078,.4703,.2424],[.0737,.4668,.241],[.0694,.4634,.2395],[.0651,.4599,.238],[.0608,.4565,.2365],[.0565,.4531,.2351],[.0522,.4496,.2336],[.0479,.4462,.2321],[.0436,.4427,.2306],[.0393,.4393,.2292],[.035,.4358,.2277],[.0307,.4324,.2262],[.0264,.4289,.2247],[.0221,.4255,.2233],[.0178,.4221,.2218],[.0135,.4186,.2203],[.0092,.4152,.2188],[.0048,.4117,.2173],[5e-4,.4083,.2159],[0,.4041,.2142],[0,.3998,.2125],[0,.3955,.2107],[0,.3912,.209],[0,.3869,.2073],[0,.3825,.2056],[0,.3782,.2038],[0,.3739,.2021],[0,.3696,.2004],[0,.3653,.1987],[0,.361,.197],[0,.3567,.1952],[0,.3524,.1935],[0,.3481,.1918],[0,.3438,.1901],[0,.3395,.1883],[0,.3352,.1866],[0,.3309,.1849],[0,.3266,.1832],[0,.3223,.1815],[0,.318,.1797],[0,.3136,.178],[0,.3093,.1763],[0,.305,.1746],[0,.3007,.1728],[0,.2964,.1711],[0,.2921,.1694],[0,.2878,.1677],[0,.2835,.166],[0,.2792,.1642],[0,.2749,.1625],[0,.2706,.1608]]};ce.YlGnBu={interpolate:!0,colors:[[1,1,.851],[.9978,.9991,.8461],[.9956,.9983,.8411],[.9934,.9974,.8362],[.9911,.9966,.8313],[.9889,.9957,.8264],[.9867,.9948,.8215],[.9845,.994,.8165],[.9823,.9931,.8116],[.9801,.9922,.8067],[.9779,.9914,.8018],[.9756,.9905,.7968],[.9734,.9897,.7919],[.9712,.9888,.787],[.969,.9879,.7821],[.9668,.9871,.7772],[.9646,.9862,.7722],[.9624,.9854,.7673],[.9601,.9845,.7624],[.9579,.9836,.7575],[.9557,.9828,.7526],[.9535,.9819,.7476],[.9513,.9811,.7427],[.9491,.9802,.7378],[.9469,.9793,.7329],[.9446,.9785,.728],[.9424,.9776,.723],[.9402,.9767,.7181],[.938,.9759,.7132],[.9358,.975,.7083],[.9336,.9742,.7033],[.9313,.9733,.6984],[.9288,.9723,.6942],[.9242,.9705,.6945],[.9195,.9686,.6949],[.9148,.9668,.6953],[.9101,.9649,.6956],[.9055,.9631,.696],[.9008,.9612,.6964],[.8961,.9594,.6967],[.8914,.9576,.6971],[.8868,.9557,.6975],[.8821,.9539,.6979],[.8774,.952,.6982],[.8727,.9502,.6986],[.8681,.9483,.699],[.8634,.9465,.6993],[.8587,.9446,.6997],[.854,.9428,.7001],[.8494,.9409,.7004],[.8447,.9391,.7008],[.84,.9373,.7012],[.8353,.9354,.7015],[.8306,.9336,.7019],[.826,.9317,.7023],[.8213,.9299,.7027],[.8166,.928,.703],[.8119,.9262,.7034],[.8073,.9243,.7038],[.8026,.9225,.7041],[.7979,.9206,.7045],[.7932,.9188,.7049],[.7886,.917,.7052],[.7839,.9151,.7056],[.7782,.9129,.7061],[.7693,.9094,.707],[.7605,.906,.7078],[.7516,.9025,.7087],[.7427,.8991,.7095],[.7339,.8956,.7104],[.725,.8922,.7113],[.7162,.8888,.7121],[.7073,.8853,.713],[.6985,.8819,.7138],[.6896,.8784,.7147],[.6807,.875,.7156],[.6719,.8715,.7164],[.663,.8681,.7173],[.6542,.8646,.7182],[.6453,.8612,.719],[.6364,.8577,.7199],[.6276,.8543,.7207],[.6187,.8509,.7216],[.6099,.8474,.7225],[.601,.844,.7233],[.5922,.8405,.7242],[.5833,.8371,.725],[.5744,.8336,.7259],[.5656,.8302,.7268],[.5567,.8267,.7276],[.5479,.8233,.7285],[.539,.8199,.7294],[.5301,.8164,.7302],[.5213,.813,.7311],[.5124,.8095,.7319],[.5036,.8061,.7328],[.4952,.8029,.7337],[.4876,.8,.7349],[.4799,.7972,.736],[.4723,.7944,.7371],[.4647,.7915,.7382],[.457,.7887,.7393],[.4494,.7859,.7404],[.4418,.7831,.7415],[.4342,.7802,.7426],[.4265,.7774,.7437],[.4189,.7746,.7448],[.4113,.7717,.7459],[.4036,.7689,.747],[.396,.7661,.7481],[.3884,.7632,.7493],[.3808,.7604,.7504],[.3731,.7576,.7515],[.3655,.7548,.7526],[.3579,.7519,.7537],[.3502,.7491,.7548],[.3426,.7463,.7559],[.335,.7434,.757],[.3274,.7406,.7581],[.3197,.7378,.7592],[.3121,.7349,.7603],[.3045,.7321,.7614],[.2969,.7293,.7625],[.2892,.7265,.7636],[.2816,.7236,.7648],[.274,.7208,.7659],[.2663,.718,.767],[.2587,.7151,.7681],[.2527,.7114,.7684],[.2483,.7069,.7679],[.2438,.7023,.7674],[.2394,.6978,.7669],[.235,.6932,.7664],[.2305,.6887,.7659],[.2261,.6841,.7654],[.2217,.6796,.7649],[.2173,.675,.7644],[.2128,.6705,.764],[.2084,.6659,.7635],[.204,.6614,.763],[.1995,.6568,.7625],[.1951,.6523,.762],[.1907,.6477,.7615],[.1863,.6432,.761],[.1818,.6386,.7605],[.1774,.6341,.76],[.173,.6295,.7595],[.1685,.625,.759],[.1641,.6204,.7585],[.1597,.6159,.758],[.1552,.6113,.7576],[.1508,.6068,.7571],[.1464,.6022,.7566],[.142,.5976,.7561],[.1375,.5931,.7556],[.1331,.5885,.7551],[.1287,.584,.7546],[.1242,.5794,.7541],[.1198,.5749,.7536],[.1154,.5703,.7531],[.1141,.5647,.7511],[.1147,.5584,.7481],[.1153,.5522,.7452],[.116,.5459,.7422],[.1166,.5396,.7393],[.1172,.5333,.7363],[.1178,.5271,.7334],[.1184,.5208,.7304],[.119,.5145,.7275],[.1196,.5082,.7245],[.1203,.502,.7216],[.1209,.4957,.7186],[.1215,.4894,.7157],[.1221,.4831,.7127],[.1227,.4769,.7098],[.1233,.4706,.7068],[.124,.4643,.7039],[.1246,.458,.7009],[.1252,.4518,.6979],[.1258,.4455,.695],[.1264,.4392,.692],[.127,.4329,.6891],[.1276,.4267,.6861],[.1283,.4204,.6832],[.1289,.4141,.6802],[.1295,.4078,.6773],[.1301,.4016,.6743],[.1307,.3953,.6714],[.1313,.389,.6684],[.1319,.3827,.6655],[.1326,.3765,.6625],[.1332,.3702,.6596],[.1336,.3648,.657],[.134,.3596,.6545],[.1343,.3544,.6521],[.1347,.3493,.6496],[.1351,.3441,.6471],[.1355,.3389,.6447],[.1358,.3337,.6422],[.1362,.3286,.6398],[.1366,.3234,.6373],[.1369,.3182,.6348],[.1373,.3131,.6324],[.1377,.3079,.6299],[.138,.3027,.6275],[.1384,.2976,.625],[.1388,.2924,.6225],[.1391,.2872,.6201],[.1395,.2821,.6176],[.1399,.2769,.6151],[.1403,.2717,.6127],[.1406,.2666,.6102],[.141,.2614,.6078],[.1414,.2562,.6053],[.1417,.2511,.6028],[.1421,.2459,.6004],[.1425,.2407,.5979],[.1428,.2356,.5955],[.1432,.2304,.593],[.1436,.2252,.5905],[.1439,.2201,.5881],[.1443,.2149,.5856],[.1447,.2097,.5832],[.1451,.2046,.5807],[.142,.2014,.5739],[.1384,.1986,.5666],[.1348,.1958,.5592],[.1313,.193,.5518],[.1277,.1901,.5444],[.1241,.1873,.537],[.1206,.1845,.5296],[.117,.1816,.5223],[.1134,.1788,.5149],[.1099,.176,.5075],[.1063,.1731,.5001],[.1027,.1703,.4927],[.0992,.1675,.4854],[.0956,.1647,.478],[.092,.1618,.4706],[.0885,.159,.4632],[.0849,.1562,.4558],[.0813,.1533,.4484],[.0778,.1505,.4411],[.0742,.1477,.4337],[.0706,.1449,.4263],[.0671,.142,.4189],[.0635,.1392,.4115],[.0599,.1364,.4042],[.0563,.1335,.3968],[.0528,.1307,.3894],[.0492,.1279,.382],[.0456,.125,.3746],[.0421,.1222,.3672],[.0385,.1194,.3599],[.0349,.1166,.3525],[.0314,.1137,.3451]]};ce.YlOrBr={interpolate:!0,colors:[[1,1,.898],[1,.999,.893],[1,.998,.888],[1,.997,.8829],[1,.9961,.8779],[1,.9951,.8728],[1,.9941,.8678],[1,.9931,.8627],[1,.9921,.8577],[1,.9911,.8526],[1,.9902,.8476],[1,.9892,.8426],[1,.9882,.8375],[1,.9872,.8325],[1,.9862,.8274],[1,.9852,.8224],[1,.9843,.8173],[1,.9833,.8123],[1,.9823,.8072],[1,.9813,.8022],[1,.9803,.7972],[1,.9793,.7921],[1,.9783,.7871],[1,.9774,.782],[1,.9764,.777],[1,.9754,.7719],[1,.9744,.7669],[1,.9734,.7618],[1,.9724,.7568],[1,.9715,.7518],[1,.9705,.7467],[1,.9695,.7417],[1,.9683,.7366],[.9999,.9659,.7313],[.9997,.9634,.726],[.9996,.9609,.7207],[.9995,.9585,.7154],[.9994,.956,.7101],[.9992,.9536,.7049],[.9991,.9511,.6996],[.999,.9486,.6943],[.9989,.9462,.689],[.9988,.9437,.6837],[.9986,.9413,.6784],[.9985,.9388,.6731],[.9984,.9363,.6678],[.9983,.9339,.6625],[.9981,.9314,.6572],[.998,.929,.6519],[.9979,.9265,.6467],[.9978,.924,.6414],[.9976,.9216,.6361],[.9975,.9191,.6308],[.9974,.9166,.6255],[.9973,.9142,.6202],[.9972,.9117,.6149],[.997,.9093,.6096],[.9969,.9068,.6043],[.9968,.9043,.599],[.9967,.9019,.5938],[.9965,.8994,.5885],[.9964,.897,.5832],[.9963,.8945,.5779],[.9962,.892,.5726],[.9961,.8892,.5666],[.9961,.8854,.5585],[.9961,.8816,.5504],[.9961,.8778,.5422],[.9961,.874,.5341],[.9961,.8702,.526],[.9961,.8664,.5179],[.9961,.8625,.5098],[.9961,.8587,.5016],[.9961,.8549,.4935],[.9961,.8511,.4854],[.9961,.8473,.4773],[.9961,.8435,.4692],[.9961,.8397,.461],[.9961,.8358,.4529],[.9961,.832,.4448],[.9961,.8282,.4367],[.9961,.8244,.4286],[.9961,.8206,.4204],[.9961,.8168,.4123],[.9961,.813,.4042],[.9961,.8092,.3961],[.9961,.8053,.388],[.9961,.8015,.3798],[.9961,.7977,.3717],[.9961,.7939,.3636],[.9961,.7901,.3555],[.9961,.7863,.3474],[.9961,.7825,.3392],[.9961,.7786,.3311],[.9961,.7748,.323],[.9961,.771,.3149],[.9961,.7666,.3081],[.9961,.7614,.3034],[.9961,.7561,.2987],[.9961,.7508,.294],[.9961,.7455,.2894],[.9961,.7402,.2847],[.9961,.7349,.28],[.9961,.7296,.2753],[.9961,.7243,.2706],[.9961,.719,.266],[.9961,.7137,.2613],[.9961,.7085,.2566],[.9961,.7032,.2519],[.9961,.6979,.2473],[.9961,.6926,.2426],[.9961,.6873,.2379],[.9961,.682,.2332],[.9961,.6767,.2286],[.9961,.6714,.2239],[.9961,.6661,.2192],[.9961,.6608,.2145],[.9961,.6555,.2099],[.9961,.6503,.2052],[.9961,.645,.2005],[.9961,.6397,.1958],[.9961,.6344,.1912],[.9961,.6291,.1865],[.9961,.6238,.1818],[.9961,.6185,.1771],[.9961,.6132,.1725],[.9961,.6079,.1678],[.9961,.6026,.1631],[.995,.5975,.1595],[.9928,.5924,.1569],[.9905,.5874,.1543],[.9883,.5823,.1517],[.9861,.5773,.1492],[.9839,.5723,.1466],[.9817,.5672,.144],[.9795,.5622,.1414],[.9773,.5571,.1388],[.975,.5521,.1362],[.9728,.547,.1337],[.9706,.542,.1311],[.9684,.5369,.1285],[.9662,.5319,.1259],[.964,.5269,.1233],[.9618,.5218,.1207],[.9595,.5168,.1182],[.9573,.5117,.1156],[.9551,.5067,.113],[.9529,.5016,.1104],[.9507,.4966,.1078],[.9485,.4915,.1052],[.9463,.4865,.1027],[.944,.4815,.1001],[.9418,.4764,.0975],[.9396,.4714,.0949],[.9374,.4663,.0923],[.9352,.4613,.0897],[.933,.4562,.0872],[.9307,.4512,.0846],[.9285,.4462,.082],[.9263,.4411,.0794],[.923,.4364,.077],[.9191,.432,.0748],[.9152,.4276,.0726],[.9112,.4232,.0704],[.9073,.4187,.0682],[.9033,.4143,.066],[.8994,.4099,.0638],[.8955,.4054,.0615],[.8915,.401,.0593],[.8876,.3966,.0571],[.8837,.3922,.0549],[.8797,.3877,.0527],[.8758,.3833,.0505],[.8718,.3789,.0483],[.8679,.3744,.046],[.864,.37,.0438],[.86,.3656,.0416],[.8561,.3612,.0394],[.8522,.3567,.0372],[.8482,.3523,.035],[.8443,.3479,.0328],[.8404,.3434,.0305],[.8364,.339,.0283],[.8325,.3346,.0261],[.8285,.3301,.0239],[.8246,.3257,.0217],[.8207,.3213,.0195],[.8167,.3169,.0173],[.8128,.3124,.015],[.8089,.308,.0128],[.8049,.3036,.0106],[.801,.2991,.0084],[.7953,.2958,.008],[.789,.2929,.0083],[.7827,.2899,.0085],[.7765,.287,.0088],[.7702,.284,.009],[.7639,.2811,.0093],[.7576,.2781,.0095],[.7514,.2752,.0098],[.7451,.2722,.01],[.7388,.2693,.0102],[.7325,.2663,.0105],[.7263,.2633,.0107],[.72,.2604,.011],[.7137,.2574,.0112],[.7075,.2545,.0115],[.7012,.2515,.0117],[.6949,.2486,.012],[.6886,.2456,.0122],[.6824,.2427,.0125],[.6761,.2397,.0127],[.6698,.2368,.0129],[.6635,.2338,.0132],[.6573,.2309,.0134],[.651,.2279,.0137],[.6447,.225,.0139],[.6384,.222,.0142],[.6322,.2191,.0144],[.6259,.2161,.0147],[.6196,.2131,.0149],[.6133,.2102,.0152],[.6071,.2072,.0154],[.6008,.2043,.0157],[.5945,.2023,.0159],[.5882,.2005,.0161],[.582,.1986,.0164],[.5757,.1968,.0166],[.5694,.1949,.0169],[.5631,.1931,.0171],[.5569,.1912,.0174],[.5506,.1894,.0176],[.5443,.1875,.0179],[.538,.1857,.0181],[.5318,.1839,.0184],[.5255,.182,.0186],[.5192,.1802,.0189],[.5129,.1783,.0191],[.5067,.1765,.0193],[.5004,.1746,.0196],[.4941,.1728,.0198],[.4878,.1709,.0201],[.4816,.1691,.0203],[.4753,.1672,.0206],[.469,.1654,.0208],[.4627,.1636,.0211],[.4565,.1617,.0213],[.4502,.1599,.0216],[.4439,.158,.0218],[.4376,.1562,.0221],[.4314,.1543,.0223],[.4251,.1525,.0225],[.4188,.1506,.0228],[.4125,.1488,.023],[.4063,.1469,.0233],[.4,.1451,.0235]]};ce.YlOrRd={interpolate:!0,colors:[[1,1,.8],[1,.9978,.7946],[1,.9956,.7892],[1,.9934,.7838],[1,.9911,.7783],[1,.9889,.7729],[1,.9867,.7675],[1,.9845,.7621],[1,.9823,.7567],[1,.9801,.7513],[1,.9779,.7459],[1,.9756,.7405],[1,.9734,.735],[1,.9712,.7296],[1,.969,.7242],[1,.9668,.7188],[1,.9646,.7134],[1,.9624,.708],[1,.9601,.7026],[1,.9579,.6971],[1,.9557,.6917],[1,.9535,.6863],[1,.9513,.6809],[1,.9491,.6755],[1,.9469,.6701],[1,.9446,.6647],[1,.9424,.6593],[1,.9402,.6538],[1,.938,.6484],[1,.9358,.643],[1,.9336,.6376],[1,.9313,.6322],[1,.9291,.6268],[.9999,.9266,.6216],[.9997,.9242,.6165],[.9996,.9217,.6113],[.9995,.9193,.6061],[.9994,.9168,.601],[.9992,.9143,.5958],[.9991,.9119,.5906],[.999,.9094,.5855],[.9989,.907,.5803],[.9988,.9045,.5751],[.9986,.902,.57],[.9985,.8996,.5648],[.9984,.8971,.5596],[.9983,.8947,.5545],[.9981,.8922,.5493],[.998,.8897,.5441],[.9979,.8873,.539],[.9978,.8848,.5338],[.9976,.8824,.5286],[.9975,.8799,.5235],[.9974,.8774,.5183],[.9973,.875,.5131],[.9972,.8725,.508],[.997,.87,.5028],[.9969,.8676,.4976],[.9968,.8651,.4925],[.9967,.8627,.4873],[.9965,.8602,.4821],[.9964,.8577,.477],[.9963,.8553,.4718],[.9962,.8528,.4666],[.9961,.8498,.4615],[.9961,.845,.4563],[.9961,.8402,.4511],[.9961,.8354,.446],[.9961,.8306,.4408],[.9961,.8258,.4356],[.9961,.821,.4304],[.9961,.8162,.4253],[.9961,.8114,.4201],[.9961,.8066,.4149],[.9961,.8018,.4098],[.9961,.797,.4046],[.9961,.7922,.3994],[.9961,.7874,.3943],[.9961,.7826,.3891],[.9961,.7778,.3839],[.9961,.773,.3788],[.9961,.7682,.3736],[.9961,.7634,.3684],[.9961,.7586,.3633],[.9961,.7538,.3581],[.9961,.749,.3529],[.9961,.7442,.3478],[.9961,.7394,.3426],[.9961,.7346,.3374],[.9961,.7298,.3323],[.9961,.725,.3271],[.9961,.7202,.3219],[.9961,.7154,.3168],[.9961,.7106,.3116],[.9961,.7058,.3064],[.9961,.701,.3013],[.996,.6963,.2973],[.9959,.6918,.2953],[.9958,.6872,.2934],[.9957,.6827,.2914],[.9955,.6781,.2894],[.9954,.6736,.2875],[.9953,.669,.2855],[.9952,.6645,.2835],[.995,.6599,.2816],[.9949,.6554,.2796],[.9948,.6508,.2776],[.9947,.6463,.2756],[.9946,.6417,.2737],[.9944,.6372,.2717],[.9943,.6326,.2697],[.9942,.6281,.2678],[.9941,.6235,.2658],[.9939,.6189,.2638],[.9938,.6144,.2619],[.9937,.6098,.2599],[.9936,.6053,.2579],[.9934,.6007,.256],[.9933,.5962,.254],[.9932,.5916,.252],[.9931,.5871,.2501],[.993,.5825,.2481],[.9928,.578,.2461],[.9927,.5734,.2442],[.9926,.5689,.2422],[.9925,.5643,.2402],[.9923,.5598,.2382],[.9922,.5552,.2363],[.9921,.5491,.2342],[.992,.5413,.232],[.9918,.5336,.2298],[.9917,.5258,.2275],[.9916,.5181,.2253],[.9915,.5103,.2231],[.9914,.5026,.2209],[.9912,.4948,.2187],[.9911,.4871,.2165],[.991,.4793,.2143],[.9909,.4716,.212],[.9907,.4638,.2098],[.9906,.4561,.2076],[.9905,.4483,.2054],[.9904,.4406,.2032],[.9902,.4328,.201],[.9901,.4251,.1988],[.99,.4173,.1965],[.9899,.4096,.1943],[.9898,.4018,.1921],[.9896,.394,.1899],[.9895,.3863,.1877],[.9894,.3785,.1855],[.9893,.3708,.1833],[.9891,.363,.181],[.989,.3553,.1788],[.9889,.3475,.1766],[.9888,.3398,.1744],[.9887,.332,.1722],[.9885,.3243,.17],[.9884,.3165,.1678],[.9883,.3088,.1655],[.9863,.3019,.1636],[.9832,.2955,.1619],[.9802,.2891,.1602],[.9771,.2827,.1585],[.974,.2763,.1567],[.9709,.2699,.155],[.9679,.2635,.1533],[.9648,.2571,.1516],[.9617,.2507,.1499],[.9586,.2443,.1481],[.9556,.2379,.1464],[.9525,.2315,.1447],[.9494,.2251,.143],[.9463,.2187,.1412],[.9433,.2123,.1395],[.9402,.2059,.1378],[.9371,.1995,.1361],[.934,.1931,.1343],[.9309,.1867,.1326],[.9279,.1803,.1309],[.9248,.1739,.1292],[.9217,.1675,.1275],[.9186,.1611,.1257],[.9156,.1547,.124],[.9125,.1483,.1223],[.9094,.1419,.1206],[.9063,.1355,.1188],[.9033,.1292,.1171],[.9002,.1228,.1154],[.8971,.1164,.1137],[.894,.11,.112],[.891,.1036,.1102],[.8867,.0996,.1107],[.882,.0964,.112],[.8773,.0932,.1132],[.8727,.09,.1144],[.868,.0868,.1156],[.8633,.0836,.1169],[.8586,.0804,.1181],[.854,.0772,.1193],[.8493,.074,.1206],[.8446,.0708,.1218],[.8399,.0676,.123],[.8353,.0644,.1243],[.8306,.0612,.1255],[.8259,.058,.1267],[.8212,.0548,.128],[.8166,.0516,.1292],[.8119,.0484,.1304],[.8072,.0452,.1316],[.8025,.042,.1329],[.7979,.0388,.1341],[.7932,.0356,.1353],[.7885,.0324,.1366],[.7838,.0292,.1378],[.7792,.026,.139],[.7745,.0228,.1403],[.7698,.0196,.1415],[.7651,.0164,.1427],[.7605,.0132,.1439],[.7558,.01,.1452],[.7511,.0068,.1464],[.7464,.0036,.1476],[.7418,4e-4,.1489],[.7346,0,.149],[.7271,0,.149],[.7196,0,.149],[.7121,0,.149],[.7046,0,.149],[.6971,0,.149],[.6896,0,.149],[.6821,0,.149],[.6746,0,.149],[.6671,0,.149],[.6596,0,.149],[.6521,0,.149],[.6446,0,.149],[.637,0,.149],[.6295,0,.149],[.622,0,.149],[.6145,0,.149],[.607,0,.149],[.5995,0,.149],[.592,0,.149],[.5845,0,.149],[.577,0,.149],[.5695,0,.149],[.562,0,.149],[.5545,0,.149],[.547,0,.149],[.5395,0,.149],[.532,0,.149],[.5245,0,.149],[.517,0,.149],[.5095,0,.149],[.502,0,.149]]};ce.afmhot={interpolate:!0,colors:[[0,0,0],[.0078,0,0],[.0157,0,0],[.0235,0,0],[.0314,0,0],[.0392,0,0],[.0471,0,0],[.0549,0,0],[.0627,0,0],[.0706,0,0],[.0784,0,0],[.0863,0,0],[.0941,0,0],[.102,0,0],[.1098,0,0],[.1176,0,0],[.1255,0,0],[.1333,0,0],[.1412,0,0],[.149,0,0],[.1569,0,0],[.1647,0,0],[.1725,0,0],[.1804,0,0],[.1882,0,0],[.1961,0,0],[.2039,0,0],[.2118,0,0],[.2196,0,0],[.2275,0,0],[.2353,0,0],[.2431,0,0],[.251,0,0],[.2588,0,0],[.2667,0,0],[.2745,0,0],[.2824,0,0],[.2902,0,0],[.298,0,0],[.3059,0,0],[.3137,0,0],[.3216,0,0],[.3294,0,0],[.3373,0,0],[.3451,0,0],[.3529,0,0],[.3608,0,0],[.3686,0,0],[.3765,0,0],[.3843,0,0],[.3922,0,0],[.4,0,0],[.4078,0,0],[.4157,0,0],[.4235,0,0],[.4314,0,0],[.4392,0,0],[.4471,0,0],[.4549,0,0],[.4627,0,0],[.4706,0,0],[.4784,0,0],[.4863,0,0],[.4941,0,0],[.502,.002,0],[.5098,.0098,0],[.5176,.0176,0],[.5255,.0255,0],[.5333,.0333,0],[.5412,.0412,0],[.549,.049,0],[.5569,.0569,0],[.5647,.0647,0],[.5725,.0725,0],[.5804,.0804,0],[.5882,.0882,0],[.5961,.0961,0],[.6039,.1039,0],[.6118,.1118,0],[.6196,.1196,0],[.6275,.1275,0],[.6353,.1353,0],[.6431,.1431,0],[.651,.151,0],[.6588,.1588,0],[.6667,.1667,0],[.6745,.1745,0],[.6824,.1824,0],[.6902,.1902,0],[.698,.198,0],[.7059,.2059,0],[.7137,.2137,0],[.7216,.2216,0],[.7294,.2294,0],[.7373,.2373,0],[.7451,.2451,0],[.7529,.2529,0],[.7608,.2608,0],[.7686,.2686,0],[.7765,.2765,0],[.7843,.2843,0],[.7922,.2922,0],[.8,.3,0],[.8078,.3078,0],[.8157,.3157,0],[.8235,.3235,0],[.8314,.3314,0],[.8392,.3392,0],[.8471,.3471,0],[.8549,.3549,0],[.8627,.3627,0],[.8706,.3706,0],[.8784,.3784,0],[.8863,.3863,0],[.8941,.3941,0],[.902,.402,0],[.9098,.4098,0],[.9176,.4176,0],[.9255,.4255,0],[.9333,.4333,0],[.9412,.4412,0],[.949,.449,0],[.9569,.4569,0],[.9647,.4647,0],[.9725,.4725,0],[.9804,.4804,0],[.9882,.4882,0],[.9961,.4961,0],[1,.5039,.0039],[1,.5118,.0118],[1,.5196,.0196],[1,.5275,.0275],[1,.5353,.0353],[1,.5431,.0431],[1,.551,.051],[1,.5588,.0588],[1,.5667,.0667],[1,.5745,.0745],[1,.5824,.0824],[1,.5902,.0902],[1,.598,.098],[1,.6059,.1059],[1,.6137,.1137],[1,.6216,.1216],[1,.6294,.1294],[1,.6373,.1373],[1,.6451,.1451],[1,.6529,.1529],[1,.6608,.1608],[1,.6686,.1686],[1,.6765,.1765],[1,.6843,.1843],[1,.6922,.1922],[1,.7,.2],[1,.7078,.2078],[1,.7157,.2157],[1,.7235,.2235],[1,.7314,.2314],[1,.7392,.2392],[1,.7471,.2471],[1,.7549,.2549],[1,.7627,.2627],[1,.7706,.2706],[1,.7784,.2784],[1,.7863,.2863],[1,.7941,.2941],[1,.802,.302],[1,.8098,.3098],[1,.8176,.3176],[1,.8255,.3255],[1,.8333,.3333],[1,.8412,.3412],[1,.849,.349],[1,.8569,.3569],[1,.8647,.3647],[1,.8725,.3725],[1,.8804,.3804],[1,.8882,.3882],[1,.8961,.3961],[1,.9039,.4039],[1,.9118,.4118],[1,.9196,.4196],[1,.9275,.4275],[1,.9353,.4353],[1,.9431,.4431],[1,.951,.451],[1,.9588,.4588],[1,.9667,.4667],[1,.9745,.4745],[1,.9824,.4824],[1,.9902,.4902],[1,.998,.498],[1,1,.5059],[1,1,.5137],[1,1,.5216],[1,1,.5294],[1,1,.5373],[1,1,.5451],[1,1,.5529],[1,1,.5608],[1,1,.5686],[1,1,.5765],[1,1,.5843],[1,1,.5922],[1,1,.6],[1,1,.6078],[1,1,.6157],[1,1,.6235],[1,1,.6314],[1,1,.6392],[1,1,.6471],[1,1,.6549],[1,1,.6627],[1,1,.6706],[1,1,.6784],[1,1,.6863],[1,1,.6941],[1,1,.702],[1,1,.7098],[1,1,.7176],[1,1,.7255],[1,1,.7333],[1,1,.7412],[1,1,.749],[1,1,.7569],[1,1,.7647],[1,1,.7725],[1,1,.7804],[1,1,.7882],[1,1,.7961],[1,1,.8039],[1,1,.8118],[1,1,.8196],[1,1,.8275],[1,1,.8353],[1,1,.8431],[1,1,.851],[1,1,.8588],[1,1,.8667],[1,1,.8745],[1,1,.8824],[1,1,.8902],[1,1,.898],[1,1,.9059],[1,1,.9137],[1,1,.9216],[1,1,.9294],[1,1,.9373],[1,1,.9451],[1,1,.9529],[1,1,.9608],[1,1,.9686],[1,1,.9765],[1,1,.9843],[1,1,.9922],[1,1,1]]};ce.autumn={interpolate:!0,colors:[[1,0,0],[1,.0039,0],[1,.0078,0],[1,.0118,0],[1,.0157,0],[1,.0196,0],[1,.0235,0],[1,.0275,0],[1,.0314,0],[1,.0353,0],[1,.0392,0],[1,.0431,0],[1,.0471,0],[1,.051,0],[1,.0549,0],[1,.0588,0],[1,.0627,0],[1,.0667,0],[1,.0706,0],[1,.0745,0],[1,.0784,0],[1,.0824,0],[1,.0863,0],[1,.0902,0],[1,.0941,0],[1,.098,0],[1,.102,0],[1,.1059,0],[1,.1098,0],[1,.1137,0],[1,.1176,0],[1,.1216,0],[1,.1255,0],[1,.1294,0],[1,.1333,0],[1,.1373,0],[1,.1412,0],[1,.1451,0],[1,.149,0],[1,.1529,0],[1,.1569,0],[1,.1608,0],[1,.1647,0],[1,.1686,0],[1,.1725,0],[1,.1765,0],[1,.1804,0],[1,.1843,0],[1,.1882,0],[1,.1922,0],[1,.1961,0],[1,.2,0],[1,.2039,0],[1,.2078,0],[1,.2118,0],[1,.2157,0],[1,.2196,0],[1,.2235,0],[1,.2275,0],[1,.2314,0],[1,.2353,0],[1,.2392,0],[1,.2431,0],[1,.2471,0],[1,.251,0],[1,.2549,0],[1,.2588,0],[1,.2627,0],[1,.2667,0],[1,.2706,0],[1,.2745,0],[1,.2784,0],[1,.2824,0],[1,.2863,0],[1,.2902,0],[1,.2941,0],[1,.298,0],[1,.302,0],[1,.3059,0],[1,.3098,0],[1,.3137,0],[1,.3176,0],[1,.3216,0],[1,.3255,0],[1,.3294,0],[1,.3333,0],[1,.3373,0],[1,.3412,0],[1,.3451,0],[1,.349,0],[1,.3529,0],[1,.3569,0],[1,.3608,0],[1,.3647,0],[1,.3686,0],[1,.3725,0],[1,.3765,0],[1,.3804,0],[1,.3843,0],[1,.3882,0],[1,.3922,0],[1,.3961,0],[1,.4,0],[1,.4039,0],[1,.4078,0],[1,.4118,0],[1,.4157,0],[1,.4196,0],[1,.4235,0],[1,.4275,0],[1,.4314,0],[1,.4353,0],[1,.4392,0],[1,.4431,0],[1,.4471,0],[1,.451,0],[1,.4549,0],[1,.4588,0],[1,.4627,0],[1,.4667,0],[1,.4706,0],[1,.4745,0],[1,.4784,0],[1,.4824,0],[1,.4863,0],[1,.4902,0],[1,.4941,0],[1,.498,0],[1,.502,0],[1,.5059,0],[1,.5098,0],[1,.5137,0],[1,.5176,0],[1,.5216,0],[1,.5255,0],[1,.5294,0],[1,.5333,0],[1,.5373,0],[1,.5412,0],[1,.5451,0],[1,.549,0],[1,.5529,0],[1,.5569,0],[1,.5608,0],[1,.5647,0],[1,.5686,0],[1,.5725,0],[1,.5765,0],[1,.5804,0],[1,.5843,0],[1,.5882,0],[1,.5922,0],[1,.5961,0],[1,.6,0],[1,.6039,0],[1,.6078,0],[1,.6118,0],[1,.6157,0],[1,.6196,0],[1,.6235,0],[1,.6275,0],[1,.6314,0],[1,.6353,0],[1,.6392,0],[1,.6431,0],[1,.6471,0],[1,.651,0],[1,.6549,0],[1,.6588,0],[1,.6627,0],[1,.6667,0],[1,.6706,0],[1,.6745,0],[1,.6784,0],[1,.6824,0],[1,.6863,0],[1,.6902,0],[1,.6941,0],[1,.698,0],[1,.702,0],[1,.7059,0],[1,.7098,0],[1,.7137,0],[1,.7176,0],[1,.7216,0],[1,.7255,0],[1,.7294,0],[1,.7333,0],[1,.7373,0],[1,.7412,0],[1,.7451,0],[1,.749,0],[1,.7529,0],[1,.7569,0],[1,.7608,0],[1,.7647,0],[1,.7686,0],[1,.7725,0],[1,.7765,0],[1,.7804,0],[1,.7843,0],[1,.7882,0],[1,.7922,0],[1,.7961,0],[1,.8,0],[1,.8039,0],[1,.8078,0],[1,.8118,0],[1,.8157,0],[1,.8196,0],[1,.8235,0],[1,.8275,0],[1,.8314,0],[1,.8353,0],[1,.8392,0],[1,.8431,0],[1,.8471,0],[1,.851,0],[1,.8549,0],[1,.8588,0],[1,.8627,0],[1,.8667,0],[1,.8706,0],[1,.8745,0],[1,.8784,0],[1,.8824,0],[1,.8863,0],[1,.8902,0],[1,.8941,0],[1,.898,0],[1,.902,0],[1,.9059,0],[1,.9098,0],[1,.9137,0],[1,.9176,0],[1,.9216,0],[1,.9255,0],[1,.9294,0],[1,.9333,0],[1,.9373,0],[1,.9412,0],[1,.9451,0],[1,.949,0],[1,.9529,0],[1,.9569,0],[1,.9608,0],[1,.9647,0],[1,.9686,0],[1,.9725,0],[1,.9765,0],[1,.9804,0],[1,.9843,0],[1,.9882,0],[1,.9922,0],[1,.9961,0],[1,1,0]]};ce.binary={interpolate:!0,colors:[[1,1,1],[.9961,.9961,.9961],[.9922,.9922,.9922],[.9882,.9882,.9882],[.9843,.9843,.9843],[.9804,.9804,.9804],[.9765,.9765,.9765],[.9725,.9725,.9725],[.9686,.9686,.9686],[.9647,.9647,.9647],[.9608,.9608,.9608],[.9569,.9569,.9569],[.9529,.9529,.9529],[.949,.949,.949],[.9451,.9451,.9451],[.9412,.9412,.9412],[.9373,.9373,.9373],[.9333,.9333,.9333],[.9294,.9294,.9294],[.9255,.9255,.9255],[.9216,.9216,.9216],[.9176,.9176,.9176],[.9137,.9137,.9137],[.9098,.9098,.9098],[.9059,.9059,.9059],[.902,.902,.902],[.898,.898,.898],[.8941,.8941,.8941],[.8902,.8902,.8902],[.8863,.8863,.8863],[.8824,.8824,.8824],[.8784,.8784,.8784],[.8745,.8745,.8745],[.8706,.8706,.8706],[.8667,.8667,.8667],[.8627,.8627,.8627],[.8588,.8588,.8588],[.8549,.8549,.8549],[.851,.851,.851],[.8471,.8471,.8471],[.8431,.8431,.8431],[.8392,.8392,.8392],[.8353,.8353,.8353],[.8314,.8314,.8314],[.8275,.8275,.8275],[.8235,.8235,.8235],[.8196,.8196,.8196],[.8157,.8157,.8157],[.8118,.8118,.8118],[.8078,.8078,.8078],[.8039,.8039,.8039],[.8,.8,.8],[.7961,.7961,.7961],[.7922,.7922,.7922],[.7882,.7882,.7882],[.7843,.7843,.7843],[.7804,.7804,.7804],[.7765,.7765,.7765],[.7725,.7725,.7725],[.7686,.7686,.7686],[.7647,.7647,.7647],[.7608,.7608,.7608],[.7569,.7569,.7569],[.7529,.7529,.7529],[.749,.749,.749],[.7451,.7451,.7451],[.7412,.7412,.7412],[.7373,.7373,.7373],[.7333,.7333,.7333],[.7294,.7294,.7294],[.7255,.7255,.7255],[.7216,.7216,.7216],[.7176,.7176,.7176],[.7137,.7137,.7137],[.7098,.7098,.7098],[.7059,.7059,.7059],[.702,.702,.702],[.698,.698,.698],[.6941,.6941,.6941],[.6902,.6902,.6902],[.6863,.6863,.6863],[.6824,.6824,.6824],[.6784,.6784,.6784],[.6745,.6745,.6745],[.6706,.6706,.6706],[.6667,.6667,.6667],[.6627,.6627,.6627],[.6588,.6588,.6588],[.6549,.6549,.6549],[.651,.651,.651],[.6471,.6471,.6471],[.6431,.6431,.6431],[.6392,.6392,.6392],[.6353,.6353,.6353],[.6314,.6314,.6314],[.6275,.6275,.6275],[.6235,.6235,.6235],[.6196,.6196,.6196],[.6157,.6157,.6157],[.6118,.6118,.6118],[.6078,.6078,.6078],[.6039,.6039,.6039],[.6,.6,.6],[.5961,.5961,.5961],[.5922,.5922,.5922],[.5882,.5882,.5882],[.5843,.5843,.5843],[.5804,.5804,.5804],[.5765,.5765,.5765],[.5725,.5725,.5725],[.5686,.5686,.5686],[.5647,.5647,.5647],[.5608,.5608,.5608],[.5569,.5569,.5569],[.5529,.5529,.5529],[.549,.549,.549],[.5451,.5451,.5451],[.5412,.5412,.5412],[.5373,.5373,.5373],[.5333,.5333,.5333],[.5294,.5294,.5294],[.5255,.5255,.5255],[.5216,.5216,.5216],[.5176,.5176,.5176],[.5137,.5137,.5137],[.5098,.5098,.5098],[.5059,.5059,.5059],[.502,.502,.502],[.498,.498,.498],[.4941,.4941,.4941],[.4902,.4902,.4902],[.4863,.4863,.4863],[.4824,.4824,.4824],[.4784,.4784,.4784],[.4745,.4745,.4745],[.4706,.4706,.4706],[.4667,.4667,.4667],[.4627,.4627,.4627],[.4588,.4588,.4588],[.4549,.4549,.4549],[.451,.451,.451],[.4471,.4471,.4471],[.4431,.4431,.4431],[.4392,.4392,.4392],[.4353,.4353,.4353],[.4314,.4314,.4314],[.4275,.4275,.4275],[.4235,.4235,.4235],[.4196,.4196,.4196],[.4157,.4157,.4157],[.4118,.4118,.4118],[.4078,.4078,.4078],[.4039,.4039,.4039],[.4,.4,.4],[.3961,.3961,.3961],[.3922,.3922,.3922],[.3882,.3882,.3882],[.3843,.3843,.3843],[.3804,.3804,.3804],[.3765,.3765,.3765],[.3725,.3725,.3725],[.3686,.3686,.3686],[.3647,.3647,.3647],[.3608,.3608,.3608],[.3569,.3569,.3569],[.3529,.3529,.3529],[.349,.349,.349],[.3451,.3451,.3451],[.3412,.3412,.3412],[.3373,.3373,.3373],[.3333,.3333,.3333],[.3294,.3294,.3294],[.3255,.3255,.3255],[.3216,.3216,.3216],[.3176,.3176,.3176],[.3137,.3137,.3137],[.3098,.3098,.3098],[.3059,.3059,.3059],[.302,.302,.302],[.298,.298,.298],[.2941,.2941,.2941],[.2902,.2902,.2902],[.2863,.2863,.2863],[.2824,.2824,.2824],[.2784,.2784,.2784],[.2745,.2745,.2745],[.2706,.2706,.2706],[.2667,.2667,.2667],[.2627,.2627,.2627],[.2588,.2588,.2588],[.2549,.2549,.2549],[.251,.251,.251],[.2471,.2471,.2471],[.2431,.2431,.2431],[.2392,.2392,.2392],[.2353,.2353,.2353],[.2314,.2314,.2314],[.2275,.2275,.2275],[.2235,.2235,.2235],[.2196,.2196,.2196],[.2157,.2157,.2157],[.2118,.2118,.2118],[.2078,.2078,.2078],[.2039,.2039,.2039],[.2,.2,.2],[.1961,.1961,.1961],[.1922,.1922,.1922],[.1882,.1882,.1882],[.1843,.1843,.1843],[.1804,.1804,.1804],[.1765,.1765,.1765],[.1725,.1725,.1725],[.1686,.1686,.1686],[.1647,.1647,.1647],[.1608,.1608,.1608],[.1569,.1569,.1569],[.1529,.1529,.1529],[.149,.149,.149],[.1451,.1451,.1451],[.1412,.1412,.1412],[.1373,.1373,.1373],[.1333,.1333,.1333],[.1294,.1294,.1294],[.1255,.1255,.1255],[.1216,.1216,.1216],[.1176,.1176,.1176],[.1137,.1137,.1137],[.1098,.1098,.1098],[.1059,.1059,.1059],[.102,.102,.102],[.098,.098,.098],[.0941,.0941,.0941],[.0902,.0902,.0902],[.0863,.0863,.0863],[.0824,.0824,.0824],[.0784,.0784,.0784],[.0745,.0745,.0745],[.0706,.0706,.0706],[.0667,.0667,.0667],[.0627,.0627,.0627],[.0588,.0588,.0588],[.0549,.0549,.0549],[.051,.051,.051],[.0471,.0471,.0471],[.0431,.0431,.0431],[.0392,.0392,.0392],[.0353,.0353,.0353],[.0314,.0314,.0314],[.0275,.0275,.0275],[.0235,.0235,.0235],[.0196,.0196,.0196],[.0157,.0157,.0157],[.0118,.0118,.0118],[.0078,.0078,.0078],[.0039,.0039,.0039],[0,0,0]]};ce.bone={interpolate:!0,colors:[[0,0,0],[.0034,.0034,.0048],[.0069,.0069,.0095],[.0103,.0103,.0143],[.0137,.0137,.0191],[.0172,.0172,.0239],[.0206,.0206,.0286],[.024,.024,.0334],[.0275,.0275,.0382],[.0309,.0309,.043],[.0343,.0343,.0477],[.0377,.0377,.0525],[.0412,.0412,.0573],[.0446,.0446,.0621],[.048,.048,.0668],[.0515,.0515,.0716],[.0549,.0549,.0764],[.0583,.0583,.0812],[.0618,.0618,.0859],[.0652,.0652,.0907],[.0686,.0686,.0955],[.0721,.0721,.1003],[.0755,.0755,.105],[.0789,.0789,.1098],[.0824,.0824,.1146],[.0858,.0858,.1194],[.0892,.0892,.1241],[.0926,.0926,.1289],[.0961,.0961,.1337],[.0995,.0995,.1384],[.1029,.1029,.1432],[.1064,.1064,.148],[.1098,.1098,.1528],[.1132,.1132,.1575],[.1167,.1167,.1623],[.1201,.1201,.1671],[.1235,.1235,.1719],[.127,.127,.1766],[.1304,.1304,.1814],[.1338,.1338,.1862],[.1373,.1373,.191],[.1407,.1407,.1957],[.1441,.1441,.2005],[.1475,.1475,.2053],[.151,.151,.2101],[.1544,.1544,.2148],[.1578,.1578,.2196],[.1613,.1613,.2244],[.1647,.1647,.2292],[.1681,.1681,.2339],[.1716,.1716,.2387],[.175,.175,.2435],[.1784,.1784,.2483],[.1819,.1819,.253],[.1853,.1853,.2578],[.1887,.1887,.2626],[.1922,.1922,.2673],[.1956,.1956,.2721],[.199,.199,.2769],[.2025,.2025,.2817],[.2059,.2059,.2864],[.2093,.2093,.2912],[.2127,.2127,.296],[.2162,.2162,.3008],[.2196,.2196,.3055],[.223,.223,.3103],[.2265,.2265,.3151],[.2299,.2299,.3199],[.2333,.2333,.3246],[.2368,.2368,.3294],[.2402,.2402,.3342],[.2436,.2436,.339],[.2471,.2471,.3437],[.2505,.2505,.3485],[.2539,.2539,.3533],[.2574,.2574,.3581],[.2608,.2608,.3628],[.2642,.2642,.3676],[.2676,.2676,.3724],[.2711,.2711,.3772],[.2745,.2745,.3819],[.2779,.2779,.3867],[.2814,.2814,.3915],[.2848,.2848,.3962],[.2882,.2882,.401],[.2917,.2917,.4058],[.2951,.2951,.4106],[.2985,.2985,.4153],[.302,.302,.4201],[.3054,.3054,.4249],[.3088,.3088,.4297],[.3123,.3123,.4344],[.3157,.3157,.4392],[.3191,.3191,.444],[.3225,.3237,.4475],[.326,.3284,.451],[.3294,.3331,.4544],[.3328,.3379,.4578],[.3363,.3426,.4613],[.3397,.3473,.4647],[.3431,.352,.4681],[.3466,.3567,.4716],[.35,.3615,.475],[.3534,.3662,.4784],[.3569,.3709,.4819],[.3603,.3756,.4853],[.3637,.3803,.4887],[.3672,.385,.4922],[.3706,.3898,.4956],[.374,.3945,.499],[.3775,.3992,.5025],[.3809,.4039,.5059],[.3843,.4086,.5093],[.3877,.4134,.5127],[.3912,.4181,.5162],[.3946,.4228,.5196],[.398,.4275,.523],[.4015,.4322,.5265],[.4049,.4369,.5299],[.4083,.4417,.5333],[.4118,.4464,.5368],[.4152,.4511,.5402],[.4186,.4558,.5436],[.4221,.4605,.5471],[.4255,.4653,.5505],[.4289,.47,.5539],[.4324,.4747,.5574],[.4358,.4794,.5608],[.4392,.4841,.5642],[.4426,.4888,.5676],[.4461,.4936,.5711],[.4495,.4983,.5745],[.4529,.503,.5779],[.4564,.5077,.5814],[.4598,.5124,.5848],[.4632,.5172,.5882],[.4667,.5219,.5917],[.4701,.5266,.5951],[.4735,.5313,.5985],[.477,.536,.602],[.4804,.5407,.6054],[.4838,.5455,.6088],[.4873,.5502,.6123],[.4907,.5549,.6157],[.4941,.5596,.6191],[.4975,.5643,.6225],[.501,.5691,.626],[.5044,.5738,.6294],[.5078,.5785,.6328],[.5113,.5832,.6363],[.5147,.5879,.6397],[.5181,.5926,.6431],[.5216,.5974,.6466],[.525,.6021,.65],[.5284,.6068,.6534],[.5319,.6115,.6569],[.5353,.6162,.6603],[.5387,.621,.6637],[.5422,.6257,.6672],[.5456,.6304,.6706],[.549,.6351,.674],[.5525,.6398,.6775],[.5559,.6445,.6809],[.5593,.6493,.6843],[.5627,.654,.6877],[.5662,.6587,.6912],[.5696,.6634,.6946],[.573,.6681,.698],[.5765,.6729,.7015],[.5799,.6776,.7049],[.5833,.6823,.7083],[.5868,.687,.7118],[.5902,.6917,.7152],[.5936,.6964,.7186],[.5971,.7012,.7221],[.6005,.7059,.7255],[.6039,.7106,.7289],[.6074,.7153,.7324],[.6108,.72,.7358],[.6142,.7248,.7392],[.6176,.7295,.7426],[.6211,.7342,.7461],[.6245,.7389,.7495],[.6279,.7436,.7529],[.6314,.7483,.7564],[.6348,.7531,.7598],[.6382,.7578,.7632],[.6417,.7625,.7667],[.6451,.7672,.7701],[.6485,.7719,.7735],[.652,.7767,.777],[.6569,.7804,.7804],[.6622,.7838,.7838],[.6676,.7873,.7873],[.6729,.7907,.7907],[.6783,.7941,.7941],[.6837,.7975,.7975],[.689,.801,.801],[.6944,.8044,.8044],[.6998,.8078,.8078],[.7051,.8113,.8113],[.7105,.8147,.8147],[.7158,.8181,.8181],[.7212,.8216,.8216],[.7266,.825,.825],[.7319,.8284,.8284],[.7373,.8319,.8319],[.7426,.8353,.8353],[.748,.8387,.8387],[.7534,.8422,.8422],[.7587,.8456,.8456],[.7641,.849,.849],[.7695,.8525,.8525],[.7748,.8559,.8559],[.7802,.8593,.8593],[.7855,.8627,.8627],[.7909,.8662,.8662],[.7963,.8696,.8696],[.8016,.873,.873],[.807,.8765,.8765],[.8123,.8799,.8799],[.8177,.8833,.8833],[.8231,.8868,.8868],[.8284,.8902,.8902],[.8338,.8936,.8936],[.8392,.8971,.8971],[.8445,.9005,.9005],[.8499,.9039,.9039],[.8552,.9074,.9074],[.8606,.9108,.9108],[.866,.9142,.9142],[.8713,.9176,.9176],[.8767,.9211,.9211],[.882,.9245,.9245],[.8874,.9279,.9279],[.8928,.9314,.9314],[.8981,.9348,.9348],[.9035,.9382,.9382],[.9089,.9417,.9417],[.9142,.9451,.9451],[.9196,.9485,.9485],[.9249,.952,.952],[.9303,.9554,.9554],[.9357,.9588,.9588],[.941,.9623,.9623],[.9464,.9657,.9657],[.9517,.9691,.9691],[.9571,.9725,.9725],[.9625,.976,.976],[.9678,.9794,.9794],[.9732,.9828,.9828],[.9786,.9863,.9863],[.9839,.9897,.9897],[.9893,.9931,.9931],[.9946,.9966,.9966],[1,1,1]]};ce.brg={interpolate:!0,colors:[[0,0,1],[.0078,0,.9922],[.0157,0,.9843],[.0235,0,.9765],[.0314,0,.9686],[.0392,0,.9608],[.0471,0,.9529],[.0549,0,.9451],[.0627,0,.9373],[.0706,0,.9294],[.0784,0,.9216],[.0863,0,.9137],[.0941,0,.9059],[.102,0,.898],[.1098,0,.8902],[.1176,0,.8824],[.1255,0,.8745],[.1333,0,.8667],[.1412,0,.8588],[.149,0,.851],[.1569,0,.8431],[.1647,0,.8353],[.1725,0,.8275],[.1804,0,.8196],[.1882,0,.8118],[.1961,0,.8039],[.2039,0,.7961],[.2118,0,.7882],[.2196,0,.7804],[.2275,0,.7725],[.2353,0,.7647],[.2431,0,.7569],[.251,0,.749],[.2588,0,.7412],[.2667,0,.7333],[.2745,0,.7255],[.2824,0,.7176],[.2902,0,.7098],[.298,0,.702],[.3059,0,.6941],[.3137,0,.6863],[.3216,0,.6784],[.3294,0,.6706],[.3373,0,.6627],[.3451,0,.6549],[.3529,0,.6471],[.3608,0,.6392],[.3686,0,.6314],[.3765,0,.6235],[.3843,0,.6157],[.3922,0,.6078],[.4,0,.6],[.4078,0,.5922],[.4157,0,.5843],[.4235,0,.5765],[.4314,0,.5686],[.4392,0,.5608],[.4471,0,.5529],[.4549,0,.5451],[.4627,0,.5373],[.4706,0,.5294],[.4784,0,.5216],[.4863,0,.5137],[.4941,0,.5059],[.502,0,.498],[.5098,0,.4902],[.5176,0,.4824],[.5255,0,.4745],[.5333,0,.4667],[.5412,0,.4588],[.549,0,.451],[.5569,0,.4431],[.5647,0,.4353],[.5725,0,.4275],[.5804,0,.4196],[.5882,0,.4118],[.5961,0,.4039],[.6039,0,.3961],[.6118,0,.3882],[.6196,0,.3804],[.6275,0,.3725],[.6353,0,.3647],[.6431,0,.3569],[.651,0,.349],[.6588,0,.3412],[.6667,0,.3333],[.6745,0,.3255],[.6824,0,.3176],[.6902,0,.3098],[.698,0,.302],[.7059,0,.2941],[.7137,0,.2863],[.7216,0,.2784],[.7294,0,.2706],[.7373,0,.2627],[.7451,0,.2549],[.7529,0,.2471],[.7608,0,.2392],[.7686,0,.2314],[.7765,0,.2235],[.7843,0,.2157],[.7922,0,.2078],[.8,0,.2],[.8078,0,.1922],[.8157,0,.1843],[.8235,0,.1765],[.8314,0,.1686],[.8392,0,.1608],[.8471,0,.1529],[.8549,0,.1451],[.8627,0,.1373],[.8706,0,.1294],[.8784,0,.1216],[.8863,0,.1137],[.8941,0,.1059],[.902,0,.098],[.9098,0,.0902],[.9176,0,.0824],[.9255,0,.0745],[.9333,0,.0667],[.9412,0,.0588],[.949,0,.051],[.9569,0,.0431],[.9647,0,.0353],[.9725,0,.0275],[.9804,0,.0196],[.9882,0,.0118],[.9961,0,.0039],[.9961,.0039,0],[.9882,.0118,0],[.9804,.0196,0],[.9725,.0275,0],[.9647,.0353,0],[.9569,.0431,0],[.949,.051,0],[.9412,.0588,0],[.9333,.0667,0],[.9255,.0745,0],[.9176,.0824,0],[.9098,.0902,0],[.902,.098,0],[.8941,.1059,0],[.8863,.1137,0],[.8784,.1216,0],[.8706,.1294,0],[.8627,.1373,0],[.8549,.1451,0],[.8471,.1529,0],[.8392,.1608,0],[.8314,.1686,0],[.8235,.1765,0],[.8157,.1843,0],[.8078,.1922,0],[.8,.2,0],[.7922,.2078,0],[.7843,.2157,0],[.7765,.2235,0],[.7686,.2314,0],[.7608,.2392,0],[.7529,.2471,0],[.7451,.2549,0],[.7373,.2627,0],[.7294,.2706,0],[.7216,.2784,0],[.7137,.2863,0],[.7059,.2941,0],[.698,.302,0],[.6902,.3098,0],[.6824,.3176,0],[.6745,.3255,0],[.6667,.3333,0],[.6588,.3412,0],[.651,.349,0],[.6431,.3569,0],[.6353,.3647,0],[.6275,.3725,0],[.6196,.3804,0],[.6118,.3882,0],[.6039,.3961,0],[.5961,.4039,0],[.5882,.4118,0],[.5804,.4196,0],[.5725,.4275,0],[.5647,.4353,0],[.5569,.4431,0],[.549,.451,0],[.5412,.4588,0],[.5333,.4667,0],[.5255,.4745,0],[.5176,.4824,0],[.5098,.4902,0],[.502,.498,0],[.4941,.5059,0],[.4863,.5137,0],[.4784,.5216,0],[.4706,.5294,0],[.4627,.5373,0],[.4549,.5451,0],[.4471,.5529,0],[.4392,.5608,0],[.4314,.5686,0],[.4235,.5765,0],[.4157,.5843,0],[.4078,.5922,0],[.4,.6,0],[.3922,.6078,0],[.3843,.6157,0],[.3765,.6235,0],[.3686,.6314,0],[.3608,.6392,0],[.3529,.6471,0],[.3451,.6549,0],[.3373,.6627,0],[.3294,.6706,0],[.3216,.6784,0],[.3137,.6863,0],[.3059,.6941,0],[.298,.702,0],[.2902,.7098,0],[.2824,.7176,0],[.2745,.7255,0],[.2667,.7333,0],[.2588,.7412,0],[.251,.749,0],[.2431,.7569,0],[.2353,.7647,0],[.2275,.7725,0],[.2196,.7804,0],[.2118,.7882,0],[.2039,.7961,0],[.1961,.8039,0],[.1882,.8118,0],[.1804,.8196,0],[.1725,.8275,0],[.1647,.8353,0],[.1569,.8431,0],[.149,.851,0],[.1412,.8588,0],[.1333,.8667,0],[.1255,.8745,0],[.1176,.8824,0],[.1098,.8902,0],[.102,.898,0],[.0941,.9059,0],[.0863,.9137,0],[.0784,.9216,0],[.0706,.9294,0],[.0627,.9373,0],[.0549,.9451,0],[.0471,.9529,0],[.0392,.9608,0],[.0314,.9686,0],[.0235,.9765,0],[.0157,.9843,0],[.0078,.9922,0],[0,1,0]]};ce.bwr={interpolate:!0,colors:[[0,0,1],[.0078,.0078,1],[.0157,.0157,1],[.0235,.0235,1],[.0314,.0314,1],[.0392,.0392,1],[.0471,.0471,1],[.0549,.0549,1],[.0627,.0627,1],[.0706,.0706,1],[.0784,.0784,1],[.0863,.0863,1],[.0941,.0941,1],[.102,.102,1],[.1098,.1098,1],[.1176,.1176,1],[.1255,.1255,1],[.1333,.1333,1],[.1412,.1412,1],[.149,.149,1],[.1569,.1569,1],[.1647,.1647,1],[.1725,.1725,1],[.1804,.1804,1],[.1882,.1882,1],[.1961,.1961,1],[.2039,.2039,1],[.2118,.2118,1],[.2196,.2196,1],[.2275,.2275,1],[.2353,.2353,1],[.2431,.2431,1],[.251,.251,1],[.2588,.2588,1],[.2667,.2667,1],[.2745,.2745,1],[.2824,.2824,1],[.2902,.2902,1],[.298,.298,1],[.3059,.3059,1],[.3137,.3137,1],[.3216,.3216,1],[.3294,.3294,1],[.3373,.3373,1],[.3451,.3451,1],[.3529,.3529,1],[.3608,.3608,1],[.3686,.3686,1],[.3765,.3765,1],[.3843,.3843,1],[.3922,.3922,1],[.4,.4,1],[.4078,.4078,1],[.4157,.4157,1],[.4235,.4235,1],[.4314,.4314,1],[.4392,.4392,1],[.4471,.4471,1],[.4549,.4549,1],[.4627,.4627,1],[.4706,.4706,1],[.4784,.4784,1],[.4863,.4863,1],[.4941,.4941,1],[.502,.502,1],[.5098,.5098,1],[.5176,.5176,1],[.5255,.5255,1],[.5333,.5333,1],[.5412,.5412,1],[.549,.549,1],[.5569,.5569,1],[.5647,.5647,1],[.5725,.5725,1],[.5804,.5804,1],[.5882,.5882,1],[.5961,.5961,1],[.6039,.6039,1],[.6118,.6118,1],[.6196,.6196,1],[.6275,.6275,1],[.6353,.6353,1],[.6431,.6431,1],[.651,.651,1],[.6588,.6588,1],[.6667,.6667,1],[.6745,.6745,1],[.6824,.6824,1],[.6902,.6902,1],[.698,.698,1],[.7059,.7059,1],[.7137,.7137,1],[.7216,.7216,1],[.7294,.7294,1],[.7373,.7373,1],[.7451,.7451,1],[.7529,.7529,1],[.7608,.7608,1],[.7686,.7686,1],[.7765,.7765,1],[.7843,.7843,1],[.7922,.7922,1],[.8,.8,1],[.8078,.8078,1],[.8157,.8157,1],[.8235,.8235,1],[.8314,.8314,1],[.8392,.8392,1],[.8471,.8471,1],[.8549,.8549,1],[.8627,.8627,1],[.8706,.8706,1],[.8784,.8784,1],[.8863,.8863,1],[.8941,.8941,1],[.902,.902,1],[.9098,.9098,1],[.9176,.9176,1],[.9255,.9255,1],[.9333,.9333,1],[.9412,.9412,1],[.949,.949,1],[.9569,.9569,1],[.9647,.9647,1],[.9725,.9725,1],[.9804,.9804,1],[.9882,.9882,1],[.9961,.9961,1],[1,.9961,.9961],[1,.9882,.9882],[1,.9804,.9804],[1,.9725,.9725],[1,.9647,.9647],[1,.9569,.9569],[1,.949,.949],[1,.9412,.9412],[1,.9333,.9333],[1,.9255,.9255],[1,.9176,.9176],[1,.9098,.9098],[1,.902,.902],[1,.8941,.8941],[1,.8863,.8863],[1,.8784,.8784],[1,.8706,.8706],[1,.8627,.8627],[1,.8549,.8549],[1,.8471,.8471],[1,.8392,.8392],[1,.8314,.8314],[1,.8235,.8235],[1,.8157,.8157],[1,.8078,.8078],[1,.8,.8],[1,.7922,.7922],[1,.7843,.7843],[1,.7765,.7765],[1,.7686,.7686],[1,.7608,.7608],[1,.7529,.7529],[1,.7451,.7451],[1,.7373,.7373],[1,.7294,.7294],[1,.7216,.7216],[1,.7137,.7137],[1,.7059,.7059],[1,.698,.698],[1,.6902,.6902],[1,.6824,.6824],[1,.6745,.6745],[1,.6667,.6667],[1,.6588,.6588],[1,.651,.651],[1,.6431,.6431],[1,.6353,.6353],[1,.6275,.6275],[1,.6196,.6196],[1,.6118,.6118],[1,.6039,.6039],[1,.5961,.5961],[1,.5882,.5882],[1,.5804,.5804],[1,.5725,.5725],[1,.5647,.5647],[1,.5569,.5569],[1,.549,.549],[1,.5412,.5412],[1,.5333,.5333],[1,.5255,.5255],[1,.5176,.5176],[1,.5098,.5098],[1,.502,.502],[1,.4941,.4941],[1,.4863,.4863],[1,.4784,.4784],[1,.4706,.4706],[1,.4627,.4627],[1,.4549,.4549],[1,.4471,.4471],[1,.4392,.4392],[1,.4314,.4314],[1,.4235,.4235],[1,.4157,.4157],[1,.4078,.4078],[1,.4,.4],[1,.3922,.3922],[1,.3843,.3843],[1,.3765,.3765],[1,.3686,.3686],[1,.3608,.3608],[1,.3529,.3529],[1,.3451,.3451],[1,.3373,.3373],[1,.3294,.3294],[1,.3216,.3216],[1,.3137,.3137],[1,.3059,.3059],[1,.298,.298],[1,.2902,.2902],[1,.2824,.2824],[1,.2745,.2745],[1,.2667,.2667],[1,.2588,.2588],[1,.251,.251],[1,.2431,.2431],[1,.2353,.2353],[1,.2275,.2275],[1,.2196,.2196],[1,.2118,.2118],[1,.2039,.2039],[1,.1961,.1961],[1,.1882,.1882],[1,.1804,.1804],[1,.1725,.1725],[1,.1647,.1647],[1,.1569,.1569],[1,.149,.149],[1,.1412,.1412],[1,.1333,.1333],[1,.1255,.1255],[1,.1176,.1176],[1,.1098,.1098],[1,.102,.102],[1,.0941,.0941],[1,.0863,.0863],[1,.0784,.0784],[1,.0706,.0706],[1,.0627,.0627],[1,.0549,.0549],[1,.0471,.0471],[1,.0392,.0392],[1,.0314,.0314],[1,.0235,.0235],[1,.0157,.0157],[1,.0078,.0078],[1,0,0]]};ce.cividis={interpolate:!0,colors:[[0,.1351,.3048],[0,.1381,.3111],[0,.141,.3176],[0,.144,.324],[0,.1469,.3305],[0,.1498,.3371],[0,.1527,.3437],[0,.1554,.3505],[0,.1579,.3575],[0,.1605,.3645],[0,.1631,.3716],[0,.1656,.3788],[0,.1682,.3859],[0,.1708,.3931],[0,.1734,.4004],[0,.1761,.4076],[0,.1788,.4148],[0,.1816,.4219],[0,.1846,.4288],[0,.1869,.4355],[0,.1888,.4396],[0,.191,.4411],[0,.1934,.4416],[.0036,.1959,.4416],[.0179,.1985,.4412],[.0321,.2012,.4408],[.0462,.2039,.4402],[.0584,.2066,.4395],[.069,.2094,.4389],[.0786,.2121,.4381],[.0875,.2149,.4373],[.0956,.2176,.4366],[.1034,.2204,.4358],[.1107,.2232,.4351],[.1176,.2259,.4343],[.1243,.2287,.4335],[.1307,.2315,.4328],[.1368,.2342,.4321],[.1429,.237,.4314],[.1486,.2397,.4308],[.1543,.2425,.4301],[.1597,.2452,.4295],[.1651,.248,.4289],[.1704,.2507,.4283],[.1755,.2534,.4278],[.1805,.2562,.4273],[.1855,.2589,.4268],[.1903,.2616,.4263],[.1951,.2644,.4259],[.1998,.2671,.4255],[.2044,.2698,.4251],[.2089,.2725,.4248],[.2134,.2753,.4245],[.2179,.278,.4242],[.2223,.2807,.4239],[.2266,.2834,.4237],[.2309,.2861,.4235],[.2351,.2888,.4233],[.2393,.2916,.4232],[.2435,.2943,.423],[.2476,.297,.4229],[.2517,.2997,.4229],[.2557,.3024,.4228],[.2597,.3051,.4228],[.2637,.3078,.4228],[.2677,.3105,.4228],[.2716,.3133,.4228],[.2755,.316,.423],[.2794,.3187,.423],[.2832,.3214,.4232],[.2871,.3241,.4234],[.2909,.3268,.4235],[.2947,.3295,.4237],[.2984,.3322,.424],[.3022,.335,.4242],[.3059,.3377,.4245],[.3096,.3404,.4248],[.3133,.3431,.4251],[.3169,.3458,.4255],[.3206,.3486,.4259],[.3242,.3513,.4262],[.3279,.354,.4267],[.3315,.3567,.4271],[.3351,.3595,.4276],[.3387,.3622,.4281],[.3422,.3649,.4286],[.3458,.3677,.4291],[.3493,.3704,.4297],[.3529,.3732,.4302],[.3564,.3759,.4308],[.3599,.3786,.4315],[.3634,.3814,.4321],[.3669,.3841,.4328],[.3704,.3869,.4334],[.3739,.3896,.4342],[.3774,.3924,.4349],[.3808,.3952,.4357],[.3843,.3979,.4365],[.3877,.4007,.4373],[.3912,.4035,.4381],[.3946,.4062,.439],[.398,.409,.4398],[.4014,.4118,.4407],[.4048,.4146,.4416],[.4082,.4174,.4426],[.4116,.4201,.4436],[.415,.4229,.4446],[.4184,.4257,.4456],[.4217,.4285,.4466],[.4251,.4313,.4477],[.4285,.4341,.4489],[.4318,.437,.45],[.4352,.4398,.4511],[.4385,.4426,.4523],[.4418,.4454,.4537],[.4451,.4482,.4549],[.4484,.4511,.4563],[.4518,.4539,.4576],[.4551,.4567,.459],[.4584,.4596,.4605],[.4616,.4624,.462],[.4649,.4652,.4634],[.4683,.4681,.4649],[.4715,.471,.4664],[.4748,.4738,.4677],[.4782,.4767,.4688],[.4816,.4796,.4698],[.4851,.4825,.4704],[.4887,.4853,.471],[.4923,.4882,.4715],[.4959,.4911,.4718],[.4996,.494,.472],[.5032,.4969,.4723],[.5069,.4997,.4724],[.5105,.5026,.4726],[.5142,.5055,.4726],[.5179,.5085,.4727],[.5216,.5114,.4726],[.5253,.5143,.4727],[.5291,.5172,.4725],[.5328,.5201,.4724],[.5366,.5231,.4724],[.5403,.526,.4722],[.5441,.5289,.4719],[.5478,.5319,.4717],[.5516,.5348,.4714],[.5554,.5378,.4711],[.5592,.5408,.4708],[.563,.5437,.4705],[.5668,.5467,.47],[.5706,.5497,.4696],[.5744,.5527,.4692],[.5782,.5557,.4687],[.5821,.5587,.4681],[.5859,.5617,.4676],[.5898,.5647,.4671],[.5936,.5677,.4664],[.5975,.5707,.4658],[.6014,.5737,.4651],[.6052,.5768,.4644],[.6091,.5798,.4636],[.613,.5829,.463],[.6169,.5859,.4622],[.6208,.589,.4614],[.6247,.592,.4606],[.6286,.5951,.4596],[.6325,.5982,.4587],[.6364,.6013,.4578],[.6404,.6044,.4568],[.6443,.6074,.4559],[.6482,.6106,.4548],[.6522,.6137,.4537],[.6561,.6168,.4527],[.6601,.6199,.4515],[.6641,.623,.4503],[.668,.6262,.4493],[.672,.6293,.448],[.676,.6325,.4467],[.68,.6356,.4454],[.6839,.6388,.4443],[.688,.642,.4429],[.692,.6451,.4415],[.696,.6483,.4401],[.7,.6515,.4386],[.704,.6547,.4371],[.7081,.6579,.4356],[.7121,.6612,.4341],[.7162,.6644,.4324],[.7202,.6676,.4308],[.7243,.6709,.4292],[.7283,.6741,.4276],[.7324,.6774,.4257],[.7365,.6806,.424],[.7406,.6839,.4221],[.7447,.6872,.4204],[.7488,.6905,.4184],[.7529,.6938,.4165],[.757,.6971,.4147],[.7611,.7004,.4126],[.7652,.7037,.4106],[.7694,.707,.4085],[.7735,.7104,.4064],[.7777,.7137,.4041],[.7818,.7171,.402],[.786,.7204,.3996],[.7901,.7238,.3974],[.7943,.7272,.395],[.7985,.7306,.3926],[.8027,.734,.3902],[.8069,.7374,.3877],[.8111,.7408,.3852],[.8153,.7442,.3825],[.8195,.7477,.3798],[.8237,.7511,.377],[.828,.7546,.3743],[.8322,.758,.3715],[.8364,.7615,.3687],[.8407,.765,.3657],[.845,.7684,.3627],[.8492,.7719,.3597],[.8535,.7755,.3565],[.8578,.779,.3533],[.8621,.7825,.35],[.8664,.786,.3466],[.8707,.7896,.3433],[.8751,.7931,.3397],[.8794,.7967,.3362],[.8837,.8003,.3326],[.8881,.8038,.3288],[.8924,.8074,.325],[.8968,.811,.321],[.9012,.8146,.317],[.9056,.8183,.3129],[.91,.8219,.3086],[.9144,.8255,.3043],[.9188,.8292,.3],[.9233,.8328,.2952],[.9277,.8365,.2906],[.9322,.8402,.2859],[.9367,.8438,.2809],[.9411,.8475,.2758],[.9457,.8512,.2705],[.9502,.8549,.2651],[.9547,.8586,.2594],[.9593,.8624,.2536],[.9639,.8661,.2474],[.9685,.8698,.2413],[.9731,.8736,.2347],[.9778,.8773,.228],[.9825,.881,.2209],[.9873,.8847,.2133],[.9922,.8884,.2055],[.9948,.893,.2034],[.9952,.8984,.2076],[.9955,.9039,.2124],[.9957,.9093,.2178]]};ce.cool={interpolate:!0,colors:[[0,1,1],[.0039,.9961,1],[.0078,.9922,1],[.0118,.9882,1],[.0157,.9843,1],[.0196,.9804,1],[.0235,.9765,1],[.0275,.9725,1],[.0314,.9686,1],[.0353,.9647,1],[.0392,.9608,1],[.0431,.9569,1],[.0471,.9529,1],[.051,.949,1],[.0549,.9451,1],[.0588,.9412,1],[.0627,.9373,1],[.0667,.9333,1],[.0706,.9294,1],[.0745,.9255,1],[.0784,.9216,1],[.0824,.9176,1],[.0863,.9137,1],[.0902,.9098,1],[.0941,.9059,1],[.098,.902,1],[.102,.898,1],[.1059,.8941,1],[.1098,.8902,1],[.1137,.8863,1],[.1176,.8824,1],[.1216,.8784,1],[.1255,.8745,1],[.1294,.8706,1],[.1333,.8667,1],[.1373,.8627,1],[.1412,.8588,1],[.1451,.8549,1],[.149,.851,1],[.1529,.8471,1],[.1569,.8431,1],[.1608,.8392,1],[.1647,.8353,1],[.1686,.8314,1],[.1725,.8275,1],[.1765,.8235,1],[.1804,.8196,1],[.1843,.8157,1],[.1882,.8118,1],[.1922,.8078,1],[.1961,.8039,1],[.2,.8,1],[.2039,.7961,1],[.2078,.7922,1],[.2118,.7882,1],[.2157,.7843,1],[.2196,.7804,1],[.2235,.7765,1],[.2275,.7725,1],[.2314,.7686,1],[.2353,.7647,1],[.2392,.7608,1],[.2431,.7569,1],[.2471,.7529,1],[.251,.749,1],[.2549,.7451,1],[.2588,.7412,1],[.2627,.7373,1],[.2667,.7333,1],[.2706,.7294,1],[.2745,.7255,1],[.2784,.7216,1],[.2824,.7176,1],[.2863,.7137,1],[.2902,.7098,1],[.2941,.7059,1],[.298,.702,1],[.302,.698,1],[.3059,.6941,1],[.3098,.6902,1],[.3137,.6863,1],[.3176,.6824,1],[.3216,.6784,1],[.3255,.6745,1],[.3294,.6706,1],[.3333,.6667,1],[.3373,.6627,1],[.3412,.6588,1],[.3451,.6549,1],[.349,.651,1],[.3529,.6471,1],[.3569,.6431,1],[.3608,.6392,1],[.3647,.6353,1],[.3686,.6314,1],[.3725,.6275,1],[.3765,.6235,1],[.3804,.6196,1],[.3843,.6157,1],[.3882,.6118,1],[.3922,.6078,1],[.3961,.6039,1],[.4,.6,1],[.4039,.5961,1],[.4078,.5922,1],[.4118,.5882,1],[.4157,.5843,1],[.4196,.5804,1],[.4235,.5765,1],[.4275,.5725,1],[.4314,.5686,1],[.4353,.5647,1],[.4392,.5608,1],[.4431,.5569,1],[.4471,.5529,1],[.451,.549,1],[.4549,.5451,1],[.4588,.5412,1],[.4627,.5373,1],[.4667,.5333,1],[.4706,.5294,1],[.4745,.5255,1],[.4784,.5216,1],[.4824,.5176,1],[.4863,.5137,1],[.4902,.5098,1],[.4941,.5059,1],[.498,.502,1],[.502,.498,1],[.5059,.4941,1],[.5098,.4902,1],[.5137,.4863,1],[.5176,.4824,1],[.5216,.4784,1],[.5255,.4745,1],[.5294,.4706,1],[.5333,.4667,1],[.5373,.4627,1],[.5412,.4588,1],[.5451,.4549,1],[.549,.451,1],[.5529,.4471,1],[.5569,.4431,1],[.5608,.4392,1],[.5647,.4353,1],[.5686,.4314,1],[.5725,.4275,1],[.5765,.4235,1],[.5804,.4196,1],[.5843,.4157,1],[.5882,.4118,1],[.5922,.4078,1],[.5961,.4039,1],[.6,.4,1],[.6039,.3961,1],[.6078,.3922,1],[.6118,.3882,1],[.6157,.3843,1],[.6196,.3804,1],[.6235,.3765,1],[.6275,.3725,1],[.6314,.3686,1],[.6353,.3647,1],[.6392,.3608,1],[.6431,.3569,1],[.6471,.3529,1],[.651,.349,1],[.6549,.3451,1],[.6588,.3412,1],[.6627,.3373,1],[.6667,.3333,1],[.6706,.3294,1],[.6745,.3255,1],[.6784,.3216,1],[.6824,.3176,1],[.6863,.3137,1],[.6902,.3098,1],[.6941,.3059,1],[.698,.302,1],[.702,.298,1],[.7059,.2941,1],[.7098,.2902,1],[.7137,.2863,1],[.7176,.2824,1],[.7216,.2784,1],[.7255,.2745,1],[.7294,.2706,1],[.7333,.2667,1],[.7373,.2627,1],[.7412,.2588,1],[.7451,.2549,1],[.749,.251,1],[.7529,.2471,1],[.7569,.2431,1],[.7608,.2392,1],[.7647,.2353,1],[.7686,.2314,1],[.7725,.2275,1],[.7765,.2235,1],[.7804,.2196,1],[.7843,.2157,1],[.7882,.2118,1],[.7922,.2078,1],[.7961,.2039,1],[.8,.2,1],[.8039,.1961,1],[.8078,.1922,1],[.8118,.1882,1],[.8157,.1843,1],[.8196,.1804,1],[.8235,.1765,1],[.8275,.1725,1],[.8314,.1686,1],[.8353,.1647,1],[.8392,.1608,1],[.8431,.1569,1],[.8471,.1529,1],[.851,.149,1],[.8549,.1451,1],[.8588,.1412,1],[.8627,.1373,1],[.8667,.1333,1],[.8706,.1294,1],[.8745,.1255,1],[.8784,.1216,1],[.8824,.1176,1],[.8863,.1137,1],[.8902,.1098,1],[.8941,.1059,1],[.898,.102,1],[.902,.098,1],[.9059,.0941,1],[.9098,.0902,1],[.9137,.0863,1],[.9176,.0824,1],[.9216,.0784,1],[.9255,.0745,1],[.9294,.0706,1],[.9333,.0667,1],[.9373,.0627,1],[.9412,.0588,1],[.9451,.0549,1],[.949,.051,1],[.9529,.0471,1],[.9569,.0431,1],[.9608,.0392,1],[.9647,.0353,1],[.9686,.0314,1],[.9725,.0275,1],[.9765,.0235,1],[.9804,.0196,1],[.9843,.0157,1],[.9882,.0118,1],[.9922,.0078,1],[.9961,.0039,1],[1,0,1]]};ce.coolwarm={interpolate:!0,colors:[[.2298,.2987,.7537],[.2344,.3055,.7597],[.2389,.3124,.7657],[.2435,.3192,.7717],[.2481,.326,.7777],[.2527,.3328,.7837],[.2572,.3397,.7897],[.2618,.3465,.7957],[.2664,.3533,.8016],[.2711,.36,.8071],[.2758,.3667,.8126],[.2805,.3734,.818],[.2853,.3801,.8235],[.29,.3868,.8289],[.2947,.3935,.8344],[.2994,.4002,.8398],[.3042,.4069,.8453],[.3091,.4135,.8501],[.3139,.4201,.855],[.3188,.4266,.8599],[.3237,.4332,.8647],[.3286,.4397,.8696],[.3335,.4463,.8745],[.3384,.4528,.8793],[.3433,.4594,.8841],[.3483,.4657,.8883],[.3534,.4721,.8926],[.3584,.4784,.8968],[.3635,.4848,.901],[.3685,.4911,.9052],[.3736,.4975,.9095],[.3786,.5039,.9137],[.3837,.5102,.9178],[.3889,.5163,.9214],[.394,.5224,.9249],[.3992,.5285,.9285],[.4044,.5346,.932],[.4096,.5408,.9355],[.4148,.5469,.9391],[.42,.553,.9426],[.4252,.5591,.9461],[.4305,.5649,.9489],[.4358,.5707,.9517],[.4411,.5765,.9545],[.4464,.5824,.9574],[.4517,.5882,.9602],[.457,.594,.963],[.4624,.5998,.9659],[.4677,.6056,.9685],[.4731,.6111,.9706],[.4785,.6166,.9727],[.4839,.622,.9748],[.4892,.6275,.9769],[.4946,.633,.979],[.5,.6385,.9811],[.5054,.644,.9832],[.5108,.6494,.9851],[.5163,.6545,.9864],[.5217,.6596,.9877],[.5271,.6647,.9891],[.5326,.6698,.9904],[.538,.6749,.9917],[.5434,.68,.9931],[.5489,.6851,.9944],[.5543,.6901,.9955],[.5597,.6948,.9961],[.5652,.6994,.9966],[.5706,.7041,.9972],[.5761,.7088,.9978],[.5815,.7135,.9983],[.5869,.7181,.9989],[.5924,.7228,.9994],[.5978,.7273,.9998],[.6032,.7315,.9996],[.6085,.7357,.9994],[.6139,.7399,.9991],[.6193,.7441,.9989],[.6247,.7483,.9987],[.6301,.7525,.9985],[.6355,.7567,.9983],[.6408,.7608,.9978],[.6461,.7644,.9969],[.6514,.7681,.9959],[.6567,.7718,.9949],[.662,.7755,.9939],[.6673,.7792,.993],[.6725,.7829,.992],[.6778,.7865,.991],[.6831,.79,.9898],[.6882,.7932,.988],[.6933,.7963,.9863],[.6985,.7994,.9846],[.7036,.8026,.9828],[.7087,.8057,.9811],[.7139,.8089,.9794],[.719,.812,.9777],[.724,.8149,.9757],[.729,.8175,.9732],[.7339,.82,.9707],[.7388,.8226,.9683],[.7438,.8251,.9658],[.7487,.8277,.9633],[.7536,.8302,.9609],[.7585,.8328,.9584],[.7634,.8351,.9557],[.768,.837,.9525],[.7727,.839,.9493],[.7774,.8409,.9461],[.782,.8429,.943],[.7867,.8448,.9398],[.7914,.8468,.9366],[.7961,.8487,.9335],[.8006,.8504,.93],[.805,.8517,.9262],[.8093,.853,.9223],[.8137,.8543,.9185],[.8181,.8556,.9146],[.8224,.8569,.9108],[.8268,.8582,.907],[.8311,.8595,.9031],[.8353,.8605,.899],[.8394,.8612,.8945],[.8434,.8618,.89],[.8474,.8625,.8855],[.8514,.8631,.8811],[.8554,.8638,.8766],[.8594,.8644,.8721],[.8634,.8651,.8676],[.8674,.8644,.8626],[.8715,.8623,.857],[.8756,.8602,.8514],[.8796,.8582,.8458],[.8837,.8561,.8403],[.8878,.854,.8347],[.8918,.852,.8291],[.8959,.8499,.8235],[.8995,.8475,.8178],[.9028,.8448,.812],[.9062,.8421,.8062],[.9095,.8394,.8003],[.9128,.8367,.7945],[.9161,.834,.7887],[.9194,.8313,.7829],[.9227,.8286,.7771],[.9256,.8255,.7711],[.9281,.8222,.7651],[.9307,.8189,.7591],[.9332,.8156,.7532],[.9358,.8122,.7472],[.9383,.8089,.7412],[.9409,.8056,.7352],[.9434,.8023,.7292],[.9455,.7986,.7231],[.9473,.7947,.717],[.9492,.7908,.7109],[.951,.7869,.7048],[.9528,.783,.6986],[.9546,.7791,.6925],[.9564,.7751,.6864],[.9582,.7712,.6803],[.9595,.767,.6741],[.9606,.7625,.668],[.9616,.758,.6618],[.9627,.7536,.6556],[.9638,.7491,.6494],[.9648,.7446,.6432],[.9659,.7401,.6371],[.967,.7357,.6309],[.9675,.7308,.6247],[.9679,.7258,.6185],[.9682,.7208,.6123],[.9685,.7158,.6061],[.9689,.7108,.5999],[.9692,.7058,.5937],[.9695,.7008,.5875],[.9699,.6958,.5813],[.9697,.6905,.5751],[.9693,.685,.569],[.9689,.6795,.5628],[.9685,.674,.5566],[.9681,.6685,.5505],[.9677,.663,.5443],[.9673,.6575,.5382],[.9669,.652,.532],[.966,.6461,.5259],[.9649,.6402,.5198],[.9638,.6342,.5137],[.9627,.6282,.5076],[.9616,.6222,.5016],[.9605,.6163,.4955],[.9594,.6103,.4894],[.9583,.6043,.4833],[.9567,.598,.4773],[.9549,.5916,.4713],[.9531,.5852,.4654],[.9513,.5788,.4594],[.9495,.5724,.4534],[.9477,.566,.4475],[.9459,.5596,.4415],[.9441,.5532,.4355],[.9417,.5464,.4297],[.9393,.5396,.4239],[.9368,.5327,.4181],[.9343,.5259,.4123],[.9318,.5191,.4065],[.9294,.5123,.4007],[.9269,.5054,.3949],[.9244,.4986,.3891],[.9214,.4914,.3834],[.9183,.4842,.3778],[.9152,.4769,.3722],[.912,.4697,.3666],[.9089,.4624,.361],[.9058,.4552,.3553],[.9027,.4479,.3497],[.8995,.4407,.3441],[.8959,.4331,.3387],[.8921,.4254,.3333],[.8884,.4177,.3279],[.8846,.41,.3225],[.8809,.4023,.3171],[.8771,.3946,.3117],[.8734,.387,.3063],[.8697,.3793,.3009],[.8654,.3711,.2958],[.8611,.3629,.2906],[.8567,.3547,.2855],[.8524,.3465,.2803],[.848,.3383,.2752],[.8437,.3301,.2701],[.8394,.3219,.2649],[.835,.3136,.2598],[.8302,.3047,.2549],[.8253,.2957,.25],[.8204,.2868,.2452],[.8155,.2778,.2403],[.8106,.2688,.2354],[.8057,.2598,.2306],[.8008,.2508,.2257],[.7959,.2418,.2208],[.7906,.2314,.2162],[.7852,.2209,.2117],[.7797,.2103,.2071],[.7743,.1998,.2025],[.7689,.1892,.198],[.7635,.1787,.1934],[.7581,.1681,.1888],[.7527,.1576,.1843],[.7468,.14,.18],[.741,.1222,.1757],[.7351,.1045,.1715],[.7292,.0867,.1672],[.7233,.0689,.163],[.7174,.0511,.1587],[.7116,.0333,.1545],[.7057,.0156,.1502]]};ce.copper={interpolate:!0,colors:[[0,0,0],[.0048,.0031,.002],[.0097,.0061,.0039],[.0145,.0092,.0059],[.0194,.0123,.0078],[.0242,.0153,.0098],[.0291,.0184,.0117],[.0339,.0214,.0137],[.0388,.0245,.0156],[.0436,.0276,.0176],[.0484,.0306,.0195],[.0533,.0337,.0215],[.0581,.0368,.0234],[.063,.0398,.0254],[.0678,.0429,.0273],[.0727,.046,.0293],[.0775,.049,.0312],[.0824,.0521,.0332],[.0872,.0551,.0351],[.092,.0582,.0371],[.0969,.0613,.039],[.1017,.0643,.041],[.1066,.0674,.0429],[.1114,.0705,.0449],[.1163,.0735,.0468],[.1211,.0766,.0488],[.126,.0797,.0507],[.1308,.0827,.0527],[.1356,.0858,.0546],[.1405,.0888,.0566],[.1453,.0919,.0585],[.1502,.095,.0605],[.155,.098,.0624],[.1599,.1011,.0644],[.1647,.1042,.0663],[.1696,.1072,.0683],[.1744,.1103,.0702],[.1792,.1134,.0722],[.1841,.1164,.0741],[.1889,.1195,.0761],[.1938,.1225,.078],[.1986,.1256,.08],[.2035,.1287,.0819],[.2083,.1317,.0839],[.2131,.1348,.0858],[.218,.1379,.0878],[.2228,.1409,.0897],[.2277,.144,.0917],[.2325,.147,.0936],[.2374,.1501,.0956],[.2422,.1532,.0975],[.2471,.1562,.0995],[.2519,.1593,.1015],[.2567,.1624,.1034],[.2616,.1654,.1054],[.2664,.1685,.1073],[.2713,.1716,.1093],[.2761,.1746,.1112],[.281,.1777,.1132],[.2858,.1807,.1151],[.2907,.1838,.1171],[.2955,.1869,.119],[.3003,.1899,.121],[.3052,.193,.1229],[.31,.1961,.1249],[.3149,.1991,.1268],[.3197,.2022,.1288],[.3246,.2053,.1307],[.3294,.2083,.1327],[.3343,.2114,.1346],[.3391,.2144,.1366],[.3439,.2175,.1385],[.3488,.2206,.1405],[.3536,.2236,.1424],[.3585,.2267,.1444],[.3633,.2298,.1463],[.3682,.2328,.1483],[.373,.2359,.1502],[.3779,.239,.1522],[.3827,.242,.1541],[.3875,.2451,.1561],[.3924,.2481,.158],[.3972,.2512,.16],[.4021,.2543,.1619],[.4069,.2573,.1639],[.4118,.2604,.1658],[.4166,.2635,.1678],[.4215,.2665,.1697],[.4263,.2696,.1717],[.4311,.2727,.1736],[.436,.2757,.1756],[.4408,.2788,.1775],[.4457,.2818,.1795],[.4505,.2849,.1814],[.4554,.288,.1834],[.4602,.291,.1853],[.4651,.2941,.1873],[.4699,.2972,.1892],[.4747,.3002,.1912],[.4796,.3033,.1931],[.4844,.3064,.1951],[.4893,.3094,.197],[.4941,.3125,.199],[.499,.3155,.201],[.5038,.3186,.2029],[.5087,.3217,.2049],[.5135,.3247,.2068],[.5183,.3278,.2088],[.5232,.3309,.2107],[.528,.3339,.2127],[.5329,.337,.2146],[.5377,.3401,.2166],[.5426,.3431,.2185],[.5474,.3462,.2205],[.5522,.3492,.2224],[.5571,.3523,.2244],[.5619,.3554,.2263],[.5668,.3584,.2283],[.5716,.3615,.2302],[.5765,.3646,.2322],[.5813,.3676,.2341],[.5862,.3707,.2361],[.591,.3738,.238],[.5958,.3768,.24],[.6007,.3799,.2419],[.6055,.3829,.2439],[.6104,.386,.2458],[.6152,.3891,.2478],[.6201,.3921,.2497],[.6249,.3952,.2517],[.6298,.3983,.2536],[.6346,.4013,.2556],[.6394,.4044,.2575],[.6443,.4074,.2595],[.6491,.4105,.2614],[.654,.4136,.2634],[.6588,.4166,.2653],[.6637,.4197,.2673],[.6685,.4228,.2692],[.6734,.4258,.2712],[.6782,.4289,.2731],[.683,.432,.2751],[.6879,.435,.277],[.6927,.4381,.279],[.6976,.4411,.2809],[.7024,.4442,.2829],[.7073,.4473,.2848],[.7121,.4503,.2868],[.717,.4534,.2887],[.7218,.4565,.2907],[.7266,.4595,.2926],[.7315,.4626,.2946],[.7363,.4657,.2965],[.7412,.4687,.2985],[.746,.4718,.3005],[.7509,.4748,.3024],[.7557,.4779,.3044],[.7606,.481,.3063],[.7654,.484,.3083],[.7702,.4871,.3102],[.7751,.4902,.3122],[.7799,.4932,.3141],[.7848,.4963,.3161],[.7896,.4994,.318],[.7945,.5024,.32],[.7993,.5055,.3219],[.8042,.5085,.3239],[.809,.5116,.3258],[.8138,.5147,.3278],[.8187,.5177,.3297],[.8235,.5208,.3317],[.8284,.5239,.3336],[.8332,.5269,.3356],[.8381,.53,.3375],[.8429,.5331,.3395],[.8478,.5361,.3414],[.8526,.5392,.3434],[.8574,.5422,.3453],[.8623,.5453,.3473],[.8671,.5484,.3492],[.872,.5514,.3512],[.8768,.5545,.3531],[.8817,.5576,.3551],[.8865,.5606,.357],[.8913,.5637,.359],[.8962,.5668,.3609],[.901,.5698,.3629],[.9059,.5729,.3648],[.9107,.5759,.3668],[.9156,.579,.3687],[.9204,.5821,.3707],[.9253,.5851,.3726],[.9301,.5882,.3746],[.9349,.5913,.3765],[.9398,.5943,.3785],[.9446,.5974,.3804],[.9495,.6005,.3824],[.9543,.6035,.3843],[.9592,.6066,.3863],[.964,.6096,.3882],[.9689,.6127,.3902],[.9737,.6158,.3921],[.9785,.6188,.3941],[.9834,.6219,.396],[.9882,.625,.398],[.9931,.628,.4],[.9979,.6311,.4019],[1,.6342,.4039],[1,.6372,.4058],[1,.6403,.4078],[1,.6433,.4097],[1,.6464,.4117],[1,.6495,.4136],[1,.6525,.4156],[1,.6556,.4175],[1,.6587,.4195],[1,.6617,.4214],[1,.6648,.4234],[1,.6678,.4253],[1,.6709,.4273],[1,.674,.4292],[1,.677,.4312],[1,.6801,.4331],[1,.6832,.4351],[1,.6862,.437],[1,.6893,.439],[1,.6924,.4409],[1,.6954,.4429],[1,.6985,.4448],[1,.7015,.4468],[1,.7046,.4487],[1,.7077,.4507],[1,.7107,.4526],[1,.7138,.4546],[1,.7169,.4565],[1,.7199,.4585],[1,.723,.4604],[1,.7261,.4624],[1,.7291,.4643],[1,.7322,.4663],[1,.7352,.4682],[1,.7383,.4702],[1,.7414,.4721],[1,.7444,.4741],[1,.7475,.476],[1,.7506,.478],[1,.7536,.4799],[1,.7567,.4819],[1,.7598,.4838],[1,.7628,.4858],[1,.7659,.4877],[1,.7689,.4897],[1,.772,.4916],[1,.7751,.4936],[1,.7781,.4955],[1,.7812,.4975]]};ce.cubehelix={interpolate:!0,colors:[[0,0,0],[.0067,.0021,.006],[.0133,.0043,.0122],[.0196,.0065,.0186],[.0257,.0088,.0252],[.0317,.0112,.0319],[.0374,.0136,.0389],[.0429,.0161,.046],[.0482,.0187,.0533],[.0533,.0214,.0607],[.0581,.0242,.0682],[.0627,.0271,.0758],[.067,.0301,.0835],[.0711,.0332,.0912],[.0749,.0365,.0991],[.0785,.0398,.1069],[.0819,.0433,.1148],[.085,.0469,.1227],[.0879,.0506,.1306],[.0905,.0545,.1385],[.0928,.0584,.1464],[.095,.0625,.1542],[.0969,.0668,.1619],[.0985,.0712,.1696],[.1,.0757,.1771],[.1012,.0803,.1846],[.1022,.0851,.192],[.103,.09,.1992],[.1036,.095,.2062],[.104,.1001,.2131],[.1043,.1054,.2199],[.1043,.1108,.2264],[.1042,.1163,.2328],[.1039,.122,.2389],[.1035,.1277,.2448],[.103,.1336,.2505],[.1023,.1395,.256],[.1015,.1456,.2612],[.1007,.1518,.2662],[.0997,.158,.2709],[.0987,.1644,.2754],[.0976,.1708,.2796],[.0964,.1773,.2835],[.0952,.1839,.2871],[.094,.1905,.2904],[.0928,.1972,.2935],[.0916,.2039,.2962],[.0904,.2107,.2987],[.0892,.2176,.3009],[.0881,.2244,.3027],[.0871,.2313,.3043],[.0861,.2382,.3056],[.0851,.2452,.3066],[.0843,.2521,.3073],[.0836,.259,.3077],[.083,.2659,.3079],[.0826,.2728,.3077],[.0823,.2797,.3073],[.0821,.2866,.3066],[.0822,.2934,.3057],[.0824,.3001,.3045],[.0828,.3069,.303],[.0834,.3135,.3014],[.0842,.3201,.2994],[.0852,.3266,.2973],[.0865,.3331,.295],[.088,.3394,.2924],[.0898,.3457,.2897],[.0918,.3518,.2868],[.0941,.3579,.2838],[.0966,.3638,.2806],[.0994,.3697,.2772],[.1025,.3754,.2737],[.1059,.381,.2702],[.1096,.3864,.2665],[.1136,.3918,.2627],[.1179,.3969,.2589],[.1225,.402,.255],[.1274,.4069,.2511],[.1325,.4116,.2471],[.138,.4162,.2431],[.1438,.4207,.2392],[.1499,.4249,.2352],[.1563,.4291,.2313],[.163,.433,.2275],[.17,.4368,.2237],[.1773,.4404,.22],[.1849,.4439,.2164],[.1928,.4472,.2129],[.201,.4503,.2096],[.2094,.4533,.2064],[.2181,.4561,.2033],[.2271,.4587,.2004],[.2363,.4611,.1977],[.2457,.4634,.1952],[.2555,.4656,.1929],[.2654,.4676,.1908],[.2755,.4694,.189],[.2859,.4711,.1874],[.2965,.4726,.1861],[.3072,.474,.185],[.3182,.4752,.1842],[.3293,.4763,.1837],[.3405,.4772,.1835],[.3519,.4781,.1836],[.3635,.4788,.1841],[.3751,.4794,.1848],[.3869,.4798,.1859],[.3987,.4802,.1873],[.4106,.4804,.1891],[.4226,.4806,.1912],[.4346,.4807,.1937],[.4467,.4807,.1965],[.4588,.4806,.1997],[.4709,.4804,.2033],[.4829,.4802,.2072],[.495,.4799,.2115],[.507,.4796,.2161],[.519,.4792,.2211],[.5309,.4788,.2265],[.5427,.4784,.2322],[.5544,.4779,.2383],[.5661,.4774,.2448],[.5776,.477,.2516],[.5889,.4765,.2587],[.6002,.476,.2662],[.6112,.4756,.2741],[.6221,.4752,.2822],[.6328,.4748,.2907],[.6434,.4745,.2995],[.6537,.4742,.3086],[.6638,.4739,.318],[.6736,.4738,.3277],[.6832,.4737,.3376],[.6926,.4736,.3478],[.7017,.4737,.3583],[.7106,.4738,.369],[.7192,.4741,.38],[.7274,.4744,.3912],[.7355,.4749,.4025],[.7432,.4755,.4141],[.7506,.4761,.4258],[.7577,.477,.4378],[.7645,.4779,.4498],[.7709,.479,.462],[.7771,.4802,.4743],[.7829,.4816,.4867],[.7884,.4831,.4992],[.7936,.4848,.5118],[.7985,.4866,.5244],[.803,.4886,.5371],[.8072,.4907,.5498],[.8111,.493,.5625],[.8146,.4955,.5753],[.8179,.4981,.5879],[.8208,.5009,.6006],[.8234,.5039,.6132],[.8256,.5071,.6257],[.8276,.5104,.6382],[.8293,.5139,.6506],[.8307,.5175,.6628],[.8318,.5213,.6749],[.8326,.5253,.6869],[.8331,.5295,.6988],[.8334,.5338,.7104],[.8334,.5383,.7219],[.8332,.543,.7332],[.8327,.5478,.7443],[.832,.5528,.7552],[.8311,.5579,.7659],[.83,.5632,.7763],[.8286,.5686,.7864],[.8271,.5742,.7964],[.8254,.5799,.806],[.8236,.5857,.8154],[.8216,.5917,.8245],[.8195,.5978,.8333],[.8172,.604,.8418],[.8149,.6103,.85],[.8124,.6167,.8579],[.8099,.6233,.8654],[.8073,.6299,.8727],[.8046,.6366,.8797],[.8019,.6434,.8863],[.7992,.6502,.8926],[.7964,.6571,.8986],[.7937,.6641,.9042],[.791,.6712,.9096],[.7883,.6783,.9146],[.7856,.6854,.9193],[.783,.6926,.9236],[.7804,.6997,.9277],[.778,.7069,.9314],[.7756,.7142,.9349],[.7733,.7214,.938],[.7711,.7286,.9409],[.7691,.7358,.9434],[.7672,.743,.9457],[.7655,.7501,.9477],[.7639,.7573,.9494],[.7625,.7644,.9509],[.7613,.7714,.9521],[.7602,.7784,.9531],[.7594,.7853,.9538],[.7587,.7922,.9544],[.7583,.799,.9547],[.7581,.8057,.9549],[.7581,.8124,.9548],[.7584,.8189,.9546],[.7588,.8254,.9543],[.7596,.8318,.9538],[.7606,.838,.9531],[.7618,.8442,.9524],[.7633,.8502,.9516],[.765,.8562,.9506],[.767,.862,.9496],[.7693,.8677,.9486],[.7718,.8733,.9475],[.7745,.8787,.9463],[.7776,.884,.9452],[.7808,.8892,.9441],[.7844,.8943,.9429],[.7882,.8992,.9419],[.7922,.904,.9408],[.7965,.9087,.9398],[.801,.9132,.9389],[.8057,.9176,.9381],[.8107,.9218,.9374],[.8158,.926,.9368],[.8212,.93,.9363],[.8268,.9338,.936],[.8326,.9376,.9358],[.8386,.9412,.9358],[.8447,.9447,.9359],[.851,.9481,.9363],[.8575,.9513,.9368],[.8641,.9545,.9376],[.8708,.9575,.9386],[.8777,.9604,.9397],[.8847,.9633,.9412],[.8917,.966,.9429],[.8989,.9687,.9448],[.9061,.9712,.947],[.9134,.9737,.9494],[.9207,.9761,.9521],[.928,.9785,.9551],[.9354,.9808,.9583],[.9428,.983,.9619],[.9501,.9852,.9657],[.9574,.9874,.9697],[.9647,.9895,.9741],[.9719,.9917,.9787],[.9791,.9937,.9836],[.9862,.9958,.9888],[.9931,.9979,.9943],[1,1,1]]};ce.flag={interpolate:!0,colors:[[1,0,0],[1,.3784,.2098],[1,.7005,.4931],[1,.9185,.7774],[1,.9998,1],[.8029,.9325,1],[.5208,.7264,1],[.2355,.4124,1],[0,.037,1],[0,0,.8156],[0,0,.5346],[0,0,.2486],[0,0,0],[.1719,0,0],[.4515,0,0],[.7383,0,0],[.9897,0,0],[1,.309,.1595],[1,.6459,.4377],[1,.8868,.7252],[1,.9957,.9791],[.8528,.9566,1],[.5761,.7752,1],[.2881,.4785,1],[.0316,.1107,1],[0,0,.865],[0,0,.5899],[0,0,.3014],[0,0,.0425],[.123,0,0],[.3964,0,0],[.6852,0,0],[.9464,0,0],[1,.2379,.1111],[1,.5878,.3827],[1,.8502,.6717],[1,.9862,.9352],[.9007,.9755,1],[.631,.8197,1],[.3418,.5421,1],[.0761,.1837,1],[0,0,.9123],[0,0,.6446],[0,0,.3554],[0,0,.0877],[.0761,0,0],[.3418,0,0],[.631,0,0],[.9007,0,0],[1,.1656,.0648],[1,.5264,.3283],[1,.809,.6173],[1,.9713,.8889],[.9464,.9891,1],[.6852,.8598,1],[.3964,.6026,1],[.123,.2558,1],[0,0,.9575],[0,0,.6986],[0,0,.4101],[0,0,.135],[.0316,0,0],[.2881,0,0],[.5761,0,0],[.8528,0,0],[1,.0923,.0209],[1,.4622,.2748],[1,.7634,.5623],[1,.9511,.8405],[.9897,.9973,1],[.7383,.8952,1],[.4515,.6599,1],[.1719,.3265,1],[0,0,1],[0,0,.7514],[0,0,.4654],[0,0,.1844],[0,0,0],[.2355,0,0],[.5208,0,0],[.8029,0,0],[1,.0185,0],[1,.3955,.2226],[1,.7136,.5069],[1,.9256,.7902],[1,1,1],[.7902,.9256,1],[.5069,.7136,1],[.2226,.3955,1],[0,.0185,1],[0,0,.8029],[0,0,.5208],[0,0,.2355],[0,0,0],[.1844,0,0],[.4654,0,0],[.7514,0,0],[1,0,0],[1,.3265,.1719],[1,.6599,.4515],[1,.8952,.7383],[1,.9973,.9897],[.8405,.9511,1],[.5623,.7634,1],[.2748,.4622,1],[.0209,.0923,1],[0,0,.8528],[0,0,.5761],[0,0,.2881],[0,0,.0316],[.135,0,0],[.4101,0,0],[.6986,0,0],[.9575,0,0],[1,.2558,.123],[1,.6026,.3964],[1,.8598,.6852],[1,.9891,.9464],[.8889,.9713,1],[.6173,.809,1],[.3283,.5264,1],[.0648,.1656,1],[0,0,.9007],[0,0,.631],[0,0,.3418],[0,0,.0761],[.0877,0,0],[.3554,0,0],[.6446,0,0],[.9123,0,0],[1,.1837,.0761],[1,.5421,.3418],[1,.8197,.631],[1,.9755,.9007],[.9352,.9862,1],[.6717,.8502,1],[.3827,.5878,1],[.1111,.2379,1],[0,0,.9464],[0,0,.6852],[0,0,.3964],[0,0,.123],[.0425,0,0],[.3014,0,0],[.5899,0,0],[.865,0,0],[1,.1107,.0316],[1,.4785,.2881],[1,.7752,.5761],[1,.9566,.8528],[.9791,.9957,1],[.7252,.8868,1],[.4377,.6459,1],[.1595,.309,1],[0,0,.9897],[0,0,.7383],[0,0,.4515],[0,0,.1719],[0,0,0],[.2486,0,0],[.5346,0,0],[.8156,0,0],[1,.037,0],[1,.4124,.2355],[1,.7264,.5208],[1,.9325,.8029],[1,.9998,1],[.7774,.9185,1],[.4931,.7005,1],[.2098,.3784,1],[0,0,1],[0,0,.7902],[0,0,.5069],[0,0,.2226],[0,0,0],[.1971,0,0],[.4792,0,0],[.7645,0,0],[1,0,0],[1,.3439,.1844],[1,.6737,.4654],[1,.9032,.7514],[1,.9985,1],[.8281,.9452,1],[.5485,.7513,1],[.2617,.4457,1],[.0103,.0739,1],[0,0,.8405],[0,0,.5623],[0,0,.2748],[0,0,.0209],[.1472,0,0],[.4239,0,0],[.7119,0,0],[.9684,0,0],[1,.2737,.135],[1,.6173,.4101],[1,.8691,.6986],[1,.9916,.9575],[.877,.9667,1],[.6036,.798,1],[.3148,.5106,1],[.0536,.1473,1],[0,0,.8889],[0,0,.6173],[0,0,.3283],[0,0,.0648],[.0993,0,0],[.369,0,0],[.6582,0,0],[.9239,0,0],[1,.2019,.0877],[1,.5575,.3554],[1,.8302,.6446],[1,.9794,.9123],[.9239,.983,1],[.6582,.8403,1],[.369,.5727,1],[.0993,.2199,1],[0,0,.9352],[0,0,.6717],[0,0,.3827],[0,0,.1111],[.0536,0,0],[.3148,0,0],[.6036,0,0],[.877,0,0],[1,.129,.0425],[1,.4947,.3014],[1,.7867,.5899],[1,.9618,.865],[.9684,.9939,1],[.7119,.8781,1],[.4239,.6317,1],[.1472,.2914,1],[0,0,.9791],[0,0,.7252],[0,0,.4377],[0,0,.1595],[.0103,0,0],[.2617,0,0],[.5485,0,0],[.8281,0,0],[1,.0554,0],[1,.4291,.2486],[1,.739,.5346],[1,.939,.8156],[1,.9993,1],[.7645,.911,1],[.4792,.6872,1],[.1971,.3612,1],[0,0,1],[0,0,.7774],[0,0,.4931],[0,0,.2098],[0,0,0]]};ce.gist_earth={interpolate:!0,colors:[[0,0,0],[.0026,0,.1687],[.0052,0,.2217],[.0078,0,.2638],[.0105,0,.3059],[.0131,0,.3481],[.0157,0,.3902],[.0183,0,.4324],[.0209,.0089,.4547],[.0235,.0179,.4556],[.0261,.0269,.4563],[.0287,.036,.457],[.0314,.045,.4577],[.034,.054,.4584],[.0366,.063,.4592],[.0392,.072,.4599],[.0418,.0811,.4606],[.0444,.0901,.4613],[.047,.0991,.462],[.0497,.1081,.4627],[.0523,.1171,.4634],[.0549,.1262,.4641],[.0575,.1352,.4648],[.0601,.1442,.4656],[.0627,.1532,.4663],[.0653,.1622,.467],[.0679,.1713,.4677],[.0706,.1803,.4684],[.0732,.1893,.4691],[.0758,.1975,.4698],[.0784,.2056,.4705],[.081,.2138,.4712],[.0836,.2219,.472],[.0862,.2301,.4727],[.0889,.2383,.4734],[.0915,.2464,.4741],[.0941,.2546,.4748],[.0967,.2627,.4755],[.0993,.2709,.4762],[.1019,.279,.4769],[.1045,.2872,.4776],[.1072,.2954,.4784],[.1098,.3035,.4791],[.1124,.3108,.4798],[.115,.3182,.4805],[.1176,.3255,.4812],[.1202,.3328,.4819],[.1228,.3402,.4826],[.1254,.3475,.4833],[.1281,.3548,.484],[.1307,.3622,.4848],[.1333,.3695,.4855],[.1359,.3768,.4862],[.1385,.3842,.4869],[.1411,.3904,.4876],[.1437,.3966,.4883],[.1464,.4028,.489],[.149,.409,.4897],[.1516,.4152,.4904],[.1542,.4214,.4912],[.1568,.4276,.4919],[.1594,.4338,.4926],[.162,.4399,.4933],[.1646,.4461,.494],[.1673,.4523,.4947],[.1699,.4585,.4954],[.1725,.4647,.4961],[.1751,.4709,.4968],[.1777,.4771,.4975],[.1803,.4833,.4983],[.1829,.4895,.499],[.1856,.4957,.4997],[.1882,.5019,.5004],[.19,.5042,.4957],[.1919,.5065,.4909],[.1937,.5087,.4861],[.1956,.511,.4813],[.1974,.5133,.4765],[.1993,.5155,.4717],[.2011,.5178,.4669],[.203,.52,.4621],[.2048,.5223,.4573],[.2067,.5245,.4525],[.2085,.5268,.4477],[.2104,.5291,.4429],[.2122,.5313,.4381],[.2141,.5336,.4333],[.2159,.5358,.4285],[.2178,.5381,.4237],[.2196,.5404,.4189],[.2215,.5426,.4141],[.2233,.5449,.4093],[.2252,.5471,.4045],[.227,.5494,.3997],[.2289,.5516,.3948],[.2307,.5539,.39],[.2326,.5562,.3852],[.2344,.5584,.3804],[.2363,.5607,.3756],[.2381,.5629,.3708],[.24,.5652,.366],[.2418,.5674,.3612],[.2437,.5697,.3564],[.2455,.572,.3516],[.2474,.5742,.3468],[.2492,.5765,.342],[.2511,.5787,.3372],[.2529,.581,.3324],[.2548,.5832,.3276],[.2566,.5855,.3228],[.2585,.5878,.318],[.2603,.59,.3132],[.2622,.5923,.3084],[.264,.5945,.3036],[.2659,.5968,.2988],[.2677,.599,.294],[.2696,.6013,.2892],[.2715,.6036,.2844],[.2802,.6058,.2796],[.2889,.6081,.2748],[.2976,.6103,.2771],[.3063,.6126,.2794],[.315,.6148,.2816],[.3238,.6171,.2839],[.3325,.6194,.2862],[.3412,.6216,.2885],[.3499,.6239,.2908],[.3586,.6261,.2931],[.3673,.6284,.2954],[.3761,.6307,.2976],[.3848,.6329,.2999],[.3935,.6352,.3022],[.4022,.6374,.3045],[.4109,.6397,.3068],[.4196,.6414,.3091],[.4284,.6431,.3114],[.4371,.6448,.3136],[.4458,.6466,.3159],[.4545,.6483,.3182],[.4632,.65,.3205],[.4719,.6517,.3217],[.4784,.6535,.323],[.4849,.6552,.3242],[.4913,.6569,.3255],[.4978,.6586,.3267],[.5043,.6603,.3279],[.5107,.6621,.3292],[.5172,.6638,.3304],[.5237,.6655,.3317],[.5301,.6672,.3329],[.5366,.6689,.3341],[.5431,.6707,.3354],[.5495,.6724,.3366],[.556,.6741,.3379],[.5625,.6758,.3391],[.5689,.6775,.3403],[.5754,.6793,.3416],[.5819,.681,.3428],[.5883,.6827,.344],[.5948,.6844,.3453],[.6013,.6861,.3465],[.6077,.6879,.3478],[.6142,.6896,.349],[.6207,.6913,.3502],[.6271,.693,.3515],[.6336,.6947,.3527],[.6401,.6965,.354],[.6465,.6982,.3552],[.653,.6999,.3564],[.6595,.7016,.3577],[.6659,.7034,.3589],[.6724,.7051,.3602],[.6789,.7068,.3614],[.6853,.7085,.3626],[.6918,.7102,.3639],[.6983,.712,.3651],[.7047,.7137,.3664],[.7112,.7154,.3676],[.7176,.7171,.3688],[.7193,.7137,.3701],[.7209,.7103,.3713],[.7225,.7069,.3726],[.7242,.7035,.3738],[.7258,.7001,.375],[.7275,.6967,.3763],[.7291,.6934,.3775],[.7307,.69,.3788],[.7324,.6866,.38],[.734,.6832,.3812],[.7356,.6798,.3825],[.7373,.6764,.3837],[.7389,.673,.3849],[.7406,.6697,.3862],[.7422,.6663,.3874],[.7438,.6629,.3887],[.7455,.6595,.3899],[.7471,.6561,.3911],[.7488,.6527,.3924],[.7504,.6493,.3936],[.752,.6459,.3949],[.7537,.6426,.3961],[.7553,.6392,.4057],[.7597,.6413,.4153],[.7641,.643,.425],[.7685,.6447,.4346],[.7729,.6464,.4442],[.7773,.6481,.4538],[.7817,.6515,.4634],[.786,.6549,.473],[.7904,.6583,.4826],[.7948,.6617,.4922],[.7992,.6651,.5018],[.8036,.6685,.5114],[.808,.6719,.521],[.8124,.6753,.5306],[.8167,.6787,.5402],[.8211,.6821,.5499],[.8255,.6855,.5595],[.8299,.6889,.5691],[.8343,.6923,.5787],[.8387,.6957,.5883],[.8431,.6991,.5979],[.8475,.7047,.6075],[.8518,.7103,.6171],[.8562,.7159,.6267],[.8606,.7215,.6363],[.865,.7269,.6459],[.8694,.7323,.6555],[.8738,.7377,.6652],[.8782,.7431,.677],[.8825,.7507,.6888],[.8869,.7584,.7006],[.8913,.7661,.7124],[.8957,.7738,.7243],[.9001,.7814,.7361],[.9045,.7891,.7479],[.9089,.7968,.7597],[.9132,.8044,.7715],[.9176,.8121,.7834],[.922,.8198,.7952],[.9264,.8275,.807],[.9308,.8364,.8188],[.9352,.8454,.8306],[.9396,.8544,.8425],[.944,.8634,.8543],[.9483,.8725,.8661],[.9527,.8816,.8779],[.9571,.8931,.8897],[.9615,.9045,.9016],[.9659,.916,.9134],[.9703,.9274,.9252],[.9747,.9389,.937],[.979,.9503,.9488],[.9834,.9618,.9607],[.9878,.9732,.9725],[.9922,.9843,.9843]]};ce.gist_gray={interpolate:!0,colors:[[0,0,0],[.0039,.0039,.0039],[.0078,.0078,.0078],[.0118,.0118,.0118],[.0157,.0157,.0157],[.0196,.0196,.0196],[.0235,.0235,.0235],[.0275,.0275,.0275],[.0314,.0314,.0314],[.0353,.0353,.0353],[.0392,.0392,.0392],[.0431,.0431,.0431],[.0471,.0471,.0471],[.051,.051,.051],[.0549,.0549,.0549],[.0588,.0588,.0588],[.0627,.0627,.0627],[.0667,.0667,.0667],[.0706,.0706,.0706],[.0745,.0745,.0745],[.0784,.0784,.0784],[.0824,.0824,.0824],[.0863,.0863,.0863],[.0902,.0902,.0902],[.0941,.0941,.0941],[.098,.098,.098],[.102,.102,.102],[.1059,.1059,.1059],[.1098,.1098,.1098],[.1137,.1137,.1137],[.1176,.1176,.1176],[.1216,.1216,.1216],[.1255,.1255,.1255],[.1294,.1294,.1294],[.1333,.1333,.1333],[.1373,.1373,.1373],[.1412,.1412,.1412],[.1451,.1451,.1451],[.149,.149,.149],[.1529,.1529,.1529],[.1569,.1569,.1569],[.1608,.1608,.1608],[.1647,.1647,.1647],[.1686,.1686,.1686],[.1725,.1725,.1725],[.1765,.1765,.1765],[.1804,.1804,.1804],[.1843,.1843,.1843],[.1882,.1882,.1882],[.1922,.1922,.1922],[.1961,.1961,.1961],[.2,.2,.2],[.2039,.2039,.2039],[.2078,.2078,.2078],[.2118,.2118,.2118],[.2157,.2157,.2157],[.2196,.2196,.2196],[.2235,.2235,.2235],[.2275,.2275,.2275],[.2314,.2314,.2314],[.2353,.2353,.2353],[.2392,.2392,.2392],[.2431,.2431,.2431],[.2471,.2471,.2471],[.251,.251,.251],[.2549,.2549,.2549],[.2588,.2588,.2588],[.2627,.2627,.2627],[.2667,.2667,.2667],[.2706,.2706,.2706],[.2745,.2745,.2745],[.2784,.2784,.2784],[.2824,.2824,.2824],[.2863,.2863,.2863],[.2902,.2902,.2902],[.2941,.2941,.2941],[.298,.298,.298],[.302,.302,.302],[.3059,.3059,.3059],[.3098,.3098,.3098],[.3137,.3137,.3137],[.3176,.3176,.3176],[.3216,.3216,.3216],[.3255,.3255,.3255],[.3294,.3294,.3294],[.3333,.3333,.3333],[.3373,.3373,.3373],[.3412,.3412,.3412],[.3451,.3451,.3451],[.349,.349,.349],[.3529,.3529,.3529],[.3569,.3569,.3569],[.3608,.3608,.3608],[.3647,.3647,.3647],[.3686,.3686,.3686],[.3725,.3725,.3725],[.3765,.3765,.3765],[.3804,.3804,.3804],[.3843,.3843,.3843],[.3882,.3882,.3882],[.3922,.3922,.3922],[.3961,.3961,.3961],[.4,.4,.4],[.4039,.4039,.4039],[.4078,.4078,.4078],[.4118,.4118,.4118],[.4157,.4157,.4157],[.4196,.4196,.4196],[.4235,.4235,.4235],[.4275,.4275,.4275],[.4314,.4314,.4314],[.4353,.4353,.4353],[.4392,.4392,.4392],[.4431,.4431,.4431],[.4471,.4471,.4471],[.451,.451,.451],[.4549,.4549,.4549],[.4588,.4588,.4588],[.4627,.4627,.4627],[.4667,.4667,.4667],[.4706,.4706,.4706],[.4745,.4745,.4745],[.4784,.4784,.4784],[.4824,.4824,.4824],[.4863,.4863,.4863],[.4902,.4902,.4902],[.4941,.4941,.4941],[.498,.498,.498],[.502,.502,.502],[.5059,.5059,.5059],[.5098,.5098,.5098],[.5137,.5137,.5137],[.5176,.5176,.5176],[.5216,.5216,.5216],[.5255,.5255,.5255],[.5294,.5294,.5294],[.5333,.5333,.5333],[.5373,.5373,.5373],[.5412,.5412,.5412],[.5451,.5451,.5451],[.549,.549,.549],[.5529,.5529,.5529],[.5569,.5569,.5569],[.5608,.5608,.5608],[.5647,.5647,.5647],[.5686,.5686,.5686],[.5725,.5725,.5725],[.5765,.5765,.5765],[.5804,.5804,.5804],[.5843,.5843,.5843],[.5882,.5882,.5882],[.5922,.5922,.5922],[.5961,.5961,.5961],[.6,.6,.6],[.6039,.6039,.6039],[.6078,.6078,.6078],[.6118,.6118,.6118],[.6157,.6157,.6157],[.6196,.6196,.6196],[.6235,.6235,.6235],[.6275,.6275,.6275],[.6314,.6314,.6314],[.6353,.6353,.6353],[.6392,.6392,.6392],[.6431,.6431,.6431],[.6471,.6471,.6471],[.651,.651,.651],[.6549,.6549,.6549],[.6588,.6588,.6588],[.6627,.6627,.6627],[.6667,.6667,.6667],[.6706,.6706,.6706],[.6745,.6745,.6745],[.6784,.6784,.6784],[.6824,.6824,.6824],[.6863,.6863,.6863],[.6902,.6902,.6902],[.6941,.6941,.6941],[.698,.698,.698],[.702,.702,.702],[.7059,.7059,.7059],[.7098,.7098,.7098],[.7137,.7137,.7137],[.7176,.7176,.7176],[.7216,.7216,.7216],[.7255,.7255,.7255],[.7294,.7294,.7294],[.7333,.7333,.7333],[.7373,.7373,.7373],[.7412,.7412,.7412],[.7451,.7451,.7451],[.749,.749,.749],[.7529,.7529,.7529],[.7569,.7569,.7569],[.7608,.7608,.7608],[.7647,.7647,.7647],[.7686,.7686,.7686],[.7725,.7725,.7725],[.7765,.7765,.7765],[.7804,.7804,.7804],[.7843,.7843,.7843],[.7882,.7882,.7882],[.7922,.7922,.7922],[.7961,.7961,.7961],[.8,.8,.8],[.8039,.8039,.8039],[.8078,.8078,.8078],[.8118,.8118,.8118],[.8157,.8157,.8157],[.8196,.8196,.8196],[.8235,.8235,.8235],[.8275,.8275,.8275],[.8314,.8314,.8314],[.8353,.8353,.8353],[.8392,.8392,.8392],[.8431,.8431,.8431],[.8471,.8471,.8471],[.851,.851,.851],[.8549,.8549,.8549],[.8588,.8588,.8588],[.8627,.8627,.8627],[.8667,.8667,.8667],[.8706,.8706,.8706],[.8745,.8745,.8745],[.8784,.8784,.8784],[.8824,.8824,.8824],[.8863,.8863,.8863],[.8902,.8902,.8902],[.8941,.8941,.8941],[.898,.898,.898],[.902,.902,.902],[.9059,.9059,.9059],[.9098,.9098,.9098],[.9137,.9137,.9137],[.9176,.9176,.9176],[.9216,.9216,.9216],[.9255,.9255,.9255],[.9294,.9294,.9294],[.9333,.9333,.9333],[.9373,.9373,.9373],[.9412,.9412,.9412],[.9451,.9451,.9451],[.949,.949,.949],[.9529,.9529,.9529],[.9569,.9569,.9569],[.9608,.9608,.9608],[.9647,.9647,.9647],[.9686,.9686,.9686],[.9725,.9725,.9725],[.9765,.9765,.9765],[.9804,.9804,.9804],[.9843,.9843,.9843],[.9882,.9882,.9882],[.9922,.9922,.9922],[.9961,.9961,.9961],[1,1,1]]};ce.gist_heat={interpolate:!0,colors:[[0,0,0],[.0059,0,0],[.0118,0,0],[.0176,0,0],[.0235,0,0],[.0294,0,0],[.0353,0,0],[.0412,0,0],[.0471,0,0],[.0529,0,0],[.0588,0,0],[.0647,0,0],[.0706,0,0],[.0765,0,0],[.0824,0,0],[.0882,0,0],[.0941,0,0],[.1,0,0],[.1059,0,0],[.1118,0,0],[.1176,0,0],[.1235,0,0],[.1294,0,0],[.1353,0,0],[.1412,0,0],[.1471,0,0],[.1529,0,0],[.1588,0,0],[.1647,0,0],[.1706,0,0],[.1765,0,0],[.1824,0,0],[.1882,0,0],[.1941,0,0],[.2,0,0],[.2059,0,0],[.2118,0,0],[.2176,0,0],[.2235,0,0],[.2294,0,0],[.2353,0,0],[.2412,0,0],[.2471,0,0],[.2529,0,0],[.2588,0,0],[.2647,0,0],[.2706,0,0],[.2765,0,0],[.2824,0,0],[.2882,0,0],[.2941,0,0],[.3,0,0],[.3059,0,0],[.3118,0,0],[.3176,0,0],[.3235,0,0],[.3294,0,0],[.3353,0,0],[.3412,0,0],[.3471,0,0],[.3529,0,0],[.3588,0,0],[.3647,0,0],[.3706,0,0],[.3765,0,0],[.3824,0,0],[.3882,0,0],[.3941,0,0],[.4,0,0],[.4059,0,0],[.4118,0,0],[.4176,0,0],[.4235,0,0],[.4294,0,0],[.4353,0,0],[.4412,0,0],[.4471,0,0],[.4529,0,0],[.4588,0,0],[.4647,0,0],[.4706,0,0],[.4765,0,0],[.4824,0,0],[.4882,0,0],[.4941,0,0],[.5,0,0],[.5059,0,0],[.5118,0,0],[.5176,0,0],[.5235,0,0],[.5294,0,0],[.5353,0,0],[.5412,0,0],[.5471,0,0],[.5529,0,0],[.5588,0,0],[.5647,0,0],[.5706,0,0],[.5765,0,0],[.5824,0,0],[.5882,0,0],[.5941,0,0],[.6,0,0],[.6059,0,0],[.6118,0,0],[.6176,0,0],[.6235,0,0],[.6294,0,0],[.6353,0,0],[.6412,0,0],[.6471,0,0],[.6529,0,0],[.6588,0,0],[.6647,0,0],[.6706,0,0],[.6765,0,0],[.6824,0,0],[.6882,0,0],[.6941,0,0],[.7,0,0],[.7059,0,0],[.7118,0,0],[.7176,0,0],[.7235,0,0],[.7294,0,0],[.7353,0,0],[.7412,0,0],[.7471,0,0],[.7529,.0039,0],[.7588,.0118,0],[.7647,.0196,0],[.7706,.0275,0],[.7765,.0353,0],[.7824,.0431,0],[.7882,.051,0],[.7941,.0588,0],[.8,.0667,0],[.8059,.0745,0],[.8118,.0824,0],[.8176,.0902,0],[.8235,.098,0],[.8294,.1059,0],[.8353,.1137,0],[.8412,.1216,0],[.8471,.1294,0],[.8529,.1373,0],[.8588,.1451,0],[.8647,.1529,0],[.8706,.1608,0],[.8765,.1686,0],[.8824,.1765,0],[.8882,.1843,0],[.8941,.1922,0],[.9,.2,0],[.9059,.2078,0],[.9118,.2157,0],[.9176,.2235,0],[.9235,.2314,0],[.9294,.2392,0],[.9353,.2471,0],[.9412,.2549,0],[.9471,.2627,0],[.9529,.2706,0],[.9588,.2784,0],[.9647,.2863,0],[.9706,.2941,0],[.9765,.302,0],[.9824,.3098,0],[.9882,.3176,0],[.9941,.3255,0],[1,.3333,0],[1,.3412,0],[1,.349,0],[1,.3569,0],[1,.3647,0],[1,.3725,0],[1,.3804,0],[1,.3882,0],[1,.3961,0],[1,.4039,0],[1,.4118,0],[1,.4196,0],[1,.4275,0],[1,.4353,0],[1,.4431,0],[1,.451,0],[1,.4588,0],[1,.4667,0],[1,.4745,0],[1,.4824,0],[1,.4902,0],[1,.498,0],[1,.5059,.0118],[1,.5137,.0275],[1,.5216,.0431],[1,.5294,.0588],[1,.5373,.0745],[1,.5451,.0902],[1,.5529,.1059],[1,.5608,.1216],[1,.5686,.1373],[1,.5765,.1529],[1,.5843,.1686],[1,.5922,.1843],[1,.6,.2],[1,.6078,.2157],[1,.6157,.2314],[1,.6235,.2471],[1,.6314,.2627],[1,.6392,.2784],[1,.6471,.2941],[1,.6549,.3098],[1,.6627,.3255],[1,.6706,.3412],[1,.6784,.3569],[1,.6863,.3725],[1,.6941,.3882],[1,.702,.4039],[1,.7098,.4196],[1,.7176,.4353],[1,.7255,.451],[1,.7333,.4667],[1,.7412,.4824],[1,.749,.498],[1,.7569,.5137],[1,.7647,.5294],[1,.7725,.5451],[1,.7804,.5608],[1,.7882,.5765],[1,.7961,.5922],[1,.8039,.6078],[1,.8118,.6235],[1,.8196,.6392],[1,.8275,.6549],[1,.8353,.6706],[1,.8431,.6863],[1,.851,.702],[1,.8588,.7176],[1,.8667,.7333],[1,.8745,.749],[1,.8824,.7647],[1,.8902,.7804],[1,.898,.7961],[1,.9059,.8118],[1,.9137,.8275],[1,.9216,.8431],[1,.9294,.8588],[1,.9373,.8745],[1,.9451,.8902],[1,.9529,.9059],[1,.9608,.9216],[1,.9686,.9373],[1,.9765,.9529],[1,.9843,.9686],[1,.9922,.9843],[1,1,1]]};ce.gist_ncar={interpolate:!0,colors:[[0,0,.502],[0,.0286,.4651],[0,.0572,.4282],[0,.0859,.3913],[0,.1145,.3544],[0,.1431,.3175],[0,.1717,.2806],[0,.2003,.2437],[0,.229,.2069],[0,.2576,.17],[0,.2862,.1331],[0,.3148,.0962],[0,.3434,.0593],[0,.3721,.0224],[0,.3457,.0871],[0,.3192,.1523],[0,.2926,.2175],[0,.266,.2827],[0,.2394,.3479],[0,.2128,.4132],[0,.1862,.4784],[0,.1596,.5436],[0,.1331,.6088],[0,.1065,.674],[0,.0799,.7392],[0,.0533,.8044],[0,.0267,.8696],[0,1e-4,.9349],[0,.0551,1],[0,.1105,1],[0,.1659,1],[0,.2213,1],[0,.2766,1],[0,.332,1],[0,.3874,1],[0,.4428,1],[0,.4982,1],[0,.5535,1],[0,.6089,1],[0,.6643,1],[0,.7197,1],[0,.7536,1],[0,.7752,1],[0,.7925,1],[0,.8098,1],[0,.8271,1],[0,.8444,1],[0,.8617,1],[0,.8789,1],[0,.8962,1],[0,.9135,1],[0,.9308,1],[0,.9481,.9999],[0,.9654,.9741],[0,.9827,.9484],[0,.9999,.9227],[0,.9982,.897],[0,.9964,.8713],[0,.9947,.8456],[0,.9929,.8199],[0,.9911,.7942],[0,.9893,.7685],[0,.9875,.7428],[0,.9857,.717],[0,.984,.6913],[0,.9822,.6656],[0,.9804,.6399],[0,.9804,.614],[0,.9804,.5731],[0,.9804,.5322],[0,.982,.4913],[0,.9837,.4504],[0,.9853,.4095],[0,.9869,.3685],[0,.9886,.3276],[0,.9902,.2867],[0,.9918,.2458],[0,.9935,.2049],[0,.9951,.164],[0,.9967,.1231],[.025,.9984,.0822],[.05,.9998,.0412],[.0749,.9851,3e-4],[.0999,.9703,0],[.1249,.9556,0],[.1499,.9408,0],[.1748,.926,0],[.1998,.9113,0],[.2248,.8965,0],[.2498,.8818,0],[.2747,.867,0],[.2997,.8523,0],[.3247,.8375,0],[.3497,.8228,0],[.3746,.8082,0],[.3994,.821,0],[.4072,.8337,0],[.4149,.8465,0],[.4227,.8593,0],[.4305,.8721,0],[.4382,.8848,0],[.446,.8976,0],[.4538,.9104,0],[.4615,.9232,0],[.4693,.936,0],[.4771,.9487,0],[.4848,.9615,0],[.4926,.9743,.0156],[.5004,.9871,.0312],[.5183,.9998,.0468],[.5361,1,.0624],[.554,1,.078],[.5718,1,.0937],[.5897,1,.1093],[.6075,1,.1249],[.6254,1,.1405],[.6432,1,.1561],[.6611,1,.1718],[.6789,1,.1874],[.6968,1,.203],[.7146,1,.2186],[.7324,1,.2342],[.7503,1,.2185],[.7681,1,.2029],[.786,1,.1873],[.8038,1,.1717],[.8217,1,.1561],[.8395,1,.1404],[.8574,1,.1248],[.8752,1,.1092],[.8931,1,.0936],[.9109,1,.078],[.9288,1,.0623],[.9466,1,.0467],[.9645,.9904,.0311],[.9823,.9807,.0155],[1,.9711,0],[1,.9614,0],[1,.9517,0],[1,.942,0],[1,.9324,0],[1,.9227,0],[1,.913,0],[1,.9034,0],[1,.8937,0],[1,.884,0],[1,.8743,0],[1,.8647,0],[1,.855,0],[1,.8453,.0042],[1,.8357,.0084],[1,.826,.0127],[1,.8163,.0169],[1,.8066,.0211],[1,.797,.0253],[1,.7873,.0295],[1,.7776,.0338],[1,.768,.038],[1,.7583,.0422],[1,.7486,.0464],[1,.7389,.0506],[1,.7293,.0549],[1,.6973,.0513],[1,.6652,.0476],[1,.6331,.0439],[1,.601,.0403],[1,.5688,.0366],[1,.5367,.033],[1,.5046,.0293],[1,.4725,.0256],[1,.4404,.022],[1,.4083,.0183],[1,.3762,.0146],[1,.344,.011],[1,.3119,.0073],[1,.2798,.0037],[1,.2611,0],[1,.2424,0],[1,.2238,0],[1,.2051,0],[1,.1865,0],[1,.1678,0],[1,.1492,0],[1,.1305,0],[1,.1119,0],[1,.0932,0],[1,.0746,0],[1,.056,0],[1,.0373,0],[1,.0187,.0688],[1,0,.1383],[1,0,.2079],[1,0,.2774],[1,0,.347],[1,0,.4166],[1,0,.4861],[1,0,.5557],[1,0,.6252],[1,0,.6948],[1,0,.7644],[1,0,.8339],[1,0,.9035],[1,0,.973],[.9733,.0134,.9868],[.9463,.0269,1],[.9193,.0404,1],[.8922,.0539,1],[.8652,.0674,1],[.8382,.0809,1],[.8112,.0944,1],[.7842,.1079,1],[.7572,.1214,1],[.7301,.1349,1],[.7031,.1484,1],[.6761,.1619,1],[.6491,.1755,1],[.6221,.1987,.9952],[.6448,.2219,.9905],[.668,.2451,.9858],[.6913,.2683,.9811],[.7145,.2915,.9764],[.7378,.3147,.9717],[.761,.3379,.967],[.7843,.3611,.9623],[.8075,.3843,.9576],[.8308,.4075,.9529],[.854,.4307,.9482],[.8772,.4538,.9435],[.9005,.477,.9388],[.9235,.5002,.9341],[.9263,.5183,.9365],[.9291,.5365,.9389],[.9319,.5547,.9413],[.9347,.5728,.9437],[.9375,.591,.946],[.9403,.6092,.9484],[.9431,.6273,.9508],[.9459,.6455,.9532],[.9486,.6637,.9556],[.9514,.6818,.958],[.9542,.7,.9603],[.957,.7182,.9627],[.9598,.7363,.9651],[.9626,.7545,.9675],[.9654,.7727,.9699],[.9682,.7908,.9723],[.971,.809,.9746],[.9738,.8272,.977],[.9766,.8453,.9794],[.9794,.8635,.9818],[.9821,.8817,.9842],[.9849,.8998,.9866],[.9877,.918,.9889],[.9905,.9362,.9913],[.9933,.9543,.9937],[.9961,.9725,.9961]]};ce.gist_rainbow={interpolate:!0,colors:[[1,0,.16],[1,0,.1391],[1,0,.1182],[1,0,.0973],[1,0,.0763],[1,0,.0554],[1,0,.0345],[1,0,.0136],[1,.0074,0],[1,.0286,0],[1,.0498,0],[1,.071,0],[1,.0922,0],[1,.1134,0],[1,.1346,0],[1,.1558,0],[1,.177,0],[1,.1982,0],[1,.2194,0],[1,.2406,0],[1,.2618,0],[1,.283,0],[1,.3042,0],[1,.3254,0],[1,.3466,0],[1,.3678,0],[1,.389,0],[1,.4102,0],[1,.4314,0],[1,.4526,0],[1,.4738,0],[1,.495,0],[1,.5162,0],[1,.5374,0],[1,.5586,0],[1,.5798,0],[1,.601,0],[1,.6222,0],[1,.6433,0],[1,.6645,0],[1,.6857,0],[1,.7069,0],[1,.7281,0],[1,.7493,0],[1,.7705,0],[1,.7917,0],[1,.8129,0],[1,.8341,0],[1,.8553,0],[1,.8765,0],[1,.8977,0],[1,.9189,0],[1,.9401,0],[1,.9613,0],[1,.9825,0],[.9963,1,0],[.9751,1,0],[.9539,1,0],[.9327,1,0],[.9115,1,0],[.8903,1,0],[.8691,1,0],[.8479,1,0],[.8267,1,0],[.8055,1,0],[.7843,1,0],[.7631,1,0],[.7419,1,0],[.7207,1,0],[.6995,1,0],[.6783,1,0],[.6571,1,0],[.6359,1,0],[.6147,1,0],[.5935,1,0],[.5723,1,0],[.5511,1,0],[.5299,1,0],[.5087,1,0],[.4875,1,0],[.4663,1,0],[.4452,1,0],[.424,1,0],[.4028,1,0],[.3816,1,0],[.3604,1,0],[.3392,1,0],[.318,1,0],[.2968,1,0],[.2756,1,0],[.2544,1,0],[.2332,1,0],[.212,1,0],[.1908,1,0],[.1696,1,0],[.1484,1,0],[.1272,1,0],[.106,1,0],[.0848,1,0],[.0636,1,0],[.0424,1,0],[.0212,1,0],[0,1,0],[0,1,.0211],[0,1,.0422],[0,1,.0633],[0,1,.0843],[0,1,.1054],[0,1,.1265],[0,1,.1476],[0,1,.1687],[0,1,.1898],[0,1,.2108],[0,1,.2319],[0,1,.253],[0,1,.2741],[0,1,.2952],[0,1,.3163],[0,1,.3373],[0,1,.3584],[0,1,.3795],[0,1,.4006],[0,1,.4217],[0,1,.4428],[0,1,.4638],[0,1,.4849],[0,1,.506],[0,1,.5271],[0,1,.5482],[0,1,.5693],[0,1,.5903],[0,1,.6114],[0,1,.6325],[0,1,.6536],[0,1,.6747],[0,1,.6958],[0,1,.7168],[0,1,.7379],[0,1,.759],[0,1,.7801],[0,1,.8012],[0,1,.8223],[0,1,.8433],[0,1,.8644],[0,1,.8855],[0,1,.9066],[0,1,.9277],[0,1,.9488],[0,1,.9699],[0,1,.9909],[0,.9879,1],[0,.9665,1],[0,.9452,1],[0,.9239,1],[0,.9026,1],[0,.8813,1],[0,.86,1],[0,.8387,1],[0,.8173,1],[0,.796,1],[0,.7747,1],[0,.7534,1],[0,.7321,1],[0,.7108,1],[0,.6895,1],[0,.6682,1],[0,.6468,1],[0,.6255,1],[0,.6042,1],[0,.5829,1],[0,.5616,1],[0,.5403,1],[0,.519,1],[0,.4977,1],[0,.4763,1],[0,.455,1],[0,.4337,1],[0,.4124,1],[0,.3911,1],[0,.3698,1],[0,.3485,1],[0,.3272,1],[0,.3058,1],[0,.2845,1],[0,.2632,1],[0,.2419,1],[0,.2206,1],[0,.1993,1],[0,.178,1],[0,.1566,1],[0,.1353,1],[0,.114,1],[0,.0927,1],[0,.0714,1],[0,.0501,1],[0,.0288,1],[0,.0075,1],[.0139,0,1],[.0352,0,1],[.0565,0,1],[.0778,0,1],[.0991,0,1],[.1204,0,1],[.1417,0,1],[.163,0,1],[.1844,0,1],[.2057,0,1],[.227,0,1],[.2483,0,1],[.2696,0,1],[.2909,0,1],[.3122,0,1],[.3335,0,1],[.3549,0,1],[.3762,0,1],[.3975,0,1],[.4188,0,1],[.4401,0,1],[.4614,0,1],[.4827,0,1],[.504,0,1],[.5254,0,1],[.5467,0,1],[.568,0,1],[.5893,0,1],[.6106,0,1],[.6319,0,1],[.6532,0,1],[.6746,0,1],[.6959,0,1],[.7172,0,1],[.7385,0,1],[.7598,0,1],[.7811,0,1],[.8024,0,1],[.8237,0,1],[.8451,0,1],[.8664,0,1],[.8877,0,1],[.909,0,1],[.9303,0,1],[.9516,0,1],[.9729,0,1],[.9942,0,1],[1,0,.9844],[1,0,.9631],[1,0,.9418],[1,0,.9205],[1,0,.8992],[1,0,.8779],[1,0,.8566],[1,0,.8353],[1,0,.8139],[1,0,.7926],[1,0,.7713],[1,0,.75]]};ce.gist_stern={interpolate:!0,colors:[[0,0,0],[.0717,.0039,.0078],[.1434,.0078,.0157],[.2151,.0118,.0235],[.2868,.0157,.0314],[.3585,.0196,.0392],[.4302,.0235,.0471],[.5018,.0275,.0549],[.5735,.0314,.0627],[.6452,.0353,.0706],[.7169,.0392,.0784],[.7886,.0431,.0863],[.8603,.0471,.0941],[.932,.051,.102],[.999,.0549,.1098],[.9795,.0588,.1176],[.9599,.0627,.1255],[.9404,.0667,.1333],[.9208,.0706,.1412],[.9013,.0745,.149],[.8818,.0784,.1569],[.8622,.0824,.1647],[.8427,.0863,.1725],[.8232,.0902,.1804],[.8036,.0941,.1882],[.7841,.098,.1961],[.7645,.102,.2039],[.745,.1059,.2118],[.7255,.1098,.2196],[.7059,.1137,.2275],[.6864,.1176,.2353],[.6669,.1216,.2431],[.6473,.1255,.251],[.6278,.1294,.2588],[.6082,.1333,.2667],[.5887,.1373,.2745],[.5692,.1412,.2824],[.5496,.1451,.2902],[.5301,.149,.298],[.5106,.1529,.3059],[.491,.1569,.3137],[.4715,.1608,.3216],[.4519,.1647,.3294],[.4324,.1686,.3373],[.4129,.1725,.3451],[.3933,.1765,.3529],[.3738,.1804,.3608],[.3543,.1843,.3686],[.3347,.1882,.3765],[.3152,.1922,.3843],[.2956,.1961,.3922],[.2761,.2,.4],[.2566,.2039,.4078],[.237,.2078,.4157],[.2175,.2118,.4235],[.198,.2157,.4314],[.1784,.2196,.4392],[.1589,.2235,.4471],[.1393,.2275,.4549],[.1198,.2314,.4627],[.1003,.2353,.4706],[.0807,.2392,.4784],[.0612,.2431,.4863],[.0417,.2471,.4941],[.251,.251,.502],[.2549,.2549,.5098],[.2588,.2588,.5176],[.2627,.2627,.5255],[.2667,.2667,.5333],[.2706,.2706,.5412],[.2745,.2745,.549],[.2784,.2784,.5569],[.2824,.2824,.5647],[.2863,.2863,.5725],[.2902,.2902,.5804],[.2941,.2941,.5882],[.298,.298,.5961],[.302,.302,.6039],[.3059,.3059,.6118],[.3098,.3098,.6196],[.3137,.3137,.6275],[.3176,.3176,.6353],[.3216,.3216,.6431],[.3255,.3255,.651],[.3294,.3294,.6588],[.3333,.3333,.6667],[.3373,.3373,.6745],[.3412,.3412,.6824],[.3451,.3451,.6902],[.349,.349,.698],[.3529,.3529,.7059],[.3569,.3569,.7137],[.3608,.3608,.7216],[.3647,.3647,.7294],[.3686,.3686,.7373],[.3725,.3725,.7451],[.3765,.3765,.7529],[.3804,.3804,.7608],[.3843,.3843,.7686],[.3882,.3882,.7765],[.3922,.3922,.7843],[.3961,.3961,.7922],[.4,.4,.8],[.4039,.4039,.8078],[.4078,.4078,.8157],[.4118,.4118,.8235],[.4157,.4157,.8314],[.4196,.4196,.8392],[.4235,.4235,.8471],[.4275,.4275,.8549],[.4314,.4314,.8627],[.4353,.4353,.8706],[.4392,.4392,.8784],[.4431,.4431,.8863],[.4471,.4471,.8941],[.451,.451,.902],[.4549,.4549,.9098],[.4588,.4588,.9176],[.4627,.4627,.9255],[.4667,.4667,.9333],[.4706,.4706,.9412],[.4745,.4745,.949],[.4784,.4784,.9569],[.4824,.4824,.9647],[.4863,.4863,.9725],[.4902,.4902,.9804],[.4941,.4941,.9882],[.498,.498,.9961],[.502,.502,.9917],[.5059,.5059,.975],[.5098,.5098,.9583],[.5137,.5137,.9416],[.5176,.5176,.9249],[.5216,.5216,.9082],[.5255,.5255,.8915],[.5294,.5294,.8748],[.5333,.5333,.8582],[.5373,.5373,.8415],[.5412,.5412,.8248],[.5451,.5451,.8081],[.549,.549,.7914],[.5529,.5529,.7747],[.5569,.5569,.758],[.5608,.5608,.7413],[.5647,.5647,.7247],[.5686,.5686,.708],[.5725,.5725,.6913],[.5765,.5765,.6746],[.5804,.5804,.6579],[.5843,.5843,.6412],[.5882,.5882,.6245],[.5922,.5922,.6078],[.5961,.5961,.5912],[.6,.6,.5745],[.6039,.6039,.5578],[.6078,.6078,.5411],[.6118,.6118,.5244],[.6157,.6157,.5077],[.6196,.6196,.491],[.6235,.6235,.4743],[.6275,.6275,.4577],[.6314,.6314,.441],[.6353,.6353,.4243],[.6392,.6392,.4076],[.6431,.6431,.3909],[.6471,.6471,.3742],[.651,.651,.3575],[.6549,.6549,.3408],[.6588,.6588,.3242],[.6627,.6627,.3075],[.6667,.6667,.2908],[.6706,.6706,.2741],[.6745,.6745,.2574],[.6784,.6784,.2407],[.6824,.6824,.224],[.6863,.6863,.2073],[.6902,.6902,.1907],[.6941,.6941,.174],[.698,.698,.1573],[.702,.702,.1406],[.7059,.7059,.1239],[.7098,.7098,.1072],[.7137,.7137,.0905],[.7176,.7176,.0738],[.7216,.7216,.0572],[.7255,.7255,.0405],[.7294,.7294,.0238],[.7333,.7333,.0071],[.7373,.7373,.0085],[.7412,.7412,.0233],[.7451,.7451,.0381],[.749,.749,.0529],[.7529,.7529,.0677],[.7569,.7569,.0825],[.7608,.7608,.0973],[.7647,.7647,.1121],[.7686,.7686,.1269],[.7725,.7725,.1417],[.7765,.7765,.1565],[.7804,.7804,.1713],[.7843,.7843,.1861],[.7882,.7882,.2009],[.7922,.7922,.2157],[.7961,.7961,.2305],[.8,.8,.2453],[.8039,.8039,.2601],[.8078,.8078,.2749],[.8118,.8118,.2897],[.8157,.8157,.3045],[.8196,.8196,.3193],[.8235,.8235,.3341],[.8275,.8275,.3489],[.8314,.8314,.3637],[.8353,.8353,.3785],[.8392,.8392,.3933],[.8431,.8431,.4081],[.8471,.8471,.4229],[.851,.851,.4377],[.8549,.8549,.4525],[.8588,.8588,.4673],[.8627,.8627,.4821],[.8667,.8667,.4969],[.8706,.8706,.5117],[.8745,.8745,.5265],[.8784,.8784,.5413],[.8824,.8824,.556],[.8863,.8863,.5708],[.8902,.8902,.5856],[.8941,.8941,.6004],[.898,.898,.6152],[.902,.902,.63],[.9059,.9059,.6448],[.9098,.9098,.6596],[.9137,.9137,.6744],[.9176,.9176,.6892],[.9216,.9216,.704],[.9255,.9255,.7188],[.9294,.9294,.7336],[.9333,.9333,.7484],[.9373,.9373,.7632],[.9412,.9412,.778],[.9451,.9451,.7928],[.949,.949,.8076],[.9529,.9529,.8224],[.9569,.9569,.8372],[.9608,.9608,.852],[.9647,.9647,.8668],[.9686,.9686,.8816],[.9725,.9725,.8964],[.9765,.9765,.9112],[.9804,.9804,.926],[.9843,.9843,.9408],[.9882,.9882,.9556],[.9922,.9922,.9704],[.9961,.9961,.9852],[1,1,1]]};ce.gist_yarg={interpolate:!0,colors:[[1,1,1],[.9961,.9961,.9961],[.9922,.9922,.9922],[.9882,.9882,.9882],[.9843,.9843,.9843],[.9804,.9804,.9804],[.9765,.9765,.9765],[.9725,.9725,.9725],[.9686,.9686,.9686],[.9647,.9647,.9647],[.9608,.9608,.9608],[.9569,.9569,.9569],[.9529,.9529,.9529],[.949,.949,.949],[.9451,.9451,.9451],[.9412,.9412,.9412],[.9373,.9373,.9373],[.9333,.9333,.9333],[.9294,.9294,.9294],[.9255,.9255,.9255],[.9216,.9216,.9216],[.9176,.9176,.9176],[.9137,.9137,.9137],[.9098,.9098,.9098],[.9059,.9059,.9059],[.902,.902,.902],[.898,.898,.898],[.8941,.8941,.8941],[.8902,.8902,.8902],[.8863,.8863,.8863],[.8824,.8824,.8824],[.8784,.8784,.8784],[.8745,.8745,.8745],[.8706,.8706,.8706],[.8667,.8667,.8667],[.8627,.8627,.8627],[.8588,.8588,.8588],[.8549,.8549,.8549],[.851,.851,.851],[.8471,.8471,.8471],[.8431,.8431,.8431],[.8392,.8392,.8392],[.8353,.8353,.8353],[.8314,.8314,.8314],[.8275,.8275,.8275],[.8235,.8235,.8235],[.8196,.8196,.8196],[.8157,.8157,.8157],[.8118,.8118,.8118],[.8078,.8078,.8078],[.8039,.8039,.8039],[.8,.8,.8],[.7961,.7961,.7961],[.7922,.7922,.7922],[.7882,.7882,.7882],[.7843,.7843,.7843],[.7804,.7804,.7804],[.7765,.7765,.7765],[.7725,.7725,.7725],[.7686,.7686,.7686],[.7647,.7647,.7647],[.7608,.7608,.7608],[.7569,.7569,.7569],[.7529,.7529,.7529],[.749,.749,.749],[.7451,.7451,.7451],[.7412,.7412,.7412],[.7373,.7373,.7373],[.7333,.7333,.7333],[.7294,.7294,.7294],[.7255,.7255,.7255],[.7216,.7216,.7216],[.7176,.7176,.7176],[.7137,.7137,.7137],[.7098,.7098,.7098],[.7059,.7059,.7059],[.702,.702,.702],[.698,.698,.698],[.6941,.6941,.6941],[.6902,.6902,.6902],[.6863,.6863,.6863],[.6824,.6824,.6824],[.6784,.6784,.6784],[.6745,.6745,.6745],[.6706,.6706,.6706],[.6667,.6667,.6667],[.6627,.6627,.6627],[.6588,.6588,.6588],[.6549,.6549,.6549],[.651,.651,.651],[.6471,.6471,.6471],[.6431,.6431,.6431],[.6392,.6392,.6392],[.6353,.6353,.6353],[.6314,.6314,.6314],[.6275,.6275,.6275],[.6235,.6235,.6235],[.6196,.6196,.6196],[.6157,.6157,.6157],[.6118,.6118,.6118],[.6078,.6078,.6078],[.6039,.6039,.6039],[.6,.6,.6],[.5961,.5961,.5961],[.5922,.5922,.5922],[.5882,.5882,.5882],[.5843,.5843,.5843],[.5804,.5804,.5804],[.5765,.5765,.5765],[.5725,.5725,.5725],[.5686,.5686,.5686],[.5647,.5647,.5647],[.5608,.5608,.5608],[.5569,.5569,.5569],[.5529,.5529,.5529],[.549,.549,.549],[.5451,.5451,.5451],[.5412,.5412,.5412],[.5373,.5373,.5373],[.5333,.5333,.5333],[.5294,.5294,.5294],[.5255,.5255,.5255],[.5216,.5216,.5216],[.5176,.5176,.5176],[.5137,.5137,.5137],[.5098,.5098,.5098],[.5059,.5059,.5059],[.502,.502,.502],[.498,.498,.498],[.4941,.4941,.4941],[.4902,.4902,.4902],[.4863,.4863,.4863],[.4824,.4824,.4824],[.4784,.4784,.4784],[.4745,.4745,.4745],[.4706,.4706,.4706],[.4667,.4667,.4667],[.4627,.4627,.4627],[.4588,.4588,.4588],[.4549,.4549,.4549],[.451,.451,.451],[.4471,.4471,.4471],[.4431,.4431,.4431],[.4392,.4392,.4392],[.4353,.4353,.4353],[.4314,.4314,.4314],[.4275,.4275,.4275],[.4235,.4235,.4235],[.4196,.4196,.4196],[.4157,.4157,.4157],[.4118,.4118,.4118],[.4078,.4078,.4078],[.4039,.4039,.4039],[.4,.4,.4],[.3961,.3961,.3961],[.3922,.3922,.3922],[.3882,.3882,.3882],[.3843,.3843,.3843],[.3804,.3804,.3804],[.3765,.3765,.3765],[.3725,.3725,.3725],[.3686,.3686,.3686],[.3647,.3647,.3647],[.3608,.3608,.3608],[.3569,.3569,.3569],[.3529,.3529,.3529],[.349,.349,.349],[.3451,.3451,.3451],[.3412,.3412,.3412],[.3373,.3373,.3373],[.3333,.3333,.3333],[.3294,.3294,.3294],[.3255,.3255,.3255],[.3216,.3216,.3216],[.3176,.3176,.3176],[.3137,.3137,.3137],[.3098,.3098,.3098],[.3059,.3059,.3059],[.302,.302,.302],[.298,.298,.298],[.2941,.2941,.2941],[.2902,.2902,.2902],[.2863,.2863,.2863],[.2824,.2824,.2824],[.2784,.2784,.2784],[.2745,.2745,.2745],[.2706,.2706,.2706],[.2667,.2667,.2667],[.2627,.2627,.2627],[.2588,.2588,.2588],[.2549,.2549,.2549],[.251,.251,.251],[.2471,.2471,.2471],[.2431,.2431,.2431],[.2392,.2392,.2392],[.2353,.2353,.2353],[.2314,.2314,.2314],[.2275,.2275,.2275],[.2235,.2235,.2235],[.2196,.2196,.2196],[.2157,.2157,.2157],[.2118,.2118,.2118],[.2078,.2078,.2078],[.2039,.2039,.2039],[.2,.2,.2],[.1961,.1961,.1961],[.1922,.1922,.1922],[.1882,.1882,.1882],[.1843,.1843,.1843],[.1804,.1804,.1804],[.1765,.1765,.1765],[.1725,.1725,.1725],[.1686,.1686,.1686],[.1647,.1647,.1647],[.1608,.1608,.1608],[.1569,.1569,.1569],[.1529,.1529,.1529],[.149,.149,.149],[.1451,.1451,.1451],[.1412,.1412,.1412],[.1373,.1373,.1373],[.1333,.1333,.1333],[.1294,.1294,.1294],[.1255,.1255,.1255],[.1216,.1216,.1216],[.1176,.1176,.1176],[.1137,.1137,.1137],[.1098,.1098,.1098],[.1059,.1059,.1059],[.102,.102,.102],[.098,.098,.098],[.0941,.0941,.0941],[.0902,.0902,.0902],[.0863,.0863,.0863],[.0824,.0824,.0824],[.0784,.0784,.0784],[.0745,.0745,.0745],[.0706,.0706,.0706],[.0667,.0667,.0667],[.0627,.0627,.0627],[.0588,.0588,.0588],[.0549,.0549,.0549],[.051,.051,.051],[.0471,.0471,.0471],[.0431,.0431,.0431],[.0392,.0392,.0392],[.0353,.0353,.0353],[.0314,.0314,.0314],[.0275,.0275,.0275],[.0235,.0235,.0235],[.0196,.0196,.0196],[.0157,.0157,.0157],[.0118,.0118,.0118],[.0078,.0078,.0078],[.0039,.0039,.0039],[0,0,0]]};ce.gnuplot={interpolate:!0,colors:[[0,0,0],[.0626,0,.0246],[.0886,0,.0493],[.1085,0,.0739],[.1252,0,.0984],[.14,0,.1229],[.1534,0,.1473],[.1657,0,.1716],[.1771,0,.1958],[.1879,0,.2199],[.198,1e-4,.2439],[.2077,1e-4,.2677],[.2169,1e-4,.2914],[.2258,1e-4,.3149],[.2343,2e-4,.3382],[.2425,2e-4,.3612],[.2505,2e-4,.3841],[.2582,3e-4,.4067],[.2657,4e-4,.4291],[.273,4e-4,.4512],[.2801,5e-4,.4731],[.287,6e-4,.4947],[.2937,6e-4,.5159],[.3003,7e-4,.5369],[.3068,8e-4,.5575],[.3131,9e-4,.5778],[.3193,.0011,.5977],[.3254,.0012,.6173],[.3314,.0013,.6365],[.3372,.0015,.6553],[.343,.0016,.6737],[.3487,.0018,.6917],[.3542,.002,.7093],[.3597,.0022,.7264],[.3651,.0024,.7431],[.3705,.0026,.7594],[.3757,.0028,.7752],[.3809,.0031,.7905],[.386,.0033,.8054],[.3911,.0036,.8197],[.3961,.0039,.8336],[.401,.0042,.847],[.4058,.0045,.8598],[.4106,.0048,.8721],[.4154,.0051,.8839],[.4201,.0055,.8952],[.4247,.0059,.9059],[.4293,.0063,.916],[.4339,.0067,.9256],[.4384,.0071,.9347],[.4428,.0075,.9432],[.4472,.008,.9511],[.4516,.0085,.9584],[.4559,.009,.9651],[.4602,.0095,.9713],[.4644,.01,.9768],[.4686,.0106,.9818],[.4728,.0112,.9862],[.4769,.0118,.99],[.481,.0124,.9932],[.4851,.013,.9957],[.4891,.0137,.9977],[.4931,.0144,.9991],[.4971,.0151,.9998],[.501,.0158,1],[.5049,.0166,.9995],[.5087,.0173,.9985],[.5126,.0181,.9968],[.5164,.019,.9945],[.5202,.0198,.9916],[.5239,.0207,.9882],[.5277,.0216,.9841],[.5314,.0225,.9794],[.535,.0235,.9741],[.5387,.0244,.9683],[.5423,.0254,.9618],[.5459,.0265,.9548],[.5495,.0275,.9472],[.5531,.0286,.939],[.5566,.0297,.9302],[.5601,.0309,.9209],[.5636,.0321,.911],[.5671,.0333,.9006],[.5705,.0345,.8896],[.5739,.0357,.8781],[.5774,.037,.866],[.5807,.0384,.8534],[.5841,.0397,.8403],[.5875,.0411,.8267],[.5908,.0425,.8126],[.5941,.044,.798],[.5974,.0454,.7829],[.6007,.047,.7674],[.6039,.0485,.7513],[.6071,.0501,.7348],[.6104,.0517,.7179],[.6136,.0534,.7005],[.6168,.055,.6827],[.6199,.0568,.6645],[.6231,.0585,.6459],[.6262,.0603,.6269],[.6293,.0621,.6075],[.6325,.064,.5878],[.6355,.0659,.5677],[.6386,.0678,.5472],[.6417,.0698,.5264],[.6447,.0718,.5053],[.6478,.0739,.4839],[.6508,.076,.4622],[.6538,.0781,.4402],[.6568,.0803,.418],[.6598,.0825,.3955],[.6627,.0847,.3727],[.6657,.087,.3497],[.6686,.0893,.3265],[.6716,.0917,.3032],[.6745,.0941,.2796],[.6774,.0966,.2558],[.6803,.0991,.2319],[.6831,.1016,.2079],[.686,.1042,.1837],[.6888,.1068,.1595],[.6917,.1095,.1351],[.6945,.1122,.1107],[.6973,.115,.0861],[.7001,.1178,.0616],[.7029,.1206,.037],[.7057,.1235,.0123],[.7085,.1265,0],[.7113,.1295,0],[.714,.1325,0],[.7167,.1356,0],[.7195,.1387,0],[.7222,.1419,0],[.7249,.1451,0],[.7276,.1484,0],[.7303,.1517,0],[.733,.1551,0],[.7356,.1585,0],[.7383,.162,0],[.741,.1655,0],[.7436,.1691,0],[.7462,.1727,0],[.7489,.1764,0],[.7515,.1801,0],[.7541,.1839,0],[.7567,.1877,0],[.7593,.1916,0],[.7618,.1955,0],[.7644,.1995,0],[.767,.2035,0],[.7695,.2076,0],[.7721,.2118,0],[.7746,.216,0],[.7771,.2203,0],[.7796,.2246,0],[.7822,.229,0],[.7847,.2334,0],[.7872,.2379,0],[.7896,.2424,0],[.7921,.247,0],[.7946,.2517,0],[.7971,.2564,0],[.7995,.2612,0],[.802,.266,0],[.8044,.2709,0],[.8068,.2759,0],[.8093,.2809,0],[.8117,.286,0],[.8141,.2911,0],[.8165,.2963,0],[.8189,.3016,0],[.8213,.3069,0],[.8237,.3123,0],[.826,.3177,0],[.8284,.3232,0],[.8308,.3288,0],[.8331,.3344,0],[.8355,.3401,0],[.8378,.3459,0],[.8402,.3517,0],[.8425,.3576,0],[.8448,.3636,0],[.8471,.3696,0],[.8495,.3757,0],[.8518,.3819,0],[.8541,.3881,0],[.8563,.3944,0],[.8586,.4007,0],[.8609,.4072,0],[.8632,.4137,0],[.8655,.4202,0],[.8677,.4269,0],[.87,.4336,0],[.8722,.4403,0],[.8745,.4472,0],[.8767,.4541,0],[.8789,.4611,0],[.8812,.4681,0],[.8834,.4753,0],[.8856,.4825,0],[.8878,.4897,0],[.89,.4971,0],[.8922,.5045,0],[.8944,.512,0],[.8966,.5196,0],[.8988,.5272,0],[.901,.5349,0],[.9032,.5427,0],[.9053,.5506,0],[.9075,.5585,0],[.9096,.5665,0],[.9118,.5746,0],[.9139,.5828,0],[.9161,.591,0],[.9182,.5994,0],[.9204,.6078,0],[.9225,.6163,0],[.9246,.6248,0],[.9267,.6334,0],[.9288,.6422,0],[.9309,.651,0],[.9331,.6598,0],[.9352,.6688,0],[.9372,.6778,0],[.9393,.687,0],[.9414,.6962,0],[.9435,.7054,0],[.9456,.7148,0],[.9476,.7242,0],[.9497,.7338,0],[.9518,.7434,0],[.9538,.7531,0],[.9559,.7629,0],[.9579,.7727,0],[.96,.7827,0],[.962,.7927,0],[.9641,.8028,0],[.9661,.813,0],[.9681,.8233,0],[.9701,.8337,0],[.9722,.8442,0],[.9742,.8547,0],[.9762,.8654,0],[.9782,.8761,0],[.9802,.8869,0],[.9822,.8978,0],[.9842,.9088,0],[.9862,.9199,0],[.9882,.9311,0],[.9901,.9423,0],[.9921,.9537,0],[.9941,.9651,0],[.9961,.9767,0],[.998,.9883,0],[1,1,0]]};ce.gnuplot2={interpolate:!0,colors:[[0,0,0],[0,0,.0157],[0,0,.0314],[0,0,.0471],[0,0,.0627],[0,0,.0784],[0,0,.0941],[0,0,.1098],[0,0,.1255],[0,0,.1412],[0,0,.1569],[0,0,.1725],[0,0,.1882],[0,0,.2039],[0,0,.2196],[0,0,.2353],[0,0,.251],[0,0,.2667],[0,0,.2824],[0,0,.298],[0,0,.3137],[0,0,.3294],[0,0,.3451],[0,0,.3608],[0,0,.3765],[0,0,.3922],[0,0,.4078],[0,0,.4235],[0,0,.4392],[0,0,.4549],[0,0,.4706],[0,0,.4863],[0,0,.502],[0,0,.5176],[0,0,.5333],[0,0,.549],[0,0,.5647],[0,0,.5804],[0,0,.5961],[0,0,.6118],[0,0,.6275],[0,0,.6431],[0,0,.6588],[0,0,.6745],[0,0,.6902],[0,0,.7059],[0,0,.7216],[0,0,.7373],[0,0,.7529],[0,0,.7686],[0,0,.7843],[0,0,.8],[0,0,.8157],[0,0,.8314],[0,0,.8471],[0,0,.8627],[0,0,.8784],[0,0,.8941],[0,0,.9098],[0,0,.9255],[0,0,.9412],[0,0,.9569],[0,0,.9725],[0,0,.9882],[.0031,0,1],[.0153,0,1],[.0276,0,1],[.0398,0,1],[.0521,0,1],[.0643,0,1],[.0766,0,1],[.0888,0,1],[.1011,0,1],[.1134,0,1],[.1256,0,1],[.1379,0,1],[.1501,0,1],[.1624,0,1],[.1746,0,1],[.1869,0,1],[.1991,0,1],[.2114,0,1],[.2237,0,1],[.2359,0,1],[.2482,0,1],[.2604,0,1],[.2727,0,1],[.2849,0,1],[.2972,0,1],[.3094,0,1],[.3217,0,1],[.3339,0,1],[.3462,0,1],[.3585,0,1],[.3707,0,1],[.383,0,1],[.3952,0,1],[.4075,0,1],[.4197,0,1],[.432,0,1],[.4442,0,1],[.4565,0,1],[.4688,0,1],[.481,0,1],[.4933,0,1],[.5055,0,1],[.5178,0,1],[.53,0,1],[.5423,.0071,.9929],[.5545,.0149,.9851],[.5668,.0227,.9773],[.579,.0306,.9694],[.5913,.0384,.9616],[.6036,.0463,.9537],[.6158,.0541,.9459],[.6281,.062,.938],[.6403,.0698,.9302],[.6526,.0776,.9224],[.6648,.0855,.9145],[.6771,.0933,.9067],[.6893,.1012,.8988],[.7016,.109,.891],[.7138,.1169,.8831],[.7261,.1247,.8753],[.7384,.1325,.8675],[.7506,.1404,.8596],[.7629,.1482,.8518],[.7751,.1561,.8439],[.7874,.1639,.8361],[.7996,.1718,.8282],[.8119,.1796,.8204],[.8241,.1875,.8125],[.8364,.1953,.8047],[.8487,.2031,.7969],[.8609,.211,.789],[.8732,.2188,.7812],[.8854,.2267,.7733],[.8977,.2345,.7655],[.9099,.2424,.7576],[.9222,.2502,.7498],[.9344,.258,.742],[.9467,.2659,.7341],[.9589,.2737,.7263],[.9712,.2816,.7184],[.9835,.2894,.7106],[.9957,.2973,.7027],[1,.3051,.6949],[1,.3129,.6871],[1,.3208,.6792],[1,.3286,.6714],[1,.3365,.6635],[1,.3443,.6557],[1,.3522,.6478],[1,.36,.64],[1,.3678,.6322],[1,.3757,.6243],[1,.3835,.6165],[1,.3914,.6086],[1,.3992,.6008],[1,.4071,.5929],[1,.4149,.5851],[1,.4227,.5773],[1,.4306,.5694],[1,.4384,.5616],[1,.4463,.5537],[1,.4541,.5459],[1,.462,.538],[1,.4698,.5302],[1,.4776,.5224],[1,.4855,.5145],[1,.4933,.5067],[1,.5012,.4988],[1,.509,.491],[1,.5169,.4831],[1,.5247,.4753],[1,.5325,.4675],[1,.5404,.4596],[1,.5482,.4518],[1,.5561,.4439],[1,.5639,.4361],[1,.5718,.4282],[1,.5796,.4204],[1,.5875,.4125],[1,.5953,.4047],[1,.6031,.3969],[1,.611,.389],[1,.6188,.3812],[1,.6267,.3733],[1,.6345,.3655],[1,.6424,.3576],[1,.6502,.3498],[1,.658,.342],[1,.6659,.3341],[1,.6737,.3263],[1,.6816,.3184],[1,.6894,.3106],[1,.6973,.3027],[1,.7051,.2949],[1,.7129,.2871],[1,.7208,.2792],[1,.7286,.2714],[1,.7365,.2635],[1,.7443,.2557],[1,.7522,.2478],[1,.76,.24],[1,.7678,.2322],[1,.7757,.2243],[1,.7835,.2165],[1,.7914,.2086],[1,.7992,.2008],[1,.8071,.1929],[1,.8149,.1851],[1,.8227,.1773],[1,.8306,.1694],[1,.8384,.1616],[1,.8463,.1537],[1,.8541,.1459],[1,.862,.138],[1,.8698,.1302],[1,.8776,.1224],[1,.8855,.1145],[1,.8933,.1067],[1,.9012,.0988],[1,.909,.091],[1,.9169,.0831],[1,.9247,.0753],[1,.9325,.0675],[1,.9404,.0596],[1,.9482,.0518],[1,.9561,.0439],[1,.9639,.0361],[1,.9718,.0282],[1,.9796,.0204],[1,.9875,.0125],[1,.9953,.0047],[1,1,.0196],[1,1,.0686],[1,1,.1176],[1,1,.1667],[1,1,.2157],[1,1,.2647],[1,1,.3137],[1,1,.3627],[1,1,.4118],[1,1,.4608],[1,1,.5098],[1,1,.5588],[1,1,.6078],[1,1,.6569],[1,1,.7059],[1,1,.7549],[1,1,.8039],[1,1,.8529],[1,1,.902],[1,1,.951],[1,1,1]]};ce.gray={interpolate:!0,colors:[[0,0,0],[.0039,.0039,.0039],[.0078,.0078,.0078],[.0118,.0118,.0118],[.0157,.0157,.0157],[.0196,.0196,.0196],[.0235,.0235,.0235],[.0275,.0275,.0275],[.0314,.0314,.0314],[.0353,.0353,.0353],[.0392,.0392,.0392],[.0431,.0431,.0431],[.0471,.0471,.0471],[.051,.051,.051],[.0549,.0549,.0549],[.0588,.0588,.0588],[.0627,.0627,.0627],[.0667,.0667,.0667],[.0706,.0706,.0706],[.0745,.0745,.0745],[.0784,.0784,.0784],[.0824,.0824,.0824],[.0863,.0863,.0863],[.0902,.0902,.0902],[.0941,.0941,.0941],[.098,.098,.098],[.102,.102,.102],[.1059,.1059,.1059],[.1098,.1098,.1098],[.1137,.1137,.1137],[.1176,.1176,.1176],[.1216,.1216,.1216],[.1255,.1255,.1255],[.1294,.1294,.1294],[.1333,.1333,.1333],[.1373,.1373,.1373],[.1412,.1412,.1412],[.1451,.1451,.1451],[.149,.149,.149],[.1529,.1529,.1529],[.1569,.1569,.1569],[.1608,.1608,.1608],[.1647,.1647,.1647],[.1686,.1686,.1686],[.1725,.1725,.1725],[.1765,.1765,.1765],[.1804,.1804,.1804],[.1843,.1843,.1843],[.1882,.1882,.1882],[.1922,.1922,.1922],[.1961,.1961,.1961],[.2,.2,.2],[.2039,.2039,.2039],[.2078,.2078,.2078],[.2118,.2118,.2118],[.2157,.2157,.2157],[.2196,.2196,.2196],[.2235,.2235,.2235],[.2275,.2275,.2275],[.2314,.2314,.2314],[.2353,.2353,.2353],[.2392,.2392,.2392],[.2431,.2431,.2431],[.2471,.2471,.2471],[.251,.251,.251],[.2549,.2549,.2549],[.2588,.2588,.2588],[.2627,.2627,.2627],[.2667,.2667,.2667],[.2706,.2706,.2706],[.2745,.2745,.2745],[.2784,.2784,.2784],[.2824,.2824,.2824],[.2863,.2863,.2863],[.2902,.2902,.2902],[.2941,.2941,.2941],[.298,.298,.298],[.302,.302,.302],[.3059,.3059,.3059],[.3098,.3098,.3098],[.3137,.3137,.3137],[.3176,.3176,.3176],[.3216,.3216,.3216],[.3255,.3255,.3255],[.3294,.3294,.3294],[.3333,.3333,.3333],[.3373,.3373,.3373],[.3412,.3412,.3412],[.3451,.3451,.3451],[.349,.349,.349],[.3529,.3529,.3529],[.3569,.3569,.3569],[.3608,.3608,.3608],[.3647,.3647,.3647],[.3686,.3686,.3686],[.3725,.3725,.3725],[.3765,.3765,.3765],[.3804,.3804,.3804],[.3843,.3843,.3843],[.3882,.3882,.3882],[.3922,.3922,.3922],[.3961,.3961,.3961],[.4,.4,.4],[.4039,.4039,.4039],[.4078,.4078,.4078],[.4118,.4118,.4118],[.4157,.4157,.4157],[.4196,.4196,.4196],[.4235,.4235,.4235],[.4275,.4275,.4275],[.4314,.4314,.4314],[.4353,.4353,.4353],[.4392,.4392,.4392],[.4431,.4431,.4431],[.4471,.4471,.4471],[.451,.451,.451],[.4549,.4549,.4549],[.4588,.4588,.4588],[.4627,.4627,.4627],[.4667,.4667,.4667],[.4706,.4706,.4706],[.4745,.4745,.4745],[.4784,.4784,.4784],[.4824,.4824,.4824],[.4863,.4863,.4863],[.4902,.4902,.4902],[.4941,.4941,.4941],[.498,.498,.498],[.502,.502,.502],[.5059,.5059,.5059],[.5098,.5098,.5098],[.5137,.5137,.5137],[.5176,.5176,.5176],[.5216,.5216,.5216],[.5255,.5255,.5255],[.5294,.5294,.5294],[.5333,.5333,.5333],[.5373,.5373,.5373],[.5412,.5412,.5412],[.5451,.5451,.5451],[.549,.549,.549],[.5529,.5529,.5529],[.5569,.5569,.5569],[.5608,.5608,.5608],[.5647,.5647,.5647],[.5686,.5686,.5686],[.5725,.5725,.5725],[.5765,.5765,.5765],[.5804,.5804,.5804],[.5843,.5843,.5843],[.5882,.5882,.5882],[.5922,.5922,.5922],[.5961,.5961,.5961],[.6,.6,.6],[.6039,.6039,.6039],[.6078,.6078,.6078],[.6118,.6118,.6118],[.6157,.6157,.6157],[.6196,.6196,.6196],[.6235,.6235,.6235],[.6275,.6275,.6275],[.6314,.6314,.6314],[.6353,.6353,.6353],[.6392,.6392,.6392],[.6431,.6431,.6431],[.6471,.6471,.6471],[.651,.651,.651],[.6549,.6549,.6549],[.6588,.6588,.6588],[.6627,.6627,.6627],[.6667,.6667,.6667],[.6706,.6706,.6706],[.6745,.6745,.6745],[.6784,.6784,.6784],[.6824,.6824,.6824],[.6863,.6863,.6863],[.6902,.6902,.6902],[.6941,.6941,.6941],[.698,.698,.698],[.702,.702,.702],[.7059,.7059,.7059],[.7098,.7098,.7098],[.7137,.7137,.7137],[.7176,.7176,.7176],[.7216,.7216,.7216],[.7255,.7255,.7255],[.7294,.7294,.7294],[.7333,.7333,.7333],[.7373,.7373,.7373],[.7412,.7412,.7412],[.7451,.7451,.7451],[.749,.749,.749],[.7529,.7529,.7529],[.7569,.7569,.7569],[.7608,.7608,.7608],[.7647,.7647,.7647],[.7686,.7686,.7686],[.7725,.7725,.7725],[.7765,.7765,.7765],[.7804,.7804,.7804],[.7843,.7843,.7843],[.7882,.7882,.7882],[.7922,.7922,.7922],[.7961,.7961,.7961],[.8,.8,.8],[.8039,.8039,.8039],[.8078,.8078,.8078],[.8118,.8118,.8118],[.8157,.8157,.8157],[.8196,.8196,.8196],[.8235,.8235,.8235],[.8275,.8275,.8275],[.8314,.8314,.8314],[.8353,.8353,.8353],[.8392,.8392,.8392],[.8431,.8431,.8431],[.8471,.8471,.8471],[.851,.851,.851],[.8549,.8549,.8549],[.8588,.8588,.8588],[.8627,.8627,.8627],[.8667,.8667,.8667],[.8706,.8706,.8706],[.8745,.8745,.8745],[.8784,.8784,.8784],[.8824,.8824,.8824],[.8863,.8863,.8863],[.8902,.8902,.8902],[.8941,.8941,.8941],[.898,.898,.898],[.902,.902,.902],[.9059,.9059,.9059],[.9098,.9098,.9098],[.9137,.9137,.9137],[.9176,.9176,.9176],[.9216,.9216,.9216],[.9255,.9255,.9255],[.9294,.9294,.9294],[.9333,.9333,.9333],[.9373,.9373,.9373],[.9412,.9412,.9412],[.9451,.9451,.9451],[.949,.949,.949],[.9529,.9529,.9529],[.9569,.9569,.9569],[.9608,.9608,.9608],[.9647,.9647,.9647],[.9686,.9686,.9686],[.9725,.9725,.9725],[.9765,.9765,.9765],[.9804,.9804,.9804],[.9843,.9843,.9843],[.9882,.9882,.9882],[.9922,.9922,.9922],[.9961,.9961,.9961],[1,1,1]]};ce.hot={interpolate:!0,colors:[[.0416,0,0],[.0519,0,0],[.0622,0,0],[.0725,0,0],[.0828,0,0],[.0931,0,0],[.1034,0,0],[.1137,0,0],[.124,0,0],[.1343,0,0],[.1445,0,0],[.1548,0,0],[.1651,0,0],[.1754,0,0],[.1857,0,0],[.196,0,0],[.2063,0,0],[.2166,0,0],[.2269,0,0],[.2372,0,0],[.2475,0,0],[.2578,0,0],[.2681,0,0],[.2784,0,0],[.2887,0,0],[.299,0,0],[.3093,0,0],[.3196,0,0],[.3299,0,0],[.3402,0,0],[.3504,0,0],[.3607,0,0],[.371,0,0],[.3813,0,0],[.3916,0,0],[.4019,0,0],[.4122,0,0],[.4225,0,0],[.4328,0,0],[.4431,0,0],[.4534,0,0],[.4637,0,0],[.474,0,0],[.4843,0,0],[.4946,0,0],[.5049,0,0],[.5152,0,0],[.5255,0,0],[.5358,0,0],[.546,0,0],[.5563,0,0],[.5666,0,0],[.5769,0,0],[.5872,0,0],[.5975,0,0],[.6078,0,0],[.6181,0,0],[.6284,0,0],[.6387,0,0],[.649,0,0],[.6593,0,0],[.6696,0,0],[.6799,0,0],[.6902,0,0],[.7005,0,0],[.7108,0,0],[.7211,0,0],[.7314,0,0],[.7416,0,0],[.7519,0,0],[.7622,0,0],[.7725,0,0],[.7828,0,0],[.7931,0,0],[.8034,0,0],[.8137,0,0],[.824,0,0],[.8343,0,0],[.8446,0,0],[.8549,0,0],[.8652,0,0],[.8755,0,0],[.8858,0,0],[.8961,0,0],[.9064,0,0],[.9167,0,0],[.927,0,0],[.9373,0,0],[.9475,0,0],[.9578,0,0],[.9681,0,0],[.9784,0,0],[.9887,0,0],[.999,0,0],[1,.0093,0],[1,.0196,0],[1,.0299,0],[1,.0402,0],[1,.0505,0],[1,.0608,0],[1,.0711,0],[1,.0814,0],[1,.0917,0],[1,.102,0],[1,.1123,0],[1,.1225,0],[1,.1328,0],[1,.1431,0],[1,.1534,0],[1,.1637,0],[1,.174,0],[1,.1843,0],[1,.1946,0],[1,.2049,0],[1,.2152,0],[1,.2255,0],[1,.2358,0],[1,.2461,0],[1,.2564,0],[1,.2667,0],[1,.277,0],[1,.2873,0],[1,.2975,0],[1,.3078,0],[1,.3181,0],[1,.3284,0],[1,.3387,0],[1,.349,0],[1,.3593,0],[1,.3696,0],[1,.3799,0],[1,.3902,0],[1,.4005,0],[1,.4108,0],[1,.4211,0],[1,.4314,0],[1,.4417,0],[1,.452,0],[1,.4623,0],[1,.4725,0],[1,.4828,0],[1,.4931,0],[1,.5034,0],[1,.5137,0],[1,.524,0],[1,.5343,0],[1,.5446,0],[1,.5549,0],[1,.5652,0],[1,.5755,0],[1,.5858,0],[1,.5961,0],[1,.6064,0],[1,.6167,0],[1,.627,0],[1,.6373,0],[1,.6475,0],[1,.6578,0],[1,.6681,0],[1,.6784,0],[1,.6887,0],[1,.699,0],[1,.7093,0],[1,.7196,0],[1,.7299,0],[1,.7402,0],[1,.7505,0],[1,.7608,0],[1,.7711,0],[1,.7814,0],[1,.7917,0],[1,.802,0],[1,.8123,0],[1,.8225,0],[1,.8328,0],[1,.8431,0],[1,.8534,0],[1,.8637,0],[1,.874,0],[1,.8843,0],[1,.8946,0],[1,.9049,0],[1,.9152,0],[1,.9255,0],[1,.9358,0],[1,.9461,0],[1,.9564,0],[1,.9667,0],[1,.977,0],[1,.9873,0],[1,.9975,0],[1,1,.0118],[1,1,.0272],[1,1,.0426],[1,1,.0581],[1,1,.0735],[1,1,.089],[1,1,.1044],[1,1,.1199],[1,1,.1353],[1,1,.1507],[1,1,.1662],[1,1,.1816],[1,1,.1971],[1,1,.2125],[1,1,.2279],[1,1,.2434],[1,1,.2588],[1,1,.2743],[1,1,.2897],[1,1,.3051],[1,1,.3206],[1,1,.336],[1,1,.3515],[1,1,.3669],[1,1,.3824],[1,1,.3978],[1,1,.4132],[1,1,.4287],[1,1,.4441],[1,1,.4596],[1,1,.475],[1,1,.4904],[1,1,.5059],[1,1,.5213],[1,1,.5368],[1,1,.5522],[1,1,.5676],[1,1,.5831],[1,1,.5985],[1,1,.614],[1,1,.6294],[1,1,.6449],[1,1,.6603],[1,1,.6757],[1,1,.6912],[1,1,.7066],[1,1,.7221],[1,1,.7375],[1,1,.7529],[1,1,.7684],[1,1,.7838],[1,1,.7993],[1,1,.8147],[1,1,.8301],[1,1,.8456],[1,1,.861],[1,1,.8765],[1,1,.8919],[1,1,.9074],[1,1,.9228],[1,1,.9382],[1,1,.9537],[1,1,.9691],[1,1,.9846],[1,1,1]]};ce.hsv={interpolate:!0,colors:[[1,0,0],[1,.0232,0],[1,.0463,0],[1,.0695,0],[1,.0926,0],[1,.1158,0],[1,.139,0],[1,.1621,0],[1,.1853,0],[1,.2085,0],[1,.2316,0],[1,.2548,0],[1,.2779,0],[1,.3011,0],[1,.3243,0],[1,.3474,0],[1,.3706,0],[1,.3938,0],[1,.4169,0],[1,.4401,0],[1,.4632,0],[1,.4864,0],[1,.5096,0],[1,.5327,0],[1,.5559,0],[1,.579,0],[1,.6022,0],[1,.6254,0],[1,.6485,0],[1,.6717,0],[1,.6949,0],[1,.718,0],[1,.7412,0],[1,.7643,0],[1,.7875,0],[1,.8107,0],[1,.8338,0],[1,.857,0],[1,.8801,0],[1,.9033,0],[1,.9265,0],[.996,.9456,0],[.9882,.961,0],[.9805,.9765,0],[.9728,.9919,0],[.9577,1,0],[.9346,1,0],[.9114,1,0],[.8882,1,0],[.8651,1,0],[.8419,1,0],[.8187,1,0],[.7956,1,0],[.7724,1,0],[.7493,1,0],[.7261,1,0],[.7029,1,0],[.6798,1,0],[.6566,1,0],[.6335,1,0],[.6103,1,0],[.5871,1,0],[.564,1,0],[.5408,1,0],[.5176,1,0],[.4945,1,0],[.4713,1,0],[.4482,1,0],[.425,1,0],[.4018,1,0],[.3787,1,0],[.3555,1,0],[.3324,1,0],[.3092,1,0],[.286,1,0],[.2629,1,0],[.2397,1,0],[.2165,1,0],[.1934,1,0],[.1702,1,0],[.1471,1,0],[.1239,1,0],[.1007,1,0],[.0776,1,0],[.0544,1,0],[.0312,1,0],[.0235,1,.0154],[.0158,1,.0309],[.0081,1,.0463],[4e-4,1,.0618],[0,1,.0846],[0,1,.1077],[0,1,.1309],[0,1,.154],[0,1,.1772],[0,1,.2004],[0,1,.2235],[0,1,.2467],[0,1,.2699],[0,1,.293],[0,1,.3162],[0,1,.3393],[0,1,.3625],[0,1,.3857],[0,1,.4088],[0,1,.432],[0,1,.4551],[0,1,.4783],[0,1,.5015],[0,1,.5246],[0,1,.5478],[0,1,.571],[0,1,.5941],[0,1,.6173],[0,1,.6404],[0,1,.6636],[0,1,.6868],[0,1,.7099],[0,1,.7331],[0,1,.7562],[0,1,.7794],[0,1,.8026],[0,1,.8257],[0,1,.8489],[0,1,.8721],[0,1,.8952],[0,1,.9184],[0,1,.9415],[0,1,.9647],[0,1,.9879],[0,.989,1],[0,.9658,1],[0,.9426,1],[0,.9195,1],[0,.8963,1],[0,.8732,1],[0,.85,1],[0,.8268,1],[0,.8037,1],[0,.7805,1],[0,.7574,1],[0,.7342,1],[0,.711,1],[0,.6879,1],[0,.6647,1],[0,.6415,1],[0,.6184,1],[0,.5952,1],[0,.5721,1],[0,.5489,1],[0,.5257,1],[0,.5026,1],[0,.4794,1],[0,.4563,1],[0,.4331,1],[0,.4099,1],[0,.3868,1],[0,.3636,1],[0,.3404,1],[0,.3173,1],[0,.2941,1],[0,.271,1],[0,.2478,1],[0,.2246,1],[0,.2015,1],[0,.1783,1],[0,.1551,1],[0,.132,1],[0,.1088,1],[0,.0857,1],[0,.0625,1],[.0077,.0471,1],[.0154,.0316,1],[.0232,.0162,1],[.0309,7e-4,1],[.0533,0,1],[.0765,0,1],[.0996,0,1],[.1228,0,1],[.146,0,1],[.1691,0,1],[.1923,0,1],[.2154,0,1],[.2386,0,1],[.2618,0,1],[.2849,0,1],[.3081,0,1],[.3312,0,1],[.3544,0,1],[.3776,0,1],[.4007,0,1],[.4239,0,1],[.4471,0,1],[.4702,0,1],[.4934,0,1],[.5165,0,1],[.5397,0,1],[.5629,0,1],[.586,0,1],[.6092,0,1],[.6324,0,1],[.6555,0,1],[.6787,0,1],[.7018,0,1],[.725,0,1],[.7482,0,1],[.7713,0,1],[.7945,0,1],[.8176,0,1],[.8408,0,1],[.864,0,1],[.8871,0,1],[.9103,0,1],[.9335,0,1],[.9566,0,1],[.9724,0,.9926],[.9801,0,.9772],[.9879,0,.9618],[.9956,0,.9463],[1,0,.9276],[1,0,.9044],[1,0,.8813],[1,0,.8581],[1,0,.8349],[1,0,.8118],[1,0,.7886],[1,0,.7654],[1,0,.7423],[1,0,.7191],[1,0,.696],[1,0,.6728],[1,0,.6496],[1,0,.6265],[1,0,.6033],[1,0,.5801],[1,0,.557],[1,0,.5338],[1,0,.5107],[1,0,.4875],[1,0,.4643],[1,0,.4412],[1,0,.418],[1,0,.3949],[1,0,.3717],[1,0,.3485],[1,0,.3254],[1,0,.3022],[1,0,.279],[1,0,.2559],[1,0,.2327],[1,0,.2096],[1,0,.1864],[1,0,.1632],[1,0,.1401],[1,0,.1169],[1,0,.0938]]};ce.inferno={interpolate:!0,colors:[[.0015,5e-4,.0139],[.0023,.0013,.0186],[.0033,.0022,.0242],[.0045,.0034,.0309],[.006,.0047,.0386],[.0077,.0061,.0468],[.0096,.0077,.0551],[.0117,.0094,.0635],[.014,.0112,.0719],[.0166,.0131,.0803],[.0194,.0151,.0888],[.0224,.0172,.0973],[.0258,.0193,.1059],[.0294,.0215,.1146],[.0334,.0237,.1234],[.0377,.0259,.1322],[.0423,.0281,.1411],[.0469,.0303,.1502],[.0516,.0325,.1593],[.0564,.0346,.1684],[.0613,.0366,.1776],[.0663,.0385,.187],[.0714,.0403,.1964],[.0766,.0419,.2058],[.082,.0433,.2153],[.0874,.0446,.2248],[.093,.0456,.2344],[.0987,.0464,.2439],[.1046,.047,.2534],[.1105,.0474,.2629],[.1167,.0476,.2723],[.1229,.0475,.2816],[.1293,.0473,.2908],[.1358,.0469,.2998],[.1424,.0462,.3086],[.1491,.0455,.3171],[.1558,.0446,.3253],[.1627,.0436,.3333],[.1696,.0425,.3409],[.1765,.0414,.3481],[.1834,.0403,.355],[.1904,.0393,.3614],[.1973,.0384,.3675],[.2042,.0376,.3732],[.2111,.037,.3786],[.2179,.0366,.3835],[.2248,.0364,.3881],[.2315,.0364,.3924],[.2383,.0366,.3964],[.245,.0371,.4],[.2516,.0377,.4034],[.2582,.0386,.4065],[.2648,.0396,.4093],[.2713,.0409,.412],[.2778,.0424,.4144],[.2843,.0439,.4166],[.2908,.0456,.4186],[.2972,.0475,.4205],[.3036,.0494,.4222],[.3099,.0514,.4237],[.3163,.0535,.4251],[.3226,.0556,.4264],[.3289,.0578,.4275],[.3352,.0601,.4285],[.3415,.0623,.4294],[.3478,.0646,.4302],[.354,.0669,.4309],[.3603,.0692,.4315],[.3665,.0716,.432],[.3728,.0739,.4324],[.379,.0763,.4327],[.3852,.0786,.433],[.3915,.0809,.4331],[.3977,.0833,.4332],[.4039,.0856,.4332],[.4101,.0879,.4331],[.4163,.0902,.4329],[.4225,.0925,.4327],[.4288,.0948,.4324],[.435,.0971,.432],[.4412,.0993,.4316],[.4474,.1016,.4311],[.4537,.1038,.4305],[.4599,.1061,.4298],[.4661,.1083,.4291],[.4723,.1105,.4283],[.4786,.1128,.4275],[.4848,.115,.4265],[.491,.1172,.4256],[.4973,.1194,.4245],[.5035,.1216,.4234],[.5097,.1238,.4222],[.516,.126,.4209],[.5222,.1281,.4195],[.5284,.1303,.4181],[.5347,.1325,.4167],[.5409,.1347,.4151],[.5472,.1369,.4135],[.5534,.1391,.4118],[.5596,.1413,.4101],[.5659,.1436,.4083],[.5721,.1458,.4064],[.5783,.148,.4044],[.5845,.1503,.4024],[.5907,.1526,.4003],[.5969,.1548,.3981],[.6031,.1572,.3959],[.6093,.1595,.3936],[.6155,.1618,.3912],[.6217,.1642,.3888],[.6278,.1666,.3863],[.634,.169,.3837],[.6401,.1714,.3811],[.6463,.1739,.3784],[.6524,.1764,.3756],[.6585,.179,.3727],[.6645,.1815,.3698],[.6706,.1842,.3669],[.6766,.1868,.3638],[.6827,.1895,.3608],[.6887,.1922,.3576],[.6946,.195,.3544],[.7006,.1979,.3511],[.7065,.2007,.3478],[.7124,.2037,.3444],[.7183,.2066,.3409],[.7241,.2097,.3374],[.7299,.2128,.3339],[.7357,.2159,.3302],[.7414,.2191,.3266],[.7471,.2224,.3229],[.7528,.2257,.3191],[.7584,.2291,.3153],[.764,.2326,.3114],[.7696,.2361,.3075],[.7751,.2397,.3035],[.7805,.2433,.2995],[.7859,.2471,.2955],[.7913,.2509,.2914],[.7966,.2547,.2873],[.8019,.2587,.2831],[.8071,.2627,.2789],[.8122,.2668,.2747],[.8173,.271,.2704],[.8224,.2752,.2661],[.8274,.2795,.2618],[.8323,.2839,.2574],[.8372,.2884,.253],[.842,.2929,.2486],[.8467,.2976,.2441],[.8514,.3023,.2396],[.856,.307,.2351],[.8605,.3119,.2306],[.865,.3168,.2261],[.8694,.3218,.2215],[.8737,.3269,.2169],[.878,.3321,.2123],[.8822,.3373,.2076],[.8863,.3426,.203],[.8903,.348,.1983],[.8943,.3534,.1936],[.8982,.3589,.1889],[.902,.3645,.1841],[.9057,.3701,.1794],[.9094,.3759,.1746],[.913,.3816,.1698],[.9165,.3875,.1649],[.9199,.3934,.1601],[.9232,.3994,.1552],[.9265,.4054,.1503],[.9296,.4115,.1454],[.9327,.4176,.1404],[.9357,.4238,.1354],[.9387,.4301,.1304],[.9415,.4364,.1254],[.9443,.4428,.1204],[.947,.4492,.1153],[.9496,.4557,.1102],[.9521,.4622,.105],[.9545,.4687,.0999],[.9569,.4754,.0947],[.9591,.482,.0895],[.9613,.4887,.0843],[.9634,.4955,.0791],[.9654,.5022,.0739],[.9673,.5091,.0687],[.9692,.5159,.0635],[.9709,.5229,.0584],[.9726,.5298,.0533],[.9742,.5368,.0484],[.9757,.5438,.0436],[.9771,.5508,.039],[.9784,.5579,.0349],[.9797,.5651,.0314],[.9808,.5722,.0285],[.9819,.5794,.0262],[.9829,.5866,.0247],[.9838,.5938,.0238],[.9846,.6011,.0236],[.9853,.6084,.0242],[.986,.6158,.0256],[.9865,.6231,.0278],[.987,.6305,.0309],[.9873,.6379,.0349],[.9876,.6453,.0399],[.9878,.6528,.0456],[.9879,.6602,.0518],[.9879,.6677,.0583],[.9879,.6753,.0653],[.9877,.6828,.0725],[.9875,.6904,.08],[.9871,.6979,.0877],[.9867,.7055,.0957],[.9862,.7132,.1039],[.9856,.7208,.1122],[.9849,.7284,.1208],[.9841,.7361,.1295],[.9832,.7438,.1385],[.9822,.7514,.1476],[.9812,.7591,.1569],[.98,.7668,.1664],[.9788,.7745,.176],[.9775,.7823,.1859],[.9761,.79,.196],[.9746,.7977,.2063],[.9731,.8054,.2169],[.9715,.8131,.2277],[.9698,.8208,.2387],[.968,.8285,.25],[.9662,.8362,.2615],[.9644,.8438,.2734],[.9625,.8515,.2855],[.9606,.8591,.298],[.9587,.8666,.3108],[.9568,.8741,.324],[.955,.8816,.3375],[.9532,.8889,.3514],[.9515,.8962,.3656],[.95,.9034,.3803],[.9487,.9105,.3953],[.9476,.9174,.4107],[.9468,.9242,.4264],[.9464,.9308,.4424],[.9464,.9372,.4586],[.9469,.9433,.475],[.9479,.9493,.4914],[.9495,.9551,.5079],[.9517,.9606,.5242],[.9545,.9659,.5404],[.9579,.971,.5563],[.9618,.9759,.5719],[.9662,.9807,.5872],[.9712,.9853,.6022],[.9765,.9898,.6168],[.9823,.9941,.631],[.9884,.9984,.6449]]};ce.jet={interpolate:!0,colors:[[0,0,.5],[0,0,.5178],[0,0,.5357],[0,0,.5535],[0,0,.5713],[0,0,.5891],[0,0,.607],[0,0,.6248],[0,0,.6426],[0,0,.6604],[0,0,.6783],[0,0,.6961],[0,0,.7139],[0,0,.7317],[0,0,.7496],[0,0,.7674],[0,0,.7852],[0,0,.803],[0,0,.8209],[0,0,.8387],[0,0,.8565],[0,0,.8743],[0,0,.8922],[0,0,.91],[0,0,.9278],[0,0,.9456],[0,0,.9635],[0,0,.9813],[0,0,.9991],[0,0,1],[0,0,1],[0,0,1],[0,.002,1],[0,.0176,1],[0,.0333,1],[0,.049,1],[0,.0647,1],[0,.0804,1],[0,.0961,1],[0,.1118,1],[0,.1275,1],[0,.1431,1],[0,.1588,1],[0,.1745,1],[0,.1902,1],[0,.2059,1],[0,.2216,1],[0,.2373,1],[0,.2529,1],[0,.2686,1],[0,.2843,1],[0,.3,1],[0,.3157,1],[0,.3314,1],[0,.3471,1],[0,.3627,1],[0,.3784,1],[0,.3941,1],[0,.4098,1],[0,.4255,1],[0,.4412,1],[0,.4569,1],[0,.4725,1],[0,.4882,1],[0,.5039,1],[0,.5196,1],[0,.5353,1],[0,.551,1],[0,.5667,1],[0,.5824,1],[0,.598,1],[0,.6137,1],[0,.6294,1],[0,.6451,1],[0,.6608,1],[0,.6765,1],[0,.6922,1],[0,.7078,1],[0,.7235,1],[0,.7392,1],[0,.7549,1],[0,.7706,1],[0,.7863,1],[0,.802,1],[0,.8176,1],[0,.8333,1],[0,.849,1],[0,.8647,.9962],[0,.8804,.9836],[0,.8961,.9709],[.0095,.9118,.9583],[.0221,.9275,.9456],[.0348,.9431,.933],[.0474,.9588,.9203],[.0601,.9745,.9077],[.0727,.9902,.895],[.0854,1,.8824],[.098,1,.8697],[.1107,1,.8571],[.1233,1,.8444],[.136,1,.8318],[.1486,1,.8191],[.1613,1,.8065],[.1739,1,.7938],[.1866,1,.7812],[.1992,1,.7685],[.2119,1,.7559],[.2245,1,.7432],[.2372,1,.7306],[.2498,1,.7179],[.2625,1,.7052],[.2751,1,.6926],[.2878,1,.6799],[.3004,1,.6673],[.3131,1,.6546],[.3257,1,.642],[.3384,1,.6293],[.351,1,.6167],[.3637,1,.604],[.3763,1,.5914],[.389,1,.5787],[.4016,1,.5661],[.4143,1,.5534],[.4269,1,.5408],[.4396,1,.5281],[.4522,1,.5155],[.4649,1,.5028],[.4775,1,.4902],[.4902,1,.4775],[.5028,1,.4649],[.5155,1,.4522],[.5281,1,.4396],[.5408,1,.4269],[.5534,1,.4143],[.5661,1,.4016],[.5787,1,.389],[.5914,1,.3763],[.604,1,.3637],[.6167,1,.351],[.6293,1,.3384],[.642,1,.3257],[.6546,1,.3131],[.6673,1,.3004],[.6799,1,.2878],[.6926,1,.2751],[.7052,1,.2625],[.7179,1,.2498],[.7306,1,.2372],[.7432,1,.2245],[.7559,1,.2119],[.7685,1,.1992],[.7812,1,.1866],[.7938,1,.1739],[.8065,1,.1613],[.8191,1,.1486],[.8318,1,.136],[.8444,1,.1233],[.8571,1,.1107],[.8697,1,.098],[.8824,1,.0854],[.895,1,.0727],[.9077,1,.0601],[.9203,1,.0474],[.933,1,.0348],[.9456,.9884,.0221],[.9583,.9739,.0095],[.9709,.9593,0],[.9836,.9448,0],[.9962,.9303,0],[1,.9158,0],[1,.9012,0],[1,.8867,0],[1,.8722,0],[1,.8577,0],[1,.8431,0],[1,.8286,0],[1,.8141,0],[1,.7996,0],[1,.785,0],[1,.7705,0],[1,.756,0],[1,.7415,0],[1,.7269,0],[1,.7124,0],[1,.6979,0],[1,.6834,0],[1,.6688,0],[1,.6543,0],[1,.6398,0],[1,.6253,0],[1,.6107,0],[1,.5962,0],[1,.5817,0],[1,.5672,0],[1,.5527,0],[1,.5381,0],[1,.5236,0],[1,.5091,0],[1,.4946,0],[1,.48,0],[1,.4655,0],[1,.451,0],[1,.4365,0],[1,.4219,0],[1,.4074,0],[1,.3929,0],[1,.3784,0],[1,.3638,0],[1,.3493,0],[1,.3348,0],[1,.3203,0],[1,.3057,0],[1,.2912,0],[1,.2767,0],[1,.2622,0],[1,.2476,0],[1,.2331,0],[1,.2186,0],[1,.2041,0],[1,.1895,0],[1,.175,0],[1,.1605,0],[1,.146,0],[1,.1314,0],[1,.1169,0],[1,.1024,0],[1,.0879,0],[.9991,.0733,0],[.9813,.0588,0],[.9635,.0443,0],[.9456,.0298,0],[.9278,.0153,0],[.91,7e-4,0],[.8922,0,0],[.8743,0,0],[.8565,0,0],[.8387,0,0],[.8209,0,0],[.803,0,0],[.7852,0,0],[.7674,0,0],[.7496,0,0],[.7317,0,0],[.7139,0,0],[.6961,0,0],[.6783,0,0],[.6604,0,0],[.6426,0,0],[.6248,0,0],[.607,0,0],[.5891,0,0],[.5713,0,0],[.5535,0,0],[.5357,0,0],[.5178,0,0],[.5,0,0]]};ce.magma={interpolate:!0,colors:[[.0015,5e-4,.0139],[.0023,.0013,.0183],[.0033,.0023,.0237],[.0045,.0035,.03],[.006,.0048,.0371],[.0076,.0064,.045],[.0094,.008,.0528],[.0115,.0098,.0608],[.0137,.0118,.0687],[.0162,.0138,.0766],[.0188,.016,.0846],[.0217,.0183,.0926],[.0248,.0207,.1007],[.0281,.0232,.1088],[.0317,.0258,.117],[.0355,.0284,.1252],[.0396,.0311,.1335],[.0438,.0338,.1419],[.0481,.0366,.1503],[.0523,.0394,.1588],[.0566,.0422,.1674],[.0609,.0448,.1761],[.0653,.0473,.1849],[.0698,.0497,.1937],[.0743,.052,.2027],[.0788,.0542,.2117],[.0834,.0562,.2208],[.0882,.0581,.2299],[.0929,.0599,.2392],[.0978,.0615,.2485],[.1028,.063,.2579],[.1079,.0643,.2673],[.1131,.0655,.2768],[.1184,.0665,.2863],[.1238,.0673,.2959],[.1294,.0679,.3054],[.1351,.0684,.315],[.1409,.0687,.3245],[.1468,.0687,.334],[.1528,.0686,.3434],[.159,.0684,.3527],[.1653,.0679,.3618],[.1717,.0673,.3708],[.1782,.0666,.3795],[.1848,.0657,.388],[.1915,.0648,.3962],[.1982,.0639,.404],[.2049,.0629,.4115],[.2117,.062,.4186],[.2185,.0612,.4254],[.2253,.0604,.4317],[.2321,.0599,.4377],[.2388,.0595,.4433],[.2455,.0594,.4484],[.2522,.0594,.4532],[.2589,.0597,.4577],[.2654,.0602,.4618],[.272,.061,.4657],[.2785,.062,.4692],[.285,.0632,.4725],[.2914,.0646,.4755],[.2977,.0661,.4782],[.3041,.0678,.4808],[.3104,.0697,.4832],[.3167,.0717,.4854],[.3229,.0738,.4874],[.3291,.076,.4893],[.3353,.0782,.491],[.3415,.0806,.4926],[.3476,.0829,.4941],[.3538,.0854,.4955],[.3599,.0878,.4968],[.366,.0903,.498],[.3721,.0928,.4991],[.3782,.0953,.5001],[.3843,.0979,.501],[.3904,.1004,.5019],[.3965,.1029,.5027],[.4025,.1054,.5034],[.4086,.1079,.5041],[.4147,.1104,.5047],[.4208,.1129,.5052],[.4269,.1154,.5057],[.433,.1179,.5062],[.4391,.1203,.5066],[.4452,.1227,.5069],[.4513,.1251,.5072],[.4574,.1275,.5074],[.4635,.1299,.5077],[.4696,.1322,.5078],[.4758,.1346,.5079],[.4819,.1369,.508],[.4881,.1392,.508],[.4943,.1415,.508],[.5004,.1437,.5079],[.5066,.146,.5078],[.5128,.1482,.5076],[.519,.1504,.5074],[.5253,.1526,.5072],[.5315,.1547,.5069],[.5378,.1569,.5066],[.544,.159,.5062],[.5503,.1612,.5057],[.5566,.1633,.5052],[.5629,.1654,.5047],[.5692,.1675,.5041],[.5755,.1695,.5035],[.5818,.1716,.5028],[.5882,.1737,.502],[.5945,.1757,.5012],[.6009,.1777,.5004],[.6072,.1798,.4995],[.6136,.1818,.4985],[.62,.1838,.4975],[.6264,.1859,.4965],[.6328,.1879,.4953],[.6392,.1899,.4942],[.6456,.192,.4929],[.6521,.194,.4916],[.6585,.196,.4903],[.6649,.1981,.4888],[.6713,.2001,.4874],[.6778,.2022,.4858],[.6842,.2043,.4842],[.6907,.2064,.4826],[.6971,.2085,.4808],[.7035,.2106,.479],[.71,.2128,.4772],[.7164,.215,.4753],[.7228,.2172,.4733],[.7292,.2194,.4713],[.7356,.2217,.4692],[.742,.224,.467],[.7484,.2264,.4648],[.7547,.2288,.4625],[.7611,.2312,.4602],[.7674,.2337,.4578],[.7737,.2362,.4553],[.78,.2389,.4528],[.7862,.2415,.4502],[.7924,.2442,.4475],[.7986,.247,.4448],[.8048,.2499,.4421],[.8109,.2529,.4393],[.8169,.2559,.4365],[.8229,.259,.4336],[.8289,.2622,.4306],[.8348,.2655,.4277],[.8406,.269,.4247],[.8464,.2725,.4216],[.8521,.2761,.4186],[.8578,.2799,.4155],[.8633,.2837,.4124],[.8688,.2877,.4093],[.8742,.2919,.4062],[.8795,.2961,.4031],[.8847,.3005,.4],[.8897,.3051,.397],[.8947,.3098,.394],[.8996,.3146,.391],[.9043,.3196,.3881],[.9089,.3248,.3853],[.9134,.3301,.3826],[.9177,.3355,.3799],[.9219,.3411,.3774],[.9259,.3468,.375],[.9298,.3527,.3727],[.9336,.3588,.3705],[.9372,.3649,.3686],[.9407,.3712,.3668],[.944,.3776,.3651],[.9472,.3842,.3637],[.9502,.3908,.3625],[.9531,.3976,.3614],[.9558,.4044,.3606],[.9585,.4113,.36],[.9609,.4183,.3596],[.9633,.4254,.3595],[.9655,.4325,.3595],[.9677,.4397,.3598],[.9697,.4469,.3603],[.9716,.4542,.361],[.9734,.4615,.362],[.9751,.4689,.3631],[.9767,.4762,.3645],[.9782,.4836,.366],[.9796,.491,.3678],[.981,.4984,.3697],[.9823,.5059,.3719],[.9835,.5133,.3742],[.9846,.5207,.3767],[.9857,.5281,.3794],[.9867,.5356,.3822],[.9876,.543,.3852],[.9885,.5504,.3884],[.9894,.5579,.3917],[.9901,.5653,.3951],[.9909,.5727,.3987],[.9916,.5801,.4024],[.9922,.5875,.4063],[.9928,.5949,.4103],[.9933,.6023,.4144],[.9938,.6096,.4186],[.9943,.617,.423],[.9947,.6244,.4274],[.9951,.6317,.432],[.9955,.639,.4366],[.9958,.6463,.4414],[.9961,.6537,.4462],[.9963,.661,.4512],[.9966,.6683,.4562],[.9968,.6755,.4613],[.9969,.6828,.4665],[.9971,.6901,.4718],[.9972,.6973,.4772],[.9973,.7046,.4826],[.9973,.7118,.4882],[.9974,.7191,.4938],[.9974,.7263,.4994],[.9973,.7335,.5052],[.9973,.7408,.511],[.9972,.748,.5169],[.9971,.7552,.5228],[.997,.7624,.5288],[.9969,.7696,.5349],[.9967,.7768,.541],[.9966,.784,.5472],[.9964,.7912,.5535],[.9962,.7983,.5598],[.9959,.8055,.5662],[.9957,.8127,.5726],[.9954,.8199,.5791],[.9951,.8271,.5857],[.9949,.8342,.5923],[.9945,.8414,.599],[.9942,.8485,.6057],[.9939,.8557,.6125],[.9935,.8629,.6193],[.9932,.87,.6262],[.9928,.8772,.6331],[.9924,.8843,.6401],[.9921,.8915,.6471],[.9917,.8986,.6542],[.9913,.9058,.6613],[.9909,.9129,.6685],[.9906,.92,.6757],[.9902,.9272,.6829],[.9898,.9343,.6902],[.9894,.9415,.6975],[.9891,.9486,.7049],[.9887,.9557,.7122],[.9884,.9629,.7196],[.988,.97,.7271],[.9877,.9772,.7345],[.9874,.9843,.742],[.9871,.9914,.7495]]};ce.nipy_spectral={interpolate:!0,colors:[[0,0,0],[.0366,0,.0418],[.0732,0,.0837],[.1098,0,.1255],[.1464,0,.1673],[.183,0,.2091],[.2196,0,.251],[.2562,0,.2928],[.2928,0,.3346],[.3294,0,.3764],[.366,0,.4183],[.4026,0,.4601],[.4392,0,.5019],[.468,0,.5346],[.4732,0,.5398],[.4785,0,.5451],[.4837,0,.5503],[.4889,0,.5555],[.4941,0,.5608],[.4993,0,.566],[.5046,0,.5712],[.5098,0,.5765],[.515,0,.5817],[.5202,0,.5869],[.5255,0,.5922],[.5307,0,.5974],[.5124,0,.6026],[.4706,0,.6078],[.4287,0,.6131],[.3869,0,.6183],[.3451,0,.6235],[.3032,0,.6288],[.2614,0,.634],[.2196,0,.6392],[.1778,0,.6445],[.1359,0,.6497],[.0941,0,.6549],[.0523,0,.6602],[.0105,0,.6654],[0,0,.6785],[0,0,.6942],[0,0,.7098],[0,0,.7255],[0,0,.7412],[0,0,.7569],[0,0,.7726],[0,0,.7883],[0,0,.804],[0,0,.8196],[0,0,.8353],[0,0,.851],[0,0,.8667],[0,.0366,.8667],[0,.0732,.8667],[0,.1098,.8667],[0,.1464,.8667],[0,.183,.8667],[0,.2196,.8667],[0,.2562,.8667],[0,.2928,.8667],[0,.3294,.8667],[0,.366,.8667],[0,.4026,.8667],[0,.4392,.8667],[0,.4693,.8667],[0,.4798,.8667],[0,.4902,.8667],[0,.5007,.8667],[0,.5111,.8667],[0,.5216,.8667],[0,.532,.8667],[0,.5425,.8667],[0,.553,.8667],[0,.5634,.8667],[0,.5739,.8667],[0,.5843,.8667],[0,.5948,.8667],[0,.6026,.8589],[0,.6078,.8432],[0,.6131,.8275],[0,.6183,.8118],[0,.6235,.7961],[0,.6288,.7804],[0,.634,.7647],[0,.6392,.7491],[0,.6445,.7334],[0,.6497,.7177],[0,.6549,.702],[0,.6602,.6863],[0,.6654,.6706],[0,.6667,.6589],[0,.6667,.6484],[0,.6667,.6379],[0,.6667,.6275],[0,.6667,.617],[0,.6667,.6065],[0,.6667,.5961],[0,.6667,.5856],[0,.6667,.5752],[0,.6667,.5647],[0,.6667,.5542],[0,.6667,.5438],[0,.6667,.5333],[0,.6615,.4915],[0,.6562,.4496],[0,.651,.4078],[0,.6458,.366],[0,.6405,.3242],[0,.6353,.2823],[0,.6301,.2405],[0,.6248,.1987],[0,.6196,.1569],[0,.6144,.115],[0,.6092,.0732],[0,.6039,.0314],[0,.6026,0],[0,.6131,0],[0,.6235,0],[0,.634,0],[0,.6444,0],[0,.6549,0],[0,.6653,0],[0,.6758,0],[0,.6863,0],[0,.6967,0],[0,.7072,0],[0,.7176,0],[0,.7281,0],[0,.7385,0],[0,.749,0],[0,.7595,0],[0,.7699,0],[0,.7804,0],[0,.7908,0],[0,.8013,0],[0,.8118,0],[0,.8222,0],[0,.8327,0],[0,.8432,0],[0,.8536,0],[0,.8641,0],[0,.8745,0],[0,.885,0],[0,.8955,0],[0,.9059,0],[0,.9164,0],[0,.9268,0],[0,.9373,0],[0,.9477,0],[0,.9582,0],[0,.9686,0],[0,.9791,0],[0,.9895,0],[0,1,0],[.0575,1,0],[.115,1,0],[.1725,1,0],[.2301,1,0],[.2876,1,0],[.3451,1,0],[.4026,1,0],[.4601,1,0],[.5176,1,0],[.5751,1,0],[.6327,1,0],[.6902,1,0],[.7372,.9987,0],[.7529,.9935,0],[.7686,.9882,0],[.7843,.983,0],[.8,.9778,0],[.8157,.9725,0],[.8313,.9673,0],[.847,.9621,0],[.8627,.9568,0],[.8784,.9516,0],[.8941,.9464,0],[.9098,.9411,0],[.9255,.9359,0],[.9359,.9281,0],[.9411,.9176,0],[.9464,.9072,0],[.9516,.8967,0],[.9568,.8863,0],[.9621,.8758,0],[.9673,.8653,0],[.9725,.8549,0],[.9778,.8444,0],[.983,.834,0],[.9882,.8235,0],[.9935,.8131,0],[.9987,.8026,0],[1,.7882,0],[1,.7725,0],[1,.7569,0],[1,.7412,0],[1,.7255,0],[1,.7098,0],[1,.6941,0],[1,.6784,0],[1,.6627,0],[1,.6471,0],[1,.6314,0],[1,.6157,0],[1,.6,0],[1,.5529,0],[1,.5059,0],[1,.4588,0],[1,.4118,0],[1,.3647,0],[1,.3176,0],[1,.2706,0],[1,.2235,0],[1,.1765,0],[1,.1294,0],[1,.0824,0],[1,.0353,0],[.9974,0,0],[.9869,0,0],[.9765,0,0],[.966,0,0],[.9556,0,0],[.9451,0,0],[.9347,0,0],[.9242,0,0],[.9137,0,0],[.9033,0,0],[.8928,0,0],[.8824,0,0],[.8719,0,0],[.8641,0,0],[.8589,0,0],[.8536,0,0],[.8484,0,0],[.8432,0,0],[.8379,0,0],[.8327,0,0],[.8275,0,0],[.8222,0,0],[.817,0,0],[.8118,0,0],[.8065,0,0],[.8013,0,0],[.8,.0471,.0471],[.8,.1098,.1098],[.8,.1725,.1725],[.8,.2353,.2353],[.8,.298,.298],[.8,.3608,.3608],[.8,.4235,.4235],[.8,.4863,.4863],[.8,.549,.549],[.8,.6118,.6118],[.8,.6745,.6745],[.8,.7373,.7373],[.8,.8,.8]]};ce.ocean={interpolate:!0,colors:[[0,.5,0],[0,.4941,.0039],[0,.4882,.0078],[0,.4824,.0118],[0,.4765,.0157],[0,.4706,.0196],[0,.4647,.0235],[0,.4588,.0275],[0,.4529,.0314],[0,.4471,.0353],[0,.4412,.0392],[0,.4353,.0431],[0,.4294,.0471],[0,.4235,.051],[0,.4176,.0549],[0,.4118,.0588],[0,.4059,.0627],[0,.4,.0667],[0,.3941,.0706],[0,.3882,.0745],[0,.3824,.0784],[0,.3765,.0824],[0,.3706,.0863],[0,.3647,.0902],[0,.3588,.0941],[0,.3529,.098],[0,.3471,.102],[0,.3412,.1059],[0,.3353,.1098],[0,.3294,.1137],[0,.3235,.1176],[0,.3176,.1216],[0,.3118,.1255],[0,.3059,.1294],[0,.3,.1333],[0,.2941,.1373],[0,.2882,.1412],[0,.2824,.1451],[0,.2765,.149],[0,.2706,.1529],[0,.2647,.1569],[0,.2588,.1608],[0,.2529,.1647],[0,.2471,.1686],[0,.2412,.1725],[0,.2353,.1765],[0,.2294,.1804],[0,.2235,.1843],[0,.2176,.1882],[0,.2118,.1922],[0,.2059,.1961],[0,.2,.2],[0,.1941,.2039],[0,.1882,.2078],[0,.1824,.2118],[0,.1765,.2157],[0,.1706,.2196],[0,.1647,.2235],[0,.1588,.2275],[0,.1529,.2314],[0,.1471,.2353],[0,.1412,.2392],[0,.1353,.2431],[0,.1294,.2471],[0,.1235,.251],[0,.1176,.2549],[0,.1118,.2588],[0,.1059,.2627],[0,.1,.2667],[0,.0941,.2706],[0,.0882,.2745],[0,.0824,.2784],[0,.0765,.2824],[0,.0706,.2863],[0,.0647,.2902],[0,.0588,.2941],[0,.0529,.298],[0,.0471,.302],[0,.0412,.3059],[0,.0353,.3098],[0,.0294,.3137],[0,.0235,.3176],[0,.0176,.3216],[0,.0118,.3255],[0,.0059,.3294],[0,0,.3333],[0,.0059,.3373],[0,.0118,.3412],[0,.0176,.3451],[0,.0235,.349],[0,.0294,.3529],[0,.0353,.3569],[0,.0412,.3608],[0,.0471,.3647],[0,.0529,.3686],[0,.0588,.3725],[0,.0647,.3765],[0,.0706,.3804],[0,.0765,.3843],[0,.0824,.3882],[0,.0882,.3922],[0,.0941,.3961],[0,.1,.4],[0,.1059,.4039],[0,.1118,.4078],[0,.1176,.4118],[0,.1235,.4157],[0,.1294,.4196],[0,.1353,.4235],[0,.1412,.4275],[0,.1471,.4314],[0,.1529,.4353],[0,.1588,.4392],[0,.1647,.4431],[0,.1706,.4471],[0,.1765,.451],[0,.1824,.4549],[0,.1882,.4588],[0,.1941,.4627],[0,.2,.4667],[0,.2059,.4706],[0,.2118,.4745],[0,.2176,.4784],[0,.2235,.4824],[0,.2294,.4863],[0,.2353,.4902],[0,.2412,.4941],[0,.2471,.498],[0,.2529,.502],[0,.2588,.5059],[0,.2647,.5098],[0,.2706,.5137],[0,.2765,.5176],[0,.2824,.5216],[0,.2882,.5255],[0,.2941,.5294],[0,.3,.5333],[0,.3059,.5373],[0,.3118,.5412],[0,.3176,.5451],[0,.3235,.549],[0,.3294,.5529],[0,.3353,.5569],[0,.3412,.5608],[0,.3471,.5647],[0,.3529,.5686],[0,.3588,.5725],[0,.3647,.5765],[0,.3706,.5804],[0,.3765,.5843],[0,.3824,.5882],[0,.3882,.5922],[0,.3941,.5961],[0,.4,.6],[0,.4059,.6039],[0,.4118,.6078],[0,.4176,.6118],[0,.4235,.6157],[0,.4294,.6196],[0,.4353,.6235],[0,.4412,.6275],[0,.4471,.6314],[0,.4529,.6353],[0,.4588,.6392],[0,.4647,.6431],[0,.4706,.6471],[0,.4765,.651],[0,.4824,.6549],[0,.4882,.6588],[0,.4941,.6627],[0,.5,.6667],[.0118,.5059,.6706],[.0235,.5118,.6745],[.0353,.5176,.6784],[.0471,.5235,.6824],[.0588,.5294,.6863],[.0706,.5353,.6902],[.0824,.5412,.6941],[.0941,.5471,.698],[.1059,.5529,.702],[.1176,.5588,.7059],[.1294,.5647,.7098],[.1412,.5706,.7137],[.1529,.5765,.7176],[.1647,.5824,.7216],[.1765,.5882,.7255],[.1882,.5941,.7294],[.2,.6,.7333],[.2118,.6059,.7373],[.2235,.6118,.7412],[.2353,.6176,.7451],[.2471,.6235,.749],[.2588,.6294,.7529],[.2706,.6353,.7569],[.2824,.6412,.7608],[.2941,.6471,.7647],[.3059,.6529,.7686],[.3176,.6588,.7725],[.3294,.6647,.7765],[.3412,.6706,.7804],[.3529,.6765,.7843],[.3647,.6824,.7882],[.3765,.6882,.7922],[.3882,.6941,.7961],[.4,.7,.8],[.4118,.7059,.8039],[.4235,.7118,.8078],[.4353,.7176,.8118],[.4471,.7235,.8157],[.4588,.7294,.8196],[.4706,.7353,.8235],[.4824,.7412,.8275],[.4941,.7471,.8314],[.5059,.7529,.8353],[.5176,.7588,.8392],[.5294,.7647,.8431],[.5412,.7706,.8471],[.5529,.7765,.851],[.5647,.7824,.8549],[.5765,.7882,.8588],[.5882,.7941,.8627],[.6,.8,.8667],[.6118,.8059,.8706],[.6235,.8118,.8745],[.6353,.8176,.8784],[.6471,.8235,.8824],[.6588,.8294,.8863],[.6706,.8353,.8902],[.6824,.8412,.8941],[.6941,.8471,.898],[.7059,.8529,.902],[.7176,.8588,.9059],[.7294,.8647,.9098],[.7412,.8706,.9137],[.7529,.8765,.9176],[.7647,.8824,.9216],[.7765,.8882,.9255],[.7882,.8941,.9294],[.8,.9,.9333],[.8118,.9059,.9373],[.8235,.9118,.9412],[.8353,.9176,.9451],[.8471,.9235,.949],[.8588,.9294,.9529],[.8706,.9353,.9569],[.8824,.9412,.9608],[.8941,.9471,.9647],[.9059,.9529,.9686],[.9176,.9588,.9725],[.9294,.9647,.9765],[.9412,.9706,.9804],[.9529,.9765,.9843],[.9647,.9824,.9882],[.9765,.9882,.9922],[.9882,.9941,.9961],[1,1,1]]};ce.pink={interpolate:!0,colors:[[.1178,0,0],[.1371,.0254,.0254],[.1564,.0508,.0508],[.1757,.0762,.0762],[.1949,.1017,.1017],[.2088,.1129,.1129],[.2223,.1234,.1234],[.2358,.1339,.1339],[.2494,.1445,.1445],[.2607,.1528,.1528],[.2717,.1609,.1609],[.2828,.1689,.1689],[.2939,.177,.177],[.3037,.184,.184],[.3133,.1908,.1908],[.3229,.1976,.1976],[.3325,.2044,.2044],[.3413,.2106,.2106],[.3499,.2166,.2166],[.3585,.2226,.2226],[.3671,.2286,.2286],[.3751,.2342,.2342],[.3829,.2396,.2396],[.3908,.245,.245],[.3986,.2504,.2504],[.4061,.2555,.2555],[.4134,.2605,.2605],[.4206,.2655,.2655],[.4279,.2705,.2705],[.4349,.2753,.2753],[.4417,.2799,.2799],[.4485,.2845,.2845],[.4553,.2892,.2892],[.4619,.2937,.2937],[.4683,.298,.298],[.4747,.3024,.3024],[.4811,.3067,.3067],[.4873,.311,.311],[.4934,.3151,.3151],[.4995,.3192,.3192],[.5056,.3233,.3233],[.5116,.3274,.3274],[.5174,.3313,.3313],[.5232,.3352,.3352],[.529,.3391,.3391],[.5347,.343,.343],[.5403,.3467,.3467],[.5458,.3505,.3505],[.5514,.3542,.3542],[.5569,.3579,.3579],[.5622,.3615,.3615],[.5675,.3651,.3651],[.5729,.3687,.3687],[.5782,.3722,.3722],[.5833,.3757,.3757],[.5885,.3791,.3791],[.5936,.3826,.3826],[.5987,.386,.386],[.6037,.3894,.3894],[.6087,.3927,.3927],[.6137,.396,.396],[.6186,.3993,.3993],[.6234,.4026,.4026],[.6282,.4058,.4058],[.6331,.409,.409],[.6378,.4122,.4122],[.6425,.4153,.4153],[.6472,.4185,.4185],[.6519,.4216,.4216],[.6565,.4247,.4247],[.6611,.4278,.4278],[.6656,.4308,.4308],[.6702,.4338,.4338],[.6747,.4369,.4369],[.6791,.4398,.4398],[.6836,.4428,.4428],[.688,.4457,.4457],[.6924,.4487,.4487],[.6967,.4515,.4515],[.701,.4544,.4544],[.7053,.4573,.4573],[.7096,.4602,.4602],[.7139,.463,.463],[.7181,.4658,.4658],[.7223,.4686,.4686],[.7265,.4714,.4714],[.7306,.4741,.4741],[.7347,.4769,.4769],[.7388,.4796,.4796],[.7429,.4824,.4824],[.747,.485,.485],[.751,.4877,.4877],[.755,.4904,.4904],[.759,.4931,.4931],[.761,.4988,.4957],[.7627,.5047,.4983],[.7644,.5107,.501],[.7661,.5167,.5036],[.7678,.5224,.5062],[.7695,.5282,.5087],[.7712,.5339,.5113],[.7729,.5396,.5139],[.7746,.5451,.5164],[.7763,.5506,.5189],[.778,.5561,.5214],[.7796,.5615,.5239],[.7813,.5669,.5264],[.783,.5721,.5289],[.7847,.5774,.5313],[.7863,.5827,.5338],[.788,.5878,.5363],[.7896,.5929,.5387],[.7913,.598,.5411],[.7929,.6031,.5435],[.7946,.608,.5459],[.7962,.613,.5483],[.7979,.6179,.5507],[.7995,.6228,.5531],[.8011,.6276,.5554],[.8028,.6324,.5578],[.8044,.6372,.5601],[.806,.6419,.5624],[.8076,.6466,.5648],[.8093,.6512,.5671],[.8109,.6559,.5694],[.8125,.6605,.5717],[.8141,.665,.5739],[.8157,.6695,.5762],[.8173,.674,.5785],[.8189,.6785,.5807],[.8205,.683,.583],[.8221,.6874,.5852],[.8237,.6918,.5874],[.8253,.6961,.5897],[.8268,.7005,.5919],[.8284,.7047,.5941],[.83,.709,.5963],[.8316,.7133,.5985],[.8331,.7175,.6006],[.8347,.7217,.6028],[.8363,.7259,.605],[.8378,.73,.6071],[.8394,.7342,.6093],[.8409,.7383,.6114],[.8425,.7423,.6136],[.844,.7464,.6157],[.8456,.7505,.6178],[.8471,.7545,.6199],[.8487,.7585,.622],[.8502,.7625,.6241],[.8518,.7664,.6262],[.8533,.7703,.6283],[.8548,.7742,.6304],[.8563,.7781,.6324],[.8579,.782,.6345],[.8594,.7859,.6366],[.8609,.7897,.6386],[.8624,.7935,.6407],[.8639,.7974,.6427],[.8655,.8011,.6447],[.867,.8049,.6467],[.8685,.8086,.6488],[.87,.8124,.6508],[.8715,.8161,.6528],[.873,.8198,.6548],[.8745,.8234,.6568],[.876,.8271,.6588],[.8775,.8308,.6607],[.8789,.8344,.6627],[.8804,.838,.6647],[.8819,.8416,.6667],[.8834,.8452,.6686],[.8849,.8487,.6706],[.8863,.8523,.6725],[.8878,.8559,.6745],[.8893,.8594,.6764],[.8908,.8629,.6783],[.8922,.8664,.6802],[.8937,.8699,.6822],[.8952,.8733,.6841],[.8966,.8768,.686],[.8981,.8802,.6879],[.8995,.8837,.6898],[.901,.8871,.6917],[.9024,.8905,.6936],[.9039,.8939,.6954],[.9053,.8972,.6973],[.9068,.9006,.6992],[.9082,.9039,.7011],[.9096,.9073,.7029],[.9111,.9106,.7048],[.9125,.9125,.7094],[.9139,.9139,.7148],[.9154,.9154,.7202],[.9168,.9168,.7256],[.9182,.9182,.7309],[.9196,.9196,.7362],[.9211,.9211,.7414],[.9225,.9225,.7467],[.9239,.9239,.7519],[.9253,.9253,.757],[.9267,.9267,.7621],[.9281,.9281,.7672],[.9295,.9295,.7722],[.9309,.9309,.7772],[.9323,.9323,.7822],[.9338,.9338,.7872],[.9352,.9352,.7921],[.9365,.9365,.7969],[.9379,.9379,.8018],[.9393,.9393,.8067],[.9407,.9407,.8115],[.9421,.9421,.8162],[.9435,.9435,.8209],[.9449,.9449,.8257],[.9463,.9463,.8304],[.9476,.9476,.835],[.949,.949,.8396],[.9504,.9504,.8443],[.9518,.9518,.8489],[.9531,.9531,.8534],[.9545,.9545,.8579],[.9559,.9559,.8625],[.9573,.9573,.867],[.9586,.9586,.8714],[.96,.96,.8758],[.9613,.9613,.8803],[.9627,.9627,.8847],[.9641,.9641,.889],[.9654,.9654,.8934],[.9668,.9668,.8977],[.9681,.9681,.9021],[.9695,.9695,.9063],[.9708,.9708,.9106],[.9722,.9722,.9149],[.9735,.9735,.9191],[.9748,.9748,.9233],[.9762,.9762,.9275],[.9775,.9775,.9317],[.9789,.9789,.9358],[.9802,.9802,.94],[.9815,.9815,.9441],[.9829,.9829,.9482],[.9842,.9842,.9523],[.9855,.9855,.9563],[.9868,.9868,.9604],[.9882,.9882,.9644],[.9895,.9895,.9685],[.9908,.9908,.9724],[.9921,.9921,.9764],[.9934,.9934,.9804],[.9948,.9948,.9844],[.9961,.9961,.9883],[.9974,.9974,.9922],[.9987,.9987,.9961],[1,1,1]]};ce.plasma={interpolate:!0,colors:[[.0504,.0298,.528],[.0635,.0284,.5331],[.0754,.0272,.538],[.0862,.0261,.5427],[.0964,.0252,.5471],[.106,.0243,.5514],[.1151,.0236,.5555],[.1239,.0229,.5594],[.1324,.0223,.5632],[.1406,.0217,.567],[.1486,.0212,.5706],[.1564,.0207,.5741],[.1641,.0202,.5775],[.1716,.0197,.5808],[.179,.0193,.5841],[.1862,.0188,.5872],[.1934,.0184,.5903],[.2004,.0179,.5934],[.2074,.0174,.5963],[.2144,.017,.5992],[.2212,.0165,.6021],[.228,.016,.6049],[.2347,.0155,.6076],[.2414,.015,.6103],[.248,.0144,.6129],[.2546,.0139,.6154],[.2612,.0133,.6179],[.2677,.0127,.6203],[.2742,.0121,.6227],[.2806,.0115,.625],[.2871,.0109,.6273],[.2935,.0102,.6295],[.2999,.0096,.6316],[.3062,.0089,.6337],[.3125,.0082,.6357],[.3189,.0076,.6376],[.3252,.0069,.6395],[.3314,.0063,.6413],[.3377,.0056,.643],[.3439,.005,.6447],[.3502,.0044,.6463],[.3564,.0038,.6478],[.3626,.0032,.6492],[.3687,.0027,.6506],[.3749,.0022,.6519],[.381,.0018,.6531],[.3872,.0014,.6542],[.3933,.0011,.6552],[.3994,9e-4,.6561],[.4055,7e-4,.657],[.4116,6e-4,.6577],[.4176,6e-4,.6584],[.4237,6e-4,.659],[.4297,8e-4,.6594],[.4357,.0011,.6598],[.4417,.0015,.6601],[.4477,.0021,.6602],[.4537,.0028,.6603],[.4596,.0036,.6603],[.4656,.0045,.6601],[.4715,.0057,.6599],[.4773,.007,.6595],[.4832,.0085,.6591],[.4891,.0101,.6585],[.4949,.012,.6579],[.5007,.0141,.6571],[.5065,.0163,.6562],[.5122,.0188,.6552],[.5179,.0216,.6541],[.5236,.0245,.6529],[.5293,.0277,.6516],[.535,.0312,.6502],[.5406,.035,.6486],[.5462,.039,.647],[.5517,.0431,.6453],[.5572,.0473,.6434],[.5627,.0515,.6415],[.5682,.0558,.6395],[.5736,.06,.6373],[.579,.0643,.6351],[.5844,.0686,.6328],[.5897,.0729,.6304],[.595,.0772,.6279],[.6003,.0815,.6253],[.6055,.0859,.6227],[.6107,.0902,.62],[.6158,.0946,.6171],[.6209,.0989,.6143],[.626,.1033,.6113],[.631,.1077,.6083],[.636,.1121,.6052],[.641,.1165,.6021],[.6459,.1209,.5989],[.6507,.1253,.5956],[.6556,.1297,.5923],[.6604,.1341,.589],[.6651,.1386,.5856],[.6698,.143,.5822],[.6745,.1474,.5787],[.6792,.1518,.5752],[.6838,.1563,.5717],[.6883,.1607,.5681],[.6928,.1651,.5645],[.6973,.1696,.5609],[.7018,.174,.5573],[.7062,.1784,.5537],[.7105,.1829,.55],[.7149,.1873,.5463],[.7192,.1917,.5427],[.7234,.1962,.539],[.7277,.2006,.5353],[.7319,.205,.5316],[.736,.2094,.5279],[.7401,.2139,.5242],[.7442,.2183,.5205],[.7483,.2227,.5168],[.7523,.2271,.5131],[.7563,.2316,.5095],[.7603,.236,.5058],[.7642,.2404,.5021],[.7681,.2448,.4985],[.772,.2492,.4948],[.7758,.2537,.4912],[.7796,.2581,.4875],[.7834,.2625,.4839],[.7871,.2669,.4803],[.7909,.2713,.4767],[.7945,.2758,.4731],[.7982,.2802,.4695],[.8019,.2846,.466],[.8055,.2891,.4624],[.8091,.2935,.4589],[.8126,.2979,.4553],[.8161,.3024,.4518],[.8197,.3068,.4483],[.8231,.3113,.4448],[.8266,.3157,.4413],[.83,.3202,.4378],[.8334,.3246,.4344],[.8368,.3291,.4309],[.8402,.3336,.4275],[.8435,.3381,.424],[.8468,.3426,.4206],[.8501,.347,.4172],[.8533,.3516,.4137],[.8565,.3561,.4103],[.8598,.3606,.4069],[.8629,.3651,.4035],[.8661,.3697,.4001],[.8692,.3742,.3967],[.8723,.3788,.3934],[.8754,.3833,.39],[.8784,.3879,.3866],[.8814,.3925,.3832],[.8844,.3971,.3799],[.8874,.4018,.3765],[.8903,.4064,.3731],[.8932,.411,.3698],[.8961,.4157,.3664],[.899,.4204,.363],[.9018,.4251,.3597],[.9046,.4298,.3563],[.9074,.4345,.353],[.9101,.4393,.3496],[.9128,.444,.3463],[.9155,.4488,.3429],[.9181,.4536,.3395],[.9207,.4584,.3362],[.9233,.4633,.3328],[.9258,.4681,.3294],[.9283,.473,.3261],[.9308,.4779,.3227],[.9332,.4828,.3193],[.9356,.4877,.316],[.938,.4927,.3126],[.9403,.4976,.3092],[.9426,.5026,.3058],[.9448,.5077,.3024],[.9471,.5127,.299],[.9492,.5178,.2957],[.9513,.5228,.2923],[.9534,.528,.2889],[.9555,.5331,.2855],[.9575,.5382,.2821],[.9594,.5434,.2787],[.9613,.5486,.2753],[.9632,.5539,.2719],[.965,.5591,.2685],[.9668,.5644,.2651],[.9685,.5697,.2617],[.9702,.575,.2583],[.9718,.5804,.2549],[.9734,.5858,.2515],[.9749,.5912,.2482],[.9764,.5966,.2448],[.9779,.6021,.2414],[.9792,.6075,.238],[.9806,.613,.2346],[.9818,.6186,.2313],[.983,.6241,.2279],[.9842,.6297,.2246],[.9853,.6353,.2213],[.9863,.641,.2179],[.9873,.6466,.2146],[.9883,.6523,.2114],[.9891,.658,.2081],[.9899,.6638,.2049],[.9907,.6696,.2016],[.9914,.6754,.1985],[.992,.6812,.1953],[.9925,.687,.1922],[.993,.6929,.1891],[.9935,.6988,.186],[.9938,.7047,.183],[.9941,.7107,.1801],[.9943,.7167,.1772],[.9945,.7227,.1744],[.9946,.7287,.1716],[.9946,.7348,.1689],[.9945,.7409,.1663],[.9944,.747,.1638],[.9941,.7531,.1614],[.9939,.7593,.1591],[.9935,.7655,.1569],[.993,.7717,.1548],[.9925,.778,.1529],[.9919,.7842,.151],[.9912,.7905,.1494],[.9904,.7969,.1479],[.9896,.8032,.1465],[.9886,.8096,.1454],[.9876,.816,.1444],[.9865,.8224,.1436],[.9853,.8288,.1429],[.984,.8353,.1425],[.9827,.8418,.1423],[.9812,.8483,.1423],[.9796,.8549,.1425],[.978,.8614,.1428],[.9763,.868,.1434],[.9744,.8746,.1441],[.9725,.8812,.1449],[.9705,.8879,.1459],[.9684,.8946,.147],[.9663,.9012,.1482],[.964,.908,.1494],[.9617,.9147,.1505],[.9593,.9214,.1516],[.9568,.9282,.1524],[.9543,.9349,.1529],[.9517,.9417,.1529],[.9492,.9484,.1522],[.9466,.9552,.1503],[.9442,.9619,.1469],[.9419,.9686,.141],[.94,.9752,.1313]]};ce.prism={interpolate:!0,colors:[[1,0,0],[1,0,0],[1,.1296,0],[1,.3203,0],[1,.5116,0],[1,.6909,0],[1,.8464,0],[1,.9679,0],[.889,1,0],[.6991,1,0],[.5073,1,0],[.3262,.9966,0],[.1678,.887,0],[.0425,.7408,.2247],[0,.5675,.4915],[0,.3785,.7259],[0,.1863,.9124],[0,.0036,1],[.1001,0,1],[.2431,0,1],[.4142,0,.9965],[.6022,0,.845],[.7946,0,.6378],[.9788,0,.3885],[1,0,.1136],[1,0,0],[1,.0561,0],[1,.2429,0],[1,.4354,0],[1,.6211,0],[1,.7875,0],[1,.9237,0],[.9619,1,0],[.7764,1,0],[.5838,1,0],[.3969,1,0],[.228,.9359,0],[.0883,.8034,.1123],[0,.6397,.3872],[0,.4555,.6367],[0,.2631,.8441],[0,.0751,.9959],[.0528,0,1],[.1817,0,1],[.3427,0,1],[.5254,0,.9132],[.7176,0,.7269],[.9066,0,.4927],[1,0,.2261],[1,0,0],[1,0,0],[1,.1664,0],[1,.3582,0],[1,.5481,0],[1,.7236,0],[1,.8732,0],[1,.987,0],[.8525,1,0],[.6612,1,0],[.4705,1,0],[.293,.9784,0],[.1403,.861,0],[.0226,.7086,.2788],[0,.5312,.5406],[0,.3406,.7667],[0,.1493,.9423],[.0121,0,1],[.1255,0,1],[.2748,0,1],[.4501,0,.9717],[.64,0,.8083],[.8318,0,.5917],[1,0,.336],[1,0,.0582],[1,0,0],[1,.0917,0],[1,.2806,0],[1,.4728,0],[1,.6556,0],[1,.8169,0],[1,.9461,0],[.9267,1,0],[.7387,1,0],[.5463,1,0],[.362,1,0],[.198,.9129,0],[.0651,.7735,.1674],[0,.6048,.4387],[0,.418,.6811],[0,.2255,.8786],[0,.0398,1],[.0751,0,1],[.2111,0,1],[.3772,0,1],[.5627,0,.8811],[.7553,0,.6843],[.9422,0,.4425],[1,0,.1714],[1,0,0],[1,.0195,0],[1,.2036,0],[1,.396,0],[1,.5841,0],[1,.7554,0],[1,.8987,0],[.9981,1,0],[.8155,1,0],[.6234,1,0],[.4343,1,0],[.2607,.9585,0],[.1142,.8336,.0542],[.0043,.6754,.3322],[0,.4945,.5883],[0,.3027,.8056],[0,.1128,.9698],[.0311,0,1],[.1522,0,1],[.3075,0,1],[.4866,0,.9444],[.6779,0,.7696],[.8686,0,.5441],[1,0,.2827],[1,0,.0027],[1,0,0],[1,.1279,0],[1,.3185,0],[1,.5098,0],[1,.6893,0],[1,.8451,0],[1,.9669,0],[.8908,1,0],[.7009,1,0],[.5091,1,0],[.3279,.9974,0],[.1692,.8883,0],[.0435,.7423,.2221],[0,.5692,.4891],[0,.3803,.7239],[0,.1881,.9109],[0,.0052,1],[.0989,0,1],[.2416,0,1],[.4125,0,.9976],[.6003,0,.8467],[.7928,0,.64],[.9772,0,.391],[1,0,.1163],[1,0,0],[1,.0543,0],[1,.241,0],[1,.4336,0],[1,.6194,0],[1,.786,0],[1,.9226,0],[.9636,1,0],[.7782,1,0],[.5856,1,0],[.3986,1,0],[.2295,.937,0],[.0895,.8049,.1096],[0,.6414,.3847],[0,.4574,.6344],[0,.2649,.8424],[0,.0768,.9947],[.0518,0,1],[.1803,0,1],[.3411,0,1],[.5236,0,.9147],[.7157,0,.729],[.9048,0,.4952],[1,0,.2287],[1,0,0],[1,0,0],[1,.1646,0],[1,.3563,0],[1,.5463,0],[1,.7221,0],[1,.872,0],[1,.9861,0],[.8543,1,0],[.6631,1,0],[.4723,1,0],[.2946,.9793,0],[.1416,.8623,0],[.0235,.7102,.2762],[0,.533,.5382],[0,.3425,.7648],[0,.1511,.9409],[.0112,0,1],[.1242,0,1],[.2732,0,1],[.4484,0,.9729],[.6381,0,.8102],[.83,0,.594],[1,0,.3386],[1,0,.061],[1,0,0],[1,.0899,0],[1,.2788,0],[1,.471,0],[1,.6539,0],[1,.8155,0],[1,.9451,0],[.9284,1,0],[.7406,1,0],[.5481,1,0],[.3637,1,0],[.1994,.914,0],[.0662,.7749,.1647],[0,.6065,.4362],[0,.4199,.679],[0,.2273,.877],[0,.0415,1],[.074,0,1],[.2096,0,1],[.3755,0,1],[.5609,0,.8827],[.7534,0,.6864],[.9405,0,.4449],[1,0,.1741],[1,0,0],[1,.0178,0],[1,.2017,0],[1,.3941,0],[1,.5823,0],[1,.7539,0],[1,.8974,0],[.9997,1,0],[.8173,1,0],[.6252,1,0],[.436,1,0],[.2623,.9595,0],[.1154,.8349,.0515],[.0051,.6771,.3296],[0,.4963,.586],[0,.3046,.8037],[0,.1146,.9685],[.0302,0,1],[.1509,0,1],[.3059,0,1],[.4848,0,.9458],[.676,0,.7716],[.8668,0,.5465],[1,0,.2854],[1,0,.0054],[1,0,0],[1,.1261,0],[1,.3166,0],[1,.508,0],[1,.6877,0],[1,.8437,0],[1,.966,0],[.8925,1,0],[.7028,1,0],[.5109,1,0],[.3295,.9983,0]]};ce.rainbow={interpolate:!0,colors:[[.5,0,1],[.4922,.0123,1],[.4843,.0246,.9999],[.4765,.037,.9998],[.4686,.0493,.9997],[.4608,.0616,.9995],[.4529,.0739,.9993],[.4451,.0861,.9991],[.4373,.0984,.9988],[.4294,.1107,.9985],[.4216,.1229,.9981],[.4137,.1351,.9977],[.4059,.1473,.9973],[.398,.1595,.9968],[.3902,.1716,.9963],[.3824,.1837,.9957],[.3745,.1958,.9951],[.3667,.2079,.9945],[.3588,.2199,.9939],[.351,.2319,.9932],[.3431,.2439,.9924],[.3353,.2558,.9916],[.3275,.2677,.9908],[.3196,.2796,.99],[.3118,.2914,.9891],[.3039,.3032,.9882],[.2961,.3149,.9872],[.2882,.3265,.9862],[.2804,.3382,.9852],[.2725,.3497,.9841],[.2647,.3612,.983],[.2569,.3727,.9818],[.249,.3841,.9806],[.2412,.3955,.9794],[.2333,.4067,.9781],[.2255,.418,.9768],[.2176,.4291,.9755],[.2098,.4402,.9741],[.202,.4512,.9727],[.1941,.4622,.9713],[.1863,.4731,.9698],[.1784,.4839,.9683],[.1706,.4947,.9667],[.1627,.5053,.9651],[.1549,.5159,.9635],[.1471,.5264,.9618],[.1392,.5369,.9601],[.1314,.5472,.9584],[.1235,.5575,.9566],[.1157,.5677,.9548],[.1078,.5778,.9529],[.1,.5878,.9511],[.0922,.5977,.9491],[.0843,.6075,.9472],[.0765,.6173,.9452],[.0686,.6269,.9432],[.0608,.6365,.9411],[.0529,.6459,.939],[.0451,.6553,.9369],[.0373,.6645,.9347],[.0294,.6737,.9325],[.0216,.6827,.9302],[.0137,.6917,.928],[.0059,.7005,.9256],[.002,.7093,.9233],[.0098,.7179,.9209],[.0176,.7264,.9185],[.0255,.7348,.916],[.0333,.7431,.9135],[.0412,.7513,.911],[.049,.7594,.9085],[.0569,.7674,.9059],[.0647,.7752,.9032],[.0725,.7829,.9006],[.0804,.7905,.8979],[.0882,.798,.8952],[.0961,.8054,.8924],[.1039,.8126,.8896],[.1118,.8197,.8868],[.1196,.8267,.8839],[.1275,.8336,.881],[.1353,.8403,.8781],[.1431,.847,.8751],[.151,.8534,.8721],[.1588,.8598,.8691],[.1667,.866,.866],[.1745,.8721,.8629],[.1824,.8781,.8598],[.1902,.8839,.8566],[.198,.8896,.8534],[.2059,.8952,.8502],[.2137,.9006,.847],[.2216,.9059,.8437],[.2294,.911,.8403],[.2373,.916,.837],[.2451,.9209,.8336],[.2529,.9256,.8302],[.2608,.9302,.8267],[.2686,.9347,.8233],[.2765,.939,.8197],[.2843,.9432,.8162],[.2922,.9472,.8126],[.3,.9511,.809],[.3078,.9548,.8054],[.3157,.9584,.8017],[.3235,.9618,.798],[.3314,.9651,.7943],[.3392,.9683,.7905],[.3471,.9713,.7867],[.3549,.9741,.7829],[.3627,.9768,.7791],[.3706,.9794,.7752],[.3784,.9818,.7713],[.3863,.9841,.7674],[.3941,.9862,.7634],[.402,.9882,.7594],[.4098,.99,.7554],[.4176,.9916,.7513],[.4255,.9932,.7473],[.4333,.9945,.7431],[.4412,.9957,.739],[.449,.9968,.7348],[.4569,.9977,.7307],[.4647,.9985,.7264],[.4725,.9991,.7222],[.4804,.9995,.7179],[.4882,.9998,.7136],[.4961,1,.7093],[.5039,1,.7049],[.5118,.9998,.7005],[.5196,.9995,.6961],[.5275,.9991,.6917],[.5353,.9985,.6872],[.5431,.9977,.6827],[.551,.9968,.6782],[.5588,.9957,.6737],[.5667,.9945,.6691],[.5745,.9932,.6645],[.5824,.9916,.6599],[.5902,.99,.6553],[.598,.9882,.6506],[.6059,.9862,.6459],[.6137,.9841,.6412],[.6216,.9818,.6365],[.6294,.9794,.6317],[.6373,.9768,.6269],[.6451,.9741,.6221],[.6529,.9713,.6173],[.6608,.9683,.6124],[.6686,.9651,.6075],[.6765,.9618,.6026],[.6843,.9584,.5977],[.6922,.9548,.5928],[.7,.9511,.5878],[.7078,.9472,.5828],[.7157,.9432,.5778],[.7235,.939,.5727],[.7314,.9347,.5677],[.7392,.9302,.5626],[.7471,.9256,.5575],[.7549,.9209,.5524],[.7627,.916,.5472],[.7706,.911,.5421],[.7784,.9059,.5369],[.7863,.9006,.5317],[.7941,.8952,.5264],[.802,.8896,.5212],[.8098,.8839,.5159],[.8176,.8781,.5106],[.8255,.8721,.5053],[.8333,.866,.5],[.8412,.8598,.4947],[.849,.8534,.4893],[.8569,.847,.4839],[.8647,.8403,.4785],[.8725,.8336,.4731],[.8804,.8267,.4677],[.8882,.8197,.4622],[.8961,.8126,.4567],[.9039,.8054,.4512],[.9118,.798,.4457],[.9196,.7905,.4402],[.9275,.7829,.4347],[.9353,.7752,.4291],[.9431,.7674,.4235],[.951,.7594,.418],[.9588,.7513,.4124],[.9667,.7431,.4067],[.9745,.7348,.4011],[.9824,.7264,.3955],[.9902,.7179,.3898],[.998,.7093,.3841],[1,.7005,.3784],[1,.6917,.3727],[1,.6827,.367],[1,.6737,.3612],[1,.6645,.3555],[1,.6553,.3497],[1,.6459,.3439],[1,.6365,.3382],[1,.6269,.3324],[1,.6173,.3265],[1,.6075,.3207],[1,.5977,.3149],[1,.5878,.309],[1,.5778,.3032],[1,.5677,.2973],[1,.5575,.2914],[1,.5472,.2855],[1,.5369,.2796],[1,.5264,.2737],[1,.5159,.2677],[1,.5053,.2618],[1,.4947,.2558],[1,.4839,.2499],[1,.4731,.2439],[1,.4622,.2379],[1,.4512,.2319],[1,.4402,.226],[1,.4291,.2199],[1,.418,.2139],[1,.4067,.2079],[1,.3955,.2019],[1,.3841,.1958],[1,.3727,.1898],[1,.3612,.1837],[1,.3497,.1777],[1,.3382,.1716],[1,.3265,.1656],[1,.3149,.1595],[1,.3032,.1534],[1,.2914,.1473],[1,.2796,.1412],[1,.2677,.1351],[1,.2558,.129],[1,.2439,.1229],[1,.2319,.1168],[1,.2199,.1107],[1,.2079,.1045],[1,.1958,.0984],[1,.1837,.0923],[1,.1716,.0861],[1,.1595,.08],[1,.1473,.0739],[1,.1351,.0677],[1,.1229,.0616],[1,.1107,.0554],[1,.0984,.0493],[1,.0861,.0431],[1,.0739,.037],[1,.0616,.0308],[1,.0493,.0246],[1,.037,.0185],[1,.0246,.0123],[1,.0123,.0062],[1,0,0]]};ce.seismic={interpolate:!0,colors:[[0,0,.3],[0,0,.311],[0,0,.322],[0,0,.3329],[0,0,.3439],[0,0,.3549],[0,0,.3659],[0,0,.3769],[0,0,.3878],[0,0,.3988],[0,0,.4098],[0,0,.4208],[0,0,.4318],[0,0,.4427],[0,0,.4537],[0,0,.4647],[0,0,.4757],[0,0,.4867],[0,0,.4976],[0,0,.5086],[0,0,.5196],[0,0,.5306],[0,0,.5416],[0,0,.5525],[0,0,.5635],[0,0,.5745],[0,0,.5855],[0,0,.5965],[0,0,.6075],[0,0,.6184],[0,0,.6294],[0,0,.6404],[0,0,.6514],[0,0,.6624],[0,0,.6733],[0,0,.6843],[0,0,.6953],[0,0,.7063],[0,0,.7173],[0,0,.7282],[0,0,.7392],[0,0,.7502],[0,0,.7612],[0,0,.7722],[0,0,.7831],[0,0,.7941],[0,0,.8051],[0,0,.8161],[0,0,.8271],[0,0,.838],[0,0,.849],[0,0,.86],[0,0,.871],[0,0,.882],[0,0,.8929],[0,0,.9039],[0,0,.9149],[0,0,.9259],[0,0,.9369],[0,0,.9478],[0,0,.9588],[0,0,.9698],[0,0,.9808],[0,0,.9918],[.0039,.0039,1],[.0196,.0196,1],[.0353,.0353,1],[.051,.051,1],[.0667,.0667,1],[.0824,.0824,1],[.098,.098,1],[.1137,.1137,1],[.1294,.1294,1],[.1451,.1451,1],[.1608,.1608,1],[.1765,.1765,1],[.1922,.1922,1],[.2078,.2078,1],[.2235,.2235,1],[.2392,.2392,1],[.2549,.2549,1],[.2706,.2706,1],[.2863,.2863,1],[.302,.302,1],[.3176,.3176,1],[.3333,.3333,1],[.349,.349,1],[.3647,.3647,1],[.3804,.3804,1],[.3961,.3961,1],[.4118,.4118,1],[.4275,.4275,1],[.4431,.4431,1],[.4588,.4588,1],[.4745,.4745,1],[.4902,.4902,1],[.5059,.5059,1],[.5216,.5216,1],[.5373,.5373,1],[.5529,.5529,1],[.5686,.5686,1],[.5843,.5843,1],[.6,.6,1],[.6157,.6157,1],[.6314,.6314,1],[.6471,.6471,1],[.6627,.6627,1],[.6784,.6784,1],[.6941,.6941,1],[.7098,.7098,1],[.7255,.7255,1],[.7412,.7412,1],[.7569,.7569,1],[.7725,.7725,1],[.7882,.7882,1],[.8039,.8039,1],[.8196,.8196,1],[.8353,.8353,1],[.851,.851,1],[.8667,.8667,1],[.8824,.8824,1],[.898,.898,1],[.9137,.9137,1],[.9294,.9294,1],[.9451,.9451,1],[.9608,.9608,1],[.9765,.9765,1],[.9922,.9922,1],[1,.9922,.9922],[1,.9765,.9765],[1,.9608,.9608],[1,.9451,.9451],[1,.9294,.9294],[1,.9137,.9137],[1,.898,.898],[1,.8824,.8824],[1,.8667,.8667],[1,.851,.851],[1,.8353,.8353],[1,.8196,.8196],[1,.8039,.8039],[1,.7882,.7882],[1,.7725,.7725],[1,.7569,.7569],[1,.7412,.7412],[1,.7255,.7255],[1,.7098,.7098],[1,.6941,.6941],[1,.6784,.6784],[1,.6627,.6627],[1,.6471,.6471],[1,.6314,.6314],[1,.6157,.6157],[1,.6,.6],[1,.5843,.5843],[1,.5686,.5686],[1,.5529,.5529],[1,.5373,.5373],[1,.5216,.5216],[1,.5059,.5059],[1,.4902,.4902],[1,.4745,.4745],[1,.4588,.4588],[1,.4431,.4431],[1,.4275,.4275],[1,.4118,.4118],[1,.3961,.3961],[1,.3804,.3804],[1,.3647,.3647],[1,.349,.349],[1,.3333,.3333],[1,.3176,.3176],[1,.302,.302],[1,.2863,.2863],[1,.2706,.2706],[1,.2549,.2549],[1,.2392,.2392],[1,.2235,.2235],[1,.2078,.2078],[1,.1922,.1922],[1,.1765,.1765],[1,.1608,.1608],[1,.1451,.1451],[1,.1294,.1294],[1,.1137,.1137],[1,.098,.098],[1,.0824,.0824],[1,.0667,.0667],[1,.051,.051],[1,.0353,.0353],[1,.0196,.0196],[1,.0039,.0039],[.9941,0,0],[.9863,0,0],[.9784,0,0],[.9706,0,0],[.9627,0,0],[.9549,0,0],[.9471,0,0],[.9392,0,0],[.9314,0,0],[.9235,0,0],[.9157,0,0],[.9078,0,0],[.9,0,0],[.8922,0,0],[.8843,0,0],[.8765,0,0],[.8686,0,0],[.8608,0,0],[.8529,0,0],[.8451,0,0],[.8373,0,0],[.8294,0,0],[.8216,0,0],[.8137,0,0],[.8059,0,0],[.798,0,0],[.7902,0,0],[.7824,0,0],[.7745,0,0],[.7667,0,0],[.7588,0,0],[.751,0,0],[.7431,0,0],[.7353,0,0],[.7275,0,0],[.7196,0,0],[.7118,0,0],[.7039,0,0],[.6961,0,0],[.6882,0,0],[.6804,0,0],[.6725,0,0],[.6647,0,0],[.6569,0,0],[.649,0,0],[.6412,0,0],[.6333,0,0],[.6255,0,0],[.6176,0,0],[.6098,0,0],[.602,0,0],[.5941,0,0],[.5863,0,0],[.5784,0,0],[.5706,0,0],[.5627,0,0],[.5549,0,0],[.5471,0,0],[.5392,0,0],[.5314,0,0],[.5235,0,0],[.5157,0,0],[.5078,0,0],[.5,0,0]]};ce.spring={interpolate:!0,colors:[[1,0,1],[1,.0039,.9961],[1,.0078,.9922],[1,.0118,.9882],[1,.0157,.9843],[1,.0196,.9804],[1,.0235,.9765],[1,.0275,.9725],[1,.0314,.9686],[1,.0353,.9647],[1,.0392,.9608],[1,.0431,.9569],[1,.0471,.9529],[1,.051,.949],[1,.0549,.9451],[1,.0588,.9412],[1,.0627,.9373],[1,.0667,.9333],[1,.0706,.9294],[1,.0745,.9255],[1,.0784,.9216],[1,.0824,.9176],[1,.0863,.9137],[1,.0902,.9098],[1,.0941,.9059],[1,.098,.902],[1,.102,.898],[1,.1059,.8941],[1,.1098,.8902],[1,.1137,.8863],[1,.1176,.8824],[1,.1216,.8784],[1,.1255,.8745],[1,.1294,.8706],[1,.1333,.8667],[1,.1373,.8627],[1,.1412,.8588],[1,.1451,.8549],[1,.149,.851],[1,.1529,.8471],[1,.1569,.8431],[1,.1608,.8392],[1,.1647,.8353],[1,.1686,.8314],[1,.1725,.8275],[1,.1765,.8235],[1,.1804,.8196],[1,.1843,.8157],[1,.1882,.8118],[1,.1922,.8078],[1,.1961,.8039],[1,.2,.8],[1,.2039,.7961],[1,.2078,.7922],[1,.2118,.7882],[1,.2157,.7843],[1,.2196,.7804],[1,.2235,.7765],[1,.2275,.7725],[1,.2314,.7686],[1,.2353,.7647],[1,.2392,.7608],[1,.2431,.7569],[1,.2471,.7529],[1,.251,.749],[1,.2549,.7451],[1,.2588,.7412],[1,.2627,.7373],[1,.2667,.7333],[1,.2706,.7294],[1,.2745,.7255],[1,.2784,.7216],[1,.2824,.7176],[1,.2863,.7137],[1,.2902,.7098],[1,.2941,.7059],[1,.298,.702],[1,.302,.698],[1,.3059,.6941],[1,.3098,.6902],[1,.3137,.6863],[1,.3176,.6824],[1,.3216,.6784],[1,.3255,.6745],[1,.3294,.6706],[1,.3333,.6667],[1,.3373,.6627],[1,.3412,.6588],[1,.3451,.6549],[1,.349,.651],[1,.3529,.6471],[1,.3569,.6431],[1,.3608,.6392],[1,.3647,.6353],[1,.3686,.6314],[1,.3725,.6275],[1,.3765,.6235],[1,.3804,.6196],[1,.3843,.6157],[1,.3882,.6118],[1,.3922,.6078],[1,.3961,.6039],[1,.4,.6],[1,.4039,.5961],[1,.4078,.5922],[1,.4118,.5882],[1,.4157,.5843],[1,.4196,.5804],[1,.4235,.5765],[1,.4275,.5725],[1,.4314,.5686],[1,.4353,.5647],[1,.4392,.5608],[1,.4431,.5569],[1,.4471,.5529],[1,.451,.549],[1,.4549,.5451],[1,.4588,.5412],[1,.4627,.5373],[1,.4667,.5333],[1,.4706,.5294],[1,.4745,.5255],[1,.4784,.5216],[1,.4824,.5176],[1,.4863,.5137],[1,.4902,.5098],[1,.4941,.5059],[1,.498,.502],[1,.502,.498],[1,.5059,.4941],[1,.5098,.4902],[1,.5137,.4863],[1,.5176,.4824],[1,.5216,.4784],[1,.5255,.4745],[1,.5294,.4706],[1,.5333,.4667],[1,.5373,.4627],[1,.5412,.4588],[1,.5451,.4549],[1,.549,.451],[1,.5529,.4471],[1,.5569,.4431],[1,.5608,.4392],[1,.5647,.4353],[1,.5686,.4314],[1,.5725,.4275],[1,.5765,.4235],[1,.5804,.4196],[1,.5843,.4157],[1,.5882,.4118],[1,.5922,.4078],[1,.5961,.4039],[1,.6,.4],[1,.6039,.3961],[1,.6078,.3922],[1,.6118,.3882],[1,.6157,.3843],[1,.6196,.3804],[1,.6235,.3765],[1,.6275,.3725],[1,.6314,.3686],[1,.6353,.3647],[1,.6392,.3608],[1,.6431,.3569],[1,.6471,.3529],[1,.651,.349],[1,.6549,.3451],[1,.6588,.3412],[1,.6627,.3373],[1,.6667,.3333],[1,.6706,.3294],[1,.6745,.3255],[1,.6784,.3216],[1,.6824,.3176],[1,.6863,.3137],[1,.6902,.3098],[1,.6941,.3059],[1,.698,.302],[1,.702,.298],[1,.7059,.2941],[1,.7098,.2902],[1,.7137,.2863],[1,.7176,.2824],[1,.7216,.2784],[1,.7255,.2745],[1,.7294,.2706],[1,.7333,.2667],[1,.7373,.2627],[1,.7412,.2588],[1,.7451,.2549],[1,.749,.251],[1,.7529,.2471],[1,.7569,.2431],[1,.7608,.2392],[1,.7647,.2353],[1,.7686,.2314],[1,.7725,.2275],[1,.7765,.2235],[1,.7804,.2196],[1,.7843,.2157],[1,.7882,.2118],[1,.7922,.2078],[1,.7961,.2039],[1,.8,.2],[1,.8039,.1961],[1,.8078,.1922],[1,.8118,.1882],[1,.8157,.1843],[1,.8196,.1804],[1,.8235,.1765],[1,.8275,.1725],[1,.8314,.1686],[1,.8353,.1647],[1,.8392,.1608],[1,.8431,.1569],[1,.8471,.1529],[1,.851,.149],[1,.8549,.1451],[1,.8588,.1412],[1,.8627,.1373],[1,.8667,.1333],[1,.8706,.1294],[1,.8745,.1255],[1,.8784,.1216],[1,.8824,.1176],[1,.8863,.1137],[1,.8902,.1098],[1,.8941,.1059],[1,.898,.102],[1,.902,.098],[1,.9059,.0941],[1,.9098,.0902],[1,.9137,.0863],[1,.9176,.0824],[1,.9216,.0784],[1,.9255,.0745],[1,.9294,.0706],[1,.9333,.0667],[1,.9373,.0627],[1,.9412,.0588],[1,.9451,.0549],[1,.949,.051],[1,.9529,.0471],[1,.9569,.0431],[1,.9608,.0392],[1,.9647,.0353],[1,.9686,.0314],[1,.9725,.0275],[1,.9765,.0235],[1,.9804,.0196],[1,.9843,.0157],[1,.9882,.0118],[1,.9922,.0078],[1,.9961,.0039],[1,1,0]]};ce.summer={interpolate:!0,colors:[[0,.5,.4],[.0039,.502,.4],[.0078,.5039,.4],[.0118,.5059,.4],[.0157,.5078,.4],[.0196,.5098,.4],[.0235,.5118,.4],[.0275,.5137,.4],[.0314,.5157,.4],[.0353,.5176,.4],[.0392,.5196,.4],[.0431,.5216,.4],[.0471,.5235,.4],[.051,.5255,.4],[.0549,.5275,.4],[.0588,.5294,.4],[.0627,.5314,.4],[.0667,.5333,.4],[.0706,.5353,.4],[.0745,.5373,.4],[.0784,.5392,.4],[.0824,.5412,.4],[.0863,.5431,.4],[.0902,.5451,.4],[.0941,.5471,.4],[.098,.549,.4],[.102,.551,.4],[.1059,.5529,.4],[.1098,.5549,.4],[.1137,.5569,.4],[.1176,.5588,.4],[.1216,.5608,.4],[.1255,.5627,.4],[.1294,.5647,.4],[.1333,.5667,.4],[.1373,.5686,.4],[.1412,.5706,.4],[.1451,.5725,.4],[.149,.5745,.4],[.1529,.5765,.4],[.1569,.5784,.4],[.1608,.5804,.4],[.1647,.5824,.4],[.1686,.5843,.4],[.1725,.5863,.4],[.1765,.5882,.4],[.1804,.5902,.4],[.1843,.5922,.4],[.1882,.5941,.4],[.1922,.5961,.4],[.1961,.598,.4],[.2,.6,.4],[.2039,.602,.4],[.2078,.6039,.4],[.2118,.6059,.4],[.2157,.6078,.4],[.2196,.6098,.4],[.2235,.6118,.4],[.2275,.6137,.4],[.2314,.6157,.4],[.2353,.6176,.4],[.2392,.6196,.4],[.2431,.6216,.4],[.2471,.6235,.4],[.251,.6255,.4],[.2549,.6275,.4],[.2588,.6294,.4],[.2627,.6314,.4],[.2667,.6333,.4],[.2706,.6353,.4],[.2745,.6373,.4],[.2784,.6392,.4],[.2824,.6412,.4],[.2863,.6431,.4],[.2902,.6451,.4],[.2941,.6471,.4],[.298,.649,.4],[.302,.651,.4],[.3059,.6529,.4],[.3098,.6549,.4],[.3137,.6569,.4],[.3176,.6588,.4],[.3216,.6608,.4],[.3255,.6627,.4],[.3294,.6647,.4],[.3333,.6667,.4],[.3373,.6686,.4],[.3412,.6706,.4],[.3451,.6725,.4],[.349,.6745,.4],[.3529,.6765,.4],[.3569,.6784,.4],[.3608,.6804,.4],[.3647,.6824,.4],[.3686,.6843,.4],[.3725,.6863,.4],[.3765,.6882,.4],[.3804,.6902,.4],[.3843,.6922,.4],[.3882,.6941,.4],[.3922,.6961,.4],[.3961,.698,.4],[.4,.7,.4],[.4039,.702,.4],[.4078,.7039,.4],[.4118,.7059,.4],[.4157,.7078,.4],[.4196,.7098,.4],[.4235,.7118,.4],[.4275,.7137,.4],[.4314,.7157,.4],[.4353,.7176,.4],[.4392,.7196,.4],[.4431,.7216,.4],[.4471,.7235,.4],[.451,.7255,.4],[.4549,.7275,.4],[.4588,.7294,.4],[.4627,.7314,.4],[.4667,.7333,.4],[.4706,.7353,.4],[.4745,.7373,.4],[.4784,.7392,.4],[.4824,.7412,.4],[.4863,.7431,.4],[.4902,.7451,.4],[.4941,.7471,.4],[.498,.749,.4],[.502,.751,.4],[.5059,.7529,.4],[.5098,.7549,.4],[.5137,.7569,.4],[.5176,.7588,.4],[.5216,.7608,.4],[.5255,.7627,.4],[.5294,.7647,.4],[.5333,.7667,.4],[.5373,.7686,.4],[.5412,.7706,.4],[.5451,.7725,.4],[.549,.7745,.4],[.5529,.7765,.4],[.5569,.7784,.4],[.5608,.7804,.4],[.5647,.7824,.4],[.5686,.7843,.4],[.5725,.7863,.4],[.5765,.7882,.4],[.5804,.7902,.4],[.5843,.7922,.4],[.5882,.7941,.4],[.5922,.7961,.4],[.5961,.798,.4],[.6,.8,.4],[.6039,.802,.4],[.6078,.8039,.4],[.6118,.8059,.4],[.6157,.8078,.4],[.6196,.8098,.4],[.6235,.8118,.4],[.6275,.8137,.4],[.6314,.8157,.4],[.6353,.8176,.4],[.6392,.8196,.4],[.6431,.8216,.4],[.6471,.8235,.4],[.651,.8255,.4],[.6549,.8275,.4],[.6588,.8294,.4],[.6627,.8314,.4],[.6667,.8333,.4],[.6706,.8353,.4],[.6745,.8373,.4],[.6784,.8392,.4],[.6824,.8412,.4],[.6863,.8431,.4],[.6902,.8451,.4],[.6941,.8471,.4],[.698,.849,.4],[.702,.851,.4],[.7059,.8529,.4],[.7098,.8549,.4],[.7137,.8569,.4],[.7176,.8588,.4],[.7216,.8608,.4],[.7255,.8627,.4],[.7294,.8647,.4],[.7333,.8667,.4],[.7373,.8686,.4],[.7412,.8706,.4],[.7451,.8725,.4],[.749,.8745,.4],[.7529,.8765,.4],[.7569,.8784,.4],[.7608,.8804,.4],[.7647,.8824,.4],[.7686,.8843,.4],[.7725,.8863,.4],[.7765,.8882,.4],[.7804,.8902,.4],[.7843,.8922,.4],[.7882,.8941,.4],[.7922,.8961,.4],[.7961,.898,.4],[.8,.9,.4],[.8039,.902,.4],[.8078,.9039,.4],[.8118,.9059,.4],[.8157,.9078,.4],[.8196,.9098,.4],[.8235,.9118,.4],[.8275,.9137,.4],[.8314,.9157,.4],[.8353,.9176,.4],[.8392,.9196,.4],[.8431,.9216,.4],[.8471,.9235,.4],[.851,.9255,.4],[.8549,.9275,.4],[.8588,.9294,.4],[.8627,.9314,.4],[.8667,.9333,.4],[.8706,.9353,.4],[.8745,.9373,.4],[.8784,.9392,.4],[.8824,.9412,.4],[.8863,.9431,.4],[.8902,.9451,.4],[.8941,.9471,.4],[.898,.949,.4],[.902,.951,.4],[.9059,.9529,.4],[.9098,.9549,.4],[.9137,.9569,.4],[.9176,.9588,.4],[.9216,.9608,.4],[.9255,.9627,.4],[.9294,.9647,.4],[.9333,.9667,.4],[.9373,.9686,.4],[.9412,.9706,.4],[.9451,.9725,.4],[.949,.9745,.4],[.9529,.9765,.4],[.9569,.9784,.4],[.9608,.9804,.4],[.9647,.9824,.4],[.9686,.9843,.4],[.9725,.9863,.4],[.9765,.9882,.4],[.9804,.9902,.4],[.9843,.9922,.4],[.9882,.9941,.4],[.9922,.9961,.4],[.9961,.998,.4],[1,1,.4]]};ce.tab10={interpolate:!1,colors:[[.1216,.4667,.7059],[1,.498,.0549],[.1725,.6275,.1725],[.8392,.1529,.1569],[.5804,.4039,.7412],[.549,.3373,.2941],[.8902,.4667,.7608],[.498,.498,.498],[.7373,.7412,.1333],[.0902,.7451,.8118]]};ce.tab20={interpolate:!1,colors:[[.1216,.4667,.7059],[.6824,.7804,.9098],[1,.498,.0549],[1,.7333,.4706],[.1725,.6275,.1725],[.5961,.8745,.5412],[.8392,.1529,.1569],[1,.5961,.5882],[.5804,.4039,.7412],[.7725,.6902,.8353],[.549,.3373,.2941],[.7686,.6118,.5804],[.8902,.4667,.7608],[.9686,.7137,.8235],[.498,.498,.498],[.7804,.7804,.7804],[.7373,.7412,.1333],[.8588,.8588,.5529],[.0902,.7451,.8118],[.6196,.8549,.898]]};ce.tab20b={interpolate:!1,colors:[[.2235,.2314,.4745],[.3216,.3294,.6392],[.4196,.4314,.8118],[.6118,.6196,.8706],[.3882,.4745,.2235],[.549,.6353,.3216],[.7098,.8118,.4196],[.8078,.8588,.6118],[.549,.4275,.1922],[.7412,.6196,.2235],[.9059,.7294,.3216],[.9059,.7961,.5804],[.5176,.2353,.2235],[.6784,.2863,.2902],[.8392,.3804,.4196],[.9059,.5882,.6118],[.4824,.2549,.451],[.6471,.3176,.5804],[.8078,.4275,.7412],[.8706,.6196,.8392]]};ce.tab20c={interpolate:!1,colors:[[.1922,.5098,.7412],[.4196,.6824,.8392],[.6196,.7922,.8824],[.7765,.8588,.9373],[.902,.3333,.051],[.9922,.5529,.2353],[.9922,.6824,.4196],[.9922,.8157,.6353],[.1922,.6392,.3294],[.4549,.7686,.4627],[.6314,.851,.6078],[.7804,.9137,.7529],[.4588,.4196,.6941],[.6196,.6039,.7843],[.7373,.7412,.8627],[.8549,.8549,.9216],[.3882,.3882,.3882],[.5882,.5882,.5882],[.7412,.7412,.7412],[.851,.851,.851]]};ce.terrain={interpolate:!0,colors:[[.2,.2,.6],[.1948,.2105,.6105],[.1895,.2209,.6209],[.1843,.2314,.6314],[.1791,.2418,.6418],[.1739,.2523,.6523],[.1686,.2627,.6627],[.1634,.2732,.6732],[.1582,.2837,.6837],[.1529,.2941,.6941],[.1477,.3046,.7046],[.1425,.315,.715],[.1373,.3255,.7255],[.132,.3359,.7359],[.1268,.3464,.7464],[.1216,.3569,.7569],[.1163,.3673,.7673],[.1111,.3778,.7778],[.1059,.3882,.7882],[.1007,.3987,.7987],[.0954,.4092,.8092],[.0902,.4196,.8196],[.085,.4301,.8301],[.0797,.4405,.8405],[.0745,.451,.851],[.0693,.4614,.8614],[.0641,.4719,.8719],[.0588,.4824,.8824],[.0536,.4928,.8928],[.0484,.5033,.9033],[.0431,.5137,.9137],[.0379,.5242,.9242],[.0327,.5346,.9346],[.0275,.5451,.9451],[.0222,.5556,.9556],[.017,.566,.966],[.0118,.5765,.9765],[.0065,.5869,.9869],[.0013,.5974,.9974],[0,.6059,.9824],[0,.6137,.9588],[0,.6216,.9353],[0,.6294,.9118],[0,.6373,.8882],[0,.6451,.8647],[0,.6529,.8412],[0,.6608,.8176],[0,.6686,.7941],[0,.6765,.7706],[0,.6843,.7471],[0,.6922,.7235],[0,.7,.7],[0,.7078,.6765],[0,.7157,.6529],[0,.7235,.6294],[0,.7314,.6059],[0,.7392,.5824],[0,.7471,.5588],[0,.7549,.5353],[0,.7627,.5118],[0,.7706,.4882],[0,.7784,.4647],[0,.7863,.4412],[0,.7941,.4176],[.0039,.8008,.4008],[.0196,.8039,.4039],[.0353,.8071,.4071],[.051,.8102,.4102],[.0667,.8133,.4133],[.0824,.8165,.4165],[.098,.8196,.4196],[.1137,.8227,.4227],[.1294,.8259,.4259],[.1451,.829,.429],[.1608,.8322,.4322],[.1765,.8353,.4353],[.1922,.8384,.4384],[.2078,.8416,.4416],[.2235,.8447,.4447],[.2392,.8478,.4478],[.2549,.851,.451],[.2706,.8541,.4541],[.2863,.8573,.4573],[.302,.8604,.4604],[.3176,.8635,.4635],[.3333,.8667,.4667],[.349,.8698,.4698],[.3647,.8729,.4729],[.3804,.8761,.4761],[.3961,.8792,.4792],[.4118,.8824,.4824],[.4275,.8855,.4855],[.4431,.8886,.4886],[.4588,.8918,.4918],[.4745,.8949,.4949],[.4902,.898,.498],[.5059,.9012,.5012],[.5216,.9043,.5043],[.5373,.9075,.5075],[.5529,.9106,.5106],[.5686,.9137,.5137],[.5843,.9169,.5169],[.6,.92,.52],[.6157,.9231,.5231],[.6314,.9263,.5263],[.6471,.9294,.5294],[.6627,.9325,.5325],[.6784,.9357,.5357],[.6941,.9388,.5388],[.7098,.942,.542],[.7255,.9451,.5451],[.7412,.9482,.5482],[.7569,.9514,.5514],[.7725,.9545,.5545],[.7882,.9576,.5576],[.8039,.9608,.5608],[.8196,.9639,.5639],[.8353,.9671,.5671],[.851,.9702,.5702],[.8667,.9733,.5733],[.8824,.9765,.5765],[.898,.9796,.5796],[.9137,.9827,.5827],[.9294,.9859,.5859],[.9451,.989,.589],[.9608,.9922,.5922],[.9765,.9953,.5953],[.9922,.9984,.5984],[.9961,.995,.5979],[.9882,.9849,.5936],[.9804,.9749,.5894],[.9725,.9649,.5852],[.9647,.9548,.5809],[.9569,.9448,.5767],[.949,.9347,.5725],[.9412,.9247,.5682],[.9333,.9147,.564],[.9255,.9046,.5598],[.9176,.8946,.5555],[.9098,.8845,.5513],[.902,.8745,.5471],[.8941,.8645,.5428],[.8863,.8544,.5386],[.8784,.8444,.5344],[.8706,.8344,.5301],[.8627,.8243,.5259],[.8549,.8143,.5216],[.8471,.8042,.5174],[.8392,.7942,.5132],[.8314,.7842,.5089],[.8235,.7741,.5047],[.8157,.7641,.5005],[.8078,.754,.4962],[.8,.744,.492],[.7922,.734,.4878],[.7843,.7239,.4835],[.7765,.7139,.4793],[.7686,.7038,.4751],[.7608,.6938,.4708],[.7529,.6838,.4666],[.7451,.6737,.4624],[.7373,.6637,.4581],[.7294,.6536,.4539],[.7216,.6436,.4496],[.7137,.6336,.4454],[.7059,.6235,.4412],[.698,.6135,.4369],[.6902,.6035,.4327],[.6824,.5934,.4285],[.6745,.5834,.4242],[.6667,.5733,.42],[.6588,.5633,.4158],[.651,.5533,.4115],[.6431,.5432,.4073],[.6353,.5332,.4031],[.6275,.5231,.3988],[.6196,.5131,.3946],[.6118,.5031,.3904],[.6039,.493,.3861],[.5961,.483,.3819],[.5882,.4729,.3776],[.5804,.4629,.3734],[.5725,.4529,.3692],[.5647,.4428,.3649],[.5569,.4328,.3607],[.549,.4227,.3565],[.5412,.4127,.3522],[.5333,.4027,.348],[.5255,.3926,.3438],[.5176,.3826,.3395],[.5098,.3725,.3353],[.502,.3625,.3311],[.5059,.3675,.3379],[.5137,.3776,.3484],[.5216,.3876,.3589],[.5294,.3976,.3694],[.5373,.4077,.3799],[.5451,.4177,.3904],[.5529,.4278,.4009],[.5608,.4378,.4115],[.5686,.4478,.422],[.5765,.4579,.4325],[.5843,.4679,.443],[.5922,.478,.4535],[.6,.488,.464],[.6078,.498,.4745],[.6157,.5081,.485],[.6235,.5181,.4955],[.6314,.5282,.506],[.6392,.5382,.5165],[.6471,.5482,.5271],[.6549,.5583,.5376],[.6627,.5683,.5481],[.6706,.5784,.5586],[.6784,.5884,.5691],[.6863,.5984,.5796],[.6941,.6085,.5901],[.702,.6185,.6006],[.7098,.6285,.6111],[.7176,.6386,.6216],[.7255,.6486,.6322],[.7333,.6587,.6427],[.7412,.6687,.6532],[.749,.6787,.6637],[.7569,.6888,.6742],[.7647,.6988,.6847],[.7725,.7089,.6952],[.7804,.7189,.7057],[.7882,.7289,.7162],[.7961,.739,.7267],[.8039,.749,.7373],[.8118,.7591,.7478],[.8196,.7691,.7583],[.8275,.7791,.7688],[.8353,.7892,.7793],[.8431,.7992,.7898],[.851,.8093,.8003],[.8588,.8193,.8108],[.8667,.8293,.8213],[.8745,.8394,.8318],[.8824,.8494,.8424],[.8902,.8595,.8529],[.898,.8695,.8634],[.9059,.8795,.8739],[.9137,.8896,.8844],[.9216,.8996,.8949],[.9294,.9096,.9054],[.9373,.9197,.9159],[.9451,.9297,.9264],[.9529,.9398,.9369],[.9608,.9498,.9475],[.9686,.9598,.958],[.9765,.9699,.9685],[.9843,.9799,.979],[.9922,.99,.9895],[1,1,1]]};ce.turbo={interpolate:!0,colors:[[.19,.0718,.2322],[.1948,.0834,.2615],[.1996,.095,.2902],[.2042,.1065,.3184],[.2086,.118,.3461],[.2129,.1295,.3731],[.2171,.1409,.3996],[.2211,.1522,.4256],[.225,.1635,.451],[.2288,.1748,.4758],[.2324,.186,.5],[.2358,.1972,.5237],[.2392,.2083,.5469],[.2423,.2194,.5694],[.2454,.2304,.5914],[.2483,.2414,.6129],[.2511,.2524,.6337],[.2537,.2633,.6541],[.2562,.2741,.6738],[.2585,.2849,.693],[.2607,.2957,.7116],[.2628,.3064,.7297],[.2647,.3171,.7472],[.2665,.3277,.7641],[.2682,.3382,.7805],[.2697,.3488,.7963],[.271,.3593,.8116],[.2723,.3697,.8262],[.2733,.3801,.8404],[.2743,.3904,.8539],[.2751,.4007,.8669],[.2758,.411,.8794],[.2763,.4212,.8912],[.2767,.4313,.9025],[.2769,.4414,.9133],[.277,.4515,.9235],[.277,.4615,.9331],[.2768,.4715,.9421],[.2765,.4814,.9506],[.276,.4913,.9586],[.2754,.5012,.9659],[.2747,.5109,.9728],[.2738,.5207,.979],[.2727,.5304,.9846],[.2711,.5402,.9893],[.2688,.55,.993],[.2659,.5598,.9958],[.2625,.5697,.9977],[.2586,.5796,.9988],[.2542,.5895,.999],[.2495,.5994,.9984],[.2443,.6094,.997],[.2387,.6193,.9948],[.2329,.6292,.992],[.2268,.6391,.9885],[.2204,.649,.9844],[.2138,.6589,.9796],[.2071,.6687,.9742],[.2002,.6784,.9683],[.1933,.6881,.9619],[.1862,.6978,.955],[.1792,.7073,.9476],[.1722,.7168,.9398],[.1653,.7262,.9316],[.1584,.7355,.923],[.1517,.7447,.9142],[.1452,.7538,.905],[.1389,.7628,.8955],[.1328,.7716,.8858],[.127,.7804,.8759],[.1215,.789,.8658],[.1164,.7974,.8556],[.1117,.8057,.8452],[.1074,.8138,.8348],[.1036,.8218,.8244],[.1003,.8296,.8139],[.0975,.8371,.8034],[.0953,.8446,.793],[.0938,.8518,.7826],[.0929,.8588,.7724],[.0927,.8655,.7623],[.0932,.8721,.7524],[.0945,.8784,.7426],[.0966,.8845,.7332],[.0996,.8904,.7239],[.1034,.896,.715],[.1082,.9014,.706],[.1137,.9067,.6965],[.1201,.9119,.6866],[.1273,.917,.6763],[.1353,.922,.6656],[.1439,.9268,.6545],[.1532,.9315,.6431],[.1632,.9361,.6314],[.1738,.9405,.6194],[.1849,.9448,.6071],[.1966,.949,.5947],[.2088,.953,.582],[.2214,.9569,.5691],[.2345,.9606,.5561],[.248,.9642,.543],[.2618,.9676,.5298],[.276,.9709,.5165],[.2904,.974,.5032],[.3051,.977,.4899],[.3201,.9797,.4765],[.3352,.9823,.4632],[.3504,.9848,.45],[.3658,.987,.4369],[.3813,.9891,.4239],[.3968,.991,.411],[.4123,.9927,.3983],[.4278,.9942,.3858],[.4432,.9955,.3734],[.4585,.9966,.3614],[.4738,.9976,.3496],[.4888,.9983,.3382],[.5036,.9988,.327],[.5182,.9991,.3162],[.5326,.9992,.3058],[.5466,.9991,.2958],[.5603,.9987,.2862],[.5736,.9982,.2771],[.5865,.9974,.2685],[.5989,.9964,.2604],[.6109,.9951,.2528],[.6223,.9937,.2458],[.6332,.992,.2394],[.6436,.99,.2336],[.6539,.9878,.2284],[.6643,.9852,.2237],[.6746,.9825,.2196],[.6849,.9794,.216],[.6952,.9761,.2129],[.7055,.9726,.2103],[.7158,.9688,.2082],[.726,.9647,.2064],[.7361,.9604,.205],[.7462,.9559,.2041],[.7562,.9512,.2034],[.7661,.9463,.2031],[.7759,.9411,.2031],[.7856,.9358,.2034],[.7952,.9302,.2039],[.8047,.9245,.2046],[.8141,.9186,.2055],[.8233,.9125,.2066],[.8324,.9063,.2079],[.8413,.8999,.2093],[.8501,.8933,.2107],[.8587,.8866,.2123],[.8671,.8797,.2139],[.8753,.8727,.2156],[.8833,.8655,.2172],[.8911,.8583,.2188],[.8987,.8509,.2204],[.906,.8434,.2219],[.9132,.8358,.2233],[.92,.8281,.2246],[.9267,.8202,.2257],[.933,.8124,.2267],[.9391,.8044,.2274],[.9449,.7963,.228],[.9504,.7882,.2283],[.9556,.78,.2284],[.9605,.7718,.2281],[.9651,.7635,.2275],[.9693,.7552,.2266],[.9732,.7468,.2254],[.9768,.7384,.2237],[.98,.73,.2216],[.9829,.7214,.2192],[.9855,.7125,.2165],[.9878,.7033,.2136],[.9899,.6938,.2104],[.9916,.6841,.2071],[.9931,.6741,.2035],[.9944,.6639,.1997],[.9954,.6534,.1958],[.9961,.6428,.1916],[.9965,.6319,.1874],[.9968,.6209,.183],[.9967,.6098,.1784],[.9964,.5985,.1738],[.9959,.587,.169],[.9952,.5755,.1641],[.9942,.5639,.1592],[.993,.5521,.1542],[.9915,.5404,.1491],[.9899,.5285,.144],[.988,.5167,.1388],[.9859,.5048,.1337],[.9836,.4929,.1285],[.9811,.481,.1233],[.9784,.4692,.1182],[.9754,.4574,.113],[.9723,.4456,.108],[.969,.434,.1029],[.9656,.4224,.098],[.9619,.4109,.0931],[.958,.3996,.0883],[.954,.3884,.0836],[.9498,.3773,.079],[.9454,.3664,.0746],[.9408,.3557,.0703],[.9361,.3451,.0662],[.9312,.3348,.0622],[.9262,.3247,.0584],[.921,.3149,.0548],[.9157,.3053,.0513],[.9102,.296,.0481],[.9046,.287,.0452],[.8989,.2782,.0424],[.893,.2698,.0399],[.8869,.2615,.0375],[.8807,.2533,.0352],[.8742,.2453,.033],[.8676,.2373,.0308],[.8608,.2294,.0288],[.8538,.2217,.0268],[.8466,.2141,.0249],[.8393,.2065,.023],[.8317,.1991,.0213],[.824,.1918,.0197],[.8161,.1846,.0181],[.808,.1775,.0166],[.7997,.1706,.0152],[.7912,.1637,.0139],[.7826,.1569,.0126],[.7738,.1503,.0115],[.7648,.1437,.0104],[.7556,.1373,.0094],[.7462,.131,.0085],[.7366,.1248,.0077],[.7269,.1187,.007],[.7169,.1127,.0063],[.7068,.1068,.0057],[.6965,.101,.0052],[.686,.0954,.0048],[.6754,.0898,.0045],[.6645,.0844,.0042],[.6534,.079,.0041],[.6422,.0738,.004],[.6308,.0687,.004],[.6192,.0637,.0041],[.6075,.0588,.0043],[.5955,.054,.0045],[.5834,.0493,.0049],[.571,.0447,.0053],[.5585,.0403,.0058],[.5458,.0359,.0064],[.533,.0317,.007],[.5199,.0276,.0078],[.5066,.0235,.0086],[.4932,.0196,.0096],[.4796,.0158,.0106]]};ce.twilight={interpolate:!0,colors:[[.8858,.85,.888],[.8838,.8507,.8872],[.8817,.8513,.8864],[.8795,.8517,.8854],[.8772,.8519,.8843],[.8749,.8519,.8832],[.8723,.8518,.8819],[.8697,.8515,.8805],[.867,.8511,.8791],[.8641,.8505,.8776],[.8611,.8498,.876],[.858,.8489,.8743],[.8547,.8479,.8726],[.8513,.8467,.8709],[.8478,.8455,.869],[.8441,.8441,.8672],[.8403,.8426,.8653],[.8363,.8409,.8633],[.8322,.8392,.8613],[.828,.8374,.8592],[.8236,.8355,.8571],[.819,.8335,.855],[.8144,.8315,.8528],[.8096,.8293,.8506],[.8047,.8271,.8484],[.7997,.8248,.8462],[.7945,.8225,.8439],[.7893,.82,.8416],[.784,.8176,.8394],[.7786,.815,.8371],[.7731,.8124,.8348],[.7675,.8098,.8325],[.7619,.8071,.8303],[.7562,.8044,.828],[.7504,.8016,.8258],[.7446,.7988,.8236],[.7387,.796,.8214],[.7328,.7931,.8193],[.7269,.7902,.8172],[.721,.7872,.8151],[.715,.7843,.8131],[.709,.7813,.8111],[.703,.7782,.8092],[.697,.7752,.8073],[.691,.7721,.8055],[.6851,.769,.8037],[.6791,.7658,.802],[.6731,.7627,.8003],[.6672,.7595,.7986],[.6613,.7563,.797],[.6554,.7531,.7955],[.6496,.7499,.794],[.6438,.7466,.7926],[.638,.7433,.7912],[.6323,.74,.7898],[.6266,.7367,.7885],[.621,.7334,.7872],[.6154,.73,.786],[.6099,.7267,.7847],[.6044,.7233,.7836],[.599,.7199,.7825],[.5936,.7165,.7814],[.5883,.713,.7803],[.583,.7096,.7793],[.5778,.7061,.7783],[.5727,.7027,.7773],[.5676,.6992,.7763],[.5626,.6957,.7754],[.5576,.6922,.7745],[.5527,.6886,.7736],[.5478,.6851,.7728],[.5431,.6815,.7719],[.5383,.678,.7711],[.5337,.6744,.7703],[.5291,.6708,.7696],[.5246,.6672,.7688],[.5201,.6636,.7681],[.5157,.6599,.7673],[.5114,.6563,.7666],[.5071,.6526,.7659],[.5029,.649,.7652],[.4987,.6453,.7645],[.4947,.6416,.7639],[.4907,.6379,.7632],[.4867,.6342,.7626],[.4829,.6304,.7619],[.4791,.6267,.7613],[.4753,.6229,.7607],[.4717,.6192,.76],[.4681,.6154,.7594],[.4646,.6116,.7588],[.4611,.6078,.7582],[.4577,.6039,.7576],[.4544,.6001,.757],[.4512,.5962,.7564],[.448,.5924,.7557],[.4449,.5885,.7551],[.4419,.5846,.7545],[.439,.5807,.7539],[.4361,.5768,.7533],[.4333,.5729,.7527],[.4306,.5689,.752],[.4279,.565,.7514],[.4253,.561,.7508],[.4228,.557,.7501],[.4204,.553,.7494],[.418,.549,.7488],[.4157,.5449,.7481],[.4135,.5409,.7474],[.4114,.5368,.7467],[.4093,.5328,.746],[.4073,.5287,.7452],[.4053,.5246,.7445],[.4035,.5205,.7437],[.4017,.5164,.743],[.3999,.5122,.7422],[.3983,.5081,.7414],[.3967,.5039,.7405],[.3951,.4997,.7397],[.3937,.4955,.7388],[.3923,.4913,.7379],[.3909,.4871,.737],[.3896,.4828,.736],[.3884,.4786,.7351],[.3872,.4743,.7341],[.3861,.47,.7331],[.3851,.4657,.732],[.3841,.4614,.7309],[.3831,.4571,.7298],[.3822,.4527,.7287],[.3814,.4484,.7276],[.3806,.444,.7264],[.3798,.4396,.7251],[.3791,.4352,.7239],[.3784,.4308,.7226],[.3778,.4264,.7213],[.3772,.4219,.7199],[.3766,.4175,.7185],[.3761,.413,.7171],[.3756,.4086,.7156],[.3751,.4041,.7141],[.3747,.3996,.7126],[.3743,.395,.711],[.3739,.3905,.7094],[.3736,.386,.7077],[.3732,.3814,.706],[.3729,.3768,.7042],[.3726,.3723,.7024],[.3724,.3677,.7006],[.3721,.3631,.6987],[.3719,.3584,.6968],[.3716,.3538,.6948],[.3714,.3492,.6927],[.3712,.3445,.6907],[.3709,.3399,.6885],[.3707,.3352,.6863],[.3705,.3305,.6841],[.3703,.3258,.6818],[.3701,.3211,.6794],[.3699,.3164,.677],[.3697,.3117,.6746],[.3694,.3069,.6721],[.3692,.3022,.6695],[.369,.2974,.6668],[.3687,.2927,.6641],[.3684,.2879,.6613],[.3681,.2832,.6585],[.3678,.2784,.6556],[.3675,.2736,.6526],[.3672,.2688,.6496],[.3668,.264,.6465],[.3664,.2593,.6433],[.366,.2545,.64],[.3656,.2497,.6367],[.3651,.2449,.6333],[.3646,.2401,.6298],[.3641,.2354,.6262],[.3635,.2306,.6225],[.3629,.2258,.6188],[.3622,.2211,.615],[.3615,.2164,.611],[.3608,.2116,.607],[.36,.2069,.6029],[.3592,.2023,.5987],[.3583,.1976,.5944],[.3574,.193,.59],[.3564,.1884,.5855],[.3554,.1838,.5809],[.3543,.1793,.5762],[.3531,.1748,.5714],[.3519,.1703,.5665],[.3506,.166,.5615],[.3492,.1616,.5563],[.3478,.1573,.5511],[.3463,.1531,.5458],[.3447,.149,.5403],[.3431,.1449,.5347],[.3414,.1409,.5291],[.3395,.137,.5233],[.3376,.1332,.5174],[.3357,.1295,.5114],[.3336,.1259,.5054],[.3315,.1224,.4992],[.3292,.1191,.4929],[.3269,.1158,.4866],[.3245,.1126,.4802],[.322,.1096,.4737],[.3195,.1067,.4671],[.3168,.1039,.4605],[.3141,.1012,.4539],[.3113,.0987,.4472],[.3084,.0963,.4405],[.3055,.094,.4337],[.3025,.0918,.427],[.2994,.0897,.4202],[.2963,.0877,.4135],[.2931,.0859,.4067],[.2899,.0841,.4],[.2867,.0824,.3933],[.2834,.0809,.3867],[.2801,.0794,.3801],[.2768,.078,.3735],[.2734,.0767,.367],[.2701,.0755,.3606],[.2667,.0743,.3542],[.2634,.0733,.3479],[.26,.0723,.3417],[.2567,.0714,.3356],[.2534,.0705,.3296],[.2501,.0698,.3237],[.2469,.0691,.3179],[.2437,.0684,.3122],[.2405,.0679,.3066],[.2374,.0674,.3011],[.2343,.0669,.2957],[.2313,.0666,.2905],[.2284,.0663,.2854],[.2255,.0661,.2804],[.2227,.0659,.2756],[.22,.0659,.2709],[.2174,.0659,.2663],[.2148,.0659,.2619],[.2124,.0661,.2577],[.21,.0663,.2535],[.2077,.0666,.2495],[.2056,.067,.2457],[.2035,.0674,.2421],[.2016,.068,.2385],[.1997,.0686,.2352],[.1979,.0693,.2319],[.1961,.0703,.2287],[.1941,.0716,.2256],[.192,.0732,.2224],[.1898,.075,.2193],[.1874,.0771,.2162],[.1849,.0794,.2131],[.1877,.0773,.2139],[.1905,.0753,.2147],[.1932,.0736,.2154],[.1957,.0722,.2162],[.1982,.071,.2169],[.2006,.0701,.2176],[.2029,.0694,.2183],[.2053,.0689,.2191],[.2079,.0685,.22],[.2105,.0681,.221],[.2133,.0678,.2221],[.2163,.0676,.2232],[.2193,.0675,.2245],[.2225,.0674,.2259],[.2258,.0674,.2273],[.2292,.0674,.2288],[.2327,.0676,.2304],[.2363,.0677,.232],[.24,.068,.2337],[.2438,.0683,.2355],[.2477,.0687,.2373],[.2517,.0691,.2392],[.2558,.0695,.2411],[.26,.0701,.2431],[.2643,.0706,.2451],[.2686,.0712,.2471],[.273,.0719,.2492],[.2775,.0726,.2512],[.282,.0733,.2533],[.2866,.0741,.2554],[.2913,.0749,.2576],[.296,.0757,.2597],[.3008,.0766,.2618],[.3056,.0775,.2639],[.3105,.0785,.266],[.3154,.0794,.2681],[.3203,.0804,.2702],[.3253,.0814,.2723],[.3303,.0825,.2743],[.3353,.0835,.2763],[.3404,.0846,.2783],[.3455,.0857,.2803],[.3506,.0869,.2822],[.3557,.088,.2841],[.3609,.0892,.2859],[.3661,.0904,.2877],[.3712,.0917,.2895],[.3764,.0929,.2912],[.3816,.0942,.2928],[.3868,.0956,.2944],[.392,.0969,.296],[.3972,.0983,.2974],[.4024,.0997,.2989],[.4076,.1012,.3002],[.4128,.1027,.3015],[.418,.1042,.3028],[.4231,.1058,.304],[.4283,.1074,.3051],[.4334,.1091,.3061],[.4386,.1108,.3071],[.4437,.1125,.308],[.4488,.1144,.3089],[.4538,.1162,.3097],[.4589,.1181,.3104],[.4639,.1201,.3111],[.4689,.1222,.3117],[.4738,.1243,.3123],[.4788,.1264,.3127],[.4837,.1286,.3132],[.4885,.1309,.3135],[.4934,.1333,.3139],[.4981,.1357,.3141],[.5029,.1382,.3144],[.5076,.1407,.3145],[.5123,.1433,.3147],[.5169,.146,.3148],[.5215,.1487,.3148],[.526,.1515,.3148],[.5305,.1544,.3148],[.535,.1573,.3148],[.5394,.1602,.3147],[.5438,.1633,.3146],[.5481,.1664,.3145],[.5524,.1695,.3144],[.5566,.1727,.3142],[.5608,.1759,.3141],[.565,.1792,.3139],[.5691,.1826,.3137],[.5731,.186,.3136],[.5772,.1894,.3134],[.5811,.1929,.3132],[.5851,.1964,.3131],[.5889,.2,.3129],[.5928,.2036,.3127],[.5966,.2072,.3126],[.6004,.2109,.3124],[.6041,.2146,.3123],[.6078,.2184,.3122],[.6114,.2221,.3121],[.615,.2259,.3121],[.6186,.2298,.312],[.6221,.2337,.312],[.6256,.2376,.312],[.629,.2415,.312],[.6324,.2455,.312],[.6358,.2494,.3121],[.6391,.2535,.3122],[.6424,.2575,.3123],[.6457,.2616,.3125],[.6489,.2656,.3127],[.6521,.2697,.3129],[.6552,.2739,.3132],[.6583,.278,.3135],[.6614,.2822,.3138],[.6644,.2864,.3142],[.6674,.2906,.3146],[.6704,.2949,.315],[.6733,.2991,.3155],[.6762,.3034,.3161],[.6791,.3077,.3167],[.6819,.312,.3173],[.6847,.3163,.318],[.6874,.3207,.3187],[.6901,.3251,.3195],[.6928,.3295,.3203],[.6955,.3339,.3211],[.6981,.3383,.3221],[.7006,.3427,.3231],[.7032,.3472,.3241],[.7057,.3517,.3252],[.7081,.3561,.3263],[.7105,.3607,.3275],[.7129,.3652,.3288],[.7153,.3697,.3301],[.7176,.3743,.3315],[.7199,.3788,.333],[.7221,.3834,.3345],[.7243,.388,.3361],[.7265,.3926,.3377],[.7286,.3972,.3395],[.7307,.4019,.3412],[.7328,.4065,.3431],[.7348,.4112,.345],[.7368,.4159,.347],[.7388,.4205,.3491],[.7407,.4252,.3513],[.7426,.4299,.3535],[.7445,.4347,.3558],[.7463,.4394,.3582],[.748,.4441,.3607],[.7498,.4489,.3633],[.7515,.4536,.3659],[.7532,.4584,.3686],[.7548,.4632,.3714],[.7564,.468,.3743],[.758,.4728,.3773],[.7596,.4776,.3804],[.7611,.4824,.3835],[.7626,.4872,.3868],[.764,.492,.3901],[.7655,.4968,.3935],[.7669,.5017,.397],[.7682,.5065,.4006],[.7696,.5113,.4043],[.7709,.5162,.4081],[.7722,.521,.412],[.7734,.5259,.4159],[.7747,.5307,.42],[.7759,.5355,.4241],[.7771,.5404,.4284],[.7783,.5452,.4327],[.7795,.5501,.4371],[.7806,.5549,.4416],[.7817,.5598,.4462],[.7829,.5646,.4509],[.784,.5694,.4557],[.7851,.5742,.4606],[.7862,.5791,.4655],[.7872,.5839,.4706],[.7883,.5887,.4757],[.7894,.5935,.4809],[.7905,.5983,.4862],[.7915,.6031,.4916],[.7926,.6078,.4971],[.7937,.6126,.5026],[.7948,.6174,.5082],[.7958,.6221,.5139],[.7969,.6268,.5196],[.798,.6316,.5255],[.7992,.6363,.5313],[.8003,.641,.5373],[.8014,.6457,.5433],[.8026,.6503,.5494],[.8038,.655,.5556],[.805,.6596,.5618],[.8062,.6643,.568],[.8075,.6689,.5743],[.8087,.6735,.5807],[.81,.678,.5871],[.8114,.6826,.5936],[.8127,.6871,.6001],[.8141,.6916,.6066],[.8155,.6961,.6132],[.8169,.7006,.6198],[.8184,.7051,.6264],[.8199,.7095,.633],[.8214,.7139,.6397],[.8229,.7183,.6464],[.8245,.7226,.6531],[.8261,.727,.6599],[.8278,.7313,.6666],[.8294,.7355,.6733],[.8311,.7398,.6801],[.8328,.744,.6868],[.8346,.7481,.6936],[.8363,.7523,.7003],[.8381,.7564,.707],[.8399,.7604,.7137],[.8417,.7644,.7203],[.8435,.7684,.727],[.8453,.7723,.7336],[.8471,.7761,.7401],[.8489,.7799,.7466],[.8507,.7837,.7531],[.8525,.7873,.7595],[.8543,.791,.7658],[.856,.7945,.7721],[.8578,.798,.7783],[.8594,.8014,.7844],[.8611,.8048,.7904],[.8627,.8081,.7963],[.8642,.8112,.802],[.8656,.8144,.8077],[.8671,.8174,.8131],[.8684,.8203,.8184],[.8697,.8231,.8235],[.8709,.8259,.8284],[.8722,.8285,.833],[.8734,.831,.8375],[.8745,.8333,.8417],[.8757,.8355,.8458],[.8769,.8376,.8496],[.878,.8395,.8533],[.8791,.8413,.8569],[.8802,.8429,.8603],[.8812,.8443,.8636],[.8821,.8456,.8667],[.883,.8467,.8698],[.8837,.8476,.8727],[.8843,.8484,.8756],[.8849,.8491,.8783],[.8853,.8496,.8809],[.8855,.8499,.8834],[.8857,.85,.8857]]};ce.twilight_shifted={interpolate:!0,colors:[[.1874,.0771,.2162],[.1898,.075,.2193],[.192,.0732,.2224],[.1941,.0716,.2256],[.1961,.0703,.2287],[.1979,.0693,.2319],[.1997,.0686,.2352],[.2016,.068,.2385],[.2035,.0674,.2421],[.2056,.067,.2457],[.2077,.0666,.2495],[.21,.0663,.2535],[.2124,.0661,.2577],[.2148,.0659,.2619],[.2174,.0659,.2663],[.22,.0659,.2709],[.2227,.0659,.2756],[.2255,.0661,.2804],[.2284,.0663,.2854],[.2313,.0666,.2905],[.2343,.0669,.2957],[.2374,.0674,.3011],[.2405,.0679,.3066],[.2437,.0684,.3122],[.2469,.0691,.3179],[.2501,.0698,.3237],[.2534,.0705,.3296],[.2567,.0714,.3356],[.26,.0723,.3417],[.2634,.0733,.3479],[.2667,.0743,.3542],[.2701,.0755,.3606],[.2734,.0767,.367],[.2768,.078,.3735],[.2801,.0794,.3801],[.2834,.0809,.3867],[.2867,.0824,.3933],[.2899,.0841,.4],[.2931,.0859,.4067],[.2963,.0877,.4135],[.2994,.0897,.4202],[.3025,.0918,.427],[.3055,.094,.4337],[.3084,.0963,.4405],[.3113,.0987,.4472],[.3141,.1012,.4539],[.3168,.1039,.4605],[.3195,.1067,.4671],[.322,.1096,.4737],[.3245,.1126,.4802],[.3269,.1158,.4866],[.3292,.1191,.4929],[.3315,.1224,.4992],[.3336,.1259,.5054],[.3357,.1295,.5114],[.3376,.1332,.5174],[.3395,.137,.5233],[.3414,.1409,.5291],[.3431,.1449,.5347],[.3447,.149,.5403],[.3463,.1531,.5458],[.3478,.1573,.5511],[.3492,.1616,.5563],[.3506,.166,.5615],[.3519,.1703,.5665],[.3531,.1748,.5714],[.3543,.1793,.5762],[.3554,.1838,.5809],[.3564,.1884,.5855],[.3574,.193,.59],[.3583,.1976,.5944],[.3592,.2023,.5987],[.36,.2069,.6029],[.3608,.2116,.607],[.3615,.2164,.611],[.3622,.2211,.615],[.3629,.2258,.6188],[.3635,.2306,.6225],[.3641,.2354,.6262],[.3646,.2401,.6298],[.3651,.2449,.6333],[.3656,.2497,.6367],[.366,.2545,.64],[.3664,.2593,.6433],[.3668,.264,.6465],[.3672,.2688,.6496],[.3675,.2736,.6526],[.3678,.2784,.6556],[.3681,.2832,.6585],[.3684,.2879,.6613],[.3687,.2927,.6641],[.369,.2974,.6668],[.3692,.3022,.6695],[.3694,.3069,.6721],[.3697,.3117,.6746],[.3699,.3164,.677],[.3701,.3211,.6794],[.3703,.3258,.6818],[.3705,.3305,.6841],[.3707,.3352,.6863],[.3709,.3399,.6885],[.3712,.3445,.6907],[.3714,.3492,.6927],[.3716,.3538,.6948],[.3719,.3584,.6968],[.3721,.3631,.6987],[.3724,.3677,.7006],[.3726,.3723,.7024],[.3729,.3768,.7042],[.3732,.3814,.706],[.3736,.386,.7077],[.3739,.3905,.7094],[.3743,.395,.711],[.3747,.3996,.7126],[.3751,.4041,.7141],[.3756,.4086,.7156],[.3761,.413,.7171],[.3766,.4175,.7185],[.3772,.4219,.7199],[.3778,.4264,.7213],[.3784,.4308,.7226],[.3791,.4352,.7239],[.3798,.4396,.7251],[.3806,.444,.7264],[.3814,.4484,.7276],[.3822,.4527,.7287],[.3831,.4571,.7298],[.3841,.4614,.7309],[.3851,.4657,.732],[.3861,.47,.7331],[.3872,.4743,.7341],[.3884,.4786,.7351],[.3896,.4828,.736],[.3909,.4871,.737],[.3923,.4913,.7379],[.3937,.4955,.7388],[.3951,.4997,.7397],[.3967,.5039,.7405],[.3983,.5081,.7414],[.3999,.5122,.7422],[.4017,.5164,.743],[.4035,.5205,.7437],[.4053,.5246,.7445],[.4073,.5287,.7452],[.4093,.5328,.746],[.4114,.5368,.7467],[.4135,.5409,.7474],[.4157,.5449,.7481],[.418,.549,.7488],[.4204,.553,.7494],[.4228,.557,.7501],[.4253,.561,.7508],[.4279,.565,.7514],[.4306,.5689,.752],[.4333,.5729,.7527],[.4361,.5768,.7533],[.439,.5807,.7539],[.4419,.5846,.7545],[.4449,.5885,.7551],[.448,.5924,.7557],[.4512,.5962,.7564],[.4544,.6001,.757],[.4577,.6039,.7576],[.4611,.6078,.7582],[.4646,.6116,.7588],[.4681,.6154,.7594],[.4717,.6192,.76],[.4753,.6229,.7607],[.4791,.6267,.7613],[.4829,.6304,.7619],[.4867,.6342,.7626],[.4907,.6379,.7632],[.4947,.6416,.7639],[.4987,.6453,.7645],[.5029,.649,.7652],[.5071,.6526,.7659],[.5114,.6563,.7666],[.5157,.6599,.7673],[.5201,.6636,.7681],[.5246,.6672,.7688],[.5291,.6708,.7696],[.5337,.6744,.7703],[.5383,.678,.7711],[.5431,.6815,.7719],[.5478,.6851,.7728],[.5527,.6886,.7736],[.5576,.6922,.7745],[.5626,.6957,.7754],[.5676,.6992,.7763],[.5727,.7027,.7773],[.5778,.7061,.7783],[.583,.7096,.7793],[.5883,.713,.7803],[.5936,.7165,.7814],[.599,.7199,.7825],[.6044,.7233,.7836],[.6099,.7267,.7847],[.6154,.73,.786],[.621,.7334,.7872],[.6266,.7367,.7885],[.6323,.74,.7898],[.638,.7433,.7912],[.6438,.7466,.7926],[.6496,.7499,.794],[.6554,.7531,.7955],[.6613,.7563,.797],[.6672,.7595,.7986],[.6731,.7627,.8003],[.6791,.7658,.802],[.6851,.769,.8037],[.691,.7721,.8055],[.697,.7752,.8073],[.703,.7782,.8092],[.709,.7813,.8111],[.715,.7843,.8131],[.721,.7872,.8151],[.7269,.7902,.8172],[.7328,.7931,.8193],[.7387,.796,.8214],[.7446,.7988,.8236],[.7504,.8016,.8258],[.7562,.8044,.828],[.7619,.8071,.8303],[.7675,.8098,.8325],[.7731,.8124,.8348],[.7786,.815,.8371],[.784,.8176,.8394],[.7893,.82,.8416],[.7945,.8225,.8439],[.7997,.8248,.8462],[.8047,.8271,.8484],[.8096,.8293,.8506],[.8144,.8315,.8528],[.819,.8335,.855],[.8236,.8355,.8571],[.828,.8374,.8592],[.8322,.8392,.8613],[.8363,.8409,.8633],[.8403,.8426,.8653],[.8441,.8441,.8672],[.8478,.8455,.869],[.8513,.8467,.8709],[.8547,.8479,.8726],[.858,.8489,.8743],[.8611,.8498,.876],[.8641,.8505,.8776],[.867,.8511,.8791],[.8697,.8515,.8805],[.8723,.8518,.8819],[.8749,.8519,.8832],[.8772,.8519,.8843],[.8795,.8517,.8854],[.8817,.8513,.8864],[.8838,.8507,.8872],[.8858,.85,.888],[.8857,.85,.8857],[.8855,.8499,.8834],[.8853,.8496,.8809],[.8849,.8491,.8783],[.8843,.8484,.8756],[.8837,.8476,.8727],[.883,.8467,.8698],[.8821,.8456,.8667],[.8812,.8443,.8636],[.8802,.8429,.8603],[.8791,.8413,.8569],[.878,.8395,.8533],[.8769,.8376,.8496],[.8757,.8355,.8458],[.8745,.8333,.8417],[.8734,.831,.8375],[.8722,.8285,.833],[.8709,.8259,.8284],[.8697,.8231,.8235],[.8684,.8203,.8184],[.8671,.8174,.8131],[.8656,.8144,.8077],[.8642,.8112,.802],[.8627,.8081,.7963],[.8611,.8048,.7904],[.8594,.8014,.7844],[.8578,.798,.7783],[.856,.7945,.7721],[.8543,.791,.7658],[.8525,.7873,.7595],[.8507,.7837,.7531],[.8489,.7799,.7466],[.8471,.7761,.7401],[.8453,.7723,.7336],[.8435,.7684,.727],[.8417,.7644,.7203],[.8399,.7604,.7137],[.8381,.7564,.707],[.8363,.7523,.7003],[.8346,.7481,.6936],[.8328,.744,.6868],[.8311,.7398,.6801],[.8294,.7355,.6733],[.8278,.7313,.6666],[.8261,.727,.6599],[.8245,.7226,.6531],[.8229,.7183,.6464],[.8214,.7139,.6397],[.8199,.7095,.633],[.8184,.7051,.6264],[.8169,.7006,.6198],[.8155,.6961,.6132],[.8141,.6916,.6066],[.8127,.6871,.6001],[.8114,.6826,.5936],[.81,.678,.5871],[.8087,.6735,.5807],[.8075,.6689,.5743],[.8062,.6643,.568],[.805,.6596,.5618],[.8038,.655,.5556],[.8026,.6503,.5494],[.8014,.6457,.5433],[.8003,.641,.5373],[.7992,.6363,.5313],[.798,.6316,.5255],[.7969,.6268,.5196],[.7958,.6221,.5139],[.7948,.6174,.5082],[.7937,.6126,.5026],[.7926,.6078,.4971],[.7915,.6031,.4916],[.7905,.5983,.4862],[.7894,.5935,.4809],[.7883,.5887,.4757],[.7872,.5839,.4706],[.7862,.5791,.4655],[.7851,.5742,.4606],[.784,.5694,.4557],[.7829,.5646,.4509],[.7817,.5598,.4462],[.7806,.5549,.4416],[.7795,.5501,.4371],[.7783,.5452,.4327],[.7771,.5404,.4284],[.7759,.5355,.4241],[.7747,.5307,.42],[.7734,.5259,.4159],[.7722,.521,.412],[.7709,.5162,.4081],[.7696,.5113,.4043],[.7682,.5065,.4006],[.7669,.5017,.397],[.7655,.4968,.3935],[.764,.492,.3901],[.7626,.4872,.3868],[.7611,.4824,.3835],[.7596,.4776,.3804],[.758,.4728,.3773],[.7564,.468,.3743],[.7548,.4632,.3714],[.7532,.4584,.3686],[.7515,.4536,.3659],[.7498,.4489,.3633],[.748,.4441,.3607],[.7463,.4394,.3582],[.7445,.4347,.3558],[.7426,.4299,.3535],[.7407,.4252,.3513],[.7388,.4205,.3491],[.7368,.4159,.347],[.7348,.4112,.345],[.7328,.4065,.3431],[.7307,.4019,.3412],[.7286,.3972,.3395],[.7265,.3926,.3377],[.7243,.388,.3361],[.7221,.3834,.3345],[.7199,.3788,.333],[.7176,.3743,.3315],[.7153,.3697,.3301],[.7129,.3652,.3288],[.7105,.3607,.3275],[.7081,.3561,.3263],[.7057,.3517,.3252],[.7032,.3472,.3241],[.7006,.3427,.3231],[.6981,.3383,.3221],[.6955,.3339,.3211],[.6928,.3295,.3203],[.6901,.3251,.3195],[.6874,.3207,.3187],[.6847,.3163,.318],[.6819,.312,.3173],[.6791,.3077,.3167],[.6762,.3034,.3161],[.6733,.2991,.3155],[.6704,.2949,.315],[.6674,.2906,.3146],[.6644,.2864,.3142],[.6614,.2822,.3138],[.6583,.278,.3135],[.6552,.2739,.3132],[.6521,.2697,.3129],[.6489,.2656,.3127],[.6457,.2616,.3125],[.6424,.2575,.3123],[.6391,.2535,.3122],[.6358,.2494,.3121],[.6324,.2455,.312],[.629,.2415,.312],[.6256,.2376,.312],[.6221,.2337,.312],[.6186,.2298,.312],[.615,.2259,.3121],[.6114,.2221,.3121],[.6078,.2184,.3122],[.6041,.2146,.3123],[.6004,.2109,.3124],[.5966,.2072,.3126],[.5928,.2036,.3127],[.5889,.2,.3129],[.5851,.1964,.3131],[.5811,.1929,.3132],[.5772,.1894,.3134],[.5731,.186,.3136],[.5691,.1826,.3137],[.565,.1792,.3139],[.5608,.1759,.3141],[.5566,.1727,.3142],[.5524,.1695,.3144],[.5481,.1664,.3145],[.5438,.1633,.3146],[.5394,.1602,.3147],[.535,.1573,.3148],[.5305,.1544,.3148],[.526,.1515,.3148],[.5215,.1487,.3148],[.5169,.146,.3148],[.5123,.1433,.3147],[.5076,.1407,.3145],[.5029,.1382,.3144],[.4981,.1357,.3141],[.4934,.1333,.3139],[.4885,.1309,.3135],[.4837,.1286,.3132],[.4788,.1264,.3127],[.4738,.1243,.3123],[.4689,.1222,.3117],[.4639,.1201,.3111],[.4589,.1181,.3104],[.4538,.1162,.3097],[.4488,.1144,.3089],[.4437,.1125,.308],[.4386,.1108,.3071],[.4334,.1091,.3061],[.4283,.1074,.3051],[.4231,.1058,.304],[.418,.1042,.3028],[.4128,.1027,.3015],[.4076,.1012,.3002],[.4024,.0997,.2989],[.3972,.0983,.2974],[.392,.0969,.296],[.3868,.0956,.2944],[.3816,.0942,.2928],[.3764,.0929,.2912],[.3712,.0917,.2895],[.3661,.0904,.2877],[.3609,.0892,.2859],[.3557,.088,.2841],[.3506,.0869,.2822],[.3455,.0857,.2803],[.3404,.0846,.2783],[.3353,.0835,.2763],[.3303,.0825,.2743],[.3253,.0814,.2723],[.3203,.0804,.2702],[.3154,.0794,.2681],[.3105,.0785,.266],[.3056,.0775,.2639],[.3008,.0766,.2618],[.296,.0757,.2597],[.2913,.0749,.2576],[.2866,.0741,.2554],[.282,.0733,.2533],[.2775,.0726,.2512],[.273,.0719,.2492],[.2686,.0712,.2471],[.2643,.0706,.2451],[.26,.0701,.2431],[.2558,.0695,.2411],[.2517,.0691,.2392],[.2477,.0687,.2373],[.2438,.0683,.2355],[.24,.068,.2337],[.2363,.0677,.232],[.2327,.0676,.2304],[.2292,.0674,.2288],[.2258,.0674,.2273],[.2225,.0674,.2259],[.2193,.0675,.2245],[.2163,.0676,.2232],[.2133,.0678,.2221],[.2105,.0681,.221],[.2079,.0685,.22],[.2053,.0689,.2191],[.2029,.0694,.2183],[.2006,.0701,.2176],[.1982,.071,.2169],[.1957,.0722,.2162],[.1932,.0736,.2154],[.1905,.0753,.2147],[.1877,.0773,.2139],[.1849,.0794,.2131]]};ce.viridis={interpolate:!0,colors:[[.267,.0049,.3294],[.2685,.0096,.3354],[.2699,.0146,.3414],[.2713,.0199,.3473],[.2726,.0256,.3531],[.2738,.0315,.3589],[.275,.0378,.3645],[.276,.0442,.3702],[.277,.0503,.3757],[.2779,.0563,.3812],[.2788,.0621,.3866],[.2796,.0678,.3919],[.2803,.0734,.3972],[.2809,.0789,.4023],[.2814,.0843,.4074],[.2819,.0897,.4124],[.2823,.095,.4173],[.2827,.1002,.4222],[.2829,.1054,.4269],[.2831,.1106,.4316],[.2832,.1157,.4361],[.2832,.1208,.4406],[.2832,.1258,.445],[.2831,.1309,.4492],[.2829,.1359,.4534],[.2826,.1409,.4575],[.2823,.1459,.4615],[.2819,.1509,.4654],[.2814,.1558,.4692],[.2809,.1608,.4729],[.2803,.1657,.4765],[.2796,.1706,.48],[.2788,.1755,.4834],[.278,.1804,.4867],[.2771,.1852,.4899],[.2762,.1901,.493],[.2752,.1949,.496],[.2741,.1997,.4989],[.273,.2045,.5017],[.2718,.2093,.5044],[.2706,.2141,.5071],[.2693,.2188,.5096],[.268,.2235,.512],[.2666,.2283,.5143],[.2651,.233,.5166],[.2637,.2376,.5188],[.2621,.2423,.5208],[.2606,.2469,.5228],[.259,.2515,.5247],[.2573,.2561,.5266],[.2556,.2607,.5283],[.2539,.2653,.53],[.2522,.2698,.5316],[.2504,.2743,.5331],[.2486,.2788,.5346],[.2468,.2832,.5359],[.245,.2877,.5373],[.2431,.2921,.5385],[.2412,.2965,.5397],[.2393,.3009,.5408],[.2374,.3052,.5419],[.2355,.3095,.5429],[.2336,.3138,.5439],[.2317,.3181,.5448],[.2297,.3224,.5457],[.2278,.3266,.5465],[.2259,.3308,.5473],[.2239,.335,.5481],[.222,.3392,.5488],[.2201,.3433,.5494],[.2181,.3474,.55],[.2162,.3515,.5506],[.2143,.3556,.5512],[.2124,.3597,.5517],[.2105,.3637,.5522],[.2086,.3678,.5527],[.2068,.3718,.5531],[.2049,.3757,.5535],[.2031,.3797,.5539],[.2012,.3837,.5543],[.1994,.3876,.5546],[.1976,.3915,.555],[.1959,.3954,.5553],[.1941,.3993,.5556],[.1924,.4032,.5558],[.1906,.4071,.5561],[.1889,.4109,.5563],[.1872,.4147,.5565],[.1856,.4186,.5568],[.1839,.4224,.5569],[.1823,.4262,.5571],[.1806,.43,.5573],[.179,.4338,.5574],[.1774,.4375,.5576],[.1758,.4413,.5577],[.1743,.445,.5578],[.1727,.4488,.5579],[.1712,.4525,.558],[.1696,.4563,.558],[.1681,.46,.5581],[.1666,.4637,.5581],[.1651,.4674,.5581],[.1636,.4711,.5581],[.1621,.4748,.5581],[.1607,.4785,.5581],[.1592,.4822,.5581],[.1577,.4859,.558],[.1563,.4896,.5579],[.1548,.4933,.5578],[.1534,.497,.5577],[.1519,.5007,.5576],[.1505,.5044,.5574],[.149,.5081,.5572],[.1476,.5117,.557],[.1462,.5154,.5568],[.1448,.5191,.5566],[.1433,.5228,.5563],[.1419,.5265,.556],[.1405,.5301,.5557],[.1391,.5338,.5553],[.1378,.5375,.5549],[.1364,.5412,.5545],[.1351,.5449,.554],[.1337,.5485,.5535],[.1324,.5522,.553],[.1312,.5559,.5525],[.1299,.5596,.5519],[.1287,.5633,.5512],[.1276,.5669,.5506],[.1265,.5706,.5498],[.1254,.5743,.5491],[.1244,.578,.5483],[.1235,.5817,.5474],[.1226,.5854,.5466],[.1218,.5891,.5456],[.1211,.5927,.5446],[.1206,.5964,.5436],[.1201,.6001,.5425],[.1197,.6038,.5414],[.1195,.6075,.5402],[.1194,.6111,.539],[.1195,.6148,.5377],[.1197,.6185,.5363],[.1201,.6222,.5349],[.1206,.6258,.5335],[.1214,.6295,.532],[.1223,.6332,.5304],[.1234,.6368,.5288],[.1248,.6405,.5271],[.1263,.6441,.5253],[.1281,.6477,.5235],[.1301,.6514,.5216],[.1323,.655,.5197],[.1347,.6586,.5176],[.1373,.6623,.5156],[.1402,.6659,.5134],[.1433,.6695,.5112],[.1466,.673,.5089],[.1501,.6766,.5066],[.1539,.6802,.5042],[.1579,.6838,.5017],[.162,.6873,.4991],[.1664,.6909,.4965],[.1709,.6944,.4938],[.1757,.6979,.491],[.1807,.7014,.4882],[.1858,.7049,.4853],[.1911,.7084,.4823],[.1966,.7118,.4792],[.2022,.7153,.4761],[.208,.7187,.4729],[.214,.7221,.4696],[.2201,.7255,.4662],[.2264,.7289,.4628],[.2328,.7322,.4593],[.2394,.7356,.4557],[.2461,.7389,.452],[.2529,.7422,.4483],[.2599,.7455,.4445],[.2669,.7488,.4406],[.2741,.752,.4366],[.2815,.7552,.4326],[.2889,.7584,.4284],[.2965,.7616,.4242],[.3041,.7647,.4199],[.3119,.7678,.4156],[.3198,.7709,.4112],[.3278,.774,.4066],[.3359,.777,.402],[.3441,.78,.3974],[.3524,.783,.3926],[.3607,.786,.3878],[.3692,.7889,.3829],[.3778,.7918,.3779],[.3864,.7946,.3729],[.3952,.7975,.3678],[.404,.8003,.3626],[.4129,.803,.3573],[.4219,.8058,.3519],[.431,.8085,.3465],[.4401,.8111,.341],[.4494,.8138,.3354],[.4587,.8164,.3297],[.4681,.8189,.324],[.4775,.8214,.3182],[.487,.8239,.3123],[.4966,.8264,.3064],[.5063,.8288,.3004],[.516,.8312,.2943],[.5258,.8335,.2881],[.5356,.8358,.2819],[.5455,.838,.2756],[.5555,.8403,.2693],[.5655,.8424,.2629],[.5756,.8446,.2564],[.5857,.8467,.2499],[.5958,.8487,.2433],[.606,.8507,.2367],[.6163,.8527,.2301],[.6266,.8546,.2234],[.6369,.8565,.2166],[.6473,.8584,.2099],[.6576,.8602,.2031],[.6681,.862,.1963],[.6785,.8637,.1895],[.6889,.8654,.1827],[.6994,.8671,.176],[.7099,.8688,.1693],[.7204,.8704,.1626],[.7309,.8719,.156],[.7414,.8734,.1496],[.7519,.875,.1432],[.7624,.8764,.1371],[.7729,.8779,.1311],[.7833,.8793,.1254],[.7938,.8807,.12],[.8042,.882,.115],[.8146,.8834,.1103],[.8249,.8847,.1062],[.8353,.886,.1026],[.8456,.8873,.0997],[.8558,.8886,.0975],[.866,.8899,.096],[.8762,.8911,.0952],[.8863,.8924,.0954],[.8963,.8936,.0963],[.9063,.8949,.0981],[.9162,.8961,.1007],[.9261,.8973,.1041],[.9359,.8986,.1081],[.9456,.8998,.1128],[.9553,.9011,.1181],[.9649,.9023,.1239],[.9744,.9036,.1302],[.9839,.9049,.1369],[.9932,.9062,.1439]]};ce.winter={interpolate:!0,colors:[[0,0,1],[0,.0039,.998],[0,.0078,.9961],[0,.0118,.9941],[0,.0157,.9922],[0,.0196,.9902],[0,.0235,.9882],[0,.0275,.9863],[0,.0314,.9843],[0,.0353,.9824],[0,.0392,.9804],[0,.0431,.9784],[0,.0471,.9765],[0,.051,.9745],[0,.0549,.9725],[0,.0588,.9706],[0,.0627,.9686],[0,.0667,.9667],[0,.0706,.9647],[0,.0745,.9627],[0,.0784,.9608],[0,.0824,.9588],[0,.0863,.9569],[0,.0902,.9549],[0,.0941,.9529],[0,.098,.951],[0,.102,.949],[0,.1059,.9471],[0,.1098,.9451],[0,.1137,.9431],[0,.1176,.9412],[0,.1216,.9392],[0,.1255,.9373],[0,.1294,.9353],[0,.1333,.9333],[0,.1373,.9314],[0,.1412,.9294],[0,.1451,.9275],[0,.149,.9255],[0,.1529,.9235],[0,.1569,.9216],[0,.1608,.9196],[0,.1647,.9176],[0,.1686,.9157],[0,.1725,.9137],[0,.1765,.9118],[0,.1804,.9098],[0,.1843,.9078],[0,.1882,.9059],[0,.1922,.9039],[0,.1961,.902],[0,.2,.9],[0,.2039,.898],[0,.2078,.8961],[0,.2118,.8941],[0,.2157,.8922],[0,.2196,.8902],[0,.2235,.8882],[0,.2275,.8863],[0,.2314,.8843],[0,.2353,.8824],[0,.2392,.8804],[0,.2431,.8784],[0,.2471,.8765],[0,.251,.8745],[0,.2549,.8725],[0,.2588,.8706],[0,.2627,.8686],[0,.2667,.8667],[0,.2706,.8647],[0,.2745,.8627],[0,.2784,.8608],[0,.2824,.8588],[0,.2863,.8569],[0,.2902,.8549],[0,.2941,.8529],[0,.298,.851],[0,.302,.849],[0,.3059,.8471],[0,.3098,.8451],[0,.3137,.8431],[0,.3176,.8412],[0,.3216,.8392],[0,.3255,.8373],[0,.3294,.8353],[0,.3333,.8333],[0,.3373,.8314],[0,.3412,.8294],[0,.3451,.8275],[0,.349,.8255],[0,.3529,.8235],[0,.3569,.8216],[0,.3608,.8196],[0,.3647,.8176],[0,.3686,.8157],[0,.3725,.8137],[0,.3765,.8118],[0,.3804,.8098],[0,.3843,.8078],[0,.3882,.8059],[0,.3922,.8039],[0,.3961,.802],[0,.4,.8],[0,.4039,.798],[0,.4078,.7961],[0,.4118,.7941],[0,.4157,.7922],[0,.4196,.7902],[0,.4235,.7882],[0,.4275,.7863],[0,.4314,.7843],[0,.4353,.7824],[0,.4392,.7804],[0,.4431,.7784],[0,.4471,.7765],[0,.451,.7745],[0,.4549,.7725],[0,.4588,.7706],[0,.4627,.7686],[0,.4667,.7667],[0,.4706,.7647],[0,.4745,.7627],[0,.4784,.7608],[0,.4824,.7588],[0,.4863,.7569],[0,.4902,.7549],[0,.4941,.7529],[0,.498,.751],[0,.502,.749],[0,.5059,.7471],[0,.5098,.7451],[0,.5137,.7431],[0,.5176,.7412],[0,.5216,.7392],[0,.5255,.7373],[0,.5294,.7353],[0,.5333,.7333],[0,.5373,.7314],[0,.5412,.7294],[0,.5451,.7275],[0,.549,.7255],[0,.5529,.7235],[0,.5569,.7216],[0,.5608,.7196],[0,.5647,.7176],[0,.5686,.7157],[0,.5725,.7137],[0,.5765,.7118],[0,.5804,.7098],[0,.5843,.7078],[0,.5882,.7059],[0,.5922,.7039],[0,.5961,.702],[0,.6,.7],[0,.6039,.698],[0,.6078,.6961],[0,.6118,.6941],[0,.6157,.6922],[0,.6196,.6902],[0,.6235,.6882],[0,.6275,.6863],[0,.6314,.6843],[0,.6353,.6824],[0,.6392,.6804],[0,.6431,.6784],[0,.6471,.6765],[0,.651,.6745],[0,.6549,.6725],[0,.6588,.6706],[0,.6627,.6686],[0,.6667,.6667],[0,.6706,.6647],[0,.6745,.6627],[0,.6784,.6608],[0,.6824,.6588],[0,.6863,.6569],[0,.6902,.6549],[0,.6941,.6529],[0,.698,.651],[0,.702,.649],[0,.7059,.6471],[0,.7098,.6451],[0,.7137,.6431],[0,.7176,.6412],[0,.7216,.6392],[0,.7255,.6373],[0,.7294,.6353],[0,.7333,.6333],[0,.7373,.6314],[0,.7412,.6294],[0,.7451,.6275],[0,.749,.6255],[0,.7529,.6235],[0,.7569,.6216],[0,.7608,.6196],[0,.7647,.6176],[0,.7686,.6157],[0,.7725,.6137],[0,.7765,.6118],[0,.7804,.6098],[0,.7843,.6078],[0,.7882,.6059],[0,.7922,.6039],[0,.7961,.602],[0,.8,.6],[0,.8039,.598],[0,.8078,.5961],[0,.8118,.5941],[0,.8157,.5922],[0,.8196,.5902],[0,.8235,.5882],[0,.8275,.5863],[0,.8314,.5843],[0,.8353,.5824],[0,.8392,.5804],[0,.8431,.5784],[0,.8471,.5765],[0,.851,.5745],[0,.8549,.5725],[0,.8588,.5706],[0,.8627,.5686],[0,.8667,.5667],[0,.8706,.5647],[0,.8745,.5627],[0,.8784,.5608],[0,.8824,.5588],[0,.8863,.5569],[0,.8902,.5549],[0,.8941,.5529],[0,.898,.551],[0,.902,.549],[0,.9059,.5471],[0,.9098,.5451],[0,.9137,.5431],[0,.9176,.5412],[0,.9216,.5392],[0,.9255,.5373],[0,.9294,.5353],[0,.9333,.5333],[0,.9373,.5314],[0,.9412,.5294],[0,.9451,.5275],[0,.949,.5255],[0,.9529,.5235],[0,.9569,.5216],[0,.9608,.5196],[0,.9647,.5176],[0,.9686,.5157],[0,.9725,.5137],[0,.9765,.5118],[0,.9804,.5098],[0,.9843,.5078],[0,.9882,.5059],[0,.9922,.5039],[0,.9961,.502],[0,1,.5]]};function zs(r,e,t){let i=X0(e,t);if(!i)return 0;let{colors:s,stops:n}=Tp(i.colors,i.stops);return Eb(r,i.interpolate,s,n,i.reverse)}function Eb(r,e,t,i,s){return r=Math.clamp(r,0,1),s===!0&&(r=1-r),o7(e===!0?Sb(r,t,i):Cb(r,t,i))}function X0(r,e){if(r.startsWith("custom:")){if(r=r.slice(7),!(r in e.customColorMaps)){console.error("Custom colormap "+r+" does not exist!");return}let t=e.customColorMaps[r];return{colors:t.colors.map(i=>Ti(i).rgb),interpolate:t.interpolate,reverse:t.reverse,stops:t.stops}}else{let t=!1;if(r.endsWith("_r")&&(t=!0,r=r.substring(0,r.length-2)),!(r in ce)){console.error("Colormap "+r+" does not exist!");return}return{interpolate:ce[r].interpolate,reverse:t,colors:ce[r].colors.map(i=>Vn([i[0]*255,i[1]*255,i[2]*255]))}}}function Tp(r,e){if(e){if(e=e,e.lengthi+o*s))}}else e=Array.from({length:r.length},(i,s)=>s/(r.length-1));let t=r.map((i,s)=>({col:i,stop:e[s]})).sort((i,s)=>i.stop-s.stop);return{colors:t.map(i=>i.col),stops:t.map(i=>i.stop)}}function Sb(r,e,t){let i=t.findLastIndex(d=>d<=r);i===-1&&(i=0);let s=t.findIndex(d=>d>r);s===-1&&(s=e.length-1);let n=s===i?1:(r-t[i])/(t[s]-t[i]),o=e[i],a=e[s],l=$0(o)*(1-n)+$0(a)*n,c=q0(o)*(1-n)+q0(a)*n,h=Y0(o)*(1-n)+Y0(a)*n;return os(l,c,h)}function Cb(r,e,t){return e[Math.max(0,t.findLastIndex(i=>i<=r))]}function o7(r){let e=u.settings.interactivesBrightness[u.app.getTheme()==="moonstone"?"light":"dark"];return n7(r,e)}var hr=(r=>(r[r.WEBGL_LEGACY=0]="WEBGL_LEGACY",r[r.WEBGL=1]="WEBGL",r[r.WEBGL2=2]="WEBGL2",r))(hr||{}),_p=(r=>(r[r.UNKNOWN=0]="UNKNOWN",r[r.WEBGL=1]="WEBGL",r[r.CANVAS=2]="CANVAS",r))(_p||{}),xh=(r=>(r[r.COLOR=16384]="COLOR",r[r.DEPTH=256]="DEPTH",r[r.STENCIL=1024]="STENCIL",r))(xh||{}),ke=(r=>(r[r.NORMAL=0]="NORMAL",r[r.ADD=1]="ADD",r[r.MULTIPLY=2]="MULTIPLY",r[r.SCREEN=3]="SCREEN",r[r.OVERLAY=4]="OVERLAY",r[r.DARKEN=5]="DARKEN",r[r.LIGHTEN=6]="LIGHTEN",r[r.COLOR_DODGE=7]="COLOR_DODGE",r[r.COLOR_BURN=8]="COLOR_BURN",r[r.HARD_LIGHT=9]="HARD_LIGHT",r[r.SOFT_LIGHT=10]="SOFT_LIGHT",r[r.DIFFERENCE=11]="DIFFERENCE",r[r.EXCLUSION=12]="EXCLUSION",r[r.HUE=13]="HUE",r[r.SATURATION=14]="SATURATION",r[r.COLOR=15]="COLOR",r[r.LUMINOSITY=16]="LUMINOSITY",r[r.NORMAL_NPM=17]="NORMAL_NPM",r[r.ADD_NPM=18]="ADD_NPM",r[r.SCREEN_NPM=19]="SCREEN_NPM",r[r.NONE=20]="NONE",r[r.SRC_OVER=0]="SRC_OVER",r[r.SRC_IN=21]="SRC_IN",r[r.SRC_OUT=22]="SRC_OUT",r[r.SRC_ATOP=23]="SRC_ATOP",r[r.DST_OVER=24]="DST_OVER",r[r.DST_IN=25]="DST_IN",r[r.DST_OUT=26]="DST_OUT",r[r.DST_ATOP=27]="DST_ATOP",r[r.ERASE=26]="ERASE",r[r.SUBTRACT=28]="SUBTRACT",r[r.XOR=29]="XOR",r))(ke||{}),K0=(r=>(r[r.POINTS=0]="POINTS",r[r.LINES=1]="LINES",r[r.LINE_LOOP=2]="LINE_LOOP",r[r.LINE_STRIP=3]="LINE_STRIP",r[r.TRIANGLES=4]="TRIANGLES",r[r.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",r[r.TRIANGLE_FAN=6]="TRIANGLE_FAN",r))(K0||{}),le=(r=>(r[r.RGBA=6408]="RGBA",r[r.RGB=6407]="RGB",r[r.RG=33319]="RG",r[r.RED=6403]="RED",r[r.RGBA_INTEGER=36249]="RGBA_INTEGER",r[r.RGB_INTEGER=36248]="RGB_INTEGER",r[r.RG_INTEGER=33320]="RG_INTEGER",r[r.RED_INTEGER=36244]="RED_INTEGER",r[r.ALPHA=6406]="ALPHA",r[r.LUMINANCE=6409]="LUMINANCE",r[r.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",r[r.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",r[r.DEPTH_STENCIL=34041]="DEPTH_STENCIL",r))(le||{}),ls=(r=>(r[r.TEXTURE_2D=3553]="TEXTURE_2D",r[r.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",r[r.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",r[r.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",r[r.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",r[r.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",r[r.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",r))(ls||{}),Ce=(r=>(r[r.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",r[r.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",r[r.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",r[r.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",r[r.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",r[r.UNSIGNED_INT=5125]="UNSIGNED_INT",r[r.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",r[r.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",r[r.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",r[r.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",r[r.BYTE=5120]="BYTE",r[r.SHORT=5122]="SHORT",r[r.INT=5124]="INT",r[r.FLOAT=5126]="FLOAT",r[r.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",r[r.HALF_FLOAT=36193]="HALF_FLOAT",r))(Ce||{}),Dh=(r=>(r[r.FLOAT=0]="FLOAT",r[r.INT=1]="INT",r[r.UINT=2]="UINT",r))(Dh||{}),Nr=(r=>(r[r.NEAREST=0]="NEAREST",r[r.LINEAR=1]="LINEAR",r))(Nr||{}),dr=(r=>(r[r.CLAMP=33071]="CLAMP",r[r.REPEAT=10497]="REPEAT",r[r.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",r))(dr||{}),x0=(r=>(r[r.OFF=0]="OFF",r[r.POW2=1]="POW2",r[r.ON=2]="ON",r[r.ON_MANUAL=3]="ON_MANUAL",r))(x0||{}),Qt=(r=>(r[r.NPM=0]="NPM",r[r.UNPACK=1]="UNPACK",r[r.PMA=2]="PMA",r[r.NO_PREMULTIPLIED_ALPHA=0]="NO_PREMULTIPLIED_ALPHA",r[r.PREMULTIPLY_ON_UPLOAD=1]="PREMULTIPLY_ON_UPLOAD",r[r.PREMULTIPLIED_ALPHA=2]="PREMULTIPLIED_ALPHA",r))(Qt||{}),pr=(r=>(r[r.NO=0]="NO",r[r.YES=1]="YES",r[r.AUTO=2]="AUTO",r[r.BLEND=0]="BLEND",r[r.CLEAR=1]="CLEAR",r[r.BLIT=2]="BLIT",r))(pr||{}),bh=(r=>(r[r.AUTO=0]="AUTO",r[r.MANUAL=1]="MANUAL",r))(bh||{}),B0=(r=>(r.LOW="lowp",r.MEDIUM="mediump",r.HIGH="highp",r))(B0||{}),Nt=(r=>(r[r.NONE=0]="NONE",r[r.SCISSOR=1]="SCISSOR",r[r.STENCIL=2]="STENCIL",r[r.SPRITE=3]="SPRITE",r[r.COLOR=4]="COLOR",r))(Nt||{});var ut=(r=>(r[r.NONE=0]="NONE",r[r.LOW=2]="LOW",r[r.MEDIUM=4]="MEDIUM",r[r.HIGH=8]="HIGH",r))(ut||{}),Z0=(r=>(r[r.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",r[r.ARRAY_BUFFER=34962]="ARRAY_BUFFER",r[r.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",r))(Z0||{});var Fp={createCanvas:(r,e)=>{let t=document.createElement("canvas");return t.width=r,t.height=e,t},getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(r,e)=>fetch(r,e),parseXML:r=>new DOMParser().parseFromString(r,"text/xml")};var K={ADAPTER:Fp,RESOLUTION:1,CREATE_IMAGE_BITMAP:!1,ROUND_PIXELS:!1};var Ap=/iPhone/i,a7=/iPod/i,l7=/iPad/i,c7=/\biOS-universal(?:.+)Mac\b/i,kp=/\bAndroid(?:.+)Mobile\b/i,u7=/Android/i,jo=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,Eh=/Silk/i,cs=/Windows Phone/i,h7=/\bWindows(?:.+)ARM\b/i,d7=/BlackBerry/i,p7=/BB10/i,f7=/Opera Mini/i,g7=/\b(CriOS|Chrome)(?:.+)Mobile/i,m7=/Mobile(?:.+)Firefox\b/i,y7=function(r){return typeof r<"u"&&r.platform==="MacIntel"&&typeof r.maxTouchPoints=="number"&&r.maxTouchPoints>1&&typeof MSStream>"u"};function wb(r){return function(e){return e.test(r)}}function kl(r){var e={userAgent:"",platform:"",maxTouchPoints:0};!r&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof r=="string"?e.userAgent=r:r&&r.userAgent&&(e={userAgent:r.userAgent,platform:r.platform,maxTouchPoints:r.maxTouchPoints||0});var t=e.userAgent,i=t.split("[FBAN");typeof i[1]<"u"&&(t=i[0]),i=t.split("Twitter"),typeof i[1]<"u"&&(t=i[0]);var s=wb(t),n={apple:{phone:s(Ap)&&!s(cs),ipod:s(a7),tablet:!s(Ap)&&(s(l7)||y7(e))&&!s(cs),universal:s(c7),device:(s(Ap)||s(a7)||s(l7)||s(c7)||y7(e))&&!s(cs)},amazon:{phone:s(jo),tablet:!s(jo)&&s(Eh),device:s(jo)||s(Eh)},android:{phone:!s(cs)&&s(jo)||!s(cs)&&s(kp),tablet:!s(cs)&&!s(jo)&&!s(kp)&&(s(Eh)||s(u7)),device:!s(cs)&&(s(jo)||s(Eh)||s(kp)||s(u7))||s(/\bokhttp\b/i)},windows:{phone:s(cs),tablet:s(h7),device:s(cs)||s(h7)},other:{blackberry:s(d7),blackberry10:s(p7),opera:s(f7),firefox:s(m7),chrome:s(g7),device:s(d7)||s(p7)||s(f7)||s(m7)||s(g7)},any:!1,phone:!1,tablet:!1};return n.any=n.apple.device||n.android.device||n.windows.device||n.other.device,n.phone=n.apple.phone||n.android.phone||n.windows.phone,n.tablet=n.apple.tablet||n.android.tablet||n.windows.tablet,n}var Tb=kl.default??kl,Pr=Tb(globalThis.navigator);var ae={};El(ae,{BaseTextureCache:()=>O0,BoundingBox:()=>Yo,CanvasRenderTarget:()=>Mh,DATA_URI:()=>Ih,EventEmitter:()=>js.default,ProgramCache:()=>Ul,TextureCache:()=>c0,clearTextureCache:()=>r3,correctBlendMode:()=>q7,createIndicesForQuads:()=>Z7,decomposeDataUri:()=>o3,deprecation:()=>Ue,destroyTextureCache:()=>t3,determineCrossOrigin:()=>Bh,earcut:()=>a3.default,getBufferType:()=>Ws,getCanvasBoundingBox:()=>Nh,getResolutionOfUrl:()=>Vl,hex2rgb:()=>W7,hex2string:()=>H7,interleaveTypedArrays:()=>Q7,isMobile:()=>Pr,isPow2:()=>Ol,isWebGLSupported:()=>Ah,log2:()=>Gl,nextPow2:()=>Hs,path:()=>Bp,premultiplyBlendMode:()=>Rl,premultiplyRgba:()=>Y7,premultiplyTint:()=>X7,premultiplyTintToRgba:()=>K7,removeItems:()=>Lh,rgb2hex:()=>$7,sayHello:()=>k7,sign:()=>J7,skipHello:()=>A7,string2hex:()=>j7,trimCanvas:()=>n3,uid:()=>_i,url:()=>Fh});K.RETINA_PREFIX=/@([0-9\.]+)x/;K.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT=!1;var js=St(x7(),1),a3=St(C7(),1);function w7(){throw new Error("Node.js url.parse() was called - this module has been removed to allow mobile compatibility")}function T7(){throw new Error("Node.js url.format() was called - this module has been removed to allow mobile compatibility")}function _7(){throw new Error("Node.js url.resolve() was called - this module has been removed to allow mobile compatibility")}var Fh={parse:w7,format:T7,resolve:_7};function ni(r){if(typeof r!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(r)}`)}function Pl(r){return r.split("?")[0].split("#")[0]}function Hb(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function jb(r,e,t){return r.replace(new RegExp(Hb(e),"g"),t)}function $b(r,e){let t="",i=0,s=-1,n=0,o=-1;for(let a=0;a<=r.length;++a){if(a2){let l=t.lastIndexOf("/");if(l!==t.length-1){l===-1?(t="",i=0):(t=t.slice(0,l),i=t.length-1-t.lastIndexOf("/")),s=a,n=0;continue}}else if(t.length===2||t.length===1){t="",i=0,s=a,n=0;continue}}e&&(t.length>0?t+="/..":t="..",i=2)}else t.length>0?t+=`/${r.slice(s+1,a)}`:t=r.slice(s+1,a),i=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return t}var Bp={toPosix(r){return jb(r,"\\","/")},isUrl(r){return/^https?:/.test(this.toPosix(r))},isDataUrl(r){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(r)},hasProtocol(r){return/^[^/:]+:\//.test(this.toPosix(r))},getProtocol(r){ni(r),r=this.toPosix(r);let e="",t=/^file:\/\/\//.exec(r),i=/^[^/:]+:\/\//.exec(r),s=/^[^/:]+:\//.exec(r);if(t||i||s){let n=t?.[0]||i?.[0]||s?.[0];e=n,r=r.slice(n.length)}return e},toAbsolute(r,e,t){if(this.isDataUrl(r))return r;let i=Pl(this.toPosix(e??K.ADAPTER.getBaseUrl())),s=Pl(this.toPosix(t??this.rootname(i)));return ni(r),r=this.toPosix(r),r.startsWith("/")?Bp.join(s,r.slice(1)):this.isAbsolute(r)?r:this.join(i,r)},normalize(r){if(r=this.toPosix(r),ni(r),r.length===0)return".";let e="",t=r.startsWith("/");this.hasProtocol(r)&&(e=this.rootname(r),r=r.slice(e.length));let i=r.endsWith("/");return r=$b(r,!1),r.length>0&&i&&(r+="/"),t?`/${r}`:e+r},isAbsolute(r){return ni(r),r=this.toPosix(r),this.hasProtocol(r)?!0:r.startsWith("/")},join(...r){if(r.length===0)return".";let e;for(let t=0;t0)if(e===void 0)e=i;else{let s=r[t-1]??"";this.extname(s)?e+=`/../${i}`:e+=`/${i}`}}return e===void 0?".":this.normalize(e)},dirname(r){if(ni(r),r.length===0)return".";r=this.toPosix(r);let e=r.charCodeAt(0),t=e===47,i=-1,s=!0,n=this.getProtocol(r),o=r;r=r.slice(n.length);for(let a=r.length-1;a>=1;--a)if(e=r.charCodeAt(a),e===47){if(!s){i=a;break}}else s=!1;return i===-1?t?"/":this.isUrl(o)?n+r:n:t&&i===1?"//":n+r.slice(0,i)},rootname(r){ni(r),r=this.toPosix(r);let e="";if(r.startsWith("/")?e="/":e=this.getProtocol(r),this.isUrl(r)){let t=r.indexOf("/",e.length);t!==-1?e=r.slice(0,t):e=r,e.endsWith("/")||(e+="/")}return e},basename(r,e){ni(r),e&&ni(e),r=Pl(this.toPosix(r));let t=0,i=-1,s=!0,n;if(e!==void 0&&e.length>0&&e.length<=r.length){if(e.length===r.length&&e===r)return"";let o=e.length-1,a=-1;for(n=r.length-1;n>=0;--n){let l=r.charCodeAt(n);if(l===47){if(!s){t=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(l===e.charCodeAt(o)?--o===-1&&(i=n):(o=-1,i=a))}return t===i?i=a:i===-1&&(i=r.length),r.slice(t,i)}for(n=r.length-1;n>=0;--n)if(r.charCodeAt(n)===47){if(!s){t=n+1;break}}else i===-1&&(s=!1,i=n+1);return i===-1?"":r.slice(t,i)},extname(r){ni(r),r=Pl(this.toPosix(r));let e=-1,t=0,i=-1,s=!0,n=0;for(let o=r.length-1;o>=0;--o){let a=r.charCodeAt(o);if(a===47){if(!s){t=o+1;break}continue}i===-1&&(s=!1,i=o+1),a===46?e===-1?e=o:n!==1&&(n=1):e!==-1&&(n=-1)}return e===-1||i===-1||n===0||n===1&&e===i-1&&e===t+1?"":r.slice(e,i)},parse(r){ni(r);let e={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return e;r=Pl(this.toPosix(r));let t=r.charCodeAt(0),i=this.isAbsolute(r),s,n="";e.root=this.rootname(r),i||this.hasProtocol(r)?s=1:s=0;let o=-1,a=0,l=-1,c=!0,h=r.length-1,d=0;for(;h>=s;--h){if(t=r.charCodeAt(h),t===47){if(!c){a=h+1;break}continue}l===-1&&(c=!1,l=h+1),t===46?o===-1?o=h:d!==1&&(d=1):o!==-1&&(d=-1)}return o===-1||l===-1||d===0||d===1&&o===l-1&&o===a+1?l!==-1&&(a===0&&i?e.base=e.name=r.slice(1,l):e.base=e.name=r.slice(a,l)):(a===0&&i?(e.name=r.slice(1,o),e.base=r.slice(1,l)):(e.name=r.slice(a,o),e.base=r.slice(a,l)),e.ext=r.slice(o,l)),e.dir=this.dirname(r),n&&(e.dir=n+e.dir),e},sep:"/",delimiter:":"};var F7={};function Ue(r,e,t=3){if(F7[e])return;let i=new Error().stack;typeof i>"u"?console.warn("PixiJS Deprecation Warning: ",`${e} +`),Nn=Yt(Mn,Ns,Ao).desc("newline"),ko=Yt(Nn,An);i.all=Qi,i.alt=Yt,i.any=Zi,i.cr=Ao,i.createLanguage=function(A){var O={};for(var D in A)({}).hasOwnProperty.call(A,D)&&function(F){O[F]=Fn(function(){return A[F](O)})}(D);return O},i.crlf=Mn,i.custom=function(A){return i(A(W,j))},i.digit=kn,i.digits=In,i.empty=Ei,i.end=ko,i.eof=An,i.fail=i0,i.formatError=I0,i.index=Si,i.isParser=B,i.lazy=Fn,i.letter=Fo,i.letters=xl,i.lf=Ns,i.lookahead=C0,i.makeFailure=j,i.makeSuccess=W,i.newline=Nn,i.noneOf=function(A){return wt(function(O){return A.indexOf(O)<0}).desc("none of '"+A+"'")},i.notFollowedBy=Zr,i.of=p0,i.oneOf=function(A){for(var O=A.split(""),D=0;D=0}).desc(O)},i.optWhitespace=Ln,i.Parser=i,i.range=function(A,O){return wt(function(D){return A<=D&&D<=O}).desc(A+"-"+O)},i.regex=it,i.regexp=it,i.sepBy=Ut,i.sepBy1=r0,i.seq=oe,i.seqMap=ve,i.seqObj=function(){for(var A,O={},D=0,F=(A=arguments,Array.prototype.slice.call(A)),N=F.length,G=0;G255)throw new Error("Value specified to byte constructor ("+A+"=0x"+A.toString(16)+") is larger in value than a single byte.");var O=(A>15?"0x":"0x0")+A.toString(16);return i(function(D,F){var N=q(D,F);return N===A?W(F+1,N):j(F,O)})},buffer:function(A){return p("buffer",A).map(function(O){return Buffer.from(O)})},encodedString:function(A,O){return p("string",O).map(function(D){return D.toString(A)})},uintBE:v,uint8BE:v(1),uint16BE:v(2),uint32BE:v(4),uintLE:C,uint8LE:C(1),uint16LE:C(2),uint32LE:C(4),intBE:w,int8BE:w(1),int16BE:w(2),int32BE:w(4),intLE:k,int8LE:k(1),int16LE:k(2),int32LE:k(4),floatBE:p("floatBE",4).map(function(A){return A.readFloatBE(0)}),floatLE:p("floatLE",4).map(function(A){return A.readFloatLE(0)}),doubleBE:p("doubleBE",8).map(function(A){return A.readDoubleBE(0)}),doubleLE:p("doubleLE",8).map(function(A){return A.readDoubleLE(0)})},r.exports=i}])})});var Y_={};El(Y_,{default:()=>ip});module.exports=_v(Y_);var _t=require("obsidian");var sp={};El(sp,{UI:()=>Ov,beta:()=>Av,controls:()=>kv,default:()=>Gv,errors:()=>Iv,features:()=>Lv,inputs:()=>Mv,notices:()=>Nv,plugin:()=>Fv,query:()=>Pv,states:()=>Bv,statsFunctions:()=>Rv});var Fv={custom:"Custom",dark:"Dark",default:"Default",folder:"Folder",folders:"Folders",filter:"Filter",nodeName:"Node name",info:"Info",light:"Light",name:"Extended graph",nodes:"Nodes",options:"Options",settings:"Settings",source:"Source",target:"Target",valuePlaceholder:"value..."},Av={beta:"Beta",betaFeatures:"Beta features",enableCSS:"Enable CSS customization",enableCSSDesc:"Allows the plugin to inject custom CSS into the graph view for further customization. Write the name of the CSS snippet to use.",revertAction:"Revert action",revertActionDesc:"If the max number of nodes is reached, try to reverse last action instead of disabling the plugin"},kv={add:"Add",apply:"Apply",back:"Back",cancel:"Cancel",delete:"Delete",disable:"Disable",disableAll:"Disable all",disableInGraphView:"Disable in graph view",edit:"Edit",enable:"Enable",enableAll:"Enable all",enabled:"Enabled",enableInGraphView:"Enable in graph view",export:"Export",exportSettings:"Export settings",goTo:"Go to",hide:"Hide",hideAll:"Hide all",hideRow:"Hide row",import:"Import",importSettings:"Import settings",importSettingsAndReload:"Import settings and reload",interpolate:"Interpolate",manage:"Manage",moveUp:"Move up",moveDown:"Move down",no:"No",openLegend:"Open legend (tags, links, properties)",orCreateConfig:"Or create a new one",override:"Override",overrideConfig:"Override an existing configuration",page:"Page",pageCurrent:"Current page",pageFirst:"First page",pageLast:"Last page",pathRegexPlaceholder:'Enter path or "/regex/"...',resetGraph:"Reset graph",resetInGraphView:"Reset in graph view",reverse:"Reverse",save:"Save",selectAllNodes:"Select all nodes",selectConfigToImport:"Select a configuration to import",selectInvert:"Invert selection",setConfigName:"Set configuration name",show:"Show",showAll:"Show all",toggle:"Toggle",toggleAll:"Toggle all",toggleAllWithMoreThanOneNode:"With more than one node",rows:"rows",yes:"Yes"},Iv={uri401:"Unauthorized URL (Code 401) while trying to get an image for a node. This probably means that the URL is invalid. No image will be loaded and this message can safely be ignored.",issueNeedView:"There was an issue with the plugin $t(plugin.name). Please close the graph view and open it again.",paletteNameRequired:"You need to choose a name for this color map"},Lv={ids:{arrows:"arrows",automation:"automation",beta:"beta",display:"display",elementsStats:"stats",filter:"filter",focus:"focus",folders:"folders",icons:"icons",images:"images",inputs:"inputs",layers:"layers",localGraph:"local graph",linkTypes:"links types",names:"names",performances:"performances",properties:"properties",shapes:"shapes",tags:"tags",zoom:"zoom"},animateDotsOnLinks:"Animate dots on links",animateDotsOnLinksDesc:"Animate dots on links when a node is hovered to show the flow of information",animateDotsOnLinksSpeed:"Animation speed",animateDotsOnLinksSpeedDesc:"Speed of the animation of the dots on links",arrows:"Arrows",arrowsDesc:"Customize how arrows are displayed",arrowsColor:"Custom color",arrowsColorDesc:"Pick a custom color for the links arrows",arrowsInvert:"Invert arrows",arrowsInvertDesc:"Invert the direction of the arrows on the links",arrowsFixedSize:"Fixed size",arrowsFixedSizeDesc:"Prevent the arrows to scale down or up when zooming",arrowsFlat:"Triangle arrows",arrowsFlatDesc:"Use triangle arrows instead of the default curved ones",arrowsOpaque:"Opaque arrows",arrowsOpaqueDesc:"Remove any transparency from the arrow so they are fully opaque",arrowsOpaqueAlways:"Always",arrowsOpaqueKeepFading:"Only when zoomed",arrowsScale:"Scale",arrowsScaleDesc:"Increase or decrease the scale of arrows",automation:"Automation",autoEnable:"Auto enable",autoEnableDesc:"Auto enable the plugin in graph views",autoReset:"Reset graph views after changes",autoResetDesc:"Reset the plugin in the graph views where it is enabled, if settings have changed after closing this tab",borderUnresolved:"Border of unresolved nodes",borderUnresolvedDesc:"If between 0 and 1 (excluded), unresolved nodes will only show an outside circle border instead of a full disk",brightness:"Brightness factor",brightnessDesc:"Multiply the brightness of tags, properties, and links by a factor depending on the theme. Need reloading of the graph if you swap themes while plugin is enabled.",canonicalizePropertiesWithDataview:"Canonicalize property names (Dataview)",canonicalizePropertiesWithDataviewDesc:"By default, the Dataview plugin canonicalize the property names, converting everything to lowercase, removing dashes and underscore. If you want to use the non-canonicalized version of the properties, disabled this. Note that if you have two properties, with one being the canonicalized version of the second one (for example CaseSensitive and casesensitive), the canonicalized version will be discarded. This option only applied if you're using the Dataview plugin.",colorBasedOnDepth:"Color based on depth",colorBasedOnDepthDesc:"Color the nodes based on their depth relative to the main node in the local graph",depthPalette:"Depth color palette",depthPaletteDesc:"Choose the color palette for the depth level coloring nodes",disableNodes:"Disable nodes",disableNodesDesc:"When all arcs are disabled on the node, remove it from the graph",excludeSourceFolders:"Exclude source folders",excludeSourceFoldersDesc:"Exclude forward links with source inside some folders (i.e. links coming out one of these folders)",excludeTargetFolders:"Exclude target folders",excludeTargetFoldersDesc:"Exclude backward links with target inside some folders (i.e. links going in one of these folders)",excludedFolders:"Excluded folders",externalLinks:"Add external URLs",externalLinksDesc:"Add external URLs as attachment nodes in the graph view. Types for links toward those nodes are not supported.",externalLinkOpen:"Open external URL",externalLinksOpenMode:"Open mode for external URLs",externalLinksOpenModeDesc:"When left clicking on an external URL's node, select the expected behavior to open the URL",externalLinksOptions:{none:"None",domain:"Domain",href:"Href (without search and hash)",domain_and_href:"Href and domain (2 nodes)"},externalLinksModes:{web:"Always on the Web",note:"First note if exists",choice:"Show available options"},externalLinksProperties:"External URLs properties",externalLinksPropertiesDesc:"Names of the properties that can be used to decide if an external URL node should redirect towards a specific note or to the web view when clicked",noExclusionFilter:"No excluded filter is applied right now. Add one below.",withExclusionFilter:"Files matching the following filters won't have back/forward links in the graph:",fadeInElements:"Fade in new elements",fadeInElementsDesc:"Extended elements added to the graph view by the plugin are faded in instead of appearing suddenly",filters:"Filters",filtersDesc:"Exclude files and folders from the graph based on regex patterns",focus:"Focus",focusDesc:"Add ways to easily identify nodes in your graph",focusFlickerOpenNodes:"Flicker open nodes",focusFlickerSearchNodes:"Flicker search results nodes",focusOpenNodes:"Highlight open nodes",focusOpenNodesDesc:"Add a border around nodes associated to an open tab",focusScale:"Active node scale factor",focusScaleDesc:"The node corresponding to the currently active note will be scaled up by this factor. Set to 1 for no scaling.",focusSearchResults:"Highlight search results",focusSearchResultsDesc:"Add a border around nodes that are part of a search result via the core Search plugin",folders:"Folders",foldersDesc:"Display folder boxes",folderShowFullPath:"Show full path",folderShowFullPathDesc:"If enable, the full path of the folder will be displayed ; if disabled, only the folder name will be displayed",icons:"Icons",iconsDesc:"Use icons or emoji for nodes",iconBackgroundColor:"Use icon color for the background",iconBackgroundColorDesc:"Use the icon color instead of the default node color for the background. For emojis, the average color will be used.",iconBackgroundOpacity:"Background opacity",iconBackgroundOpacityDesc:"Set the opacity of the node itself behind the icon. Set to 0 for no background.",iconBorderWidth:"Border width",iconBorderWidthDesc:"Add a border to the node around the icon of the specified width. Set to 0 for no border.",iconProperties:"Icon properties",iconPropertiesDesc:"Keys (names) of the properties that can be used to query the icon of the node's note. Supported values in the frontmatter can be either unicode emojis or Lucide icon identifiers.",iconPropertiesAdd:"Add icon property",iconUsePlugin:'Use "Iconic" or "Iconize"',iconUsePluginDesc:'Use the icons set in the file explorer via "Iconic" or "Iconize" community plugins',iconUsePluginColor:'Use "Iconic" or "Iconize" for color',iconUsePluginColorDesc:'Use the color of the icons set in the file explorer via "Iconic" or "Iconize"',iconUseParentIcon:"Use the icon of a parent folder",iconUseParentIconDesc:'If no icon is set on the file itself with "Iconic" or "Iconize", it will try to find one set on a parent folder',image:"Image",images:"Images",imageDesc:"Display image on top of nodes",imagesAllowExternal:"Allow images from the web",imagesAllowExternalDesc:"Allow the loading of external images via http: and https: protocols",imagesAllowExternalLocal:"Allow local images outside of the vault",imagesAllowExternalLocalDesc:"Allow the loading of external images via file: and app: protocols",imagesFromProperty:"From a property",imagesFromPropertyDesc:"Display image from a property in the frontmatter",imagesFromEmbeds:"From embeds",imagesFromEmbedsDesc:'Display an image if one is found among the embeds in the note. The setting "From a property" has priority.',imagesForAttachments:"For attachments",imagesForAttachmentsDesc:"Display image for attachment nodes",imageProperties:"Image properties",imagePropertiesDesc:"Names of the properties that can be used to query the image of the node's note",imagePropertiesAdd:"Add image property",imageBorderWidth:"Border width (%)",imageBorderWidthDesc:"Percentage of the node's background that will stay visible as a border",ignoreInlineLinks:"Ignore inline links",ignoreInlineLinksDesc:"Links defined inside the note and outside of the frontmatter will not be added to the graph",interactives:{alreadyExists:"Already exists",arcsAdd:"Add arcs",arcsAddPropertyDesc:"Add arcs around the nodes to visualize the property values",arcsAddTagDesc:"Add arcs around the nodes to visualize the tags",arcsSpread:"Spread arcs",arcsSpreadDesc:"Spread the arcs around the nodes to fill the available space",arcWeight:"Weight arc length",arcWeightDesc:"Use the number of time the value is found to determine arcs lengths (requires 'Spread arcs' to be enabled)",colorLinks:"Color links",colorLinksDesc:"Add colors to the link rendered in the graph view",colorLinkTypeLabel:"Color label",colorLinkTypeLabelDesc:"Color the type label (text) with the same color as the link",curvedFactor:"Curvature factor",curvedFactorDesc:"A negative value will inverse the shape, a greater absolute value will increase the curvature, while a value close to 0 will flatten it",curvedLinks:"Curved links",curvedLinksDesc:"Use curved links instead of straight lines",displayLinkTypeLabel:"Display label",displayLinkTypeLabelDesc:"Display the type label on top of the link",linkTypes:"Link types",linkTypesDesc:"Display and filter link types",noneTypeID:"None type id",noneTypeIDDesc:"The id which will be given if nothing is found for ",palette:"Color palette",paletteDesc:"Choose the color palette for ",paletteMatplotlibDesc:"These colormaps come from matplotlib. You can see more about them here: ",palettePickGradient:"Pick palette gradient",properties:"Properties",propertiesDesc:"Display and filter by property values",property:"Property",propertyDesc:"Display and filter property ",propertyAlreadyExists:"This property already exists",propertyReservedFolders:"This property key is reserved for folders",propertyReservedLinks:"This property key is reserved for links",propertyReservedTags:"This property key is reserved for tags",selection:"Selection",selectionDesc:"Choose which values should be considered by the plugin",selectionFor:"Selection for",specificColors:"Specific colors",specificColorsDesc:"Choose specific colors to override the color palette",tags:"Tags",tagsDesc:"Display and filter by tags"},layers:"Layers",layersDesc:"Group nodes by layers and adjust their opacity",layersDisplayLabels:"Display labels in UI",layersDisplayLabelsDesc:"If a layer has a label associated, for example `4_cave`, add the label to the UI",layersInfoDataview:"If you modify layers' levels and labels from this pane, Dataview inline properties will not be updated",layersInfoLevelNotFromID:"Level of this layer is not based on the property value",layersNumber:"Maximum number of layers",layersNumberDesc:"Set up the maximum number of active layers that will be shown in the graph view",layersOpacityPlaceholder:"Opacity",layersOrder:"Order",layersOrderDesc:"Choose if layers must be considered in an ascending or descending order",layerProperties:"Layer properties",layerPropertiesDesc:"Names of the properties that can be used to query the layer of the node's note",layerPropertiesAdd:"Add layer property",layersOpacityIfNoLayer:"Opacity for nodes without layer",layersOpacityIfNoLayerDesc:"If a node is not associated to a layer, it will use this opacity (set to 0 to hide)",layersUseCustomOpacity:"Use custom opacity",layersUseCustomOpacityDesc:"Set up fixed opacity values (0-1) for some layers. If they are shown, they will always be shown with this opacity, other opacities will be interpolated.",linksAllowMultipleTypes:"Draw multiple types",linksAllowMultipleTypesDesc:"Allow the graph to draw multiple types of links between two nodes",linksOutline:"Outline links",linksOutlineDesc:"Add a thin outline to the links and the arrows (when opaque)",linksSameColorAsNode:"Color link based on source",linksSameColorAsNodeDesc:"Use the color of the source node to color links",linksFeatureRequired:"The Links feature needs to be enabled.",localGraph:"Local graph",localGraphDesc:"Customize your local graph with settings specific to this view",localGraphCurrentNodeColor:"Current node's color",localGraphCurrentNodeColorDesc:"Color of the main node of the local graph",localGraphCurrentNodeSize:"Current node's size",localGraphCurrentNodeSizeDesc:"Base size of the main node of the local graph. Default: 100, minimum: 10.",localGraphCurrentNodeShape:"Current node's shape",localGraphCurrentNodeShapeDesc:"Shape of the main node of the local graph",pinnedNodes:"Pinned nodes",pinNode:"Pin node",unpinNode:"Unpin node",unpinAllNodes:"Unpin all nodes",pinMultipleNodes:"Pin multiple nodes",pinMultipleShape:"Shape",pinMultipleGap:"Gap between nodes",pinMultipleCenter:"Center",pinMultipleGridSize:"Number of columns",pinMultipleGridSizeDesc:"Values can be 'N' (single row), 'auto' (square grid) or a positive integer",pinSelectedNodes:"Pin selected nodes",unpinSelectedNodes:"Unpin selected nodes",size:"Size",elementsStats:"Nodes and links statistics",elementsStatsDesc:"Choose how nodes and links sizes/colors must be computed",linkSizesFunction:"Link size function",linkSizesFunctionDesc:"Select how the graph engine should compute the thickness of the links",linkColorsFunction:"Link color function",linkColorsFunctionDesc:"Select how the graph engine should compute the color of the links",linkColorsPaletteDesc:"Choose the color palette for the links",names:"Nodes names",namesDesc:"Customize how nodes names are displayed",namesEllipsisPlaceholder:"\u2026",namesNumberOfCharacters:"Characters limit",namesNumberOfCharactersDesc:"Maximum number of characters to display for the node name. Leave empty to display the full name. Choose the character(s) that should be displayed if the name is truncated.",namesShowOnlyFileName:"Filename only",namesShowOnlyFileNameDesc:"Show only the file name without the path",namesNoExtension:"Hide extension",namesNoExtensionDesc:"Remove the file extension from the name",namesUseProperties:"Use properties",namesUsePropertiesDesc:"Use one of the desired properties as the node name instead of the filename",namesUsePropertiesAdd:"Add node name property",namesBackground:"Add a background",namesBackgroundDesc:"Add a background to the node name in order to make it more readable by hiding elements behind it",namesShowWhenNeighborHighlighted:"Always show when hovering neighbor node",namesShowWhenNeighborHighlightedDesc:"Shows the text even when fully zoomed out if a connected neighbor node is highlighted",namesVerticalOffset:"Vertical offset",namesVerticalOffsetDesc:"Vertical offset of the text. Positive value will push the text lower, and positive value will move it higher.",namesDynamicVerticalOffset:"Dynamic vertical offset",namesDynamicVerticalOffsetDesc:"Dynamically adapt the vertical position of the text to avoid any overlapping with node's elements (arrows, arcs, shape)",noLineHighlight:"No line highlight",noLineHighlightDesc:"When hovering a node, don't highlight the connected links",nodeSizesFunction:"Node size function",nodeSizesFunctionDesc:"Select how the graph engine should compute the size of the nodes",nodeSizeProperties:"Node size properties",nodeSizePropertiesDesc:"Names of the properties that can be used to specify the size of the node. They must be of type number. A value of 100 is the default.",nodeSizePropertiesAdd:"Add node size property",nodeSizesRange:"Node size range",nodeSizesRangeDesc:"Minimum and maximum factors (between 0.1 and 5) that will be used to scale the sizes of the nodes",nodeColorsFunction:"Node color function",nodeColorsFunctionDesc:"Select how the graph engine should compute the color of the nodes",nodeColorsPaletteDesc:"Choose the color palette for the nodes",nodeStatsDirection:"Graph direction to compute node statistics",nodeStatsDirectionDesc:"When computing the node statistics, use the default directed graph, the reverse graph (source nodes become targets and vice versa), or the undirected graph (no effect for directed metrics such as backlinks)",nodeStatsDirectionNormal:"Default directed",nodeStatsDirectionReversed:"Reversed",nodeStatsDirectionUndirected:"Undirected",nodeStatsRecomputeOnGraphChange:"Recompute when graph changes",nodeStatsRecomputeOnGraphChangeDesc:"Recompute the metrics everytime the graph's data changes. This can create a drop in performances.",openInNewTab:"Open nodes in new tab",openInNewTabDesc:"Always open the nodes in a new tab when left clicking on them",otherDisplay:"Other display options",performance:"Performances",performanceDelay:"Initialization delay (milliseconds)",performanceDelayDesc:"Because of asynchronous mechanics, it can be needed to wait a time before starting initializing the extended features",performanceMaxNodes:"Maximum number of nodes",performanceMaxNodesDesc:"If the graph contains more nodes than this setting, the plugin will be disabled",recursive:"Recursive",removeSources:"Remove sources",removeSourcesDesc:"When disabling a link type, also disable the source nodes",removeTargets:"Remove targets",removeTargetsDesc:"When disabling a link type, also disable the source nodes",shape:"Shape",shapes:"Shapes",shapesDesc:"Use nodes of various shapes",shapePick:"Pick shape",shapesNames:{circle:"circle",square:"square",triangle:"triangle",diamond:"diamond",pentagon:"pentagon",hexagon:"hexagon",octagon:"octagon",decagon:"decagon",star4:"star (4)",star5:"star (5)",star6:"star (6)",star8:"star (8)",star10:"star (10)",polygon:"polygon",starburst:"starburst",grid:"grid",line:"line",unknown:"unknown"},svgScreenshotArcs:"Show arcs (tags and/or types)",svgScreenshotCopy:"Copy SVG screenshot",svgScreenshotCopyCode:"Copy SVG code to clipboard",svgScreenshotCopyImage:"Copy SVG image to clipboard",svgScreenshotCurvedLinks:"Use curved links",svgScreenshotNodeNames:"Show node names",svgScreenshotNodeShapes:"Use nodes shapes",svgScreenshotOptions:"SVG Screenshot options",svgScreenshotVisibleArea:"Export only visible area",zoomOnNode:"Zoom on node",zoomScale:"Zoom scale",zoomScaleDesc:"When zooming on a node, set the used scale"},Mv={inputs:"Inputs",leftClickIncompatibility:"Multiple inputs use the same modifier for the left click ; only one of them will work",pinHotkey:"Pin node (right click)",pinHotkeyDesc:"When doing a right click on a node while holding the specified key down, it will pin the node",radialMenu:"Radial context menu (right click)",radialMenuDesc:"When doing a right click on a node while holding the specified key down, it will show a radial context menu with data from the extended graph plugin, rather than the usual context menu",rightClickIncompatibility:"Multiple inputs use the same modifier for the right click ; only one of them will work",selected:"selected",selectHotkey:"Select node (left click)",selectHotkeyDesc:"When doing a left click on a node while holding the specified key down, it will select the node",selectionMode:"Selection mode",selectionModeAddTooltip:"Add to the current selection",selectionModeIntersectTooltip:"Intersect with the current selection",selectionModeReplaceTooltip:"Replace the current selection",selectionModeSubtractTooltip:"Subtract from the current selection"},Nv={changeInSettings:"You can change this in the settings",disabled:"disabled",graphAnalysisPluginRequired:"Graph Analysis community plugin must be enabled to use this function",invalidCharacter:"Invalid character",nlpPluginRequired:"NLP community plugin must be enabled to use this function",nodeLimiteExceeded:"Try to handle too many nodes",nodeLimitIs:"The limit is",nodeStatSizeFailed:"Failed to compute the statistics for the nodes sizes",nodeStatColorFailed:"Failed to compute the statistics for the nodes colors",linkStatSizeFailed:"Failed to compute the statistics for the links thickness",linkStatColorFailed:"Failed to compute the statistics for the links colors",functionToDefault:"The default function has been set instead.",stateDeleted:"State has been removed",stateRenamed:"State has been renamed",stateSaved:"State has been saved",normalStateSave:"Engine options have been saved for the normal state",svgCopied:"SVG copied to clipboard"},Pv={AND:"AND",ANDFilterDesc:"Keep nodes with all selected values",OR:"OR",ORFilterDesc:"Keep nodes with at least one of the selected values",combinationLogic:"Combination logic",editShapeQuery:"Edit shape query",excludeRegex:"Exclude regex",excludeRegexDesc:"Use regex to automatically exclude some values. Start a new line for a new regex.",setShapeQueryFor:"Set shape query for",files:"Files",logicKey:{contains:"contains",containsNot:"doesn't contain",is:"is",isNot:"is not",containsRegex:"contains regex",containsRegexNot:"doesn't contain regex",matchesRegex:"matches regex",matchesRegexNot:"doesn't match regex",isEmpty:"is empty",isEmptyNot:"is not empty"},matchingFiles:"Matching files",match:"match",matches:"matches",query:"Query",rules:"Rules",source:{all:"All",tag:"Tags",link:"Links",property:"Property",file:"File",folder:"Folder",folderRec:"Folder and subfolders",path:"Path"},viewMatches:"View matches"},Bv={defaultState:"Default state",editStateName:"Edit state name",graphState:"Graph state",newStateName:"New state name",openSettings:"Open state settings",saveConfigsWithState:"Save configuration with state",saveConfigsWithStateDesc:"When saving a state, the plugin will automatically saves the config under the same name (cleaned from invalid characters)",saveForDefaultState:"Save for default state",saveForDefaultStateDesc:"Save the current settings as the default state settings",saveForNormalState:"Save for native state",saveForNormalStateDesc:"(Basic graph without $t(plugin.name))",saveForNormalStateTooltip:"Save the current settings as the native graph settings",showGraphState:"Show graph state",startingState:"Starting state",startingStateDesc:"Select which state should be used to initiate the plugin",states:"States",syncDefaultState:"Synchronize default state",syncDefaultStateDesc:"Always open the default state with the current options used by the core plugin without the need to manually save them"},Rv={AdamicAdar:"Adamic Adar",authority:"Authority centrality (from HITS)",backlinksCount:"Number of backlinks",backUniquelinksCount:"Number of unique backlinks",betweenness:"Betweenness centrality",BoW:"Bag of words",closeness:"Closeness centrality",clusteringCoefficient:"Clustering coefficient",coCitations:"Co-citations",constant:"Constant",creationTime:"Time since file creation",degree:"Degree centrality",eccentricity:"Eccentricity in the connected graph",eigenvector:"Eigenvector centrality",filenameLength:"File name length",forwardlinksCount:"Number of forward links",forwardUniquelinksCount:"Number of unique forward links",totallinksCount:"Number of links",totalUniquelinksCount:"Number of unique links",hub:"Hub centrality (from HITS)",Jaccard:"Jaccard similarity",modifiedTime:"Time since last modification",Occurences:"Number of occurences",OtsukaOchiai:"Otsuka-Ochiai coefficient",overlap:"Overlap coefficient",tagsCount:"Number of tags",topological:"Topological propagation",warningUnreliableOS:"This calculation is unreliable and might vary between OS.",sentiment:"Sentiment"},Ov={horizontalLegend:"Horizontal legend",horizontalLegendDesc:"Use a horizontal layout for the legend container (with tags, properties and tags toggle buttons)",howToUse:"How to use",howToUseGradientMaker:"
  • Drag handles to move color stops along the gradient
  • Click a handle to change its color
  • Double-click on the gradient to add a new color stop
  • Backspace, Delete or Clear keys on a handle to remove it
  • Interpolate: creates smooth color transitions between stops
  • Reverse: flips the final palette order (left \u2194 right)
",name:"Name",showPinIcon:"Show pin icon",showPinIconDesc:"When a node is pinned, show an icon in its top right corner to mark its pinned state"},Gv={plugin:Fv,beta:Av,controls:kv,errors:Iv,features:Lv,inputs:Mv,notices:Nv,query:Pv,states:Bv,statsFunctions:Rv,UI:Ov};var np={};El(np,{UI:()=>Kv,beta:()=>Vv,controls:()=>zv,default:()=>Zv,errors:()=>Wv,features:()=>Hv,inputs:()=>jv,notices:()=>$v,plugin:()=>Uv,query:()=>qv,states:()=>Yv,statsFunctions:()=>Xv});var Uv={custom:"Personnalis\xE9",dark:"Sombre",default:"D\xE9faut",folder:"Dossier",folders:"Dossiers",filter:"Filtre",nodeName:"Nom de n\u0153ud",info:"Info",light:"Clair",name:"Extended graph",nodes:"N\u0153uds",options:"Options",settings:"Param\xE8tres",source:"Source",target:"Cible",valuePlaceholder:"valeur..."},Vv={beta:"B\xEAta",betaFeatures:"Fonctionnalit\xE9s en b\xEAta",enableCSS:"Activer la personnalisation CSS",enableCSSDesc:"Permet au module d'injecter du CSS dans la vue graphique pour plus de personnalisation. Indiquer le nom de l'extrait CSS \xE0 utiliser.",revertAction:"Annuler la derni\xE8re action",revertActionDesc:"Si le nombre maximal de noeus est atteind, le module tentera d'annuler la derni\xE8re action au lieu de d\xE9sactiver le module"},zv={add:"Ajouter",apply:"Appliquer",back:"Retour",cancel:"Annuler",delete:"Supprimer",disable:"D\xE9sactiver",disableAll:"Tout d\xE9sactiver",disableInGraphView:"D\xE9sactiver dans la vue graphique",edit:"\xC9diter",enable:"Activer",enableAll:"Tout activer",enabled:"Activ\xE9",enableInGraphView:"Activer dans la vue graphique",export:"Exporter",exportSettings:"Exporter les param\xE8tres",goTo:"Aller \xE0",hide:"Cacher",hideAll:"Cacher tout",hideRow:"Cacher la ligne",import:"Importer",importSettings:"Importer les param\xE8tres",importSettingsAndReload:"Importer les param\xE8tres et recharger",interpolate:"Interpoler",manage:"G\xE9rer",moveUp:"Monter",moveDown:"Descendre",no:"Non",openLegend:"Ouvrir la l\xE9gende (tags, liens, propri\xE9t\xE9s)",orCreateConfig:"Ou cr\xE9er une nouvelle",override:"Remplacer",overrideConfig:"Remplacer une configuration existante",page:"Page",pageCurrent:"Page actuelle",pageFirst:"Premi\xE8re page",pageLast:"Derni\xE8re page",pathRegexPlaceholder:'Entrer un chemin ou un "/regex/"...',resetGraph:"R\xE9initialiser le graphe",resetInGraphView:"R\xE9initialiser dans la vue graphique",reverse:"Inverser",save:"Sauvegarder",selectAllNodes:"S\xE9lectionner tous les n\u0153uds",selectConfigToImport:"S\xE9lectionner une configuration \xE0 importer",selectInvert:"Inverser la s\xE9lection",setConfigName:"D\xE9finir le nom de la configuration",show:"Montrer",showAll:"Montrer tout",toggle:"Basculer",toggleAll:"Basculer tout",toggleAllWithMoreThanOneNode:"Avec plus d'un n\u0153ud",rows:"lignes",yes:"Oui"},Wv={uri401:"URL non autoris\xE9e (Code 401) lors de la tentative d'obtention d'une image pour un n\u0153ud. Cela signifie probablement que l'URL est invalide. Aucune image ne sera charg\xE9e et ce message peut \xEAtre ignor\xE9 en toute s\xE9curit\xE9.",issueNeedView:"Il y a eu un probl\xE8me avec le module $t(plugin.name). Veuillez fermer la vue graphique et l'ouvrir \xE0 nouveau.",paletteNameRequired:"Vous devez choisir un nom pour cette palette de couleurs"},Hv={ids:{arrows:"fl\xE8ches",automation:"automatisation",beta:"b\xEAta",display:"affichage",elementsStats:"stats",filter:"filtre",focus:"focus",folders:"dossiers",icons:"ic\xF4nes",images:"images",inputs:"commandes",layers:"couches",localGraph:"graph local",linkTypes:"typage liens",names:"noms",performances:"performances",properties:"propri\xE9t\xE9s",shapes:"formes",tags:"tags",zoom:"zoom"},animateDotsOnLinks:"Anime des points sur les liens",animateDotsOnLinksDesc:"Ajoute des points anim\xE9s sur les liens quand un n\u0153ud est survol\xE9, afin de montrer le flux des informations",animateDotsOnLinksSpeed:"Vitesse d'animation",animateDotsOnLinksSpeedDesc:"Vitesse d'animation des points sur les liens",arrows:"Fl\xE8ches",arrowsDesc:"Personnalise la fa\xE7on dont les fl\xE8ches sont affich\xE9es",arrowsColor:"Couleur personnalis\xE9e",arrowsColorDesc:"Choisissez une couleur personnalis\xE9e pour la couleur des fl\xE8ches",arrowsInvert:"Inverser les fl\xE8ches",arrowsInvertDesc:"Inverse les fl\xE8ches des liens",arrowsFixedSize:"Taille fixe",arrowsFixedSizeDesc:"Emp\xEAche les fl\xE8ches de se r\xE9duire ou de s'aggrandir et leur fait garder une taille constante par rapport aux autres \xE9l\xE9ments du graphe lorsque l'\xE9chelle de celui-ci changements",arrowsFlat:"Fl\xE8ches triangulaires",arrowsFlatDesc:"Utilise des fl\xE8ches triangulaires au lieu de fl\xE8ches courb\xE9es",arrowsOpaque:"Fl\xE8ches opaque",arrowsOpaqueDesc:"Supprime toute transparence des fl\xE8ches pour qu'elles soient compl\xE8tement opaques",arrowsOpaqueAlways:"Toujours",arrowsOpaqueKeepFading:"Seulement sur zoom",arrowsScale:"Taille",arrowsScaleDesc:"Mets \xE0 l'\xE9chelle les fl\xE8ches par un facteur",automation:"Automatisation",autoEnable:"Activation auto",autoEnableDesc:"Active automatiquement le module dans la vue graphique",autoReset:"R\xE9initialise les vues graphiques apr\xE8s changements",autoResetDesc:"R\xE9initialise le module dans les les vues graphiques o\xF9 il est activ\xE9, si les param\xE8tres ont chang\xE9 apr\xE8s avoir ferm\xE9 cet onglet",borderUnresolved:"Bordure des n\u0153uds non-r\xE9solus",borderUnresolvedDesc:"Si la valeur est entre 0 et 1 (exclus), les n\u0153uds non-r\xE9solus seront repr\xE9sent\xE9s par un cercle vide plut\xF4t qu'un disque plein",brightness:"Facteur de luminosit\xE9",brightnessDesc:"Multiplie la luminosit\xE9 des tags, propri\xE9t\xE9s et liens par un facteur en fonction du th\xE8me. N\xE9cessite le rechargement du graphe si vous changez de th\xE8me pendant que le module est activ\xE9.",canonicalizePropertiesWithDataview:"Canonise les propri\xE9t\xE9s (Dataview)",canonicalizePropertiesWithDataviewDesc:"Par d\xE9faut, le module Dataview canonise les noms de propri\xE9t\xE9s, en convertissant tout en minuscules et en supprimant les tirets et les traits de soulignement. Si vous souhaitez utiliser la version non canonis\xE9e des propri\xE9t\xE9s, d\xE9sactivez cette option. Notez que si vous avez deux propri\xE9t\xE9s, dont l'une est la version canonique de la seconde (par exemple CaseSensitive et casesensitive), la version canonique sera ignor\xE9e. Cette option ne s'applique que si vous utilisez le module Dataview.",colorBasedOnDepth:"Colore selon la profondeur (graph local)",colorBasedOnDepthDesc:"Colore les n\u0153uds en fonction de la profondeur relative au n\u0153ud principal du graphe local",depthPalette:"Palette pour la profondeur",depthPaletteDesc:"Choix de la palette de couleur pour la profondeur permettant de colorer les n\u0153uds",disableNodes:"Enl\xE8ve les n\u0153uds",disableNodesDesc:"Quand tous les arcs d'un n\u0153ud sont d\xE9sactiv\xE9s, enl\xE8ve le n\u0153ud du graphe",excludeSourceFolders:"Exclure les dossiers sources",excludeSourceFoldersDesc:"Exclut les liens dont la source se trouve dans certains dossiers (i.e. les liens sortant d'un de ces dossiers)",excludeTargetFolders:"Exclure les dossiers cibles",excludeTargetFoldersDesc:"Exclut les liens dont la cible se trouve dans certains dossiers (i.e. les liens allant d'un de ces dossiers)",excludedFolders:"Dossiers exclus",externalLinks:"Ajouter les URLs externes",externalLinksDesc:"Ajoutez des URL externes en tant que n\u0153uds (pi\xE8ces jointes) dans la vue graphique. Les types de liens vers ces n\u0153uds ne sont pas pris en charge",externalLinkOpen:"Ouvre les URLs externes",externalLinksOpenMode:"Mode d'ouverture pour les URLs externes",externalLinksOpenModeDesc:"S\xE9lectionnez le comportement attendu pour ouvrir l'URL lorsque vous cliquez avec le bouton gauche de la souris sur le n\u0153ud associ\xE9",externalLinksOptions:{none:"Aucun",domain:"Domaine",href:"Href (sans la recherche ni le hash)",domain_and_href:"Href et domaine (2 n\u0153uds)"},externalLinksModes:{web:"Toujours sur le Web",note:"Premi\xE8re note si elle existe",choice:"Affiche les options disponibles"},externalLinksProperties:"Propri\xE9t\xE9s pour les URLs externes",externalLinksPropertiesDesc:"Noms des propri\xE9t\xE9s pouvant \xEAtre utilis\xE9es pour d\xE9terminer si un n\u0153ud d'URL externe doit rediriger vers cette note ou vers la vue Web lorsqu'on clique dessus",noExclusionFilter:"Aucun filtre d'exclusion n'est appliqu\xE9 pour le moment. Ajoutez-en un en dessous",withExclusionFilter:"Les fichiers correspondant aux filtres suivants n'auront pas de liens entrant/sortant dans le graphe :",fadeInElements:"Introduire progressivement de nouveaux \xE9l\xE9ments",fadeInElementsDesc:"Les \xE9l\xE9ments suppl\xE9mentaires ajout\xE9s \xE0 la vue graphique par le module apparaissent progressivement au lieu d'appara\xEEtre soudainement",filters:"Filtres",filtersDesc:"Exclure des fichiers et des dossiers du graphe en fonction d'expressions r\xE9guli\xE8res",focus:"Focus",focusDesc:"Ajoutez des moyens permettant d'identifier facilement les n\u0153uds dans votre graphe",focusFlickerOpenNodes:"Faire clignoter les n\u0153uds ouverts",focusFlickerSearchNodes:"Faire clignoter les n\u0153uds r\xE9sultats de recherche",focusOpenNodes:"Met en valeur les n\u0153uds ouverts",focusOpenNodesDesc:"Ajouter une bordure autour des n\u0153uds associ\xE9s \xE0 un onglet ouvert",focusScale:"Facteur de mise \xE0 l'\xE9chelle",focusScaleDesc:"La taille du n\u0153ud correspondant \xE0 la note active sera mulitpli\xE9e par ce facteur",focusSearchResults:"Met en valeur les n\u0153uds r\xE9sultats de recherche",focusSearchResultsDesc:"Ajoutez une bordure autour des n\u0153uds qui font partie d'un r\xE9sultat de recherche via le plugin de Recherche natif",folders:"Dossiers",foldersDesc:"Affiche des bo\xEEtes englobantes pour les dossiers",folderShowFullPath:"Affiche le chemin complet",folderShowFullPathDesc:"Si cette option est activ\xE9e, le chemin d'acc\xE8s complet du dossier sera affich\xE9 ; si elle est d\xE9sactiv\xE9e, seul le nom du dossier sera affich\xE9",icons:"Ic\xF4nes",iconsDesc:"Utilise des ic\xF4nes ou emojis pour les n\u0153uds du graphe",iconBackgroundColor:"Utiliser la couleur de l'ic\xF4ne pour l'arri\xE8re-plan",iconBackgroundColorDesc:"Utilise la couleur de l'ic\xF4ne \xE0 la place de la couleur par d\xE9faut du n\u0153ud pour l'arri\xE8re-plan. Pour les emojis, la couleur moyenne sera utilis\xE9e.",iconBackgroundOpacity:"Opacit\xE9 de l'arri\xE8re-plan",iconBackgroundOpacityDesc:"D\xE9finissez l'opacit\xE9 du n\u0153ud lui-m\xEAme derri\xE8re l'ic\xF4ne. Mettez \xE0 0 pour supprimer l'arri\xE8re-plan.",iconBorderWidth:"\xC9paisseur de bordure",iconBorderWidthDesc:"Ajoutez une bordure au n\u0153ud autour de l'ic\xF4ne de la largeur sp\xE9cifi\xE9e. D\xE9finissez la valeur sur 0 pour supprimer la bordure.",iconProperties:"Propri\xE9t\xE9s pour l'ic\xF4ne",iconPropertiesDesc:"Cl\xE9s (noms) des propri\xE9t\xE9s utilis\xE9es pour r\xE9cup\xE9rer l'ic\xF4ne de la note. Les valeurs support\xE9es peuvent \xEAtre soit des emojis Unicode, soit des identifiants d'ic\xF4nes provenant de Lucide.",iconPropertiesAdd:"Ajouter une propri\xE9t\xE9 pour ic\xF4ne",iconUsePlugin:'Utilise "Iconic" ou "Iconize"',iconUsePluginDesc:`Utilise les ic\xF4nes appliqu\xE9s dans l'explorateur de fichier via les modules communautaires "Iconic" ou "Iconize"`,iconUsePluginColor:'Utilise "Iconic" ou "Iconize" pour les couleurs',iconUsePluginColorDesc:`Utilise la couleur des ic\xF4nes appliqu\xE9s dans l'explorateur de fichier via "Iconic" ou "Iconize"`,iconUseParentIcon:"Utilise l'ic\xF4ne d'un dossier parent",iconUseParentIconDesc:`Si aucun ic\xF4ne n'est appliqu\xE9 sur le fichier lui-m\xEAme avec "Iconic" ou "Iconize", le module essaiera d'en trouver un sur un dossier parent`,image:"Image",images:"Image",imageDesc:"Affiche les images dans les n\u0153uds",imagesAllowExternal:"Autorise les images web",imagesAllowExternalDesc:"Autorise le chargement d'images externes via les protocoles http: et https:",imagesAllowExternalLocal:"Autorise les images externes au coffre",imagesAllowExternalLocalDesc:"Autorise le chargement d'images externes via les protocoles file: and app:",imagesFromProperty:"Depuis une propri\xE9t\xE9",imagesFromPropertyDesc:"Affiche une image r\xE9cup\xE9r\xE9e depuis une propri\xE9t\xE9 des m\xE9tadonn\xE9es",imagesFromEmbeds:"Depuis une int\xE9gration",imagesFromEmbedsDesc:`Affiche une image r\xE9cup\xE9r\xE9e parmi les int\xE9grations de la note. L'option "Depuis une propri\xE9t\xE9" est prioritaire.`,imagesForAttachments:"Pour les pi\xE8ces jointes",imagesForAttachmentsDesc:"Affiche une image sur les n\u0153uds des pi\xE8ces jointes",imageProperties:"Priori\xE9t\xE9s pour les images",imagePropertiesDesc:"Noms des propri\xE9t\xE9s utilis\xE9es pour trouver une image pour le n\u0153ud",imagePropertiesAdd:"Ajouter une propri\xE9t\xE9 pour image",imageBorderWidth:"\xC9paisseur de la bordure (%)",imageBorderWidthDesc:"Pourcentage de la couleur de fond du n\u0153ud qui sera visible comme une border",ignoreInlineLinks:"Ignorer les liens int\xE9gr\xE9s",ignoreInlineLinksDesc:"Les liens d\xE9finis dans la note et en dehors du frontmatter ne seront pas ajout\xE9s au graphique",interactives:{alreadyExists:"Existe d\xE9j\xE0",arcsAdd:"Ajouter les arcs",arcsAddPropertyDesc:"Ajouter des arcs autour des n\u0153uds pour visualiser les valeurs des propri\xE9t\xE9s",arcsAddTagDesc:"Ajouter des arcs autour des n\u0153uds pour visualiser les valeurs des tags",arcsSpread:"\xC9tendre les arcs",arcsSpreadDesc:"\xC9tend les arcs autour des n\u0153uds pour remplir l'espace disponible",arcWeight:"Pond\xE9rer les longueurs des arcs",arcWeightDesc:"Utilisez le nombre de fois o\xF9 la valeur est trouv\xE9e pour d\xE9terminer la longueur des arcs (n\xE9cessite l'activation de l'option \xAB \xC9tendre les arcs \xBB)",colorLinks:"Coloriser les liens",colorLinksDesc:"Ajouter des couleurs aux liens rendus",colorLinkTypeLabel:"Colorer les libell\xE9s",colorLinkTypeLabelDesc:"Colore le libell\xE9 du type (texte) avec la m\xEAme couleur que le lien",curvedFactor:"Facteur de courbure",curvedFactorDesc:"Une valeur n\xE9gative inversera la forme, une valeur absolue plus \xE9lev\xE9e augmentera la courbure, tandis qu'une valeur proche de 0 l'aplatira",curvedLinks:"Liens courb\xE9s",curvedLinksDesc:"Utilise des liens courb\xE9s au lieu de lignes droites",displayLinkTypeLabel:"Affiche le libell\xE9",displayLinkTypeLabelDesc:"Afficher le libell\xE9 du type au-dessus du lien",linkTypes:"Typage des liens",linkTypesDesc:"Affiche et filtre les liens par type",noneTypeID:"ID pour les sans-type",noneTypeIDDesc:"L'identifiant qui sera donn\xE9 is aucune valeur n'est trouv\xE9e pour ",palette:"Palette de couleur",paletteDesc:"Choix de la palette de couleur pour ",paletteMatplotlibDesc:"Ces palettes viennent de matplotlib. Vous pouvez en apprendre plus ici: ",palettePickGradient:"Choix du d\xE9grad\xE9",properties:"Propri\xE9t\xE9s",propertiesDesc:"Affiche et filtre les n\u0153uds par propri\xE9t\xE9s",property:"Propri\xE9t\xE9",propertyDesc:"Affiche et filtre la propri\xE9t\xE9 ",propertyAlreadyExists:"Cette propri\xE9t\xE9 existe d\xE9j\xE0",propertyReservedFolders:"Cette valeur de propri\xE9t\xE9 est r\xE9serv\xE9e pour les dossiers",propertyReservedLinks:"Cette valeur de propri\xE9t\xE9 est r\xE9serv\xE9e pour les liens",propertyReservedTags:"Cette valeur de propri\xE9t\xE9 est r\xE9serv\xE9e pour les tags",selection:"S\xE9lection",selectionDesc:"S\xE9lectionnez quelles valeurs devraient \xEAtre prises en compte par le module",selectionFor:"S\xE9lection pour",specificColors:"Couleurs sp\xE9cifiques",specificColorsDesc:"Choisissez des couleurs sp\xE9cifiques rempla\xE7ant la palette",tags:"Tags",tagsDesc:"Affiche et filtre les n\u0153uds par tags"},layers:"Calques",layersDesc:"Regroupe les n\u0153uds par calques et ajuste leur opacit\xE9",layersDisplayLabels:"Afficher les \xE9tiquettes dans l'interface utilisateur",layersDisplayLabelsDesc:"Si un calque est associ\xE9 \xE0 une \xE9tiquette, par exemple `4_cave`, ajoute l'\xE9tiquette \xE0 l'interface utilisateur.",layersInfoDataview:"Si vous modifiez les niveaux et les \xE9tiquettes des couches \xE0 partir de ce volet, les propri\xE9t\xE9s en ligne de Dataview ne seront pas mises \xE0 jour",layersInfoLevelNotFromID:"Le niveau de ce calque n'est pas bas\xE9 sur la valeur de la propri\xE9t\xE9",layersNumber:"Nombre max de calques",layersNumberDesc:"D\xE9finissez le nombre maximal de calques actives qui seront affich\xE9s dans la vue graphique",layersOpacityPlaceholder:"Opacit\xE9",layersOrder:"Ordre",layersOrderDesc:"Choisissez si les calques doivent \xEAtre consid\xE9r\xE9s dans un ordre croissant ou d\xE9croissant",layerProperties:"Propri\xE9t\xE9s pour les calques",layerPropertiesDesc:"Noms des propri\xE9t\xE9s utilis\xE9es pour trouver un calque pour le n\u0153ud",layerPropertiesAdd:"Ajouter une propri\xE9t\xE9 pour calque",layersOpacityIfNoLayer:"Opacit\xE9 des n\u0153uds sans calque",layersOpacityIfNoLayerDesc:"Si un n\u0153ud n'est pas associ\xE9 \xE0 un calque, il utilisera cette opacit\xE9 (mettez \xE0 0 pour masquer)",layersUseCustomOpacity:"Utiliser l'opacit\xE9 personnalis\xE9e",layersUseCustomOpacityDesc:"D\xE9finissez des valeurs d'opacit\xE9 fixes (0-1) pour certains calques. S'ils sont affich\xE9s, ils le seront toujours avec cette opacit\xE9, les autres opacit\xE9s seront interpol\xE9es.",linksAllowMultipleTypes:"Dessine plusieurs types",linksAllowMultipleTypesDesc:"Permet de dessiner plusieurs types de liens entre deux n\u0153uds",linksOutline:"Contourer les liens",linksOutlineDesc:"Ajoutez un contour fin aux liens et aux fl\xE8ches (lorsqu'ils sont opaques)",linksSameColorAsNode:"Colorer les liens en fonction de la source",linksSameColorAsNodeDesc:"Utilise la couleur du n\u0153ud source pour colorer les liens",linksFeatureRequired:"La fonctionnalit\xE9 des liens doit \xEAtre activ\xE9e.",localGraph:"Graphe local",localGraphDesc:"Personnalisez votre graphe local avec des param\xE8tres sp\xE9cifiques \xE0 cette vue",localGraphCurrentNodeColor:"Couleur du n\u0153ud actuel",localGraphCurrentNodeColorDesc:"Couleur du n\u0153ud principal du graphe local",localGraphCurrentNodeSize:"Taille du n\u0153ud actuel",localGraphCurrentNodeSizeDesc:"Taille de base du n\u0153ud principal du graphe local. D\xE9faut : 100, minimum : 10.",localGraphCurrentNodeShape:"Forme du n\u0153ud actuel",localGraphCurrentNodeShapeDesc:"Forme du n\u0153ud principal du graphe local",pinnedNodes:"N\u0153uds \xE9pingl\xE9s",pinNode:"\xC9pingler le n\u0153ud",unpinNode:"D\xE9s\xE9pingler le n\u0153ud",unpinAllNodes:"D\xE9s\xE9pingler tous les n\u0153uds",pinMultipleNodes:"\xC9pingler plusieurs n\u0153uds",pinMultipleShape:"Forme",pinMultipleGap:"Espace entre les n\u0153uds \xE9pingl\xE9s",pinMultipleCenter:"Centre",pinMultipleGridSize:"Nombre de colonnes",pinMultipleGridSizeDesc:'Les valeurs peuvent \xEAtre "N" (une seule ligne), "auto" (grille carr\xE9e) ou un entier positif',pinSelectedNodes:"\xC9pingler les n\u0153uds s\xE9lectionn\xE9s",unpinSelectedNodes:"D\xE9s\xE9pingler tous les n\u0153uds s\xE9lectionn\xE9s",size:"Taille",elementsStats:"Stastiques des n\u0153uds et liens",elementsStatsDesc:"Choisissez comment couleurs/tailles des n\u0153uds et des liens sont calcul\xE9es",linkSizesFunction:"Fonction pour la taille des liens",linkSizesFunctionDesc:"S\xE9lectionne comment le moteur du graphe doit calculer l'\xE9paisseur des liens",linkColorsFunction:"Fonction pour la couleur des liens",linkColorsFunctionDesc:"S\xE9lectionne comment le moteur du graphe doit calculer la couleur des liens",linkColorsPaletteDesc:"Choisissez la palette de couleur pour les liens",names:"Noms des n\u0153uds",namesDesc:"Personnalise l'affichage des noms des n\u0153uds",namesEllipsisPlaceholder:"\u2026",namesNumberOfCharacters:"Nombre de caract\xE8res",namesNumberOfCharactersDesc:"Nombre maximum de caract\xE8res \xE0 afficher pour le nom du n\u0153ud. Laissez vide pour afficher le nom complet. Choisissez le(s) caract\xE8re(s) \xE0 afficher si le nom est tronqu\xE9.",namesShowOnlyFileName:"Nom de fichier",namesShowOnlyFileNameDesc:"Afficher seulement le nom de fichier sans le chemin",namesNoExtension:"Sans extension",namesNoExtensionDesc:"Afficher le nom de fichier sans l'extension",namesUseProperties:"Utiliser des propri\xE9t\xE9s",namesUsePropertiesDesc:"Utiliser des propri\xE9t\xE9s pour le nom du n\u0153ud plut\xF4t que le nom de fichier",namesUsePropertiesAdd:"Ajouter une propri\xE9t\xE9 pour le nom",namesBackground:"Ajoute un fond",namesBackgroundDesc:"Ajoute un fond au nom du n\u0153ud pour le rendre plus lisible en cachant les \xE9l\xE9ments derri\xE8re",namesShowWhenNeighborHighlighted:"Toujours afficher lorsque le curseur passe sur un n\u0153ud voisin",namesShowWhenNeighborHighlightedDesc:"Affiche le texte m\xEAme lorsque le zoom est compl\xE8tement r\xE9duit si un n\u0153ud voisin connect\xE9 est mis en surbrillance",namesVerticalOffset:"D\xE9calage vertical",namesVerticalOffsetDesc:"D\xE9calage vertical du texte. Une valeur de 15 est recommand\xE9e pour \xE9viter un chevauchement avec la fl\xE8che",namesDynamicVerticalOffset:"D\xE9calage vertical dynamique",namesDynamicVerticalOffsetDesc:"Adapte dynamiquement la position verticale du texte pour \xE9viter tout chevauchement avec les \xE9l\xE9ments du n\u0153ud (fl\xE8ches, arcs, forme)",noLineHighlight:"Pas de surlignage de ligne",noLineHighlightDesc:"Lorsque vous survolez un n\u0153ud, ne met pas en surbrillance les liens connect\xE9s",nodeSizesFunction:"Fonction pour la taille des n\u0153uds",nodeSizesFunctionDesc:"S\xE9lectionne comment le moteur du graphe doit calculer la taille des n\u0153uds",nodeSizeProperties:"Propri\xE9t\xE9s pour la taille d'un n\u0153ud",nodeSizePropertiesDesc:"Noms des propri\xE9t\xE9s utilis\xE9es pour sp\xE9cifier la taille d'un n\u0153ud. Une propri\xE9t\xE9 doit \xEAtre de type nombre. Par d\xE9faut, la taille est de 100.",nodeSizePropertiesAdd:"Ajouter une propri\xE9t\xE9 pour taille de n\u0153ud",nodeSizesRange:"Intervalle de la taille des n\u0153uds",nodeSizesRangeDesc:"Facteurs minimum et maximum (entre 0,1 et 5) qui seront utilis\xE9s pour mettre \xE0 l'\xE9chelle la taille des n\u0153uds",nodeColorsFunction:"Fonction pour la couleur des n\u0153uds",nodeColorsFunctionDesc:"\xE9lectionne comment le moteur du graphe doit calculer la couleur des n\u0153uds",nodeColorsPaletteDesc:"Choisissez la palette de couleur pour les n\u0153uds",nodeStatsDirection:"Direction du graphe pour calculer les statistiques des n\u0153uds",nodeStatsDirectionDesc:"Lors du calcul des statistiques des n\u0153uds, utilisez le graphe dirig\xE9 par d\xE9faut, le graphe invers\xE9 (les n\u0153uds sources deviennent des cibles et vice versa), ou le graphe non-dirig\xE9 (aucun effet pour les m\xE9triques dirig\xE9es, telles que le nombre de r\xE9troliens)",nodeStatsDirectionNormal:"Dirig\xE9 par d\xE9faut",nodeStatsDirectionReversed:"Invers\xE9",nodeStatsDirectionUndirected:"Non-dirig\xE9",nodeStatsRecomputeOnGraphChange:"Recalculer quand le graphe change",nodeStatsRecomputeOnGraphChangeDesc:"Recalcule les m\xE9triques \xE0 chaque fois que les donn\xE9es du graphique changent. Cela peut entra\xEEner une baisse des performances.",openInNewTab:"Ouvre les n\u0153uds dans un nouvel onglet",openInNewTabDesc:"Toujours ouvrir les n\u0153uds dans un nouvel onglet lorsque vous cliquez dessus avec le bouton gauche de la souris",otherDisplay:"Autres options d'affichage",performance:"Performances",performanceDelay:"D\xE9lai d'initialisation (millisecondes)",performanceDelayDesc:"Il peut \xEAtre n\xE9cessaire d'attendre quelques fractions de secondes avant d'initialiser le module dans une vue graphique \xE0 cause de m\xE9caniques asynchrones",performanceMaxNodes:"Nombre maximum de n\u0153uds",performanceMaxNodesDesc:"Si le graphe contient plus de n\u0153uds que cette valeur, le module sera d\xE9sactiv\xE9 dans la vue graphique",recursive:"R\xE9cursif",removeSources:"D\xE9sactiver les sources",removeSourcesDesc:"D\xE9sactive les sources des liens lorsque ceux-ci sont d\xE9sactiv\xE9s",removeTargets:"D\xE9sactiver les cibles",removeTargetsDesc:"D\xE9sactive les cibles des liens lorsque ceux-ci sont d\xE9sactiv\xE9s",shape:"Forme",shapes:"Formes",shapesDesc:"Utilise diff\xE9rentes formes pour les n\u0153uds",shapePick:"Choisissez une forme",shapesNames:{circle:"cercle",square:"carr\xE9",triangle:"triangle",diamond:"diamand",pentagon:"pentagone",hexagon:"hexagone",octagon:"octogone",decagon:"d\xE9cagone",star4:"\xE9toile (4)",star5:"\xE9toile (5)",star6:"\xE9toile (6)",star8:"\xE9toile (8)",star10:"\xE9toile (10)",polygon:"polygone",starburst:"starburst",grid:"grille",line:"ligne",unknown:"inconnu"},svgScreenshotArcs:"Affiche les arcs (tags et/ou propri\xE9t\xE9s)",svgScreenshotCopy:"Capture d'\xE9cran CVG",svgScreenshotCopyCode:"Copie le code SVG dans le presse-papier",svgScreenshotCopyImage:"Copie l'image SVG dans le presse-papier",svgScreenshotCurvedLinks:"Utiliser les liens courbes",svgScreenshotNodeNames:"Afficher les noms des n\u0153uds",svgScreenshotNodeShapes:"Utiliser les formes des n\u0153uds",svgScreenshotOptions:"Options de la capture d'\xE9cran SVG",svgScreenshotVisibleArea:"Exporter seulement la zone visible",zoomOnNode:"Zoom sur le n\u0153ud",zoomScale:"Mise \xE0 l'\xE9chelle du zoom",zoomScaleDesc:"Nouvelle mise \xE9chelle de la vue graphique lorsqu'un zoom est r\xE9alis\xE9 sur un n\u0153ud"},jv={inputs:"Contr\xF4les",leftClickIncompatibility:"Plusieurs entr\xE9es utilisent le m\xEAme modificateur pour le clic gauche ; seule l'une d'entre elles fonctionnera",pinHotkey:"\xC9pingler un n\u0153ud (clic droit)",pinHotkeyDesc:"Lorsque vous cliquez avec le bouton droit sur un n\u0153ud tout en maintenant la touche sp\xE9cifi\xE9e enfonc\xE9e, cela permet d'\xE9pingler le n\u0153ud",radialMenu:"Activer le menu contextuel radial sur les n\u0153uds",radialMenuDesc:"Permet d'afficher un menu contextuel radial sur les n\u0153uds en faisant un clic droit tout en maintenant la touche sp\xE9cifi\xE9e enfonc\xE9e. Le menu affichera des options suppl\xE9mentaires provenant du module $t(plugin.name).",rightClickIncompatibility:"Plusieurs entr\xE9es utilisent le m\xEAme modificateur pour le clic droit ; seule l'une d'entre elles fonctionnera",selected:"s\xE9lectionn\xE9es",selectHotkey:"S\xE9lectionner un n\u0153ud (clic gauche)",selectHotkeyDesc:"Lorsque vous cliquez avec le bouton gauche de la souris sur un n\u0153ud tout en maintenant la touche sp\xE9cifi\xE9e enfonc\xE9e, cela permet d'\xE9pingler le n\u0153ud",selectionMode:"Mode de s\xE9lection",selectionModeAddTooltip:"Ajoute \xE0 la s\xE9lection actuelle",selectionModeIntersectTooltip:"Intersecte avec la s\xE9lection actuelle",selectionModeReplaceTooltip:"Remplace la s\xE9lection actuelle",selectionModeSubtractTooltip:"Soustrait \xE0 la s\xE9lection actuelle"},$v={changeInSettings:"Vous pouvez changer cette valeur dans les r\xE9glages",disabled:"d\xE9sactiv\xE9",graphAnalysisPluginRequired:"Le module communautaire Graph Analysis doit \xEAtre activ\xE9 pour utiliser cette fonction",invalidCharacter:"Caract\xE8re invalide",nlpPluginRequired:"Le module communautaire NLP doit \xEAtre activ\xE9 pour utiliser cette fonction",nodeLimiteExceeded:"Tentative de g\xE9rer trop de n\u0153uds",nodeLimitIs:"La limite est",nodeStatSizeFailed:"Echec lors du calcul des statistiques pour les tailles des n\u0153uds",nodeStatColorFailed:"Echec lors du calcul des statistiques pour les couleurs des n\u0153uds",linkStatSizeFailed:"Echec lors du calcul des statistiques pour les \xE9paisseurs des liens",linkStatColorFailed:"Echec lors du calcul des statistiques pour les couleurs des liens",functionToDefault:"La fonction par d\xE9faut est utilis\xE9e \xE0 la place.",stateDeleted:"L'\xE9tat a \xE9t\xE9 supprim\xE9",stateRenamed:"L'\xE9tat a \xE9t\xE9 renomm\xE9",stateSaved:"L'\xE9tat a \xE9t\xE9 sauvegard\xE9",normalStateSave:"Les options du moteur ont \xE9t\xE9 enregistr\xE9es pour l'\xE9tat normal",svgCopied:"SVG copi\xE9 dans le presse-papier"},qv={AND:"ET",ANDFilterDesc:"Conserver les n\u0153uds avec toutes les valeurs s\xE9lectionn\xE9es",OR:"OU",ORFilterDesc:"Conserver les n\u0153uds contenant au moins une des valeurs s\xE9lectionn\xE9es",combinationLogic:"Logique combinatoire",editShapeQuery:"\xC9diter la requ\xEAte pour la forme",excludeRegex:"Expression r\xE9guli\xE8re d'exclusion",excludeRegexDesc:"Utilisez des expressions r\xE9guli\xE8res pour exclure automatiquement certaines valeurs. Commencez une nouvelle ligne pour une nouvelle expression r\xE9guli\xE8re.",setShapeQueryFor:"Cr\xE9er la requ\xEAte de forme pour",files:"Fichiers",logicKey:{contains:"contient",containsNot:"ne contient pas",is:"est",isNot:"n'est pas",containsRegex:"contient regex",containsRegexNot:"ne contient pas regex",matchesRegex:"correspond regex",matchesRegexNot:"ne correspond pas regex",isEmpty:"est vide",isEmptyNot:"n'est pas vide"},matchingFiles:"Fichiers correspondants",match:"correspondance",matches:"correspondances",query:"Requ\xEAte",rules:"R\xE8gles",source:{all:"Tout",tag:"Tags",link:"Liens",property:"Propri\xE9t\xE9",file:"Fichier",folder:"Dossier",folderRec:"Dossier et sous-dossiers",path:"Chemin"},viewMatches:"Voire les correspondances"},Yv={defaultState:"\xC9tat par d\xE9faut",editStateName:"Modifier le nom de l'\xE9tat",graphState:"\xC9tat du graphe",newStateName:"Nom du nouvel \xE9tat",openSettings:"Afficher les \xE9tats",saveConfigsWithState:"Enregistrer la configuration avec l'\xE9tat",saveConfigsWithStateDesc:"Lorsque vous enregistrez un \xE9tat, le plugin enregistre automatiquement la configuration sous le m\xEAme nom (apr\xE8s avoir supprim\xE9 les caract\xE8res non valides)",saveForDefaultState:"Sauvegarder pour l'\xE9tat par d\xE9faut",saveForDefaultStateDesc:"Sauvegarde les r\xE9glages actuels comme les r\xE9glages pour l'\xE9tat par d\xE9faut",saveForNormalState:"Sauvegarder pour l'\xE9tat natif",saveForNormalStateDesc:"(Graphe de base sans $t(plugin.name))",saveForNormalStateTooltip:"Sauvegarde les r\xE9glages actuels comme les r\xE9glages pour l'\xE9tat natif",showGraphState:"Affiche l'\xE9tat du graphe",startingState:"\xC9tat de d\xE9part",startingStateDesc:"S\xE9lectionne quel \xE9tat doit \xEAtre utilis\xE9 pour initialiser le module",states:"\xC9tats",syncDefaultState:"Synchroniser l'\xE9tat par d\xE9faut",syncDefaultStateDesc:"Toujours ouvrir l'\xE9tat par d\xE9faut avec les options actuellement utilis\xE9es par le plugin principal sans avoir \xE0 les enregistrer manuellement"},Xv={AdamicAdar:"Adamic Adar",authority:"Authority centrality (from HITS)",backlinksCount:"Nombre de r\xE9troliens",backUniquelinksCount:"Nombre de r\xE9troliens uniques",betweenness:"Betweenness centrality",BoW:"Bag of Words",closeness:"Closeness centrality",clusteringCoefficient:"Clustering coefficient",coCitations:"Co-citations",constant:"Constante",creationTime:"Dur\xE9e depuis la cr\xE9ation du fichier",degree:"Degree centrality",eccentricity:"Eccentricity in the connected graph",eigenvector:"Eigenvector centrality",filenameLength:"Longueur du nom de fichier",forwardlinksCount:"Nombre de liens sortants",forwardUniquelinksCount:"Nombre de liens sortants uniques",totallinksCount:"Nombre de liens",totalUniquelinksCount:"Nombre de liens uniques",hub:"Hub centrality (from HITS)",Jaccard:"Jaccard similarity",modifiedTime:"Temps depuis la derni\xE8re modification",Occurences:"Number of occurences",OtsukaOchiai:"Otsuka-Ochiai coefficient",overlap:"Overlap coefficient",tagsCount:"Nombre de tags",topological:"Propagation topologique",warningUnreliableOS:"Ce calcul n'est pas fiable et peut varier selon l'OS.",sentiment:"Sentiment"},Kv={horizontalLegend:"L\xE9gende horizontale",horizontalLegendDesc:"Utilise une disposition horizontale pour le conteneur de l\xE9gende (avec des balises, des propri\xE9t\xE9s et des boutons de basculement des balises)",howToUse:"Comment utiliser",howToUseGradientMaker:"
  • Faites glisser les poign\xE9es pour d\xE9placer les arr\xEAts de couleur le long du d\xE9grad\xE9
  • Cliquez sur une poign\xE9e pour changer sa couleur
  • Double-cliquez sur le d\xE9grad\xE9 pour ajouter un nouveau point de couleur
  • Appuyez sur les touches Retour arri\xE8re, Supprimer ou Effacer sur une poign\xE9e pour la supprimer
  • Interpolate: cr\xE9e des transitions de couleurs fluides entre les arr\xEAts
  • Inverser: inverse l'ordre final de la palette (gauche \u2194 droite)
",name:"Nom",showPinIcon:"Afficher l'ic\xF4ne d'\xE9pingle",showPinIconDesc:"Lorsqu'un n\u0153ud est \xE9pingl\xE9, afficher une ic\xF4ne dans son coin sup\xE9rieur droit pour indiquer son \xE9tat \xE9pingl\xE9"},Zv={plugin:Uv,beta:Vv,controls:zv,errors:Wv,features:Hv,inputs:jv,notices:$v,query:qv,states:Yv,statsFunctions:Xv,UI:Kv};var op={};El(op,{UI:()=>lx,beta:()=>Jv,controls:()=>ex,default:()=>cx,errors:()=>tx,features:()=>rx,inputs:()=>ix,notices:()=>sx,plugin:()=>Qv,query:()=>nx,states:()=>ox,statsFunctions:()=>ax});var Qv={custom:"\u81EA\u5B9A\u4E49",dark:"\u6697\u8272",default:"\u9ED8\u8BA4",folder:"\u6587\u4EF6\u5939",folders:"\u6587\u4EF6\u5939",filter:"\u7B5B\u9009\u5668",nodeName:"\u8282\u70B9\u540D\u79F0",info:"\u4FE1\u606F",light:"\u4EAE\u8272",name:"Extended Graph \u589E\u5F3A\u56FE\u8C31",nodes:"\u8282\u70B9",options:"\u9009\u9879",settings:"\u8BBE\u7F6E",source:"\u6765\u6E90",target:"\u76EE\u6807",valuePlaceholder:"\u8F93\u5165\u503C..."},Jv={beta:"Beta",betaFeatures:"Beta \u529F\u80FD",enableCSS:"\u542F\u7528\u81EA\u5B9A\u4E49 CSS",enableCSSDesc:"\u5141\u8BB8\u63D2\u4EF6\u5C06\u81EA\u5B9A\u4E49 CSS \u6CE8\u5165\u5173\u7CFB\u56FE\u8C31\u4EE5\u8FDB\u884C\u8FDB\u4E00\u6B65\u5B9A\u5236\u3002\u518D\u6B21\u8F93\u5165\u4F7F\u7528\u7684 CSS \u7247\u6BB5\u540D\u79F0\u3002",revertAction:"\u64A4\u9500\u64CD\u4F5C",revertActionDesc:"\u5F53\u8FBE\u5230\u6700\u5927\u8282\u70B9\u6570\u65F6\uFF0C\u5C1D\u8BD5\u64A4\u9500\u6700\u540E\u64CD\u4F5C\uFF08\u800C\u975E\u76F4\u63A5\u7981\u7528\u63D2\u4EF6\uFF09"},ex={add:"\u6DFB\u52A0",apply:"\u5E94\u7528",back:"\u8FD4\u56DE",cancel:"\u53D6\u6D88",delete:"\u5220\u9664",disable:"\u7981\u7528",disableAll:"\u5168\u90E8\u7981\u7528",disableInGraphView:"\u5728\u5173\u7CFB\u56FE\u8C31\u4E2D\u7981\u7528",edit:"\u7F16\u8F91",enable:"\u542F\u7528",enableAll:"\u5168\u90E8\u542F\u7528",enabled:"\u5DF2\u542F\u7528",enableInGraphView:"\u5728\u5173\u7CFB\u56FE\u8C31\u4E2D\u542F\u7528",export:"\u5BFC\u51FA",exportSettings:"\u5BFC\u51FA\u8BBE\u7F6E",goTo:"\u8DF3\u8F6C\u5230",hide:"\u9690\u85CF",hideAll:"\u5168\u90E8\u9690\u85CF",hideRow:"\u9690\u85CF\u884C",import:"\u5BFC\u5165",importSettings:"\u5BFC\u5165\u8BBE\u7F6E",importSettingsAndReload:"\u5BFC\u5165\u8BBE\u7F6E\u5E76\u91CD\u65B0\u52A0\u8F7D",interpolate:"\u63D2\u503C",manage:"\u7BA1\u7406",moveUp:"\u4E0A\u79FB",moveDown:"\u4E0B\u79FB",no:"\u5426",openLegend:"\u6253\u5F00\u56FE\u4F8B (\u6807\u7B7E\u3001\u94FE\u63A5\u3001\u5C5E\u6027)",orCreateConfig:"\u6216\u521B\u5EFA\u65B0\u914D\u7F6E",override:"\u8986\u76D6",overrideConfig:"\u8986\u76D6\u73B0\u6709\u914D\u7F6E",page:"\u9875\u9762",pageCurrent:"\u5F53\u524D\u9875",pageFirst:"\u9996\u9875",pageLast:"\u672B\u9875",pathRegexPlaceholder:'\u8F93\u5165\u8DEF\u5F84\u6216\u6B63\u5219\u8868\u8FBE\u5F0F\uFF08"/regex/"\uFF09...',resetGraph:"\u91CD\u7F6E\u56FE\u8C31",resetInGraphView:"\u5728\u5173\u7CFB\u56FE\u8C31\u4E2D\u91CD\u7F6E",reverse:"\u53CD\u8F6C",save:"\u4FDD\u5B58",selectConfigToImport:"\u9009\u62E9\u8981\u5BFC\u5165\u7684\u914D\u7F6E",setConfigName:"\u8BBE\u7F6E\u914D\u7F6E\u540D\u79F0",show:"\u663E\u793A",showAll:"\u5168\u90E8\u663E\u793A",toggle:"\u5207\u6362",toggleAll:"\u5207\u6362\u6240\u6709\u6587\u4EF6\u5939",toggleAllWithMoreThanOneNode:"\u542B\u6709\u5927\u4E8E1\u4E2A\u8282\u70B9\u6570",rows:"\u884C",yes:"\u662F"},tx={uri401:"\u83B7\u53D6\u8282\u70B9\u56FE\u50CF\u65F6\u9047\u5230 URL \u672A\u6388\u6743\u9519\u8BEF\uFF08\u4EE3\u7801401\uFF09\uFF1A\u8FD9\u53EF\u80FD\u610F\u5473\u7740URL\u65E0\u6548\u3002\u56FE\u50CF\u5C06\u4E0D\u4F1A\u52A0\u8F7D\uFF0C\u53EF\u4EE5\u5B89\u5168\u5FFD\u7565\u6B64\u6D88\u606F\u3002",issueNeedView:"\u63D2\u4EF6 $t(plugin.name) \u51FA\u73B0\u95EE\u9898\u3002\u8BF7\u5173\u95ED\u5173\u7CFB\u56FE\u8C31\u540E\u91CD\u65B0\u6253\u5F00\u3002",paletteNameRequired:"\u9700\u8981\u4E3A\u6B64\u989C\u8272\u6620\u5C04\u9009\u62E9\u540D\u79F0"},rx={ids:{arrows:"\u7BAD\u5934",automation:"\u81EA\u52A8\u5316",beta:"beta",display:"\u663E\u793A",elementsStats:"\u7EDF\u8BA1",filter:"\u8FC7\u6EE4\u5668",focus:"\u805A\u7126",folders:"\u6587\u4EF6\u5939",icons:"\u56FE\u6807",images:"\u56FE\u50CF",inputs:"\u8F93\u5165",layers:"\u56FE\u5C42",localGraph:"\u5C40\u90E8\u56FE\u8C31",linkTypes:"\u94FE\u63A5",names:"\u8282\u70B9\u540D\u79F0",performances:"\u6027\u80FD",properties:"\u5C5E\u6027",shapes:"\u5F62\u72B6",tags:"\u6807\u7B7E",zoom:"\u805A\u7126"},animateDotsOnLinks:"\u5728\u94FE\u63A5\u4E0A\u663E\u793A\u5706\u70B9\u52A8\u753B",animateDotsOnLinksDesc:"\u5F53\u9F20\u6807\u60AC\u505C\u5728\u8282\u70B9\u4E0A\u65F6\uFF0C\u5728\u94FE\u63A5\u4E0A\u663E\u793A\u5706\u70B9\u52A8\u753B\u4EE5\u5C55\u793A\u4FE1\u606F\u6D41\u5411",animateDotsOnLinksSpeed:"\u52A8\u753B\u901F\u5EA6",animateDotsOnLinksSpeedDesc:"\u94FE\u63A5\u4E0A\u5706\u70B9\u52A8\u753B\u7684\u901F\u5EA6",arrows:"\u7BAD\u5934",arrowsDesc:"\u81EA\u5B9A\u4E49\u7BAD\u5934\u663E\u793A\u65B9\u5F0F",arrowsColor:"\u81EA\u5B9A\u4E49\u989C\u8272",arrowsColorDesc:"\u4E3A\u94FE\u63A5\u7BAD\u5934\u9009\u62E9\u81EA\u5B9A\u4E49\u989C\u8272",arrowsInvert:"\u53CD\u8F6C\u7BAD\u5934",arrowsInvertDesc:"\u53CD\u8F6C\u94FE\u63A5\u4E0A\u7BAD\u5934\u7684\u65B9\u5411",arrowsFixedSize:"\u56FA\u5B9A\u5927\u5C0F",arrowsFixedSizeDesc:"\u7F29\u653E\u65F6\u4F7F\u7BAD\u5934\u4FDD\u6301\u56FA\u5B9A\u5927\u5C0F",arrowsFlat:"\u4E09\u89D2\u5F62\u7BAD\u5934",arrowsFlatDesc:"\u4F7F\u7528\u4E09\u89D2\u5F62\u7BAD\u5934\u66FF\u4EE3\u9ED8\u8BA4\u7684\u66F2\u7EBF\u7BAD\u5934\u6837\u5F0F",arrowsOpaque:"\u4E0D\u900F\u660E\u7BAD\u5934",arrowsOpaqueDesc:"\u79FB\u9664\u7BAD\u5934\u900F\u660E\u5EA6\uFF0C\u4F7F\u5176\u5B8C\u5168\u5B9E\u5FC3\u663E\u793A",arrowsOpaqueAlways:"\u59CB\u7EC8",arrowsOpaqueKeepFading:"\u4EC5\u7F29\u653E\u65F6",arrowsScale:"\u7F29\u653E",arrowsScaleDesc:"\u589E\u5927\u6216\u51CF\u5C0F\u7BAD\u5934\u6BD4\u4F8B",automation:"\u81EA\u52A8\u5316",autoEnable:"\u81EA\u52A8\u542F\u7528",autoEnableDesc:"\u5728\u5173\u7CFB\u56FE\u8C31\u4E2D\u81EA\u52A8\u542F\u7528\u63D2\u4EF6",autoReset:"\u66F4\u6539\u540E\u91CD\u7F6E\u5173\u7CFB\u56FE\u8C31",autoResetDesc:"\u5982\u679C\u5173\u95ED\u6B64\u6807\u7B7E\u540E\u8BBE\u7F6E\u53D1\u751F\u53D8\u5316\uFF0C\u5219\u5728\u5DF2\u542F\u7528\u63D2\u4EF6\u7684\u5173\u7CFB\u56FE\u8C31\u4E2D\u91CD\u7F6E\u63D2\u4EF6",borderUnresolved:"\u672A\u89E3\u6790\u8282\u70B9\u7684\u8F6E\u5ED3",borderUnresolvedDesc:"\u5982\u679C\u503C\u57280\u52301\u4E4B\u95F4\uFF08\u4E0D\u5305\u62EC\u8FB9\u754C\u503C\uFF09\uFF0C\u672A\u89E3\u6790\u8282\u70B9\u5C06\u53EA\u663E\u793A\u5706\u5F62\u8F6E\u5ED3\u800C\u975E\u5B8C\u6574\u7684\u5706",brightness:"\u660E\u5EA6\u7CFB\u6570",brightnessDesc:"\u4F7F\u7528\u8BE5\u7CFB\u6570\u8C03\u6574\u6807\u7B7E\u3001\u5C5E\u6027\u548C\u94FE\u63A5\u7684\u914D\u8272\u4EAE\u5EA6\uFF0C\u4EE5\u66F4\u597D\u5730\u9002\u914D\u660E\u6697\u4E3B\u9898\uFF08\u6570\u503C\u8D8A\u5927\u8D8A\u4EAE\uFF09\u3002\u5207\u6362\u4E3B\u9898\u65F6\uFF0C\u9700\u91CD\u65B0\u52A0\u8F7D\u56FE\u8C31\u3002",canonicalizePropertiesWithDataview:"\u89C4\u8303\u5316\u5C5E\u6027\u540D\u79F0\uFF08Dataview\uFF09",canonicalizePropertiesWithDataviewDesc:"\u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0CDataview\u63D2\u4EF6\u4F1A\u89C4\u8303\u5316\u5C5E\u6027\u540D\u79F0\uFF0C\u5C06\u6240\u6709\u5B57\u6BCD\u8F6C\u4E3A\u5C0F\u5199\u5E76\u79FB\u9664\u8FDE\u5B57\u7B26\u548C\u4E0B\u5212\u7EBF\u3002\u5982\u9700\u4F7F\u7528\u975E\u89C4\u8303\u5316\u7684\u5C5E\u6027\uFF0C\u8BF7\u7981\u7528\u6B64\u529F\u80FD\u3002\u8BF7\u6CE8\u610F\uFF0C\u82E5\u5B58\u5728\u4E24\u4E2A\u5C5E\u6027\u4E92\u4E3A\u89C4\u8303\u5316\u7248\u672C\uFF08\u4F8B\u5982CaseSensitive\u548Ccasesensitive\uFF09\uFF0C\u5219\u89C4\u8303\u5316\u7248\u672C\u5C06\u88AB\u820D\u5F03\u3002\u6B64\u9009\u9879\u4EC5\u5728\u4F7F\u7528Dataview\u63D2\u4EF6\u65F6\u751F\u6548\u3002",colorBasedOnDepth:"\u57FA\u4E8E\u6DF1\u5EA6\u7740\u8272 (\u4EC5\u5C40\u90E8\u56FE\u8C31)",colorBasedOnDepthDesc:"\u5728\u5C40\u90E8\u56FE\u8C31\u4E2D\uFF0C\u6839\u636E\u8282\u70B9\u76F8\u5BF9\u4E8E\u4E3B\u8282\u70B9\u7684\u6DF1\u5EA6\u4E3A\u5176\u7740\u8272",depthPalette:"\u6DF1\u5EA6\u8C03\u8272\u677F",depthPaletteDesc:"\u9009\u62E9\u7528\u4E8E\u6DF1\u5EA6\u5C42\u7EA7\u8282\u70B9\u7684\u914D\u8272\u65B9\u6848",disableNodes:"\u7981\u7528\u8282\u70B9",disableNodesDesc:"\u5F53\u8282\u70B9\u4E0A\u6240\u6709\u5706\u5F27\u90FD\u88AB\u7981\u7528\u65F6\uFF0C\u5C06\u5176\u4ECE\u56FE\u8C31\u4E2D\u79FB\u9664",excludeSourceFolders:"\u6392\u9664\u6765\u6E90\u6587\u4EF6\u5939",excludeSourceFoldersDesc:"\u6392\u9664\u6765\u6E90\u5728\u67D0\u4E9B\u6587\u4EF6\u5939\u5185\u7684\u6B63\u5411\u94FE\u63A5\uFF08\u5373\u6765\u81EA\u8FD9\u4E9B\u6587\u4EF6\u5939\u7684\u94FE\u63A5\uFF09",excludeTargetFolders:"\u6392\u9664\u76EE\u6807\u6587\u4EF6\u5939",excludeTargetFoldersDesc:"\u6392\u9664\u76EE\u6807\u5728\u67D0\u4E9B\u6587\u4EF6\u5939\u5185\u7684\u53CD\u5411\u94FE\u63A5\uFF08\u5373\u6307\u5411\u8FD9\u4E9B\u6587\u4EF6\u5939\u7684\u94FE\u63A5\uFF09",excludedFolders:"\u6392\u9664\u7684\u6587\u4EF6\u5939",externalLinks:"\u6DFB\u52A0\u5916\u90E8\u94FE\u63A5",externalLinksDesc:"\u5C06\u5916\u90E8 URL \u4F5C\u4E3A\u9644\u4EF6\u8282\u70B9\u663E\u793A\u5728\u56FE\u8C31\u4E2D\u3002\u94FE\u63A5\u7684\u7C7B\u578B\u4E0D\u53D7\u652F\u6301\u3002",noExclusionFilter:"\u5F53\u524D\u672A\u5E94\u7528\u6392\u9664\u7B5B\u9009\u5668\uFF0C\u8BF7\u5728\u4E0B\u65B9\u6DFB\u52A0\u3002",withExclusionFilter:"\u5339\u914D\u4EE5\u4E0B\u7B5B\u9009\u5668\u7684\u6587\u4EF6\u5728\u56FE\u8C31\u4E2D\u5C06\u6CA1\u6709\u6B63\u5411/\u53CD\u5411\u94FE\u63A5\uFF1A",fadeInElements:"\u65B0\u5143\u7D20\u6DE1\u5165\u6548\u679C",fadeInElementsDesc:"\u63D2\u4EF6\u63D0\u4F9B\u7684\u62D3\u5C55\u5143\u7D20\u4F1A\u4EE5\u6DE1\u5165\u7684\u65B9\u5F0F\u663E\u793A\uFF0C\u800C\u975E\u7A81\u7136\u51FA\u73B0",filters:"\u8FC7\u6EE4\u5668",filtersDesc:"\u57FA\u4E8E\u6B63\u5219\u5339\u914D\uFF0C\u4ECE\u56FE\u8C31\u4E2D\u6392\u9664\u7279\u5B9A\u7684\u6587\u4EF6\u548C\u6587\u4EF6\u5939",focus:"\u805A\u7126",focusDesc:"\u653E\u5927\u5F53\u524D\u6D3B\u52A8\u7B14\u8BB0\u5BF9\u5E94\u7684\u8282\u70B9",focusScale:"\u7F29\u653E\u7CFB\u6570",focusScaleDesc:"\u5F53\u524D\u6D3B\u52A8\u7B14\u8BB0\u5BF9\u5E94\u7684\u8282\u70B9\u5C06\u6309\u6B64\u7CFB\u6570\u8FDB\u884C\u653E\u5927",folders:"\u6587\u4EF6\u5939",foldersDesc:"\u663E\u793A\u6587\u4EF6\u5939\u8FB9\u6846",folderShowFullPath:"\u663E\u793A\u5B8C\u6574\u8DEF\u5F84",folderShowFullPathDesc:"\u542F\u7528\u65F6\u663E\u793A\u6587\u4EF6\u5939\u5B8C\u6574\u8DEF\u5F84\uFF1B\u7981\u7528\u65F6\u4EC5\u663E\u793A\u6587\u4EF6\u5939\u540D\u79F0",icons:"\u56FE\u6807",iconsDesc:"\u4E3A\u8282\u70B9\u4F7F\u7528\u56FE\u6807\u6216\u8868\u60C5\u7B26\u53F7",iconProperties:"\u56FE\u6807\u5C5E\u6027",iconPropertiesDesc:"\u53EF\u7528\u4E8E\u67E5\u8BE2\u8282\u70B9\u7B14\u8BB0\u56FE\u6807\u7684\u5C5E\u6027\u952E\uFF08\u540D\u79F0\uFF09\uFF0C\u5BF9\u5E94\u5143\u6570\u636E\u652F\u6301\u4F7F\u7528 Unicode \u8868\u60C5\u7B26\u53F7\u6216 Lucide \u56FE\u6807\u540D\u79F0\u3002",iconPropertiesAdd:"\u6DFB\u52A0\u56FE\u6807\u5C5E\u6027",iconUsePlugin:'\u4F7F\u7528"Iconic"\u6216"Iconize"\u63D2\u4EF6',iconUsePluginDesc:'\u4F7F\u7528\u901A\u8FC7"Iconic"\u6216"Iconize"\u793E\u533A\u63D2\u4EF6\u5728\u6587\u4EF6\u8D44\u6E90\u7BA1\u7406\u5668\u4E2D\u8BBE\u7F6E\u7684\u56FE\u6807',iconUsePluginColor:'\u4F7F\u7528"Iconic"\u6216"Iconize"\u63D2\u4EF6\u7684\u989C\u8272',iconUsePluginColorDesc:'\u4F7F\u7528\u901A\u8FC7"Iconic"\u6216"Iconize"\u63D2\u4EF6\u5728\u6587\u4EF6\u8D44\u6E90\u7BA1\u7406\u5668\u4E2D\u8BBE\u7F6E\u7684\u56FE\u6807\u989C\u8272',iconUseParentIcon:"\u4F7F\u7528\u7236\u6587\u4EF6\u5939\u56FE\u6807",iconUseParentIconDesc:'\u5982\u679C\u6587\u4EF6\u672C\u8EAB\u672A\u901A\u8FC7"Iconic"\u6216"Iconize"\u63D2\u4EF6\u8BBE\u7F6E\u56FE\u6807\uFF0C\u5C06\u5C1D\u8BD5\u67E5\u627E\u7236\u6587\u4EF6\u5939\u8BBE\u7F6E\u7684\u56FE\u6807',image:"\u56FE\u50CF",images:"\u56FE\u50CF",imageDesc:"\u5728\u8282\u70B9\u9876\u90E8\u663E\u793A\u56FE\u50CF",imagesAllowExternal:"\u5141\u8BB8\u4F7F\u7528\u7F51\u7EDC\u56FE\u50CF",imagesAllowExternalDesc:"\u5141\u8BB8\u901A\u8FC7 http: \u548C https: \u534F\u8BAE\u52A0\u8F7D\u5916\u90E8\u56FE\u50CF",imagesAllowExternalLocal:"\u5141\u8BB8\u4F7F\u7528\u5E93\u5916\u7684\u672C\u5730\u56FE\u50CF",imagesAllowExternalLocalDesc:"\u5141\u8BB8\u901A\u8FC7 file: \u548C app: \u534F\u8BAE\u52A0\u8F7D\u5916\u90E8\u56FE\u50CF",imagesFromProperty:"\u6765\u81EA\u5C5E\u6027",imagesFromPropertyDesc:"\u663E\u793Afrontmatter\u4E2D\u5C5E\u6027\u6307\u5B9A\u7684\u56FE\u50CF",imagesFromEmbeds:"\u6765\u81EA\u5D4C\u5165",imagesFromEmbedsDesc:'\u5982\u679C\u5728\u7B14\u8BB0\u5185\u627E\u5230\u7684\u5D4C\u5165\u7684\u56FE\u50CF\uFF0C\u5219\u5C06\u5176\u663E\u793A\u3002"\u6765\u81EA\u5C5E\u6027"\u5177\u6709\u66F4\u9AD8\u4F18\u5148\u7EA7\u3002',imagesForAttachments:"\u9644\u4EF6\u56FE\u50CF",imagesForAttachmentsDesc:"\u4E3A\u9644\u4EF6\u8282\u70B9\u663E\u793A\u56FE\u50CF",imageProperties:"\u56FE\u50CF\u5C5E\u6027",imagePropertiesDesc:"\u53EF\u7528\u4E8E\u67E5\u8BE2\u8282\u70B9\u7B14\u8BB0\u56FE\u50CF\u7684\u5C5E\u6027\u540D\u79F0",imagePropertiesAdd:"\u6DFB\u52A0\u56FE\u50CF\u5C5E\u6027",imageBorderWidth:"\u8FB9\u6846\u5BBD\u5EA6(%)",imageBorderWidthDesc:"\u8282\u70B9\u80CC\u666F\u4F5C\u4E3A\u53EF\u89C1\u8FB9\u6846\u7684\u767E\u5206\u6BD4",interactives:{alreadyExists:"\u5DF2\u5B58\u5728",arcsAdd:"\u6DFB\u52A0\u5706\u5F27",arcsAddPropertyDesc:"\u5728\u8282\u70B9\u5468\u56F4\u6DFB\u52A0\u5706\u5F27\u4EE5\u53EF\u89C6\u5316\u5C5E\u6027\u503C",arcsAddTagDesc:"\u5728\u8282\u70B9\u5468\u56F4\u6DFB\u52A0\u5706\u5F27\u4EE5\u53EF\u89C6\u5316\u6807\u7B7E",arcsSpread:"\u5C55\u5F00\u5706\u5F27",arcsSpreadDesc:"\u5728\u8282\u70B9\u5468\u56F4\u5C55\u5F00\u5706\u5F27\uFF0C\u4EE5\u5B8C\u5168\u586B\u5145\u53EF\u7528\u7A7A\u95F4",arcWeight:"\u5E26\u6743\u91CD\u7684\u5706\u5F27\u957F\u5EA6",arcWeightDesc:'\u4F7F\u7528\u503C\u51FA\u73B0\u7684\u6B21\u6570\u6765\u8C03\u6574\u5706\u5F27\u957F\u5EA6(\u9700\u542F\u7528"\u5C55\u5F00\u5706\u5F27")',colorLinks:"\u94FE\u63A5\u7740\u8272",colorLinksDesc:"\u4E3A\u5173\u7CFB\u56FE\u8C31\u4E2D\u7684\u94FE\u63A5\u6DFB\u52A0\u989C\u8272",colorLinkTypeLabel:"\u6807\u7B7E\u989C\u8272",colorLinkTypeLabelDesc:"\u4F7F\u7528\u4E0E\u94FE\u63A5\u76F8\u540C\u7684\u989C\u8272\u4E3A\u7C7B\u578B\u6807\u7B7E\u6587\u672C\u7740\u8272",curvedFactor:"\u66F2\u7387\u7CFB\u6570",curvedFactorDesc:"\u8D1F\u503C\u5C06\u53CD\u8F6C\u5F62\u72B6\uFF0C\u7EDD\u5BF9\u503C\u8D8A\u5927\u66F2\u7387\u8D8A\u5927\uFF0C\u63A5\u8FD10\u7684\u503C\u5C06\u4F7F\u5176\u53D8\u5E73",curvedLinks:"\u66F2\u7EBF\u94FE\u63A5",curvedLinksDesc:"\u4F7F\u7528\u66F2\u7EBF\u94FE\u63A5\u800C\u975E\u76F4\u7EBF",displayLinkTypeLabel:"\u663E\u793A\u6807\u7B7E",displayLinkTypeLabelDesc:"\u5728\u94FE\u63A5\u9876\u90E8\u663E\u793A\u7C7B\u578B\u6807\u7B7E\u6587\u672C",linkTypes:"\u94FE\u63A5",linkTypesDesc:"\u663E\u793A\u548C\u7B5B\u9009\u94FE\u63A5\u7C7B\u578B",noneTypeID:"\u65E0\u7C7B\u578BID",noneTypeIDDesc:"\u5982\u679C\u672A\u627E\u5230\u5C06\u8D4B\u4E88\u7684ID",palette:"\u8C03\u8272\u677F",paletteDesc:"\u9009\u62E9\u8C03\u8272\u677F",paletteMatplotlibDesc:"\u8FD9\u4E9B\u989C\u8272\u6620\u5C04\u6765\u81EA matplotlib\u3002\u60A8\u53EF\u4EE5\u5728\u6B64\u5904\u67E5\u770B\u66F4\u591A\u4FE1\u606F\uFF1A",palettePickGradient:"\u9009\u62E9\u6E10\u53D8\u8C03\u8272\u677F",properties:"\u5C5E\u6027",propertiesDesc:"\u5C5E\u6027\u503C\u7684\u663E\u793A\u548C\u7B5B\u9009",property:"\u5C5E\u6027",propertyDesc:"\u5C5E\u6027\u503C\u7684\u663E\u793A\u548C\u7B5B\u9009",propertyAlreadyExists:"\u6B64\u5C5E\u6027\u5DF2\u5B58\u5728",propertyReservedFolders:"\u6B64\u5C5E\u6027\u952E\u4E3A\u6587\u4EF6\u5939\u4FDD\u7559",propertyReservedLinks:"\u6B64\u5C5E\u6027\u952E\u4E3A\u94FE\u63A5\u4FDD\u7559",propertyReservedTags:"\u6B64\u5C5E\u6027\u952E\u4E3A\u6807\u7B7E\u4FDD\u7559",selection:"\u9009\u62E9",selectionDesc:"\u9009\u62E9\u8BE5\u63D2\u4EF6\u5185\u6709\u6548\u7684\u503C",selectionFor:"\u9009\u62E9\u4E3A",specificColors:"\u7279\u5B9A\u989C\u8272",specificColorsDesc:"\u4E3A\u5176\u5206\u914D\u6307\u5B9A\u7684\u989C\u8272\uFF08\u8986\u76D6\u8C03\u8272\u677F\u7684\u914D\u8272\uFF09",tags:"\u6807\u7B7E",tagsDesc:"\u6807\u7B7E\u7684\u663E\u793A\u548C\u7B5B\u9009"},layers:"\u56FE\u5C42",layersDesc:"\u6839\u636E\u56FE\u5C42\u7684\u8282\u70B9\u5206\u7EC4\uFF0C\u5E76\u8C03\u8282\u5B83\u4EEC\u7684\u900F\u660E\u5EA6",layersDisplayLabels:"\u5728 UI \u4E2D\u663E\u793A\u6807\u7B7E",layersDisplayLabelsDesc:"\u5982\u679C\u56FE\u5C42\u6709\u76F8\u5173\u8054\u7684\u6807\u7B7E\uFF0C\u4F8B\u5982 `4_cave`\uFF0C\u5219\u5C06\u6807\u7B7E\u6DFB\u52A0\u5230 UI \u4E2D",layersInfoDataview:"\u6CE8\u610F\uFF0C\u60A8\u5728\u6B64\u4FEE\u6539\u7684\u56FE\u5C42\u7EA7\u522B\u548C\u6807\u7B7E\u5C06\u4E0D\u4F1A\u53CD\u5411\u5199\u5165 Dataview \u7684\u5185\u8054\u5C5E\u6027\u3002",layersInfoLevelNotFromID:"\u661F\u53F7\u8868\u793A\u8BE5\u56FE\u5C42\u7684\u5C42\u7EA7\u8BBE\u7F6E\u5E76\u4E0D\u57FA\u4E8E\u5C5E\u6027\u503C",layersNumber:"\u6700\u5927\u56FE\u5C42\u6570",layersNumberDesc:"\u8BBE\u7F6E\u5C06\u5728\u56FE\u8C31\u89C6\u56FE\u4E2D\u540C\u65F6\u663E\u793A\u7684\u6700\u5927\u6D3B\u52A8\u56FE\u5C42\u6570",layersOpacityPlaceholder:"\u4E0D\u900F\u660E\u5EA6",layersOrder:"\u56FE\u5C42\u987A\u5E8F",layersOrderDesc:"\u9009\u62E9\u56FE\u5C42\u662F\u6309\u5347\u5E8F\u8FD8\u662F\u964D\u5E8F\u6392\u5217",layerProperties:"\u56FE\u5C42\u5C5E\u6027",layerPropertiesDesc:"\u53EF\u7528\u4E8E\u67E5\u8BE2\u8282\u70B9\u7B14\u8BB0\u56FE\u5C42\u7684\u5C5E\u6027\u540D\u79F0",layerPropertiesAdd:"\u6DFB\u52A0\u56FE\u5C42\u5C5E\u6027",layersOpacityIfNoLayer:"\u6307\u5B9A\u65E0\u56FE\u5C42\u8282\u70B9\u7684\u4E0D\u900F\u660E\u5EA6",layersOpacityIfNoLayerDesc:"\u5982\u679C\u8282\u70B9\u672A\u5173\u8054\u5230\u4EFB\u4F55\u56FE\u5C42\uFF0C\u5219\u4E3A\u5176\u4F7F\u7528\u8BE5\u4E0D\u900F\u660E\u5EA6\uFF08\u8BBE\u7F6E\u4E3A0\u5373\u9690\u85CF\uFF09",layersUseCustomOpacity:"\u4F7F\u7528\u81EA\u5B9A\u4E49\u4E0D\u900F\u660E\u5EA6",layersUseCustomOpacityDesc:"\u4E3A\u67D0\u4E9B\u56FE\u5C42\u8BBE\u7F6E\u56FA\u5B9A\u7684\u4E0D\u900F\u660E\u5EA6\u503C (0-1)\u3002\u8FD9\u4E9B\u56FE\u5C42\u5C06\u59CB\u7EC8\u4EE5\u6B64\u8BBE\u7F6E\u7684\u4E0D\u900F\u660E\u5EA6\u663E\u793A\uFF0C\u5176\u4ED6\u7684\u4E0D\u900F\u660E\u5EA6\u5C06\u901A\u8FC7\u63D2\u503C\u751F\u6210\u3002",linksAllowMultipleTypes:"\u591A\u7C7B\u578B\u7ED8\u5236",linksAllowMultipleTypesDesc:"\u5141\u8BB8\u56FE\u8C31\u5728\u4E24\u4E2A\u8282\u70B9\u95F4\u7ED8\u5236\u591A\u79CD\u4E0D\u540C\u7C7B\u578B\u7684\u94FE\u63A5",linksOutline:"\u94FE\u63A5\u8F6E\u5ED3",linksOutlineDesc:"\u4E3A\u94FE\u63A5\u548C\u7BAD\u5934\uFF08\u4E0D\u900F\u660E\u65F6\uFF09\u6DFB\u52A0\u8FB9\u7F18\u8F6E\u5ED3",linksSameColorAsNode:"\u57FA\u4E8E\u6765\u6E90\u8282\u70B9\u7684\u94FE\u63A5\u989C\u8272",linksSameColorAsNodeDesc:"\u4F7F\u7528\u6765\u6E90\u8282\u70B9\u7684\u989C\u8272\u4E3A\u94FE\u63A5\u7740\u8272",linksFeatureRequired:"\u9700\u8981\u542F\u7528\u94FE\u63A5\u529F\u80FD\u3002",localGraph:"\u5C40\u90E8\u56FE\u8C31",localGraphDesc:"\u81EA\u5B9A\u4E49\u60A8\u7684\u5C40\u90E8\u56FE\u8C31\uFF0C\u914D\u7F6E\u4E13\u7528\u4E8E\u4E3B\u8282\u70B9\uFF08\u5F53\u524D\u7B14\u8BB0\u5BF9\u5E94\u8282\u70B9\uFF09\u7684\u8BBE\u7F6E",localGraphCurrentNodeColor:"\u5F53\u524D\u8282\u70B9\u7684\u989C\u8272",localGraphCurrentNodeColorDesc:"\u5C40\u90E8\u56FE\u8C31\u4E2D\u4E3B\u8282\u70B9\u7684\u989C\u8272",localGraphCurrentNodeSize:"\u5F53\u524D\u8282\u70B9\u7684\u5927\u5C0F",localGraphCurrentNodeSizeDesc:"\u5C40\u90E8\u56FE\u8C31\u4E2D\u4E3B\u8282\u70B9\u7684\u56FA\u5B9A\u5927\u5C0F\uFF08\u9ED8\u8BA4\u503C\uFF1A100\uFF0C\u6700\u5C0F\u503C\uFF1A10\uFF09",localGraphCurrentNodeShape:"\u5F53\u524D\u8282\u70B9\u7684\u5F62\u72B6",localGraphCurrentNodeShapeDesc:"\u5C40\u90E8\u56FE\u8C31\u4E2D\u4E3B\u8282\u70B9\u7684\u5F62\u72B6",pinnedNodes:"\u56FA\u5B9A\u8282\u70B9",pinNode:"\u56FA\u5B9A\u8282\u70B9",unpinNode:"\u53D6\u6D88\u56FA\u5B9A\u8282\u70B9",unpinAllNodes:"\u53D6\u6D88\u56FA\u5B9A\u6240\u6709\u8282\u70B9",pinMultipleNodes:"\u56FA\u5B9A\u591A\u4E2A\u8282\u70B9",pinMultipleShape:"\u5F62\u72B6",pinMultipleGap:"\u8282\u70B9\u95F4\u8DDD",pinMultipleCenter:"\u4E2D\u5FC3",pinMultipleGridSize:"\u5217\u6570",pinMultipleGridSizeDesc:"\u503C\u53EF\u4EE5\u662F'N'(\u5355\u884C)\u3001'auto'(\u65B9\u5F62\u7F51\u683C)\u6216\u6B63\u6574\u6570",pinSelectedNodes:"\u56FA\u5B9A\u9009\u4E2D\u7684\u8282\u70B9",unpinSelectedNodes:"\u53D6\u6D88\u56FA\u5B9A\u9009\u4E2D\u7684\u8282\u70B9",size:"\u5927\u5C0F",elementsStats:"\u8282\u70B9\u548C\u94FE\u63A5\u7684\u6570\u636E\u7EDF\u8BA1",elementsStatsDesc:"\u9009\u62E9\u5982\u4F55\u8BA1\u7B97\u8282\u70B9\u548C\u94FE\u63A5\u7684\u5927\u5C0F\u548C\u989C\u8272",linkSizesFunction:"\u94FE\u63A5\u7C97\u7EC6\u7684\u8BA1\u7B97\u51FD\u6570",linkSizesFunctionDesc:"\u9009\u62E9\u56FE\u8C31\u5F15\u64CE\u5C06\u5982\u4F55\u8BA1\u7B97\u94FE\u63A5\u7C97\u7EC6",linkColorsFunction:"\u94FE\u63A5\u989C\u8272\u7684\u8BA1\u7B97\u51FD\u6570",linkColorsFunctionDesc:"\u9009\u62E9\u56FE\u8C31\u5F15\u64CE\u5C06\u5982\u4F55\u8BA1\u7B97\u94FE\u63A5\u989C\u8272",linkColorsPaletteDesc:"\u9009\u62E9\u94FE\u63A5\u7684\u8C03\u8272\u677F",names:"\u8282\u70B9\u540D\u79F0",namesDesc:"\u81EA\u5B9A\u4E49\u8282\u70B9\u540D\u79F0\u663E\u793A\u65B9\u5F0F",namesNumberOfCharacters:"\u5B57\u7B26\u9650\u5236",namesNumberOfCharactersDesc:"\u663E\u793A\u8282\u70B9\u540D\u79F0\u7684\u6700\u5927\u5B57\u7B26\u6570\u3002\u7559\u7A7A\u663E\u793A\u5B8C\u6574\u540D\u79F0\u3002",namesShowOnlyFileName:"\u4EC5\u6587\u4EF6\u540D",namesShowOnlyFileNameDesc:"\u4EC5\u663E\u793A\u6587\u4EF6\u540D\u4E0D\u542B\u8DEF\u5F84",namesNoExtension:"\u9690\u85CF\u6269\u5C55\u540D",namesNoExtensionDesc:"\u4ECE\u540D\u79F0\u4E2D\u79FB\u9664\u6587\u4EF6\u6269\u5C55\u540D",namesUseProperties:"\u4F7F\u7528\u5C5E\u6027",namesUsePropertiesDesc:"\u4F7F\u7528\u4E0B\u5217\u5C5E\u6027\u4E4B\u4E00\u6307\u5B9A\u7684\u503C\u4F5C\u4E3A\u8282\u70B9\u540D\u79F0\u800C\u975E\u6587\u4EF6\u540D",namesUsePropertiesAdd:"\u6DFB\u52A0\u8282\u70B9\u540D\u79F0\u5C5E\u6027",namesBackground:"\u6DFB\u52A0\u80CC\u666F",namesBackgroundDesc:"\u4E3A\u8282\u70B9\u540D\u79F0\u6DFB\u52A0\u80CC\u666F\u4EE5\u63D0\u9AD8\u53EF\u8BFB\u6027\uFF0C\u9690\u85CF\u5176\u540E\u7684\u5143\u7D20",namesShowWhenNeighborHighlighted:"\u9AD8\u4EAE\u76F8\u90BB\u8282\u70B9\u65F6\u59CB\u7EC8\u663E\u793A",namesShowWhenNeighborHighlightedDesc:"\u5373\u4F7F\u5B8C\u5168\u7F29\u5C0F\uFF0C\u5F53\u8FDE\u63A5\u7684\u76F8\u90BB\u8282\u70B9\u9AD8\u4EAE\u65F6\u4E5F\u663E\u793A\u6587\u672C",namesVerticalOffset:"\u5782\u76F4\u504F\u79FB",namesVerticalOffsetDesc:"\u6587\u672C\u7684\u5782\u76F4\u504F\u79FB\u3002\u6B63\u503C\u5C06\u6587\u672C\u4E0B\u79FB\uFF0C\u8D1F\u503C\u4E0A\u79FB\u3002",namesDynamicVerticalOffset:"\u52A8\u6001\u5782\u76F4\u504F\u79FB",namesDynamicVerticalOffsetDesc:"\u6839\u636E\u7BAD\u5934\u5927\u5C0F\u52A8\u6001\u8C03\u6574\u6587\u672C\u5782\u76F4\u4F4D\u7F6E\u3002",noLineHighlight:"\u7981\u7528\u8FDE\u7EBF\u7684\u9AD8\u4EAE\u8272",noLineHighlightDesc:"\u5728\u9F20\u6807\u60AC\u6D6E\u5728\u8282\u70B9\u4E0A\u65F6\uFF0C\u4E0D\u5C06\u5176\u76F8\u5173\u94FE\u63A5\u7684\u8FDE\u7EBF\u8BBE\u4E3A\u9AD8\u4EAE\u989C\u8272",nodeSizesFunction:"\u8282\u70B9\u5927\u5C0F\u7684\u8BA1\u7B97\u51FD\u6570",nodeSizesFunctionDesc:"\u9009\u62E9\u56FE\u8C31\u5F15\u64CE\u5C06\u5982\u4F55\u8BA1\u7B97\u8282\u70B9\u5927\u5C0F",nodeSizeProperties:"\u8282\u70B9\u5927\u5C0F\u5C5E\u6027",nodeSizePropertiesDesc:"\u53EF\u7528\u4E8E\u6307\u5B9A\u8282\u70B9\u5927\u5C0F\u7684\u5C5E\u6027\u540D\u79F0\u3002\u5FC5\u987B\u4E3A\u6570\u5B57\u7C7B\u578B\u3002\u9ED8\u8BA4\u503C\u4E3A100\u3002",nodeSizePropertiesAdd:"\u6DFB\u52A0\u8282\u70B9\u5927\u5C0F\u5C5E\u6027",nodeSizesRange:"\u8282\u70B9\u5927\u5C0F\u8303\u56F4",nodeSizesRangeDesc:"\u7528\u4E8E\u8C03\u6574\u8282\u70B9\u6574\u4F53\u5927\u5C0F\u7684\u7F29\u653E\u56E0\u6570\uFF0C\u63A7\u5236\u6700\u5C0F/\u6700\u5927\u8282\u70B9\u95F4\u7684\u4F53\u79EF\u5173\u7CFB\uFF08\u4ECB\u4E8E0.1\u548C5\u4E4B\u95F4\uFF09",nodeColorsFunction:"\u8282\u70B9\u989C\u8272\u7684\u8BA1\u7B97\u51FD\u6570",nodeColorsFunctionDesc:"\u9009\u62E9\u56FE\u8C31\u5F15\u64CE\u5C06\u5982\u4F55\u8BA1\u7B97\u8282\u70B9\u989C\u8272",nodeColorsPaletteDesc:"\u9009\u62E9\u8282\u70B9\u7684\u8C03\u8272\u677F",nodeStatsRecomputeOnGraphChange:"\u56FE\u8C31\u6539\u53D8\u65F6\u91CD\u65B0\u8BA1\u7B97",nodeStatsRecomputeOnGraphChangeDesc:"\u6BCF\u5F53\u56FE\u8C31\u6570\u636E\u53D1\u751F\u53D8\u5316\u65F6\u91CD\u65B0\u8BA1\u7B97\u6307\u6807\u3002\u8FD9\u53EF\u80FD\u4F1A\u5BFC\u81F4\u6027\u80FD\u4E0B\u964D\u3002",openInNewTab:"\u5728\u65B0\u6807\u7B7E\u9875\u6253\u5F00\u8282\u70B9",openInNewTabDesc:"\u5DE6\u952E\u70B9\u51FB\u8282\u70B9\u65F6\u59CB\u7EC8\u5728\u65B0\u6807\u7B7E\u9875\u6253\u5F00",otherDisplay:"\u5176\u4ED6\u663E\u793A\u9009\u9879",performance:"\u6027\u80FD",performanceDelay:"\u521D\u59CB\u5316\u5EF6\u8FDF (\u6BEB\u79D2)",performanceDelayDesc:"\u7531\u4E8E\u5F02\u6B65\u673A\u5236\uFF0C\u53EF\u80FD\u9700\u8981\u7B49\u5F85\u4E00\u6BB5\u65F6\u95F4\u624D\u80FD\u5F00\u59CB\u521D\u59CB\u5316\u6269\u5C55\u529F\u80FD",performanceMaxNodes:"\u6700\u5927\u8282\u70B9\u6570",performanceMaxNodesDesc:"\u5982\u679C\u56FE\u8C31\u5305\u542B\u8D85\u8FC7\u6B64\u8BBE\u7F6E\u7684\u8282\u70B9\u6570\uFF0C\u63D2\u4EF6\u5C06\u88AB\u4E34\u65F6\u7981\u7528",recursive:"\u9012\u5F52",removeSources:"\u79FB\u9664\u6765\u6E90",removeSourcesDesc:"\u7981\u7528\u94FE\u63A5\u7C7B\u578B\u65F6\u4E5F\u7981\u7528\u6E90\u8282\u70B9",removeTargets:"\u79FB\u9664\u76EE\u6807",removeTargetsDesc:"\u7981\u7528\u94FE\u63A5\u7C7B\u578B\u65F6\u4E5F\u7981\u7528\u76EE\u6807\u8282\u70B9",shape:"\u5F62\u72B6",shapes:"\u5F62\u72B6",shapesDesc:"\u4F7F\u7528\u5404\u79CD\u5F62\u72B6\u7684\u8282\u70B9",shapePick:"\u9009\u62E9\u5F62\u72B6",shapesNames:{circle:"\u5706\u5F62",square:"\u65B9\u5F62",triangle:"\u4E09\u89D2\u5F62",diamond:"\u83F1\u5F62",pentagon:"\u4E94\u8FB9\u5F62",hexagon:"\u516D\u8FB9\u5F62",octagon:"\u516B\u8FB9\u5F62",decagon:"\u5341\u8FB9\u5F62",star4:"\u56DB\u89D2\u661F",star5:"\u4E94\u89D2\u661F",star6:"\u516D\u89D2\u661F",star8:"\u516B\u89D2\u661F",star10:"\u5341\u89D2\u661F",polygon:"\u591A\u8FB9\u5F62",starburst:"\u661F\u7206\u5F62",grid:"\u7F51\u683C",line:"\u7EBF\u6761",unknown:"\u672A\u77E5"},svgScreenshotArcs:"\u663E\u793A\u5706\u5F27 (\u6807\u7B7E\u548C/\u6216\u7C7B\u578B)",svgScreenshotCopy:"\u590D\u5236 SVG \u622A\u56FE",svgScreenshotCopyCode:"\u590D\u5236 SVG \u4EE3\u7801\u5230\u526A\u8D34\u677F",svgScreenshotCopyImage:"\u590D\u5236 SVG \u56FE\u50CF\u5230\u526A\u8D34\u677F",svgScreenshotCurvedLinks:"\u4F7F\u7528\u66F2\u7EBF\u94FE\u63A5",svgScreenshotNodeNames:"\u663E\u793A\u8282\u70B9\u540D\u79F0",svgScreenshotNodeShapes:"\u4F7F\u7528\u8282\u70B9\u5F62\u72B6",svgScreenshotOptions:"SVG \u622A\u56FE\u9009\u9879",svgScreenshotVisibleArea:"\u4EC5\u5BFC\u51FA\u53EF\u89C1\u533A\u57DF",zoomOnNode:"\u805A\u7126\u8282\u70B9",zoomScale:"\u805A\u7126\u6BD4\u4F8B",zoomScaleDesc:"\u805A\u7126\u5230\u8282\u70B9\u65F6\u653E\u5927\u7684\u6BD4\u4F8B"},ix={inputs:"\u8F93\u5165",pinHotkey:"\u56FA\u5B9A\u8282\u70B9 (\u53F3\u952E)",pinHotkeyDesc:"\u6309\u4F4F\u6307\u5B9A\u952E\u7684\u540C\u65F6\uFF0C\u9F20\u6807\u53F3\u952E\u70B9\u51FB\u8282\u70B9\uFF0C\u53EF\u4EE5\u5C06\u5176\u56FA\u5B9A",radialMenu:"\u542F\u7528\u8282\u70B9\u8F6E\u76D8\u83DC\u5355",radialMenuDesc:"\u6309\u4F4F\u6307\u5B9A\u952E\u7684\u540C\u65F6\uFF0C\u9F20\u6807\u53F3\u952E\u70B9\u51FB\u8282\u70B9\uFF0C\u5C06\u663E\u793A\u6765\u81EA Extended Graph \u63D2\u4EF6\u7684\u8F6E\u76D8\u83DC\u5355\uFF08\u800C\u975E\u5E38\u89C4\u83DC\u5355\uFF09",rightClickIncompatibility:"\u6309\u952E\u51B2\u7A81\uFF1A\u591A\u4E2A\u8F93\u5165\u64CD\u4F5C\u4F7F\u7528\u4E86\u76F8\u540C\u7684\u4FEE\u9970\u952E\uFF0C\u65E0\u6CD5\u540C\u65F6\u751F\u6548\u3002"},sx={changeInSettings:"\u60A8\u53EF\u4EE5\u5728\u8BBE\u7F6E\u4E2D\u66F4\u6539\u6B64\u9009\u9879",disabled:"\u5DF2\u7981\u7528",graphAnalysisPluginRequired:"\u5FC5\u987B\u542F\u7528 Graph Analysis \u793E\u533A\u63D2\u4EF6\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD",invalidCharacter:"\u65E0\u6548\u5B57\u7B26",nlpPluginRequired:"\u5FC5\u987B\u542F\u7528 NLP \u793E\u533A\u63D2\u4EF6\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD",nodeLimiteExceeded:"\u5C1D\u8BD5\u5904\u7406\u8FC7\u591A\u8282\u70B9",nodeLimitIs:"\u9650\u5236\u4E3A",nodeStatSizeFailed:"\u8BA1\u7B97\u8282\u70B9\u5927\u5C0F\u7EDF\u8BA1\u5931\u8D25",nodeStatColorFailed:"\u8BA1\u7B97\u8282\u70B9\u989C\u8272\u7EDF\u8BA1\u5931\u8D25",linkStatSizeFailed:"\u8BA1\u7B97\u94FE\u63A5\u7C97\u7EC6\u7EDF\u8BA1\u5931\u8D25",linkStatColorFailed:"\u8BA1\u7B97\u94FE\u63A5\u989C\u8272\u7EDF\u8BA1\u5931\u8D25",functionToDefault:"\u5DF2\u6539\u4E3A\u4F7F\u7528\u9ED8\u8BA4\u51FD\u6570",stateDeleted:"\u72B6\u6001\u5DF2\u5220\u9664",stateRenamed:"\u72B6\u6001\u5DF2\u91CD\u547D\u540D",stateSaved:"\u72B6\u6001\u5DF2\u4FDD\u5B58",normalStateSave:"\u5DF2\u4FDD\u5B58\u6B63\u5E38\u72B6\u6001\u7684\u5F15\u64CE\u9009\u9879",svgCopied:"\u5DF2\u5C06 SVG \u590D\u5236\u5230\u526A\u8D34\u677F"},nx={AND:"\u5168\u90E8\u5339\u914D",ANDFilterDesc:"\u4EC5\u4FDD\u7559\u5177\u6709\u6240\u6709\u9009\u5B9A\u503C\u7684\u8282\u70B9",OR:"\u4EFB\u610F\u5339\u914D",ORFilterDesc:"\u4FDD\u7559\u5177\u6709\u81F3\u5C11\u4E00\u4E2A\u9009\u5B9A\u503C\u7684\u8282\u70B9",combinationLogic:"\u7EC4\u5408\u903B\u8F91",editShapeQuery:"\u7F16\u8F91\u5F62\u72B6\u67E5\u8BE2",excludeRegex:"\u6B63\u5219\u6392\u9664",excludeRegexDesc:"\u4F7F\u7528\u6B63\u5219\u8868\u8FBE\u5F0F\u81EA\u52A8\u6392\u9664\u67D0\u4E9B\u503C\u3002\u65B0\u884C\u8868\u793A\u65B0\u7684\u6B63\u5219\u8868\u8FBE\u5F0F\u3002",setShapeQueryFor:"\u8BBE\u7F6E\u5F62\u72B6\u67E5\u8BE2\u4E3A",files:"\u6587\u4EF6",logicKey:{contains:"\u5305\u542B",containsNot:"\u4E0D\u5305\u542B",is:"\u662F",isNot:"\u4E0D\u662F",containsRegex:"\u5305\u542B\u6B63\u5219",containsRegexNot:"\u4E0D\u5305\u542B\u6B63\u5219",matchesRegex:"\u5339\u914D\u6B63\u5219",matchesRegexNot:"\u4E0D\u5339\u914D\u6B63\u5219",isEmpty:"\u4E3A\u7A7A",isEmptyNot:"\u4E0D\u4E3A\u7A7A"},matchingFiles:"\u5339\u914D\u6587\u4EF6",match:"\u5339\u914D",matches:"\u5339\u914D\u9879",query:"\u67E5\u8BE2",rules:"\u89C4\u5219",source:{all:"\u5168\u90E8",tag:"\u6807\u7B7E",link:"\u94FE\u63A5",property:"\u5C5E\u6027",file:"\u6587\u4EF6",folder:"\u6587\u4EF6\u5939",folderRec:"\u6587\u4EF6\u5939\u53CA\u5B50\u6587\u4EF6\u5939",path:"\u8DEF\u5F84"},viewMatches:"\u67E5\u770B\u5339\u914D\u9879"},ox={defaultState:"\u9ED8\u8BA4\u72B6\u6001",editStateName:"\u7F16\u8F91\u72B6\u6001\u540D\u79F0",graphState:"\u56FE\u8C31\u72B6\u6001",newStateName:"\u65B0\u72B6\u6001\u540D\u79F0",openSettings:"\u6253\u5F00\u72B6\u6001\u8BBE\u7F6E",saveConfigsWithState:"\u4FDD\u5B58\u72B6\u6001\u65F6\u7684\u914D\u7F6E",saveConfigsWithStateDesc:"\u4FDD\u5B58\u72B6\u6001\u65F6\uFF0C\u63D2\u4EF6\u5C06\u81EA\u52A8\u4FDD\u5B58\u4E0E\u8BE5\u72B6\u6001\u540C\u540D\u7684\u914D\u7F6E\uFF08\u5E76\u6E05\u9664\u65E0\u6548\u5B57\u7B26\uFF09",saveForDefaultState:"\u4FDD\u5B58\u4E3A\u9ED8\u8BA4\u72B6\u6001",saveForDefaultStateDesc:"\u5C06\u5F53\u524D\u8BBE\u7F6E\u4FDD\u5B58\u4E3A\u9ED8\u8BA4\u72B6\u6001\u8BBE\u7F6E",saveForNormalState:"\u4FDD\u5B58\u4E3A\u5E38\u89C4\u72B6\u6001",saveForNormalStateDesc:"(\u65E0\u63D2\u4EF6\u542F\u7528)",saveForNormalStateTooltip:"\u5C06\u5F53\u524D\u8BBE\u7F6E\u4FDD\u5B58\u4E3A\u5E38\u89C4\u72B6\u6001\uFF08\u539F\u751F\u56FE\u8C31\uFF09\u7684\u8BBE\u7F6E",showGraphState:"\u663E\u793A\u56FE\u8C31\u72B6\u6001",startingState:"\u521D\u59CB\u72B6\u6001",startingStateDesc:"\u9009\u62E9\u7528\u4E8E\u521D\u59CB\u5316\u63D2\u4EF6\u7684\u72B6\u6001",states:"\u72B6\u6001",syncDefaultState:"\u540C\u6B65\u9ED8\u8BA4\u72B6\u6001",syncDefaultStateDesc:"\u59CB\u7EC8\u4F7F\u7528\u6838\u5FC3\u63D2\u4EF6\u7684\u5F53\u524D\u9009\u9879\u6253\u5F00\u9ED8\u8BA4\u72B6\u6001\uFF0C\u65E0\u9700\u624B\u52A8\u4FDD\u5B58"},ax={AdamicAdar:"Adamic Adar",authority:"\u6743\u5A01\u4E2D\u5FC3\u6027 (\u6765\u81EAHITS)",backlinksCount:"\u53CD\u5411\u94FE\u63A5\u6570",backUniquelinksCount:"\u552F\u4E00\u53CD\u5411\u94FE\u63A5\u6570",betweenness:"\u4E2D\u4ECB\u4E2D\u5FC3\u6027 (Betweenness centrality)",BoW:"Bag of words",closeness:"\u63A5\u8FD1\u4E2D\u5FC3\u6027 (Closeness centrality)",clusteringCoefficient:"\u805A\u7C7B\u7CFB\u6570 (Clustering coefficient)",coCitations:"\u88AB\u5F15\u6B21\u6570 (Co-citations)",constant:"\u5E38\u6570",creationTime:"\u6587\u4EF6\u521B\u5EFA\u65F6\u95F4",degree:"\u5EA6\u4E2D\u5FC3\u6027 (Degree centrality)",eccentricity:"\u8FDE\u901A\u56FE\u4E2D\u7684\u79BB\u5FC3\u7387 (Eccentricity in the connected graph)",eigenvector:"\u7279\u5F81\u5411\u91CF\u4E2D\u5FC3\u6027 (Eigenvector centrality)",filenameLength:"\u6587\u4EF6\u540D\u957F\u5EA6",forwardlinksCount:"\u6B63\u5411\u94FE\u63A5\u6570",forwardUniquelinksCount:"\u552F\u4E00\u6B63\u5411\u94FE\u63A5\u6570",totallinksCount:"\u6B63\u53CD\u94FE\u63A5\u603B\u6570",totalUniquelinksCount:"\u552F\u4E00\u6B63\u53CD\u94FE\u63A5\u603B\u6570",hub:"\u67A2\u7EBD\u4E2D\u5FC3\u6027 (Hub centrality)",Jaccard:"Jaccard\u76F8\u4F3C\u5EA6 (Jaccard similarity)",modifiedTime:"\u6700\u540E\u4FEE\u6539\u65F6\u95F4",Occurences:"\u51FA\u73B0\u6B21\u6570",OtsukaOchiai:"Otsuka-Ochiai\u7CFB\u6570 (Otsuka-Ochiai coefficient)",overlap:"\u91CD\u53E0\u7CFB\u6570 (Overlap coefficient)",tagsCount:"\u6807\u7B7E\u6570",topological:"\u62D3\u6251\u4F20\u64AD (Topological propagation)",warningUnreliableOS:"\u6B64\u8BA1\u7B97\u4E0D\u53EF\u9760\uFF0C\u53EF\u80FD\u56E0\u64CD\u4F5C\u7CFB\u7EDF\u800C\u5F02\u3002",sentiment:"\u60C5\u611F\u5206\u6790 (Sentiment)"},lx={horizontalLegend:"\u6C34\u5E73\u56FE\u4F8B",horizontalLegendDesc:"\u663E\u793A\u6C34\u5E73\u5E03\u5C40\u7684\u56FE\u4F8B\uFF08\u5305\u542B\u6807\u7B7E\u3001\u5C5E\u6027\u548C\u6807\u7B7E\u5207\u6362\u6309\u94AE\uFF09",howToUse:"\u4F7F\u7528\u8BF4\u660E",howToUseGradientMaker:"
  • \u62D6\u52A8\u63A7\u5236\u70B9\u6CBF\u6E10\u53D8\u79FB\u52A8\u989C\u8272\u505C\u6B62\u70B9
  • \u70B9\u51FB\u63A7\u5236\u70B9\u66F4\u6539\u5176\u989C\u8272
  • \u53CC\u51FB\u6E10\u53D8\u6DFB\u52A0\u65B0\u989C\u8272\u505C\u6B62\u70B9
  • Backspace\u3001Delete\u6216Clear\u952E\u5220\u9664\u63A7\u5236\u70B9
  • \u63D2\u503C\uFF1A\u5728\u505C\u6B62\u70B9\u95F4\u521B\u5EFA\u5E73\u6ED1\u989C\u8272\u8FC7\u6E21
  • \u53CD\u8F6C\uFF1A\u7FFB\u8F6C\u6700\u7EC8\u8C03\u8272\u677F\u987A\u5E8F\uFF08\u5DE6\u2194\u53F3\uFF09
",name:"\u540D\u79F0"},cx={plugin:Qv,beta:Jv,controls:ex,errors:tx,features:rx,inputs:ix,notices:sx,query:nx,states:ox,statsFunctions:ax,UI:lx};var V6=8224125,Jr="default-vault",He="tag",ne="link",pe="folder",ei={};ei[He]=[];ei[ne]=["tags","file"];ei[pe]=[];i18next.addResourceBundle("en","extended-graph",sp);i18next.addResourceBundle("fr","extended-graph",np);i18next.addResourceBundle("zh","extended-graph",op);var m=i18next.getFixedT(null,"extended-graph"),Gu=i18next.getFixedT(null,"default");var u=class{},Uu=class{constructor(e){this.interactiveManagers=new Map;this.legendUI=null;this.foldersUI=null;this.colorGroupHaveChanged=!1;this.statePinnedNodes=null;this.view=e,this.settings=structuredClone(u.settings),this.canonicalizeProperties(),this.type=this.view.getViewType()==="graph"?"graph":"localgraph";let t=ts(this.view);if(!t)throw new Error("Graph engine is not initialized");this.engine=t,this.renderer=this.view.renderer}canonicalizeProperties(){if(this.settings.canonicalizePropertiesWithDataview)for(let e in this.settings.additionalProperties){let t=zt(e);t!==e&&(t in this.settings.additionalProperties?delete this.settings.additionalProperties[e]:(this.settings.additionalProperties[t]=this.settings.additionalProperties[e],delete this.settings.additionalProperties[e]),t in this.settings.interactiveSettings?delete this.settings.interactiveSettings[e]:(this.settings.interactiveSettings[t]=this.settings.interactiveSettings[e],delete this.settings.interactiveSettings[e]))}}setState(e){if(this.stateData=u.statesManager.getStateDataById(e),u.settings.saveConfigsWithState){let t=u.statesManager.getConfig(e);t&&(this.settings=t)}}};var z6=require("obsidian");function T0(r){let e=r.app.workspace.getActiveViewOfType(z6.ItemView);if(e&&(e.getViewType()==="graph"||e.getViewType()==="localgraph"))return e}function W6(r){ux(r),hx(r),dx(r),px(r),fx(r),gx(r),mx(r)}function ux(r){r.addCommand({id:"enable-in-graph-view",name:m("controls.enableInGraphView"),checkCallback:e=>{let t=T0(r);if(t&&!u.graphsManager.isPluginAlreadyEnabled(t))return e||u.graphsManager.enablePlugin(t),!0}}),r.addCommand({id:"disable-in-graph-view",name:m("controls.disableInGraphView"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.graphsManager.disablePlugin(t),!0}}),r.addCommand({id:"reset-in-graph-view",name:m("controls.resetInGraphView"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.graphsManager.resetPlugin(t),!0}})}function hx(r){r.addCommand({id:"copy-svg-screenshot",name:m("features.svgScreenshotCopy"),checkCallback:e=>{let t=T0(r);if(t)return e||u.graphsManager.getSVGScreenshot(t),!0}})}function dx(r){r.addCommand({id:"save-for-default-state",name:m("states.saveForDefaultState"),checkCallback:e=>{let t=T0(r);if(t)return e||u.statesManager.saveForDefaultState(t),!0}}),r.addCommand({id:"save-for-normal-state",name:m("states.saveForNormalState")+" "+m("states.saveForNormalStateDesc"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.statesManager.saveForNormalState(t),!0}}),r.addCommand({id:"show-graph-state",name:m("states.showGraphState"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.statesManager.showGraphState(t),!0}})}function px(r){r.addCommand({id:"enable-all-folders",name:`${m("plugin.folders")}: ${m("controls.showAll")}`,checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.graphsManager.allInstances.get(t.leaf.id)?.foldersSet?.enableAll(),!0}}),r.addCommand({id:"enable-more-than-one-node-folders",name:`${m("plugin.folders")}: ${m("controls.showAll")} (${m("controls.toggleAllWithMoreThanOneNode")})`,checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.graphsManager.allInstances.get(t.leaf.id)?.foldersSet?.enableAllWithAtLeastOneNode(),!0}}),r.addCommand({id:"disable-all-folders",name:`${m("plugin.folders")}: ${m("controls.hideAll")}`,checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.graphsManager.allInstances.get(t.leaf.id)?.foldersSet?.disableAll(),!0}}),r.addCommand({id:"disable-more-than-one-node-folders",name:`${m("plugin.folders")}: ${m("controls.hideAll")} (${m("controls.toggleAllWithMoreThanOneNode")})`,checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t))return e||u.graphsManager.allInstances.get(t.leaf.id)?.foldersSet?.disableAllWithAtLeastOneNode(),!0}})}function fx(r){r.addCommand({id:"pin-selected-nodes",name:m("features.pinSelectedNodes"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t)){let i=u.graphsManager.allInstances.get(t.leaf.id);return!i||Object.keys(i.nodesSet.selectedNodes).length===0?void 0:(e||i.nodesSet.pinSelectedNodes(),!0)}}}),r.addCommand({id:"unpin-selected-nodes",name:m("features.unpinSelectedNodes"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t)){let i=u.graphsManager.allInstances.get(t.leaf.id);return!i||Object.keys(i.nodesSet.selectedNodes).length===0||Object.keys(i.nodesSet.selectedNodes).every(s=>!i.nodesSet.isNodePinned(s))?void 0:(e||i.nodesSet.unpinSelectedNodes(),!0)}}}),r.addCommand({id:"unpin-all-nodes",name:m("features.unpinAllNodes"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t)){if(!e){let i=u.graphsManager.allInstances.get(t.leaf.id);i&&new yt(i).unpinAllNodes()}return!0}}})}function gx(r){r.addCommand({id:"select-all-nodes",name:m("controls.selectAllNodes"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t)){let i=u.graphsManager.allInstances.get(t.leaf.id);return i?(e||(i.nodesSet.selectNodes(i.renderer.nodes),i.renderer.changed()),!0):void 0}}}),r.addCommand({id:"invert-selection",name:m("controls.selectInvert"),checkCallback:e=>{let t=T0(r);if(t&&u.graphsManager.isPluginAlreadyEnabled(t)){let i=u.graphsManager.allInstances.get(t.leaf.id);return!i||Object.keys(i.nodesSet.selectedNodes).length===0?void 0:(e||(i.nodesSet.invertSelection(),i.renderer.changed()),!0)}}})}function mx(r){r.addCommand({id:"flicker-open-nodes",name:m("features.focusFlickerOpenNodes"),checkCallback:e=>{if(u.graphsManager.allInstances.size>0&&u.graphsManager.openNodes.length>0){if(!e)for(let t of u.graphsManager.allInstances.values())for(let i of u.graphsManager.openNodes)t.nodesSet.extendedElementsMap.get(i)?.flicker();return!0}}}),r.addCommand({id:"flicker-search-nodes",name:m("features.focusFlickerSearchNodes"),checkCallback:e=>{let t=u.graphsManager.getSearchResults();if(u.graphsManager.allInstances.size>0&&t.length>0){if(!e)for(let i of u.graphsManager.allInstances.values())for(let s of t)i.nodesSet.extendedElementsMap.get(s)?.flicker();return!0}}})}var Vu=class{constructor(){this.proxyKey="__isExtendedGraphProxy";this.proxyFunctionKey="__isExtendedGraphFunctionProxy";this.coreTargets=new Map}registerProxy(e,t,i){if(!(t in e)){console.warn("Invalid property while creating proxy:",t);return}let s=e[t];if(!s){console.warn("Trying to create a proxy for a undefined or null property:",t);return}if(this.isProxy(s,e,t))return;let n=new Proxy(e[t],i);return e[t]=n,typeof s=="function"?(this.proxyFunctionKey in e||(e[this.proxyFunctionKey]={}),e[this.proxyFunctionKey][t]=!0):n[this.proxyKey]=!0,this.coreTargets.set(n,{owner:e,property:t,coreTarget:s}),n}isProxy(e,t,i){if(typeof e=="function"){if(!t||!i)throw new Error("Can't check if the function is a proxy without an owner and a property provided.");return this.proxyFunctionKey in t&&i in t[this.proxyFunctionKey]&&t[this.proxyFunctionKey][i]===!0}return this.proxyKey in e&&e[this.proxyKey]===!0}getTargetForOwner(e,t){return[...this.coreTargets.values()].find(i=>i.owner===e&&t===t)}getTargetForProxy(e){if(e!=null)return this.coreTargets.get(e)?.coreTarget}unregisterProxy(e){if(e==null)return;let t=this.coreTargets.get(e);if(t){let{owner:i,property:s,coreTarget:n}=t;if(!this.isProxy(e,i,s))return;this.coreTargets.delete(e),i[s]===e?(i[s]=n,delete i[s][this.proxyKey],this.proxyFunctionKey in i&&s in i[this.proxyFunctionKey]&&delete i[this.proxyFunctionKey][s]):(console.warn("The core reference is no longer pointing to the proxy. Instead :"),console.warn(i[s]))}}unregisterAll(){for(let[e,t]of this.coreTargets){let{owner:i,property:s,coreTarget:n}=t;this.coreTargets.delete(e),i[s]===e&&(i[s]=n,delete i[s][this.proxyKey])}}};var bt=require("obsidian");var zu=class extends bt.Component{constructor(){super(...arguments);this.globalUIs=new Map;this.optionsBackup=new Map;this.allInstances=new Map;this.openNodes=[];this.observedSearched=new Map;this.localGraphID=null;this.isHandlingMarkdownViewChange=!1;this.isResetting=new Map}onload(){this.addStatusBarItem(),this.createSearchObserver(),this.registerEvents()}addStatusBarItem(){this.statusBarItem=u.plugin.addStatusBarItem(),this.statusBarItem.addClasses(["plugin-extended-graph"])}createSearchObserver(){this.searchObserver=new MutationObserver((t,i)=>{for(let s of t)if(s.type==="childList"){let n=this.observedSearched.entries().find(o=>o[1].childrenEl===s.target);n&&this.computeSearchNodes(n[0])}})}registerEvents(){this.onMetadataCacheChange=this.onMetadataCacheChange.bind(this),N0(!1)?this.registerEvent(u.app.metadataCache.on("dataview:metadata-change",(t,i,s)=>{this.isCoreGraphLoaded()&&t==="update"&&this.onMetadataCacheChange(i)})):this.registerEvent(u.app.metadataCache.on("changed",(t,i,s)=>{this.isCoreGraphLoaded()&&this.onMetadataCacheChange(t,i,s)})),this.onDelete=this.onDelete.bind(this),this.registerEvent(u.app.vault.on("delete",t=>{this.isCoreGraphLoaded()&&this.onDelete(t)})),this.onRename=this.onRename.bind(this),this.registerEvent(u.app.vault.on("rename",(t,i)=>{this.isCoreGraphLoaded()&&this.onRename(t,i)})),this.onCSSChange=this.onCSSChange.bind(this),this.registerEvent(u.app.workspace.on("css-change",()=>{this.isCoreGraphLoaded()&&this.onCSSChange()})),this.registerEvent(u.app.workspace.on("layout-change",()=>{this.isCoreGraphLoaded()&&u.plugin.onLayoutChange()})),this.onActiveLeafChange=this.onActiveLeafChange.bind(this),this.registerEvent(u.app.workspace.on("active-leaf-change",t=>{this.isCoreGraphLoaded()&&this.onActiveLeafChange(t)})),this.onFileOpen=this.onFileOpen.bind(this),this.registerEvent(u.app.workspace.on("file-open",t=>{this.isCoreGraphLoaded()&&this.onFileOpen(t)})),this.updatePaletteForInteractive=this.updatePaletteForInteractive.bind(this),this.registerEvent(u.app.workspace.on("extended-graph:settings-colorpalette-changed",t=>{this.isCoreGraphLoaded()&&this.updatePaletteForInteractive(t)})),this.updateColorForInteractiveType=this.updateColorForInteractiveType.bind(this),this.registerEvent(u.app.workspace.on("extended-graph:settings-interactive-color-changed",(t,i)=>{this.isCoreGraphLoaded()&&this.updateColorForInteractiveType(t,i)})),this.onNodeMenuOpened=this.onNodeMenuOpened.bind(this),this.registerEvent(u.app.workspace.on("file-menu",(t,i,s,n)=>{this.isCoreGraphLoaded()&&this.onNodeMenuOpened(t,i,s,n)}))}isCoreGraphLoaded(){return!!u.app.internalPlugins.getPluginById("graph")?._loaded}initializeNodesSizeCalculator(){this.nodesSizeCalculator=cr.getCalculator("size"),this.nodesSizeCalculator?.computeStats(u.settings.graphStatsDirection).catch(t=>{console.error(t),new bt.Notice(`${m("notices.nodeStatSizeFailed")} (${is[u.settings.nodesSizeFunction]}). ${m("notices.functionToDefault")}`),u.settings.nodesSizeFunction="default",u.plugin.saveSettings(),this.nodesSizeCalculator=void 0})}initializeNodesColorCalculator(){this.nodesColorCalculator=cr.getCalculator("color"),this.nodesColorCalculator?.computeStats(u.settings.graphStatsDirection).catch(t=>{console.error(t),new bt.Notice(`${m("notices.nodeStatColorFailed")} (${is[u.settings.nodesColorFunction]}). ${m("notices.functionToDefault")}`),u.settings.nodesColorFunction="default",u.plugin.saveSettings(),this.nodesColorCalculator=void 0})}initializeLinksSizeCalculator(){this.canUseLinkStatFunction("size")&&(this.linksSizeCalculator=Ps.getCalculator("size"),this.linksSizeCalculator?.computeStats(u.settings.graphStatsDirection).catch(t=>{console.error(t),u.settings.linksSizeFunction="default",u.plugin.saveSettings(),new bt.Notice(`${m("notices.linkStatSizeFailed")} (${rs[u.settings.linksSizeFunction]}). ${m("notices.functionToDefault")}`),this.linksSizeCalculator=void 0}))}initializeLinksColorCalculator(){this.canUseLinkStatFunction("color")&&(this.linksColorCalculator=Ps.getCalculator("color"),this.linksColorCalculator?.computeStats(u.settings.graphStatsDirection).catch(t=>{console.error(t),u.settings.linksColorFunction="default",u.plugin.saveSettings(),new bt.Notice(`${m("notices.linkStatColorFailed")} (${rs[u.settings.linksColorFunction]}). ${m("notices.functionToDefault")}`),this.linksColorCalculator=void 0}))}canUseLinkStatFunction(t){let i=t==="color"?u.settings.linksColorFunction:u.settings.linksSizeFunction;return!y0()&&Pn[i]?(new bt.Notice(`${m("notices.nlpPluginRequired")} (${i})`),t==="color"?(this.linksColorCalculator=void 0,u.settings.linksColorFunction="default"):(this.linksSizeCalculator=void 0,u.settings.linksSizeFunction="default"),u.plugin.saveSettings(),!1):!0}onCSSChange(){for(let t of this.allInstances.values())t.cssBridge.onCSSChange()}onMetadataCacheChange(t,i,s){for(let n of this.allInstances.values()){if(!n.graph||!n.renderer)return;let o=n.nodesSet.extendedElementsMap.get(t.path);if(!o)return;for(let[l,c]of n.nodesSet.managers){let h=[...ct(l,t,n.settings)];h=h.filter(w=>!Xe.excludeType(u.settings,l,w)),h.length===0&&h.push(n.settings.interactiveSettings[l].noneType);let{typesToRemove:d,typesToAdd:p}=o.matchesTypes(l,[...h]);for(let w of d)n.nodesSet.typesMap[l][w].delete(o.id);for(let w of p)n.nodesSet.typesMap[l][w]||(n.nodesSet.typesMap[l][w]=new Set),n.nodesSet.typesMap[l][w].add(o.id);o.setTypes(l,new Set(h));let g=d.filter(w=>n.nodesSet.typesMap[l][w].size===0);g.length>0&&c.removeTypes(g);let v=c.getTypes(),C=p.filter(w=>!v.includes(w));C.length>0&&c.addTypes(C),g.length===0&&C.length===0&&(d.length>0||p.length>0)&&o.graphicsWrapper.resetManagerGraphics(c)}let a=n.linksSet.managers.get(ne);if(a){let l=j6(t),c=Array.from(n.linksSet.extendedElementsMap.values()).filter(d=>d.coreElement.source.id===t.path);for(let d of c)l.contains(d.coreElement.target.id)||n.linksSet.delete(d);let h=Lo(n.settings,t);for(let d of l)h.has(d)||h.set(d,new Set);for(let[d,p]of h){let g=n.linksSet.extendedElementsMap.get(Wt({source:{id:t.path},target:{id:d}}));if(!g)continue;p=new Set([...p].filter(L=>!Xe.excludeType(u.settings,ne,L))),p.size===0&&p.add(n.settings.interactiveSettings[ne].noneType);let{typesToRemove:v,typesToAdd:C}=g.matchesTypes(ne,[...p]);for(let L of v)n.linksSet.typesMap[ne][L].delete(g.id);for(let L of C)n.linksSet.typesMap[ne][L]||(n.linksSet.typesMap[ne][L]=new Set),n.linksSet.typesMap[ne][L].add(g.id);g.setTypes(ne,new Set(p));let w=v.filter(L=>n.linksSet.typesMap[ne][L].size===0);w.length>0&&a.removeTypes(w);let k=a.getTypes(),B=C.filter(L=>!k.includes(L));B.length>0&&a.addTypes(B),w.length===0&&B.length===0&&(v.length>0||C.length>0)&&g.graphicsWrapper?.resetManagerGraphics(a)}}if(n.settings.externalLinks!=="none"){let l=h=>h.flatMap(d=>[d.domain,d.href]).filter(d=>d!==void 0).unique(),c=l(n.nodesSet.getExternalLinks(t.path));n.nodesSet.cacheExternalLinks(t.path,!0).then(h=>{let d=l(n.nodesSet.getExternalLinks(t.path));c.filter(g=>!d.includes(g)).concat(d.filter(g=>!c.includes(g))).length>0&&n.engine.render()})}}}onDelete(t){let i=t.path;if(t instanceof bt.TFile)for(let[s,n]of this.allInstances){let o=n.nodesSet,a=o.extendedElementsMap.get(i);if(!a)continue;for(let[h,d]of o.managers){let p=a.getTypes(h),g=[];for(let v of p)o.typesMap[h][v].delete(i),o.typesMap[h][v]?.size===0&&g.push(v);d.removeTypes(g)}o.extendedElementsMap.delete(i),o.connectedIDs.delete(i),a?.graphicsWrapper?.disconnect(),a?.graphicsWrapper?.destroyGraphics();let l=n.linksSet,c=[...l.extendedElementsMap.values()].filter(h=>h.coreElement.source.id===i);for(let h of c){let d=h.id,p=h.getTypes(ne),g=[];for(let v of p)l.typesMap[ne][v].delete(d),l.typesMap[ne][v]?.size===0&&g.push(v);l.managers.get(ne)?.removeTypes(g),l.extendedElementsMap.delete(d),l.connectedIDs.delete(d),h?.graphicsWrapper?.disconnect(),h?.graphicsWrapper?.destroyGraphics()}}else if(t instanceof bt.TFolder)for(let[s,n]of this.allInstances)n.foldersSet?.managers.get(pe)?.removeTypes([i])}onRename(t,i){let s=t.path,n=function(o,a){return o===a};for(let[o,a]of this.allInstances){for(let[c,h]of a.nodesSet.managers)a.nodesSet.typesMap[c]=Object.fromEntries(Object.entries(a.nodesSet.typesMap[c]).map(([d,p])=>[d,new Set([...p].filter(g=>!n(i,g)))]));for(let[c,h]of a.linksSet.managers)a.linksSet.typesMap[c]=Object.fromEntries(Object.entries(a.linksSet.typesMap[c]).map(([d,p])=>[d,new Set([...p].filter(g=>{let v=a.linksSet.extendedElementsMap.get(g);return v&&!n(i,v.coreElement.source.id)&&!n(i,v.coreElement.target.id)}))]));for(let c of[...a.nodesSet.extendedElementsMap.values()])i===c.id&&(a.nodesSet.extendedElementsMap.delete(c.id),c.id=s,a.nodesSet.extendedElementsMap.set(c.id,c),a.nodesSet.connectedIDs.has(i)&&(a.nodesSet.connectedIDs.delete(i),a.nodesSet.connectedIDs.add(s)));for(let c of[...a.linksSet.extendedElementsMap.values()]){let h=i===c.coreElement.source.id,d=i===c.coreElement.target.id;if(h||d){let p=c.id;a.linksSet.extendedElementsMap.delete(c.id),h&&(c.id=Wt({source:{id:s},target:{id:c.coreElement.target.id}})),d&&(c.id=Wt({source:{id:c.coreElement.source.id},target:{id:s}})),a.linksSet.extendedElementsMap.set(c.id,c),a.linksSet.connectedIDs.has(p)&&(a.linksSet.connectedIDs.delete(p),a.linksSet.connectedIDs.add(c.id))}}let l=new yt(a);for(let[c,h]of a.nodesSet.extendedElementsMap)h.isPinned&&c===s&&l.pinNode(s,h.coreElement.x,h.coreElement.y);for(let c of u.settings.states){if(!c.pinNodes)break;let h=structuredClone(Object.entries(c.pinNodes));for(let[d,p]of h)i===d&&(delete c.pinNodes[d],c.pinNodes[s]=p);u.statesManager.onStateNeedsSaving(c,!1)}}}initLeaf(t){let i=H6(t);if(!(!i||i.leaf.isDeferred)){try{this.setGlobalUI(i)}catch(s){console.warn("WARNING: could not set global UI."),console.warn(s)}this.isPluginAlreadyEnabled(i)||(this.isGlobalGraphAlreadyOpened(i)||this.backupOptions(i),u.settings.enableFeatures[i.getViewType()]["auto-enabled"]&&this.enablePlugin(i,u.settings.startingStateID))}}isPluginAlreadyEnabled(t){return this.allInstances.has(t.leaf.id)}isGlobalGraphAlreadyOpened(t){return this.optionsBackup.has(t.leaf.id)&&t.getViewType()==="graph"}syncWithLeaves(t){let i=t.map(l=>l.id),s=t.find(l=>l.view.getViewType()==="localgraph"&&l.view instanceof bt.View&&!l.isDeferred&&!ap(l.view));this.localGraphID=s?s.id:null;let n=[...this.allInstances.keys()];for(let l of n)i.includes(l)||this.disablePluginFromLeafID(l);let o=[...this.optionsBackup.keys()];for(let l of o)!i.includes(l)&&this.lastBackup!==l&&this.optionsBackup.delete(l);let a=[...this.globalUIs.keys()];for(let l of a)i.includes(l)||this.globalUIs.delete(l);this.computeOpenNodes(),this.observeSearchViews()}computeOpenNodes(){let t=[];u.app.workspace.iterateAllLeaves(n=>{"state"in n.view&&typeof n.view.state=="object"&&n.view.state&&"file"in n.view.state&&typeof n.view.state.file=="string"?t.push(n.view.state.file):"file"in n.view&&n.view.file instanceof bt.TFile&&t.push(n.view.file.path)});let i=this.openNodes.filter(n=>!t.contains(n)),s=t.filter(n=>!this.openNodes.contains(n));if(i.length>0||s.length>0)for(let n of this.allInstances.values()){if(!n.settings.enableFeatures[n.type].focus||!n.settings.highlightOpenNodes)continue;let o=!1;for(let a of i){let l=n.nodesSet.extendedElementsMap.get(a);l&&(l.toggleOpenInTab(!1),o=!0)}for(let a of s){let l=n.nodesSet.extendedElementsMap.get(a);l&&(l.toggleOpenInTab(!0),o=!0)}o&&n.renderer.changed()}this.openNodes=t}observeSearchViews(){let t=u.app.workspace.getLeavesOfType("search");for(let i of Array.from(this.observedSearched.keys()))t.find(s=>s.view===i&&!s.isDeferred)||this.observedSearched.delete(i);for(let i of t){let s=i.view;if(!("dom"in s&&s.dom&&typeof s.dom=="object"))continue;if(!("resultDomLookup"in s.dom&&s.dom.resultDomLookup&&s.dom.resultDomLookup instanceof Map))return;if(!("childrenEl"in s.dom&&s.dom.childrenEl&&s.dom.childrenEl instanceof HTMLDivElement))continue;let n=s.dom.childrenEl;(!this.observedSearched.has(s)||this.observedSearched.get(s)?.childrenEl!==n)&&(this.searchObserver.observe(n,{childList:!0}),this.observedSearched.set(s,{childrenEl:n,results:[]}))}}computeSearchNodes(t){if(t.getViewType()!=="search")return;let i=this.observedSearched.get(t);if(!i||!("dom"in t&&t.dom&&typeof t.dom=="object")||!("resultDomLookup"in t.dom&&t.dom.resultDomLookup&&t.dom.resultDomLookup instanceof Map))return;let s=t.dom.resultDomLookup,n=[];for(let l of s.keys())l instanceof bt.TFile&&n.push(l.path);let o=i.results.filter(l=>!n.contains(l)),a=n.filter(l=>!i.results.contains(l));if(o.length>0||a.length>0)for(let l of this.allInstances.values()){if(!l.settings.enableFeatures[l.type].focus||!l.settings.highlightSearchResults)continue;let c=!1;for(let h of o){let d=l.nodesSet.extendedElementsMap.get(h);d&&(d.toggleIsSearchResult(!1),c=!0)}for(let h of a){let d=l.nodesSet.extendedElementsMap.get(h);d&&(d.toggleIsSearchResult(!0),c=!0)}c&&l.renderer.changed()}i.results=n}isSearchResult(t){for(let i of this.observedSearched.values())if(t in i.results)return!0;return!1}getSearchResults(){return this.observedSearched.values().reduce((t,i)=>t.concat(i.results),[])}setGlobalUI(t){let i=this.globalUIs.get(t.leaf.id);if(i)return i;let s=new $u(t);t.addChild(s);let n=new qu(t);return n.onPluginDisabled(),t.addChild(n),i={menu:s,control:n},this.globalUIs.set(t.leaf.id,i),i}updatePaletteForInteractive(t){this.allInstances.forEach(i=>{i.interactiveManagers.get(t)?.recomputeColors()})}updateColorForInteractiveType(t,i){this.allInstances.forEach(s=>{s.interactiveManagers.get(t)?.recomputeColor(i)})}updateSizeFunctionForNodesStat(){for(let[t,i]of this.allInstances)i.settings.nodesSizeFunction=u.settings.nodesSizeFunction,i.renderer.changed()}updatePaletteForNodesStat(){for(let[t,i]of this.allInstances)i.settings.nodesColorFunction=u.settings.nodesColorFunction,i.renderer.changed()}updateSizeFunctionForLinksStat(){for(let[t,i]of this.allInstances){if(!i.settings.curvedLinks)for(let[s,n]of i.linksSet.extendedElementsMap)n.changeCoreLinkThickness();i.renderer.changed()}}updatePaletteForLinksStat(){for(let[t,i]of this.allInstances){for(let[s,n]of i.linksSet.extendedElementsMap)n.graphicsWrapper?.updateGraphics();i.renderer.changed()}}enablePlugin(t,i,s=!0){if(this.isResetting.get(t.leaf.id)||this.backupOptions(t),this.isPluginAlreadyEnabled(t)||this.isNodeLimitExceededForView(t))return;let n=this.setGlobalUI(t);n.menu.disableUI();let o=async()=>{let a=await this.addGraph(t,i??u.settings.startingStateID,s);u.settings.enableFeatures[a.type]["elements-stats"]&&(this.nodesSizeCalculator?.functionKey!==u.settings.nodesSizeFunction&&!Xe.needDynamicGraphology(a,{element:"node",stat:"size"})&&this.initializeNodesSizeCalculator(),this.nodesColorCalculator?.functionKey!==u.settings.nodesColorFunction&&!Xe.needDynamicGraphology(a,{element:"node",stat:"color"})&&this.initializeNodesColorCalculator(),this.linksSizeCalculator?.functionKey!==u.settings.linksSizeFunction&&!Xe.needDynamicGraphology(a,{element:"link",stat:"size"})&&this.initializeLinksSizeCalculator(),this.linksColorCalculator?.functionKey!==u.settings.linksColorFunction&&!Xe.needDynamicGraphology(a,{element:"link",stat:"color"})&&this.initializeLinksColorCalculator()),n.menu.setEnableUIState(),n.control.onPluginEnabled(a),this.updateStatusBarItem(t.leaf)};u.settings.syncDefaultState?u.statesManager.saveForDefaultState(t).then(()=>o()):o()}async addGraph(t,i,s){let n=this.allInstances.get(t.leaf.id);return n||(n=new Uu(t),this.allInstances.set(t.leaf.id,n),n.setState(i),new Wu(n,s),i&&n.statesUI.setValue(i),n.graphEventsDispatcher.load(),t.addChild(n.graphEventsDispatcher),t.getViewType()==="localgraph"&&!ap(t)&&(this.localGraphID=t.leaf.id),n)}isNodeLimitExceededForView(t){return t.renderer.nodes.length>u.settings.maxNodes?(new bt.Notice(`${m("notices.nodeLimiteExceeded")} (${t.renderer.nodes.length}). ${m("notices.nodeLimitIs")} ${u.settings.maxNodes}. ${m("notices.changeInSettings")}.`),!0):!1}isNodeLimitExceededForData(t,i=!0){return Object.keys(t.nodes).length>u.settings.maxNodes?(i&&new bt.Notice(`${m("notices.nodeLimiteExceeded")} (${Object.keys(t.nodes).length}). ${m("notices.nodeLimitIs")} ${u.settings.maxNodes}. ${m("plugin.name")} ${m("notices.disabled")}. ${m("notices.changeInSettings")}.`),!0):!1}onPluginLoaded(t){this.isResetting.set(t.leaf.id,!1),this.globalUIs.get(t.leaf.id)?.menu.enableUI()}disablePlugin(t){this.disablePluginFromLeafID(t.leaf.id),this.isResetting.get(t.leaf.id)||t.renderer.changed()}disablePluginFromLeafID(t){this.disableUI(t),this.unloadDispatcher(t)}disableUI(t){let i=this.globalUIs.get(t);i&&(i.menu.disableUI(),i.menu.setDisableUIState(),i.control.onPluginDisabled())}unloadDispatcher(t){let i=this.allInstances.get(t);i?i.graphEventsDispatcher.unload():this.globalUIs.get(t)?.menu.enableUI()}onPluginUnloaded(t){this.allInstances.delete(t.leaf.id),this.localGraphID===t.leaf.id&&(this.localGraphID=null),this.isResetting.get(t.leaf.id)||(t._loaded&&this.applyNormalState(t),this.restoreBackupInGraphJson(),this.globalUIs.get(t.leaf.id)?.menu.enableUI()),this.updateStatusBarItem(t.leaf)}resetAllPlugins(t){let i=[...this.allInstances.values()].filter(s=>s.type===t).map(s=>s.view);for(let s of i)this.resetPlugin(s)}resetPlugin(t,i=!0,s){this.isResetting.set(t.leaf.id,!0);let n=this.allInstances.get(t.leaf.id);s=s??n?.stateData?.id;let o=n?.renderer.targetScale??!1;this.disablePlugin(t),this.enablePlugin(t,s,i);let a=this.allInstances.get(t.leaf.id);a&&o&&(a.renderer.targetScale=o)}onActiveLeafChange(t){this.updateStatusBarItem(t)}isMarkdownLeaf(t){return t.view.getViewType()==="markdown"&&t.view instanceof bt.FileView}onFileOpen(t){if(!this.isHandlingMarkdownViewChange){if(this.isHandlingMarkdownViewChange=!0,this.localGraphID){let i=this.allInstances.get(this.localGraphID);if(i){let s=this.allInstances.get(i.view.leaf.id);s&&(this.isResetting.set(this.localGraphID,!0),s.graphEventsDispatcher.reloadLocalDispatcher())}}if(t&&Sl()){let s=u.app.workspace.getLeavesOfType("markdown").filter(n=>n.view instanceof bt.MarkdownView&&n.view.file===t);for(let n of s){if(!(n.view instanceof bt.MarkdownView))continue;let o=n.view,a=Sl()?.graphViews.find(l=>l.node===o.contentEl.querySelector(`.${Cl()}`))?.leaf.view;if(a&&this.allInstances.get(a.leaf.id)){let l=a;this.zoomOnNode(l,t.path,l.renderer.targetScale)}}}this.isHandlingMarkdownViewChange=!1}}backupOptions(t){let i=ts(t);if(!i)return;let s=structuredClone(i.getOptions());this.optionsBackup.set(t.leaf.id,s),this.lastBackup=t.leaf.id,u.settings.backupGraphOptions=s,u.plugin.saveSettings()}restoreBackupInGraphJson(){let t=this.optionsBackup.get(this.lastBackup),i=this.getCorePluginInstance();i&&t&&(i.options.colorGroups=t.colorGroups,i.options.search=t.search,i.options.hideUnresolved=t.hideUnresolved,i.options.showAttachments=t.showAttachments,i.options.showOrphans=t.showOrphans,i.options.showTags=t.showTags,i.options.localBacklinks=t.localBacklinks,i.options.localForelinks=t.localForelinks,i.options.localInterlinks=t.localInterlinks,i.options.localJumps=t.localJumps,i.options.lineSizeMultiplier=t.lineSizeMultiplier,i.options.nodeSizeMultiplier=t.nodeSizeMultiplier,i.options.showArrow=t.showArrow,i.options.textFadeMultiplier=t.textFadeMultiplier,i.options.centerStrength=t.centerStrength,i.options.linkDistance=t.linkDistance,i.options.linkStrength=t.linkStrength,i.options.repelStrength=t.repelStrength,i.saveOptions())}getCorePluginInstance(){return u.app.internalPlugins.getPluginById("graph")?.instance}applyNormalState(t){let i=ts(t),s=this.optionsBackup.get(t.leaf.id);if(i&&s){i.setOptions(s);for(let n of i.renderer.nodes)n.fontDirty=!0}}onNodeMenuOpened(t,i,s,n){s==="graph-context-menu"&&n&&i instanceof bt.TFile&&this.allInstances.get(n.id)?.graphEventsDispatcher.inputsManager.onNodeMenuOpened(t,i)}getSVGScreenshot(t){let i=this.allInstances.get(t.leaf.id),s;if(i)s=new Hu(i);else{let n=ts(t);if(!n)return;s=new ju(n)}s.toClipboard()}zoomOnNode(t,i,s){let n=t.renderer,o=n.nodes.find(g=>g.id===i);if(!o)return;let a=n.scale;s===void 0&&(s=u.settings.zoomFactor);let l=n.panX,c=n.panY;n.targetScale=Math.min(8,Math.max(1/128,s));let h=n.zoomCenterX,d=n.zoomCenterY;if(h===0&&d===0){let g=window.devicePixelRatio;h=n.width/2*g,d=n.height/2*g}let p=.85;a=a*p+s*(1-p),l-=o.x*a+l-h,c-=o.y*a+c-d,n.setPan(l,c),n.setScale(a),n.changed()}updateStatusBarItem(t,i){if(this.statusBarItem.detach(),this.addStatusBarItem(),t&&(t.view.getViewType()==="graph"||t.view.getViewType()==="localgraph")){i===void 0&&(i=t.view.renderer.nodes.length),i!==void 0&&this.statusBarItem.createSpan({text:i.toString()+" "+m("plugin.nodes"),cls:"status-bar-item-segment"});let s=this.allInstances.get(t.id);if(s){this.statusBarItem.addClass("mod-clickable"),this.statusBarItem.addEventListener("click",()=>{new Bs(s).open()});let n=Object.keys(s.nodesSet.selectedNodes).length;n>0&&this.statusBarItem.createSpan({text:`(${n} ${m("inputs.selected")})`,cls:"status-bar-item-segment"});let o=createSpan({cls:"status-bar-item-icon status-bar-item-segment"});(0,bt.setIcon)(o,"info"),this.statusBarItem.appendChild(o)}else this.statusBarItem.removeClass("mod-clickable")}}};var Rs=class{constructor(e){this.data=new Yu;this.data.name=e}setID(e){this.data.id=e||crypto.randomUUID()}saveGraph(e){for(let[t,i]of e.interactiveManagers)this.data.toggleTypes[t]=i.getTypes().filter(s=>u.settings.interactiveSettings[t].enableByDefault!==i.isActive(s));this.data.pinNodes={};for(let[t,i]of e.nodesSet.extendedElementsMap)i.isPinned&&(this.data.pinNodes[t]={x:i.coreElement.x,y:i.coreElement.y});this.data.engineOptions=new ti(e.engine.getOptions()),this.data.hiddenLegendRows=structuredClone(e.stateData?.hiddenLegendRows)??[],this.data.collapsedLegendRows=structuredClone(e.stateData?.collapsedLegendRows)??[],this.data.logicTypes=structuredClone(e.stateData?.logicTypes)??{},e.layersManager&&(this.data.enableLayers=e.layersManager.isEnabled,this.data.currentLayerLevel=e.layersManager.currentLevel)}saveState(e){return this.data=e,this.completeDefaultOptions()}isValidProperty(e){return["id","name","toggleTypes","logicTypes","pinNodes","engineOptions","hiddenLegendRows","collapsedLegendRows","enableLayers","currentLayerLevel"].includes(e)}completeDefaultOptions(){let e=!1;if(this.data.toggleTypes||(this.data.toggleTypes={},e=!0),this.data.toggleTypes[He]||(this.data.toggleTypes[He]=[],e=!0),this.data.toggleTypes[ne]||(this.data.toggleTypes[ne]=[],e=!0),this.data.toggleTypes[pe]||(this.data.toggleTypes[pe]=[],e=!0),this.data.logicTypes||(this.data.logicTypes={},e=!0),this.data.logicTypes[He]||(this.data.logicTypes[He]="OR",e=!0),this.data.logicTypes[ne]||(this.data.logicTypes[ne]="OR",e=!0),this.data.logicTypes[pe]||(this.data.logicTypes[pe]="OR",e=!0),this.data.pinNodes||(this.data.pinNodes={},e=!0),!this.data.engineOptions)this.data.engineOptions=new ti,e=!0;else if(this.data.engineOptions.search===void 0){let t=u.graphsManager.getCorePluginInstance();t&&(this.data.engineOptions.search=t.options.search??"",e=!0)}this.data.hiddenLegendRows||(this.data.hiddenLegendRows=[],e=!0),this.data.collapsedLegendRows||(this.data.collapsedLegendRows=[],e=!0);for(let t in this.data)this.isValidProperty(t)||(this.data=this.excludeKey(this.data,t),e=!0);return e}excludeKey(e,t){let{[t]:i,...s}=e;return s}};var ti=class{constructor(e){this.colorGroups=[];this.search="";this.hideUnresolved=!1;this.showAttachments=!1;this.showOrphans=!0;this.showTags=!1;this.localBacklinks=!0;this.localForelinks=!0;this.localInterlinks=!1;this.localJumps=1;this.lineSizeMultiplier=1;this.nodeSizeMultiplier=1;this.showArrow=!1;this.textFadeMultiplier=0;this.centerStrength=1-Math.log(.109)/Math.log(.01);this.linkDistance=250;this.linkStrength=1;this.repelStrength=10;e&&(this.colorGroups=e.colorGroups,this.search=e.search,this.hideUnresolved=e.hideUnresolved,this.showAttachments=e.showAttachments,this.showOrphans=e.showOrphans,this.showTags=e.showTags,this.localBacklinks=e.localBacklinks,this.localForelinks=e.localForelinks,this.localInterlinks=e.localInterlinks,this.localJumps=e.localJumps,this.lineSizeMultiplier=e.lineSizeMultiplier,this.nodeSizeMultiplier=e.nodeSizeMultiplier,this.showArrow=e.showArrow,this.textFadeMultiplier=e.textFadeMultiplier,this.centerStrength=e.centerStrength,this.linkDistance=e.linkDistance,this.linkStrength=e.linkStrength,this.repelStrength=e.repelStrength)}},Yu=class{constructor(){this.id="";this.name="";this.enableLayers=!1;this.currentLayerLevel=0;this.toggleTypes={},this.toggleTypes[He]=[],this.toggleTypes[ne]=[],this.toggleTypes[pe]=[],this.logicTypes={},this.logicTypes[He]="OR",this.logicTypes[ne]="OR",this.logicTypes[pe]="OR",this.pinNodes={},this.hiddenLegendRows=[],this.collapsedLegendRows=[],this.engineOptions=new ti}},Bn=class{static getLogicType(e,t){return e.stateData&&e.stateData.logicTypes&&e.stateData.logicTypes[t]?e.stateData.logicTypes[t]:"OR"}};var wl=require("obsidian");var Xu=class{constructor(){this.cacheStatesConfigs={};this.mapStatesConfig()}getStateDataById(e){return u.settings.states.find(t=>t.id===e)}newState(e,t){let i=new Rs(t);return i.setID(),i.saveGraph(e),this.onStateNeedsSaving(i.data),this.saveConfigForState(e,i),i.data.id}changeState(e,t){let i=this.getStateDataById(t);if(!i)return;let s=this.getConfig(t);if(u.settings.saveConfigsWithState&&!u.graphsManager.isResetting.get(e.view.leaf.id)&&s)if(Xe.needReload(e.settings,s,e.type)){u.graphsManager.resetPlugin(e.view,!0,t);return}else e.settings=s;i=this.validateStateData(i),e.stateData=i,e.graphEventsDispatcher.lastFilteringAction&&(e.graphEventsDispatcher.lastFilteringAction.record=!1),setTimeout(()=>{if(this.updateInteractiveManagers(i,e),i.engineOptions){e.colorGroupHaveChanged=i.engineOptions.colorGroups!==e.engine.options.colorGroups,e.engine.setOptions(i.engineOptions);for(let n of e.renderer.nodes)n.fontDirty=!0}e.layersManager?.setCurrentLevel(i.currentLayerLevel??0,!1),e.legendUI?.updateUIFromState(),e.statePinnedNodes=structuredClone(i.pinNodes)??{},e.statesUI.currentStateID===t&&e.graphEventsDispatcher.lastFilteringAction&&(e.graphEventsDispatcher.lastFilteringAction.record=!0)},200)}validateStateData(e){let t=new Rs(e.name);return t.saveState(e)&&this.onStateNeedsSaving(t.data),t.data}updateInteractiveManagers(e,t){this.updateManagers(e,t.nodesSet.managers,t.legendUI),this.updateManagers(e,t.linksSet.managers,t.legendUI),t.foldersSet&&this.updateManagers(e,t.foldersSet.managers,t.foldersUI)}updateManagers(e,t,i){for(let[s,n]of t){u.settings.interactiveSettings[s].hasOwnProperty("enableByDefault")||(u.settings.interactiveSettings[s].enableByDefault=s!==pe,u.plugin.saveSettings());let o=u.settings.interactiveSettings[s].enableByDefault;if(this.loadStateForInteractiveManager(n,e),i&&e.toggleTypes&&(o?i.enableAllUI(s):i.disableAllUI(s),e.toggleTypes.hasOwnProperty(s)))for(let a of e.toggleTypes[s])o?i.disableUI(s,a):i.enableUI(s,a)}}loadStateForInteractiveManager(e,t){if(!t.toggleTypes)return;let i=u.settings.interactiveSettings[e.name].enableByDefault,s=t.toggleTypes[e.name]??[],n=[],o=[];e.getTypes().forEach(a=>{let l=e.interactives.get(a);l&&(i===l.isActive&&s.includes(a)?(l.isActive=!i,i?n.push(a):o.push(a)):i!==l.isActive&&!s.includes(a)&&(l.isActive=i,i?o.push(a):n.push(a)))}),n.length>0&&e.instances.interactiveEventsDispatcher.onInteractivesDisabled(e.name,n),o.length>0&&e.instances.interactiveEventsDispatcher.onInteractivesEnabled(e.name,o)}async saveState(e,t){if(t===Jr)return;let i=u.settings.states.find(n=>n.id==t);if(!i)return;let s=new Rs(i.name);s.saveState(i),s.setID(t),s.saveGraph(e),await this.onStateNeedsSaving(s.data),this.saveConfigForState(e,s)}async saveConfigForState(e,t){if(!e.settings.saveConfigsWithState)return;let i=$6(t.data.name);Ku(i,!1)||(i="state_"+t.data.id);let s=u.configurationDirectory+"/"+i+".json";u.plugin.exportSettings(s,e.settings,t),this.cacheStatesConfigs[t.data.id]={filepath:s,settings:await u.plugin.loadConfigFile(s).then(n=>(delete n.stateID,n))}}async onStateNeedsSaving(e,t=!1){this.updateStateArray(e),await u.plugin.saveSettings().then(()=>{t&&new wl.Notice(`${m("plugin.name")}: ${m("notices.stateSaved")} (${e.name})`),this.updateAllStates()})}async saveForDefaultState(e){let t=this.getStateDataById(Jr);if(!t)return;let i=ts(e);i&&(t.engineOptions=new ti(i.getOptions()),await this.onStateNeedsSaving(t,!0))}saveForNormalState(e){let t=u.app.internalPlugins.getPluginById("graph").instance,i=ts(e);i&&(t.options=i.getOptions(),t.saveOptions(),u.graphsManager.backupOptions(e),new wl.Notice(m("notices.normalStateSave")))}updateStateArray(e){let t=u.settings.states.findIndex(i=>i.name===e.name);t>=0?u.settings.states[t]=e:u.settings.states.push(e)}updateAllStates(){u.graphsManager.allInstances.forEach(e=>{e.statesUI.updateStatesList()})}renameState(e,t){let i=this.getStateDataById(e);!i||i.name===t||(i.name=t,u.plugin.saveSettings().then(()=>{new wl.Notice(`${m("plugin.name")}: ${m("notices.stateRenamed")} (${t})`),this.updateAllStates()}))}deleteState(e){if(e===Jr)return;let t=this.getStateDataById(e);t&&(u.settings.states.remove(t),u.plugin.saveSettings().then(()=>{new wl.Notice(`${m("plugin.name")}: ${m("notices.stateDeleted")} (${t.name})`),this.updateAllStates()}),delete this.cacheStatesConfigs[e])}showGraphState(e){let t=u.graphsManager.allInstances.get(e.leaf.id);if(!t)return;new Bs(t).open()}async mapStatesConfig(){let e=await Mo();for(let t of e)this.cacheConfig(t)}async cacheConfig(e){let t=u.settings.states.map(s=>s.id),i=await u.plugin.loadConfigFile(e);i.stateID&&t.contains(i.stateID)&&(this.cacheStatesConfigs[i.stateID]={filepath:e,settings:await u.plugin.loadConfigFile(e).then(s=>(delete s.stateID,s))})}hasConfig(e){return e in this.cacheStatesConfigs}getConfig(e){return this.cacheStatesConfigs[e]?.settings}getStateFromConfig(e){return Object.keys(this.cacheStatesConfigs).find(t=>this.cacheStatesConfigs[t].filepath===e)}};var{min:yx,max:vx}=Math,Ar=(r,e=0,t=1)=>yx(vx(e,r),t);var Rn=r=>{r._clipped=!1,r._unclipped=r.slice(0);for(let e=0;e<=3;e++)e<3?((r[e]<0||r[e]>255)&&(r._clipped=!0),r[e]=Ar(r[e],0,255)):e===3&&(r[e]=Ar(r[e],0,1));return r};var q6={};for(let r of["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"])q6[`[object ${r}]`]=r.toLowerCase();function Ee(r){return q6[Object.prototype.toString.call(r)]||"object"}var he=(r,e=null)=>r.length>=3?Array.prototype.slice.call(r):Ee(r[0])=="object"&&e?e.split("").filter(t=>r[0][t]!==void 0).map(t=>r[0][t]):r[0].slice(0);var ur=r=>{if(r.length<2)return null;let e=r.length-1;return Ee(r[e])=="string"?r[e].toLowerCase():null};var{PI:Zu,min:Qu,max:Ju}=Math,v0=r=>Math.round(r*100)/100,Tl=r=>Math.round(r*100)/100,kr=Zu*2,eh=Zu/3,Y6=Zu/180,X6=180/Zu;function th(r){return[...r.slice(0,3).reverse(),...r.slice(3)]}var Fe={format:{},autodetect:[]};var lp=class{constructor(...e){let t=this;if(Ee(e[0])==="object"&&e[0].constructor&&e[0].constructor===this.constructor)return e[0];let i=ur(e),s=!1;if(!i){s=!0,Fe.sorted||(Fe.autodetect=Fe.autodetect.sort((n,o)=>o.p-n.p),Fe.sorted=!0);for(let n of Fe.autodetect)if(i=n.test(...e),i)break}if(Fe.format[i]){let n=Fe.format[i].apply(null,s?e:e.slice(0,-1));t._rgb=Rn(n)}else throw new Error("unknown format: "+e);t._rgb.length===3&&t._rgb.push(1)}toString(){return Ee(this.hex)=="function"?this.hex():`[${this._rgb.join(",")}]`}},Y=lp;var K6="3.1.2";var Z6=(...r)=>new Y(...r);Z6.version=K6;var Le=Z6;var xx={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},Os=xx;var Dx=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,bx=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,Ex=r=>{if(r.match(Dx)){(r.length===4||r.length===7)&&(r=r.substr(1)),r.length===3&&(r=r.split(""),r=r[0]+r[0]+r[1]+r[1]+r[2]+r[2]);let e=parseInt(r,16),t=e>>16,i=e>>8&255,s=e&255;return[t,i,s,1]}if(r.match(bx)){(r.length===5||r.length===9)&&(r=r.substr(1)),r.length===4&&(r=r.split(""),r=r[0]+r[0]+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]);let e=parseInt(r,16),t=e>>24&255,i=e>>16&255,s=e>>8&255,n=Math.round((e&255)/255*100)/100;return[t,i,s,n]}throw new Error(`unknown hex color: ${r}`)},rh=Ex;var{round:ih}=Math,Sx=(...r)=>{let[e,t,i,s]=he(r,"rgba"),n=ur(r)||"auto";s===void 0&&(s=1),n==="auto"&&(n=s<1?"rgba":"rgb"),e=ih(e),t=ih(t),i=ih(i);let a="000000"+(e<<16|t<<8|i).toString(16);a=a.substr(a.length-6);let l="0"+ih(s*255).toString(16);switch(l=l.substr(l.length-2),n.toLowerCase()){case"rgba":return`#${a}${l}`;case"argb":return`#${l}${a}`;default:return`#${a}`}},sh=Sx;Y.prototype.name=function(){let r=sh(this._rgb,"rgb");for(let e of Object.keys(Os))if(Os[e]===r)return e.toLowerCase();return r};Fe.format.named=r=>{if(r=r.toLowerCase(),Os[r])return rh(Os[r]);throw new Error("unknown color name: "+r)};Fe.autodetect.push({p:5,test:(r,...e)=>{if(!e.length&&Ee(r)==="string"&&Os[r.toLowerCase()])return"named"}});Y.prototype.alpha=function(r,e=!1){return r!==void 0&&Ee(r)==="number"?e?(this._rgb[3]=r,this):new Y([this._rgb[0],this._rgb[1],this._rgb[2],r],"rgb"):this._rgb[3]};Y.prototype.clipped=function(){return this._rgb._clipped||!1};var _l={Kn:18,labWhitePoint:"d65",Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452,kE:.008856451679035631,kKE:8,kK:903.2962962962963,RefWhiteRGB:{X:.95047,Y:1,Z:1.08883},MtxRGB2XYZ:{m00:.4124564390896922,m01:.21267285140562253,m02:.0193338955823293,m10:.357576077643909,m11:.715152155287818,m12:.11919202588130297,m20:.18043748326639894,m21:.07217499330655958,m22:.9503040785363679},MtxXYZ2RGB:{m00:3.2404541621141045,m01:-.9692660305051868,m02:.055643430959114726,m10:-1.5371385127977166,m11:1.8760108454466942,m12:-.2040259135167538,m20:-.498531409556016,m21:.041556017530349834,m22:1.0572251882231791},As:.9414285350000001,Bs:1.040417467,Cs:1.089532651,MtxAdaptMa:{m00:.8951,m01:-.7502,m02:.0389,m10:.2664,m11:1.7135,m12:-.0685,m20:-.1614,m21:.0367,m22:1.0296},MtxAdaptMaI:{m00:.9869929054667123,m01:.43230526972339456,m02:-.008528664575177328,m10:-.14705425642099013,m11:.5183602715367776,m12:.04004282165408487,m20:.15996265166373125,m21:.0492912282128556,m22:.9684866957875502}},Ci=_l,Cx=new Map([["a",[1.0985,.35585]],["b",[1.0985,.35585]],["c",[.98074,1.18232]],["d50",[.96422,.82521]],["d55",[.95682,.92149]],["d65",[.95047,1.08883]],["e",[1,1,1]],["f2",[.99186,.67393]],["f7",[.95041,1.08747]],["f11",[1.00962,.6435]],["icc",[.96422,.82521]]]);function Ir(r){let e=Cx.get(String(r).toLowerCase());if(!e)throw new Error("unknown Lab illuminant "+r);_l.labWhitePoint=r,_l.Xn=e[0],_l.Zn=e[1]}function Gs(){return _l.labWhitePoint}var wx=(...r)=>{r=he(r,"lab");let[e,t,i]=r,[s,n,o]=Tx(e,t,i),[a,l,c]=up(s,n,o);return[a,l,c,r.length>3?r[3]:1]},Tx=(r,e,t)=>{let{kE:i,kK:s,kKE:n,Xn:o,Yn:a,Zn:l}=Ci,c=(r+16)/116,h=.002*e+c,d=c-.005*t,p=h*h*h,g=d*d*d,v=p>i?p:(116*h-16)/s,C=r>n?Math.pow((r+16)/116,3):r/s,w=g>i?g:(116*d-16)/s,k=v*o,B=C*a,L=w*l;return[k,B,L]},cp=r=>{let e=Math.sign(r);return r=Math.abs(r),(r<=.0031308?r*12.92:1.055*Math.pow(r,1/2.4)-.055)*e},up=(r,e,t)=>{let{MtxAdaptMa:i,MtxAdaptMaI:s,MtxXYZ2RGB:n,RefWhiteRGB:o,Xn:a,Yn:l,Zn:c}=Ci,h=a*i.m00+l*i.m10+c*i.m20,d=a*i.m01+l*i.m11+c*i.m21,p=a*i.m02+l*i.m12+c*i.m22,g=o.X*i.m00+o.Y*i.m10+o.Z*i.m20,v=o.X*i.m01+o.Y*i.m11+o.Z*i.m21,C=o.X*i.m02+o.Y*i.m12+o.Z*i.m22,w=(r*i.m00+e*i.m10+t*i.m20)*(g/h),k=(r*i.m01+e*i.m11+t*i.m21)*(v/d),B=(r*i.m02+e*i.m12+t*i.m22)*(C/p),L=w*s.m00+k*s.m10+B*s.m20,T=w*s.m01+k*s.m11+B*s.m21,W=w*s.m02+k*s.m12+B*s.m22,j=cp(L*n.m00+T*n.m10+W*n.m20),I=cp(L*n.m01+T*n.m11+W*n.m21),R=cp(L*n.m02+T*n.m12+W*n.m22);return[j*255,I*255,R*255]},No=wx;var _x=(...r)=>{let[e,t,i,...s]=he(r,"rgb"),[n,o,a]=dp(e,t,i),[l,c,h]=Fx(n,o,a);return[l,c,h,...s.length>0&&s[0]<1?[s[0]]:[]]};function Fx(r,e,t){let{Xn:i,Yn:s,Zn:n,kE:o,kK:a}=Ci,l=r/i,c=e/s,h=t/n,d=l>o?Math.pow(l,1/3):(a*l+16)/116,p=c>o?Math.pow(c,1/3):(a*c+16)/116,g=h>o?Math.pow(h,1/3):(a*h+16)/116;return[116*p-16,500*(d-p),200*(p-g)]}function hp(r){let e=Math.sign(r);return r=Math.abs(r),(r<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4))*e}var dp=(r,e,t)=>{r=hp(r/255),e=hp(e/255),t=hp(t/255);let{MtxRGB2XYZ:i,MtxAdaptMa:s,MtxAdaptMaI:n,Xn:o,Yn:a,Zn:l,As:c,Bs:h,Cs:d}=Ci,p=r*i.m00+e*i.m10+t*i.m20,g=r*i.m01+e*i.m11+t*i.m21,v=r*i.m02+e*i.m12+t*i.m22,C=o*s.m00+a*s.m10+l*s.m20,w=o*s.m01+a*s.m11+l*s.m21,k=o*s.m02+a*s.m12+l*s.m22,B=p*s.m00+g*s.m10+v*s.m20,L=p*s.m01+g*s.m11+v*s.m21,T=p*s.m02+g*s.m12+v*s.m22;return B*=C/c,L*=w/h,T*=k/d,p=B*n.m00+L*n.m10+T*n.m20,g=B*n.m01+L*n.m11+T*n.m21,v=B*n.m02+L*n.m12+T*n.m22,[p,g,v]},Po=_x;Y.prototype.lab=function(){return Po(this._rgb)};var Ax=(...r)=>new Y(...r,"lab");Object.assign(Le,{lab:Ax,getLabWhitePoint:Gs,setLabWhitePoint:Ir});Fe.format.lab=No;Fe.autodetect.push({p:2,test:(...r)=>{if(r=he(r,"lab"),Ee(r)==="array"&&r.length===3)return"lab"}});Y.prototype.darken=function(r=1){let e=this,t=e.lab();return t[0]-=Ci.Kn*r,new Y(t,"lab").alpha(e.alpha(),!0)};Y.prototype.brighten=function(r=1){return this.darken(-r)};Y.prototype.darker=Y.prototype.darken;Y.prototype.brighter=Y.prototype.brighten;Y.prototype.get=function(r){let[e,t]=r.split("."),i=this[e]();if(t){let s=e.indexOf(t)-(e.substr(0,2)==="ok"?2:0);if(s>-1)return i[s];throw new Error(`unknown channel ${t} in mode ${e}`)}else return i};var{pow:kx}=Math,Ix=1e-7,Lx=20;Y.prototype.luminance=function(r,e="rgb"){if(r!==void 0&&Ee(r)==="number"){if(r===0)return new Y([0,0,0,this._rgb[3]],"rgb");if(r===1)return new Y([255,255,255,this._rgb[3]],"rgb");let t=this.luminance(),i=Lx,s=(o,a)=>{let l=o.interpolate(a,.5,e),c=l.luminance();return Math.abs(r-c)r?s(o,l):s(l,a)},n=(t>r?s(new Y([0,0,0]),this):s(this,new Y([255,255,255]))).rgb();return new Y([...n,this._rgb[3]])}return Mx(...this._rgb.slice(0,3))};var Mx=(r,e,t)=>(r=pp(r),e=pp(e),t=pp(t),.2126*r+.7152*e+.0722*t),pp=r=>(r/=255,r<=.03928?r/12.92:kx((r+.055)/1.055,2.4));var pt={};var wi=(r,e,t=.5,...i)=>{let s=i[0]||"lrgb";if(!pt[s]&&!i.length&&(s=Object.keys(pt)[0]),!pt[s])throw new Error(`interpolation mode ${s} is not defined`);return Ee(r)!=="object"&&(r=new Y(r)),Ee(e)!=="object"&&(e=new Y(e)),pt[s](r,e,t).alpha(r.alpha()+t*(e.alpha()-r.alpha()))};Y.prototype.mix=Y.prototype.interpolate=function(r,e=.5,...t){return wi(this,r,e,...t)};Y.prototype.premultiply=function(r=!1){let e=this._rgb,t=e[3];return r?(this._rgb=[e[0]*t,e[1]*t,e[2]*t,t],this):new Y([e[0]*t,e[1]*t,e[2]*t,t],"rgb")};var{sin:Nx,cos:Px}=Math,Bx=(...r)=>{let[e,t,i]=he(r,"lch");return isNaN(i)&&(i=0),i=i*Y6,[e,Px(i)*t,Nx(i)*t]},nh=Bx;var Rx=(...r)=>{r=he(r,"lch");let[e,t,i]=r,[s,n,o]=nh(e,t,i),[a,l,c]=No(s,n,o);return[a,l,c,r.length>3?r[3]:1]},Bo=Rx;var Ox=(...r)=>{let e=th(he(r,"hcl"));return Bo(...e)},Q6=Ox;var{sqrt:Gx,atan2:Ux,round:Vx}=Math,zx=(...r)=>{let[e,t,i]=he(r,"lab"),s=Gx(t*t+i*i),n=(Ux(i,t)*X6+360)%360;return Vx(s*1e4)===0&&(n=Number.NaN),[e,s,n]},oh=zx;var Wx=(...r)=>{let[e,t,i,...s]=he(r,"rgb"),[n,o,a]=Po(e,t,i),[l,c,h]=oh(n,o,a);return[l,c,h,...s.length>0&&s[0]<1?[s[0]]:[]]},Fl=Wx;Y.prototype.lch=function(){return Fl(this._rgb)};Y.prototype.hcl=function(){return th(Fl(this._rgb))};var Hx=(...r)=>new Y(...r,"lch"),jx=(...r)=>new Y(...r,"hcl");Object.assign(Le,{lch:Hx,hcl:jx});Fe.format.lch=Bo;Fe.format.hcl=Q6;["lch","hcl"].forEach(r=>Fe.autodetect.push({p:2,test:(...e)=>{if(e=he(e,r),Ee(e)==="array"&&e.length===3)return r}}));Y.prototype.saturate=function(r=1){let e=this,t=e.lch();return t[1]+=Ci.Kn*r,t[1]<0&&(t[1]=0),new Y(t,"lch").alpha(e.alpha(),!0)};Y.prototype.desaturate=function(r=1){return this.saturate(-r)};Y.prototype.set=function(r,e,t=!1){let[i,s]=r.split("."),n=this[i]();if(s){let o=i.indexOf(s)-(i.substr(0,2)==="ok"?2:0);if(o>-1){if(Ee(e)=="string")switch(e.charAt(0)){case"+":n[o]+=+e;break;case"-":n[o]+=+e;break;case"*":n[o]*=+e.substr(1);break;case"/":n[o]/=+e.substr(1);break;default:n[o]=+e}else if(Ee(e)==="number")n[o]=e;else throw new Error("unsupported value for Color.set");let a=new Y(n,i);return t?(this._rgb=a._rgb,this):a}throw new Error(`unknown channel ${s} in mode ${i}`)}else return n};Y.prototype.tint=function(r=.5,...e){return wi(this,"white",r,...e)};Y.prototype.shade=function(r=.5,...e){return wi(this,"black",r,...e)};var $x=(r,e,t)=>{let i=r._rgb,s=e._rgb;return new Y(i[0]+t*(s[0]-i[0]),i[1]+t*(s[1]-i[1]),i[2]+t*(s[2]-i[2]),"rgb")};pt.rgb=$x;var{sqrt:fp,pow:Ro}=Math,qx=(r,e,t)=>{let[i,s,n]=r._rgb,[o,a,l]=e._rgb;return new Y(fp(Ro(i,2)*(1-t)+Ro(o,2)*t),fp(Ro(s,2)*(1-t)+Ro(a,2)*t),fp(Ro(n,2)*(1-t)+Ro(l,2)*t),"rgb")};pt.lrgb=qx;var Yx=(r,e,t)=>{let i=r.lab(),s=e.lab();return new Y(i[0]+t*(s[0]-i[0]),i[1]+t*(s[1]-i[1]),i[2]+t*(s[2]-i[2]),"lab")};pt.lab=Yx;var Lr=(r,e,t,i)=>{let s,n;i==="hsl"?(s=r.hsl(),n=e.hsl()):i==="hsv"?(s=r.hsv(),n=e.hsv()):i==="hcg"?(s=r.hcg(),n=e.hcg()):i==="hsi"?(s=r.hsi(),n=e.hsi()):i==="lch"||i==="hcl"?(i="hcl",s=r.hcl(),n=e.hcl()):i==="oklch"&&(s=r.oklch().reverse(),n=e.oklch().reverse());let o,a,l,c,h,d;(i.substr(0,1)==="h"||i==="oklch")&&([o,l,h]=s,[a,c,d]=n);let p,g,v,C;return!isNaN(o)&&!isNaN(a)?(a>o&&a-o>180?C=a-(o+360):a180?C=a+360-o:C=a-o,g=o+t*C):isNaN(o)?isNaN(a)?g=Number.NaN:(g=a,(h==1||h==0)&&i!="hsv"&&(p=c)):(g=o,(d==1||d==0)&&i!="hsv"&&(p=l)),p===void 0&&(p=l+t*(c-l)),v=h+t*(d-h),i==="oklch"?new Y([v,p,g],i):new Y([g,p,v],i)};var J6=(r,e,t)=>Lr(r,e,t,"lch");pt.lch=J6;pt.hcl=J6;var Xx=r=>{if(Ee(r)=="number"&&r>=0&&r<=16777215){let e=r>>16,t=r>>8&255,i=r&255;return[e,t,i,1]}throw new Error("unknown num color: "+r)},e4=Xx;var Kx=(...r)=>{let[e,t,i]=he(r,"rgb");return(e<<16)+(t<<8)+i},t4=Kx;Y.prototype.num=function(){return t4(this._rgb)};var Zx=(...r)=>new Y(...r,"num");Object.assign(Le,{num:Zx});Fe.format.num=e4;Fe.autodetect.push({p:5,test:(...r)=>{if(r.length===1&&Ee(r[0])==="number"&&r[0]>=0&&r[0]<=16777215)return"num"}});var Qx=(r,e,t)=>{let i=r.num(),s=e.num();return new Y(i+t*(s-i),"num")};pt.num=Qx;var{floor:Jx}=Math,eD=(...r)=>{r=he(r,"hcg");let[e,t,i]=r,s,n,o;i=i*255;let a=t*255;if(t===0)s=n=o=i;else{e===360&&(e=0),e>360&&(e-=360),e<0&&(e+=360),e/=60;let l=Jx(e),c=e-l,h=i*(1-t),d=h+a*(1-c),p=h+a*c,g=h+a;switch(l){case 0:[s,n,o]=[g,p,h];break;case 1:[s,n,o]=[d,g,h];break;case 2:[s,n,o]=[h,g,p];break;case 3:[s,n,o]=[h,d,g];break;case 4:[s,n,o]=[p,h,g];break;case 5:[s,n,o]=[g,h,d];break}}return[s,n,o,r.length>3?r[3]:1]},r4=eD;var tD=(...r)=>{let[e,t,i]=he(r,"rgb"),s=Qu(e,t,i),n=Ju(e,t,i),o=n-s,a=o*100/255,l=s/(255-o)*100,c;return o===0?c=Number.NaN:(e===n&&(c=(t-i)/o),t===n&&(c=2+(i-e)/o),i===n&&(c=4+(e-t)/o),c*=60,c<0&&(c+=360)),[c,a,l]},i4=tD;Y.prototype.hcg=function(){return i4(this._rgb)};var rD=(...r)=>new Y(...r,"hcg");Le.hcg=rD;Fe.format.hcg=r4;Fe.autodetect.push({p:1,test:(...r)=>{if(r=he(r,"hcg"),Ee(r)==="array"&&r.length===3)return"hcg"}});var iD=(r,e,t)=>Lr(r,e,t,"hcg");pt.hcg=iD;var{cos:Oo}=Math,sD=(...r)=>{r=he(r,"hsi");let[e,t,i]=r,s,n,o;return isNaN(e)&&(e=0),isNaN(t)&&(t=0),e>360&&(e-=360),e<0&&(e+=360),e/=360,e<1/3?(o=(1-t)/3,s=(1+t*Oo(kr*e)/Oo(eh-kr*e))/3,n=1-(o+s)):e<2/3?(e-=1/3,s=(1-t)/3,n=(1+t*Oo(kr*e)/Oo(eh-kr*e))/3,o=1-(s+n)):(e-=2/3,n=(1-t)/3,o=(1+t*Oo(kr*e)/Oo(eh-kr*e))/3,s=1-(n+o)),s=Ar(i*s*3),n=Ar(i*n*3),o=Ar(i*o*3),[s*255,n*255,o*255,r.length>3?r[3]:1]},s4=sD;var{min:nD,sqrt:oD,acos:aD}=Math,lD=(...r)=>{let[e,t,i]=he(r,"rgb");e/=255,t/=255,i/=255;let s,n=nD(e,t,i),o=(e+t+i)/3,a=o>0?1-n/o:0;return a===0?s=NaN:(s=(e-t+(e-i))/2,s/=oD((e-t)*(e-t)+(e-i)*(t-i)),s=aD(s),i>t&&(s=kr-s),s/=kr),[s*360,a,o]},n4=lD;Y.prototype.hsi=function(){return n4(this._rgb)};var cD=(...r)=>new Y(...r,"hsi");Le.hsi=cD;Fe.format.hsi=s4;Fe.autodetect.push({p:2,test:(...r)=>{if(r=he(r,"hsi"),Ee(r)==="array"&&r.length===3)return"hsi"}});var uD=(r,e,t)=>Lr(r,e,t,"hsi");pt.hsi=uD;var hD=(...r)=>{r=he(r,"hsl");let[e,t,i]=r,s,n,o;if(t===0)s=n=o=i*255;else{let a=[0,0,0],l=[0,0,0],c=i<.5?i*(1+t):i+t-i*t,h=2*i-c,d=e/360;a[0]=d+1/3,a[1]=d,a[2]=d-1/3;for(let p=0;p<3;p++)a[p]<0&&(a[p]+=1),a[p]>1&&(a[p]-=1),6*a[p]<1?l[p]=h+(c-h)*6*a[p]:2*a[p]<1?l[p]=c:3*a[p]<2?l[p]=h+(c-h)*(2/3-a[p])*6:l[p]=h;[s,n,o]=[l[0]*255,l[1]*255,l[2]*255]}return r.length>3?[s,n,o,r[3]]:[s,n,o,1]},Al=hD;var dD=(...r)=>{r=he(r,"rgba");let[e,t,i]=r;e/=255,t/=255,i/=255;let s=Qu(e,t,i),n=Ju(e,t,i),o=(n+s)/2,a,l;return n===s?(a=0,l=Number.NaN):a=o<.5?(n-s)/(n+s):(n-s)/(2-n-s),e==n?l=(t-i)/(n-s):t==n?l=2+(i-e)/(n-s):i==n&&(l=4+(e-t)/(n-s)),l*=60,l<0&&(l+=360),r.length>3&&r[3]!==void 0?[l,a,o,r[3]]:[l,a,o]},ah=dD;Y.prototype.hsl=function(){return ah(this._rgb)};var pD=(...r)=>new Y(...r,"hsl");Le.hsl=pD;Fe.format.hsl=Al;Fe.autodetect.push({p:2,test:(...r)=>{if(r=he(r,"hsl"),Ee(r)==="array"&&r.length===3)return"hsl"}});var fD=(r,e,t)=>Lr(r,e,t,"hsl");pt.hsl=fD;var{floor:gD}=Math,mD=(...r)=>{r=he(r,"hsv");let[e,t,i]=r,s,n,o;if(i*=255,t===0)s=n=o=i;else{e===360&&(e=0),e>360&&(e-=360),e<0&&(e+=360),e/=60;let a=gD(e),l=e-a,c=i*(1-t),h=i*(1-t*l),d=i*(1-t*(1-l));switch(a){case 0:[s,n,o]=[i,d,c];break;case 1:[s,n,o]=[h,i,c];break;case 2:[s,n,o]=[c,i,d];break;case 3:[s,n,o]=[c,h,i];break;case 4:[s,n,o]=[d,c,i];break;case 5:[s,n,o]=[i,c,h];break}}return[s,n,o,r.length>3?r[3]:1]},o4=mD;var{min:yD,max:vD}=Math,xD=(...r)=>{r=he(r,"rgb");let[e,t,i]=r,s=yD(e,t,i),n=vD(e,t,i),o=n-s,a,l,c;return c=n/255,n===0?(a=Number.NaN,l=0):(l=o/n,e===n&&(a=(t-i)/o),t===n&&(a=2+(i-e)/o),i===n&&(a=4+(e-t)/o),a*=60,a<0&&(a+=360)),[a,l,c]},a4=xD;Y.prototype.hsv=function(){return a4(this._rgb)};var DD=(...r)=>new Y(...r,"hsv");Le.hsv=DD;Fe.format.hsv=o4;Fe.autodetect.push({p:2,test:(...r)=>{if(r=he(r,"hsv"),Ee(r)==="array"&&r.length===3)return"hsv"}});var bD=(r,e,t)=>Lr(r,e,t,"hsv");pt.hsv=bD;function On(r,e){let t=r.length;Array.isArray(r[0])||(r=[r]),Array.isArray(e[0])||(e=e.map(o=>[o]));let i=e[0].length,s=e[0].map((o,a)=>e.map(l=>l[a])),n=r.map(o=>s.map(a=>Array.isArray(o)?o.reduce((l,c,h)=>l+c*(a[h]||0),0):a.reduce((l,c)=>l+c*o,0)));return t===1&&(n=n[0]),i===1?n.map(o=>o[0]):n}var ED=(...r)=>{r=he(r,"lab");let[e,t,i,...s]=r,[n,o,a]=SD([e,t,i]),[l,c,h]=up(n,o,a);return[l,c,h,...s.length>0&&s[0]<1?[s[0]]:[]]};function SD(r){var e=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],t=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],i=On(t,r);return On(e,i.map(s=>s**3))}var Go=ED;var CD=(...r)=>{let[e,t,i,...s]=he(r,"rgb"),n=dp(e,t,i);return[...wD(n),...s.length>0&&s[0]<1?[s[0]]:[]]};function wD(r){let e=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],t=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],i=On(e,r);return On(t,i.map(s=>Math.cbrt(s)))}var Uo=CD;Y.prototype.oklab=function(){return Uo(this._rgb)};var TD=(...r)=>new Y(...r,"oklab");Object.assign(Le,{oklab:TD});Fe.format.oklab=Go;Fe.autodetect.push({p:2,test:(...r)=>{if(r=he(r,"oklab"),Ee(r)==="array"&&r.length===3)return"oklab"}});var _D=(r,e,t)=>{let i=r.oklab(),s=e.oklab();return new Y(i[0]+t*(s[0]-i[0]),i[1]+t*(s[1]-i[1]),i[2]+t*(s[2]-i[2]),"oklab")};pt.oklab=_D;var FD=(r,e,t)=>Lr(r,e,t,"oklch");pt.oklch=FD;var{pow:gp,sqrt:mp,PI:yp,cos:l4,sin:c4,atan2:AD}=Math,u4=(r,e="lrgb",t=null)=>{let i=r.length;t||(t=Array.from(new Array(i)).map(()=>1));let s=i/t.reduce(function(d,p){return d+p});if(t.forEach((d,p)=>{t[p]*=s}),r=r.map(d=>new Y(d)),e==="lrgb")return kD(r,t);let n=r.shift(),o=n.get(e),a=[],l=0,c=0;for(let d=0;d{let g=d.get(e);h+=d.alpha()*t[p+1];for(let v=0;v=360;)p-=360;o[d]=p}else o[d]=o[d]/a[d];return h/=i,new Y(o,e).alpha(h>.99999?1:h,!0)},kD=(r,e)=>{let t=r.length,i=[0,0,0,0];for(let s=0;s.9999999&&(i[3]=1),new Y(Rn(i))};var{pow:ID}=Math;function Gn(r){let e="rgb",t=Le("#ccc"),i=0,s=[0,1],n=[],o=[0,0],a=!1,l=[],c=!1,h=0,d=1,p=!1,g={},v=!0,C=1,w=function(I){if(I=I||["#fff","#000"],I&&Ee(I)==="string"&&Le.brewer&&Le.brewer[I.toLowerCase()]&&(I=Le.brewer[I.toLowerCase()]),Ee(I)==="array"){I.length===1&&(I=[I[0],I[0]]),I=I.slice(0);for(let R=0;R=a[z];)z++;return z-1}return 0},B=I=>I,L=I=>I,T=function(I,R){let z,U;if(R==null&&(R=!1),isNaN(I)||I===null)return t;R?U=I:a&&a.length>2?U=k(I)/(a.length-2):d!==h?U=(I-h)/(d-h):U=1,U=L(U),R||(U=B(U)),C!==1&&(U=ID(U,C)),U=o[0]+U*(1-o[0]-o[1]),U=Ar(U,0,1);let q=Math.floor(U*1e4);if(v&&g[q])z=g[q];else{if(Ee(l)==="array")for(let re=0;re=$&&re===n.length-1){z=l[re];break}if(U>$&&Ug={};w(r);let j=function(I){let R=Le(T(I));return c&&R[c]?R[c]():R};return j.classes=function(I){if(I!=null){if(Ee(I)==="array")a=I,s=[I[0],I[I.length-1]];else{let R=Le.analyze(s);I===0?a=[R.min,R.max]:a=Le.limits(R,"e",I)}return j}return a},j.domain=function(I){if(!arguments.length)return s;h=I[0],d=I[I.length-1],n=[];let R=l.length;if(I.length===R&&h!==d)for(let z of Array.from(I))n.push((z-h)/(d-h));else{for(let z=0;z2){let z=I.map((q,re)=>re/(I.length-1)),U=I.map(q=>(q-h)/(d-h));U.every((q,re)=>z[re]===q)||(L=q=>{if(q<=0||q>=1)return q;let re=0;for(;q>=U[re+1];)re++;let $=(q-U[re])/(U[re+1]-U[re]);return z[re]+$*(z[re+1]-z[re])})}}return s=[h,d],j},j.mode=function(I){return arguments.length?(e=I,W(),j):e},j.range=function(I,R){return w(I,R),j},j.out=function(I){return c=I,j},j.spread=function(I){return arguments.length?(i=I,j):i},j.correctLightness=function(I){return I==null&&(I=!0),p=I,W(),p?B=function(R){let z=T(0,!0).lab()[0],U=T(1,!0).lab()[0],q=z>U,re=T(R,!0).lab()[0],$=z+(U-z)*R,Q=re-$,Te=0,ye=1,xe=20;for(;Math.abs(Q)>.01&&xe-- >0;)(function(){return q&&(Q*=-1),Q<0?(Te=R,R+=(ye-R)*.5):(ye=R,R+=(Te-R)*.5),re=T(R,!0).lab()[0],Q=re-$})();return R}:B=R=>R,j},j.padding=function(I){return I!=null?(Ee(I)==="number"&&(I=[I,I]),o=I,j):o},j.colors=function(I,R){arguments.length<2&&(R="hex");let z=[];if(arguments.length===0)z=l.slice(0);else if(I===1)z=[j(.5)];else if(I>1){let U=s[0],q=s[1]-U;z=LD(0,I,!1).map(re=>j(U+re/(I-1)*q))}else{r=[];let U=[];if(a&&a.length>2)for(let q=1,re=a.length,$=1<=re;$?qre;$?q++:q--)U.push((a[q-1]+a[q])*.5);else U=s;z=U.map(q=>j(q))}return Le[R]&&(z=z.map(U=>U[R]())),z},j.cache=function(I){return I!=null?(v=I,j):v},j.gamma=function(I){return I!=null?(C=I,j):C},j.nodata=function(I){return I!=null?(t=Le(I),j):t},j}function LD(r,e,t){let i=[],s=rn;s?o++:o--)i.push(o);return i}var MD=function(r){let e=[1,1];for(let t=1;tnew Y(n)),r.length===2)[t,i]=r.map(n=>n.lab()),e=function(n){let o=[0,1,2].map(a=>t[a]+n*(i[a]-t[a]));return new Y(o,"lab")};else if(r.length===3)[t,i,s]=r.map(n=>n.lab()),e=function(n){let o=[0,1,2].map(a=>(1-n)*(1-n)*t[a]+2*(1-n)*n*i[a]+n*n*s[a]);return new Y(o,"lab")};else if(r.length===4){let n;[t,i,s,n]=r.map(o=>o.lab()),e=function(o){let a=[0,1,2].map(l=>(1-o)*(1-o)*(1-o)*t[l]+3*(1-o)*(1-o)*o*i[l]+3*(1-o)*o*o*s[l]+o*o*o*n[l]);return new Y(a,"lab")}}else if(r.length>=5){let n,o,a;n=r.map(l=>l.lab()),a=r.length-1,o=MD(a),e=function(l){let c=1-l,h=[0,1,2].map(d=>n.reduce((p,g,v)=>p+o[v]*c**(a-v)*l**v*g[d],0));return new Y(h,"lab")}}else throw new RangeError("No point in running bezier with only one color.");return e},h4=r=>{let e=ND(r);return e.scale=()=>Gn(e),e};var{round:d4}=Math;Y.prototype.rgb=function(r=!0){return r===!1?this._rgb.slice(0,3):this._rgb.slice(0,3).map(d4)};Y.prototype.rgba=function(r=!0){return this._rgb.slice(0,4).map((e,t)=>t<3?r===!1?e:d4(e):e)};var PD=(...r)=>new Y(...r,"rgb");Object.assign(Le,{rgb:PD});Fe.format.rgb=(...r)=>{let e=he(r,"rgba");return e[3]===void 0&&(e[3]=1),e};Fe.autodetect.push({p:3,test:(...r)=>{if(r=he(r,"rgba"),Ee(r)==="array"&&(r.length===3||r.length===4&&Ee(r[3])=="number"&&r[3]>=0&&r[3]<=1))return"rgb"}});var ri=(r,e,t)=>{if(!ri[t])throw new Error("unknown blend mode "+t);return ri[t](r,e)},Us=r=>(e,t)=>{let i=Le(t).rgb(),s=Le(e).rgb();return Le.rgb(r(i,s))},Vs=r=>(e,t)=>{let i=[];return i[0]=r(e[0],t[0]),i[1]=r(e[1],t[1]),i[2]=r(e[2],t[2]),i},BD=r=>r,RD=(r,e)=>r*e/255,OD=(r,e)=>r>e?e:r,GD=(r,e)=>r>e?r:e,UD=(r,e)=>255*(1-(1-r/255)*(1-e/255)),VD=(r,e)=>e<128?2*r*e/255:255*(1-2*(1-r/255)*(1-e/255)),zD=(r,e)=>255*(1-(1-e/255)/(r/255)),WD=(r,e)=>r===255?255:(r=255*(e/255)/(1-r/255),r>255?255:r);ri.normal=Us(Vs(BD));ri.multiply=Us(Vs(RD));ri.screen=Us(Vs(UD));ri.overlay=Us(Vs(VD));ri.darken=Us(Vs(OD));ri.lighten=Us(Vs(GD));ri.dodge=Us(Vs(WD));ri.burn=Us(Vs(zD));var p4=ri;var{pow:HD,sin:jD,cos:$D}=Math;function f4(r=300,e=-1.5,t=1,i=1,s=[0,1]){let n=0,o;Ee(s)==="array"?o=s[1]-s[0]:(o=0,s=[s,s]);let a=function(l){let c=kr*((r+120)/360+e*l),h=HD(s[0]+o*l,i),p=(n!==0?t[0]+l*n:t)*h*(1-h)/2,g=$D(c),v=jD(c),C=h+p*(-.14861*g+1.78277*v),w=h+p*(-.29227*g-.90649*v),k=h+p*(1.97294*g);return Le(Rn([C*255,w*255,k*255,1]))};return a.start=function(l){return l==null?r:(r=l,a)},a.rotations=function(l){return l==null?e:(e=l,a)},a.gamma=function(l){return l==null?i:(i=l,a)},a.hue=function(l){return l==null?t:(t=l,Ee(t)==="array"?(n=t[1]-t[0],n===0&&(t=t[1])):n=0,a)},a.lightness=function(l){return l==null?s:(Ee(l)==="array"?(s=l,o=l[1]-l[0]):(s=[l,l],o=0),a)},a.scale=()=>Le.scale(a),a.hue(t),a}var qD="0123456789abcdef",{floor:YD,random:XD}=Math,g4=()=>{let r="#";for(let e=0;e<6;e++)r+=qD.charAt(YD(XD()*16));return new Y(r,"hex")};var{log:m4,pow:KD,floor:ZD,abs:QD}=Math;function vp(r,e=null){let t={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0};return Ee(r)==="object"&&(r=Object.values(r)),r.forEach(i=>{e&&Ee(i)==="object"&&(i=i[e]),i!=null&&!isNaN(i)&&(t.values.push(i),t.sum+=i,it.max&&(t.max=i),t.count+=1)}),t.domain=[t.min,t.max],t.limits=(i,s)=>xp(t,i,s),t}function xp(r,e="equal",t=7){Ee(r)=="array"&&(r=vp(r));let{min:i,max:s}=r,n=r.values.sort((a,l)=>a-l);if(t===1)return[i,s];let o=[];if(e.substr(0,1)==="c"&&(o.push(i),o.push(s)),e.substr(0,1)==="e"){o.push(i);for(let a=1;a 0");let a=Math.LOG10E*m4(i),l=Math.LOG10E*m4(s);o.push(i);for(let c=1;c200&&(d=!1)}let v={};for(let w=0;ww-k),o.push(C[0]);for(let w=1;w{r=new Y(r),e=new Y(e);let t=r.luminance(),i=e.luminance();return t>i?(t+.05)/(i+.05):(i+.05)/(t+.05)};var v4=.027,JD=5e-4,eb=.1,x4=1.14,lh=.022,D4=1.414,E4=(r,e)=>{r=new Y(r),e=new Y(e),r.alpha()<1&&(r=wi(e,r,r.alpha(),"rgb"));let t=b4(...r.rgb()),i=b4(...e.rgb()),s=t>=lh?t:t+Math.pow(lh-t,D4),n=i>=lh?i:i+Math.pow(lh-i,D4),o=Math.pow(n,.56)-Math.pow(s,.57),a=Math.pow(n,.65)-Math.pow(s,.62),l=Math.abs(n-s)0?l-v4:l+v4)*100};function b4(r,e,t){return .2126729*Math.pow(r/255,2.4)+.7151522*Math.pow(e/255,2.4)+.072175*Math.pow(t/255,2.4)}var{sqrt:ss,pow:Xt,min:tb,max:rb,atan2:S4,abs:C4,cos:ch,sin:w4,exp:ib,PI:T4}=Math;function _4(r,e,t=1,i=1,s=1){var n=function(gt){return 360*gt/(2*T4)},o=function(gt){return 2*T4*gt/360};r=new Y(r),e=new Y(e);let[a,l,c]=Array.from(r.lab()),[h,d,p]=Array.from(e.lab()),g=(a+h)/2,v=ss(Xt(l,2)+Xt(c,2)),C=ss(Xt(d,2)+Xt(p,2)),w=(v+C)/2,k=.5*(1-ss(Xt(w,7)/(Xt(w,7)+Xt(25,7)))),B=l*(1+k),L=d*(1+k),T=ss(Xt(B,2)+Xt(c,2)),W=ss(Xt(L,2)+Xt(p,2)),j=(T+W)/2,I=n(S4(c,B)),R=n(S4(p,L)),z=I>=0?I:I+360,U=R>=0?R:R+360,q=C4(z-U)>180?(z+U+360)/2:(z+U)/2,re=1-.17*ch(o(q-30))+.24*ch(o(2*q))+.32*ch(o(3*q+6))-.2*ch(o(4*q-63)),$=U-z;$=C4($)<=180?$:U<=z?$+360:$-360,$=2*ss(T*W)*w4(o($)/2);let Q=h-a,Te=W-T,ye=1+.015*Xt(g-50,2)/ss(20+Xt(g-50,2)),xe=1+.045*j,De=1+.015*j*re,_e=30*ib(-Xt((q-275)/25,2)),rt=-(2*ss(Xt(j,7)/(Xt(j,7)+Xt(25,7))))*w4(2*o(_e)),et=ss(Xt(Q/(t*ye),2)+Xt(Te/(i*xe),2)+Xt($/(s*De),2)+rt*(Te/(i*xe))*($/(s*De)));return rb(0,tb(100,et))}function F4(r,e,t="lab"){r=new Y(r),e=new Y(e);let i=r.get(t),s=e.get(t),n=0;for(let o in i){let a=(i[o]||0)-(s[o]||0);n+=a*a}return Math.sqrt(n)}var A4=(...r)=>{try{return new Y(...r),!0}catch{return!1}};var k4={cool(){return Gn([Le.hsl(180,1,.9),Le.hsl(250,.7,.4)])},hot(){return Gn(["#000","#f00","#ff0","#fff"],[0,.25,.75,1]).mode("rgb")}};var Dp={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},L4=Object.keys(Dp),I4=new Map(L4.map(r=>[r.toLowerCase(),r])),sb=typeof Proxy=="function"?new Proxy(Dp,{get(r,e){let t=e.toLowerCase();if(I4.has(t))return r[I4.get(t)]},getOwnPropertyNames(){return Object.getOwnPropertyNames(L4)}}):Dp,M4=sb;var nb=(...r)=>{r=he(r,"cmyk");let[e,t,i,s]=r,n=r.length>4?r[4]:1;return s===1?[0,0,0,n]:[e>=1?0:255*(1-e)*(1-s),t>=1?0:255*(1-t)*(1-s),i>=1?0:255*(1-i)*(1-s),n]},N4=nb;var{max:P4}=Math,ob=(...r)=>{let[e,t,i]=he(r,"rgb");e=e/255,t=t/255,i=i/255;let s=1-P4(e,P4(t,i)),n=s<1?1/(1-s):0,o=(1-e-s)*n,a=(1-t-s)*n,l=(1-i-s)*n;return[o,a,l,s]},B4=ob;Y.prototype.cmyk=function(){return B4(this._rgb)};var ab=(...r)=>new Y(...r,"cmyk");Object.assign(Le,{cmyk:ab});Fe.format.cmyk=N4;Fe.autodetect.push({p:2,test:(...r)=>{if(r=he(r,"cmyk"),Ee(r)==="array"&&r.length===4)return"cmyk"}});var lb=(...r)=>{let e=he(r,"hsla"),t=ur(r)||"lsa";return e[0]=v0(e[0]||0)+"deg",e[1]=v0(e[1]*100)+"%",e[2]=v0(e[2]*100)+"%",t==="hsla"||e.length>3&&e[3]<1?(e[3]="/ "+(e.length>3?e[3]:1),t="hsla"):e.length=3,`${t.substr(0,3)}(${e.join(" ")})`},R4=lb;var cb=(...r)=>{let e=he(r,"lab"),t=ur(r)||"lab";return e[0]=v0(e[0])+"%",e[1]=v0(e[1]),e[2]=v0(e[2]),t==="laba"||e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`lab(${e.join(" ")})`},O4=cb;var ub=(...r)=>{let e=he(r,"lch"),t=ur(r)||"lab";return e[0]=v0(e[0])+"%",e[1]=v0(e[1]),e[2]=isNaN(e[2])?"none":v0(e[2])+"deg",t==="lcha"||e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`lch(${e.join(" ")})`},G4=ub;var hb=(...r)=>{let e=he(r,"lab");return e[0]=v0(e[0]*100)+"%",e[1]=Tl(e[1]),e[2]=Tl(e[2]),e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`oklab(${e.join(" ")})`},U4=hb;var db=(...r)=>{let[e,t,i,...s]=he(r,"rgb"),[n,o,a]=Uo(e,t,i),[l,c,h]=oh(n,o,a);return[l,c,h,...s.length>0&&s[0]<1?[s[0]]:[]]},uh=db;var pb=(...r)=>{let e=he(r,"lch");return e[0]=v0(e[0]*100)+"%",e[1]=Tl(e[1]),e[2]=isNaN(e[2])?"none":v0(e[2])+"deg",e.length>3&&e[3]<1?e[3]="/ "+(e.length>3?e[3]:1):e.length=3,`oklch(${e.join(" ")})`},V4=pb;var{round:bp}=Math,fb=(...r)=>{let e=he(r,"rgba"),t=ur(r)||"rgb";if(t.substr(0,3)==="hsl")return R4(ah(e),t);if(t.substr(0,3)==="lab"){let i=Gs();Ir("d50");let s=O4(Po(e),t);return Ir(i),s}if(t.substr(0,3)==="lch"){let i=Gs();Ir("d50");let s=G4(Fl(e),t);return Ir(i),s}return t.substr(0,5)==="oklab"?U4(Uo(e)):t.substr(0,5)==="oklch"?V4(uh(e)):(e[0]=bp(e[0]),e[1]=bp(e[1]),e[2]=bp(e[2]),(t==="rgba"||e.length>3&&e[3]<1)&&(e[3]="/ "+(e.length>3?e[3]:1),t="rgba"),`${t.substr(0,3)}(${e.slice(0,t==="rgb"?3:4).join(" ")})`)},z4=fb;var gb=(...r)=>{r=he(r,"lch");let[e,t,i,...s]=r,[n,o,a]=nh(e,t,i),[l,c,h]=Go(n,o,a);return[l,c,h,...s.length>0&&s[0]<1?[s[0]]:[]]},hh=gb;var ns=/((?:-?\d+)|(?:-?\d+(?:\.\d+)?)%|none)/.source,ii=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%?)|none)/.source,dh=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%)|none)/.source,Mr=/\s*/.source,zo=/\s+/.source,Ep=/\s*,\s*/.source,ph=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)(?:deg)?)|none)/.source,Wo=/\s*(?:\/\s*((?:[01]|[01]?\.\d+)|\d+(?:\.\d+)?%))?/.source,W4=new RegExp("^rgba?\\("+Mr+[ns,ns,ns].join(zo)+Wo+"\\)$"),H4=new RegExp("^rgb\\("+Mr+[ns,ns,ns].join(Ep)+Mr+"\\)$"),j4=new RegExp("^rgba\\("+Mr+[ns,ns,ns,ii].join(Ep)+Mr+"\\)$"),$4=new RegExp("^hsla?\\("+Mr+[ph,dh,dh].join(zo)+Wo+"\\)$"),q4=new RegExp("^hsl?\\("+Mr+[ph,dh,dh].join(Ep)+Mr+"\\)$"),Y4=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,X4=new RegExp("^lab\\("+Mr+[ii,ii,ii].join(zo)+Wo+"\\)$"),K4=new RegExp("^lch\\("+Mr+[ii,ii,ph].join(zo)+Wo+"\\)$"),Z4=new RegExp("^oklab\\("+Mr+[ii,ii,ii].join(zo)+Wo+"\\)$"),Q4=new RegExp("^oklch\\("+Mr+[ii,ii,ph].join(zo)+Wo+"\\)$"),{round:J4}=Math,Vo=r=>r.map((e,t)=>t<=2?Ar(J4(e),0,255):e),Kt=(r,e=0,t=100,i=!1)=>(typeof r=="string"&&r.endsWith("%")&&(r=parseFloat(r.substring(0,r.length-1))/100,i?r=e+(r+1)*.5*(t-e):r=e+r*(t-e)),+r),P0=(r,e)=>r==="none"?e:r,e7=r=>{if(r=r.toLowerCase().trim(),r==="transparent")return[0,0,0,0];let e;if(Fe.format.named)try{return Fe.format.named(r)}catch{}if((e=r.match(W4))||(e=r.match(H4))){let t=e.slice(1,4);for(let s=0;s<3;s++)t[s]=+Kt(P0(t[s],0),0,255);t=Vo(t);let i=e[4]!==void 0?+Kt(e[4],0,1):1;return t[3]=i,t}if(e=r.match(j4)){let t=e.slice(1,5);for(let i=0;i<4;i++)t[i]=+Kt(t[i],0,255);return t}if((e=r.match($4))||(e=r.match(q4))){let t=e.slice(1,4);t[0]=+P0(t[0].replace("deg",""),0),t[1]=+Kt(P0(t[1],0),0,100)*.01,t[2]=+Kt(P0(t[2],0),0,100)*.01;let i=Vo(Al(t)),s=e[4]!==void 0?+Kt(e[4],0,1):1;return i[3]=s,i}if(e=r.match(Y4)){let t=e.slice(1,4);t[1]*=.01,t[2]*=.01;let i=Al(t);for(let s=0;s<3;s++)i[s]=J4(i[s]);return i[3]=+e[4],i}if(e=r.match(X4)){let t=e.slice(1,4);t[0]=Kt(P0(t[0],0),0,100),t[1]=Kt(P0(t[1],0),-125,125,!0),t[2]=Kt(P0(t[2],0),-125,125,!0);let i=Gs();Ir("d50");let s=Vo(No(t));Ir(i);let n=e[4]!==void 0?+Kt(e[4],0,1):1;return s[3]=n,s}if(e=r.match(K4)){let t=e.slice(1,4);t[0]=Kt(t[0],0,100),t[1]=Kt(P0(t[1],0),0,150,!1),t[2]=+P0(t[2].replace("deg",""),0);let i=Gs();Ir("d50");let s=Vo(Bo(t));Ir(i);let n=e[4]!==void 0?+Kt(e[4],0,1):1;return s[3]=n,s}if(e=r.match(Z4)){let t=e.slice(1,4);t[0]=Kt(P0(t[0],0),0,1),t[1]=Kt(P0(t[1],0),-.4,.4,!0),t[2]=Kt(P0(t[2],0),-.4,.4,!0);let i=Vo(Go(t)),s=e[4]!==void 0?+Kt(e[4],0,1):1;return i[3]=s,i}if(e=r.match(Q4)){let t=e.slice(1,4);t[0]=Kt(P0(t[0],0),0,1),t[1]=Kt(P0(t[1],0),0,.4,!1),t[2]=+P0(t[2].replace("deg",""),0);let i=Vo(hh(t)),s=e[4]!==void 0?+Kt(e[4],0,1):1;return i[3]=s,i}};e7.test=r=>W4.test(r)||$4.test(r)||X4.test(r)||K4.test(r)||Z4.test(r)||Q4.test(r)||H4.test(r)||j4.test(r)||q4.test(r)||Y4.test(r)||r==="transparent";var Sp=e7;Y.prototype.css=function(r){return z4(this._rgb,r)};var mb=(...r)=>new Y(...r,"css");Le.css=mb;Fe.format.css=Sp;Fe.autodetect.push({p:5,test:(r,...e)=>{if(!e.length&&Ee(r)==="string"&&Sp.test(r))return"css"}});Fe.format.gl=(...r)=>{let e=he(r,"rgba");return e[0]*=255,e[1]*=255,e[2]*=255,e};var yb=(...r)=>new Y(...r,"gl");Le.gl=yb;Y.prototype.gl=function(){let r=this._rgb;return[r[0]/255,r[1]/255,r[2]/255,r[3]]};Y.prototype.hex=function(r){return sh(this._rgb,r)};var vb=(...r)=>new Y(...r,"hex");Le.hex=vb;Fe.format.hex=rh;Fe.autodetect.push({p:4,test:(r,...e)=>{if(!e.length&&Ee(r)==="string"&&[3,4,5,6,7,8,9].indexOf(r.length)>=0)return"hex"}});var{log:fh}=Math,xb=r=>{let e=r/100,t,i,s;return e<66?(t=255,i=e<6?0:-155.25485562709179-.44596950469579133*(i=e-2)+104.49216199393888*fh(i),s=e<20?0:-254.76935184120902+.8274096064007395*(s=e-10)+115.67994401066147*fh(s)):(t=351.97690566805693+.114206453784165*(t=e-55)-40.25366309332127*fh(t),i=325.4494125711974+.07943456536662342*(i=e-50)-28.0852963507957*fh(i),s=255),[t,i,s,1]},gh=xb;var{round:Db}=Math,bb=(...r)=>{let e=he(r,"rgb"),t=e[0],i=e[2],s=1e3,n=4e4,o=.4,a;for(;n-s>o;){a=(n+s)*.5;let l=gh(a);l[2]/l[0]>=i/t?n=a:s=a}return Db(a)},t7=bb;Y.prototype.temp=Y.prototype.kelvin=Y.prototype.temperature=function(){return t7(this._rgb)};var Cp=(...r)=>new Y(...r,"temp");Object.assign(Le,{temp:Cp,kelvin:Cp,temperature:Cp});Fe.format.temp=Fe.format.kelvin=Fe.format.temperature=gh;Y.prototype.oklch=function(){return uh(this._rgb)};var Eb=(...r)=>new Y(...r,"oklch");Object.assign(Le,{oklch:Eb});Fe.format.oklch=hh;Fe.autodetect.push({p:2,test:(...r)=>{if(r=he(r,"oklch"),Ee(r)==="array"&&r.length===3)return"oklch"}});Object.assign(Le,{analyze:vp,average:u4,bezier:h4,blend:p4,brewer:M4,Color:Y,colors:Os,contrast:y4,contrastAPCA:E4,cubehelix:f4,deltaE:_4,distance:F4,input:Fe,interpolate:wi,limits:xp,mix:wi,random:g4,scale:Gn,scales:k4,valid:A4});var mh=Le;function wp(r,e){return r>>e&255}var r7=16,i7=8,s7=0;function os(r,e,t){return(r<e.toString(16).padStart(2,"0"));function as(r,e){return e===void 0?"#"+Un[$0(r)]+Un[q0(r)]+Un[Y0(r)]:"#"+Un[$0(r)]+Un[q0(r)]+Un[Y0(r)]+Un[Math.round(e*255)]}function Ti(r){let e=0,t=0,i=0,s=255;switch(r.length){case 4:{e=(Zt(r.charCodeAt(1))<<4)+Zt(r.charCodeAt(1)),t=(Zt(r.charCodeAt(2))<<4)+Zt(r.charCodeAt(2)),i=(Zt(r.charCodeAt(3))<<4)+Zt(r.charCodeAt(3));break}case 7:{e=(Zt(r.charCodeAt(1))<<4)+Zt(r.charCodeAt(2)),t=(Zt(r.charCodeAt(3))<<4)+Zt(r.charCodeAt(4)),i=(Zt(r.charCodeAt(5))<<4)+Zt(r.charCodeAt(6));break}case 9:{e=(Zt(r.charCodeAt(1))<<4)+Zt(r.charCodeAt(2)),t=(Zt(r.charCodeAt(3))<<4)+Zt(r.charCodeAt(4)),i=(Zt(r.charCodeAt(5))<<4)+Zt(r.charCodeAt(6)),s=(Zt(r.charCodeAt(7))<<4)+Zt(r.charCodeAt(8));break}default:break}return{rgb:os(e,t,i),a:s}}function Zt(r){return(r&15)+9*(r>>6)}function si(r){try{let e=mh(r);return{rgb:e.num(),a:e.alpha()}}catch(e){let t=document.createElement("canvas"),i=t.getContext("2d");if(!i)throw e;t.width=1,t.height=1,i.fillStyle=r,i.fillRect(0,0,t.width,t.height);let s=i.getImageData(0,0,1,1).data;return{rgb:os(s[0],s[1],s[2]),a:s[3]/255}}}function n7(r,e){return os(Math.clamp($0(r)*e,0,255),Math.clamp(q0(r)*e,0,255),Math.clamp(Y0(r)*e,0,255))}function yh(r,e,t,i=1){if(t<=0)return r;if(t>=1)return e;let s=(l,c)=>Math.round((l**(1/i)*(1-t)+c**(1/i)*t)**i),n=s($0(r),$0(e)),o=s(q0(r),q0(e)),a=s(Y0(r),Y0(e));return os(n,o,a)}var vh={"Perceptually Uniform Sequential":["viridis","plasma","inferno","magma","cividis"],"Sequential colormaps":["Greys","Purples","Blues","Greens","Oranges","Reds","YlOrBr","YlOrRd","OrRd","PuRd","RdPu","BuPu","GnBu","PuBu","YlGnBu","PuBuGn","BuGn","YlGn"],"Sequential (2)":["binary","gist_yarg","gist_gray","gray","bone","pink","spring","summer","autumn","winter","cool","Wistia","hot","afmhot","gist_heat","copper"],Diverging:["PiYG","PRGn","BrBG","PuOr","RdGy","RdBu","RdYlBu","RdYlGn","Spectral","coolwarm","bwr","seismic"],Cyclic:["twilight","twilight_shifted","hsv"],Miscellaneous:["ocean","gist_earth","terrain","gist_stern","gnuplot","gnuplot2","CMRmap","cubehelix","brg","gist_rainbow","rainbow","jet","turbo","nipy_spectral","gist_ncar"]},ce={};ce.Accent={interpolate:!1,colors:[[.498,.7882,.498],[.7451,.6824,.8314],[.9922,.7529,.5255],[1,1,.6],[.2196,.4235,.6902],[.9412,.0078,.498],[.749,.3569,.0902],[.4,.4,.4]]};ce.Blues={interpolate:!0,colors:[[.9686,.9843,1],[.9656,.9823,.999],[.9625,.9804,.998],[.9594,.9784,.997],[.9563,.9764,.9961],[.9532,.9745,.9951],[.9502,.9725,.9941],[.9471,.9705,.9931],[.944,.9686,.9921],[.9409,.9666,.9911],[.9379,.9646,.9902],[.9348,.9627,.9892],[.9317,.9607,.9882],[.9286,.9587,.9872],[.9256,.9568,.9862],[.9225,.9548,.9852],[.9194,.9528,.9843],[.9163,.9508,.9833],[.9133,.9489,.9823],[.9102,.9469,.9813],[.9071,.9449,.9803],[.904,.943,.9793],[.901,.941,.9783],[.8979,.939,.9774],[.8948,.9371,.9764],[.8917,.9351,.9754],[.8887,.9331,.9744],[.8856,.9312,.9734],[.8825,.9292,.9724],[.8794,.9272,.9715],[.8764,.9253,.9705],[.8733,.9233,.9695],[.8702,.9213,.9685],[.8673,.9194,.9675],[.8643,.9174,.9665],[.8614,.9154,.9656],[.8584,.9134,.9646],[.8555,.9115,.9636],[.8525,.9095,.9626],[.8496,.9075,.9616],[.8466,.9056,.9606],[.8436,.9036,.9596],[.8407,.9016,.9587],[.8377,.8997,.9577],[.8348,.8977,.9567],[.8318,.8957,.9557],[.8289,.8938,.9547],[.8259,.8918,.9537],[.823,.8898,.9528],[.82,.8879,.9518],[.8171,.8859,.9508],[.8141,.8839,.9498],[.8112,.882,.9488],[.8082,.88,.9478],[.8053,.878,.9469],[.8023,.876,.9459],[.7994,.8741,.9449],[.7964,.8721,.9439],[.7934,.8701,.9429],[.7905,.8682,.9419],[.7875,.8662,.9409],[.7846,.8642,.94],[.7816,.8623,.939],[.7787,.8603,.938],[.7752,.8583,.9368],[.7703,.8562,.9351],[.7654,.8541,.9334],[.7605,.852,.9317],[.7556,.8499,.9299],[.7506,.8478,.9282],[.7457,.8458,.9265],[.7408,.8437,.9248],[.7359,.8416,.923],[.7309,.8395,.9213],[.726,.8374,.9196],[.7211,.8353,.9179],[.7162,.8332,.9162],[.7113,.8311,.9144],[.7063,.829,.9127],[.7014,.8269,.911],[.6965,.8248,.9093],[.6916,.8227,.9075],[.6867,.8207,.9058],[.6817,.8186,.9041],[.6768,.8165,.9024],[.6719,.8144,.9007],[.667,.8123,.8989],[.6621,.8102,.8972],[.6571,.8081,.8955],[.6522,.806,.8938],[.6473,.8039,.892],[.6424,.8018,.8903],[.6374,.7997,.8886],[.6325,.7976,.8869],[.6276,.7956,.8852],[.6227,.7935,.8834],[.6173,.7909,.8818],[.611,.7874,.8805],[.6047,.784,.8791],[.5984,.7805,.8778],[.5922,.7771,.8764],[.5859,.7736,.8751],[.5796,.7702,.8737],[.5733,.7668,.8724],[.5671,.7633,.871],[.5608,.7599,.8697],[.5545,.7564,.8683],[.5482,.753,.867],[.542,.7495,.8656],[.5357,.7461,.8643],[.5294,.7426,.8629],[.5231,.7392,.8615],[.5169,.7357,.8602],[.5106,.7323,.8588],[.5043,.7289,.8575],[.498,.7254,.8561],[.4918,.722,.8548],[.4855,.7185,.8534],[.4792,.7151,.8521],[.4729,.7116,.8507],[.4667,.7082,.8494],[.4604,.7047,.848],[.4541,.7013,.8467],[.4478,.6979,.8453],[.4416,.6944,.844],[.4353,.691,.8426],[.429,.6875,.8412],[.4227,.6841,.8399],[.4171,.6806,.8382],[.412,.6772,.8363],[.407,.6737,.8343],[.402,.6703,.8323],[.3969,.6669,.8304],[.3919,.6634,.8284],[.3868,.66,.8264],[.3818,.6565,.8245],[.3767,.6531,.8225],[.3717,.6496,.8205],[.3666,.6462,.8185],[.3616,.6427,.8166],[.3566,.6393,.8146],[.3515,.6358,.8126],[.3465,.6324,.8107],[.3414,.629,.8087],[.3364,.6255,.8067],[.3313,.6221,.8048],[.3263,.6186,.8028],[.3212,.6152,.8008],[.3162,.6117,.7989],[.3112,.6083,.7969],[.3061,.6048,.7949],[.3011,.6014,.793],[.296,.598,.791],[.291,.5945,.789],[.2859,.5911,.7871],[.2809,.5876,.7851],[.2758,.5842,.7831],[.2708,.5807,.7811],[.2658,.5773,.7792],[.2607,.5738,.7772],[.2563,.57,.7752],[.2522,.566,.7731],[.2482,.5619,.771],[.2441,.5578,.7689],[.24,.5538,.7668],[.236,.5497,.7647],[.2319,.5457,.7626],[.2279,.5416,.7605],[.2238,.5375,.7584],[.2197,.5335,.7563],[.2157,.5294,.7542],[.2116,.5254,.7522],[.2076,.5213,.7501],[.2035,.5172,.748],[.1994,.5132,.7459],[.1954,.5091,.7438],[.1913,.5051,.7417],[.1873,.501,.7396],[.1832,.4969,.7375],[.1791,.4929,.7354],[.1751,.4888,.7333],[.171,.4848,.7312],[.167,.4807,.7292],[.1629,.4766,.7271],[.1588,.4726,.725],[.1548,.4685,.7229],[.1507,.4645,.7208],[.1467,.4604,.7187],[.1426,.4563,.7166],[.1385,.4523,.7145],[.1345,.4482,.7124],[.1304,.4442,.7103],[.1271,.4402,.7075],[.124,.4362,.7044],[.121,.4323,.7013],[.1179,.4284,.6983],[.1148,.4244,.6952],[.1117,.4205,.6921],[.1087,.4166,.689],[.1056,.4126,.686],[.1025,.4087,.6829],[.0994,.4048,.6798],[.0963,.4008,.6767],[.0933,.3969,.6737],[.0902,.3929,.6706],[.0871,.389,.6675],[.084,.3851,.6644],[.081,.3811,.6614],[.0779,.3772,.6583],[.0748,.3733,.6552],[.0717,.3693,.6521],[.0687,.3654,.6491],[.0656,.3614,.646],[.0625,.3575,.6429],[.0594,.3536,.6398],[.0564,.3496,.6368],[.0533,.3457,.6337],[.0502,.3418,.6306],[.0471,.3378,.6275],[.0441,.3339,.6245],[.041,.33,.6214],[.0379,.326,.6183],[.0348,.3221,.6152],[.0318,.3181,.6121],[.0314,.3141,.6065],[.0314,.31,.6005],[.0314,.306,.5944],[.0314,.3019,.5884],[.0314,.2979,.5824],[.0314,.2938,.5763],[.0314,.2897,.5703],[.0314,.2857,.5643],[.0314,.2816,.5583],[.0314,.2776,.5522],[.0314,.2735,.5462],[.0314,.2694,.5402],[.0314,.2654,.5341],[.0314,.2613,.5281],[.0314,.2573,.5221],[.0314,.2532,.5161],[.0314,.2491,.51],[.0314,.2451,.504],[.0314,.241,.498],[.0314,.237,.4919],[.0314,.2329,.4859],[.0314,.2288,.4799],[.0314,.2248,.4739],[.0314,.2207,.4678],[.0314,.2167,.4618],[.0314,.2126,.4558],[.0314,.2085,.4498],[.0314,.2045,.4437],[.0314,.2004,.4377],[.0314,.1964,.4317],[.0314,.1923,.4256],[.0314,.1882,.4196]]};ce.BrBG={interpolate:!0,colors:[[.3294,.1882,.0196],[.338,.1933,.0204],[.3466,.1984,.0211],[.3552,.2035,.0219],[.3639,.2085,.0227],[.3725,.2136,.0235],[.3811,.2187,.0242],[.3897,.2238,.025],[.3983,.2288,.0258],[.4069,.2339,.0265],[.4155,.239,.0273],[.4241,.2441,.0281],[.4328,.2491,.0288],[.4414,.2542,.0296],[.45,.2593,.0304],[.4586,.2644,.0311],[.4672,.2694,.0319],[.4758,.2745,.0327],[.4844,.2796,.0334],[.493,.2847,.0342],[.5017,.2897,.035],[.5103,.2948,.0358],[.5189,.2999,.0365],[.5275,.305,.0373],[.5361,.31,.0381],[.5447,.3151,.0388],[.5529,.3213,.0419],[.5608,.3287,.0473],[.5686,.3361,.0527],[.5765,.3435,.0581],[.5843,.3509,.0634],[.5922,.3582,.0688],[.6,.3656,.0742],[.6078,.373,.0796],[.6157,.3804,.085],[.6235,.3878,.0903],[.6314,.3952,.0957],[.6392,.4025,.1011],[.6471,.4099,.1065],[.6549,.4173,.1119],[.6627,.4247,.1173],[.6706,.4321,.1226],[.6784,.4394,.128],[.6863,.4468,.1334],[.6941,.4542,.1388],[.702,.4616,.1442],[.7098,.469,.1496],[.7176,.4764,.1549],[.7255,.4837,.1603],[.7333,.4911,.1657],[.7412,.4985,.1711],[.749,.5059,.1765],[.7539,.5159,.1888],[.7589,.5259,.2011],[.7638,.5359,.2134],[.7687,.5459,.2257],[.7736,.5559,.238],[.7785,.5659,.2503],[.7835,.5759,.2626],[.7884,.5859,.2749],[.7933,.5958,.2872],[.7982,.6058,.2995],[.8032,.6158,.3118],[.8081,.6258,.3241],[.813,.6358,.3364],[.8179,.6458,.3487],[.8228,.6558,.361],[.8278,.6658,.3733],[.8327,.6758,.3856],[.8376,.6858,.3979],[.8425,.6958,.4102],[.8474,.7058,.4225],[.8524,.7158,.4348],[.8573,.7258,.4471],[.8622,.7358,.4594],[.8671,.7458,.4717],[.872,.7558,.484],[.8763,.7637,.4956],[.8798,.7696,.5063],[.8834,.7754,.5171],[.8869,.7812,.5279],[.8904,.7871,.5386],[.894,.7929,.5494],[.8975,.7988,.5602],[.901,.8046,.5709],[.9046,.8105,.5817],[.9081,.8163,.5925],[.9116,.8221,.6032],[.9152,.828,.614],[.9187,.8338,.6248],[.9223,.8397,.6355],[.9258,.8455,.6463],[.9293,.8514,.6571],[.9329,.8572,.6678],[.9364,.8631,.6786],[.9399,.8689,.6894],[.9435,.8747,.7001],[.947,.8806,.7109],[.9506,.8864,.7216],[.9541,.8923,.7324],[.9576,.8981,.7432],[.9612,.904,.7539],[.9647,.9098,.7647],[.9646,.9118,.7724],[.9644,.9138,.7801],[.9642,.9158,.7878],[.9641,.9178,.7955],[.9639,.9198,.8032],[.9638,.9218,.8108],[.9636,.9238,.8185],[.9635,.9258,.8262],[.9633,.9278,.8339],[.9632,.9298,.8416],[.963,.9318,.8493],[.9629,.9338,.857],[.9627,.9358,.8647],[.9626,.9378,.8724],[.9624,.9398,.88],[.9622,.9418,.8877],[.9621,.9438,.8954],[.9619,.9458,.9031],[.9618,.9478,.9108],[.9616,.9498,.9185],[.9615,.9518,.9262],[.9613,.9538,.9339],[.9612,.9558,.9416],[.961,.9578,.9493],[.9609,.9598,.9569],[.9572,.9599,.9596],[.9502,.9582,.9571],[.9431,.9566,.9546],[.936,.9549,.9522],[.929,.9532,.9497],[.9219,.9515,.9473],[.9148,.9498,.9448],[.9077,.9481,.9423],[.9007,.9464,.9399],[.8936,.9447,.9374],[.8865,.943,.9349],[.8794,.9413,.9325],[.8724,.9396,.93],[.8653,.9379,.9276],[.8582,.9363,.9251],[.8511,.9346,.9226],[.8441,.9329,.9202],[.837,.9312,.9177],[.8299,.9295,.9153],[.8228,.9278,.9128],[.8158,.9261,.9103],[.8087,.9244,.9079],[.8016,.9227,.9054],[.7945,.921,.903],[.7875,.9193,.9005],[.7804,.9176,.898],[.7695,.9132,.8925],[.7586,.9087,.887],[.7476,.9043,.8814],[.7367,.8998,.8759],[.7258,.8953,.8704],[.7149,.8909,.8648],[.704,.8864,.8593],[.693,.882,.8537],[.6821,.8775,.8482],[.6712,.873,.8427],[.6603,.8686,.8371],[.6494,.8641,.8316],[.6384,.8597,.8261],[.6275,.8552,.8205],[.6166,.8507,.815],[.6057,.8463,.8095],[.5948,.8418,.8039],[.5839,.8374,.7984],[.5729,.8329,.7928],[.562,.8285,.7873],[.5511,.824,.7818],[.5402,.8195,.7762],[.5293,.8151,.7707],[.5183,.8106,.7652],[.5074,.8062,.7596],[.4962,.7998,.753],[.4847,.7915,.7453],[.4731,.7832,.7376],[.4616,.7749,.73],[.4501,.7666,.7223],[.4385,.7582,.7146],[.427,.7499,.7069],[.4155,.7416,.6992],[.4039,.7333,.6915],[.3924,.725,.6838],[.3809,.7167,.6761],[.3693,.7084,.6684],[.3578,.7001,.6607],[.3463,.6918,.6531],[.3347,.6835,.6454],[.3232,.6752,.6377],[.3116,.6669,.63],[.3001,.6586,.6223],[.2886,.6503,.6146],[.277,.642,.6069],[.2655,.6337,.5992],[.254,.6254,.5915],[.2424,.6171,.5839],[.2309,.6088,.5762],[.2194,.6005,.5685],[.2078,.5922,.5608],[.1998,.5846,.5532],[.1918,.5771,.5457],[.1839,.5696,.5382],[.1759,.562,.5306],[.1679,.5545,.5231],[.1599,.5469,.5156],[.1519,.5394,.508],[.1439,.5319,.5005],[.1359,.5243,.493],[.1279,.5168,.4854],[.1199,.5093,.4779],[.1119,.5017,.4704],[.1039,.4942,.4628],[.0959,.4867,.4553],[.0879,.4791,.4478],[.0799,.4716,.4402],[.0719,.4641,.4327],[.0639,.4565,.4251],[.0559,.449,.4176],[.0479,.4414,.4101],[.0399,.4339,.4025],[.0319,.4264,.395],[.0239,.4188,.3875],[.0159,.4113,.3799],[.0079,.4038,.3724],[.0038,.3968,.3651],[.0037,.3903,.358],[.0035,.3839,.3509],[.0034,.3774,.3439],[.0032,.3709,.3368],[.0031,.3645,.3297],[.0029,.358,.3226],[.0028,.3516,.3156],[.0026,.3451,.3085],[.0025,.3386,.3014],[.0023,.3322,.2943],[.0022,.3257,.2873],[.002,.3193,.2802],[.0018,.3128,.2731],[.0017,.3063,.2661],[.0015,.2999,.259],[.0014,.2934,.2519],[.0012,.287,.2448],[.0011,.2805,.2378],[9e-4,.274,.2307],[8e-4,.2676,.2236],[6e-4,.2611,.2165],[5e-4,.2547,.2095],[3e-4,.2482,.2024],[2e-4,.2418,.1953],[0,.2353,.1882]]};ce.BuGn={interpolate:!0,colors:[[.9686,.9882,.9922],[.9664,.9874,.9917],[.9642,.9865,.9912],[.962,.9857,.9907],[.9598,.9848,.9902],[.9576,.9839,.9897],[.9553,.9831,.9892],[.9531,.9822,.9887],[.9509,.9813,.9882],[.9487,.9805,.9877],[.9465,.9796,.9872],[.9443,.9788,.9867],[.9421,.9779,.9863],[.9398,.977,.9858],[.9376,.9762,.9853],[.9354,.9753,.9848],[.9332,.9745,.9843],[.931,.9736,.9838],[.9288,.9727,.9833],[.9266,.9719,.9828],[.9243,.971,.9823],[.9221,.9701,.9818],[.9199,.9693,.9813],[.9177,.9684,.9808],[.9155,.9676,.9803],[.9133,.9667,.9799],[.911,.9658,.9794],[.9088,.965,.9789],[.9066,.9641,.9784],[.9044,.9633,.9779],[.9022,.9624,.9774],[.9,.9615,.9769],[.8977,.9606,.9762],[.8946,.9595,.9738],[.8915,.9584,.9715],[.8884,.9573,.9692],[.8854,.9562,.9668],[.8823,.9551,.9645],[.8792,.954,.9622],[.8761,.9529,.9598],[.873,.9518,.9575],[.87,.9507,.9551],[.8669,.9496,.9528],[.8638,.9485,.9505],[.8607,.9474,.9481],[.8577,.9463,.9458],[.8546,.9451,.9435],[.8515,.944,.9411],[.8484,.9429,.9388],[.8454,.9418,.9364],[.8423,.9407,.9341],[.8392,.9396,.9318],[.8361,.9385,.9294],[.8331,.9374,.9271],[.83,.9363,.9248],[.8269,.9352,.9224],[.8238,.9341,.9201],[.8208,.933,.9177],[.8177,.9319,.9154],[.8146,.9307,.9131],[.8115,.9296,.9107],[.8085,.9285,.9084],[.8054,.9274,.9061],[.8023,.9263,.9037],[.7984,.9249,.9011],[.7922,.9224,.8975],[.7859,.92,.8939],[.7796,.9175,.8904],[.7733,.915,.8868],[.7671,.9126,.8832],[.7608,.9101,.8797],[.7545,.9077,.8761],[.7482,.9052,.8725],[.742,.9027,.869],[.7357,.9003,.8654],[.7294,.8978,.8618],[.7231,.8953,.8583],[.7169,.8929,.8547],[.7106,.8904,.8511],[.7043,.888,.8476],[.698,.8855,.844],[.6918,.883,.8404],[.6855,.8806,.8368],[.6792,.8781,.8333],[.6729,.8757,.8297],[.6667,.8732,.8261],[.6604,.8707,.8226],[.6541,.8683,.819],[.6478,.8658,.8154],[.6416,.8634,.8119],[.6353,.8609,.8083],[.629,.8584,.8047],[.6227,.856,.8012],[.6165,.8535,.7976],[.6102,.8511,.794],[.6039,.8486,.7905],[.5976,.846,.7865],[.5914,.8433,.782],[.5851,.8406,.7774],[.5788,.8379,.7729],[.5725,.8352,.7683],[.5663,.8325,.7638],[.56,.8298,.7592],[.5537,.8271,.7547],[.5475,.8244,.7501],[.5412,.8217,.7456],[.5349,.819,.741],[.5286,.8163,.7365],[.5224,.8136,.7319],[.5161,.8109,.7274],[.5098,.8082,.7228],[.5035,.8054,.7182],[.4973,.8027,.7137],[.491,.8,.7091],[.4847,.7973,.7046],[.4784,.7946,.7],[.4722,.7919,.6955],[.4659,.7892,.6909],[.4596,.7865,.6864],[.4533,.7838,.6818],[.4471,.7811,.6773],[.4408,.7784,.6727],[.4345,.7757,.6682],[.4282,.773,.6636],[.422,.7703,.6591],[.4157,.7676,.6545],[.4094,.7648,.65],[.4031,.7621,.6454],[.3977,.7596,.6403],[.3932,.7571,.6346],[.3886,.7546,.629],[.3841,.7522,.6233],[.3795,.7497,.6177],[.375,.7473,.612],[.3704,.7448,.6064],[.3659,.7423,.6007],[.3613,.7399,.595],[.3568,.7374,.5894],[.3522,.7349,.5837],[.3477,.7325,.5781],[.3431,.73,.5724],[.3385,.7276,.5667],[.334,.7251,.5611],[.3294,.7226,.5554],[.3249,.7202,.5498],[.3203,.7177,.5441],[.3158,.7153,.5384],[.3112,.7128,.5328],[.3067,.7103,.5271],[.3021,.7079,.5215],[.2976,.7054,.5158],[.293,.703,.5101],[.2885,.7005,.5045],[.2839,.698,.4988],[.2794,.6956,.4932],[.2748,.6931,.4875],[.2703,.6907,.4818],[.2657,.6882,.4762],[.2612,.6857,.4705],[.2566,.6833,.4649],[.2526,.6797,.459],[.2489,.6754,.4529],[.2452,.671,.4469],[.2415,.6667,.4409],[.2378,.6624,.4349],[.2341,.6581,.4288],[.2304,.6538,.4228],[.2268,.6495,.4168],[.2231,.6452,.4107],[.2194,.6409,.4047],[.2157,.6366,.3987],[.212,.6323,.3927],[.2083,.628,.3866],[.2046,.6237,.3806],[.2009,.6194,.3746],[.1972,.6151,.3686],[.1935,.6108,.3625],[.1899,.6065,.3565],[.1862,.6022,.3505],[.1825,.5978,.3444],[.1788,.5935,.3384],[.1751,.5892,.3324],[.1714,.5849,.3264],[.1677,.5806,.3203],[.164,.5763,.3143],[.1603,.572,.3083],[.1566,.5677,.3022],[.1529,.5634,.2962],[.1493,.5591,.2902],[.1456,.5548,.2842],[.1419,.5505,.2781],[.1382,.5462,.2721],[.134,.5423,.2683],[.1297,.5386,.2652],[.1254,.5349,.2621],[.1211,.5313,.2591],[.1168,.5276,.256],[.1125,.5239,.2529],[.1082,.5202,.2498],[.1039,.5165,.2468],[.0996,.5128,.2437],[.0953,.5091,.2406],[.091,.5054,.2375],[.0867,.5017,.2344],[.0824,.498,.2314],[.078,.4943,.2283],[.0737,.4907,.2252],[.0694,.487,.2221],[.0651,.4833,.2191],[.0608,.4796,.216],[.0565,.4759,.2129],[.0522,.4722,.2098],[.0479,.4685,.2068],[.0436,.4648,.2037],[.0393,.4611,.2006],[.035,.4574,.1975],[.0307,.4537,.1945],[.0264,.4501,.1914],[.0221,.4464,.1883],[.0178,.4427,.1852],[.0135,.439,.1822],[.0092,.4353,.1791],[.0048,.4316,.176],[5e-4,.4279,.1729],[0,.423,.1707],[0,.418,.1686],[0,.4129,.1665],[0,.4079,.1644],[0,.4029,.1624],[0,.3978,.1603],[0,.3928,.1582],[0,.3877,.1561],[0,.3827,.154],[0,.3776,.1519],[0,.3726,.1498],[0,.3676,.1477],[0,.3625,.1456],[0,.3575,.1435],[0,.3524,.1414],[0,.3474,.1393],[0,.3423,.1373],[0,.3373,.1352],[0,.3322,.1331],[0,.3272,.131],[0,.3222,.1289],[0,.3171,.1268],[0,.3121,.1247],[0,.307,.1226],[0,.302,.1205],[0,.2969,.1184],[0,.2919,.1163],[0,.2868,.1142],[0,.2818,.1122],[0,.2768,.1101],[0,.2717,.108],[0,.2667,.1059]]};ce.BuPu={interpolate:!0,colors:[[.9686,.9882,.9922],[.9658,.9863,.991],[.963,.9843,.9899],[.9601,.9823,.9888],[.9573,.9804,.9877],[.9545,.9784,.9866],[.9516,.9764,.9855],[.9488,.9745,.9844],[.946,.9725,.9833],[.9432,.9705,.9822],[.9403,.9686,.9811],[.9375,.9666,.98],[.9347,.9646,.9789],[.9318,.9626,.9778],[.929,.9607,.9767],[.9262,.9587,.9755],[.9234,.9567,.9744],[.9205,.9548,.9733],[.9177,.9528,.9722],[.9149,.9508,.9711],[.912,.9489,.97],[.9092,.9469,.9689],[.9064,.9449,.9678],[.9035,.943,.9667],[.9007,.941,.9656],[.8979,.939,.9645],[.8951,.9371,.9634],[.8922,.9351,.9623],[.8894,.9331,.9612],[.8866,.9311,.96],[.8837,.9292,.9589],[.8809,.9272,.9578],[.8779,.9251,.9566],[.8739,.922,.9549],[.8698,.919,.9532],[.8657,.9159,.9515],[.8617,.9128,.9498],[.8576,.9097,.948],[.8536,.9067,.9463],[.8495,.9036,.9446],[.8454,.9005,.9429],[.8414,.8974,.9411],[.8373,.8943,.9394],[.8333,.8913,.9377],[.8292,.8882,.936],[.8251,.8851,.9343],[.8211,.882,.9325],[.817,.879,.9308],[.813,.8759,.9291],[.8089,.8728,.9274],[.8048,.8697,.9256],[.8008,.8667,.9239],[.7967,.8636,.9222],[.7927,.8605,.9205],[.7886,.8574,.9188],[.7845,.8544,.917],[.7805,.8513,.9153],[.7764,.8482,.9136],[.7724,.8451,.9119],[.7683,.8421,.9101],[.7642,.839,.9084],[.7602,.8359,.9067],[.7561,.8328,.905],[.7521,.8298,.9033],[.748,.8267,.9016],[.7439,.8239,.9001],[.7399,.8211,.8986],[.7358,.8183,.8972],[.7318,.8154,.8957],[.7277,.8126,.8942],[.7236,.8098,.8927],[.7196,.8069,.8913],[.7155,.8041,.8898],[.7115,.8013,.8883],[.7074,.7984,.8868],[.7033,.7956,.8854],[.6993,.7928,.8839],[.6952,.79,.8824],[.6912,.7871,.8809],[.6871,.7843,.8794],[.683,.7815,.878],[.679,.7786,.8765],[.6749,.7758,.875],[.6709,.773,.8735],[.6668,.7701,.8721],[.6627,.7673,.8706],[.6587,.7645,.8691],[.6546,.7617,.8676],[.6506,.7588,.8662],[.6465,.756,.8647],[.6424,.7532,.8632],[.6384,.7503,.8617],[.6343,.7475,.8603],[.6303,.7447,.8588],[.6262,.7419,.8573],[.6221,.739,.8558],[.6188,.7355,.854],[.6166,.7308,.8515],[.6143,.7262,.8491],[.6121,.7215,.8466],[.6099,.7168,.8441],[.6077,.7121,.8417],[.6055,.7075,.8392],[.6033,.7028,.8368],[.6011,.6981,.8343],[.5988,.6934,.8318],[.5966,.6888,.8294],[.5944,.6841,.8269],[.5922,.6794,.8245],[.59,.6747,.822],[.5878,.67,.8195],[.5856,.6654,.8171],[.5833,.6607,.8146],[.5811,.656,.8121],[.5789,.6513,.8097],[.5767,.6467,.8072],[.5745,.642,.8048],[.5723,.6373,.8023],[.5701,.6326,.7998],[.5678,.628,.7974],[.5656,.6233,.7949],[.5634,.6186,.7925],[.5612,.6139,.79],[.559,.6093,.7875],[.5568,.6046,.7851],[.5546,.5999,.7826],[.5523,.5952,.7802],[.5501,.5906,.7777],[.549,.5856,.7752],[.549,.5803,.7726],[.549,.575,.77],[.549,.5697,.7674],[.549,.5644,.7648],[.549,.5591,.7623],[.549,.5538,.7597],[.549,.5486,.7571],[.549,.5433,.7545],[.549,.538,.7519],[.549,.5327,.7493],[.549,.5274,.7468],[.549,.5221,.7442],[.549,.5168,.7416],[.549,.5115,.739],[.549,.5062,.7364],[.549,.5009,.7338],[.549,.4957,.7313],[.549,.4904,.7287],[.549,.4851,.7261],[.549,.4798,.7235],[.549,.4745,.7209],[.549,.4692,.7183],[.549,.4639,.7158],[.549,.4586,.7132],[.549,.4533,.7106],[.549,.448,.708],[.549,.4428,.7054],[.549,.4375,.7028],[.549,.4322,.7003],[.549,.4269,.6977],[.549,.4216,.6951],[.5487,.4164,.6926],[.5482,.4112,.6901],[.5477,.406,.6877],[.5472,.4009,.6852],[.5467,.3957,.6827],[.5463,.3905,.6803],[.5458,.3854,.6778],[.5453,.3802,.6754],[.5448,.375,.6729],[.5443,.3699,.6704],[.5438,.3647,.668],[.5433,.3595,.6655],[.5428,.3544,.6631],[.5423,.3492,.6606],[.5418,.344,.6581],[.5413,.3389,.6557],[.5408,.3337,.6532],[.5403,.3285,.6507],[.5399,.3234,.6483],[.5394,.3182,.6458],[.5389,.313,.6434],[.5384,.3079,.6409],[.5379,.3027,.6384],[.5374,.2975,.636],[.5369,.2924,.6335],[.5364,.2872,.6311],[.5359,.282,.6286],[.5354,.2769,.6261],[.5349,.2717,.6237],[.5344,.2665,.6212],[.5339,.2614,.6188],[.5335,.2562,.6163],[.5327,.2503,.6126],[.5318,.2441,.6086],[.531,.238,.6045],[.5301,.2318,.6005],[.5292,.2257,.5964],[.5284,.2195,.5923],[.5275,.2134,.5883],[.5267,.2072,.5842],[.5258,.2011,.5802],[.5249,.1949,.5761],[.5241,.1888,.572],[.5232,.1826,.568],[.5224,.1765,.5639],[.5215,.1703,.5599],[.5206,.1642,.5558],[.5198,.158,.5517],[.5189,.1519,.5477],[.518,.1457,.5436],[.5172,.1396,.5396],[.5163,.1334,.5355],[.5155,.1273,.5314],[.5146,.1211,.5274],[.5137,.115,.5233],[.5129,.1088,.5193],[.512,.1027,.5152],[.5112,.0965,.5111],[.5103,.0903,.5071],[.5094,.0842,.503],[.5086,.078,.499],[.5077,.0719,.4949],[.5069,.0657,.4908],[.506,.0596,.4868],[.5003,.0572,.481],[.4939,.0554,.475],[.4875,.0535,.4689],[.4811,.0517,.4629],[.4747,.0498,.4569],[.4683,.048,.4509],[.4619,.0461,.4448],[.4555,.0443,.4388],[.4491,.0424,.4328],[.4427,.0406,.4267],[.4363,.0388,.4207],[.4299,.0369,.4147],[.4235,.0351,.4087],[.4171,.0332,.4026],[.4107,.0314,.3966],[.4043,.0295,.3906],[.3979,.0277,.3845],[.3915,.0258,.3785],[.3851,.024,.3725],[.3787,.0221,.3665],[.3723,.0203,.3604],[.3659,.0185,.3544],[.3595,.0166,.3484],[.3531,.0148,.3423],[.3467,.0129,.3363],[.3403,.0111,.3303],[.3339,.0092,.3243],[.3276,.0074,.3182],[.3212,.0055,.3122],[.3148,.0037,.3062],[.3084,.0018,.3001],[.302,0,.2941]]};ce.CMRmap={interpolate:!0,colors:[[0,0,0],[.0047,.0047,.0157],[.0094,.0094,.0314],[.0141,.0141,.0471],[.0188,.0188,.0627],[.0235,.0235,.0784],[.0282,.0282,.0941],[.0329,.0329,.1098],[.0376,.0376,.1255],[.0424,.0424,.1412],[.0471,.0471,.1569],[.0518,.0518,.1725],[.0565,.0565,.1882],[.0612,.0612,.2039],[.0659,.0659,.2196],[.0706,.0706,.2353],[.0753,.0753,.251],[.08,.08,.2667],[.0847,.0847,.2824],[.0894,.0894,.298],[.0941,.0941,.3137],[.0988,.0988,.3294],[.1035,.1035,.3451],[.1082,.1082,.3608],[.1129,.1129,.3765],[.1176,.1176,.3922],[.1224,.1224,.4078],[.1271,.1271,.4235],[.1318,.1318,.4392],[.1365,.1365,.4549],[.1412,.1412,.4706],[.1459,.1459,.4863],[.1506,.15,.501],[.1553,.15,.5088],[.16,.15,.5167],[.1647,.15,.5245],[.1694,.15,.5324],[.1741,.15,.5402],[.1788,.15,.548],[.1835,.15,.5559],[.1882,.15,.5637],[.1929,.15,.5716],[.1976,.15,.5794],[.2024,.15,.5873],[.2071,.15,.5951],[.2118,.15,.6029],[.2165,.15,.6108],[.2212,.15,.6186],[.2259,.15,.6265],[.2306,.15,.6343],[.2353,.15,.6422],[.24,.15,.65],[.2447,.15,.6578],[.2494,.15,.6657],[.2541,.15,.6735],[.2588,.15,.6814],[.2635,.15,.6892],[.2682,.15,.6971],[.2729,.15,.7049],[.2776,.15,.7127],[.2824,.15,.7206],[.2871,.15,.7284],[.2918,.15,.7363],[.2965,.15,.7441],[.3024,.1504,.748],[.3118,.152,.7402],[.3212,.1535,.7324],[.3306,.1551,.7245],[.34,.1567,.7167],[.3494,.1582,.7088],[.3588,.1598,.701],[.3682,.1614,.6931],[.3776,.1629,.6853],[.3871,.1645,.6775],[.3965,.1661,.6696],[.4059,.1676,.6618],[.4153,.1692,.6539],[.4247,.1708,.6461],[.4341,.1724,.6382],[.4435,.1739,.6304],[.4529,.1755,.6225],[.4624,.1771,.6147],[.4718,.1786,.6069],[.4812,.1802,.599],[.4906,.1818,.5912],[.5,.1833,.5833],[.5094,.1849,.5755],[.5188,.1865,.5676],[.5282,.188,.5598],[.5376,.1896,.552],[.5471,.1912,.5441],[.5565,.1927,.5363],[.5659,.1943,.5284],[.5753,.1959,.5206],[.5847,.1975,.5127],[.5941,.199,.5049],[.6047,.2006,.4959],[.6173,.2022,.4849],[.6298,.2037,.4739],[.6424,.2053,.4629],[.6549,.2069,.452],[.6675,.2084,.441],[.68,.21,.43],[.6925,.2116,.419],[.7051,.2131,.408],[.7176,.2147,.3971],[.7302,.2163,.3861],[.7427,.2178,.3751],[.7553,.2194,.3641],[.7678,.221,.3531],[.7804,.2225,.3422],[.7929,.2241,.3312],[.8055,.2257,.3202],[.818,.2273,.3092],[.8306,.2288,.2982],[.8431,.2304,.2873],[.8557,.232,.2763],[.8682,.2335,.2653],[.8808,.2351,.2543],[.8933,.2367,.2433],[.9059,.2382,.2324],[.9184,.2398,.2214],[.931,.2414,.2104],[.9435,.2429,.1994],[.9561,.2445,.1884],[.9686,.2461,.1775],[.9812,.2476,.1665],[.9937,.2492,.1555],[.9984,.2539,.1476],[.9953,.2618,.1429],[.9922,.2696,.1382],[.989,.2775,.1335],[.9859,.2853,.1288],[.9827,.2931,.1241],[.9796,.301,.1194],[.9765,.3088,.1147],[.9733,.3167,.11],[.9702,.3245,.1053],[.9671,.3324,.1006],[.9639,.3402,.0959],[.9608,.348,.0912],[.9576,.3559,.0865],[.9545,.3637,.0818],[.9514,.3716,.0771],[.9482,.3794,.0724],[.9451,.3873,.0676],[.942,.3951,.0629],[.9388,.4029,.0582],[.9357,.4108,.0535],[.9325,.4186,.0488],[.9294,.4265,.0441],[.9263,.4343,.0394],[.9231,.4422,.0347],[.92,.45,.03],[.9169,.4578,.0253],[.9137,.4657,.0206],[.9106,.4735,.0159],[.9075,.4814,.0112],[.9043,.4892,.0065],[.9012,.4971,.0018],[.9,.5049,.002],[.9,.5127,.0051],[.9,.5206,.0082],[.9,.5284,.0114],[.9,.5363,.0145],[.9,.5441,.0176],[.9,.552,.0208],[.9,.5598,.0239],[.9,.5676,.0271],[.9,.5755,.0302],[.9,.5833,.0333],[.9,.5912,.0365],[.9,.599,.0396],[.9,.6069,.0427],[.9,.6147,.0459],[.9,.6225,.049],[.9,.6304,.0522],[.9,.6382,.0553],[.9,.6461,.0584],[.9,.6539,.0616],[.9,.6618,.0647],[.9,.6696,.0678],[.9,.6775,.071],[.9,.6853,.0741],[.9,.6931,.0773],[.9,.701,.0804],[.9,.7088,.0835],[.9,.7167,.0867],[.9,.7245,.0898],[.9,.7324,.0929],[.9,.7402,.0961],[.9,.748,.0992],[.9,.7535,.1094],[.9,.7582,.122],[.9,.7629,.1345],[.9,.7676,.1471],[.9,.7724,.1596],[.9,.7771,.1722],[.9,.7818,.1847],[.9,.7865,.1973],[.9,.7912,.2098],[.9,.7959,.2224],[.9,.8006,.2349],[.9,.8053,.2475],[.9,.81,.26],[.9,.8147,.2725],[.9,.8194,.2851],[.9,.8241,.2976],[.9,.8288,.3102],[.9,.8335,.3227],[.9,.8382,.3353],[.9,.8429,.3478],[.9,.8476,.3604],[.9,.8524,.3729],[.9,.8571,.3855],[.9,.8618,.398],[.9,.8665,.4106],[.9,.8712,.4231],[.9,.8759,.4357],[.9,.8806,.4482],[.9,.8853,.4608],[.9,.89,.4733],[.9,.8947,.4859],[.9,.8994,.4984],[.9027,.9027,.5137],[.9059,.9059,.5294],[.909,.909,.5451],[.9122,.9122,.5608],[.9153,.9153,.5765],[.9184,.9184,.5922],[.9216,.9216,.6078],[.9247,.9247,.6235],[.9278,.9278,.6392],[.931,.931,.6549],[.9341,.9341,.6706],[.9373,.9373,.6863],[.9404,.9404,.702],[.9435,.9435,.7176],[.9467,.9467,.7333],[.9498,.9498,.749],[.9529,.9529,.7647],[.9561,.9561,.7804],[.9592,.9592,.7961],[.9624,.9624,.8118],[.9655,.9655,.8275],[.9686,.9686,.8431],[.9718,.9718,.8588],[.9749,.9749,.8745],[.978,.978,.8902],[.9812,.9812,.9059],[.9843,.9843,.9216],[.9875,.9875,.9373],[.9906,.9906,.9529],[.9937,.9937,.9686],[.9969,.9969,.9843],[1,1,1]]};ce.Dark2={interpolate:!1,colors:[[.1059,.6196,.4667],[.851,.3725,.0078],[.4588,.4392,.702],[.9059,.1608,.5412],[.4,.651,.1176],[.902,.6706,.0078],[.651,.4627,.1137],[.4,.4,.4]]};ce.GnBu={interpolate:!0,colors:[[.9686,.9882,.9412],[.9658,.9871,.9386],[.963,.986,.936],[.9601,.9849,.9334],[.9573,.9838,.9308],[.9545,.9827,.9283],[.9516,.9816,.9257],[.9488,.9805,.9231],[.946,.9794,.9205],[.9432,.9783,.9179],[.9403,.9772,.9153],[.9375,.9761,.9128],[.9347,.9749,.9102],[.9318,.9738,.9076],[.929,.9727,.905],[.9262,.9716,.9024],[.9234,.9705,.8998],[.9205,.9694,.8973],[.9177,.9683,.8947],[.9149,.9672,.8921],[.912,.9661,.8895],[.9092,.965,.8869],[.9064,.9639,.8843],[.9035,.9628,.8818],[.9007,.9617,.8792],[.8979,.9606,.8766],[.8951,.9594,.874],[.8922,.9583,.8714],[.8894,.9572,.8688],[.8866,.9561,.8663],[.8837,.955,.8637],[.8809,.9539,.8611],[.8781,.9528,.8585],[.8757,.9518,.8558],[.8732,.9508,.8531],[.8707,.9499,.8504],[.8683,.9489,.8477],[.8658,.9479,.845],[.8634,.9469,.8422],[.8609,.9459,.8395],[.8584,.9449,.8368],[.856,.944,.8341],[.8535,.943,.8314],[.8511,.942,.8287],[.8486,.941,.826],[.8461,.94,.8233],[.8437,.939,.8206],[.8412,.9381,.8179],[.8388,.9371,.8152],[.8363,.9361,.8125],[.8338,.9351,.8098],[.8314,.9341,.8071],[.8289,.9331,.8044],[.8265,.9321,.8016],[.824,.9312,.7989],[.8215,.9302,.7962],[.8191,.9292,.7935],[.8166,.9282,.7908],[.8141,.9272,.7881],[.8117,.9262,.7854],[.8092,.9253,.7827],[.8068,.9243,.78],[.8043,.9233,.7773],[.8018,.9223,.7746],[.7989,.9211,.7721],[.7945,.9194,.7701],[.79,.9177,.7681],[.7856,.916,.7662],[.7812,.9142,.7642],[.7767,.9125,.7622],[.7723,.9108,.7602],[.7679,.9091,.7583],[.7635,.9074,.7563],[.759,.9056,.7543],[.7546,.9039,.7524],[.7502,.9022,.7504],[.7457,.9005,.7484],[.7413,.8987,.7465],[.7369,.897,.7445],[.7325,.8953,.7425],[.728,.8936,.7406],[.7236,.8919,.7386],[.7192,.8901,.7366],[.7147,.8884,.7347],[.7103,.8867,.7327],[.7059,.885,.7307],[.7015,.8832,.7288],[.697,.8815,.7268],[.6926,.8798,.7248],[.6882,.8781,.7228],[.6837,.8764,.7209],[.6793,.8746,.7189],[.6749,.8729,.7169],[.6704,.8712,.715],[.666,.8695,.713],[.6616,.8677,.711],[.6567,.8659,.7105],[.6512,.8638,.7123],[.6457,.8617,.7142],[.6401,.8596,.716],[.6346,.8575,.7179],[.6291,.8554,.7197],[.6235,.8533,.7216],[.618,.8512,.7234],[.6125,.8492,.7253],[.6069,.8471,.7271],[.6014,.845,.729],[.5958,.8429,.7308],[.5903,.8408,.7326],[.5848,.8387,.7345],[.5792,.8366,.7363],[.5737,.8345,.7382],[.5682,.8324,.74],[.5626,.8303,.7419],[.5571,.8282,.7437],[.5516,.8261,.7456],[.546,.8241,.7474],[.5405,.822,.7493],[.5349,.8199,.7511],[.5294,.8178,.7529],[.5239,.8157,.7548],[.5183,.8136,.7566],[.5128,.8115,.7585],[.5073,.8094,.7603],[.5017,.8073,.7622],[.4962,.8052,.764],[.4907,.8031,.7659],[.4851,.801,.7677],[.4796,.7985,.7696],[.474,.7954,.7714],[.4685,.7923,.7732],[.463,.7892,.7751],[.4574,.7862,.7769],[.4519,.7831,.7788],[.4464,.78,.7806],[.4408,.7769,.7825],[.4353,.7739,.7843],[.4298,.7708,.7862],[.4242,.7677,.788],[.4187,.7646,.7899],[.4131,.7616,.7917],[.4076,.7585,.7935],[.4021,.7554,.7954],[.3965,.7523,.7972],[.391,.7493,.7991],[.3855,.7462,.8009],[.3799,.7431,.8028],[.3744,.74,.8046],[.3689,.7369,.8065],[.3633,.7339,.8083],[.3578,.7308,.8101],[.3522,.7277,.812],[.3467,.7246,.8138],[.3412,.7216,.8157],[.3356,.7185,.8175],[.3301,.7154,.8194],[.3246,.7123,.8212],[.319,.7093,.8231],[.3135,.7062,.8249],[.308,.7031,.8268],[.3032,.699,.8258],[.2989,.6942,.8233],[.2946,.6894,.8207],[.2903,.6846,.8181],[.286,.6798,.8155],[.2817,.675,.8129],[.2774,.6702,.8103],[.273,.6654,.8078],[.2687,.6606,.8052],[.2644,.6558,.8026],[.2601,.651,.8],[.2558,.6462,.7974],[.2515,.6414,.7948],[.2472,.6366,.7922],[.2429,.6318,.7897],[.2386,.627,.7871],[.2343,.6222,.7845],[.23,.6174,.7819],[.2257,.6126,.7793],[.2214,.6078,.7767],[.2171,.603,.7742],[.2128,.5982,.7716],[.2085,.5934,.769],[.2042,.5886,.7664],[.1998,.5838,.7638],[.1955,.579,.7612],[.1912,.5742,.7587],[.1869,.5694,.7561],[.1826,.5646,.7535],[.1783,.5598,.7509],[.174,.555,.7483],[.1697,.5502,.7457],[.1654,.5457,.7434],[.1611,.5413,.7412],[.1568,.5368,.739],[.1525,.5324,.7368],[.1482,.528,.7346],[.1439,.5236,.7324],[.1396,.5191,.7301],[.1353,.5147,.7279],[.1309,.5103,.7257],[.1266,.5058,.7235],[.1223,.5014,.7213],[.118,.497,.7191],[.1137,.4925,.7169],[.1094,.4881,.7146],[.1051,.4837,.7124],[.1008,.4793,.7102],[.0965,.4748,.708],[.0922,.4704,.7058],[.0879,.466,.7036],[.0836,.4615,.7014],[.0793,.4571,.6991],[.075,.4527,.6969],[.0707,.4483,.6947],[.0664,.4438,.6925],[.0621,.4394,.6903],[.0577,.435,.6881],[.0534,.4305,.6859],[.0491,.4261,.6836],[.0448,.4217,.6814],[.0405,.4173,.6792],[.0362,.4128,.677],[.0319,.4084,.6748],[.0314,.4035,.6699],[.0314,.3986,.6646],[.0314,.3937,.6593],[.0314,.3888,.654],[.0314,.3839,.6487],[.0314,.3789,.6434],[.0314,.374,.6381],[.0314,.3691,.6328],[.0314,.3642,.6276],[.0314,.3592,.6223],[.0314,.3543,.617],[.0314,.3494,.6117],[.0314,.3445,.6064],[.0314,.3396,.6011],[.0314,.3346,.5958],[.0314,.3297,.5905],[.0314,.3248,.5852],[.0314,.3199,.5799],[.0314,.315,.5747],[.0314,.31,.5694],[.0314,.3051,.5641],[.0314,.3002,.5588],[.0314,.2953,.5535],[.0314,.2903,.5482],[.0314,.2854,.5429],[.0314,.2805,.5376],[.0314,.2756,.5323],[.0314,.2707,.527],[.0314,.2657,.5218],[.0314,.2608,.5165],[.0314,.2559,.5112],[.0314,.251,.5059]]};ce.Greens={interpolate:!0,colors:[[.9686,.9882,.9608],[.9664,.9874,.9582],[.9642,.9865,.9556],[.962,.9857,.953],[.9598,.9848,.9504],[.9576,.9839,.9479],[.9553,.9831,.9453],[.9531,.9822,.9427],[.9509,.9813,.9401],[.9487,.9805,.9375],[.9465,.9796,.9349],[.9443,.9788,.9324],[.9421,.9779,.9298],[.9398,.977,.9272],[.9376,.9762,.9246],[.9354,.9753,.922],[.9332,.9745,.9194],[.931,.9736,.9169],[.9288,.9727,.9143],[.9266,.9719,.9117],[.9243,.971,.9091],[.9221,.9701,.9065],[.9199,.9693,.9039],[.9177,.9684,.9014],[.9155,.9676,.8988],[.9133,.9667,.8962],[.911,.9658,.8936],[.9088,.965,.891],[.9066,.9641,.8884],[.9044,.9633,.8859],[.9022,.9624,.8833],[.9,.9615,.8807],[.8976,.9606,.8779],[.8939,.9591,.874],[.8902,.9576,.8701],[.8865,.9562,.8661],[.8828,.9547,.8622],[.8791,.9532,.8583],[.8754,.9517,.8543],[.8717,.9503,.8504],[.8681,.9488,.8464],[.8644,.9473,.8425],[.8607,.9458,.8386],[.857,.9444,.8346],[.8533,.9429,.8307],[.8496,.9414,.8268],[.8459,.9399,.8228],[.8422,.9385,.8189],[.8385,.937,.8149],[.8348,.9355,.811],[.8311,.934,.8071],[.8275,.9325,.8031],[.8238,.9311,.7992],[.8201,.9296,.7953],[.8164,.9281,.7913],[.8127,.9266,.7874],[.809,.9252,.7835],[.8053,.9237,.7795],[.8016,.9222,.7756],[.7979,.9207,.7716],[.7942,.9193,.7677],[.7905,.9178,.7638],[.7869,.9163,.7598],[.7832,.9148,.7559],[.7792,.9132,.7518],[.7745,.9113,.7473],[.7699,.9093,.7427],[.7652,.9073,.7381],[.7605,.9054,.7336],[.7558,.9034,.729],[.7512,.9014,.7245],[.7465,.8995,.7199],[.7418,.8975,.7154],[.7371,.8955,.7108],[.7325,.8935,.7063],[.7278,.8916,.7017],[.7231,.8896,.6972],[.7184,.8876,.6926],[.7138,.8857,.6881],[.7091,.8837,.6835],[.7044,.8817,.679],[.6997,.8798,.6744],[.6951,.8778,.6699],[.6904,.8758,.6653],[.6857,.8739,.6608],[.681,.8719,.6562],[.6764,.8699,.6517],[.6717,.868,.6471],[.667,.866,.6426],[.6623,.864,.638],[.6577,.8621,.6334],[.653,.8601,.6289],[.6483,.8581,.6243],[.6436,.8561,.6198],[.639,.8542,.6152],[.6343,.8522,.6107],[.6293,.85,.6061],[.6238,.8474,.6016],[.6182,.8448,.597],[.6127,.8423,.5925],[.6072,.8397,.5879],[.6016,.8371,.5834],[.5961,.8345,.5788],[.5905,.8319,.5743],[.585,.8293,.5697],[.5795,.8268,.5652],[.5739,.8242,.5606],[.5684,.8216,.5561],[.5629,.819,.5515],[.5573,.8164,.547],[.5518,.8138,.5424],[.5463,.8113,.5379],[.5407,.8087,.5333],[.5352,.8061,.5288],[.5296,.8035,.5242],[.5241,.8009,.5196],[.5186,.7983,.5151],[.513,.7958,.5105],[.5075,.7932,.506],[.502,.7906,.5014],[.4964,.788,.4969],[.4909,.7854,.4923],[.4854,.7828,.4878],[.4798,.7803,.4832],[.4743,.7777,.4787],[.4687,.7751,.4741],[.4632,.7725,.4696],[.4577,.7699,.465],[.4518,.7671,.4612],[.4455,.764,.4581],[.4392,.7609,.4551],[.4329,.7579,.452],[.4267,.7548,.4489],[.4204,.7517,.4458],[.4141,.7486,.4428],[.4078,.7456,.4397],[.4016,.7425,.4366],[.3953,.7394,.4335],[.389,.7363,.4304],[.3827,.7333,.4274],[.3765,.7302,.4243],[.3702,.7271,.4212],[.3639,.724,.4181],[.3576,.721,.4151],[.3514,.7179,.412],[.3451,.7148,.4089],[.3388,.7117,.4058],[.3325,.7087,.4028],[.3263,.7056,.3997],[.32,.7025,.3966],[.3137,.6994,.3935],[.3075,.6963,.3905],[.3012,.6933,.3874],[.2949,.6902,.3843],[.2886,.6871,.3812],[.2824,.684,.3782],[.2761,.681,.3751],[.2698,.6779,.372],[.2635,.6748,.3689],[.2573,.6717,.3659],[.2526,.6681,.3629],[.2489,.6642,.3599],[.2452,.6603,.357],[.2415,.6563,.354],[.2378,.6524,.351],[.2341,.6484,.3481],[.2304,.6445,.3451],[.2268,.6406,.3422],[.2231,.6366,.3392],[.2194,.6327,.3363],[.2157,.6288,.3333],[.212,.6248,.3304],[.2083,.6209,.3274],[.2046,.6169,.3245],[.2009,.613,.3215],[.1972,.6091,.3186],[.1935,.6051,.3156],[.1899,.6012,.3127],[.1862,.5973,.3097],[.1825,.5933,.3068],[.1788,.5894,.3038],[.1751,.5855,.3009],[.1714,.5815,.2979],[.1677,.5776,.2949],[.164,.5736,.292],[.1603,.5697,.289],[.1566,.5658,.2861],[.1529,.5618,.2831],[.1493,.5579,.2802],[.1456,.554,.2772],[.1419,.55,.2743],[.1382,.5461,.2713],[.134,.5423,.2683],[.1297,.5386,.2652],[.1254,.5349,.2621],[.1211,.5313,.2591],[.1168,.5276,.256],[.1125,.5239,.2529],[.1082,.5202,.2498],[.1039,.5165,.2468],[.0996,.5128,.2437],[.0953,.5091,.2406],[.091,.5054,.2375],[.0867,.5017,.2344],[.0824,.498,.2314],[.078,.4943,.2283],[.0737,.4907,.2252],[.0694,.487,.2221],[.0651,.4833,.2191],[.0608,.4796,.216],[.0565,.4759,.2129],[.0522,.4722,.2098],[.0479,.4685,.2068],[.0436,.4648,.2037],[.0393,.4611,.2006],[.035,.4574,.1975],[.0307,.4537,.1945],[.0264,.4501,.1914],[.0221,.4464,.1883],[.0178,.4427,.1852],[.0135,.439,.1822],[.0092,.4353,.1791],[.0048,.4316,.176],[5e-4,.4279,.1729],[0,.423,.1707],[0,.418,.1686],[0,.4129,.1665],[0,.4079,.1644],[0,.4029,.1624],[0,.3978,.1603],[0,.3928,.1582],[0,.3877,.1561],[0,.3827,.154],[0,.3776,.1519],[0,.3726,.1498],[0,.3676,.1477],[0,.3625,.1456],[0,.3575,.1435],[0,.3524,.1414],[0,.3474,.1393],[0,.3423,.1373],[0,.3373,.1352],[0,.3322,.1331],[0,.3272,.131],[0,.3222,.1289],[0,.3171,.1268],[0,.3121,.1247],[0,.307,.1226],[0,.302,.1205],[0,.2969,.1184],[0,.2919,.1163],[0,.2868,.1142],[0,.2818,.1122],[0,.2768,.1101],[0,.2717,.108],[0,.2667,.1059]]};ce.Greys={interpolate:!0,colors:[[1,1,1],[.9982,.9982,.9982],[.9963,.9963,.9963],[.9945,.9945,.9945],[.9926,.9926,.9926],[.9908,.9908,.9908],[.9889,.9889,.9889],[.9871,.9871,.9871],[.9852,.9852,.9852],[.9834,.9834,.9834],[.9815,.9815,.9815],[.9797,.9797,.9797],[.9779,.9779,.9779],[.976,.976,.976],[.9742,.9742,.9742],[.9723,.9723,.9723],[.9705,.9705,.9705],[.9686,.9686,.9686],[.9668,.9668,.9668],[.9649,.9649,.9649],[.9631,.9631,.9631],[.9612,.9612,.9612],[.9594,.9594,.9594],[.9576,.9576,.9576],[.9557,.9557,.9557],[.9539,.9539,.9539],[.952,.952,.952],[.9502,.9502,.9502],[.9483,.9483,.9483],[.9465,.9465,.9465],[.9446,.9446,.9446],[.9428,.9428,.9428],[.9408,.9408,.9408],[.938,.938,.938],[.9352,.9352,.9352],[.9323,.9323,.9323],[.9295,.9295,.9295],[.9267,.9267,.9267],[.9238,.9238,.9238],[.921,.921,.921],[.9182,.9182,.9182],[.9154,.9154,.9154],[.9125,.9125,.9125],[.9097,.9097,.9097],[.9069,.9069,.9069],[.904,.904,.904],[.9012,.9012,.9012],[.8984,.8984,.8984],[.8955,.8955,.8955],[.8927,.8927,.8927],[.8899,.8899,.8899],[.8871,.8871,.8871],[.8842,.8842,.8842],[.8814,.8814,.8814],[.8786,.8786,.8786],[.8757,.8757,.8757],[.8729,.8729,.8729],[.8701,.8701,.8701],[.8673,.8673,.8673],[.8644,.8644,.8644],[.8616,.8616,.8616],[.8588,.8588,.8588],[.8559,.8559,.8559],[.8531,.8531,.8531],[.8501,.8501,.8501],[.8467,.8467,.8467],[.8432,.8432,.8432],[.8398,.8398,.8398],[.8363,.8363,.8363],[.8329,.8329,.8329],[.8295,.8295,.8295],[.826,.826,.826],[.8226,.8226,.8226],[.8191,.8191,.8191],[.8157,.8157,.8157],[.8122,.8122,.8122],[.8088,.8088,.8088],[.8053,.8053,.8053],[.8019,.8019,.8019],[.7984,.7984,.7984],[.795,.795,.795],[.7916,.7916,.7916],[.7881,.7881,.7881],[.7847,.7847,.7847],[.7812,.7812,.7812],[.7778,.7778,.7778],[.7743,.7743,.7743],[.7709,.7709,.7709],[.7674,.7674,.7674],[.764,.764,.764],[.7606,.7606,.7606],[.7571,.7571,.7571],[.7537,.7537,.7537],[.7502,.7502,.7502],[.7468,.7468,.7468],[.7433,.7433,.7433],[.7394,.7394,.7394],[.7346,.7346,.7346],[.7298,.7298,.7298],[.725,.725,.725],[.7202,.7202,.7202],[.7154,.7154,.7154],[.7106,.7106,.7106],[.7058,.7058,.7058],[.701,.701,.701],[.6962,.6962,.6962],[.6914,.6914,.6914],[.6866,.6866,.6866],[.6818,.6818,.6818],[.677,.677,.677],[.6722,.6722,.6722],[.6674,.6674,.6674],[.6626,.6626,.6626],[.6578,.6578,.6578],[.653,.653,.653],[.6482,.6482,.6482],[.6434,.6434,.6434],[.6386,.6386,.6386],[.6338,.6338,.6338],[.629,.629,.629],[.6242,.6242,.6242],[.6194,.6194,.6194],[.6146,.6146,.6146],[.6098,.6098,.6098],[.605,.605,.605],[.6002,.6002,.6002],[.5954,.5954,.5954],[.5906,.5906,.5906],[.5861,.5861,.5861],[.5818,.5818,.5818],[.5775,.5775,.5775],[.5732,.5732,.5732],[.5689,.5689,.5689],[.5646,.5646,.5646],[.5602,.5602,.5602],[.5559,.5559,.5559],[.5516,.5516,.5516],[.5473,.5473,.5473],[.543,.543,.543],[.5387,.5387,.5387],[.5344,.5344,.5344],[.5301,.5301,.5301],[.5258,.5258,.5258],[.5215,.5215,.5215],[.5172,.5172,.5172],[.5129,.5129,.5129],[.5086,.5086,.5086],[.5043,.5043,.5043],[.5,.5,.5],[.4957,.4957,.4957],[.4913,.4913,.4913],[.487,.487,.487],[.4827,.4827,.4827],[.4784,.4784,.4784],[.4741,.4741,.4741],[.4698,.4698,.4698],[.4655,.4655,.4655],[.4612,.4612,.4612],[.4569,.4569,.4569],[.4526,.4526,.4526],[.4484,.4484,.4484],[.4444,.4444,.4444],[.4403,.4403,.4403],[.4363,.4363,.4363],[.4322,.4322,.4322],[.4281,.4281,.4281],[.4241,.4241,.4241],[.42,.42,.42],[.416,.416,.416],[.4119,.4119,.4119],[.4078,.4078,.4078],[.4038,.4038,.4038],[.3997,.3997,.3997],[.3957,.3957,.3957],[.3916,.3916,.3916],[.3875,.3875,.3875],[.3835,.3835,.3835],[.3794,.3794,.3794],[.3754,.3754,.3754],[.3713,.3713,.3713],[.3672,.3672,.3672],[.3632,.3632,.3632],[.3591,.3591,.3591],[.3551,.3551,.3551],[.351,.351,.351],[.3469,.3469,.3469],[.3429,.3429,.3429],[.3388,.3388,.3388],[.3348,.3348,.3348],[.3307,.3307,.3307],[.3266,.3266,.3266],[.3226,.3226,.3226],[.3174,.3174,.3174],[.3119,.3119,.3119],[.3063,.3063,.3063],[.3008,.3008,.3008],[.2953,.2953,.2953],[.2897,.2897,.2897],[.2842,.2842,.2842],[.2787,.2787,.2787],[.2731,.2731,.2731],[.2676,.2676,.2676],[.2621,.2621,.2621],[.2565,.2565,.2565],[.251,.251,.251],[.2454,.2454,.2454],[.2399,.2399,.2399],[.2344,.2344,.2344],[.2288,.2288,.2288],[.2233,.2233,.2233],[.2178,.2178,.2178],[.2122,.2122,.2122],[.2067,.2067,.2067],[.2012,.2012,.2012],[.1956,.1956,.1956],[.1901,.1901,.1901],[.1845,.1845,.1845],[.179,.179,.179],[.1735,.1735,.1735],[.1679,.1679,.1679],[.1624,.1624,.1624],[.1569,.1569,.1569],[.1513,.1513,.1513],[.1458,.1458,.1458],[.1411,.1411,.1411],[.1366,.1366,.1366],[.132,.132,.132],[.1275,.1275,.1275],[.1229,.1229,.1229],[.1184,.1184,.1184],[.1138,.1138,.1138],[.1093,.1093,.1093],[.1047,.1047,.1047],[.1001,.1001,.1001],[.0956,.0956,.0956],[.091,.091,.091],[.0865,.0865,.0865],[.0819,.0819,.0819],[.0774,.0774,.0774],[.0728,.0728,.0728],[.0683,.0683,.0683],[.0637,.0637,.0637],[.0592,.0592,.0592],[.0546,.0546,.0546],[.0501,.0501,.0501],[.0455,.0455,.0455],[.041,.041,.041],[.0364,.0364,.0364],[.0319,.0319,.0319],[.0273,.0273,.0273],[.0228,.0228,.0228],[.0182,.0182,.0182],[.0137,.0137,.0137],[.0091,.0091,.0091],[.0046,.0046,.0046],[0,0,0]]};ce.OrRd={interpolate:!0,colors:[[1,.9686,.9255],[.9999,.9668,.9211],[.9998,.9649,.9166],[.9996,.9631,.9122],[.9995,.9612,.9078],[.9994,.9594,.9033],[.9993,.9576,.8989],[.9991,.9557,.8945],[.999,.9539,.8901],[.9989,.952,.8856],[.9988,.9502,.8812],[.9986,.9483,.8768],[.9985,.9465,.8723],[.9984,.9446,.8679],[.9983,.9428,.8635],[.9982,.9409,.8591],[.998,.9391,.8546],[.9979,.9373,.8502],[.9978,.9354,.8458],[.9977,.9336,.8413],[.9975,.9317,.8369],[.9974,.9299,.8325],[.9973,.928,.8281],[.9972,.9262,.8236],[.997,.9243,.8192],[.9969,.9225,.8148],[.9968,.9206,.8103],[.9967,.9188,.8059],[.9966,.917,.8015],[.9964,.9151,.797],[.9963,.9133,.7926],[.9962,.9114,.7882],[.9961,.9095,.7837],[.9959,.907,.7785],[.9958,.9046,.7733],[.9957,.9021,.7682],[.9956,.8997,.763],[.9954,.8972,.7578],[.9953,.8947,.7527],[.9952,.8923,.7475],[.9951,.8898,.7423],[.995,.8874,.7372],[.9948,.8849,.732],[.9947,.8824,.7268],[.9946,.88,.7217],[.9945,.8775,.7165],[.9943,.875,.7113],[.9942,.8726,.7062],[.9941,.8701,.701],[.994,.8677,.6958],[.9938,.8652,.6907],[.9937,.8627,.6855],[.9936,.8603,.6803],[.9935,.8578,.6752],[.9934,.8554,.67],[.9932,.8529,.6648],[.9931,.8504,.6597],[.993,.848,.6545],[.9929,.8455,.6493],[.9927,.8431,.6442],[.9926,.8406,.639],[.9925,.8381,.6338],[.9924,.8357,.6287],[.9922,.8332,.6235],[.9922,.8306,.6188],[.9922,.8275,.6156],[.9922,.8245,.6124],[.9922,.8214,.6092],[.9922,.8183,.606],[.9922,.8152,.6028],[.9922,.8121,.5996],[.9922,.8091,.5964],[.9922,.806,.5932],[.9922,.8029,.59],[.9922,.7998,.5868],[.9922,.7968,.5836],[.9922,.7937,.5804],[.9922,.7906,.5772],[.9922,.7875,.574],[.9922,.7845,.5708],[.9922,.7814,.5676],[.9922,.7783,.5644],[.9922,.7752,.5612],[.9922,.7722,.558],[.9922,.7691,.5548],[.9922,.766,.5516],[.9922,.7629,.5484],[.9922,.7599,.5452],[.9922,.7568,.542],[.9922,.7537,.5388],[.9922,.7506,.5356],[.9922,.7476,.5324],[.9922,.7445,.5292],[.9922,.7414,.526],[.9922,.7383,.5228],[.9922,.7353,.5196],[.9921,.7312,.5157],[.992,.7256,.5104],[.9919,.7199,.5051],[.9917,.7142,.4998],[.9916,.7086,.4945],[.9915,.7029,.4892],[.9914,.6973,.4839],[.9912,.6916,.4786],[.9911,.6859,.4733],[.991,.6803,.4681],[.9909,.6746,.4628],[.9908,.669,.4575],[.9906,.6633,.4522],[.9905,.6576,.4469],[.9904,.652,.4416],[.9903,.6463,.4363],[.9901,.6407,.431],[.99,.635,.4257],[.9899,.6293,.4204],[.9898,.6237,.4151],[.9897,.618,.4099],[.9895,.6124,.4046],[.9894,.6067,.3993],[.9893,.601,.394],[.9892,.5954,.3887],[.989,.5897,.3834],[.9889,.5841,.3781],[.9888,.5784,.3728],[.9887,.5727,.3675],[.9885,.5671,.3622],[.9884,.5614,.357],[.9883,.5558,.3517],[.9874,.5505,.348],[.9858,.5456,.3459],[.9842,.5406,.3438],[.9826,.5357,.3417],[.981,.5308,.3396],[.9794,.5259,.3375],[.9778,.521,.3354],[.9762,.516,.3333],[.9746,.5111,.3312],[.973,.5062,.3292],[.9714,.5013,.3271],[.9698,.4963,.325],[.9682,.4914,.3229],[.9666,.4865,.3208],[.965,.4816,.3187],[.9634,.4767,.3166],[.9618,.4717,.3145],[.9602,.4668,.3124],[.9586,.4619,.3103],[.957,.457,.3082],[.9554,.4521,.3061],[.9538,.4471,.3041],[.9522,.4422,.302],[.9506,.4373,.2999],[.9491,.4324,.2978],[.9475,.4275,.2957],[.9459,.4225,.2936],[.9443,.4176,.2915],[.9427,.4127,.2894],[.9411,.4078,.2873],[.9395,.4028,.2852],[.9379,.3979,.2831],[.9354,.392,.2792],[.9325,.3855,.2742],[.9295,.379,.2691],[.9266,.3724,.2641],[.9236,.3659,.259],[.9206,.3594,.254],[.9177,.3529,.2489],[.9147,.3464,.2439],[.9118,.3398,.2388],[.9088,.3333,.2338],[.9059,.3268,.2288],[.9029,.3203,.2237],[.9,.3138,.2187],[.897,.3072,.2136],[.8941,.3007,.2086],[.8911,.2942,.2035],[.8882,.2877,.1985],[.8852,.2812,.1934],[.8823,.2746,.1884],[.8793,.2681,.1834],[.8764,.2616,.1783],[.8734,.2551,.1733],[.8704,.2486,.1682],[.8675,.242,.1632],[.8645,.2355,.1581],[.8616,.229,.1531],[.8586,.2225,.1481],[.8557,.2159,.143],[.8527,.2094,.138],[.8498,.2029,.1329],[.8468,.1964,.1279],[.8439,.1899,.1228],[.8398,.1838,.1187],[.8354,.1779,.1149],[.831,.172,.1111],[.8265,.1661,.1073],[.8221,.1602,.1035],[.8177,.1543,.0996],[.8132,.1484,.0958],[.8088,.1425,.092],[.8044,.1366,.0882],[.8,.1307,.0844],[.7955,.1248,.0806],[.7911,.1188,.0768],[.7867,.1129,.0729],[.7822,.107,.0691],[.7778,.1011,.0653],[.7734,.0952,.0615],[.769,.0893,.0577],[.7645,.0834,.0539],[.7601,.0775,.0501],[.7557,.0716,.0462],[.7512,.0657,.0424],[.7468,.0598,.0386],[.7424,.0539,.0348],[.7379,.048,.031],[.7335,.0421,.0272],[.7291,.0362,.0234],[.7247,.0303,.0195],[.7202,.0244,.0157],[.7158,.0185,.0119],[.7114,.0125,.0081],[.7069,.0066,.0043],[.7025,7e-4,5e-4],[.6964,0,0],[.69,0,0],[.6836,0,0],[.6772,0,0],[.6708,0,0],[.6644,0,0],[.658,0,0],[.6516,0,0],[.6452,0,0],[.6388,0,0],[.6324,0,0],[.626,0,0],[.6196,0,0],[.6132,0,0],[.6068,0,0],[.6004,0,0],[.594,0,0],[.5876,0,0],[.5812,0,0],[.5748,0,0],[.5684,0,0],[.562,0,0],[.5556,0,0],[.5492,0,0],[.5428,0,0],[.5364,0,0],[.53,0,0],[.5236,0,0],[.5172,0,0],[.5108,0,0],[.5044,0,0],[.498,0,0]]};ce.Oranges={interpolate:!0,colors:[[1,.9608,.9216],[.9999,.9589,.918],[.9998,.9571,.9144],[.9996,.9552,.9109],[.9995,.9534,.9073],[.9994,.9516,.9037],[.9993,.9497,.9002],[.9991,.9479,.8966],[.999,.946,.893],[.9989,.9442,.8895],[.9988,.9423,.8859],[.9986,.9405,.8823],[.9985,.9386,.8788],[.9984,.9368,.8752],[.9983,.9349,.8716],[.9982,.9331,.8681],[.998,.9313,.8645],[.9979,.9294,.8609],[.9978,.9276,.8573],[.9977,.9257,.8538],[.9975,.9239,.8502],[.9974,.922,.8466],[.9973,.9202,.8431],[.9972,.9183,.8395],[.997,.9165,.8359],[.9969,.9146,.8324],[.9968,.9128,.8288],[.9967,.911,.8252],[.9966,.9091,.8217],[.9964,.9073,.8181],[.9963,.9054,.8145],[.9962,.9036,.811],[.9961,.9016,.8072],[.9959,.8989,.8018],[.9958,.8962,.7963],[.9957,.8935,.7909],[.9956,.8908,.7855],[.9954,.8881,.7801],[.9953,.8854,.7747],[.9952,.8827,.7693],[.9951,.88,.7639],[.995,.8773,.7584],[.9948,.8746,.753],[.9947,.8718,.7476],[.9946,.8691,.7422],[.9945,.8664,.7368],[.9943,.8637,.7314],[.9942,.861,.726],[.9941,.8583,.7206],[.994,.8556,.7151],[.9938,.8529,.7097],[.9937,.8502,.7043],[.9936,.8475,.6989],[.9935,.8448,.6935],[.9934,.8421,.6881],[.9932,.8394,.6827],[.9931,.8367,.6772],[.993,.834,.6718],[.9929,.8312,.6664],[.9927,.8285,.661],[.9926,.8258,.6556],[.9925,.8231,.6502],[.9924,.8204,.6448],[.9922,.8177,.6394],[.9922,.8146,.6336],[.9922,.8105,.6268],[.9922,.8063,.6201],[.9922,.8021,.6133],[.9922,.7979,.6065],[.9922,.7937,.5998],[.9922,.7895,.593],[.9922,.7854,.5862],[.9922,.7812,.5795],[.9922,.777,.5727],[.9922,.7728,.5659],[.9922,.7686,.5592],[.9922,.7644,.5524],[.9922,.7603,.5456],[.9922,.7561,.5389],[.9922,.7519,.5321],[.9922,.7477,.5253],[.9922,.7435,.5186],[.9922,.7393,.5118],[.9922,.7352,.505],[.9922,.731,.4983],[.9922,.7268,.4915],[.9922,.7226,.4847],[.9922,.7184,.478],[.9922,.7142,.4712],[.9922,.7101,.4644],[.9922,.7059,.4577],[.9922,.7017,.4509],[.9922,.6975,.4441],[.9922,.6933,.4374],[.9922,.6892,.4306],[.9922,.685,.4238],[.9922,.6808,.4174],[.9922,.6768,.4117],[.9922,.6727,.4059],[.9922,.6687,.4001],[.9922,.6646,.3943],[.9922,.6605,.3885],[.9922,.6565,.3827],[.9922,.6524,.377],[.9922,.6484,.3712],[.9922,.6443,.3654],[.9922,.6402,.3596],[.9922,.6362,.3538],[.9922,.6321,.3481],[.9922,.6281,.3423],[.9922,.624,.3365],[.9922,.6199,.3307],[.9922,.6159,.3249],[.9922,.6118,.3191],[.9922,.6078,.3134],[.9922,.6037,.3076],[.9922,.5996,.3018],[.9922,.5956,.296],[.9922,.5915,.2902],[.9922,.5875,.2844],[.9922,.5834,.2787],[.9922,.5793,.2729],[.9922,.5753,.2671],[.9922,.5712,.2613],[.9922,.5672,.2555],[.9922,.5631,.2498],[.9922,.559,.244],[.9922,.555,.2382],[.9914,.5507,.2328],[.9899,.5463,.2277],[.9885,.5419,.2227],[.987,.5374,.2176],[.9855,.533,.2126],[.984,.5286,.2076],[.9826,.5242,.2025],[.9811,.5197,.1975],[.9796,.5153,.1924],[.9781,.5109,.1874],[.9767,.5064,.1823],[.9752,.502,.1773],[.9737,.4976,.1722],[.9722,.4931,.1672],[.9707,.4887,.1622],[.9693,.4843,.1571],[.9678,.4799,.1521],[.9663,.4754,.147],[.9648,.471,.142],[.9634,.4666,.1369],[.9619,.4621,.1319],[.9604,.4577,.1268],[.9589,.4533,.1218],[.9575,.4489,.1168],[.956,.4444,.1117],[.9545,.44,.1067],[.953,.4356,.1016],[.9516,.4311,.0966],[.9501,.4267,.0915],[.9486,.4223,.0865],[.9471,.4179,.0814],[.9457,.4134,.0764],[.9433,.4092,.0731],[.9403,.4052,.0709],[.9373,.4011,.0687],[.9344,.397,.0665],[.9314,.393,.0643],[.9285,.3889,.0621],[.9255,.3849,.0598],[.9226,.3808,.0576],[.9196,.3767,.0554],[.9167,.3727,.0532],[.9137,.3686,.051],[.9108,.3646,.0488],[.9078,.3605,.0466],[.9049,.3564,.0443],[.9019,.3524,.0421],[.899,.3483,.0399],[.896,.3443,.0377],[.8931,.3402,.0355],[.8901,.3361,.0333],[.8872,.3321,.031],[.8842,.328,.0288],[.8812,.324,.0266],[.8783,.3199,.0244],[.8753,.3158,.0222],[.8724,.3118,.02],[.8694,.3077,.0178],[.8665,.3037,.0155],[.8635,.2996,.0133],[.8606,.2955,.0111],[.8576,.2915,.0089],[.8547,.2874,.0067],[.8517,.2834,.0045],[.8463,.2807,.0041],[.84,.2785,.0044],[.8337,.2763,.0046],[.8275,.274,.0048],[.8212,.2718,.0051],[.8149,.2696,.0053],[.8086,.2674,.0056],[.8024,.2652,.0058],[.7961,.263,.0061],[.7898,.2608,.0063],[.7835,.2585,.0066],[.7773,.2563,.0068],[.771,.2541,.0071],[.7647,.2519,.0073],[.7584,.2497,.0076],[.7522,.2475,.0078],[.7459,.2453,.008],[.7396,.243,.0083],[.7333,.2408,.0085],[.7271,.2386,.0088],[.7208,.2364,.009],[.7145,.2342,.0093],[.7082,.232,.0095],[.702,.2298,.0098],[.6957,.2275,.01],[.6894,.2253,.0103],[.6831,.2231,.0105],[.6769,.2209,.0107],[.6706,.2187,.011],[.6643,.2165,.0112],[.658,.2143,.0115],[.6518,.212,.0117],[.6468,.2101,.0119],[.642,.2083,.012],[.6372,.2065,.0121],[.6324,.2046,.0122],[.6276,.2028,.0124],[.6228,.2009,.0125],[.618,.1991,.0126],[.6132,.1972,.0127],[.6084,.1954,.0129],[.6036,.1935,.013],[.5988,.1917,.0131],[.594,.1899,.0132],[.5892,.188,.0133],[.5844,.1862,.0135],[.5796,.1843,.0136],[.5748,.1825,.0137],[.57,.1806,.0138],[.5652,.1788,.014],[.5604,.1769,.0141],[.5556,.1751,.0142],[.5508,.1732,.0143],[.546,.1714,.0145],[.5412,.1696,.0146],[.5364,.1677,.0147],[.5316,.1659,.0148],[.5268,.164,.0149],[.522,.1622,.0151],[.5172,.1603,.0152],[.5124,.1585,.0153],[.5076,.1566,.0154],[.5028,.1548,.0156],[.498,.1529,.0157]]};ce.PRGn={interpolate:!0,colors:[[.251,0,.2941],[.2593,.0065,.3027],[.2676,.0129,.3113],[.2759,.0194,.32],[.2842,.0258,.3286],[.2925,.0323,.3372],[.3008,.0388,.3458],[.3091,.0452,.3544],[.3174,.0517,.363],[.3257,.0581,.3716],[.334,.0646,.3802],[.3423,.071,.3889],[.3506,.0775,.3975],[.3589,.084,.4061],[.3672,.0904,.4147],[.3755,.0969,.4233],[.3839,.1033,.4319],[.3922,.1098,.4405],[.4005,.1163,.4491],[.4088,.1227,.4577],[.4171,.1292,.4664],[.4254,.1356,.475],[.4337,.1421,.4836],[.442,.1486,.4922],[.4503,.155,.5008],[.4586,.1615,.5094],[.4654,.1701,.5168],[.4708,.1809,.523],[.4762,.1916,.5291],[.4816,.2024,.5353],[.487,.2131,.5414],[.4923,.2239,.5476],[.4977,.2347,.5537],[.5031,.2454,.5599],[.5085,.2562,.566],[.5139,.267,.5722],[.5193,.2777,.5783],[.5246,.2885,.5845],[.53,.2993,.5906],[.5354,.31,.5968],[.5408,.3208,.6029],[.5462,.3316,.6091],[.5516,.3423,.6152],[.5569,.3531,.6214],[.5623,.3639,.6275],[.5677,.3746,.6337],[.5731,.3854,.6398],[.5785,.3962,.646],[.5839,.4069,.6521],[.5892,.4177,.6583],[.5946,.4285,.6644],[.6,.4392,.6706],[.6063,.4474,.6761],[.6126,.4555,.6817],[.6189,.4637,.6872],[.6252,.4718,.6927],[.6315,.48,.6983],[.6378,.4881,.7038],[.6441,.4963,.7093],[.6504,.5044,.7149],[.6567,.5126,.7204],[.6631,.5207,.726],[.6694,.5289,.7315],[.6757,.537,.737],[.682,.5452,.7426],[.6883,.5533,.7481],[.6946,.5615,.7536],[.7009,.5696,.7592],[.7072,.5778,.7647],[.7135,.5859,.7702],[.7198,.5941,.7758],[.7261,.6022,.7813],[.7324,.6104,.7869],[.7387,.6185,.7924],[.745,.6267,.7979],[.7513,.6348,.8035],[.7576,.643,.809],[.7636,.6507,.8137],[.7693,.6579,.8175],[.775,.6651,.8214],[.7807,.6724,.8252],[.7864,.6796,.8291],[.7921,.6868,.8329],[.7978,.694,.8368],[.8035,.7013,.8406],[.8092,.7085,.8444],[.8148,.7157,.8483],[.8205,.723,.8521],[.8262,.7302,.856],[.8319,.7374,.8598],[.8376,.7446,.8637],[.8433,.7519,.8675],[.849,.7591,.8714],[.8547,.7663,.8752],[.8604,.7735,.879],[.8661,.7808,.8829],[.8717,.788,.8867],[.8774,.7952,.8906],[.8831,.8025,.8944],[.8888,.8097,.8983],[.8945,.8169,.9021],[.9002,.8241,.906],[.9059,.8314,.9098],[.9083,.8368,.9121],[.9108,.8421,.9144],[.9133,.8475,.9167],[.9157,.8529,.919],[.9182,.8583,.9213],[.9206,.8637,.9236],[.9231,.8691,.926],[.9256,.8744,.9283],[.928,.8798,.9306],[.9305,.8852,.9329],[.9329,.8906,.9352],[.9354,.896,.9375],[.9379,.9013,.9398],[.9403,.9067,.9421],[.9428,.9121,.9444],[.9453,.9175,.9467],[.9477,.9229,.949],[.9502,.9283,.9513],[.9526,.9336,.9536],[.9551,.939,.9559],[.9576,.9444,.9582],[.96,.9498,.9606],[.9625,.9552,.9629],[.9649,.9606,.9652],[.9674,.9659,.9675],[.9663,.9681,.9659],[.9617,.967,.9603],[.9571,.9659,.9548],[.9525,.9649,.9493],[.9479,.9638,.9437],[.9433,.9627,.9382],[.9386,.9616,.9326],[.934,.9606,.9271],[.9294,.9595,.9216],[.9248,.9584,.916],[.9202,.9573,.9105],[.9156,.9562,.905],[.911,.9552,.8994],[.9063,.9541,.8939],[.9017,.953,.8884],[.8971,.9519,.8828],[.8925,.9509,.8773],[.8879,.9498,.8717],[.8833,.9487,.8662],[.8787,.9476,.8607],[.874,.9466,.8551],[.8694,.9455,.8496],[.8648,.9444,.8441],[.8602,.9433,.8385],[.8556,.9423,.833],[.851,.9412,.8275],[.8431,.9379,.8196],[.8353,.9347,.8118],[.8275,.9315,.8039],[.8196,.9283,.7961],[.8118,.925,.7882],[.8039,.9218,.7804],[.7961,.9186,.7725],[.7882,.9153,.7647],[.7804,.9121,.7569],[.7725,.9089,.749],[.7647,.9057,.7412],[.7569,.9024,.7333],[.749,.8992,.7255],[.7412,.896,.7176],[.7333,.8927,.7098],[.7255,.8895,.702],[.7176,.8863,.6941],[.7098,.883,.6863],[.702,.8798,.6784],[.6941,.8766,.6706],[.6863,.8734,.6627],[.6784,.8701,.6549],[.6706,.8669,.6471],[.6627,.8637,.6392],[.6549,.8604,.6314],[.6451,.8554,.6226],[.6334,.8484,.6129],[.6218,.8415,.6032],[.6101,.8346,.5935],[.5984,.8277,.5839],[.5867,.8208,.5742],[.575,.8138,.5645],[.5633,.8069,.5548],[.5516,.8,.5451],[.5399,.7931,.5354],[.5283,.7862,.5257],[.5166,.7792,.516],[.5049,.7723,.5063],[.4932,.7654,.4967],[.4815,.7585,.487],[.4698,.7516,.4773],[.4581,.7446,.4676],[.4464,.7377,.4579],[.4348,.7308,.4482],[.4231,.7239,.4385],[.4114,.717,.4288],[.3997,.71,.4191],[.388,.7031,.4095],[.3763,.6962,.3998],[.3646,.6893,.3901],[.3529,.6824,.3804],[.3433,.674,.3739],[.3336,.6657,.3675],[.3239,.6574,.361],[.3142,.6491,.3546],[.3045,.6408,.3481],[.2948,.6325,.3416],[.2851,.6242,.3352],[.2754,.6159,.3287],[.2657,.6076,.3223],[.2561,.5993,.3158],[.2464,.591,.3093],[.2367,.5827,.3029],[.227,.5744,.2964],[.2173,.5661,.29],[.2076,.5578,.2835],[.1979,.5495,.277],[.1882,.5412,.2706],[.1785,.5329,.2641],[.1689,.5246,.2577],[.1592,.5163,.2512],[.1495,.508,.2448],[.1398,.4997,.2383],[.1301,.4913,.2318],[.1204,.483,.2254],[.1107,.4747,.2189],[.1038,.4666,.2135],[.0997,.4586,.2092],[.0955,.4506,.2049],[.0913,.4426,.2006],[.0872,.4346,.1963],[.083,.4266,.192],[.0789,.4186,.1877],[.0747,.4106,.1834],[.0706,.4026,.1791],[.0664,.3946,.1748],[.0623,.3866,.1705],[.0581,.3786,.1662],[.054,.3706,.1619],[.0498,.3626,.1576],[.0457,.3546,.1532],[.0415,.3466,.1489],[.0374,.3386,.1446],[.0332,.3306,.1403],[.0291,.3226,.136],[.0249,.3146,.1317],[.0208,.3067,.1274],[.0166,.2987,.1231],[.0125,.2907,.1188],[.0083,.2827,.1145],[.0042,.2747,.1102],[0,.2667,.1059]]};ce.Paired={interpolate:!1,colors:[[.651,.8078,.8902],[.1216,.4706,.7059],[.698,.8745,.5412],[.2,.6275,.1725],[.9843,.6039,.6],[.8902,.102,.1098],[.9922,.749,.4353],[1,.498,0],[.7922,.698,.8392],[.4157,.2392,.6039],[1,1,.6],[.6941,.349,.1569]]};ce.Pastel1={interpolate:!1,colors:[[.9843,.7059,.6824],[.702,.8039,.8902],[.8,.9216,.7725],[.8706,.7961,.8941],[.9961,.851,.651],[1,1,.8],[.898,.8471,.7412],[.9922,.8549,.9255],[.949,.949,.949]]};ce.Pastel2={interpolate:!1,colors:[[.702,.8863,.8039],[.9922,.8039,.6745],[.7961,.8353,.9098],[.9569,.7922,.8941],[.902,.9608,.7882],[1,.949,.6824],[.9451,.8863,.8],[.8,.8,.8]]};ce.PiYG={interpolate:!0,colors:[[.5569,.0039,.3216],[.5653,.0079,.3282],[.5738,.0119,.3348],[.5822,.0159,.3414],[.5907,.0199,.348],[.5992,.0239,.3546],[.6076,.0279,.3612],[.6161,.0319,.3679],[.6245,.0359,.3745],[.633,.0399,.3811],[.6414,.0439,.3877],[.6499,.0479,.3943],[.6584,.0519,.4009],[.6668,.0559,.4075],[.6753,.0599,.4141],[.6837,.0639,.4208],[.6922,.0679,.4274],[.7007,.0719,.434],[.7091,.0759,.4406],[.7176,.0799,.4472],[.726,.0839,.4538],[.7345,.0879,.4604],[.7429,.0919,.4671],[.7514,.0959,.4737],[.7599,.0999,.4803],[.7683,.1039,.4869],[.7745,.113,.494],[.7783,.1271,.5015],[.7822,.1413,.509],[.786,.1554,.5166],[.7899,.1696,.5241],[.7937,.1837,.5316],[.7975,.1978,.5392],[.8014,.212,.5467],[.8052,.2261,.5542],[.8091,.2403,.5618],[.8129,.2544,.5693],[.8168,.2686,.5769],[.8206,.2827,.5844],[.8245,.2969,.5919],[.8283,.311,.5995],[.8321,.3252,.607],[.836,.3393,.6145],[.8398,.3535,.6221],[.8437,.3676,.6296],[.8475,.3818,.6371],[.8514,.3959,.6447],[.8552,.4101,.6522],[.8591,.4242,.6597],[.8629,.4384,.6673],[.8667,.4525,.6748],[.8706,.4667,.6824],[.8735,.4764,.6891],[.8764,.486,.6959],[.8794,.4957,.7027],[.8823,.5054,.7094],[.8852,.5151,.7162],[.8881,.5248,.723],[.891,.5345,.7297],[.894,.5442,.7365],[.8969,.5539,.7433],[.8998,.5636,.75],[.9027,.5732,.7568],[.9057,.5829,.7636],[.9086,.5926,.7703],[.9115,.6023,.7771],[.9144,.612,.7839],[.9173,.6217,.7906],[.9203,.6314,.7974],[.9232,.6411,.8042],[.9261,.6507,.8109],[.929,.6604,.8177],[.9319,.6701,.8245],[.9349,.6798,.8312],[.9378,.6895,.838],[.9407,.6992,.8448],[.9436,.7089,.8515],[.946,.717,.8565],[.9479,.7234,.8597],[.9497,.7299,.863],[.9516,.7363,.8662],[.9534,.7428,.8694],[.9552,.7493,.8727],[.9571,.7557,.8759],[.9589,.7622,.8791],[.9608,.7686,.8824],[.9626,.7751,.8856],[.9645,.7815,.8888],[.9663,.788,.892],[.9682,.7945,.8953],[.97,.8009,.8985],[.9719,.8074,.9017],[.9737,.8138,.905],[.9755,.8203,.9082],[.9774,.8268,.9114],[.9792,.8332,.9146],[.9811,.8397,.9179],[.9829,.8461,.9211],[.9848,.8526,.9243],[.9866,.8591,.9276],[.9885,.8655,.9308],[.9903,.872,.934],[.9922,.8784,.9373],[.9912,.882,.9385],[.9903,.8855,.9397],[.9894,.889,.9409],[.9885,.8926,.9422],[.9875,.8961,.9434],[.9866,.8997,.9446],[.9857,.9032,.9459],[.9848,.9067,.9471],[.9839,.9103,.9483],[.9829,.9138,.9496],[.982,.9173,.9508],[.9811,.9209,.952],[.9802,.9244,.9532],[.9792,.928,.9545],[.9783,.9315,.9557],[.9774,.935,.9569],[.9765,.9386,.9582],[.9755,.9421,.9594],[.9746,.9456,.9606],[.9737,.9492,.9619],[.9728,.9527,.9631],[.9719,.9562,.9643],[.9709,.9598,.9656],[.97,.9633,.9668],[.9691,.9669,.968],[.9673,.9685,.9656],[.9647,.9682,.9596],[.9621,.9679,.9536],[.9595,.9676,.9476],[.9569,.9672,.9416],[.9542,.9669,.9356],[.9516,.9666,.9296],[.949,.9663,.9236],[.9464,.966,.9176],[.9438,.9657,.9116],[.9412,.9654,.9057],[.9386,.9651,.8997],[.9359,.9648,.8937],[.9333,.9645,.8877],[.9307,.9642,.8817],[.9281,.9639,.8757],[.9255,.9636,.8697],[.9229,.9632,.8637],[.9203,.9629,.8577],[.9176,.9626,.8517],[.915,.9623,.8457],[.9124,.962,.8397],[.9098,.9617,.8337],[.9072,.9614,.8277],[.9046,.9611,.8217],[.902,.9608,.8157],[.8949,.9577,.8043],[.8878,.9546,.7929],[.8807,.9516,.7815],[.8737,.9485,.7702],[.8666,.9454,.7588],[.8595,.9423,.7474],[.8524,.9393,.736],[.8454,.9362,.7246],[.8383,.9331,.7133],[.8312,.93,.7019],[.8241,.927,.6905],[.8171,.9239,.6791],[.81,.9208,.6677],[.8029,.9177,.6564],[.7958,.9146,.645],[.7888,.9116,.6336],[.7817,.9085,.6222],[.7746,.9054,.6108],[.7676,.9023,.5995],[.7605,.8993,.5881],[.7534,.8962,.5767],[.7463,.8931,.5653],[.7393,.89,.5539],[.7322,.887,.5426],[.7251,.8839,.5312],[.7172,.8795,.5202],[.7084,.8738,.5096],[.6997,.8681,.499],[.6909,.8624,.4884],[.6821,.8567,.4777],[.6734,.8511,.4671],[.6646,.8454,.4565],[.6558,.8397,.4459],[.6471,.834,.4353],[.6383,.8283,.4247],[.6295,.8226,.4141],[.6208,.8169,.4035],[.612,.8112,.3928],[.6032,.8055,.3822],[.5945,.7998,.3716],[.5857,.7942,.361],[.5769,.7885,.3504],[.5682,.7828,.3398],[.5594,.7771,.3292],[.5506,.7714,.3186],[.5419,.7657,.308],[.5331,.76,.2973],[.5243,.7543,.2867],[.5156,.7486,.2761],[.5068,.7429,.2655],[.498,.7373,.2549],[.4903,.7308,.25],[.4827,.7243,.2451],[.475,.7179,.2401],[.4673,.7114,.2352],[.4596,.705,.2303],[.4519,.6985,.2254],[.4442,.692,.2205],[.4365,.6856,.2155],[.4288,.6791,.2106],[.4211,.6727,.2057],[.4135,.6662,.2008],[.4058,.6597,.1958],[.3981,.6533,.1909],[.3904,.6468,.186],[.3827,.6404,.1811],[.375,.6339,.1762],[.3673,.6275,.1712],[.3596,.621,.1663],[.3519,.6145,.1614],[.3443,.6081,.1565],[.3366,.6016,.1516],[.3289,.5952,.1466],[.3212,.5887,.1417],[.3135,.5822,.1368],[.3058,.5758,.1319],[.299,.569,.1288],[.2932,.5619,.1276],[.2874,.5549,.1263],[.2815,.5478,.1251],[.2757,.5407,.1239],[.2698,.5336,.1226],[.264,.5266,.1214],[.2581,.5195,.1202],[.2523,.5124,.119],[.2464,.5053,.1177],[.2406,.4983,.1165],[.2348,.4912,.1153],[.2289,.4841,.114],[.2231,.477,.1128],[.2172,.47,.1116],[.2114,.4629,.1103],[.2055,.4558,.1091],[.1997,.4488,.1079],[.1938,.4417,.1067],[.188,.4346,.1054],[.1822,.4275,.1042],[.1763,.4205,.103],[.1705,.4134,.1017],[.1646,.4063,.1005],[.1588,.3992,.0993],[.1529,.3922,.098]]};ce.PuBu={interpolate:!0,colors:[[1,.9686,.9843],[.9977,.9667,.9832],[.9953,.9647,.9821],[.993,.9627,.981],[.9906,.9608,.9799],[.9883,.9588,.9788],[.986,.9568,.9777],[.9836,.9548,.9766],[.9813,.9529,.9755],[.979,.9509,.9743],[.9766,.9489,.9732],[.9743,.947,.9721],[.9719,.945,.971],[.9696,.943,.9699],[.9673,.9411,.9688],[.9649,.9391,.9677],[.9626,.9371,.9666],[.9603,.9352,.9655],[.9579,.9332,.9644],[.9556,.9312,.9633],[.9532,.9293,.9622],[.9509,.9273,.9611],[.9486,.9253,.96],[.9462,.9234,.9588],[.9439,.9214,.9577],[.9416,.9194,.9566],[.9392,.9174,.9555],[.9369,.9155,.9544],[.9345,.9135,.9533],[.9322,.9115,.9522],[.9299,.9096,.9511],[.9275,.9076,.95],[.9251,.9055,.9488],[.9216,.9028,.9474],[.9182,.9001,.9459],[.9147,.8974,.9444],[.9113,.8947,.9429],[.9078,.892,.9415],[.9044,.8893,.94],[.9009,.8866,.9385],[.8975,.8839,.937],[.8941,.8812,.9355],[.8906,.8785,.9341],[.8872,.8758,.9326],[.8837,.8731,.9311],[.8803,.8704,.9296],[.8768,.8677,.9282],[.8734,.8649,.9267],[.8699,.8622,.9252],[.8665,.8595,.9237],[.8631,.8568,.9223],[.8596,.8541,.9208],[.8562,.8514,.9193],[.8527,.8487,.9178],[.8493,.846,.9164],[.8458,.8433,.9149],[.8424,.8406,.9134],[.8389,.8379,.9119],[.8355,.8352,.9104],[.832,.8325,.909],[.8286,.8298,.9075],[.8252,.8271,.906],[.8217,.8243,.9045],[.8183,.8216,.9031],[.8144,.819,.9016],[.8092,.8165,.9003],[.8041,.8141,.8989],[.7989,.8116,.8976],[.7937,.8092,.8962],[.7886,.8067,.8949],[.7834,.8042,.8935],[.7782,.8018,.8921],[.7731,.7993,.8908],[.7679,.7968,.8894],[.7627,.7944,.8881],[.7576,.7919,.8867],[.7524,.7895,.8854],[.7472,.787,.884],[.7421,.7845,.8827],[.7369,.7821,.8813],[.7317,.7796,.88],[.7266,.7772,.8786],[.7214,.7747,.8773],[.7162,.7722,.8759],[.711,.7698,.8746],[.7059,.7673,.8732],[.7007,.7649,.8718],[.6955,.7624,.8705],[.6904,.7599,.8691],[.6852,.7575,.8678],[.68,.755,.8664],[.6749,.7526,.8651],[.6697,.7501,.8637],[.6645,.7476,.8624],[.6594,.7452,.861],[.6542,.7427,.8597],[.6487,.7403,.8583],[.6425,.7378,.8568],[.6364,.7353,.8553],[.6302,.7329,.8538],[.6241,.7304,.8524],[.6179,.728,.8509],[.6118,.7255,.8494],[.6056,.723,.8479],[.5995,.7206,.8465],[.5933,.7181,.845],[.5872,.7156,.8435],[.581,.7132,.842],[.5749,.7107,.8406],[.5687,.7083,.8391],[.5626,.7058,.8376],[.5564,.7033,.8361],[.5502,.7009,.8346],[.5441,.6984,.8332],[.5379,.696,.8317],[.5318,.6935,.8302],[.5256,.691,.8287],[.5195,.6886,.8273],[.5133,.6861,.8258],[.5072,.6837,.8243],[.501,.6812,.8228],[.4949,.6787,.8214],[.4887,.6763,.8199],[.4826,.6738,.8184],[.4764,.6714,.8169],[.4703,.6689,.8155],[.4641,.6664,.814],[.458,.664,.8125],[.4511,.6612,.8108],[.4435,.6581,.809],[.4358,.6551,.8072],[.4282,.652,.8053],[.4206,.6489,.8035],[.4129,.6458,.8016],[.4053,.6428,.7998],[.3977,.6397,.7979],[.3901,.6366,.7961],[.3824,.6335,.7942],[.3748,.6304,.7924],[.3672,.6274,.7905],[.3596,.6243,.7887],[.3519,.6212,.7869],[.3443,.6181,.785],[.3367,.6151,.7832],[.329,.612,.7813],[.3214,.6089,.7795],[.3138,.6058,.7776],[.3062,.6028,.7758],[.2985,.5997,.7739],[.2909,.5966,.7721],[.2833,.5935,.7702],[.2756,.5905,.7684],[.268,.5874,.7666],[.2604,.5843,.7647],[.2528,.5812,.7629],[.2451,.5782,.761],[.2375,.5751,.7592],[.2299,.572,.7573],[.2223,.5689,.7555],[.2146,.5659,.7536],[.208,.5622,.7517],[.202,.5583,.7497],[.1959,.5544,.7478],[.1899,.5504,.7458],[.1839,.5465,.7438],[.1779,.5426,.7419],[.1718,.5386,.7399],[.1658,.5347,.7379],[.1598,.5307,.736],[.1537,.5268,.734],[.1477,.5229,.732],[.1417,.5189,.7301],[.1357,.515,.7281],[.1296,.5111,.7261],[.1236,.5071,.7242],[.1176,.5032,.7222],[.1115,.4993,.7202],[.1055,.4953,.7182],[.0995,.4914,.7163],[.0935,.4874,.7143],[.0874,.4835,.7123],[.0814,.4796,.7104],[.0754,.4756,.7084],[.0693,.4717,.7064],[.0633,.4678,.7045],[.0573,.4638,.7025],[.0513,.4599,.7005],[.0452,.4559,.6986],[.0392,.452,.6966],[.0332,.4481,.6946],[.0271,.4441,.6927],[.0211,.4402,.6907],[.0195,.4372,.687],[.0194,.4345,.6827],[.0193,.4318,.6784],[.0191,.4291,.674],[.019,.4264,.6697],[.0189,.4237,.6654],[.0188,.4209,.6611],[.0187,.4182,.6568],[.0185,.4155,.6525],[.0184,.4128,.6482],[.0183,.4101,.6439],[.0182,.4074,.6396],[.018,.4047,.6353],[.0179,.402,.631],[.0178,.3993,.6267],[.0177,.3966,.6224],[.0175,.3939,.6181],[.0174,.3912,.6138],[.0173,.3885,.6095],[.0172,.3858,.6052],[.0171,.3831,.6008],[.0169,.3803,.5965],[.0168,.3776,.5922],[.0167,.3749,.5879],[.0166,.3722,.5836],[.0164,.3695,.5793],[.0163,.3668,.575],[.0162,.3641,.5707],[.0161,.3614,.5664],[.0159,.3587,.5621],[.0158,.356,.5578],[.0157,.3533,.5535],[.0155,.3493,.5472],[.0152,.3451,.5407],[.015,.3409,.5342],[.0147,.3367,.5277],[.0145,.3325,.5212],[.0142,.3284,.5146],[.014,.3242,.5081],[.0137,.32,.5016],[.0135,.3158,.4951],[.0133,.3116,.4886],[.013,.3075,.482],[.0128,.3033,.4755],[.0125,.2991,.469],[.0123,.2949,.4625],[.012,.2907,.4559],[.0118,.2865,.4494],[.0115,.2824,.4429],[.0113,.2782,.4364],[.011,.274,.4299],[.0108,.2698,.4233],[.0105,.2656,.4168],[.0103,.2614,.4103],[.0101,.2573,.4038],[.0098,.2531,.3973],[.0096,.2489,.3907],[.0093,.2447,.3842],[.0091,.2405,.3777],[.0088,.2363,.3712],[.0086,.2322,.3647],[.0083,.228,.3581],[.0081,.2238,.3516],[.0078,.2196,.3451]]};ce.PuBuGn={interpolate:!0,colors:[[1,.9686,.9843],[.9977,.966,.983],[.9953,.9635,.9816],[.993,.9609,.9803],[.9906,.9583,.9789],[.9883,.9557,.9775],[.986,.9531,.9762],[.9836,.9505,.9748],[.9813,.948,.9735],[.979,.9454,.9721],[.9766,.9428,.9708],[.9743,.9402,.9694],[.9719,.9376,.9681],[.9696,.935,.9667],[.9673,.9325,.9654],[.9649,.9299,.964],[.9626,.9273,.9627],[.9603,.9247,.9613],[.9579,.9221,.96],[.9556,.9195,.9586],[.9532,.917,.9572],[.9509,.9144,.9559],[.9486,.9118,.9545],[.9462,.9092,.9532],[.9439,.9066,.9518],[.9416,.904,.9505],[.9392,.9015,.9491],[.9369,.8989,.9478],[.9345,.8963,.9464],[.9322,.8937,.9451],[.9299,.8911,.9437],[.9275,.8885,.9424],[.9251,.886,.941],[.9216,.8839,.9398],[.9182,.8818,.9386],[.9147,.8797,.9373],[.9113,.8776,.9361],[.9078,.8756,.9349],[.9044,.8735,.9336],[.9009,.8714,.9324],[.8975,.8693,.9312],[.8941,.8672,.93],[.8906,.8651,.9287],[.8872,.863,.9275],[.8837,.8609,.9263],[.8803,.8588,.925],[.8768,.8567,.9238],[.8734,.8546,.9226],[.8699,.8525,.9213],[.8665,.8505,.9201],[.8631,.8484,.9189],[.8596,.8463,.9176],[.8562,.8442,.9164],[.8527,.8421,.9152],[.8493,.84,.914],[.8458,.8379,.9127],[.8424,.8358,.9115],[.8389,.8337,.9103],[.8355,.8316,.909],[.832,.8295,.9078],[.8286,.8275,.9066],[.8252,.8254,.9053],[.8217,.8233,.9041],[.8183,.8212,.9029],[.8144,.819,.9016],[.8092,.8165,.9003],[.8041,.8141,.8989],[.7989,.8116,.8976],[.7937,.8092,.8962],[.7886,.8067,.8949],[.7834,.8042,.8935],[.7782,.8018,.8921],[.7731,.7993,.8908],[.7679,.7968,.8894],[.7627,.7944,.8881],[.7576,.7919,.8867],[.7524,.7895,.8854],[.7472,.787,.884],[.7421,.7845,.8827],[.7369,.7821,.8813],[.7317,.7796,.88],[.7266,.7772,.8786],[.7214,.7747,.8773],[.7162,.7722,.8759],[.711,.7698,.8746],[.7059,.7673,.8732],[.7007,.7649,.8718],[.6955,.7624,.8705],[.6904,.7599,.8691],[.6852,.7575,.8678],[.68,.755,.8664],[.6749,.7526,.8651],[.6697,.7501,.8637],[.6645,.7476,.8624],[.6594,.7452,.861],[.6542,.7427,.8597],[.6481,.7403,.8583],[.6403,.7378,.8568],[.6326,.7353,.8553],[.6248,.7329,.8538],[.6171,.7304,.8524],[.6093,.728,.8509],[.6016,.7255,.8494],[.5938,.723,.8479],[.5861,.7206,.8465],[.5783,.7181,.845],[.5706,.7156,.8435],[.5628,.7132,.842],[.5551,.7107,.8406],[.5473,.7083,.8391],[.5396,.7058,.8376],[.5318,.7033,.8361],[.5241,.7009,.8346],[.5163,.6984,.8332],[.5086,.696,.8317],[.5008,.6935,.8302],[.4931,.691,.8287],[.4853,.6886,.8273],[.4776,.6861,.8258],[.4698,.6837,.8243],[.4621,.6812,.8228],[.4543,.6787,.8214],[.4466,.6763,.8199],[.4388,.6738,.8184],[.431,.6714,.8169],[.4233,.6689,.8155],[.4155,.6664,.814],[.4078,.664,.8125],[.4009,.6612,.8108],[.3949,.6581,.809],[.3889,.6551,.8072],[.3828,.652,.8053],[.3768,.6489,.8035],[.3708,.6458,.8016],[.3647,.6428,.7998],[.3587,.6397,.7979],[.3527,.6366,.7961],[.3467,.6335,.7942],[.3406,.6304,.7924],[.3346,.6274,.7905],[.3286,.6243,.7887],[.3225,.6212,.7869],[.3165,.6181,.785],[.3105,.6151,.7832],[.3045,.612,.7813],[.2984,.6089,.7795],[.2924,.6058,.7776],[.2864,.6028,.7758],[.2803,.5997,.7739],[.2743,.5966,.7721],[.2683,.5935,.7702],[.2623,.5905,.7684],[.2562,.5874,.7666],[.2502,.5843,.7647],[.2442,.5812,.7629],[.2381,.5782,.761],[.2321,.5751,.7592],[.2261,.572,.7573],[.2201,.5689,.7555],[.214,.5659,.7536],[.2078,.5636,.7488],[.2014,.5617,.7421],[.195,.5599,.7355],[.1886,.558,.7289],[.1822,.5562,.7222],[.1758,.5543,.7156],[.1694,.5525,.7089],[.163,.5506,.7023],[.1566,.5488,.6956],[.1502,.5469,.689],[.1438,.5451,.6824],[.1374,.5433,.6757],[.131,.5414,.6691],[.1246,.5396,.6624],[.1182,.5377,.6558],[.1118,.5359,.6491],[.1054,.534,.6425],[.099,.5322,.6358],[.0926,.5303,.6292],[.0862,.5285,.6226],[.0798,.5266,.6159],[.0734,.5248,.6093],[.067,.523,.6026],[.0606,.5211,.596],[.0542,.5193,.5893],[.0478,.5174,.5827],[.0414,.5156,.5761],[.035,.5137,.5694],[.0286,.5119,.5628],[.0222,.51,.5561],[.0158,.5082,.5495],[.0094,.5063,.5428],[.0078,.5039,.5367],[.0076,.5014,.5306],[.0075,.4988,.5246],[.0074,.4962,.5186],[.0073,.4936,.5125],[.0071,.491,.5065],[.007,.4884,.5005],[.0069,.4859,.4945],[.0068,.4833,.4884],[.0066,.4807,.4824],[.0065,.4781,.4764],[.0064,.4755,.4703],[.0063,.4729,.4643],[.0062,.4704,.4583],[.006,.4678,.4523],[.0059,.4652,.4462],[.0058,.4626,.4402],[.0057,.46,.4342],[.0055,.4574,.4281],[.0054,.4549,.4221],[.0053,.4523,.4161],[.0052,.4497,.4101],[.005,.4471,.404],[.0049,.4445,.398],[.0048,.4419,.392],[.0047,.4394,.3859],[.0046,.4368,.3799],[.0044,.4342,.3739],[.0043,.4316,.3679],[.0042,.429,.3618],[.0041,.4264,.3558],[.0039,.4239,.3498],[.0039,.4194,.3453],[.0039,.4148,.3409],[.0039,.4101,.3366],[.0039,.4054,.3323],[.0039,.4007,.328],[.0039,.3961,.3237],[.0039,.3914,.3194],[.0039,.3867,.3151],[.0039,.382,.3108],[.0039,.3774,.3065],[.0039,.3727,.3022],[.0039,.368,.2979],[.0039,.3633,.2936],[.0039,.3587,.2893],[.0039,.354,.285],[.0039,.3493,.2807],[.0039,.3446,.2764],[.0039,.34,.272],[.0039,.3353,.2677],[.0039,.3306,.2634],[.0039,.3259,.2591],[.0039,.3213,.2548],[.0039,.3166,.2505],[.0039,.3119,.2462],[.0039,.3072,.2419],[.0039,.3026,.2376],[.0039,.2979,.2333],[.0039,.2932,.229],[.0039,.2885,.2247],[.0039,.2839,.2204],[.0039,.2792,.2161],[.0039,.2745,.2118]]};ce.PuOr={interpolate:!0,colors:[[.498,.2314,.0314],[.506,.2358,.0311],[.514,.2403,.0308],[.522,.2448,.0304],[.53,.2492,.0301],[.538,.2537,.0298],[.546,.2581,.0295],[.554,.2626,.0292],[.562,.2671,.0289],[.57,.2715,.0286],[.578,.276,.0283],[.586,.2804,.028],[.594,.2849,.0277],[.602,.2894,.0274],[.61,.2938,.0271],[.618,.2983,.0268],[.626,.3027,.0265],[.634,.3072,.0261],[.642,.3116,.0258],[.65,.3161,.0255],[.658,.3206,.0252],[.666,.325,.0249],[.674,.3295,.0246],[.682,.3339,.0243],[.69,.3384,.024],[.698,.3429,.0237],[.7054,.3483,.0246],[.7123,.3548,.0268],[.7193,.3612,.0289],[.7262,.3677,.0311],[.7331,.3742,.0332],[.74,.3806,.0354],[.7469,.3871,.0375],[.7539,.3935,.0397],[.7608,.4,.0418],[.7677,.4065,.044],[.7746,.4129,.0461],[.7815,.4194,.0483],[.7885,.4258,.0504],[.7954,.4323,.0526],[.8023,.4388,.0547],[.8092,.4452,.0569],[.8161,.4517,.0591],[.8231,.4581,.0612],[.83,.4646,.0634],[.8369,.471,.0655],[.8438,.4775,.0677],[.8507,.484,.0698],[.8577,.4904,.072],[.8646,.4969,.0741],[.8715,.5033,.0763],[.8784,.5098,.0784],[.8829,.5181,.0906],[.8874,.5264,.1027],[.8918,.5347,.1149],[.8963,.543,.127],[.9007,.5513,.1392],[.9052,.5596,.1513],[.9097,.5679,.1635],[.9141,.5762,.1756],[.9186,.5845,.1878],[.923,.5928,.1999],[.9275,.6012,.2121],[.9319,.6095,.2242],[.9364,.6178,.2364],[.9409,.6261,.2485],[.9453,.6344,.2607],[.9498,.6427,.2728],[.9542,.651,.285],[.9587,.6593,.2971],[.9632,.6676,.3093],[.9676,.6759,.3214],[.9721,.6842,.3336],[.9765,.6925,.3457],[.981,.7008,.3579],[.9855,.7091,.37],[.9899,.7174,.3822],[.9922,.7246,.3946],[.9924,.7308,.4074],[.9925,.7369,.4201],[.9927,.7431,.4329],[.9928,.7493,.4457],[.993,.7554,.4584],[.9932,.7616,.4712],[.9933,.7677,.484],[.9935,.7739,.4967],[.9936,.78,.5095],[.9938,.7862,.5223],[.9939,.7923,.535],[.9941,.7985,.5478],[.9942,.8046,.5606],[.9944,.8108,.5733],[.9945,.8169,.5861],[.9947,.8231,.5988],[.9948,.8292,.6116],[.995,.8354,.6244],[.9952,.8415,.6371],[.9953,.8477,.6499],[.9955,.8538,.6627],[.9956,.86,.6754],[.9958,.8661,.6882],[.9959,.8723,.701],[.9961,.8784,.7137],[.995,.882,.7237],[.9939,.8855,.7337],[.9928,.889,.7437],[.9918,.8926,.7537],[.9907,.8961,.7637],[.9896,.8997,.7737],[.9885,.9032,.7837],[.9875,.9067,.7937],[.9864,.9103,.8037],[.9853,.9138,.8137],[.9842,.9173,.8237],[.9832,.9209,.8337],[.9821,.9244,.8437],[.981,.928,.8537],[.9799,.9315,.8637],[.9789,.935,.8737],[.9778,.9386,.8837],[.9767,.9421,.8937],[.9756,.9456,.9037],[.9745,.9492,.9136],[.9735,.9527,.9236],[.9724,.9562,.9336],[.9713,.9598,.9436],[.9702,.9633,.9536],[.9692,.9669,.9636],[.9662,.9664,.9677],[.9615,.9619,.9659],[.9567,.9575,.964],[.9519,.953,.9622],[.9472,.9486,.9603],[.9424,.9441,.9585],[.9376,.9396,.9566],[.9329,.9352,.9548],[.9281,.9307,.9529],[.9233,.9263,.9511],[.9186,.9218,.9493],[.9138,.9173,.9474],[.909,.9129,.9456],[.9043,.9084,.9437],[.8995,.904,.9419],[.8947,.8995,.94],[.89,.895,.9382],[.8852,.8906,.9363],[.8804,.8861,.9345],[.8757,.8817,.9326],[.8709,.8772,.9308],[.8661,.8727,.929],[.8614,.8683,.9271],[.8566,.8638,.9253],[.8518,.8594,.9234],[.8471,.8549,.9216],[.8412,.8477,.9177],[.8354,.8404,.9139],[.8295,.8332,.91],[.8237,.826,.9062],[.8178,.8188,.9023],[.812,.8115,.8985],[.8062,.8043,.8947],[.8003,.7971,.8908],[.7945,.7899,.887],[.7886,.7826,.8831],[.7828,.7754,.8793],[.7769,.7682,.8754],[.7711,.7609,.8716],[.7652,.7537,.8677],[.7594,.7465,.8639],[.7536,.7393,.8601],[.7477,.732,.8562],[.7419,.7248,.8524],[.736,.7176,.8485],[.7302,.7103,.8447],[.7243,.7031,.8408],[.7185,.6959,.837],[.7126,.6887,.8331],[.7068,.6814,.8293],[.701,.6742,.8255],[.6942,.6663,.8206],[.6865,.6577,.8148],[.6788,.6491,.8089],[.6711,.6404,.8031],[.6634,.6318,.7972],[.6557,.6232,.7914],[.6481,.6146,.7855],[.6404,.606,.7797],[.6327,.5974,.7739],[.625,.5888,.768],[.6173,.5802,.7622],[.6096,.5715,.7563],[.6019,.5629,.7505],[.5942,.5543,.7446],[.5865,.5457,.7388],[.5789,.5371,.7329],[.5712,.5285,.7271],[.5635,.5199,.7213],[.5558,.5113,.7154],[.5481,.5027,.7096],[.5404,.494,.7037],[.5327,.4854,.6979],[.525,.4768,.692],[.5173,.4682,.6862],[.5097,.4596,.6804],[.502,.451,.6745],[.4952,.4393,.669],[.4884,.4276,.6634],[.4817,.4159,.6579],[.4749,.4042,.6524],[.4681,.3925,.6468],[.4614,.3809,.6413],[.4546,.3692,.6358],[.4478,.3575,.6302],[.4411,.3458,.6247],[.4343,.3341,.6191],[.4275,.3224,.6136],[.4208,.3107,.6081],[.414,.299,.6025],[.4072,.2874,.597],[.4005,.2757,.5915],[.3937,.264,.5859],[.3869,.2523,.5804],[.3802,.2406,.5749],[.3734,.2289,.5693],[.3666,.2172,.5638],[.3599,.2055,.5582],[.3531,.1938,.5527],[.3463,.1822,.5472],[.3396,.1705,.5416],[.3328,.1588,.5361],[.3264,.1499,.5286],[.3204,.1439,.5193],[.3144,.1379,.5099],[.3084,.1319,.5005],[.3024,.126,.4911],[.2964,.12,.4817],[.2904,.114,.4724],[.2844,.108,.463],[.2784,.102,.4536],[.2724,.096,.4442],[.2664,.09,.4348],[.2604,.084,.4255],[.2544,.078,.4161],[.2484,.072,.4067],[.2424,.066,.3973],[.2364,.06,.3879],[.2304,.054,.3785],[.2245,.048,.3692],[.2185,.042,.3598],[.2125,.036,.3504],[.2065,.03,.341],[.2005,.024,.3316],[.1945,.018,.3223],[.1885,.012,.3129],[.1825,.006,.3035],[.1765,0,.2941]]};ce.PuRd={interpolate:!0,colors:[[.9686,.9569,.9765],[.9667,.9545,.9752],[.9647,.9522,.974],[.9627,.9499,.9728],[.9608,.9475,.9715],[.9588,.9452,.9703],[.9568,.9428,.9691],[.9548,.9405,.9679],[.9529,.9382,.9666],[.9509,.9358,.9654],[.9489,.9335,.9642],[.947,.9311,.9629],[.945,.9288,.9617],[.943,.9265,.9605],[.9411,.9241,.9592],[.9391,.9218,.958],[.9371,.9195,.9568],[.9352,.9171,.9556],[.9332,.9148,.9543],[.9312,.9124,.9531],[.9293,.9101,.9519],[.9273,.9078,.9506],[.9253,.9054,.9494],[.9234,.9031,.9482],[.9214,.9008,.9469],[.9194,.8984,.9457],[.9174,.8961,.9445],[.9155,.8937,.9433],[.9135,.8914,.942],[.9115,.8891,.9408],[.9096,.8867,.9396],[.9076,.8844,.9383],[.9056,.8817,.9369],[.9033,.8768,.9343],[.9009,.8719,.9318],[.8986,.867,.9292],[.8962,.8621,.9266],[.8939,.8571,.924],[.8916,.8522,.9214],[.8892,.8473,.9188],[.8869,.8424,.9163],[.8846,.8374,.9137],[.8822,.8325,.9111],[.8799,.8276,.9085],[.8775,.8227,.9059],[.8752,.8178,.9033],[.8729,.8128,.9008],[.8705,.8079,.8982],[.8682,.803,.8956],[.8659,.7981,.893],[.8635,.7932,.8904],[.8612,.7882,.8878],[.8588,.7833,.8853],[.8565,.7784,.8827],[.8542,.7735,.8801],[.8518,.7686,.8775],[.8495,.7636,.8749],[.8472,.7587,.8723],[.8448,.7538,.8698],[.8425,.7489,.8672],[.8401,.7439,.8646],[.8378,.739,.862],[.8355,.7341,.8594],[.8331,.7292,.8568],[.831,.7244,.8543],[.8297,.7198,.852],[.8283,.7152,.8496],[.827,.7107,.8473],[.8256,.7061,.845],[.8243,.7016,.8426],[.8229,.697,.8403],[.8216,.6925,.838],[.8202,.6879,.8356],[.8189,.6834,.8333],[.8175,.6788,.8309],[.8161,.6743,.8286],[.8148,.6697,.8263],[.8134,.6652,.8239],[.8121,.6606,.8216],[.8107,.6561,.8193],[.8094,.6515,.8169],[.808,.647,.8146],[.8067,.6424,.8122],[.8053,.6379,.8099],[.804,.6333,.8076],[.8026,.6288,.8052],[.8013,.6242,.8029],[.7999,.6197,.8006],[.7986,.6151,.7982],[.7972,.6105,.7959],[.7958,.606,.7935],[.7945,.6014,.7912],[.7931,.5969,.7889],[.7918,.5923,.7865],[.7904,.5878,.7842],[.7891,.5832,.7819],[.7893,.5782,.7793],[.792,.5724,.7765],[.7947,.5667,.7737],[.7974,.5609,.7708],[.8001,.5551,.768],[.8028,.5493,.7652],[.8055,.5435,.7624],[.8082,.5377,.7595],[.8109,.532,.7567],[.8136,.5262,.7539],[.8163,.5204,.751],[.819,.5146,.7482],[.8217,.5088,.7454],[.8244,.5031,.7425],[.8271,.4973,.7397],[.8299,.4915,.7369],[.8326,.4857,.7341],[.8353,.4799,.7312],[.838,.4741,.7284],[.8407,.4684,.7256],[.8434,.4626,.7227],[.8461,.4568,.7199],[.8488,.451,.7171],[.8515,.4452,.7142],[.8542,.4394,.7114],[.8569,.4337,.7086],[.8596,.4279,.7058],[.8623,.4221,.7029],[.865,.4163,.7001],[.8677,.4105,.6973],[.8704,.4048,.6944],[.8732,.399,.6916],[.875,.3924,.6879],[.876,.385,.6832],[.877,.3776,.6785],[.878,.3702,.6738],[.8789,.3629,.6692],[.8799,.3555,.6645],[.8809,.3481,.6598],[.8819,.3407,.6551],[.8829,.3333,.6505],[.8839,.326,.6458],[.8848,.3186,.6411],[.8858,.3112,.6364],[.8868,.3038,.6318],[.8878,.2964,.6271],[.8888,.289,.6224],[.8898,.2817,.6177],[.8907,.2743,.6131],[.8917,.2669,.6084],[.8927,.2595,.6037],[.8937,.2521,.599],[.8947,.2448,.5944],[.8957,.2374,.5897],[.8967,.23,.585],[.8976,.2226,.5803],[.8986,.2152,.5757],[.8996,.2078,.571],[.9006,.2005,.5663],[.9016,.1931,.5616],[.9026,.1857,.557],[.9035,.1783,.5523],[.9045,.1709,.5476],[.9055,.1636,.5429],[.904,.159,.5372],[.9009,.1562,.5308],[.8978,.1534,.5244],[.8947,.1505,.518],[.8917,.1477,.5116],[.8886,.1449,.5052],[.8855,.142,.4988],[.8824,.1392,.4924],[.8794,.1364,.486],[.8763,.1335,.4796],[.8732,.1307,.4732],[.8701,.1279,.4668],[.8671,.1251,.4604],[.864,.1222,.454],[.8609,.1194,.4476],[.8578,.1166,.4412],[.8547,.1137,.4348],[.8517,.1109,.4284],[.8486,.1081,.422],[.8455,.1053,.4156],[.8424,.1024,.4092],[.8394,.0996,.4028],[.8363,.0968,.3964],[.8332,.0939,.39],[.8301,.0911,.3836],[.8271,.0883,.3772],[.824,.0854,.3708],[.8209,.0826,.3644],[.8178,.0798,.358],[.8148,.077,.3516],[.8117,.0741,.3453],[.8086,.0713,.3389],[.8029,.0689,.3355],[.7962,.0667,.3332],[.7896,.0645,.3308],[.7829,.0623,.3285],[.7763,.0601,.3262],[.7696,.0579,.3238],[.763,.0556,.3215],[.7564,.0534,.3191],[.7497,.0512,.3168],[.7431,.049,.3145],[.7364,.0468,.3121],[.7298,.0446,.3098],[.7231,.0424,.3075],[.7165,.0401,.3051],[.7099,.0379,.3028],[.7032,.0357,.3004],[.6966,.0335,.2981],[.6899,.0313,.2958],[.6833,.0291,.2934],[.6766,.0269,.2911],[.67,.0246,.2888],[.6633,.0224,.2864],[.6567,.0202,.2841],[.6501,.018,.2817],[.6434,.0158,.2794],[.6368,.0136,.2771],[.6301,.0113,.2747],[.6235,.0091,.2724],[.6168,.0069,.27],[.6102,.0047,.2677],[.6036,.0025,.2654],[.5969,3e-4,.263],[.5908,0,.2589],[.5848,0,.2544],[.5787,0,.25],[.5727,0,.2456],[.5667,0,.2412],[.5607,0,.2367],[.5546,0,.2323],[.5486,0,.2279],[.5426,0,.2234],[.5365,0,.219],[.5305,0,.2146],[.5245,0,.2101],[.5185,0,.2057],[.5124,0,.2013],[.5064,0,.1969],[.5004,0,.1924],[.4943,0,.188],[.4883,0,.1836],[.4823,0,.1791],[.4763,0,.1747],[.4702,0,.1703],[.4642,0,.1659],[.4582,0,.1614],[.4521,0,.157],[.4461,0,.1526],[.4401,0,.1481],[.4341,0,.1437],[.428,0,.1393],[.422,0,.1349],[.416,0,.1304],[.41,0,.126],[.4039,0,.1216]]};ce.Purples={interpolate:!0,colors:[[.9882,.9843,.9922],[.9866,.9826,.9912],[.985,.9809,.9902],[.9834,.9791,.9892],[.9818,.9774,.9882],[.9802,.9757,.9872],[.9786,.974,.9863],[.977,.9723,.9853],[.9754,.9705,.9843],[.9738,.9688,.9833],[.9722,.9671,.9823],[.9706,.9654,.9813],[.969,.9636,.9803],[.9674,.9619,.9794],[.9658,.9602,.9784],[.9642,.9585,.9774],[.9626,.9568,.9764],[.961,.955,.9754],[.9594,.9533,.9744],[.9578,.9516,.9735],[.9562,.9499,.9725],[.9546,.9481,.9715],[.953,.9464,.9705],[.9514,.9447,.9695],[.9499,.943,.9685],[.9483,.9413,.9676],[.9467,.9395,.9666],[.9451,.9378,.9656],[.9435,.9361,.9646],[.9419,.9344,.9636],[.9403,.9326,.9626],[.9387,.9309,.9616],[.9369,.9291,.9606],[.9343,.9268,.9594],[.9318,.9244,.9582],[.9292,.9221,.9569],[.9266,.9198,.9557],[.924,.9174,.9545],[.9214,.9151,.9532],[.9188,.9128,.952],[.9163,.9104,.9508],[.9137,.9081,.9496],[.9111,.9057,.9483],[.9085,.9034,.9471],[.9059,.9011,.9459],[.9033,.8987,.9446],[.9008,.8964,.9434],[.8982,.8941,.9422],[.8956,.8917,.9409],[.893,.8894,.9397],[.8904,.887,.9385],[.8878,.8847,.9373],[.8853,.8824,.936],[.8827,.88,.9348],[.8801,.8777,.9336],[.8775,.8754,.9323],[.8749,.873,.9311],[.8723,.8707,.9299],[.8698,.8683,.9286],[.8672,.866,.9274],[.8646,.8637,.9262],[.862,.8613,.925],[.8594,.859,.9237],[.8568,.8567,.9225],[.854,.854,.9211],[.8503,.8504,.9193],[.8466,.8469,.9174],[.8429,.8433,.9156],[.8392,.8397,.9137],[.8355,.8362,.9119],[.8318,.8326,.91],[.8281,.829,.9082],[.8245,.8255,.9063],[.8208,.8219,.9045],[.8171,.8183,.9027],[.8134,.8148,.9008],[.8097,.8112,.899],[.806,.8076,.8971],[.8023,.8041,.8953],[.7986,.8005,.8934],[.7949,.7969,.8916],[.7912,.7934,.8897],[.7875,.7898,.8879],[.7839,.7862,.886],[.7802,.7827,.8842],[.7765,.7791,.8824],[.7728,.7755,.8805],[.7691,.7719,.8787],[.7654,.7684,.8768],[.7617,.7648,.875],[.758,.7612,.8731],[.7543,.7577,.8713],[.7506,.7541,.8694],[.7469,.7505,.8676],[.7433,.747,.8657],[.7396,.7434,.8639],[.7359,.7396,.8618],[.7322,.7353,.8594],[.7285,.7309,.8569],[.7248,.7266,.8544],[.7211,.7223,.852],[.7174,.718,.8495],[.7137,.7137,.8471],[.71,.7094,.8446],[.7063,.7051,.8421],[.7027,.7008,.8397],[.699,.6965,.8372],[.6953,.6922,.8348],[.6916,.6879,.8323],[.6879,.6836,.8298],[.6842,.6793,.8274],[.6805,.675,.8249],[.6768,.6707,.8225],[.6731,.6664,.82],[.6694,.6621,.8175],[.6657,.6577,.8151],[.6621,.6534,.8126],[.6584,.6491,.8101],[.6547,.6448,.8077],[.651,.6405,.8052],[.6473,.6362,.8028],[.6436,.6319,.8003],[.6399,.6276,.7978],[.6362,.6233,.7954],[.6325,.619,.7929],[.6288,.6147,.7905],[.6251,.6104,.788],[.6215,.6061,.7855],[.6178,.6021,.7835],[.6141,.5986,.7817],[.6104,.595,.78],[.6067,.5914,.7783],[.603,.5879,.7766],[.5993,.5843,.7748],[.5956,.5807,.7731],[.5919,.5772,.7714],[.5882,.5736,.7697],[.5845,.57,.768],[.5809,.5665,.7662],[.5772,.5629,.7645],[.5735,.5593,.7628],[.5698,.5558,.7611],[.5661,.5522,.7593],[.5624,.5486,.7576],[.5587,.5451,.7559],[.555,.5415,.7542],[.5513,.5379,.7524],[.5476,.5343,.7507],[.5439,.5308,.749],[.5403,.5272,.7473],[.5366,.5236,.7456],[.5329,.5201,.7438],[.5292,.5165,.7421],[.5255,.5129,.7404],[.5218,.5094,.7387],[.5181,.5058,.7369],[.5144,.5022,.7352],[.5107,.4987,.7335],[.507,.4951,.7318],[.5033,.4915,.7301],[.5003,.4868,.7276],[.4976,.4814,.7248],[.4949,.476,.722],[.4921,.4706,.7192],[.4894,.4652,.7163],[.4867,.4597,.7135],[.484,.4543,.7107],[.4813,.4489,.7078],[.4786,.4435,.705],[.4759,.4381,.7022],[.4732,.4327,.6993],[.4705,.4273,.6965],[.4678,.4219,.6937],[.4651,.4164,.6909],[.4624,.411,.688],[.4597,.4056,.6852],[.457,.4002,.6824],[.4543,.3948,.6795],[.4515,.3894,.6767],[.4488,.384,.6739],[.4461,.3785,.671],[.4434,.3731,.6682],[.4407,.3677,.6654],[.438,.3623,.6626],[.4353,.3569,.6597],[.4326,.3515,.6569],[.4299,.3461,.6541],[.4272,.3407,.6512],[.4245,.3352,.6484],[.4218,.3298,.6456],[.4191,.3244,.6428],[.4164,.319,.6399],[.4137,.3138,.6374],[.4109,.3086,.6349],[.4082,.3034,.6324],[.4055,.2983,.63],[.4028,.2931,.6275],[.4001,.2879,.6251],[.3974,.2828,.6226],[.3947,.2776,.6201],[.392,.2724,.6177],[.3893,.2673,.6152],[.3866,.2621,.6128],[.3839,.2569,.6103],[.3812,.2518,.6078],[.3785,.2466,.6054],[.3758,.2414,.6029],[.3731,.2363,.6005],[.3703,.2311,.598],[.3676,.2259,.5955],[.3649,.2208,.5931],[.3622,.2156,.5906],[.3595,.2104,.5882],[.3568,.2053,.5857],[.3541,.2001,.5832],[.3514,.1949,.5808],[.3487,.1898,.5783],[.346,.1846,.5759],[.3433,.1794,.5734],[.3406,.1743,.5709],[.3379,.1691,.5685],[.3352,.1639,.566],[.3325,.1588,.5636],[.3298,.1536,.5611],[.3272,.1487,.5588],[.3246,.1439,.5566],[.322,.1391,.5544],[.3194,.1343,.5522],[.3168,.1296,.55],[.3142,.1248,.5478],[.3116,.12,.5456],[.3091,.1152,.5433],[.3065,.1104,.5411],[.3039,.1056,.5389],[.3013,.1008,.5367],[.2987,.096,.5345],[.2961,.0912,.5323],[.2936,.0864,.5301],[.291,.0816,.5278],[.2884,.0768,.5256],[.2858,.072,.5234],[.2832,.0672,.5212],[.2806,.0624,.519],[.2781,.0576,.5168],[.2755,.0528,.5146],[.2729,.048,.5123],[.2703,.0432,.5101],[.2677,.0384,.5079],[.2651,.0336,.5057],[.2626,.0288,.5035],[.26,.024,.5013],[.2574,.0192,.4991],[.2548,.0144,.4968],[.2522,.0096,.4946],[.2496,.0048,.4924],[.2471,0,.4902]]};ce.RdBu={interpolate:!0,colors:[[.4039,0,.1216],[.4155,.0037,.1234],[.427,.0074,.1253],[.4385,.0111,.1271],[.4501,.0148,.129],[.4616,.0185,.1308],[.4731,.0221,.1326],[.4847,.0258,.1345],[.4962,.0295,.1363],[.5077,.0332,.1382],[.5193,.0369,.14],[.5308,.0406,.1419],[.5423,.0443,.1437],[.5539,.048,.1456],[.5654,.0517,.1474],[.5769,.0554,.1493],[.5885,.0591,.1511],[.6,.0627,.1529],[.6115,.0664,.1548],[.6231,.0701,.1566],[.6346,.0738,.1585],[.6461,.0775,.1603],[.6577,.0812,.1622],[.6692,.0849,.164],[.6807,.0886,.1659],[.6923,.0923,.1677],[.7008,.0997,.1712],[.7063,.1107,.1765],[.7119,.1218,.1817],[.7174,.1329,.1869],[.723,.1439,.1922],[.7285,.155,.1974],[.734,.1661,.2026],[.7396,.1772,.2078],[.7451,.1882,.2131],[.7506,.1993,.2183],[.7562,.2104,.2235],[.7617,.2215,.2288],[.7672,.2325,.234],[.7728,.2436,.2392],[.7783,.2547,.2444],[.7839,.2657,.2497],[.7894,.2768,.2549],[.7949,.2879,.2601],[.8005,.299,.2654],[.806,.31,.2706],[.8115,.3211,.2758],[.8171,.3322,.281],[.8226,.3433,.2863],[.8281,.3543,.2915],[.8337,.3654,.2967],[.8392,.3765,.302],[.8438,.3871,.3101],[.8484,.3977,.3183],[.8531,.4083,.3264],[.8577,.4189,.3346],[.8623,.4295,.3427],[.8669,.4401,.3509],[.8715,.4507,.359],[.8761,.4614,.3672],[.8807,.472,.3753],[.8854,.4826,.3835],[.89,.4932,.3916],[.8946,.5038,.3998],[.8992,.5144,.4079],[.9038,.525,.4161],[.9084,.5356,.4242],[.913,.5463,.4324],[.9176,.5569,.4405],[.9223,.5675,.4487],[.9269,.5781,.4568],[.9315,.5887,.465],[.9361,.5993,.4731],[.9407,.6099,.4813],[.9453,.6205,.4894],[.9499,.6311,.4976],[.9546,.6418,.5057],[.9576,.6512,.5151],[.9589,.6595,.5257],[.9603,.6678,.5363],[.9617,.6761,.5469],[.9631,.6844,.5576],[.9645,.6927,.5682],[.9659,.701,.5788],[.9672,.7093,.5894],[.9686,.7176,.6],[.97,.726,.6106],[.9714,.7343,.6212],[.9728,.7426,.6318],[.9742,.7509,.6424],[.9755,.7592,.6531],[.9769,.7675,.6637],[.9783,.7758,.6743],[.9797,.7841,.6849],[.9811,.7924,.6955],[.9825,.8007,.7061],[.9839,.809,.7167],[.9852,.8173,.7273],[.9866,.8256,.7379],[.988,.8339,.7486],[.9894,.8422,.7592],[.9908,.8505,.7698],[.9922,.8588,.7804],[.9912,.8631,.7878],[.9903,.8674,.7952],[.9894,.8717,.8025],[.9885,.876,.8099],[.9875,.8804,.8173],[.9866,.8847,.8247],[.9857,.889,.8321],[.9848,.8933,.8394],[.9839,.8976,.8468],[.9829,.9019,.8542],[.982,.9062,.8616],[.9811,.9105,.869],[.9802,.9148,.8764],[.9792,.9191,.8837],[.9783,.9234,.8911],[.9774,.9277,.8985],[.9765,.932,.9059],[.9755,.9363,.9133],[.9746,.9406,.9206],[.9737,.9449,.928],[.9728,.9493,.9354],[.9719,.9536,.9428],[.9709,.9579,.9502],[.97,.9622,.9576],[.9691,.9665,.9649],[.9657,.9672,.9681],[.9599,.9645,.967],[.954,.9617,.9659],[.9482,.9589,.9649],[.9423,.9562,.9638],[.9365,.9534,.9627],[.9306,.9506,.9616],[.9248,.9479,.9606],[.919,.9451,.9595],[.9131,.9423,.9584],[.9073,.9396,.9573],[.9014,.9368,.9562],[.8956,.934,.9552],[.8897,.9313,.9541],[.8839,.9285,.953],[.878,.9257,.9519],[.8722,.923,.9509],[.8664,.9202,.9498],[.8605,.9174,.9487],[.8547,.9146,.9476],[.8488,.9119,.9466],[.843,.9091,.9455],[.8371,.9063,.9444],[.8313,.9036,.9433],[.8255,.9008,.9423],[.8196,.898,.9412],[.8099,.8931,.9384],[.8002,.8882,.9356],[.7905,.8833,.9329],[.7809,.8784,.9301],[.7712,.8734,.9273],[.7615,.8685,.9246],[.7518,.8636,.9218],[.7421,.8587,.919],[.7324,.8537,.9163],[.7227,.8488,.9135],[.713,.8439,.9107],[.7033,.839,.908],[.6937,.8341,.9052],[.684,.8291,.9024],[.6743,.8242,.8997],[.6646,.8193,.8969],[.6549,.8144,.8941],[.6452,.8095,.8913],[.6355,.8045,.8886],[.6258,.7996,.8858],[.6161,.7947,.883],[.6065,.7898,.8803],[.5968,.7849,.8775],[.5871,.7799,.8747],[.5774,.775,.872],[.5665,.7687,.8685],[.5543,.761,.8644],[.5422,.7533,.8602],[.53,.7456,.8561],[.5179,.7379,.8519],[.5057,.7303,.8478],[.4936,.7226,.8436],[.4814,.7149,.8394],[.4693,.7072,.8353],[.4571,.6995,.8311],[.445,.6918,.827],[.4328,.6841,.8228],[.4207,.6764,.8187],[.4085,.6687,.8145],[.3964,.6611,.8104],[.3842,.6534,.8062],[.3721,.6457,.8021],[.3599,.638,.7979],[.3478,.6303,.7938],[.3356,.6226,.7896],[.3235,.6149,.7855],[.3113,.6072,.7813],[.2992,.5995,.7772],[.287,.5918,.773],[.2749,.5842,.7689],[.2627,.5765,.7647],[.2575,.5696,.7612],[.2523,.5626,.7576],[.2471,.5557,.7541],[.2418,.5488,.7506],[.2366,.5419,.747],[.2314,.5349,.7435],[.2261,.528,.7399],[.2209,.5211,.7364],[.2157,.5142,.7329],[.2105,.5073,.7293],[.2052,.5003,.7258],[.2,.4934,.7223],[.1948,.4865,.7187],[.1895,.4796,.7152],[.1843,.4727,.7116],[.1791,.4657,.7081],[.1739,.4588,.7046],[.1686,.4519,.701],[.1634,.445,.6975],[.1582,.4381,.694],[.1529,.4311,.6904],[.1477,.4242,.6869],[.1425,.4173,.6834],[.1373,.4104,.6798],[.132,.4035,.6763],[.1273,.3958,.6687],[.123,.3875,.6572],[.1186,.3792,.6457],[.1143,.3709,.6341],[.11,.3626,.6226],[.1057,.3543,.6111],[.1014,.346,.5995],[.0971,.3377,.588],[.0928,.3294,.5765],[.0885,.3211,.5649],[.0842,.3128,.5534],[.0799,.3045,.5419],[.0756,.2962,.5303],[.0713,.2879,.5188],[.067,.2796,.5073],[.0627,.2713,.4957],[.0584,.263,.4842],[.0541,.2547,.4727],[.0498,.2464,.4611],[.0454,.2381,.4496],[.0411,.2298,.4381],[.0368,.2215,.4265],[.0325,.2131,.415],[.0282,.2048,.4035],[.0239,.1965,.3919],[.0196,.1882,.3804]]};ce.RdGy={interpolate:!0,colors:[[.4039,0,.1216],[.4155,.0037,.1234],[.427,.0074,.1253],[.4385,.0111,.1271],[.4501,.0148,.129],[.4616,.0185,.1308],[.4731,.0221,.1326],[.4847,.0258,.1345],[.4962,.0295,.1363],[.5077,.0332,.1382],[.5193,.0369,.14],[.5308,.0406,.1419],[.5423,.0443,.1437],[.5539,.048,.1456],[.5654,.0517,.1474],[.5769,.0554,.1493],[.5885,.0591,.1511],[.6,.0627,.1529],[.6115,.0664,.1548],[.6231,.0701,.1566],[.6346,.0738,.1585],[.6461,.0775,.1603],[.6577,.0812,.1622],[.6692,.0849,.164],[.6807,.0886,.1659],[.6923,.0923,.1677],[.7008,.0997,.1712],[.7063,.1107,.1765],[.7119,.1218,.1817],[.7174,.1329,.1869],[.723,.1439,.1922],[.7285,.155,.1974],[.734,.1661,.2026],[.7396,.1772,.2078],[.7451,.1882,.2131],[.7506,.1993,.2183],[.7562,.2104,.2235],[.7617,.2215,.2288],[.7672,.2325,.234],[.7728,.2436,.2392],[.7783,.2547,.2444],[.7839,.2657,.2497],[.7894,.2768,.2549],[.7949,.2879,.2601],[.8005,.299,.2654],[.806,.31,.2706],[.8115,.3211,.2758],[.8171,.3322,.281],[.8226,.3433,.2863],[.8281,.3543,.2915],[.8337,.3654,.2967],[.8392,.3765,.302],[.8438,.3871,.3101],[.8484,.3977,.3183],[.8531,.4083,.3264],[.8577,.4189,.3346],[.8623,.4295,.3427],[.8669,.4401,.3509],[.8715,.4507,.359],[.8761,.4614,.3672],[.8807,.472,.3753],[.8854,.4826,.3835],[.89,.4932,.3916],[.8946,.5038,.3998],[.8992,.5144,.4079],[.9038,.525,.4161],[.9084,.5356,.4242],[.913,.5463,.4324],[.9176,.5569,.4405],[.9223,.5675,.4487],[.9269,.5781,.4568],[.9315,.5887,.465],[.9361,.5993,.4731],[.9407,.6099,.4813],[.9453,.6205,.4894],[.9499,.6311,.4976],[.9546,.6418,.5057],[.9576,.6512,.5151],[.9589,.6595,.5257],[.9603,.6678,.5363],[.9617,.6761,.5469],[.9631,.6844,.5576],[.9645,.6927,.5682],[.9659,.701,.5788],[.9672,.7093,.5894],[.9686,.7176,.6],[.97,.726,.6106],[.9714,.7343,.6212],[.9728,.7426,.6318],[.9742,.7509,.6424],[.9755,.7592,.6531],[.9769,.7675,.6637],[.9783,.7758,.6743],[.9797,.7841,.6849],[.9811,.7924,.6955],[.9825,.8007,.7061],[.9839,.809,.7167],[.9852,.8173,.7273],[.9866,.8256,.7379],[.988,.8339,.7486],[.9894,.8422,.7592],[.9908,.8505,.7698],[.9922,.8588,.7804],[.9925,.8644,.789],[.9928,.8699,.7976],[.9931,.8754,.8062],[.9934,.881,.8148],[.9937,.8865,.8235],[.994,.892,.8321],[.9943,.8976,.8407],[.9946,.9031,.8493],[.9949,.9087,.8579],[.9952,.9142,.8665],[.9955,.9197,.8751],[.9958,.9253,.8837],[.9962,.9308,.8923],[.9965,.9363,.901],[.9968,.9419,.9096],[.9971,.9474,.9182],[.9974,.9529,.9268],[.9977,.9585,.9354],[.998,.964,.944],[.9983,.9696,.9526],[.9986,.9751,.9612],[.9989,.9806,.9699],[.9992,.9862,.9785],[.9995,.9917,.9871],[.9998,.9972,.9957],[.9976,.9976,.9976],[.9928,.9928,.9928],[.9881,.9881,.9881],[.9833,.9833,.9833],[.9785,.9785,.9785],[.9738,.9738,.9738],[.969,.969,.969],[.9642,.9642,.9642],[.9595,.9595,.9595],[.9547,.9547,.9547],[.9499,.9499,.9499],[.9452,.9452,.9452],[.9404,.9404,.9404],[.9356,.9356,.9356],[.9309,.9309,.9309],[.9261,.9261,.9261],[.9213,.9213,.9213],[.9166,.9166,.9166],[.9118,.9118,.9118],[.907,.907,.907],[.9023,.9023,.9023],[.8975,.8975,.8975],[.8927,.8927,.8927],[.888,.888,.888],[.8832,.8832,.8832],[.8784,.8784,.8784],[.8726,.8726,.8726],[.8667,.8667,.8667],[.8609,.8609,.8609],[.8551,.8551,.8551],[.8492,.8492,.8492],[.8434,.8434,.8434],[.8375,.8375,.8375],[.8317,.8317,.8317],[.8258,.8258,.8258],[.82,.82,.82],[.8141,.8141,.8141],[.8083,.8083,.8083],[.8025,.8025,.8025],[.7966,.7966,.7966],[.7908,.7908,.7908],[.7849,.7849,.7849],[.7791,.7791,.7791],[.7732,.7732,.7732],[.7674,.7674,.7674],[.7616,.7616,.7616],[.7557,.7557,.7557],[.7499,.7499,.7499],[.744,.744,.744],[.7382,.7382,.7382],[.7323,.7323,.7323],[.7255,.7255,.7255],[.7176,.7176,.7176],[.7098,.7098,.7098],[.702,.702,.702],[.6941,.6941,.6941],[.6863,.6863,.6863],[.6784,.6784,.6784],[.6706,.6706,.6706],[.6627,.6627,.6627],[.6549,.6549,.6549],[.6471,.6471,.6471],[.6392,.6392,.6392],[.6314,.6314,.6314],[.6235,.6235,.6235],[.6157,.6157,.6157],[.6078,.6078,.6078],[.6,.6,.6],[.5922,.5922,.5922],[.5843,.5843,.5843],[.5765,.5765,.5765],[.5686,.5686,.5686],[.5608,.5608,.5608],[.5529,.5529,.5529],[.5451,.5451,.5451],[.5373,.5373,.5373],[.5294,.5294,.5294],[.5205,.5205,.5205],[.5116,.5116,.5116],[.5027,.5027,.5027],[.4937,.4937,.4937],[.4848,.4848,.4848],[.4759,.4759,.4759],[.467,.467,.467],[.4581,.4581,.4581],[.4491,.4491,.4491],[.4402,.4402,.4402],[.4313,.4313,.4313],[.4224,.4224,.4224],[.4135,.4135,.4135],[.4045,.4045,.4045],[.3956,.3956,.3956],[.3867,.3867,.3867],[.3778,.3778,.3778],[.3689,.3689,.3689],[.3599,.3599,.3599],[.351,.351,.351],[.3421,.3421,.3421],[.3332,.3332,.3332],[.3243,.3243,.3243],[.3153,.3153,.3153],[.3064,.3064,.3064],[.298,.298,.298],[.2902,.2902,.2902],[.2824,.2824,.2824],[.2745,.2745,.2745],[.2667,.2667,.2667],[.2588,.2588,.2588],[.251,.251,.251],[.2431,.2431,.2431],[.2353,.2353,.2353],[.2275,.2275,.2275],[.2196,.2196,.2196],[.2118,.2118,.2118],[.2039,.2039,.2039],[.1961,.1961,.1961],[.1882,.1882,.1882],[.1804,.1804,.1804],[.1725,.1725,.1725],[.1647,.1647,.1647],[.1569,.1569,.1569],[.149,.149,.149],[.1412,.1412,.1412],[.1333,.1333,.1333],[.1255,.1255,.1255],[.1176,.1176,.1176],[.1098,.1098,.1098],[.102,.102,.102]]};ce.RdPu={interpolate:!0,colors:[[1,.9686,.9529],[.9998,.9658,.9502],[.9995,.963,.9475],[.9993,.9601,.9448],[.999,.9573,.9421],[.9988,.9545,.9394],[.9985,.9516,.9367],[.9983,.9488,.934],[.998,.946,.9313],[.9978,.9432,.9286],[.9975,.9403,.9259],[.9973,.9375,.9232],[.997,.9347,.9205],[.9968,.9318,.9178],[.9966,.929,.915],[.9963,.9262,.9123],[.9961,.9234,.9096],[.9958,.9205,.9069],[.9956,.9177,.9042],[.9953,.9149,.9015],[.9951,.912,.8988],[.9948,.9092,.8961],[.9946,.9064,.8934],[.9943,.9035,.8907],[.9941,.9007,.888],[.9938,.8979,.8853],[.9936,.8951,.8826],[.9934,.8922,.8799],[.9931,.8894,.8772],[.9929,.8866,.8744],[.9926,.8837,.8717],[.9924,.8809,.869],[.9921,.878,.8662],[.992,.8747,.8627],[.9919,.8714,.8591],[.9918,.8681,.8555],[.9916,.8647,.8519],[.9915,.8614,.8484],[.9914,.8581,.8448],[.9913,.8548,.8412],[.9912,.8514,.8377],[.991,.8481,.8341],[.9909,.8448,.8305],[.9908,.8415,.827],[.9907,.8382,.8234],[.9905,.8348,.8198],[.9904,.8315,.8163],[.9903,.8282,.8127],[.9902,.8249,.8091],[.99,.8215,.8056],[.9899,.8182,.802],[.9898,.8149,.7984],[.9897,.8116,.7949],[.9896,.8083,.7913],[.9894,.8049,.7877],[.9893,.8016,.7842],[.9892,.7983,.7806],[.9891,.795,.777],[.9889,.7916,.7735],[.9888,.7883,.7699],[.9887,.785,.7663],[.9886,.7817,.7628],[.9885,.7784,.7592],[.9883,.775,.7556],[.9882,.7714,.7526],[.9879,.7667,.7512],[.9877,.762,.7499],[.9874,.7574,.7485],[.9872,.7527,.7472],[.9869,.748,.7458],[.9867,.7433,.7445],[.9865,.7387,.7431],[.9862,.734,.7418],[.986,.7293,.7404],[.9857,.7246,.7391],[.9855,.72,.7377],[.9852,.7153,.7364],[.985,.7106,.735],[.9847,.7059,.7337],[.9845,.7013,.7323],[.9842,.6966,.7309],[.984,.6919,.7296],[.9837,.6872,.7282],[.9835,.6826,.7269],[.9833,.6779,.7255],[.983,.6732,.7242],[.9828,.6685,.7228],[.9825,.6639,.7215],[.9823,.6592,.7201],[.982,.6545,.7188],[.9818,.6498,.7174],[.9815,.6452,.7161],[.9813,.6405,.7147],[.981,.6358,.7134],[.9808,.6311,.712],[.9805,.6265,.7106],[.9803,.621,.7089],[.9799,.6142,.7064],[.9795,.6075,.704],[.9791,.6007,.7015],[.9788,.5939,.699],[.9784,.5872,.6966],[.978,.5804,.6941],[.9777,.5736,.6917],[.9773,.5669,.6892],[.9769,.5601,.6867],[.9766,.5533,.6843],[.9762,.5466,.6818],[.9758,.5398,.6794],[.9755,.533,.6769],[.9751,.5263,.6744],[.9747,.5195,.672],[.9743,.5127,.6695],[.974,.506,.6671],[.9736,.4992,.6646],[.9732,.4924,.6621],[.9729,.4857,.6597],[.9725,.4789,.6572],[.9721,.4721,.6547],[.9718,.4654,.6523],[.9714,.4586,.6498],[.971,.4518,.6474],[.9707,.4451,.6449],[.9703,.4383,.6424],[.9699,.4315,.64],[.9696,.4248,.6375],[.9692,.418,.6351],[.9688,.4112,.6326],[.967,.4046,.6308],[.9638,.3982,.6295],[.9606,.3918,.6283],[.9574,.3855,.6271],[.9542,.3791,.6258],[.951,.3727,.6246],[.9478,.3663,.6234],[.9446,.3599,.6221],[.9414,.3535,.6209],[.9382,.3471,.6197],[.935,.3407,.6185],[.9318,.3343,.6172],[.9286,.3279,.616],[.9254,.3215,.6148],[.9222,.3151,.6135],[.919,.3087,.6123],[.9158,.3023,.6111],[.9126,.2959,.6098],[.9095,.2895,.6086],[.9063,.2831,.6074],[.9031,.2767,.6062],[.8999,.2703,.6049],[.8967,.2639,.6037],[.8935,.2575,.6025],[.8903,.2511,.6012],[.8871,.2447,.6],[.8839,.2383,.5988],[.8807,.2319,.5975],[.8775,.2255,.5963],[.8743,.2191,.5951],[.8711,.2127,.5938],[.8679,.2063,.5926],[.8631,.2,.5902],[.8573,.1937,.5872],[.8515,.1875,.5841],[.8457,.1812,.581],[.8399,.1749,.5779],[.8341,.1686,.5749],[.8284,.1624,.5718],[.8226,.1561,.5687],[.8168,.1498,.5656],[.811,.1435,.5626],[.8052,.1373,.5595],[.7994,.131,.5564],[.7937,.1247,.5533],[.7879,.1184,.5502],[.7821,.1122,.5472],[.7763,.1059,.5441],[.7705,.0996,.541],[.7648,.0933,.5379],[.759,.0871,.5349],[.7532,.0808,.5318],[.7474,.0745,.5287],[.7416,.0682,.5256],[.7358,.062,.5226],[.7301,.0557,.5195],[.7243,.0494,.5164],[.7185,.0431,.5133],[.7127,.0369,.5103],[.7069,.0306,.5072],[.7011,.0243,.5041],[.6954,.018,.501],[.6896,.0118,.498],[.6838,.0055,.4949],[.6776,.0039,.4935],[.6712,.0039,.4926],[.6648,.0039,.4917],[.6584,.0039,.4909],[.652,.0039,.49],[.6456,.0039,.4892],[.6392,.0039,.4883],[.6328,.0039,.4874],[.6264,.0039,.4866],[.62,.0039,.4857],[.6136,.0039,.4849],[.6072,.0039,.484],[.6008,.0039,.4831],[.5944,.0039,.4823],[.588,.0039,.4814],[.5816,.0039,.4806],[.5752,.0039,.4797],[.5688,.0039,.4788],[.5624,.0039,.478],[.556,.0039,.4771],[.5496,.0039,.4762],[.5432,.0039,.4754],[.5368,.0039,.4745],[.5304,.0039,.4737],[.524,.0039,.4728],[.5176,.0039,.4719],[.5112,.0039,.4711],[.5048,.0039,.4702],[.4984,.0039,.4694],[.492,.0039,.4685],[.4856,.0039,.4676],[.4792,.0039,.4668],[.4732,.0038,.4653],[.4671,.0037,.4637],[.4611,.0036,.4621],[.4551,.0034,.4605],[.449,.0033,.4589],[.443,.0032,.4573],[.437,.0031,.4557],[.431,.003,.4541],[.4249,.0028,.4525],[.4189,.0027,.4509],[.4129,.0026,.4493],[.4068,.0025,.4477],[.4008,.0023,.4461],[.3948,.0022,.4445],[.3888,.0021,.4429],[.3827,.002,.4413],[.3767,.0018,.4397],[.3707,.0017,.4381],[.3646,.0016,.4365],[.3586,.0015,.4349],[.3526,.0014,.4333],[.3466,.0012,.4317],[.3405,.0011,.4301],[.3345,.001,.4285],[.3285,9e-4,.4269],[.3224,7e-4,.4253],[.3164,6e-4,.4237],[.3104,5e-4,.4221],[.3044,4e-4,.4205],[.2983,2e-4,.4189],[.2923,1e-4,.4173],[.2863,0,.4157]]};ce.RdYlBu={interpolate:!0,colors:[[.6471,0,.149],[.6547,.0074,.1492],[.6624,.0148,.1493],[.6701,.0221,.1495],[.6778,.0295,.1496],[.6855,.0369,.1498],[.6932,.0443,.1499],[.7009,.0517,.1501],[.7086,.0591,.1502],[.7163,.0664,.1504],[.724,.0738,.1506],[.7316,.0812,.1507],[.7393,.0886,.1509],[.747,.096,.151],[.7547,.1033,.1512],[.7624,.1107,.1513],[.7701,.1181,.1515],[.7778,.1255,.1516],[.7855,.1329,.1518],[.7932,.1403,.1519],[.8008,.1476,.1521],[.8085,.155,.1522],[.8162,.1624,.1524],[.8239,.1698,.1526],[.8316,.1772,.1527],[.8393,.1845,.1529],[.8454,.1929,.1551],[.8498,.2023,.1594],[.8543,.2117,.1637],[.8587,.2211,.168],[.8632,.2304,.1723],[.8677,.2398,.1766],[.8721,.2492,.1809],[.8766,.2586,.1852],[.881,.268,.1895],[.8855,.2774,.1938],[.89,.2867,.1982],[.8944,.2961,.2025],[.8989,.3055,.2068],[.9033,.3149,.2111],[.9078,.3243,.2154],[.9123,.3336,.2197],[.9167,.343,.224],[.9212,.3524,.2283],[.9256,.3618,.2326],[.9301,.3712,.2369],[.9346,.3805,.2412],[.939,.3899,.2455],[.9435,.3993,.2498],[.9479,.4087,.2541],[.9524,.4181,.2584],[.9569,.4275,.2627],[.9582,.4374,.2674],[.9596,.4474,.272],[.961,.4574,.2766],[.9624,.4674,.2812],[.9638,.4774,.2858],[.9652,.4874,.2904],[.9666,.4974,.295],[.9679,.5074,.2997],[.9693,.5174,.3043],[.9707,.5274,.3089],[.9721,.5374,.3135],[.9735,.5474,.3181],[.9749,.5574,.3227],[.9762,.5674,.3273],[.9776,.5774,.3319],[.979,.5874,.3366],[.9804,.5974,.3412],[.9818,.6074,.3458],[.9832,.6174,.3504],[.9845,.6274,.355],[.9859,.6374,.3596],[.9873,.6474,.3642],[.9887,.6574,.3689],[.9901,.6674,.3735],[.9915,.6774,.3781],[.9922,.6862,.384],[.9924,.6939,.3912],[.9925,.7016,.3985],[.9927,.7093,.4057],[.9928,.717,.4129],[.993,.7246,.4201],[.9932,.7323,.4274],[.9933,.74,.4346],[.9935,.7477,.4418],[.9936,.7554,.4491],[.9938,.7631,.4563],[.9939,.7708,.4635],[.9941,.7785,.4707],[.9942,.7862,.478],[.9944,.7938,.4852],[.9945,.8015,.4924],[.9947,.8092,.4997],[.9948,.8169,.5069],[.995,.8246,.5141],[.9952,.8323,.5213],[.9953,.84,.5286],[.9955,.8477,.5358],[.9956,.8554,.543],[.9958,.8631,.5502],[.9959,.8707,.5575],[.9961,.8784,.5647],[.9962,.8832,.5719],[.9964,.888,.5792],[.9965,.8927,.5864],[.9967,.8975,.5936],[.9968,.9023,.6008],[.997,.907,.6081],[.9972,.9118,.6153],[.9973,.9166,.6225],[.9975,.9213,.6298],[.9976,.9261,.637],[.9978,.9309,.6442],[.9979,.9356,.6514],[.9981,.9404,.6587],[.9982,.9452,.6659],[.9984,.9499,.6731],[.9985,.9547,.6804],[.9987,.9595,.6876],[.9988,.9642,.6948],[.999,.969,.702],[.9992,.9738,.7093],[.9993,.9785,.7165],[.9995,.9833,.7237],[.9996,.9881,.7309],[.9998,.9928,.7382],[.9999,.9976,.7454],[.9976,.9991,.7534],[.9928,.9972,.7622],[.9881,.9954,.7709],[.9833,.9935,.7797],[.9785,.9917,.7885],[.9738,.9899,.7972],[.969,.988,.806],[.9642,.9862,.8148],[.9595,.9843,.8235],[.9547,.9825,.8323],[.9499,.9806,.8411],[.9452,.9788,.8498],[.9404,.9769,.8586],[.9356,.9751,.8674],[.9309,.9732,.8761],[.9261,.9714,.8849],[.9213,.9696,.8937],[.9166,.9677,.9024],[.9118,.9659,.9112],[.907,.964,.92],[.9023,.9622,.9287],[.8975,.9603,.9375],[.8927,.9585,.9463],[.888,.9566,.955],[.8832,.9548,.9638],[.8784,.9529,.9725],[.8703,.9489,.9702],[.8621,.9449,.9679],[.854,.9409,.9656],[.8458,.9369,.9633],[.8377,.9329,.961],[.8295,.929,.9587],[.8214,.925,.9564],[.8132,.921,.9541],[.8051,.917,.9518],[.7969,.913,.9495],[.7888,.909,.9472],[.7806,.905,.9449],[.7725,.901,.9426],[.7643,.897,.9403],[.7562,.893,.9379],[.748,.889,.9356],[.7399,.885,.9333],[.7317,.881,.931],[.7236,.877,.9287],[.7154,.873,.9264],[.7073,.869,.9241],[.6991,.865,.9218],[.691,.861,.9195],[.6828,.857,.9172],[.6747,.853,.9149],[.6664,.8476,.9119],[.6579,.8408,.9082],[.6494,.8341,.9045],[.641,.8273,.9008],[.6325,.8205,.8971],[.6241,.8138,.8934],[.6156,.807,.8897],[.6072,.8002,.886],[.5987,.7935,.8824],[.5902,.7867,.8787],[.5818,.7799,.875],[.5733,.7732,.8713],[.5649,.7664,.8676],[.5564,.7596,.8639],[.5479,.7529,.8602],[.5395,.7461,.8565],[.531,.7393,.8528],[.5226,.7326,.8491],[.5141,.7258,.8454],[.5057,.719,.8418],[.4972,.7123,.8381],[.4887,.7055,.8344],[.4803,.6987,.8307],[.4718,.692,.827],[.4634,.6852,.8233],[.4549,.6784,.8196],[.4477,.6698,.8151],[.4404,.6612,.8107],[.4332,.6526,.8062],[.426,.644,.8018],[.4188,.6354,.7973],[.4115,.6268,.7928],[.4043,.6181,.7884],[.3971,.6095,.7839],[.3899,.6009,.7795],[.3826,.5923,.775],[.3754,.5837,.7705],[.3682,.5751,.7661],[.3609,.5665,.7616],[.3537,.5579,.7572],[.3465,.5493,.7527],[.3393,.5406,.7483],[.332,.532,.7438],[.3248,.5234,.7393],[.3176,.5148,.7349],[.3103,.5062,.7304],[.3031,.4976,.726],[.2959,.489,.7215],[.2887,.4804,.717],[.2814,.4717,.7126],[.2742,.4631,.7081],[.2691,.454,.7035],[.266,.4443,.6987],[.2629,.4346,.694],[.2598,.4249,.6892],[.2567,.4152,.6844],[.2537,.4055,.6797],[.2506,.3958,.6749],[.2475,.3862,.6701],[.2444,.3765,.6654],[.2414,.3668,.6606],[.2383,.3571,.6558],[.2352,.3474,.6511],[.2321,.3377,.6463],[.2291,.328,.6415],[.226,.3183,.6368],[.2229,.3087,.632],[.2198,.299,.6272],[.2168,.2893,.6225],[.2137,.2796,.6177],[.2106,.2699,.6129],[.2075,.2602,.6082],[.2045,.2505,.6034],[.2014,.2408,.5986],[.1983,.2311,.5938],[.1952,.2215,.5891],[.1922,.2118,.5843]]};ce.RdYlGn={interpolate:!0,colors:[[.6471,0,.149],[.6547,.0074,.1492],[.6624,.0148,.1493],[.6701,.0221,.1495],[.6778,.0295,.1496],[.6855,.0369,.1498],[.6932,.0443,.1499],[.7009,.0517,.1501],[.7086,.0591,.1502],[.7163,.0664,.1504],[.724,.0738,.1506],[.7316,.0812,.1507],[.7393,.0886,.1509],[.747,.096,.151],[.7547,.1033,.1512],[.7624,.1107,.1513],[.7701,.1181,.1515],[.7778,.1255,.1516],[.7855,.1329,.1518],[.7932,.1403,.1519],[.8008,.1476,.1521],[.8085,.155,.1522],[.8162,.1624,.1524],[.8239,.1698,.1526],[.8316,.1772,.1527],[.8393,.1845,.1529],[.8454,.1929,.1551],[.8498,.2023,.1594],[.8543,.2117,.1637],[.8587,.2211,.168],[.8632,.2304,.1723],[.8677,.2398,.1766],[.8721,.2492,.1809],[.8766,.2586,.1852],[.881,.268,.1895],[.8855,.2774,.1938],[.89,.2867,.1982],[.8944,.2961,.2025],[.8989,.3055,.2068],[.9033,.3149,.2111],[.9078,.3243,.2154],[.9123,.3336,.2197],[.9167,.343,.224],[.9212,.3524,.2283],[.9256,.3618,.2326],[.9301,.3712,.2369],[.9346,.3805,.2412],[.939,.3899,.2455],[.9435,.3993,.2498],[.9479,.4087,.2541],[.9524,.4181,.2584],[.9569,.4275,.2627],[.9582,.4374,.2674],[.9596,.4474,.272],[.961,.4574,.2766],[.9624,.4674,.2812],[.9638,.4774,.2858],[.9652,.4874,.2904],[.9666,.4974,.295],[.9679,.5074,.2997],[.9693,.5174,.3043],[.9707,.5274,.3089],[.9721,.5374,.3135],[.9735,.5474,.3181],[.9749,.5574,.3227],[.9762,.5674,.3273],[.9776,.5774,.3319],[.979,.5874,.3366],[.9804,.5974,.3412],[.9818,.6074,.3458],[.9832,.6174,.3504],[.9845,.6274,.355],[.9859,.6374,.3596],[.9873,.6474,.3642],[.9887,.6574,.3689],[.9901,.6674,.3735],[.9915,.6774,.3781],[.9922,.6862,.3836],[.9924,.6939,.3901],[.9925,.7016,.3965],[.9927,.7093,.403],[.9928,.717,.4095],[.993,.7246,.4159],[.9932,.7323,.4224],[.9933,.74,.4288],[.9935,.7477,.4353],[.9936,.7554,.4418],[.9938,.7631,.4482],[.9939,.7708,.4547],[.9941,.7785,.4611],[.9942,.7862,.4676],[.9944,.7938,.474],[.9945,.8015,.4805],[.9947,.8092,.487],[.9948,.8169,.4934],[.995,.8246,.4999],[.9952,.8323,.5063],[.9953,.84,.5128],[.9955,.8477,.5193],[.9956,.8554,.5257],[.9958,.8631,.5322],[.9959,.8707,.5386],[.9961,.8784,.5451],[.9962,.8832,.5531],[.9964,.888,.5611],[.9965,.8927,.5691],[.9967,.8975,.5771],[.9968,.9023,.5851],[.997,.907,.5931],[.9972,.9118,.6011],[.9973,.9166,.6091],[.9975,.9213,.6171],[.9976,.9261,.6251],[.9978,.9309,.6331],[.9979,.9356,.6411],[.9981,.9404,.6491],[.9982,.9452,.6571],[.9984,.9499,.6651],[.9985,.9547,.673],[.9987,.9595,.681],[.9988,.9642,.689],[.999,.969,.697],[.9992,.9738,.705],[.9993,.9785,.713],[.9995,.9833,.721],[.9996,.9881,.729],[.9998,.9928,.737],[.9999,.9976,.745],[.9971,.9988,.745],[.9912,.9963,.737],[.9854,.9938,.729],[.9795,.9914,.721],[.9737,.9889,.713],[.9679,.9865,.705],[.962,.984,.697],[.9562,.9815,.689],[.9503,.9791,.681],[.9445,.9766,.673],[.9386,.9742,.6651],[.9328,.9717,.6571],[.927,.9692,.6491],[.9211,.9668,.6411],[.9153,.9643,.6331],[.9094,.9619,.6251],[.9036,.9594,.6171],[.8977,.9569,.6091],[.8919,.9545,.6011],[.886,.952,.5931],[.8802,.9496,.5851],[.8744,.9471,.5771],[.8685,.9446,.5691],[.8627,.9422,.5611],[.8568,.9397,.5531],[.851,.9373,.5451],[.8431,.9339,.54],[.8353,.9305,.5349],[.8275,.9271,.5299],[.8196,.9237,.5248],[.8118,.9203,.5197],[.8039,.917,.5146],[.7961,.9136,.5096],[.7882,.9102,.5045],[.7804,.9068,.4994],[.7725,.9034,.4943],[.7647,.9,.4893],[.7569,.8967,.4842],[.749,.8933,.4791],[.7412,.8899,.474],[.7333,.8865,.469],[.7255,.8831,.4639],[.7176,.8797,.4588],[.7098,.8764,.4537],[.702,.873,.4487],[.6941,.8696,.4436],[.6863,.8662,.4385],[.6784,.8628,.4334],[.6706,.8594,.4284],[.6627,.8561,.4233],[.6549,.8527,.4182],[.6461,.8488,.4151],[.6362,.8445,.4141],[.6264,.8402,.413],[.6165,.8359,.4119],[.6067,.8316,.4108],[.5968,.8273,.4098],[.587,.823,.4087],[.5772,.8187,.4076],[.5673,.8144,.4065],[.5575,.8101,.4055],[.5476,.8058,.4044],[.5378,.8015,.4033],[.528,.7972,.4022],[.5181,.7928,.4012],[.5083,.7885,.4001],[.4984,.7842,.399],[.4886,.7799,.3979],[.4787,.7756,.3968],[.4689,.7713,.3958],[.4591,.767,.3947],[.4492,.7627,.3936],[.4394,.7584,.3925],[.4295,.7541,.3915],[.4197,.7498,.3904],[.4098,.7455,.3893],[.4,.7412,.3882],[.3883,.7355,.3853],[.3766,.7298,.3824],[.3649,.7241,.3795],[.3532,.7184,.3765],[.3416,.7127,.3736],[.3299,.707,.3707],[.3182,.7013,.3678],[.3065,.6957,.3649],[.2948,.69,.3619],[.2831,.6843,.359],[.2714,.6786,.3561],[.2597,.6729,.3532],[.2481,.6672,.3502],[.2364,.6615,.3473],[.2247,.6558,.3444],[.213,.6501,.3415],[.2013,.6444,.3386],[.1896,.6388,.3356],[.1779,.6331,.3327],[.1662,.6274,.3298],[.1546,.6217,.3269],[.1429,.616,.324],[.1312,.6103,.321],[.1195,.6046,.3181],[.1078,.5989,.3152],[.1,.5924,.3118],[.096,.585,.308],[.092,.5776,.3041],[.088,.5702,.3003],[.084,.5629,.2964],[.08,.5555,.2926],[.076,.5481,.2887],[.072,.5407,.2849],[.068,.5333,.281],[.064,.526,.2772],[.06,.5186,.2734],[.056,.5112,.2695],[.052,.5038,.2657],[.048,.4964,.2618],[.044,.489,.258],[.04,.4817,.2541],[.036,.4743,.2503],[.032,.4669,.2464],[.028,.4595,.2426],[.024,.4521,.2388],[.02,.4448,.2349],[.016,.4374,.2311],[.012,.43,.2272],[.008,.4226,.2234],[.004,.4152,.2195],[0,.4078,.2157]]};ce.Reds={interpolate:!0,colors:[[1,.9608,.9412],[.9999,.9582,.9375],[.9998,.9556,.9338],[.9996,.953,.9301],[.9995,.9504,.9264],[.9994,.9479,.9227],[.9993,.9453,.919],[.9991,.9427,.9153],[.999,.9401,.9116],[.9989,.9375,.908],[.9988,.9349,.9043],[.9986,.9324,.9006],[.9985,.9298,.8969],[.9984,.9272,.8932],[.9983,.9246,.8895],[.9982,.922,.8858],[.998,.9194,.8821],[.9979,.9169,.8784],[.9978,.9143,.8747],[.9977,.9117,.871],[.9975,.9091,.8674],[.9974,.9065,.8637],[.9973,.9039,.86],[.9972,.9014,.8563],[.997,.8988,.8526],[.9969,.8962,.8489],[.9968,.8936,.8452],[.9967,.891,.8415],[.9966,.8884,.8378],[.9964,.8859,.8341],[.9963,.8833,.8304],[.9962,.8807,.8268],[.996,.8779,.8228],[.9958,.8733,.8167],[.9956,.8688,.8107],[.9953,.8642,.8047],[.9951,.8597,.7987],[.9948,.8551,.7926],[.9946,.8505,.7866],[.9943,.846,.7806],[.9941,.8414,.7745],[.9938,.8369,.7685],[.9936,.8323,.7625],[.9933,.8278,.7565],[.9931,.8232,.7504],[.9928,.8187,.7444],[.9926,.8141,.7384],[.9924,.8096,.7323],[.9921,.805,.7263],[.9919,.8005,.7203],[.9916,.7959,.7143],[.9914,.7914,.7082],[.9911,.7868,.7022],[.9909,.7823,.6962],[.9906,.7777,.6901],[.9904,.7732,.6841],[.9901,.7686,.6781],[.9899,.7641,.6721],[.9897,.7595,.666],[.9894,.755,.66],[.9892,.7504,.654],[.9889,.7459,.648],[.9887,.7413,.6419],[.9884,.7367,.6359],[.9882,.7321,.6299],[.9882,.727,.6241],[.9882,.722,.6184],[.9882,.7169,.6126],[.9882,.7119,.6068],[.9882,.7069,.601],[.9882,.7018,.5952],[.9882,.6968,.5895],[.9882,.6917,.5837],[.9882,.6867,.5779],[.9882,.6816,.5721],[.9882,.6766,.5663],[.9882,.6715,.5605],[.9882,.6665,.5548],[.9882,.6615,.549],[.9882,.6564,.5432],[.9882,.6514,.5374],[.9882,.6463,.5316],[.9882,.6413,.5258],[.9882,.6362,.5201],[.9882,.6312,.5143],[.9882,.6261,.5085],[.9882,.6211,.5027],[.9882,.6161,.4969],[.9882,.611,.4911],[.9882,.606,.4854],[.9882,.6009,.4796],[.9882,.5959,.4738],[.9882,.5908,.468],[.9882,.5858,.4622],[.9882,.5807,.4565],[.9882,.5757,.4507],[.9882,.5707,.4452],[.9881,.5658,.4403],[.9879,.5609,.4354],[.9878,.5559,.4304],[.9877,.551,.4255],[.9876,.5461,.4206],[.9875,.5412,.4157],[.9873,.5363,.4108],[.9872,.5313,.4058],[.9871,.5264,.4009],[.987,.5215,.396],[.9868,.5166,.3911],[.9867,.5116,.3862],[.9866,.5067,.3812],[.9865,.5018,.3763],[.9863,.4969,.3714],[.9862,.492,.3665],[.9861,.487,.3616],[.986,.4821,.3566],[.9859,.4772,.3517],[.9857,.4723,.3468],[.9856,.4674,.3419],[.9855,.4624,.3369],[.9854,.4575,.332],[.9852,.4526,.3271],[.9851,.4477,.3222],[.985,.4428,.3173],[.9849,.4378,.3123],[.9847,.4329,.3074],[.9846,.428,.3025],[.9845,.4231,.2976],[.9844,.4181,.2927],[.9836,.4128,.2884],[.9821,.407,.2847],[.9806,.4012,.281],[.9791,.3954,.2773],[.9777,.3897,.2736],[.9762,.3839,.2699],[.9747,.3781,.2662],[.9732,.3723,.2625],[.9718,.3665,.2588],[.9703,.3608,.2551],[.9688,.355,.2514],[.9673,.3492,.2478],[.9659,.3434,.2441],[.9644,.3376,.2404],[.9629,.3318,.2367],[.9614,.3261,.233],[.96,.3203,.2293],[.9585,.3145,.2256],[.957,.3087,.2219],[.9555,.3029,.2182],[.954,.2971,.2145],[.9526,.2914,.2108],[.9511,.2856,.2072],[.9496,.2798,.2035],[.9481,.274,.1998],[.9467,.2682,.1961],[.9452,.2625,.1924],[.9437,.2567,.1887],[.9422,.2509,.185],[.9408,.2451,.1813],[.9393,.2393,.1776],[.9378,.2335,.1739],[.9345,.2287,.1714],[.9301,.2244,.1696],[.9256,.2201,.1677],[.9212,.2158,.1659],[.9168,.2115,.164],[.9123,.2072,.1622],[.9079,.2028,.1603],[.9035,.1985,.1585],[.8991,.1942,.1566],[.8946,.1899,.1548],[.8902,.1856,.1529],[.8858,.1813,.1511],[.8813,.177,.1493],[.8769,.1727,.1474],[.8725,.1684,.1456],[.8681,.1641,.1437],[.8636,.1598,.1419],[.8592,.1555,.14],[.8548,.1512,.1382],[.8503,.1469,.1363],[.8459,.1426,.1345],[.8415,.1383,.1326],[.837,.1339,.1308],[.8326,.1296,.129],[.8282,.1253,.1271],[.8238,.121,.1253],[.8193,.1167,.1234],[.8149,.1124,.1216],[.8105,.1081,.1197],[.806,.1038,.1179],[.8016,.0995,.116],[.7972,.0952,.1142],[.7926,.0933,.113],[.7879,.0922,.112],[.7832,.0911,.111],[.7785,.09,.11],[.7739,.0889,.1091],[.7692,.0878,.1081],[.7645,.0866,.1071],[.7598,.0855,.1061],[.7552,.0844,.1051],[.7505,.0833,.1041],[.7458,.0822,.1031],[.7411,.0811,.1022],[.7365,.08,.1012],[.7318,.0789,.1002],[.7271,.0778,.0992],[.7224,.0767,.0982],[.7178,.0756,.0972],[.7131,.0745,.0963],[.7084,.0734,.0953],[.7037,.0722,.0943],[.6991,.0711,.0933],[.6944,.07,.0923],[.6897,.0689,.0913],[.685,.0678,.0903],[.6804,.0667,.0894],[.6757,.0656,.0884],[.671,.0645,.0874],[.6663,.0634,.0864],[.6617,.0623,.0854],[.657,.0612,.0844],[.6523,.0601,.0835],[.6476,.059,.0825],[.6404,.0572,.0815],[.6328,.0554,.0805],[.6251,.0535,.0795],[.6175,.0517,.0785],[.6099,.0498,.0776],[.6022,.048,.0766],[.5946,.0461,.0756],[.587,.0443,.0746],[.5794,.0424,.0736],[.5717,.0406,.0726],[.5641,.0388,.0716],[.5565,.0369,.0707],[.5489,.0351,.0697],[.5412,.0332,.0687],[.5336,.0314,.0677],[.526,.0295,.0667],[.5183,.0277,.0657],[.5107,.0258,.0648],[.5031,.024,.0638],[.4955,.0221,.0628],[.4878,.0203,.0618],[.4802,.0185,.0608],[.4726,.0166,.0598],[.4649,.0148,.0589],[.4573,.0129,.0579],[.4497,.0111,.0569],[.4421,.0092,.0559],[.4344,.0074,.0549],[.4268,.0055,.0539],[.4192,.0037,.0529],[.4115,.0018,.052],[.4039,0,.051]]};ce.Set1={interpolate:!1,colors:[[.8941,.102,.1098],[.2157,.4941,.7216],[.302,.6863,.2902],[.5961,.3059,.6392],[1,.498,0],[1,1,.2],[.651,.3373,.1569],[.9686,.5059,.749],[.6,.6,.6]]};ce.Set2={interpolate:!1,colors:[[.4,.7608,.6471],[.9882,.5529,.3843],[.5529,.6275,.7961],[.9059,.5412,.7647],[.651,.8471,.3294],[1,.851,.1843],[.898,.7686,.5804],[.702,.702,.702]]};ce.Set3={interpolate:!1,colors:[[.5529,.8275,.7804],[1,1,.702],[.7451,.7294,.8549],[.9843,.502,.4471],[.502,.6941,.8275],[.9922,.7059,.3843],[.702,.8706,.4118],[.9882,.8039,.898],[.851,.851,.851],[.7373,.502,.7412],[.8,.9216,.7725],[1,.9294,.4353]]};ce.Spectral={interpolate:!0,colors:[[.6196,.0039,.2588],[.6281,.0133,.2608],[.6365,.0227,.2628],[.645,.0321,.2648],[.6534,.0414,.2668],[.6619,.0508,.2688],[.6704,.0602,.2708],[.6788,.0696,.2728],[.6873,.079,.2748],[.6957,.0884,.2768],[.7042,.0977,.2788],[.7126,.1071,.2808],[.7211,.1165,.2828],[.7296,.1259,.2848],[.738,.1353,.2868],[.7465,.1446,.2888],[.7549,.154,.2908],[.7634,.1634,.2928],[.7719,.1728,.2948],[.7803,.1822,.2968],[.7888,.1915,.2988],[.7972,.2009,.3008],[.8057,.2103,.3028],[.8141,.2197,.3048],[.8226,.2291,.3068],[.8311,.2384,.3088],[.8377,.2468,.3089],[.8424,.254,.307],[.8472,.2612,.3052],[.852,.2684,.3033],[.8567,.2757,.3015],[.8615,.2829,.2997],[.8663,.2901,.2978],[.871,.2973,.296],[.8758,.3046,.2941],[.8806,.3118,.2923],[.8854,.319,.2904],[.8901,.3263,.2886],[.8949,.3335,.2867],[.8997,.3407,.2849],[.9044,.3479,.283],[.9092,.3552,.2812],[.914,.3624,.2794],[.9187,.3696,.2775],[.9235,.3769,.2757],[.9283,.3841,.2738],[.933,.3913,.272],[.9378,.3985,.2701],[.9426,.4058,.2683],[.9473,.413,.2664],[.9521,.4202,.2646],[.9569,.4275,.2627],[.9582,.4374,.2674],[.9596,.4474,.272],[.961,.4574,.2766],[.9624,.4674,.2812],[.9638,.4774,.2858],[.9652,.4874,.2904],[.9666,.4974,.295],[.9679,.5074,.2997],[.9693,.5174,.3043],[.9707,.5274,.3089],[.9721,.5374,.3135],[.9735,.5474,.3181],[.9749,.5574,.3227],[.9762,.5674,.3273],[.9776,.5774,.3319],[.979,.5874,.3366],[.9804,.5974,.3412],[.9818,.6074,.3458],[.9832,.6174,.3504],[.9845,.6274,.355],[.9859,.6374,.3596],[.9873,.6474,.3642],[.9887,.6574,.3689],[.9901,.6674,.3735],[.9915,.6774,.3781],[.9922,.6862,.3836],[.9924,.6939,.3901],[.9925,.7016,.3965],[.9927,.7093,.403],[.9928,.717,.4095],[.993,.7246,.4159],[.9932,.7323,.4224],[.9933,.74,.4288],[.9935,.7477,.4353],[.9936,.7554,.4418],[.9938,.7631,.4482],[.9939,.7708,.4547],[.9941,.7785,.4611],[.9942,.7862,.4676],[.9944,.7938,.474],[.9945,.8015,.4805],[.9947,.8092,.487],[.9948,.8169,.4934],[.995,.8246,.4999],[.9952,.8323,.5063],[.9953,.84,.5128],[.9955,.8477,.5193],[.9956,.8554,.5257],[.9958,.8631,.5322],[.9959,.8707,.5386],[.9961,.8784,.5451],[.9962,.8832,.5531],[.9964,.888,.5611],[.9965,.8927,.5691],[.9967,.8975,.5771],[.9968,.9023,.5851],[.997,.907,.5931],[.9972,.9118,.6011],[.9973,.9166,.6091],[.9975,.9213,.6171],[.9976,.9261,.6251],[.9978,.9309,.6331],[.9979,.9356,.6411],[.9981,.9404,.6491],[.9982,.9452,.6571],[.9984,.9499,.6651],[.9985,.9547,.673],[.9987,.9595,.681],[.9988,.9642,.689],[.999,.969,.697],[.9992,.9738,.705],[.9993,.9785,.713],[.9995,.9833,.721],[.9996,.9881,.729],[.9998,.9928,.737],[.9999,.9976,.745],[.9981,.9992,.746],[.9942,.9977,.74],[.9904,.9962,.734],[.9865,.9946,.728],[.9827,.9931,.722],[.9789,.9915,.716],[.975,.99,.71],[.9712,.9885,.704],[.9673,.9869,.698],[.9635,.9854,.692],[.9596,.9839,.686],[.9558,.9823,.68],[.9519,.9808,.674],[.9481,.9792,.6681],[.9443,.9777,.6621],[.9404,.9762,.6561],[.9366,.9746,.6501],[.9327,.9731,.6441],[.9289,.9715,.6381],[.925,.97,.6321],[.9212,.9685,.6261],[.9173,.9669,.6201],[.9135,.9654,.6141],[.9097,.9639,.6081],[.9058,.9623,.6021],[.902,.9608,.5961],[.8929,.9571,.5979],[.8838,.9534,.5998],[.8747,.9497,.6016],[.8657,.946,.6035],[.8566,.9423,.6053],[.8475,.9386,.6072],[.8384,.9349,.609],[.8294,.9313,.6108],[.8203,.9276,.6127],[.8112,.9239,.6145],[.8022,.9202,.6164],[.7931,.9165,.6182],[.784,.9128,.6201],[.7749,.9091,.6219],[.7659,.9054,.6238],[.7568,.9017,.6256],[.7477,.898,.6275],[.7386,.8943,.6293],[.7296,.8907,.6311],[.7205,.887,.633],[.7114,.8833,.6348],[.7023,.8796,.6367],[.6933,.8759,.6385],[.6842,.8722,.6404],[.6751,.8685,.6422],[.6653,.8646,.6432],[.6547,.8604,.6434],[.6441,.8563,.6435],[.6334,.8521,.6437],[.6228,.848,.6438],[.6122,.8438,.644],[.6016,.8397,.6441],[.591,.8355,.6443],[.5804,.8314,.6444],[.5698,.8272,.6446],[.5592,.8231,.6448],[.5486,.8189,.6449],[.5379,.8148,.6451],[.5273,.8106,.6452],[.5167,.8065,.6454],[.5061,.8023,.6455],[.4955,.7982,.6457],[.4849,.794,.6458],[.4743,.7899,.646],[.4637,.7857,.6461],[.4531,.7815,.6463],[.4424,.7774,.6464],[.4318,.7732,.6466],[.4212,.7691,.6468],[.4106,.7649,.6469],[.4,.7608,.6471],[.392,.7519,.6507],[.384,.7429,.6544],[.376,.734,.6581],[.368,.7251,.6618],[.36,.7162,.6655],[.352,.7073,.6692],[.344,.6983,.6729],[.336,.6894,.6766],[.328,.6805,.6803],[.32,.6716,.684],[.312,.6627,.6877],[.304,.6537,.6913],[.296,.6448,.695],[.288,.6359,.6987],[.28,.627,.7024],[.272,.6181,.7061],[.2641,.6092,.7098],[.2561,.6002,.7135],[.2481,.5913,.7172],[.2401,.5824,.7209],[.2321,.5735,.7246],[.2241,.5646,.7283],[.2161,.5556,.7319],[.2081,.5467,.7356],[.2001,.5378,.7393],[.1995,.529,.7391],[.2062,.5202,.7349],[.213,.5114,.7308],[.2198,.5027,.7266],[.2265,.4939,.7225],[.2333,.4851,.7183],[.2401,.4764,.7142],[.2468,.4676,.71],[.2536,.4588,.7059],[.2604,.4501,.7017],[.2671,.4413,.6976],[.2739,.4325,.6934],[.2807,.4238,.6893],[.2874,.415,.6851],[.2942,.4062,.681],[.301,.3975,.6768],[.3077,.3887,.6727],[.3145,.3799,.6685],[.3213,.3712,.6644],[.328,.3624,.6602],[.3348,.3536,.6561],[.3416,.3449,.6519],[.3483,.3361,.6478],[.3551,.3273,.6436],[.3619,.3186,.6394],[.3686,.3098,.6353]]};ce.Wistia={interpolate:!0,colors:[[.8941,1,.4784],[.8958,.9986,.4725],[.8974,.9972,.4666],[.8991,.9958,.4607],[.9008,.9943,.4548],[.9024,.9929,.4489],[.9041,.9915,.443],[.9057,.9901,.4371],[.9074,.9887,.4312],[.9091,.9873,.4253],[.9107,.9859,.4194],[.9124,.9844,.4135],[.914,.983,.4076],[.9157,.9816,.4017],[.9174,.9802,.3958],[.919,.9788,.3899],[.9207,.9774,.3839],[.9224,.9759,.378],[.924,.9745,.3721],[.9257,.9731,.3662],[.9273,.9717,.3603],[.929,.9703,.3544],[.9307,.9689,.3485],[.9323,.9675,.3426],[.934,.966,.3367],[.9356,.9646,.3308],[.9373,.9632,.3249],[.939,.9618,.319],[.9406,.9604,.3131],[.9423,.959,.3072],[.9439,.9576,.3013],[.9456,.9561,.2954],[.9473,.9547,.2895],[.9489,.9533,.2836],[.9506,.9519,.2776],[.9522,.9505,.2717],[.9539,.9491,.2658],[.9556,.9477,.2599],[.9572,.9462,.254],[.9589,.9448,.2481],[.9606,.9434,.2422],[.9622,.942,.2363],[.9639,.9406,.2304],[.9655,.9392,.2245],[.9672,.9377,.2186],[.9689,.9363,.2127],[.9705,.9349,.2068],[.9722,.9335,.2009],[.9738,.9321,.195],[.9755,.9307,.1891],[.9772,.9293,.1832],[.9788,.9278,.1773],[.9805,.9264,.1713],[.9821,.925,.1654],[.9838,.9236,.1595],[.9855,.9222,.1536],[.9871,.9208,.1477],[.9888,.9194,.1418],[.9904,.9179,.1359],[.9921,.9165,.13],[.9938,.9151,.1241],[.9954,.9137,.1182],[.9971,.9123,.1123],[.9988,.9109,.1064],[1,.9091,.1016],[1,.9065,.1],[1,.9039,.0984],[1,.9012,.0968],[1,.8986,.0952],[1,.8959,.0936],[1,.8933,.092],[1,.8906,.0904],[1,.888,.0888],[1,.8853,.0872],[1,.8827,.0856],[1,.88,.084],[1,.8774,.0824],[1,.8748,.0808],[1,.8721,.0792],[1,.8695,.0776],[1,.8668,.076],[1,.8642,.0744],[1,.8615,.0728],[1,.8589,.0712],[1,.8562,.0696],[1,.8536,.068],[1,.8509,.0664],[1,.8483,.0648],[1,.8457,.0632],[1,.843,.0616],[1,.8404,.06],[1,.8377,.0584],[1,.8351,.0568],[1,.8324,.0552],[1,.8298,.0536],[1,.8271,.052],[1,.8245,.0504],[1,.8219,.0488],[1,.8192,.0472],[1,.8166,.0456],[1,.8139,.044],[1,.8113,.0424],[1,.8086,.0408],[1,.806,.0392],[1,.8033,.0376],[1,.8007,.036],[1,.798,.0344],[1,.7954,.0328],[1,.7928,.0312],[1,.7901,.0296],[1,.7875,.028],[1,.7848,.0264],[1,.7822,.0248],[1,.7795,.0232],[1,.7769,.0216],[1,.7742,.02],[1,.7716,.0184],[1,.769,.0168],[1,.7663,.0152],[1,.7637,.0136],[1,.761,.012],[1,.7584,.0104],[1,.7557,.0088],[1,.7531,.0072],[1,.7504,.0056],[1,.7478,.004],[1,.7451,.0024],[1,.7425,8e-4],[1,.7403,0],[1,.7385,0],[1,.7367,0],[1,.7349,0],[1,.7331,0],[1,.7314,0],[1,.7296,0],[1,.7278,0],[1,.726,0],[1,.7242,0],[1,.7224,0],[1,.7207,0],[1,.7189,0],[1,.7171,0],[1,.7153,0],[1,.7135,0],[1,.7117,0],[1,.71,0],[1,.7082,0],[1,.7064,0],[1,.7046,0],[1,.7028,0],[1,.701,0],[1,.6993,0],[1,.6975,0],[1,.6957,0],[1,.6939,0],[1,.6921,0],[1,.6903,0],[1,.6886,0],[1,.6868,0],[1,.685,0],[1,.6832,0],[1,.6814,0],[1,.6796,0],[1,.6778,0],[1,.6761,0],[1,.6743,0],[1,.6725,0],[1,.6707,0],[1,.6689,0],[1,.6671,0],[1,.6654,0],[1,.6636,0],[1,.6618,0],[1,.66,0],[1,.6582,0],[1,.6564,0],[1,.6547,0],[1,.6529,0],[1,.6511,0],[1,.6493,0],[1,.6475,0],[1,.6457,0],[1,.644,0],[1,.6422,0],[1,.6404,0],[1,.6386,0],[1,.6368,0],[1,.635,0],[1,.6332,0],[1,.6315,0],[1,.6297,0],[1,.6279,0],[.9999,.6259,0],[.9997,.6239,0],[.9995,.6219,0],[.9993,.6198,0],[.9991,.6178,0],[.9989,.6158,0],[.9988,.6137,0],[.9986,.6117,0],[.9984,.6097,0],[.9982,.6077,0],[.998,.6056,0],[.9978,.6036,0],[.9976,.6016,0],[.9975,.5995,0],[.9973,.5975,0],[.9971,.5955,0],[.9969,.5934,0],[.9967,.5914,0],[.9965,.5894,0],[.9964,.5874,0],[.9962,.5853,0],[.996,.5833,0],[.9958,.5813,0],[.9956,.5792,0],[.9954,.5772,0],[.9952,.5752,0],[.9951,.5731,0],[.9949,.5711,0],[.9947,.5691,0],[.9945,.5671,0],[.9943,.565,0],[.9941,.563,0],[.994,.561,0],[.9938,.5589,0],[.9936,.5569,0],[.9934,.5549,0],[.9932,.5528,0],[.993,.5508,0],[.9928,.5488,0],[.9927,.5468,0],[.9925,.5447,0],[.9923,.5427,0],[.9921,.5407,0],[.9919,.5386,0],[.9917,.5366,0],[.9916,.5346,0],[.9914,.5325,0],[.9912,.5305,0],[.991,.5285,0],[.9908,.5265,0],[.9906,.5244,0],[.9904,.5224,0],[.9903,.5204,0],[.9901,.5183,0],[.9899,.5163,0],[.9897,.5143,0],[.9895,.5122,0],[.9893,.5102,0],[.9892,.5082,0],[.989,.5062,0],[.9888,.5041,0],[.9886,.5021,0],[.9884,.5001,0],[.9882,.498,0]]};ce.YlGn={interpolate:!0,colors:[[1,1,.898],[.999,.9996,.8926],[.998,.9993,.8872],[.997,.9989,.8818],[.9961,.9985,.8764],[.9951,.9982,.871],[.9941,.9978,.8656],[.9931,.9974,.8601],[.9921,.997,.8547],[.9911,.9967,.8493],[.9902,.9963,.8439],[.9892,.9959,.8385],[.9882,.9956,.8331],[.9872,.9952,.8277],[.9862,.9948,.8223],[.9852,.9945,.8168],[.9843,.9941,.8114],[.9833,.9937,.806],[.9823,.9934,.8006],[.9813,.993,.7952],[.9803,.9926,.7898],[.9793,.9922,.7844],[.9783,.9919,.7789],[.9774,.9915,.7735],[.9764,.9911,.7681],[.9754,.9908,.7627],[.9744,.9904,.7573],[.9734,.99,.7519],[.9724,.9897,.7465],[.9715,.9893,.7411],[.9705,.9889,.7356],[.9695,.9886,.7302],[.9682,.9881,.7252],[.9645,.9866,.7224],[.9608,.9851,.7197],[.9571,.9836,.717],[.9534,.9821,.7143],[.9497,.9807,.7116],[.946,.9792,.7089],[.9423,.9777,.7062],[.9386,.9762,.7035],[.9349,.9748,.7008],[.9313,.9733,.6981],[.9276,.9718,.6954],[.9239,.9703,.6927],[.9202,.9689,.69],[.9165,.9674,.6873],[.9128,.9659,.6846],[.9091,.9644,.6818],[.9054,.963,.6791],[.9017,.9615,.6764],[.898,.96,.6737],[.8943,.9585,.671],[.8907,.957,.6683],[.887,.9556,.6656],[.8833,.9541,.6629],[.8796,.9526,.6602],[.8759,.9511,.6575],[.8722,.9497,.6548],[.8685,.9482,.6521],[.8648,.9467,.6494],[.8611,.9452,.6467],[.8574,.9438,.644],[.8537,.9423,.6412],[.8496,.9406,.6386],[.8442,.9383,.636],[.8388,.9359,.6334],[.8334,.9336,.6308],[.828,.9312,.6282],[.8226,.9289,.6257],[.8171,.9266,.6231],[.8117,.9242,.6205],[.8063,.9219,.6179],[.8009,.9196,.6153],[.7955,.9172,.6127],[.7901,.9149,.6101],[.7847,.9125,.6076],[.7793,.9102,.605],[.7738,.9079,.6024],[.7684,.9055,.5998],[.763,.9032,.5972],[.7576,.9009,.5946],[.7522,.8985,.5921],[.7468,.8962,.5895],[.7414,.8938,.5869],[.7359,.8915,.5843],[.7305,.8892,.5817],[.7251,.8868,.5791],[.7197,.8845,.5766],[.7143,.8822,.574],[.7089,.8798,.5714],[.7035,.8775,.5688],[.6981,.8751,.5662],[.6926,.8728,.5636],[.6872,.8705,.5611],[.6818,.8681,.5585],[.676,.8656,.5559],[.6695,.8628,.5533],[.6629,.8599,.5507],[.6564,.8571,.5481],[.6499,.8543,.5456],[.6434,.8515,.543],[.6369,.8486,.5404],[.6303,.8458,.5378],[.6238,.843,.5352],[.6173,.8401,.5326],[.6108,.8373,.5301],[.6043,.8345,.5275],[.5977,.8316,.5249],[.5912,.8288,.5223],[.5847,.826,.5197],[.5782,.8232,.5171],[.5717,.8203,.5146],[.5651,.8175,.512],[.5586,.8147,.5094],[.5521,.8118,.5068],[.5456,.809,.5042],[.5391,.8062,.5016],[.5325,.8034,.4991],[.526,.8005,.4965],[.5195,.7977,.4939],[.513,.7949,.4913],[.5065,.792,.4887],[.4999,.7892,.4861],[.4934,.7864,.4836],[.4869,.7835,.481],[.4804,.7807,.4784],[.4738,.7779,.4758],[.4672,.7748,.4728],[.4604,.7715,.4693],[.4537,.7682,.4659],[.4469,.7648,.4625],[.4401,.7615,.459],[.4334,.7582,.4556],[.4266,.7549,.4521],[.4198,.7516,.4487],[.4131,.7482,.4452],[.4063,.7449,.4418],[.3995,.7416,.4383],[.3928,.7383,.4349],[.386,.7349,.4314],[.3792,.7316,.428],[.3725,.7283,.4246],[.3657,.725,.4211],[.3589,.7217,.4177],[.3522,.7183,.4142],[.3454,.715,.4108],[.3386,.7117,.4073],[.3319,.7084,.4039],[.3251,.7051,.4004],[.3183,.7017,.397],[.3116,.6984,.3936],[.3048,.6951,.3901],[.298,.6918,.3867],[.2913,.6884,.3832],[.2845,.6851,.3798],[.2777,.6818,.3763],[.271,.6785,.3729],[.2642,.6752,.3694],[.2574,.6718,.366],[.2526,.6676,.3627],[.2489,.6628,.3595],[.2452,.658,.3563],[.2415,.6532,.3531],[.2378,.6484,.3499],[.2341,.6436,.3467],[.2304,.6388,.3435],[.2268,.634,.3403],[.2231,.6292,.3371],[.2194,.6244,.3339],[.2157,.6196,.3307],[.212,.6148,.3275],[.2083,.61,.3243],[.2046,.6052,.3211],[.2009,.6004,.3179],[.1972,.5956,.3147],[.1935,.5908,.3115],[.1899,.586,.3083],[.1862,.5812,.3051],[.1825,.5764,.3019],[.1788,.5716,.2987],[.1751,.5668,.2955],[.1714,.562,.2923],[.1677,.5572,.2891],[.164,.5524,.2859],[.1603,.5476,.2827],[.1566,.5428,.2795],[.1529,.538,.2763],[.1493,.5332,.2731],[.1456,.5284,.2699],[.1419,.5236,.2667],[.1382,.5188,.2635],[.134,.5151,.2616],[.1297,.5116,.2602],[.1254,.5082,.2587],[.1211,.5047,.2572],[.1168,.5013,.2557],[.1125,.4978,.2543],[.1082,.4944,.2528],[.1039,.4909,.2513],[.0996,.4875,.2498],[.0953,.4841,.2484],[.091,.4806,.2469],[.0867,.4772,.2454],[.0824,.4737,.2439],[.078,.4703,.2424],[.0737,.4668,.241],[.0694,.4634,.2395],[.0651,.4599,.238],[.0608,.4565,.2365],[.0565,.4531,.2351],[.0522,.4496,.2336],[.0479,.4462,.2321],[.0436,.4427,.2306],[.0393,.4393,.2292],[.035,.4358,.2277],[.0307,.4324,.2262],[.0264,.4289,.2247],[.0221,.4255,.2233],[.0178,.4221,.2218],[.0135,.4186,.2203],[.0092,.4152,.2188],[.0048,.4117,.2173],[5e-4,.4083,.2159],[0,.4041,.2142],[0,.3998,.2125],[0,.3955,.2107],[0,.3912,.209],[0,.3869,.2073],[0,.3825,.2056],[0,.3782,.2038],[0,.3739,.2021],[0,.3696,.2004],[0,.3653,.1987],[0,.361,.197],[0,.3567,.1952],[0,.3524,.1935],[0,.3481,.1918],[0,.3438,.1901],[0,.3395,.1883],[0,.3352,.1866],[0,.3309,.1849],[0,.3266,.1832],[0,.3223,.1815],[0,.318,.1797],[0,.3136,.178],[0,.3093,.1763],[0,.305,.1746],[0,.3007,.1728],[0,.2964,.1711],[0,.2921,.1694],[0,.2878,.1677],[0,.2835,.166],[0,.2792,.1642],[0,.2749,.1625],[0,.2706,.1608]]};ce.YlGnBu={interpolate:!0,colors:[[1,1,.851],[.9978,.9991,.8461],[.9956,.9983,.8411],[.9934,.9974,.8362],[.9911,.9966,.8313],[.9889,.9957,.8264],[.9867,.9948,.8215],[.9845,.994,.8165],[.9823,.9931,.8116],[.9801,.9922,.8067],[.9779,.9914,.8018],[.9756,.9905,.7968],[.9734,.9897,.7919],[.9712,.9888,.787],[.969,.9879,.7821],[.9668,.9871,.7772],[.9646,.9862,.7722],[.9624,.9854,.7673],[.9601,.9845,.7624],[.9579,.9836,.7575],[.9557,.9828,.7526],[.9535,.9819,.7476],[.9513,.9811,.7427],[.9491,.9802,.7378],[.9469,.9793,.7329],[.9446,.9785,.728],[.9424,.9776,.723],[.9402,.9767,.7181],[.938,.9759,.7132],[.9358,.975,.7083],[.9336,.9742,.7033],[.9313,.9733,.6984],[.9288,.9723,.6942],[.9242,.9705,.6945],[.9195,.9686,.6949],[.9148,.9668,.6953],[.9101,.9649,.6956],[.9055,.9631,.696],[.9008,.9612,.6964],[.8961,.9594,.6967],[.8914,.9576,.6971],[.8868,.9557,.6975],[.8821,.9539,.6979],[.8774,.952,.6982],[.8727,.9502,.6986],[.8681,.9483,.699],[.8634,.9465,.6993],[.8587,.9446,.6997],[.854,.9428,.7001],[.8494,.9409,.7004],[.8447,.9391,.7008],[.84,.9373,.7012],[.8353,.9354,.7015],[.8306,.9336,.7019],[.826,.9317,.7023],[.8213,.9299,.7027],[.8166,.928,.703],[.8119,.9262,.7034],[.8073,.9243,.7038],[.8026,.9225,.7041],[.7979,.9206,.7045],[.7932,.9188,.7049],[.7886,.917,.7052],[.7839,.9151,.7056],[.7782,.9129,.7061],[.7693,.9094,.707],[.7605,.906,.7078],[.7516,.9025,.7087],[.7427,.8991,.7095],[.7339,.8956,.7104],[.725,.8922,.7113],[.7162,.8888,.7121],[.7073,.8853,.713],[.6985,.8819,.7138],[.6896,.8784,.7147],[.6807,.875,.7156],[.6719,.8715,.7164],[.663,.8681,.7173],[.6542,.8646,.7182],[.6453,.8612,.719],[.6364,.8577,.7199],[.6276,.8543,.7207],[.6187,.8509,.7216],[.6099,.8474,.7225],[.601,.844,.7233],[.5922,.8405,.7242],[.5833,.8371,.725],[.5744,.8336,.7259],[.5656,.8302,.7268],[.5567,.8267,.7276],[.5479,.8233,.7285],[.539,.8199,.7294],[.5301,.8164,.7302],[.5213,.813,.7311],[.5124,.8095,.7319],[.5036,.8061,.7328],[.4952,.8029,.7337],[.4876,.8,.7349],[.4799,.7972,.736],[.4723,.7944,.7371],[.4647,.7915,.7382],[.457,.7887,.7393],[.4494,.7859,.7404],[.4418,.7831,.7415],[.4342,.7802,.7426],[.4265,.7774,.7437],[.4189,.7746,.7448],[.4113,.7717,.7459],[.4036,.7689,.747],[.396,.7661,.7481],[.3884,.7632,.7493],[.3808,.7604,.7504],[.3731,.7576,.7515],[.3655,.7548,.7526],[.3579,.7519,.7537],[.3502,.7491,.7548],[.3426,.7463,.7559],[.335,.7434,.757],[.3274,.7406,.7581],[.3197,.7378,.7592],[.3121,.7349,.7603],[.3045,.7321,.7614],[.2969,.7293,.7625],[.2892,.7265,.7636],[.2816,.7236,.7648],[.274,.7208,.7659],[.2663,.718,.767],[.2587,.7151,.7681],[.2527,.7114,.7684],[.2483,.7069,.7679],[.2438,.7023,.7674],[.2394,.6978,.7669],[.235,.6932,.7664],[.2305,.6887,.7659],[.2261,.6841,.7654],[.2217,.6796,.7649],[.2173,.675,.7644],[.2128,.6705,.764],[.2084,.6659,.7635],[.204,.6614,.763],[.1995,.6568,.7625],[.1951,.6523,.762],[.1907,.6477,.7615],[.1863,.6432,.761],[.1818,.6386,.7605],[.1774,.6341,.76],[.173,.6295,.7595],[.1685,.625,.759],[.1641,.6204,.7585],[.1597,.6159,.758],[.1552,.6113,.7576],[.1508,.6068,.7571],[.1464,.6022,.7566],[.142,.5976,.7561],[.1375,.5931,.7556],[.1331,.5885,.7551],[.1287,.584,.7546],[.1242,.5794,.7541],[.1198,.5749,.7536],[.1154,.5703,.7531],[.1141,.5647,.7511],[.1147,.5584,.7481],[.1153,.5522,.7452],[.116,.5459,.7422],[.1166,.5396,.7393],[.1172,.5333,.7363],[.1178,.5271,.7334],[.1184,.5208,.7304],[.119,.5145,.7275],[.1196,.5082,.7245],[.1203,.502,.7216],[.1209,.4957,.7186],[.1215,.4894,.7157],[.1221,.4831,.7127],[.1227,.4769,.7098],[.1233,.4706,.7068],[.124,.4643,.7039],[.1246,.458,.7009],[.1252,.4518,.6979],[.1258,.4455,.695],[.1264,.4392,.692],[.127,.4329,.6891],[.1276,.4267,.6861],[.1283,.4204,.6832],[.1289,.4141,.6802],[.1295,.4078,.6773],[.1301,.4016,.6743],[.1307,.3953,.6714],[.1313,.389,.6684],[.1319,.3827,.6655],[.1326,.3765,.6625],[.1332,.3702,.6596],[.1336,.3648,.657],[.134,.3596,.6545],[.1343,.3544,.6521],[.1347,.3493,.6496],[.1351,.3441,.6471],[.1355,.3389,.6447],[.1358,.3337,.6422],[.1362,.3286,.6398],[.1366,.3234,.6373],[.1369,.3182,.6348],[.1373,.3131,.6324],[.1377,.3079,.6299],[.138,.3027,.6275],[.1384,.2976,.625],[.1388,.2924,.6225],[.1391,.2872,.6201],[.1395,.2821,.6176],[.1399,.2769,.6151],[.1403,.2717,.6127],[.1406,.2666,.6102],[.141,.2614,.6078],[.1414,.2562,.6053],[.1417,.2511,.6028],[.1421,.2459,.6004],[.1425,.2407,.5979],[.1428,.2356,.5955],[.1432,.2304,.593],[.1436,.2252,.5905],[.1439,.2201,.5881],[.1443,.2149,.5856],[.1447,.2097,.5832],[.1451,.2046,.5807],[.142,.2014,.5739],[.1384,.1986,.5666],[.1348,.1958,.5592],[.1313,.193,.5518],[.1277,.1901,.5444],[.1241,.1873,.537],[.1206,.1845,.5296],[.117,.1816,.5223],[.1134,.1788,.5149],[.1099,.176,.5075],[.1063,.1731,.5001],[.1027,.1703,.4927],[.0992,.1675,.4854],[.0956,.1647,.478],[.092,.1618,.4706],[.0885,.159,.4632],[.0849,.1562,.4558],[.0813,.1533,.4484],[.0778,.1505,.4411],[.0742,.1477,.4337],[.0706,.1449,.4263],[.0671,.142,.4189],[.0635,.1392,.4115],[.0599,.1364,.4042],[.0563,.1335,.3968],[.0528,.1307,.3894],[.0492,.1279,.382],[.0456,.125,.3746],[.0421,.1222,.3672],[.0385,.1194,.3599],[.0349,.1166,.3525],[.0314,.1137,.3451]]};ce.YlOrBr={interpolate:!0,colors:[[1,1,.898],[1,.999,.893],[1,.998,.888],[1,.997,.8829],[1,.9961,.8779],[1,.9951,.8728],[1,.9941,.8678],[1,.9931,.8627],[1,.9921,.8577],[1,.9911,.8526],[1,.9902,.8476],[1,.9892,.8426],[1,.9882,.8375],[1,.9872,.8325],[1,.9862,.8274],[1,.9852,.8224],[1,.9843,.8173],[1,.9833,.8123],[1,.9823,.8072],[1,.9813,.8022],[1,.9803,.7972],[1,.9793,.7921],[1,.9783,.7871],[1,.9774,.782],[1,.9764,.777],[1,.9754,.7719],[1,.9744,.7669],[1,.9734,.7618],[1,.9724,.7568],[1,.9715,.7518],[1,.9705,.7467],[1,.9695,.7417],[1,.9683,.7366],[.9999,.9659,.7313],[.9997,.9634,.726],[.9996,.9609,.7207],[.9995,.9585,.7154],[.9994,.956,.7101],[.9992,.9536,.7049],[.9991,.9511,.6996],[.999,.9486,.6943],[.9989,.9462,.689],[.9988,.9437,.6837],[.9986,.9413,.6784],[.9985,.9388,.6731],[.9984,.9363,.6678],[.9983,.9339,.6625],[.9981,.9314,.6572],[.998,.929,.6519],[.9979,.9265,.6467],[.9978,.924,.6414],[.9976,.9216,.6361],[.9975,.9191,.6308],[.9974,.9166,.6255],[.9973,.9142,.6202],[.9972,.9117,.6149],[.997,.9093,.6096],[.9969,.9068,.6043],[.9968,.9043,.599],[.9967,.9019,.5938],[.9965,.8994,.5885],[.9964,.897,.5832],[.9963,.8945,.5779],[.9962,.892,.5726],[.9961,.8892,.5666],[.9961,.8854,.5585],[.9961,.8816,.5504],[.9961,.8778,.5422],[.9961,.874,.5341],[.9961,.8702,.526],[.9961,.8664,.5179],[.9961,.8625,.5098],[.9961,.8587,.5016],[.9961,.8549,.4935],[.9961,.8511,.4854],[.9961,.8473,.4773],[.9961,.8435,.4692],[.9961,.8397,.461],[.9961,.8358,.4529],[.9961,.832,.4448],[.9961,.8282,.4367],[.9961,.8244,.4286],[.9961,.8206,.4204],[.9961,.8168,.4123],[.9961,.813,.4042],[.9961,.8092,.3961],[.9961,.8053,.388],[.9961,.8015,.3798],[.9961,.7977,.3717],[.9961,.7939,.3636],[.9961,.7901,.3555],[.9961,.7863,.3474],[.9961,.7825,.3392],[.9961,.7786,.3311],[.9961,.7748,.323],[.9961,.771,.3149],[.9961,.7666,.3081],[.9961,.7614,.3034],[.9961,.7561,.2987],[.9961,.7508,.294],[.9961,.7455,.2894],[.9961,.7402,.2847],[.9961,.7349,.28],[.9961,.7296,.2753],[.9961,.7243,.2706],[.9961,.719,.266],[.9961,.7137,.2613],[.9961,.7085,.2566],[.9961,.7032,.2519],[.9961,.6979,.2473],[.9961,.6926,.2426],[.9961,.6873,.2379],[.9961,.682,.2332],[.9961,.6767,.2286],[.9961,.6714,.2239],[.9961,.6661,.2192],[.9961,.6608,.2145],[.9961,.6555,.2099],[.9961,.6503,.2052],[.9961,.645,.2005],[.9961,.6397,.1958],[.9961,.6344,.1912],[.9961,.6291,.1865],[.9961,.6238,.1818],[.9961,.6185,.1771],[.9961,.6132,.1725],[.9961,.6079,.1678],[.9961,.6026,.1631],[.995,.5975,.1595],[.9928,.5924,.1569],[.9905,.5874,.1543],[.9883,.5823,.1517],[.9861,.5773,.1492],[.9839,.5723,.1466],[.9817,.5672,.144],[.9795,.5622,.1414],[.9773,.5571,.1388],[.975,.5521,.1362],[.9728,.547,.1337],[.9706,.542,.1311],[.9684,.5369,.1285],[.9662,.5319,.1259],[.964,.5269,.1233],[.9618,.5218,.1207],[.9595,.5168,.1182],[.9573,.5117,.1156],[.9551,.5067,.113],[.9529,.5016,.1104],[.9507,.4966,.1078],[.9485,.4915,.1052],[.9463,.4865,.1027],[.944,.4815,.1001],[.9418,.4764,.0975],[.9396,.4714,.0949],[.9374,.4663,.0923],[.9352,.4613,.0897],[.933,.4562,.0872],[.9307,.4512,.0846],[.9285,.4462,.082],[.9263,.4411,.0794],[.923,.4364,.077],[.9191,.432,.0748],[.9152,.4276,.0726],[.9112,.4232,.0704],[.9073,.4187,.0682],[.9033,.4143,.066],[.8994,.4099,.0638],[.8955,.4054,.0615],[.8915,.401,.0593],[.8876,.3966,.0571],[.8837,.3922,.0549],[.8797,.3877,.0527],[.8758,.3833,.0505],[.8718,.3789,.0483],[.8679,.3744,.046],[.864,.37,.0438],[.86,.3656,.0416],[.8561,.3612,.0394],[.8522,.3567,.0372],[.8482,.3523,.035],[.8443,.3479,.0328],[.8404,.3434,.0305],[.8364,.339,.0283],[.8325,.3346,.0261],[.8285,.3301,.0239],[.8246,.3257,.0217],[.8207,.3213,.0195],[.8167,.3169,.0173],[.8128,.3124,.015],[.8089,.308,.0128],[.8049,.3036,.0106],[.801,.2991,.0084],[.7953,.2958,.008],[.789,.2929,.0083],[.7827,.2899,.0085],[.7765,.287,.0088],[.7702,.284,.009],[.7639,.2811,.0093],[.7576,.2781,.0095],[.7514,.2752,.0098],[.7451,.2722,.01],[.7388,.2693,.0102],[.7325,.2663,.0105],[.7263,.2633,.0107],[.72,.2604,.011],[.7137,.2574,.0112],[.7075,.2545,.0115],[.7012,.2515,.0117],[.6949,.2486,.012],[.6886,.2456,.0122],[.6824,.2427,.0125],[.6761,.2397,.0127],[.6698,.2368,.0129],[.6635,.2338,.0132],[.6573,.2309,.0134],[.651,.2279,.0137],[.6447,.225,.0139],[.6384,.222,.0142],[.6322,.2191,.0144],[.6259,.2161,.0147],[.6196,.2131,.0149],[.6133,.2102,.0152],[.6071,.2072,.0154],[.6008,.2043,.0157],[.5945,.2023,.0159],[.5882,.2005,.0161],[.582,.1986,.0164],[.5757,.1968,.0166],[.5694,.1949,.0169],[.5631,.1931,.0171],[.5569,.1912,.0174],[.5506,.1894,.0176],[.5443,.1875,.0179],[.538,.1857,.0181],[.5318,.1839,.0184],[.5255,.182,.0186],[.5192,.1802,.0189],[.5129,.1783,.0191],[.5067,.1765,.0193],[.5004,.1746,.0196],[.4941,.1728,.0198],[.4878,.1709,.0201],[.4816,.1691,.0203],[.4753,.1672,.0206],[.469,.1654,.0208],[.4627,.1636,.0211],[.4565,.1617,.0213],[.4502,.1599,.0216],[.4439,.158,.0218],[.4376,.1562,.0221],[.4314,.1543,.0223],[.4251,.1525,.0225],[.4188,.1506,.0228],[.4125,.1488,.023],[.4063,.1469,.0233],[.4,.1451,.0235]]};ce.YlOrRd={interpolate:!0,colors:[[1,1,.8],[1,.9978,.7946],[1,.9956,.7892],[1,.9934,.7838],[1,.9911,.7783],[1,.9889,.7729],[1,.9867,.7675],[1,.9845,.7621],[1,.9823,.7567],[1,.9801,.7513],[1,.9779,.7459],[1,.9756,.7405],[1,.9734,.735],[1,.9712,.7296],[1,.969,.7242],[1,.9668,.7188],[1,.9646,.7134],[1,.9624,.708],[1,.9601,.7026],[1,.9579,.6971],[1,.9557,.6917],[1,.9535,.6863],[1,.9513,.6809],[1,.9491,.6755],[1,.9469,.6701],[1,.9446,.6647],[1,.9424,.6593],[1,.9402,.6538],[1,.938,.6484],[1,.9358,.643],[1,.9336,.6376],[1,.9313,.6322],[1,.9291,.6268],[.9999,.9266,.6216],[.9997,.9242,.6165],[.9996,.9217,.6113],[.9995,.9193,.6061],[.9994,.9168,.601],[.9992,.9143,.5958],[.9991,.9119,.5906],[.999,.9094,.5855],[.9989,.907,.5803],[.9988,.9045,.5751],[.9986,.902,.57],[.9985,.8996,.5648],[.9984,.8971,.5596],[.9983,.8947,.5545],[.9981,.8922,.5493],[.998,.8897,.5441],[.9979,.8873,.539],[.9978,.8848,.5338],[.9976,.8824,.5286],[.9975,.8799,.5235],[.9974,.8774,.5183],[.9973,.875,.5131],[.9972,.8725,.508],[.997,.87,.5028],[.9969,.8676,.4976],[.9968,.8651,.4925],[.9967,.8627,.4873],[.9965,.8602,.4821],[.9964,.8577,.477],[.9963,.8553,.4718],[.9962,.8528,.4666],[.9961,.8498,.4615],[.9961,.845,.4563],[.9961,.8402,.4511],[.9961,.8354,.446],[.9961,.8306,.4408],[.9961,.8258,.4356],[.9961,.821,.4304],[.9961,.8162,.4253],[.9961,.8114,.4201],[.9961,.8066,.4149],[.9961,.8018,.4098],[.9961,.797,.4046],[.9961,.7922,.3994],[.9961,.7874,.3943],[.9961,.7826,.3891],[.9961,.7778,.3839],[.9961,.773,.3788],[.9961,.7682,.3736],[.9961,.7634,.3684],[.9961,.7586,.3633],[.9961,.7538,.3581],[.9961,.749,.3529],[.9961,.7442,.3478],[.9961,.7394,.3426],[.9961,.7346,.3374],[.9961,.7298,.3323],[.9961,.725,.3271],[.9961,.7202,.3219],[.9961,.7154,.3168],[.9961,.7106,.3116],[.9961,.7058,.3064],[.9961,.701,.3013],[.996,.6963,.2973],[.9959,.6918,.2953],[.9958,.6872,.2934],[.9957,.6827,.2914],[.9955,.6781,.2894],[.9954,.6736,.2875],[.9953,.669,.2855],[.9952,.6645,.2835],[.995,.6599,.2816],[.9949,.6554,.2796],[.9948,.6508,.2776],[.9947,.6463,.2756],[.9946,.6417,.2737],[.9944,.6372,.2717],[.9943,.6326,.2697],[.9942,.6281,.2678],[.9941,.6235,.2658],[.9939,.6189,.2638],[.9938,.6144,.2619],[.9937,.6098,.2599],[.9936,.6053,.2579],[.9934,.6007,.256],[.9933,.5962,.254],[.9932,.5916,.252],[.9931,.5871,.2501],[.993,.5825,.2481],[.9928,.578,.2461],[.9927,.5734,.2442],[.9926,.5689,.2422],[.9925,.5643,.2402],[.9923,.5598,.2382],[.9922,.5552,.2363],[.9921,.5491,.2342],[.992,.5413,.232],[.9918,.5336,.2298],[.9917,.5258,.2275],[.9916,.5181,.2253],[.9915,.5103,.2231],[.9914,.5026,.2209],[.9912,.4948,.2187],[.9911,.4871,.2165],[.991,.4793,.2143],[.9909,.4716,.212],[.9907,.4638,.2098],[.9906,.4561,.2076],[.9905,.4483,.2054],[.9904,.4406,.2032],[.9902,.4328,.201],[.9901,.4251,.1988],[.99,.4173,.1965],[.9899,.4096,.1943],[.9898,.4018,.1921],[.9896,.394,.1899],[.9895,.3863,.1877],[.9894,.3785,.1855],[.9893,.3708,.1833],[.9891,.363,.181],[.989,.3553,.1788],[.9889,.3475,.1766],[.9888,.3398,.1744],[.9887,.332,.1722],[.9885,.3243,.17],[.9884,.3165,.1678],[.9883,.3088,.1655],[.9863,.3019,.1636],[.9832,.2955,.1619],[.9802,.2891,.1602],[.9771,.2827,.1585],[.974,.2763,.1567],[.9709,.2699,.155],[.9679,.2635,.1533],[.9648,.2571,.1516],[.9617,.2507,.1499],[.9586,.2443,.1481],[.9556,.2379,.1464],[.9525,.2315,.1447],[.9494,.2251,.143],[.9463,.2187,.1412],[.9433,.2123,.1395],[.9402,.2059,.1378],[.9371,.1995,.1361],[.934,.1931,.1343],[.9309,.1867,.1326],[.9279,.1803,.1309],[.9248,.1739,.1292],[.9217,.1675,.1275],[.9186,.1611,.1257],[.9156,.1547,.124],[.9125,.1483,.1223],[.9094,.1419,.1206],[.9063,.1355,.1188],[.9033,.1292,.1171],[.9002,.1228,.1154],[.8971,.1164,.1137],[.894,.11,.112],[.891,.1036,.1102],[.8867,.0996,.1107],[.882,.0964,.112],[.8773,.0932,.1132],[.8727,.09,.1144],[.868,.0868,.1156],[.8633,.0836,.1169],[.8586,.0804,.1181],[.854,.0772,.1193],[.8493,.074,.1206],[.8446,.0708,.1218],[.8399,.0676,.123],[.8353,.0644,.1243],[.8306,.0612,.1255],[.8259,.058,.1267],[.8212,.0548,.128],[.8166,.0516,.1292],[.8119,.0484,.1304],[.8072,.0452,.1316],[.8025,.042,.1329],[.7979,.0388,.1341],[.7932,.0356,.1353],[.7885,.0324,.1366],[.7838,.0292,.1378],[.7792,.026,.139],[.7745,.0228,.1403],[.7698,.0196,.1415],[.7651,.0164,.1427],[.7605,.0132,.1439],[.7558,.01,.1452],[.7511,.0068,.1464],[.7464,.0036,.1476],[.7418,4e-4,.1489],[.7346,0,.149],[.7271,0,.149],[.7196,0,.149],[.7121,0,.149],[.7046,0,.149],[.6971,0,.149],[.6896,0,.149],[.6821,0,.149],[.6746,0,.149],[.6671,0,.149],[.6596,0,.149],[.6521,0,.149],[.6446,0,.149],[.637,0,.149],[.6295,0,.149],[.622,0,.149],[.6145,0,.149],[.607,0,.149],[.5995,0,.149],[.592,0,.149],[.5845,0,.149],[.577,0,.149],[.5695,0,.149],[.562,0,.149],[.5545,0,.149],[.547,0,.149],[.5395,0,.149],[.532,0,.149],[.5245,0,.149],[.517,0,.149],[.5095,0,.149],[.502,0,.149]]};ce.afmhot={interpolate:!0,colors:[[0,0,0],[.0078,0,0],[.0157,0,0],[.0235,0,0],[.0314,0,0],[.0392,0,0],[.0471,0,0],[.0549,0,0],[.0627,0,0],[.0706,0,0],[.0784,0,0],[.0863,0,0],[.0941,0,0],[.102,0,0],[.1098,0,0],[.1176,0,0],[.1255,0,0],[.1333,0,0],[.1412,0,0],[.149,0,0],[.1569,0,0],[.1647,0,0],[.1725,0,0],[.1804,0,0],[.1882,0,0],[.1961,0,0],[.2039,0,0],[.2118,0,0],[.2196,0,0],[.2275,0,0],[.2353,0,0],[.2431,0,0],[.251,0,0],[.2588,0,0],[.2667,0,0],[.2745,0,0],[.2824,0,0],[.2902,0,0],[.298,0,0],[.3059,0,0],[.3137,0,0],[.3216,0,0],[.3294,0,0],[.3373,0,0],[.3451,0,0],[.3529,0,0],[.3608,0,0],[.3686,0,0],[.3765,0,0],[.3843,0,0],[.3922,0,0],[.4,0,0],[.4078,0,0],[.4157,0,0],[.4235,0,0],[.4314,0,0],[.4392,0,0],[.4471,0,0],[.4549,0,0],[.4627,0,0],[.4706,0,0],[.4784,0,0],[.4863,0,0],[.4941,0,0],[.502,.002,0],[.5098,.0098,0],[.5176,.0176,0],[.5255,.0255,0],[.5333,.0333,0],[.5412,.0412,0],[.549,.049,0],[.5569,.0569,0],[.5647,.0647,0],[.5725,.0725,0],[.5804,.0804,0],[.5882,.0882,0],[.5961,.0961,0],[.6039,.1039,0],[.6118,.1118,0],[.6196,.1196,0],[.6275,.1275,0],[.6353,.1353,0],[.6431,.1431,0],[.651,.151,0],[.6588,.1588,0],[.6667,.1667,0],[.6745,.1745,0],[.6824,.1824,0],[.6902,.1902,0],[.698,.198,0],[.7059,.2059,0],[.7137,.2137,0],[.7216,.2216,0],[.7294,.2294,0],[.7373,.2373,0],[.7451,.2451,0],[.7529,.2529,0],[.7608,.2608,0],[.7686,.2686,0],[.7765,.2765,0],[.7843,.2843,0],[.7922,.2922,0],[.8,.3,0],[.8078,.3078,0],[.8157,.3157,0],[.8235,.3235,0],[.8314,.3314,0],[.8392,.3392,0],[.8471,.3471,0],[.8549,.3549,0],[.8627,.3627,0],[.8706,.3706,0],[.8784,.3784,0],[.8863,.3863,0],[.8941,.3941,0],[.902,.402,0],[.9098,.4098,0],[.9176,.4176,0],[.9255,.4255,0],[.9333,.4333,0],[.9412,.4412,0],[.949,.449,0],[.9569,.4569,0],[.9647,.4647,0],[.9725,.4725,0],[.9804,.4804,0],[.9882,.4882,0],[.9961,.4961,0],[1,.5039,.0039],[1,.5118,.0118],[1,.5196,.0196],[1,.5275,.0275],[1,.5353,.0353],[1,.5431,.0431],[1,.551,.051],[1,.5588,.0588],[1,.5667,.0667],[1,.5745,.0745],[1,.5824,.0824],[1,.5902,.0902],[1,.598,.098],[1,.6059,.1059],[1,.6137,.1137],[1,.6216,.1216],[1,.6294,.1294],[1,.6373,.1373],[1,.6451,.1451],[1,.6529,.1529],[1,.6608,.1608],[1,.6686,.1686],[1,.6765,.1765],[1,.6843,.1843],[1,.6922,.1922],[1,.7,.2],[1,.7078,.2078],[1,.7157,.2157],[1,.7235,.2235],[1,.7314,.2314],[1,.7392,.2392],[1,.7471,.2471],[1,.7549,.2549],[1,.7627,.2627],[1,.7706,.2706],[1,.7784,.2784],[1,.7863,.2863],[1,.7941,.2941],[1,.802,.302],[1,.8098,.3098],[1,.8176,.3176],[1,.8255,.3255],[1,.8333,.3333],[1,.8412,.3412],[1,.849,.349],[1,.8569,.3569],[1,.8647,.3647],[1,.8725,.3725],[1,.8804,.3804],[1,.8882,.3882],[1,.8961,.3961],[1,.9039,.4039],[1,.9118,.4118],[1,.9196,.4196],[1,.9275,.4275],[1,.9353,.4353],[1,.9431,.4431],[1,.951,.451],[1,.9588,.4588],[1,.9667,.4667],[1,.9745,.4745],[1,.9824,.4824],[1,.9902,.4902],[1,.998,.498],[1,1,.5059],[1,1,.5137],[1,1,.5216],[1,1,.5294],[1,1,.5373],[1,1,.5451],[1,1,.5529],[1,1,.5608],[1,1,.5686],[1,1,.5765],[1,1,.5843],[1,1,.5922],[1,1,.6],[1,1,.6078],[1,1,.6157],[1,1,.6235],[1,1,.6314],[1,1,.6392],[1,1,.6471],[1,1,.6549],[1,1,.6627],[1,1,.6706],[1,1,.6784],[1,1,.6863],[1,1,.6941],[1,1,.702],[1,1,.7098],[1,1,.7176],[1,1,.7255],[1,1,.7333],[1,1,.7412],[1,1,.749],[1,1,.7569],[1,1,.7647],[1,1,.7725],[1,1,.7804],[1,1,.7882],[1,1,.7961],[1,1,.8039],[1,1,.8118],[1,1,.8196],[1,1,.8275],[1,1,.8353],[1,1,.8431],[1,1,.851],[1,1,.8588],[1,1,.8667],[1,1,.8745],[1,1,.8824],[1,1,.8902],[1,1,.898],[1,1,.9059],[1,1,.9137],[1,1,.9216],[1,1,.9294],[1,1,.9373],[1,1,.9451],[1,1,.9529],[1,1,.9608],[1,1,.9686],[1,1,.9765],[1,1,.9843],[1,1,.9922],[1,1,1]]};ce.autumn={interpolate:!0,colors:[[1,0,0],[1,.0039,0],[1,.0078,0],[1,.0118,0],[1,.0157,0],[1,.0196,0],[1,.0235,0],[1,.0275,0],[1,.0314,0],[1,.0353,0],[1,.0392,0],[1,.0431,0],[1,.0471,0],[1,.051,0],[1,.0549,0],[1,.0588,0],[1,.0627,0],[1,.0667,0],[1,.0706,0],[1,.0745,0],[1,.0784,0],[1,.0824,0],[1,.0863,0],[1,.0902,0],[1,.0941,0],[1,.098,0],[1,.102,0],[1,.1059,0],[1,.1098,0],[1,.1137,0],[1,.1176,0],[1,.1216,0],[1,.1255,0],[1,.1294,0],[1,.1333,0],[1,.1373,0],[1,.1412,0],[1,.1451,0],[1,.149,0],[1,.1529,0],[1,.1569,0],[1,.1608,0],[1,.1647,0],[1,.1686,0],[1,.1725,0],[1,.1765,0],[1,.1804,0],[1,.1843,0],[1,.1882,0],[1,.1922,0],[1,.1961,0],[1,.2,0],[1,.2039,0],[1,.2078,0],[1,.2118,0],[1,.2157,0],[1,.2196,0],[1,.2235,0],[1,.2275,0],[1,.2314,0],[1,.2353,0],[1,.2392,0],[1,.2431,0],[1,.2471,0],[1,.251,0],[1,.2549,0],[1,.2588,0],[1,.2627,0],[1,.2667,0],[1,.2706,0],[1,.2745,0],[1,.2784,0],[1,.2824,0],[1,.2863,0],[1,.2902,0],[1,.2941,0],[1,.298,0],[1,.302,0],[1,.3059,0],[1,.3098,0],[1,.3137,0],[1,.3176,0],[1,.3216,0],[1,.3255,0],[1,.3294,0],[1,.3333,0],[1,.3373,0],[1,.3412,0],[1,.3451,0],[1,.349,0],[1,.3529,0],[1,.3569,0],[1,.3608,0],[1,.3647,0],[1,.3686,0],[1,.3725,0],[1,.3765,0],[1,.3804,0],[1,.3843,0],[1,.3882,0],[1,.3922,0],[1,.3961,0],[1,.4,0],[1,.4039,0],[1,.4078,0],[1,.4118,0],[1,.4157,0],[1,.4196,0],[1,.4235,0],[1,.4275,0],[1,.4314,0],[1,.4353,0],[1,.4392,0],[1,.4431,0],[1,.4471,0],[1,.451,0],[1,.4549,0],[1,.4588,0],[1,.4627,0],[1,.4667,0],[1,.4706,0],[1,.4745,0],[1,.4784,0],[1,.4824,0],[1,.4863,0],[1,.4902,0],[1,.4941,0],[1,.498,0],[1,.502,0],[1,.5059,0],[1,.5098,0],[1,.5137,0],[1,.5176,0],[1,.5216,0],[1,.5255,0],[1,.5294,0],[1,.5333,0],[1,.5373,0],[1,.5412,0],[1,.5451,0],[1,.549,0],[1,.5529,0],[1,.5569,0],[1,.5608,0],[1,.5647,0],[1,.5686,0],[1,.5725,0],[1,.5765,0],[1,.5804,0],[1,.5843,0],[1,.5882,0],[1,.5922,0],[1,.5961,0],[1,.6,0],[1,.6039,0],[1,.6078,0],[1,.6118,0],[1,.6157,0],[1,.6196,0],[1,.6235,0],[1,.6275,0],[1,.6314,0],[1,.6353,0],[1,.6392,0],[1,.6431,0],[1,.6471,0],[1,.651,0],[1,.6549,0],[1,.6588,0],[1,.6627,0],[1,.6667,0],[1,.6706,0],[1,.6745,0],[1,.6784,0],[1,.6824,0],[1,.6863,0],[1,.6902,0],[1,.6941,0],[1,.698,0],[1,.702,0],[1,.7059,0],[1,.7098,0],[1,.7137,0],[1,.7176,0],[1,.7216,0],[1,.7255,0],[1,.7294,0],[1,.7333,0],[1,.7373,0],[1,.7412,0],[1,.7451,0],[1,.749,0],[1,.7529,0],[1,.7569,0],[1,.7608,0],[1,.7647,0],[1,.7686,0],[1,.7725,0],[1,.7765,0],[1,.7804,0],[1,.7843,0],[1,.7882,0],[1,.7922,0],[1,.7961,0],[1,.8,0],[1,.8039,0],[1,.8078,0],[1,.8118,0],[1,.8157,0],[1,.8196,0],[1,.8235,0],[1,.8275,0],[1,.8314,0],[1,.8353,0],[1,.8392,0],[1,.8431,0],[1,.8471,0],[1,.851,0],[1,.8549,0],[1,.8588,0],[1,.8627,0],[1,.8667,0],[1,.8706,0],[1,.8745,0],[1,.8784,0],[1,.8824,0],[1,.8863,0],[1,.8902,0],[1,.8941,0],[1,.898,0],[1,.902,0],[1,.9059,0],[1,.9098,0],[1,.9137,0],[1,.9176,0],[1,.9216,0],[1,.9255,0],[1,.9294,0],[1,.9333,0],[1,.9373,0],[1,.9412,0],[1,.9451,0],[1,.949,0],[1,.9529,0],[1,.9569,0],[1,.9608,0],[1,.9647,0],[1,.9686,0],[1,.9725,0],[1,.9765,0],[1,.9804,0],[1,.9843,0],[1,.9882,0],[1,.9922,0],[1,.9961,0],[1,1,0]]};ce.binary={interpolate:!0,colors:[[1,1,1],[.9961,.9961,.9961],[.9922,.9922,.9922],[.9882,.9882,.9882],[.9843,.9843,.9843],[.9804,.9804,.9804],[.9765,.9765,.9765],[.9725,.9725,.9725],[.9686,.9686,.9686],[.9647,.9647,.9647],[.9608,.9608,.9608],[.9569,.9569,.9569],[.9529,.9529,.9529],[.949,.949,.949],[.9451,.9451,.9451],[.9412,.9412,.9412],[.9373,.9373,.9373],[.9333,.9333,.9333],[.9294,.9294,.9294],[.9255,.9255,.9255],[.9216,.9216,.9216],[.9176,.9176,.9176],[.9137,.9137,.9137],[.9098,.9098,.9098],[.9059,.9059,.9059],[.902,.902,.902],[.898,.898,.898],[.8941,.8941,.8941],[.8902,.8902,.8902],[.8863,.8863,.8863],[.8824,.8824,.8824],[.8784,.8784,.8784],[.8745,.8745,.8745],[.8706,.8706,.8706],[.8667,.8667,.8667],[.8627,.8627,.8627],[.8588,.8588,.8588],[.8549,.8549,.8549],[.851,.851,.851],[.8471,.8471,.8471],[.8431,.8431,.8431],[.8392,.8392,.8392],[.8353,.8353,.8353],[.8314,.8314,.8314],[.8275,.8275,.8275],[.8235,.8235,.8235],[.8196,.8196,.8196],[.8157,.8157,.8157],[.8118,.8118,.8118],[.8078,.8078,.8078],[.8039,.8039,.8039],[.8,.8,.8],[.7961,.7961,.7961],[.7922,.7922,.7922],[.7882,.7882,.7882],[.7843,.7843,.7843],[.7804,.7804,.7804],[.7765,.7765,.7765],[.7725,.7725,.7725],[.7686,.7686,.7686],[.7647,.7647,.7647],[.7608,.7608,.7608],[.7569,.7569,.7569],[.7529,.7529,.7529],[.749,.749,.749],[.7451,.7451,.7451],[.7412,.7412,.7412],[.7373,.7373,.7373],[.7333,.7333,.7333],[.7294,.7294,.7294],[.7255,.7255,.7255],[.7216,.7216,.7216],[.7176,.7176,.7176],[.7137,.7137,.7137],[.7098,.7098,.7098],[.7059,.7059,.7059],[.702,.702,.702],[.698,.698,.698],[.6941,.6941,.6941],[.6902,.6902,.6902],[.6863,.6863,.6863],[.6824,.6824,.6824],[.6784,.6784,.6784],[.6745,.6745,.6745],[.6706,.6706,.6706],[.6667,.6667,.6667],[.6627,.6627,.6627],[.6588,.6588,.6588],[.6549,.6549,.6549],[.651,.651,.651],[.6471,.6471,.6471],[.6431,.6431,.6431],[.6392,.6392,.6392],[.6353,.6353,.6353],[.6314,.6314,.6314],[.6275,.6275,.6275],[.6235,.6235,.6235],[.6196,.6196,.6196],[.6157,.6157,.6157],[.6118,.6118,.6118],[.6078,.6078,.6078],[.6039,.6039,.6039],[.6,.6,.6],[.5961,.5961,.5961],[.5922,.5922,.5922],[.5882,.5882,.5882],[.5843,.5843,.5843],[.5804,.5804,.5804],[.5765,.5765,.5765],[.5725,.5725,.5725],[.5686,.5686,.5686],[.5647,.5647,.5647],[.5608,.5608,.5608],[.5569,.5569,.5569],[.5529,.5529,.5529],[.549,.549,.549],[.5451,.5451,.5451],[.5412,.5412,.5412],[.5373,.5373,.5373],[.5333,.5333,.5333],[.5294,.5294,.5294],[.5255,.5255,.5255],[.5216,.5216,.5216],[.5176,.5176,.5176],[.5137,.5137,.5137],[.5098,.5098,.5098],[.5059,.5059,.5059],[.502,.502,.502],[.498,.498,.498],[.4941,.4941,.4941],[.4902,.4902,.4902],[.4863,.4863,.4863],[.4824,.4824,.4824],[.4784,.4784,.4784],[.4745,.4745,.4745],[.4706,.4706,.4706],[.4667,.4667,.4667],[.4627,.4627,.4627],[.4588,.4588,.4588],[.4549,.4549,.4549],[.451,.451,.451],[.4471,.4471,.4471],[.4431,.4431,.4431],[.4392,.4392,.4392],[.4353,.4353,.4353],[.4314,.4314,.4314],[.4275,.4275,.4275],[.4235,.4235,.4235],[.4196,.4196,.4196],[.4157,.4157,.4157],[.4118,.4118,.4118],[.4078,.4078,.4078],[.4039,.4039,.4039],[.4,.4,.4],[.3961,.3961,.3961],[.3922,.3922,.3922],[.3882,.3882,.3882],[.3843,.3843,.3843],[.3804,.3804,.3804],[.3765,.3765,.3765],[.3725,.3725,.3725],[.3686,.3686,.3686],[.3647,.3647,.3647],[.3608,.3608,.3608],[.3569,.3569,.3569],[.3529,.3529,.3529],[.349,.349,.349],[.3451,.3451,.3451],[.3412,.3412,.3412],[.3373,.3373,.3373],[.3333,.3333,.3333],[.3294,.3294,.3294],[.3255,.3255,.3255],[.3216,.3216,.3216],[.3176,.3176,.3176],[.3137,.3137,.3137],[.3098,.3098,.3098],[.3059,.3059,.3059],[.302,.302,.302],[.298,.298,.298],[.2941,.2941,.2941],[.2902,.2902,.2902],[.2863,.2863,.2863],[.2824,.2824,.2824],[.2784,.2784,.2784],[.2745,.2745,.2745],[.2706,.2706,.2706],[.2667,.2667,.2667],[.2627,.2627,.2627],[.2588,.2588,.2588],[.2549,.2549,.2549],[.251,.251,.251],[.2471,.2471,.2471],[.2431,.2431,.2431],[.2392,.2392,.2392],[.2353,.2353,.2353],[.2314,.2314,.2314],[.2275,.2275,.2275],[.2235,.2235,.2235],[.2196,.2196,.2196],[.2157,.2157,.2157],[.2118,.2118,.2118],[.2078,.2078,.2078],[.2039,.2039,.2039],[.2,.2,.2],[.1961,.1961,.1961],[.1922,.1922,.1922],[.1882,.1882,.1882],[.1843,.1843,.1843],[.1804,.1804,.1804],[.1765,.1765,.1765],[.1725,.1725,.1725],[.1686,.1686,.1686],[.1647,.1647,.1647],[.1608,.1608,.1608],[.1569,.1569,.1569],[.1529,.1529,.1529],[.149,.149,.149],[.1451,.1451,.1451],[.1412,.1412,.1412],[.1373,.1373,.1373],[.1333,.1333,.1333],[.1294,.1294,.1294],[.1255,.1255,.1255],[.1216,.1216,.1216],[.1176,.1176,.1176],[.1137,.1137,.1137],[.1098,.1098,.1098],[.1059,.1059,.1059],[.102,.102,.102],[.098,.098,.098],[.0941,.0941,.0941],[.0902,.0902,.0902],[.0863,.0863,.0863],[.0824,.0824,.0824],[.0784,.0784,.0784],[.0745,.0745,.0745],[.0706,.0706,.0706],[.0667,.0667,.0667],[.0627,.0627,.0627],[.0588,.0588,.0588],[.0549,.0549,.0549],[.051,.051,.051],[.0471,.0471,.0471],[.0431,.0431,.0431],[.0392,.0392,.0392],[.0353,.0353,.0353],[.0314,.0314,.0314],[.0275,.0275,.0275],[.0235,.0235,.0235],[.0196,.0196,.0196],[.0157,.0157,.0157],[.0118,.0118,.0118],[.0078,.0078,.0078],[.0039,.0039,.0039],[0,0,0]]};ce.bone={interpolate:!0,colors:[[0,0,0],[.0034,.0034,.0048],[.0069,.0069,.0095],[.0103,.0103,.0143],[.0137,.0137,.0191],[.0172,.0172,.0239],[.0206,.0206,.0286],[.024,.024,.0334],[.0275,.0275,.0382],[.0309,.0309,.043],[.0343,.0343,.0477],[.0377,.0377,.0525],[.0412,.0412,.0573],[.0446,.0446,.0621],[.048,.048,.0668],[.0515,.0515,.0716],[.0549,.0549,.0764],[.0583,.0583,.0812],[.0618,.0618,.0859],[.0652,.0652,.0907],[.0686,.0686,.0955],[.0721,.0721,.1003],[.0755,.0755,.105],[.0789,.0789,.1098],[.0824,.0824,.1146],[.0858,.0858,.1194],[.0892,.0892,.1241],[.0926,.0926,.1289],[.0961,.0961,.1337],[.0995,.0995,.1384],[.1029,.1029,.1432],[.1064,.1064,.148],[.1098,.1098,.1528],[.1132,.1132,.1575],[.1167,.1167,.1623],[.1201,.1201,.1671],[.1235,.1235,.1719],[.127,.127,.1766],[.1304,.1304,.1814],[.1338,.1338,.1862],[.1373,.1373,.191],[.1407,.1407,.1957],[.1441,.1441,.2005],[.1475,.1475,.2053],[.151,.151,.2101],[.1544,.1544,.2148],[.1578,.1578,.2196],[.1613,.1613,.2244],[.1647,.1647,.2292],[.1681,.1681,.2339],[.1716,.1716,.2387],[.175,.175,.2435],[.1784,.1784,.2483],[.1819,.1819,.253],[.1853,.1853,.2578],[.1887,.1887,.2626],[.1922,.1922,.2673],[.1956,.1956,.2721],[.199,.199,.2769],[.2025,.2025,.2817],[.2059,.2059,.2864],[.2093,.2093,.2912],[.2127,.2127,.296],[.2162,.2162,.3008],[.2196,.2196,.3055],[.223,.223,.3103],[.2265,.2265,.3151],[.2299,.2299,.3199],[.2333,.2333,.3246],[.2368,.2368,.3294],[.2402,.2402,.3342],[.2436,.2436,.339],[.2471,.2471,.3437],[.2505,.2505,.3485],[.2539,.2539,.3533],[.2574,.2574,.3581],[.2608,.2608,.3628],[.2642,.2642,.3676],[.2676,.2676,.3724],[.2711,.2711,.3772],[.2745,.2745,.3819],[.2779,.2779,.3867],[.2814,.2814,.3915],[.2848,.2848,.3962],[.2882,.2882,.401],[.2917,.2917,.4058],[.2951,.2951,.4106],[.2985,.2985,.4153],[.302,.302,.4201],[.3054,.3054,.4249],[.3088,.3088,.4297],[.3123,.3123,.4344],[.3157,.3157,.4392],[.3191,.3191,.444],[.3225,.3237,.4475],[.326,.3284,.451],[.3294,.3331,.4544],[.3328,.3379,.4578],[.3363,.3426,.4613],[.3397,.3473,.4647],[.3431,.352,.4681],[.3466,.3567,.4716],[.35,.3615,.475],[.3534,.3662,.4784],[.3569,.3709,.4819],[.3603,.3756,.4853],[.3637,.3803,.4887],[.3672,.385,.4922],[.3706,.3898,.4956],[.374,.3945,.499],[.3775,.3992,.5025],[.3809,.4039,.5059],[.3843,.4086,.5093],[.3877,.4134,.5127],[.3912,.4181,.5162],[.3946,.4228,.5196],[.398,.4275,.523],[.4015,.4322,.5265],[.4049,.4369,.5299],[.4083,.4417,.5333],[.4118,.4464,.5368],[.4152,.4511,.5402],[.4186,.4558,.5436],[.4221,.4605,.5471],[.4255,.4653,.5505],[.4289,.47,.5539],[.4324,.4747,.5574],[.4358,.4794,.5608],[.4392,.4841,.5642],[.4426,.4888,.5676],[.4461,.4936,.5711],[.4495,.4983,.5745],[.4529,.503,.5779],[.4564,.5077,.5814],[.4598,.5124,.5848],[.4632,.5172,.5882],[.4667,.5219,.5917],[.4701,.5266,.5951],[.4735,.5313,.5985],[.477,.536,.602],[.4804,.5407,.6054],[.4838,.5455,.6088],[.4873,.5502,.6123],[.4907,.5549,.6157],[.4941,.5596,.6191],[.4975,.5643,.6225],[.501,.5691,.626],[.5044,.5738,.6294],[.5078,.5785,.6328],[.5113,.5832,.6363],[.5147,.5879,.6397],[.5181,.5926,.6431],[.5216,.5974,.6466],[.525,.6021,.65],[.5284,.6068,.6534],[.5319,.6115,.6569],[.5353,.6162,.6603],[.5387,.621,.6637],[.5422,.6257,.6672],[.5456,.6304,.6706],[.549,.6351,.674],[.5525,.6398,.6775],[.5559,.6445,.6809],[.5593,.6493,.6843],[.5627,.654,.6877],[.5662,.6587,.6912],[.5696,.6634,.6946],[.573,.6681,.698],[.5765,.6729,.7015],[.5799,.6776,.7049],[.5833,.6823,.7083],[.5868,.687,.7118],[.5902,.6917,.7152],[.5936,.6964,.7186],[.5971,.7012,.7221],[.6005,.7059,.7255],[.6039,.7106,.7289],[.6074,.7153,.7324],[.6108,.72,.7358],[.6142,.7248,.7392],[.6176,.7295,.7426],[.6211,.7342,.7461],[.6245,.7389,.7495],[.6279,.7436,.7529],[.6314,.7483,.7564],[.6348,.7531,.7598],[.6382,.7578,.7632],[.6417,.7625,.7667],[.6451,.7672,.7701],[.6485,.7719,.7735],[.652,.7767,.777],[.6569,.7804,.7804],[.6622,.7838,.7838],[.6676,.7873,.7873],[.6729,.7907,.7907],[.6783,.7941,.7941],[.6837,.7975,.7975],[.689,.801,.801],[.6944,.8044,.8044],[.6998,.8078,.8078],[.7051,.8113,.8113],[.7105,.8147,.8147],[.7158,.8181,.8181],[.7212,.8216,.8216],[.7266,.825,.825],[.7319,.8284,.8284],[.7373,.8319,.8319],[.7426,.8353,.8353],[.748,.8387,.8387],[.7534,.8422,.8422],[.7587,.8456,.8456],[.7641,.849,.849],[.7695,.8525,.8525],[.7748,.8559,.8559],[.7802,.8593,.8593],[.7855,.8627,.8627],[.7909,.8662,.8662],[.7963,.8696,.8696],[.8016,.873,.873],[.807,.8765,.8765],[.8123,.8799,.8799],[.8177,.8833,.8833],[.8231,.8868,.8868],[.8284,.8902,.8902],[.8338,.8936,.8936],[.8392,.8971,.8971],[.8445,.9005,.9005],[.8499,.9039,.9039],[.8552,.9074,.9074],[.8606,.9108,.9108],[.866,.9142,.9142],[.8713,.9176,.9176],[.8767,.9211,.9211],[.882,.9245,.9245],[.8874,.9279,.9279],[.8928,.9314,.9314],[.8981,.9348,.9348],[.9035,.9382,.9382],[.9089,.9417,.9417],[.9142,.9451,.9451],[.9196,.9485,.9485],[.9249,.952,.952],[.9303,.9554,.9554],[.9357,.9588,.9588],[.941,.9623,.9623],[.9464,.9657,.9657],[.9517,.9691,.9691],[.9571,.9725,.9725],[.9625,.976,.976],[.9678,.9794,.9794],[.9732,.9828,.9828],[.9786,.9863,.9863],[.9839,.9897,.9897],[.9893,.9931,.9931],[.9946,.9966,.9966],[1,1,1]]};ce.brg={interpolate:!0,colors:[[0,0,1],[.0078,0,.9922],[.0157,0,.9843],[.0235,0,.9765],[.0314,0,.9686],[.0392,0,.9608],[.0471,0,.9529],[.0549,0,.9451],[.0627,0,.9373],[.0706,0,.9294],[.0784,0,.9216],[.0863,0,.9137],[.0941,0,.9059],[.102,0,.898],[.1098,0,.8902],[.1176,0,.8824],[.1255,0,.8745],[.1333,0,.8667],[.1412,0,.8588],[.149,0,.851],[.1569,0,.8431],[.1647,0,.8353],[.1725,0,.8275],[.1804,0,.8196],[.1882,0,.8118],[.1961,0,.8039],[.2039,0,.7961],[.2118,0,.7882],[.2196,0,.7804],[.2275,0,.7725],[.2353,0,.7647],[.2431,0,.7569],[.251,0,.749],[.2588,0,.7412],[.2667,0,.7333],[.2745,0,.7255],[.2824,0,.7176],[.2902,0,.7098],[.298,0,.702],[.3059,0,.6941],[.3137,0,.6863],[.3216,0,.6784],[.3294,0,.6706],[.3373,0,.6627],[.3451,0,.6549],[.3529,0,.6471],[.3608,0,.6392],[.3686,0,.6314],[.3765,0,.6235],[.3843,0,.6157],[.3922,0,.6078],[.4,0,.6],[.4078,0,.5922],[.4157,0,.5843],[.4235,0,.5765],[.4314,0,.5686],[.4392,0,.5608],[.4471,0,.5529],[.4549,0,.5451],[.4627,0,.5373],[.4706,0,.5294],[.4784,0,.5216],[.4863,0,.5137],[.4941,0,.5059],[.502,0,.498],[.5098,0,.4902],[.5176,0,.4824],[.5255,0,.4745],[.5333,0,.4667],[.5412,0,.4588],[.549,0,.451],[.5569,0,.4431],[.5647,0,.4353],[.5725,0,.4275],[.5804,0,.4196],[.5882,0,.4118],[.5961,0,.4039],[.6039,0,.3961],[.6118,0,.3882],[.6196,0,.3804],[.6275,0,.3725],[.6353,0,.3647],[.6431,0,.3569],[.651,0,.349],[.6588,0,.3412],[.6667,0,.3333],[.6745,0,.3255],[.6824,0,.3176],[.6902,0,.3098],[.698,0,.302],[.7059,0,.2941],[.7137,0,.2863],[.7216,0,.2784],[.7294,0,.2706],[.7373,0,.2627],[.7451,0,.2549],[.7529,0,.2471],[.7608,0,.2392],[.7686,0,.2314],[.7765,0,.2235],[.7843,0,.2157],[.7922,0,.2078],[.8,0,.2],[.8078,0,.1922],[.8157,0,.1843],[.8235,0,.1765],[.8314,0,.1686],[.8392,0,.1608],[.8471,0,.1529],[.8549,0,.1451],[.8627,0,.1373],[.8706,0,.1294],[.8784,0,.1216],[.8863,0,.1137],[.8941,0,.1059],[.902,0,.098],[.9098,0,.0902],[.9176,0,.0824],[.9255,0,.0745],[.9333,0,.0667],[.9412,0,.0588],[.949,0,.051],[.9569,0,.0431],[.9647,0,.0353],[.9725,0,.0275],[.9804,0,.0196],[.9882,0,.0118],[.9961,0,.0039],[.9961,.0039,0],[.9882,.0118,0],[.9804,.0196,0],[.9725,.0275,0],[.9647,.0353,0],[.9569,.0431,0],[.949,.051,0],[.9412,.0588,0],[.9333,.0667,0],[.9255,.0745,0],[.9176,.0824,0],[.9098,.0902,0],[.902,.098,0],[.8941,.1059,0],[.8863,.1137,0],[.8784,.1216,0],[.8706,.1294,0],[.8627,.1373,0],[.8549,.1451,0],[.8471,.1529,0],[.8392,.1608,0],[.8314,.1686,0],[.8235,.1765,0],[.8157,.1843,0],[.8078,.1922,0],[.8,.2,0],[.7922,.2078,0],[.7843,.2157,0],[.7765,.2235,0],[.7686,.2314,0],[.7608,.2392,0],[.7529,.2471,0],[.7451,.2549,0],[.7373,.2627,0],[.7294,.2706,0],[.7216,.2784,0],[.7137,.2863,0],[.7059,.2941,0],[.698,.302,0],[.6902,.3098,0],[.6824,.3176,0],[.6745,.3255,0],[.6667,.3333,0],[.6588,.3412,0],[.651,.349,0],[.6431,.3569,0],[.6353,.3647,0],[.6275,.3725,0],[.6196,.3804,0],[.6118,.3882,0],[.6039,.3961,0],[.5961,.4039,0],[.5882,.4118,0],[.5804,.4196,0],[.5725,.4275,0],[.5647,.4353,0],[.5569,.4431,0],[.549,.451,0],[.5412,.4588,0],[.5333,.4667,0],[.5255,.4745,0],[.5176,.4824,0],[.5098,.4902,0],[.502,.498,0],[.4941,.5059,0],[.4863,.5137,0],[.4784,.5216,0],[.4706,.5294,0],[.4627,.5373,0],[.4549,.5451,0],[.4471,.5529,0],[.4392,.5608,0],[.4314,.5686,0],[.4235,.5765,0],[.4157,.5843,0],[.4078,.5922,0],[.4,.6,0],[.3922,.6078,0],[.3843,.6157,0],[.3765,.6235,0],[.3686,.6314,0],[.3608,.6392,0],[.3529,.6471,0],[.3451,.6549,0],[.3373,.6627,0],[.3294,.6706,0],[.3216,.6784,0],[.3137,.6863,0],[.3059,.6941,0],[.298,.702,0],[.2902,.7098,0],[.2824,.7176,0],[.2745,.7255,0],[.2667,.7333,0],[.2588,.7412,0],[.251,.749,0],[.2431,.7569,0],[.2353,.7647,0],[.2275,.7725,0],[.2196,.7804,0],[.2118,.7882,0],[.2039,.7961,0],[.1961,.8039,0],[.1882,.8118,0],[.1804,.8196,0],[.1725,.8275,0],[.1647,.8353,0],[.1569,.8431,0],[.149,.851,0],[.1412,.8588,0],[.1333,.8667,0],[.1255,.8745,0],[.1176,.8824,0],[.1098,.8902,0],[.102,.898,0],[.0941,.9059,0],[.0863,.9137,0],[.0784,.9216,0],[.0706,.9294,0],[.0627,.9373,0],[.0549,.9451,0],[.0471,.9529,0],[.0392,.9608,0],[.0314,.9686,0],[.0235,.9765,0],[.0157,.9843,0],[.0078,.9922,0],[0,1,0]]};ce.bwr={interpolate:!0,colors:[[0,0,1],[.0078,.0078,1],[.0157,.0157,1],[.0235,.0235,1],[.0314,.0314,1],[.0392,.0392,1],[.0471,.0471,1],[.0549,.0549,1],[.0627,.0627,1],[.0706,.0706,1],[.0784,.0784,1],[.0863,.0863,1],[.0941,.0941,1],[.102,.102,1],[.1098,.1098,1],[.1176,.1176,1],[.1255,.1255,1],[.1333,.1333,1],[.1412,.1412,1],[.149,.149,1],[.1569,.1569,1],[.1647,.1647,1],[.1725,.1725,1],[.1804,.1804,1],[.1882,.1882,1],[.1961,.1961,1],[.2039,.2039,1],[.2118,.2118,1],[.2196,.2196,1],[.2275,.2275,1],[.2353,.2353,1],[.2431,.2431,1],[.251,.251,1],[.2588,.2588,1],[.2667,.2667,1],[.2745,.2745,1],[.2824,.2824,1],[.2902,.2902,1],[.298,.298,1],[.3059,.3059,1],[.3137,.3137,1],[.3216,.3216,1],[.3294,.3294,1],[.3373,.3373,1],[.3451,.3451,1],[.3529,.3529,1],[.3608,.3608,1],[.3686,.3686,1],[.3765,.3765,1],[.3843,.3843,1],[.3922,.3922,1],[.4,.4,1],[.4078,.4078,1],[.4157,.4157,1],[.4235,.4235,1],[.4314,.4314,1],[.4392,.4392,1],[.4471,.4471,1],[.4549,.4549,1],[.4627,.4627,1],[.4706,.4706,1],[.4784,.4784,1],[.4863,.4863,1],[.4941,.4941,1],[.502,.502,1],[.5098,.5098,1],[.5176,.5176,1],[.5255,.5255,1],[.5333,.5333,1],[.5412,.5412,1],[.549,.549,1],[.5569,.5569,1],[.5647,.5647,1],[.5725,.5725,1],[.5804,.5804,1],[.5882,.5882,1],[.5961,.5961,1],[.6039,.6039,1],[.6118,.6118,1],[.6196,.6196,1],[.6275,.6275,1],[.6353,.6353,1],[.6431,.6431,1],[.651,.651,1],[.6588,.6588,1],[.6667,.6667,1],[.6745,.6745,1],[.6824,.6824,1],[.6902,.6902,1],[.698,.698,1],[.7059,.7059,1],[.7137,.7137,1],[.7216,.7216,1],[.7294,.7294,1],[.7373,.7373,1],[.7451,.7451,1],[.7529,.7529,1],[.7608,.7608,1],[.7686,.7686,1],[.7765,.7765,1],[.7843,.7843,1],[.7922,.7922,1],[.8,.8,1],[.8078,.8078,1],[.8157,.8157,1],[.8235,.8235,1],[.8314,.8314,1],[.8392,.8392,1],[.8471,.8471,1],[.8549,.8549,1],[.8627,.8627,1],[.8706,.8706,1],[.8784,.8784,1],[.8863,.8863,1],[.8941,.8941,1],[.902,.902,1],[.9098,.9098,1],[.9176,.9176,1],[.9255,.9255,1],[.9333,.9333,1],[.9412,.9412,1],[.949,.949,1],[.9569,.9569,1],[.9647,.9647,1],[.9725,.9725,1],[.9804,.9804,1],[.9882,.9882,1],[.9961,.9961,1],[1,.9961,.9961],[1,.9882,.9882],[1,.9804,.9804],[1,.9725,.9725],[1,.9647,.9647],[1,.9569,.9569],[1,.949,.949],[1,.9412,.9412],[1,.9333,.9333],[1,.9255,.9255],[1,.9176,.9176],[1,.9098,.9098],[1,.902,.902],[1,.8941,.8941],[1,.8863,.8863],[1,.8784,.8784],[1,.8706,.8706],[1,.8627,.8627],[1,.8549,.8549],[1,.8471,.8471],[1,.8392,.8392],[1,.8314,.8314],[1,.8235,.8235],[1,.8157,.8157],[1,.8078,.8078],[1,.8,.8],[1,.7922,.7922],[1,.7843,.7843],[1,.7765,.7765],[1,.7686,.7686],[1,.7608,.7608],[1,.7529,.7529],[1,.7451,.7451],[1,.7373,.7373],[1,.7294,.7294],[1,.7216,.7216],[1,.7137,.7137],[1,.7059,.7059],[1,.698,.698],[1,.6902,.6902],[1,.6824,.6824],[1,.6745,.6745],[1,.6667,.6667],[1,.6588,.6588],[1,.651,.651],[1,.6431,.6431],[1,.6353,.6353],[1,.6275,.6275],[1,.6196,.6196],[1,.6118,.6118],[1,.6039,.6039],[1,.5961,.5961],[1,.5882,.5882],[1,.5804,.5804],[1,.5725,.5725],[1,.5647,.5647],[1,.5569,.5569],[1,.549,.549],[1,.5412,.5412],[1,.5333,.5333],[1,.5255,.5255],[1,.5176,.5176],[1,.5098,.5098],[1,.502,.502],[1,.4941,.4941],[1,.4863,.4863],[1,.4784,.4784],[1,.4706,.4706],[1,.4627,.4627],[1,.4549,.4549],[1,.4471,.4471],[1,.4392,.4392],[1,.4314,.4314],[1,.4235,.4235],[1,.4157,.4157],[1,.4078,.4078],[1,.4,.4],[1,.3922,.3922],[1,.3843,.3843],[1,.3765,.3765],[1,.3686,.3686],[1,.3608,.3608],[1,.3529,.3529],[1,.3451,.3451],[1,.3373,.3373],[1,.3294,.3294],[1,.3216,.3216],[1,.3137,.3137],[1,.3059,.3059],[1,.298,.298],[1,.2902,.2902],[1,.2824,.2824],[1,.2745,.2745],[1,.2667,.2667],[1,.2588,.2588],[1,.251,.251],[1,.2431,.2431],[1,.2353,.2353],[1,.2275,.2275],[1,.2196,.2196],[1,.2118,.2118],[1,.2039,.2039],[1,.1961,.1961],[1,.1882,.1882],[1,.1804,.1804],[1,.1725,.1725],[1,.1647,.1647],[1,.1569,.1569],[1,.149,.149],[1,.1412,.1412],[1,.1333,.1333],[1,.1255,.1255],[1,.1176,.1176],[1,.1098,.1098],[1,.102,.102],[1,.0941,.0941],[1,.0863,.0863],[1,.0784,.0784],[1,.0706,.0706],[1,.0627,.0627],[1,.0549,.0549],[1,.0471,.0471],[1,.0392,.0392],[1,.0314,.0314],[1,.0235,.0235],[1,.0157,.0157],[1,.0078,.0078],[1,0,0]]};ce.cividis={interpolate:!0,colors:[[0,.1351,.3048],[0,.1381,.3111],[0,.141,.3176],[0,.144,.324],[0,.1469,.3305],[0,.1498,.3371],[0,.1527,.3437],[0,.1554,.3505],[0,.1579,.3575],[0,.1605,.3645],[0,.1631,.3716],[0,.1656,.3788],[0,.1682,.3859],[0,.1708,.3931],[0,.1734,.4004],[0,.1761,.4076],[0,.1788,.4148],[0,.1816,.4219],[0,.1846,.4288],[0,.1869,.4355],[0,.1888,.4396],[0,.191,.4411],[0,.1934,.4416],[.0036,.1959,.4416],[.0179,.1985,.4412],[.0321,.2012,.4408],[.0462,.2039,.4402],[.0584,.2066,.4395],[.069,.2094,.4389],[.0786,.2121,.4381],[.0875,.2149,.4373],[.0956,.2176,.4366],[.1034,.2204,.4358],[.1107,.2232,.4351],[.1176,.2259,.4343],[.1243,.2287,.4335],[.1307,.2315,.4328],[.1368,.2342,.4321],[.1429,.237,.4314],[.1486,.2397,.4308],[.1543,.2425,.4301],[.1597,.2452,.4295],[.1651,.248,.4289],[.1704,.2507,.4283],[.1755,.2534,.4278],[.1805,.2562,.4273],[.1855,.2589,.4268],[.1903,.2616,.4263],[.1951,.2644,.4259],[.1998,.2671,.4255],[.2044,.2698,.4251],[.2089,.2725,.4248],[.2134,.2753,.4245],[.2179,.278,.4242],[.2223,.2807,.4239],[.2266,.2834,.4237],[.2309,.2861,.4235],[.2351,.2888,.4233],[.2393,.2916,.4232],[.2435,.2943,.423],[.2476,.297,.4229],[.2517,.2997,.4229],[.2557,.3024,.4228],[.2597,.3051,.4228],[.2637,.3078,.4228],[.2677,.3105,.4228],[.2716,.3133,.4228],[.2755,.316,.423],[.2794,.3187,.423],[.2832,.3214,.4232],[.2871,.3241,.4234],[.2909,.3268,.4235],[.2947,.3295,.4237],[.2984,.3322,.424],[.3022,.335,.4242],[.3059,.3377,.4245],[.3096,.3404,.4248],[.3133,.3431,.4251],[.3169,.3458,.4255],[.3206,.3486,.4259],[.3242,.3513,.4262],[.3279,.354,.4267],[.3315,.3567,.4271],[.3351,.3595,.4276],[.3387,.3622,.4281],[.3422,.3649,.4286],[.3458,.3677,.4291],[.3493,.3704,.4297],[.3529,.3732,.4302],[.3564,.3759,.4308],[.3599,.3786,.4315],[.3634,.3814,.4321],[.3669,.3841,.4328],[.3704,.3869,.4334],[.3739,.3896,.4342],[.3774,.3924,.4349],[.3808,.3952,.4357],[.3843,.3979,.4365],[.3877,.4007,.4373],[.3912,.4035,.4381],[.3946,.4062,.439],[.398,.409,.4398],[.4014,.4118,.4407],[.4048,.4146,.4416],[.4082,.4174,.4426],[.4116,.4201,.4436],[.415,.4229,.4446],[.4184,.4257,.4456],[.4217,.4285,.4466],[.4251,.4313,.4477],[.4285,.4341,.4489],[.4318,.437,.45],[.4352,.4398,.4511],[.4385,.4426,.4523],[.4418,.4454,.4537],[.4451,.4482,.4549],[.4484,.4511,.4563],[.4518,.4539,.4576],[.4551,.4567,.459],[.4584,.4596,.4605],[.4616,.4624,.462],[.4649,.4652,.4634],[.4683,.4681,.4649],[.4715,.471,.4664],[.4748,.4738,.4677],[.4782,.4767,.4688],[.4816,.4796,.4698],[.4851,.4825,.4704],[.4887,.4853,.471],[.4923,.4882,.4715],[.4959,.4911,.4718],[.4996,.494,.472],[.5032,.4969,.4723],[.5069,.4997,.4724],[.5105,.5026,.4726],[.5142,.5055,.4726],[.5179,.5085,.4727],[.5216,.5114,.4726],[.5253,.5143,.4727],[.5291,.5172,.4725],[.5328,.5201,.4724],[.5366,.5231,.4724],[.5403,.526,.4722],[.5441,.5289,.4719],[.5478,.5319,.4717],[.5516,.5348,.4714],[.5554,.5378,.4711],[.5592,.5408,.4708],[.563,.5437,.4705],[.5668,.5467,.47],[.5706,.5497,.4696],[.5744,.5527,.4692],[.5782,.5557,.4687],[.5821,.5587,.4681],[.5859,.5617,.4676],[.5898,.5647,.4671],[.5936,.5677,.4664],[.5975,.5707,.4658],[.6014,.5737,.4651],[.6052,.5768,.4644],[.6091,.5798,.4636],[.613,.5829,.463],[.6169,.5859,.4622],[.6208,.589,.4614],[.6247,.592,.4606],[.6286,.5951,.4596],[.6325,.5982,.4587],[.6364,.6013,.4578],[.6404,.6044,.4568],[.6443,.6074,.4559],[.6482,.6106,.4548],[.6522,.6137,.4537],[.6561,.6168,.4527],[.6601,.6199,.4515],[.6641,.623,.4503],[.668,.6262,.4493],[.672,.6293,.448],[.676,.6325,.4467],[.68,.6356,.4454],[.6839,.6388,.4443],[.688,.642,.4429],[.692,.6451,.4415],[.696,.6483,.4401],[.7,.6515,.4386],[.704,.6547,.4371],[.7081,.6579,.4356],[.7121,.6612,.4341],[.7162,.6644,.4324],[.7202,.6676,.4308],[.7243,.6709,.4292],[.7283,.6741,.4276],[.7324,.6774,.4257],[.7365,.6806,.424],[.7406,.6839,.4221],[.7447,.6872,.4204],[.7488,.6905,.4184],[.7529,.6938,.4165],[.757,.6971,.4147],[.7611,.7004,.4126],[.7652,.7037,.4106],[.7694,.707,.4085],[.7735,.7104,.4064],[.7777,.7137,.4041],[.7818,.7171,.402],[.786,.7204,.3996],[.7901,.7238,.3974],[.7943,.7272,.395],[.7985,.7306,.3926],[.8027,.734,.3902],[.8069,.7374,.3877],[.8111,.7408,.3852],[.8153,.7442,.3825],[.8195,.7477,.3798],[.8237,.7511,.377],[.828,.7546,.3743],[.8322,.758,.3715],[.8364,.7615,.3687],[.8407,.765,.3657],[.845,.7684,.3627],[.8492,.7719,.3597],[.8535,.7755,.3565],[.8578,.779,.3533],[.8621,.7825,.35],[.8664,.786,.3466],[.8707,.7896,.3433],[.8751,.7931,.3397],[.8794,.7967,.3362],[.8837,.8003,.3326],[.8881,.8038,.3288],[.8924,.8074,.325],[.8968,.811,.321],[.9012,.8146,.317],[.9056,.8183,.3129],[.91,.8219,.3086],[.9144,.8255,.3043],[.9188,.8292,.3],[.9233,.8328,.2952],[.9277,.8365,.2906],[.9322,.8402,.2859],[.9367,.8438,.2809],[.9411,.8475,.2758],[.9457,.8512,.2705],[.9502,.8549,.2651],[.9547,.8586,.2594],[.9593,.8624,.2536],[.9639,.8661,.2474],[.9685,.8698,.2413],[.9731,.8736,.2347],[.9778,.8773,.228],[.9825,.881,.2209],[.9873,.8847,.2133],[.9922,.8884,.2055],[.9948,.893,.2034],[.9952,.8984,.2076],[.9955,.9039,.2124],[.9957,.9093,.2178]]};ce.cool={interpolate:!0,colors:[[0,1,1],[.0039,.9961,1],[.0078,.9922,1],[.0118,.9882,1],[.0157,.9843,1],[.0196,.9804,1],[.0235,.9765,1],[.0275,.9725,1],[.0314,.9686,1],[.0353,.9647,1],[.0392,.9608,1],[.0431,.9569,1],[.0471,.9529,1],[.051,.949,1],[.0549,.9451,1],[.0588,.9412,1],[.0627,.9373,1],[.0667,.9333,1],[.0706,.9294,1],[.0745,.9255,1],[.0784,.9216,1],[.0824,.9176,1],[.0863,.9137,1],[.0902,.9098,1],[.0941,.9059,1],[.098,.902,1],[.102,.898,1],[.1059,.8941,1],[.1098,.8902,1],[.1137,.8863,1],[.1176,.8824,1],[.1216,.8784,1],[.1255,.8745,1],[.1294,.8706,1],[.1333,.8667,1],[.1373,.8627,1],[.1412,.8588,1],[.1451,.8549,1],[.149,.851,1],[.1529,.8471,1],[.1569,.8431,1],[.1608,.8392,1],[.1647,.8353,1],[.1686,.8314,1],[.1725,.8275,1],[.1765,.8235,1],[.1804,.8196,1],[.1843,.8157,1],[.1882,.8118,1],[.1922,.8078,1],[.1961,.8039,1],[.2,.8,1],[.2039,.7961,1],[.2078,.7922,1],[.2118,.7882,1],[.2157,.7843,1],[.2196,.7804,1],[.2235,.7765,1],[.2275,.7725,1],[.2314,.7686,1],[.2353,.7647,1],[.2392,.7608,1],[.2431,.7569,1],[.2471,.7529,1],[.251,.749,1],[.2549,.7451,1],[.2588,.7412,1],[.2627,.7373,1],[.2667,.7333,1],[.2706,.7294,1],[.2745,.7255,1],[.2784,.7216,1],[.2824,.7176,1],[.2863,.7137,1],[.2902,.7098,1],[.2941,.7059,1],[.298,.702,1],[.302,.698,1],[.3059,.6941,1],[.3098,.6902,1],[.3137,.6863,1],[.3176,.6824,1],[.3216,.6784,1],[.3255,.6745,1],[.3294,.6706,1],[.3333,.6667,1],[.3373,.6627,1],[.3412,.6588,1],[.3451,.6549,1],[.349,.651,1],[.3529,.6471,1],[.3569,.6431,1],[.3608,.6392,1],[.3647,.6353,1],[.3686,.6314,1],[.3725,.6275,1],[.3765,.6235,1],[.3804,.6196,1],[.3843,.6157,1],[.3882,.6118,1],[.3922,.6078,1],[.3961,.6039,1],[.4,.6,1],[.4039,.5961,1],[.4078,.5922,1],[.4118,.5882,1],[.4157,.5843,1],[.4196,.5804,1],[.4235,.5765,1],[.4275,.5725,1],[.4314,.5686,1],[.4353,.5647,1],[.4392,.5608,1],[.4431,.5569,1],[.4471,.5529,1],[.451,.549,1],[.4549,.5451,1],[.4588,.5412,1],[.4627,.5373,1],[.4667,.5333,1],[.4706,.5294,1],[.4745,.5255,1],[.4784,.5216,1],[.4824,.5176,1],[.4863,.5137,1],[.4902,.5098,1],[.4941,.5059,1],[.498,.502,1],[.502,.498,1],[.5059,.4941,1],[.5098,.4902,1],[.5137,.4863,1],[.5176,.4824,1],[.5216,.4784,1],[.5255,.4745,1],[.5294,.4706,1],[.5333,.4667,1],[.5373,.4627,1],[.5412,.4588,1],[.5451,.4549,1],[.549,.451,1],[.5529,.4471,1],[.5569,.4431,1],[.5608,.4392,1],[.5647,.4353,1],[.5686,.4314,1],[.5725,.4275,1],[.5765,.4235,1],[.5804,.4196,1],[.5843,.4157,1],[.5882,.4118,1],[.5922,.4078,1],[.5961,.4039,1],[.6,.4,1],[.6039,.3961,1],[.6078,.3922,1],[.6118,.3882,1],[.6157,.3843,1],[.6196,.3804,1],[.6235,.3765,1],[.6275,.3725,1],[.6314,.3686,1],[.6353,.3647,1],[.6392,.3608,1],[.6431,.3569,1],[.6471,.3529,1],[.651,.349,1],[.6549,.3451,1],[.6588,.3412,1],[.6627,.3373,1],[.6667,.3333,1],[.6706,.3294,1],[.6745,.3255,1],[.6784,.3216,1],[.6824,.3176,1],[.6863,.3137,1],[.6902,.3098,1],[.6941,.3059,1],[.698,.302,1],[.702,.298,1],[.7059,.2941,1],[.7098,.2902,1],[.7137,.2863,1],[.7176,.2824,1],[.7216,.2784,1],[.7255,.2745,1],[.7294,.2706,1],[.7333,.2667,1],[.7373,.2627,1],[.7412,.2588,1],[.7451,.2549,1],[.749,.251,1],[.7529,.2471,1],[.7569,.2431,1],[.7608,.2392,1],[.7647,.2353,1],[.7686,.2314,1],[.7725,.2275,1],[.7765,.2235,1],[.7804,.2196,1],[.7843,.2157,1],[.7882,.2118,1],[.7922,.2078,1],[.7961,.2039,1],[.8,.2,1],[.8039,.1961,1],[.8078,.1922,1],[.8118,.1882,1],[.8157,.1843,1],[.8196,.1804,1],[.8235,.1765,1],[.8275,.1725,1],[.8314,.1686,1],[.8353,.1647,1],[.8392,.1608,1],[.8431,.1569,1],[.8471,.1529,1],[.851,.149,1],[.8549,.1451,1],[.8588,.1412,1],[.8627,.1373,1],[.8667,.1333,1],[.8706,.1294,1],[.8745,.1255,1],[.8784,.1216,1],[.8824,.1176,1],[.8863,.1137,1],[.8902,.1098,1],[.8941,.1059,1],[.898,.102,1],[.902,.098,1],[.9059,.0941,1],[.9098,.0902,1],[.9137,.0863,1],[.9176,.0824,1],[.9216,.0784,1],[.9255,.0745,1],[.9294,.0706,1],[.9333,.0667,1],[.9373,.0627,1],[.9412,.0588,1],[.9451,.0549,1],[.949,.051,1],[.9529,.0471,1],[.9569,.0431,1],[.9608,.0392,1],[.9647,.0353,1],[.9686,.0314,1],[.9725,.0275,1],[.9765,.0235,1],[.9804,.0196,1],[.9843,.0157,1],[.9882,.0118,1],[.9922,.0078,1],[.9961,.0039,1],[1,0,1]]};ce.coolwarm={interpolate:!0,colors:[[.2298,.2987,.7537],[.2344,.3055,.7597],[.2389,.3124,.7657],[.2435,.3192,.7717],[.2481,.326,.7777],[.2527,.3328,.7837],[.2572,.3397,.7897],[.2618,.3465,.7957],[.2664,.3533,.8016],[.2711,.36,.8071],[.2758,.3667,.8126],[.2805,.3734,.818],[.2853,.3801,.8235],[.29,.3868,.8289],[.2947,.3935,.8344],[.2994,.4002,.8398],[.3042,.4069,.8453],[.3091,.4135,.8501],[.3139,.4201,.855],[.3188,.4266,.8599],[.3237,.4332,.8647],[.3286,.4397,.8696],[.3335,.4463,.8745],[.3384,.4528,.8793],[.3433,.4594,.8841],[.3483,.4657,.8883],[.3534,.4721,.8926],[.3584,.4784,.8968],[.3635,.4848,.901],[.3685,.4911,.9052],[.3736,.4975,.9095],[.3786,.5039,.9137],[.3837,.5102,.9178],[.3889,.5163,.9214],[.394,.5224,.9249],[.3992,.5285,.9285],[.4044,.5346,.932],[.4096,.5408,.9355],[.4148,.5469,.9391],[.42,.553,.9426],[.4252,.5591,.9461],[.4305,.5649,.9489],[.4358,.5707,.9517],[.4411,.5765,.9545],[.4464,.5824,.9574],[.4517,.5882,.9602],[.457,.594,.963],[.4624,.5998,.9659],[.4677,.6056,.9685],[.4731,.6111,.9706],[.4785,.6166,.9727],[.4839,.622,.9748],[.4892,.6275,.9769],[.4946,.633,.979],[.5,.6385,.9811],[.5054,.644,.9832],[.5108,.6494,.9851],[.5163,.6545,.9864],[.5217,.6596,.9877],[.5271,.6647,.9891],[.5326,.6698,.9904],[.538,.6749,.9917],[.5434,.68,.9931],[.5489,.6851,.9944],[.5543,.6901,.9955],[.5597,.6948,.9961],[.5652,.6994,.9966],[.5706,.7041,.9972],[.5761,.7088,.9978],[.5815,.7135,.9983],[.5869,.7181,.9989],[.5924,.7228,.9994],[.5978,.7273,.9998],[.6032,.7315,.9996],[.6085,.7357,.9994],[.6139,.7399,.9991],[.6193,.7441,.9989],[.6247,.7483,.9987],[.6301,.7525,.9985],[.6355,.7567,.9983],[.6408,.7608,.9978],[.6461,.7644,.9969],[.6514,.7681,.9959],[.6567,.7718,.9949],[.662,.7755,.9939],[.6673,.7792,.993],[.6725,.7829,.992],[.6778,.7865,.991],[.6831,.79,.9898],[.6882,.7932,.988],[.6933,.7963,.9863],[.6985,.7994,.9846],[.7036,.8026,.9828],[.7087,.8057,.9811],[.7139,.8089,.9794],[.719,.812,.9777],[.724,.8149,.9757],[.729,.8175,.9732],[.7339,.82,.9707],[.7388,.8226,.9683],[.7438,.8251,.9658],[.7487,.8277,.9633],[.7536,.8302,.9609],[.7585,.8328,.9584],[.7634,.8351,.9557],[.768,.837,.9525],[.7727,.839,.9493],[.7774,.8409,.9461],[.782,.8429,.943],[.7867,.8448,.9398],[.7914,.8468,.9366],[.7961,.8487,.9335],[.8006,.8504,.93],[.805,.8517,.9262],[.8093,.853,.9223],[.8137,.8543,.9185],[.8181,.8556,.9146],[.8224,.8569,.9108],[.8268,.8582,.907],[.8311,.8595,.9031],[.8353,.8605,.899],[.8394,.8612,.8945],[.8434,.8618,.89],[.8474,.8625,.8855],[.8514,.8631,.8811],[.8554,.8638,.8766],[.8594,.8644,.8721],[.8634,.8651,.8676],[.8674,.8644,.8626],[.8715,.8623,.857],[.8756,.8602,.8514],[.8796,.8582,.8458],[.8837,.8561,.8403],[.8878,.854,.8347],[.8918,.852,.8291],[.8959,.8499,.8235],[.8995,.8475,.8178],[.9028,.8448,.812],[.9062,.8421,.8062],[.9095,.8394,.8003],[.9128,.8367,.7945],[.9161,.834,.7887],[.9194,.8313,.7829],[.9227,.8286,.7771],[.9256,.8255,.7711],[.9281,.8222,.7651],[.9307,.8189,.7591],[.9332,.8156,.7532],[.9358,.8122,.7472],[.9383,.8089,.7412],[.9409,.8056,.7352],[.9434,.8023,.7292],[.9455,.7986,.7231],[.9473,.7947,.717],[.9492,.7908,.7109],[.951,.7869,.7048],[.9528,.783,.6986],[.9546,.7791,.6925],[.9564,.7751,.6864],[.9582,.7712,.6803],[.9595,.767,.6741],[.9606,.7625,.668],[.9616,.758,.6618],[.9627,.7536,.6556],[.9638,.7491,.6494],[.9648,.7446,.6432],[.9659,.7401,.6371],[.967,.7357,.6309],[.9675,.7308,.6247],[.9679,.7258,.6185],[.9682,.7208,.6123],[.9685,.7158,.6061],[.9689,.7108,.5999],[.9692,.7058,.5937],[.9695,.7008,.5875],[.9699,.6958,.5813],[.9697,.6905,.5751],[.9693,.685,.569],[.9689,.6795,.5628],[.9685,.674,.5566],[.9681,.6685,.5505],[.9677,.663,.5443],[.9673,.6575,.5382],[.9669,.652,.532],[.966,.6461,.5259],[.9649,.6402,.5198],[.9638,.6342,.5137],[.9627,.6282,.5076],[.9616,.6222,.5016],[.9605,.6163,.4955],[.9594,.6103,.4894],[.9583,.6043,.4833],[.9567,.598,.4773],[.9549,.5916,.4713],[.9531,.5852,.4654],[.9513,.5788,.4594],[.9495,.5724,.4534],[.9477,.566,.4475],[.9459,.5596,.4415],[.9441,.5532,.4355],[.9417,.5464,.4297],[.9393,.5396,.4239],[.9368,.5327,.4181],[.9343,.5259,.4123],[.9318,.5191,.4065],[.9294,.5123,.4007],[.9269,.5054,.3949],[.9244,.4986,.3891],[.9214,.4914,.3834],[.9183,.4842,.3778],[.9152,.4769,.3722],[.912,.4697,.3666],[.9089,.4624,.361],[.9058,.4552,.3553],[.9027,.4479,.3497],[.8995,.4407,.3441],[.8959,.4331,.3387],[.8921,.4254,.3333],[.8884,.4177,.3279],[.8846,.41,.3225],[.8809,.4023,.3171],[.8771,.3946,.3117],[.8734,.387,.3063],[.8697,.3793,.3009],[.8654,.3711,.2958],[.8611,.3629,.2906],[.8567,.3547,.2855],[.8524,.3465,.2803],[.848,.3383,.2752],[.8437,.3301,.2701],[.8394,.3219,.2649],[.835,.3136,.2598],[.8302,.3047,.2549],[.8253,.2957,.25],[.8204,.2868,.2452],[.8155,.2778,.2403],[.8106,.2688,.2354],[.8057,.2598,.2306],[.8008,.2508,.2257],[.7959,.2418,.2208],[.7906,.2314,.2162],[.7852,.2209,.2117],[.7797,.2103,.2071],[.7743,.1998,.2025],[.7689,.1892,.198],[.7635,.1787,.1934],[.7581,.1681,.1888],[.7527,.1576,.1843],[.7468,.14,.18],[.741,.1222,.1757],[.7351,.1045,.1715],[.7292,.0867,.1672],[.7233,.0689,.163],[.7174,.0511,.1587],[.7116,.0333,.1545],[.7057,.0156,.1502]]};ce.copper={interpolate:!0,colors:[[0,0,0],[.0048,.0031,.002],[.0097,.0061,.0039],[.0145,.0092,.0059],[.0194,.0123,.0078],[.0242,.0153,.0098],[.0291,.0184,.0117],[.0339,.0214,.0137],[.0388,.0245,.0156],[.0436,.0276,.0176],[.0484,.0306,.0195],[.0533,.0337,.0215],[.0581,.0368,.0234],[.063,.0398,.0254],[.0678,.0429,.0273],[.0727,.046,.0293],[.0775,.049,.0312],[.0824,.0521,.0332],[.0872,.0551,.0351],[.092,.0582,.0371],[.0969,.0613,.039],[.1017,.0643,.041],[.1066,.0674,.0429],[.1114,.0705,.0449],[.1163,.0735,.0468],[.1211,.0766,.0488],[.126,.0797,.0507],[.1308,.0827,.0527],[.1356,.0858,.0546],[.1405,.0888,.0566],[.1453,.0919,.0585],[.1502,.095,.0605],[.155,.098,.0624],[.1599,.1011,.0644],[.1647,.1042,.0663],[.1696,.1072,.0683],[.1744,.1103,.0702],[.1792,.1134,.0722],[.1841,.1164,.0741],[.1889,.1195,.0761],[.1938,.1225,.078],[.1986,.1256,.08],[.2035,.1287,.0819],[.2083,.1317,.0839],[.2131,.1348,.0858],[.218,.1379,.0878],[.2228,.1409,.0897],[.2277,.144,.0917],[.2325,.147,.0936],[.2374,.1501,.0956],[.2422,.1532,.0975],[.2471,.1562,.0995],[.2519,.1593,.1015],[.2567,.1624,.1034],[.2616,.1654,.1054],[.2664,.1685,.1073],[.2713,.1716,.1093],[.2761,.1746,.1112],[.281,.1777,.1132],[.2858,.1807,.1151],[.2907,.1838,.1171],[.2955,.1869,.119],[.3003,.1899,.121],[.3052,.193,.1229],[.31,.1961,.1249],[.3149,.1991,.1268],[.3197,.2022,.1288],[.3246,.2053,.1307],[.3294,.2083,.1327],[.3343,.2114,.1346],[.3391,.2144,.1366],[.3439,.2175,.1385],[.3488,.2206,.1405],[.3536,.2236,.1424],[.3585,.2267,.1444],[.3633,.2298,.1463],[.3682,.2328,.1483],[.373,.2359,.1502],[.3779,.239,.1522],[.3827,.242,.1541],[.3875,.2451,.1561],[.3924,.2481,.158],[.3972,.2512,.16],[.4021,.2543,.1619],[.4069,.2573,.1639],[.4118,.2604,.1658],[.4166,.2635,.1678],[.4215,.2665,.1697],[.4263,.2696,.1717],[.4311,.2727,.1736],[.436,.2757,.1756],[.4408,.2788,.1775],[.4457,.2818,.1795],[.4505,.2849,.1814],[.4554,.288,.1834],[.4602,.291,.1853],[.4651,.2941,.1873],[.4699,.2972,.1892],[.4747,.3002,.1912],[.4796,.3033,.1931],[.4844,.3064,.1951],[.4893,.3094,.197],[.4941,.3125,.199],[.499,.3155,.201],[.5038,.3186,.2029],[.5087,.3217,.2049],[.5135,.3247,.2068],[.5183,.3278,.2088],[.5232,.3309,.2107],[.528,.3339,.2127],[.5329,.337,.2146],[.5377,.3401,.2166],[.5426,.3431,.2185],[.5474,.3462,.2205],[.5522,.3492,.2224],[.5571,.3523,.2244],[.5619,.3554,.2263],[.5668,.3584,.2283],[.5716,.3615,.2302],[.5765,.3646,.2322],[.5813,.3676,.2341],[.5862,.3707,.2361],[.591,.3738,.238],[.5958,.3768,.24],[.6007,.3799,.2419],[.6055,.3829,.2439],[.6104,.386,.2458],[.6152,.3891,.2478],[.6201,.3921,.2497],[.6249,.3952,.2517],[.6298,.3983,.2536],[.6346,.4013,.2556],[.6394,.4044,.2575],[.6443,.4074,.2595],[.6491,.4105,.2614],[.654,.4136,.2634],[.6588,.4166,.2653],[.6637,.4197,.2673],[.6685,.4228,.2692],[.6734,.4258,.2712],[.6782,.4289,.2731],[.683,.432,.2751],[.6879,.435,.277],[.6927,.4381,.279],[.6976,.4411,.2809],[.7024,.4442,.2829],[.7073,.4473,.2848],[.7121,.4503,.2868],[.717,.4534,.2887],[.7218,.4565,.2907],[.7266,.4595,.2926],[.7315,.4626,.2946],[.7363,.4657,.2965],[.7412,.4687,.2985],[.746,.4718,.3005],[.7509,.4748,.3024],[.7557,.4779,.3044],[.7606,.481,.3063],[.7654,.484,.3083],[.7702,.4871,.3102],[.7751,.4902,.3122],[.7799,.4932,.3141],[.7848,.4963,.3161],[.7896,.4994,.318],[.7945,.5024,.32],[.7993,.5055,.3219],[.8042,.5085,.3239],[.809,.5116,.3258],[.8138,.5147,.3278],[.8187,.5177,.3297],[.8235,.5208,.3317],[.8284,.5239,.3336],[.8332,.5269,.3356],[.8381,.53,.3375],[.8429,.5331,.3395],[.8478,.5361,.3414],[.8526,.5392,.3434],[.8574,.5422,.3453],[.8623,.5453,.3473],[.8671,.5484,.3492],[.872,.5514,.3512],[.8768,.5545,.3531],[.8817,.5576,.3551],[.8865,.5606,.357],[.8913,.5637,.359],[.8962,.5668,.3609],[.901,.5698,.3629],[.9059,.5729,.3648],[.9107,.5759,.3668],[.9156,.579,.3687],[.9204,.5821,.3707],[.9253,.5851,.3726],[.9301,.5882,.3746],[.9349,.5913,.3765],[.9398,.5943,.3785],[.9446,.5974,.3804],[.9495,.6005,.3824],[.9543,.6035,.3843],[.9592,.6066,.3863],[.964,.6096,.3882],[.9689,.6127,.3902],[.9737,.6158,.3921],[.9785,.6188,.3941],[.9834,.6219,.396],[.9882,.625,.398],[.9931,.628,.4],[.9979,.6311,.4019],[1,.6342,.4039],[1,.6372,.4058],[1,.6403,.4078],[1,.6433,.4097],[1,.6464,.4117],[1,.6495,.4136],[1,.6525,.4156],[1,.6556,.4175],[1,.6587,.4195],[1,.6617,.4214],[1,.6648,.4234],[1,.6678,.4253],[1,.6709,.4273],[1,.674,.4292],[1,.677,.4312],[1,.6801,.4331],[1,.6832,.4351],[1,.6862,.437],[1,.6893,.439],[1,.6924,.4409],[1,.6954,.4429],[1,.6985,.4448],[1,.7015,.4468],[1,.7046,.4487],[1,.7077,.4507],[1,.7107,.4526],[1,.7138,.4546],[1,.7169,.4565],[1,.7199,.4585],[1,.723,.4604],[1,.7261,.4624],[1,.7291,.4643],[1,.7322,.4663],[1,.7352,.4682],[1,.7383,.4702],[1,.7414,.4721],[1,.7444,.4741],[1,.7475,.476],[1,.7506,.478],[1,.7536,.4799],[1,.7567,.4819],[1,.7598,.4838],[1,.7628,.4858],[1,.7659,.4877],[1,.7689,.4897],[1,.772,.4916],[1,.7751,.4936],[1,.7781,.4955],[1,.7812,.4975]]};ce.cubehelix={interpolate:!0,colors:[[0,0,0],[.0067,.0021,.006],[.0133,.0043,.0122],[.0196,.0065,.0186],[.0257,.0088,.0252],[.0317,.0112,.0319],[.0374,.0136,.0389],[.0429,.0161,.046],[.0482,.0187,.0533],[.0533,.0214,.0607],[.0581,.0242,.0682],[.0627,.0271,.0758],[.067,.0301,.0835],[.0711,.0332,.0912],[.0749,.0365,.0991],[.0785,.0398,.1069],[.0819,.0433,.1148],[.085,.0469,.1227],[.0879,.0506,.1306],[.0905,.0545,.1385],[.0928,.0584,.1464],[.095,.0625,.1542],[.0969,.0668,.1619],[.0985,.0712,.1696],[.1,.0757,.1771],[.1012,.0803,.1846],[.1022,.0851,.192],[.103,.09,.1992],[.1036,.095,.2062],[.104,.1001,.2131],[.1043,.1054,.2199],[.1043,.1108,.2264],[.1042,.1163,.2328],[.1039,.122,.2389],[.1035,.1277,.2448],[.103,.1336,.2505],[.1023,.1395,.256],[.1015,.1456,.2612],[.1007,.1518,.2662],[.0997,.158,.2709],[.0987,.1644,.2754],[.0976,.1708,.2796],[.0964,.1773,.2835],[.0952,.1839,.2871],[.094,.1905,.2904],[.0928,.1972,.2935],[.0916,.2039,.2962],[.0904,.2107,.2987],[.0892,.2176,.3009],[.0881,.2244,.3027],[.0871,.2313,.3043],[.0861,.2382,.3056],[.0851,.2452,.3066],[.0843,.2521,.3073],[.0836,.259,.3077],[.083,.2659,.3079],[.0826,.2728,.3077],[.0823,.2797,.3073],[.0821,.2866,.3066],[.0822,.2934,.3057],[.0824,.3001,.3045],[.0828,.3069,.303],[.0834,.3135,.3014],[.0842,.3201,.2994],[.0852,.3266,.2973],[.0865,.3331,.295],[.088,.3394,.2924],[.0898,.3457,.2897],[.0918,.3518,.2868],[.0941,.3579,.2838],[.0966,.3638,.2806],[.0994,.3697,.2772],[.1025,.3754,.2737],[.1059,.381,.2702],[.1096,.3864,.2665],[.1136,.3918,.2627],[.1179,.3969,.2589],[.1225,.402,.255],[.1274,.4069,.2511],[.1325,.4116,.2471],[.138,.4162,.2431],[.1438,.4207,.2392],[.1499,.4249,.2352],[.1563,.4291,.2313],[.163,.433,.2275],[.17,.4368,.2237],[.1773,.4404,.22],[.1849,.4439,.2164],[.1928,.4472,.2129],[.201,.4503,.2096],[.2094,.4533,.2064],[.2181,.4561,.2033],[.2271,.4587,.2004],[.2363,.4611,.1977],[.2457,.4634,.1952],[.2555,.4656,.1929],[.2654,.4676,.1908],[.2755,.4694,.189],[.2859,.4711,.1874],[.2965,.4726,.1861],[.3072,.474,.185],[.3182,.4752,.1842],[.3293,.4763,.1837],[.3405,.4772,.1835],[.3519,.4781,.1836],[.3635,.4788,.1841],[.3751,.4794,.1848],[.3869,.4798,.1859],[.3987,.4802,.1873],[.4106,.4804,.1891],[.4226,.4806,.1912],[.4346,.4807,.1937],[.4467,.4807,.1965],[.4588,.4806,.1997],[.4709,.4804,.2033],[.4829,.4802,.2072],[.495,.4799,.2115],[.507,.4796,.2161],[.519,.4792,.2211],[.5309,.4788,.2265],[.5427,.4784,.2322],[.5544,.4779,.2383],[.5661,.4774,.2448],[.5776,.477,.2516],[.5889,.4765,.2587],[.6002,.476,.2662],[.6112,.4756,.2741],[.6221,.4752,.2822],[.6328,.4748,.2907],[.6434,.4745,.2995],[.6537,.4742,.3086],[.6638,.4739,.318],[.6736,.4738,.3277],[.6832,.4737,.3376],[.6926,.4736,.3478],[.7017,.4737,.3583],[.7106,.4738,.369],[.7192,.4741,.38],[.7274,.4744,.3912],[.7355,.4749,.4025],[.7432,.4755,.4141],[.7506,.4761,.4258],[.7577,.477,.4378],[.7645,.4779,.4498],[.7709,.479,.462],[.7771,.4802,.4743],[.7829,.4816,.4867],[.7884,.4831,.4992],[.7936,.4848,.5118],[.7985,.4866,.5244],[.803,.4886,.5371],[.8072,.4907,.5498],[.8111,.493,.5625],[.8146,.4955,.5753],[.8179,.4981,.5879],[.8208,.5009,.6006],[.8234,.5039,.6132],[.8256,.5071,.6257],[.8276,.5104,.6382],[.8293,.5139,.6506],[.8307,.5175,.6628],[.8318,.5213,.6749],[.8326,.5253,.6869],[.8331,.5295,.6988],[.8334,.5338,.7104],[.8334,.5383,.7219],[.8332,.543,.7332],[.8327,.5478,.7443],[.832,.5528,.7552],[.8311,.5579,.7659],[.83,.5632,.7763],[.8286,.5686,.7864],[.8271,.5742,.7964],[.8254,.5799,.806],[.8236,.5857,.8154],[.8216,.5917,.8245],[.8195,.5978,.8333],[.8172,.604,.8418],[.8149,.6103,.85],[.8124,.6167,.8579],[.8099,.6233,.8654],[.8073,.6299,.8727],[.8046,.6366,.8797],[.8019,.6434,.8863],[.7992,.6502,.8926],[.7964,.6571,.8986],[.7937,.6641,.9042],[.791,.6712,.9096],[.7883,.6783,.9146],[.7856,.6854,.9193],[.783,.6926,.9236],[.7804,.6997,.9277],[.778,.7069,.9314],[.7756,.7142,.9349],[.7733,.7214,.938],[.7711,.7286,.9409],[.7691,.7358,.9434],[.7672,.743,.9457],[.7655,.7501,.9477],[.7639,.7573,.9494],[.7625,.7644,.9509],[.7613,.7714,.9521],[.7602,.7784,.9531],[.7594,.7853,.9538],[.7587,.7922,.9544],[.7583,.799,.9547],[.7581,.8057,.9549],[.7581,.8124,.9548],[.7584,.8189,.9546],[.7588,.8254,.9543],[.7596,.8318,.9538],[.7606,.838,.9531],[.7618,.8442,.9524],[.7633,.8502,.9516],[.765,.8562,.9506],[.767,.862,.9496],[.7693,.8677,.9486],[.7718,.8733,.9475],[.7745,.8787,.9463],[.7776,.884,.9452],[.7808,.8892,.9441],[.7844,.8943,.9429],[.7882,.8992,.9419],[.7922,.904,.9408],[.7965,.9087,.9398],[.801,.9132,.9389],[.8057,.9176,.9381],[.8107,.9218,.9374],[.8158,.926,.9368],[.8212,.93,.9363],[.8268,.9338,.936],[.8326,.9376,.9358],[.8386,.9412,.9358],[.8447,.9447,.9359],[.851,.9481,.9363],[.8575,.9513,.9368],[.8641,.9545,.9376],[.8708,.9575,.9386],[.8777,.9604,.9397],[.8847,.9633,.9412],[.8917,.966,.9429],[.8989,.9687,.9448],[.9061,.9712,.947],[.9134,.9737,.9494],[.9207,.9761,.9521],[.928,.9785,.9551],[.9354,.9808,.9583],[.9428,.983,.9619],[.9501,.9852,.9657],[.9574,.9874,.9697],[.9647,.9895,.9741],[.9719,.9917,.9787],[.9791,.9937,.9836],[.9862,.9958,.9888],[.9931,.9979,.9943],[1,1,1]]};ce.flag={interpolate:!0,colors:[[1,0,0],[1,.3784,.2098],[1,.7005,.4931],[1,.9185,.7774],[1,.9998,1],[.8029,.9325,1],[.5208,.7264,1],[.2355,.4124,1],[0,.037,1],[0,0,.8156],[0,0,.5346],[0,0,.2486],[0,0,0],[.1719,0,0],[.4515,0,0],[.7383,0,0],[.9897,0,0],[1,.309,.1595],[1,.6459,.4377],[1,.8868,.7252],[1,.9957,.9791],[.8528,.9566,1],[.5761,.7752,1],[.2881,.4785,1],[.0316,.1107,1],[0,0,.865],[0,0,.5899],[0,0,.3014],[0,0,.0425],[.123,0,0],[.3964,0,0],[.6852,0,0],[.9464,0,0],[1,.2379,.1111],[1,.5878,.3827],[1,.8502,.6717],[1,.9862,.9352],[.9007,.9755,1],[.631,.8197,1],[.3418,.5421,1],[.0761,.1837,1],[0,0,.9123],[0,0,.6446],[0,0,.3554],[0,0,.0877],[.0761,0,0],[.3418,0,0],[.631,0,0],[.9007,0,0],[1,.1656,.0648],[1,.5264,.3283],[1,.809,.6173],[1,.9713,.8889],[.9464,.9891,1],[.6852,.8598,1],[.3964,.6026,1],[.123,.2558,1],[0,0,.9575],[0,0,.6986],[0,0,.4101],[0,0,.135],[.0316,0,0],[.2881,0,0],[.5761,0,0],[.8528,0,0],[1,.0923,.0209],[1,.4622,.2748],[1,.7634,.5623],[1,.9511,.8405],[.9897,.9973,1],[.7383,.8952,1],[.4515,.6599,1],[.1719,.3265,1],[0,0,1],[0,0,.7514],[0,0,.4654],[0,0,.1844],[0,0,0],[.2355,0,0],[.5208,0,0],[.8029,0,0],[1,.0185,0],[1,.3955,.2226],[1,.7136,.5069],[1,.9256,.7902],[1,1,1],[.7902,.9256,1],[.5069,.7136,1],[.2226,.3955,1],[0,.0185,1],[0,0,.8029],[0,0,.5208],[0,0,.2355],[0,0,0],[.1844,0,0],[.4654,0,0],[.7514,0,0],[1,0,0],[1,.3265,.1719],[1,.6599,.4515],[1,.8952,.7383],[1,.9973,.9897],[.8405,.9511,1],[.5623,.7634,1],[.2748,.4622,1],[.0209,.0923,1],[0,0,.8528],[0,0,.5761],[0,0,.2881],[0,0,.0316],[.135,0,0],[.4101,0,0],[.6986,0,0],[.9575,0,0],[1,.2558,.123],[1,.6026,.3964],[1,.8598,.6852],[1,.9891,.9464],[.8889,.9713,1],[.6173,.809,1],[.3283,.5264,1],[.0648,.1656,1],[0,0,.9007],[0,0,.631],[0,0,.3418],[0,0,.0761],[.0877,0,0],[.3554,0,0],[.6446,0,0],[.9123,0,0],[1,.1837,.0761],[1,.5421,.3418],[1,.8197,.631],[1,.9755,.9007],[.9352,.9862,1],[.6717,.8502,1],[.3827,.5878,1],[.1111,.2379,1],[0,0,.9464],[0,0,.6852],[0,0,.3964],[0,0,.123],[.0425,0,0],[.3014,0,0],[.5899,0,0],[.865,0,0],[1,.1107,.0316],[1,.4785,.2881],[1,.7752,.5761],[1,.9566,.8528],[.9791,.9957,1],[.7252,.8868,1],[.4377,.6459,1],[.1595,.309,1],[0,0,.9897],[0,0,.7383],[0,0,.4515],[0,0,.1719],[0,0,0],[.2486,0,0],[.5346,0,0],[.8156,0,0],[1,.037,0],[1,.4124,.2355],[1,.7264,.5208],[1,.9325,.8029],[1,.9998,1],[.7774,.9185,1],[.4931,.7005,1],[.2098,.3784,1],[0,0,1],[0,0,.7902],[0,0,.5069],[0,0,.2226],[0,0,0],[.1971,0,0],[.4792,0,0],[.7645,0,0],[1,0,0],[1,.3439,.1844],[1,.6737,.4654],[1,.9032,.7514],[1,.9985,1],[.8281,.9452,1],[.5485,.7513,1],[.2617,.4457,1],[.0103,.0739,1],[0,0,.8405],[0,0,.5623],[0,0,.2748],[0,0,.0209],[.1472,0,0],[.4239,0,0],[.7119,0,0],[.9684,0,0],[1,.2737,.135],[1,.6173,.4101],[1,.8691,.6986],[1,.9916,.9575],[.877,.9667,1],[.6036,.798,1],[.3148,.5106,1],[.0536,.1473,1],[0,0,.8889],[0,0,.6173],[0,0,.3283],[0,0,.0648],[.0993,0,0],[.369,0,0],[.6582,0,0],[.9239,0,0],[1,.2019,.0877],[1,.5575,.3554],[1,.8302,.6446],[1,.9794,.9123],[.9239,.983,1],[.6582,.8403,1],[.369,.5727,1],[.0993,.2199,1],[0,0,.9352],[0,0,.6717],[0,0,.3827],[0,0,.1111],[.0536,0,0],[.3148,0,0],[.6036,0,0],[.877,0,0],[1,.129,.0425],[1,.4947,.3014],[1,.7867,.5899],[1,.9618,.865],[.9684,.9939,1],[.7119,.8781,1],[.4239,.6317,1],[.1472,.2914,1],[0,0,.9791],[0,0,.7252],[0,0,.4377],[0,0,.1595],[.0103,0,0],[.2617,0,0],[.5485,0,0],[.8281,0,0],[1,.0554,0],[1,.4291,.2486],[1,.739,.5346],[1,.939,.8156],[1,.9993,1],[.7645,.911,1],[.4792,.6872,1],[.1971,.3612,1],[0,0,1],[0,0,.7774],[0,0,.4931],[0,0,.2098],[0,0,0]]};ce.gist_earth={interpolate:!0,colors:[[0,0,0],[.0026,0,.1687],[.0052,0,.2217],[.0078,0,.2638],[.0105,0,.3059],[.0131,0,.3481],[.0157,0,.3902],[.0183,0,.4324],[.0209,.0089,.4547],[.0235,.0179,.4556],[.0261,.0269,.4563],[.0287,.036,.457],[.0314,.045,.4577],[.034,.054,.4584],[.0366,.063,.4592],[.0392,.072,.4599],[.0418,.0811,.4606],[.0444,.0901,.4613],[.047,.0991,.462],[.0497,.1081,.4627],[.0523,.1171,.4634],[.0549,.1262,.4641],[.0575,.1352,.4648],[.0601,.1442,.4656],[.0627,.1532,.4663],[.0653,.1622,.467],[.0679,.1713,.4677],[.0706,.1803,.4684],[.0732,.1893,.4691],[.0758,.1975,.4698],[.0784,.2056,.4705],[.081,.2138,.4712],[.0836,.2219,.472],[.0862,.2301,.4727],[.0889,.2383,.4734],[.0915,.2464,.4741],[.0941,.2546,.4748],[.0967,.2627,.4755],[.0993,.2709,.4762],[.1019,.279,.4769],[.1045,.2872,.4776],[.1072,.2954,.4784],[.1098,.3035,.4791],[.1124,.3108,.4798],[.115,.3182,.4805],[.1176,.3255,.4812],[.1202,.3328,.4819],[.1228,.3402,.4826],[.1254,.3475,.4833],[.1281,.3548,.484],[.1307,.3622,.4848],[.1333,.3695,.4855],[.1359,.3768,.4862],[.1385,.3842,.4869],[.1411,.3904,.4876],[.1437,.3966,.4883],[.1464,.4028,.489],[.149,.409,.4897],[.1516,.4152,.4904],[.1542,.4214,.4912],[.1568,.4276,.4919],[.1594,.4338,.4926],[.162,.4399,.4933],[.1646,.4461,.494],[.1673,.4523,.4947],[.1699,.4585,.4954],[.1725,.4647,.4961],[.1751,.4709,.4968],[.1777,.4771,.4975],[.1803,.4833,.4983],[.1829,.4895,.499],[.1856,.4957,.4997],[.1882,.5019,.5004],[.19,.5042,.4957],[.1919,.5065,.4909],[.1937,.5087,.4861],[.1956,.511,.4813],[.1974,.5133,.4765],[.1993,.5155,.4717],[.2011,.5178,.4669],[.203,.52,.4621],[.2048,.5223,.4573],[.2067,.5245,.4525],[.2085,.5268,.4477],[.2104,.5291,.4429],[.2122,.5313,.4381],[.2141,.5336,.4333],[.2159,.5358,.4285],[.2178,.5381,.4237],[.2196,.5404,.4189],[.2215,.5426,.4141],[.2233,.5449,.4093],[.2252,.5471,.4045],[.227,.5494,.3997],[.2289,.5516,.3948],[.2307,.5539,.39],[.2326,.5562,.3852],[.2344,.5584,.3804],[.2363,.5607,.3756],[.2381,.5629,.3708],[.24,.5652,.366],[.2418,.5674,.3612],[.2437,.5697,.3564],[.2455,.572,.3516],[.2474,.5742,.3468],[.2492,.5765,.342],[.2511,.5787,.3372],[.2529,.581,.3324],[.2548,.5832,.3276],[.2566,.5855,.3228],[.2585,.5878,.318],[.2603,.59,.3132],[.2622,.5923,.3084],[.264,.5945,.3036],[.2659,.5968,.2988],[.2677,.599,.294],[.2696,.6013,.2892],[.2715,.6036,.2844],[.2802,.6058,.2796],[.2889,.6081,.2748],[.2976,.6103,.2771],[.3063,.6126,.2794],[.315,.6148,.2816],[.3238,.6171,.2839],[.3325,.6194,.2862],[.3412,.6216,.2885],[.3499,.6239,.2908],[.3586,.6261,.2931],[.3673,.6284,.2954],[.3761,.6307,.2976],[.3848,.6329,.2999],[.3935,.6352,.3022],[.4022,.6374,.3045],[.4109,.6397,.3068],[.4196,.6414,.3091],[.4284,.6431,.3114],[.4371,.6448,.3136],[.4458,.6466,.3159],[.4545,.6483,.3182],[.4632,.65,.3205],[.4719,.6517,.3217],[.4784,.6535,.323],[.4849,.6552,.3242],[.4913,.6569,.3255],[.4978,.6586,.3267],[.5043,.6603,.3279],[.5107,.6621,.3292],[.5172,.6638,.3304],[.5237,.6655,.3317],[.5301,.6672,.3329],[.5366,.6689,.3341],[.5431,.6707,.3354],[.5495,.6724,.3366],[.556,.6741,.3379],[.5625,.6758,.3391],[.5689,.6775,.3403],[.5754,.6793,.3416],[.5819,.681,.3428],[.5883,.6827,.344],[.5948,.6844,.3453],[.6013,.6861,.3465],[.6077,.6879,.3478],[.6142,.6896,.349],[.6207,.6913,.3502],[.6271,.693,.3515],[.6336,.6947,.3527],[.6401,.6965,.354],[.6465,.6982,.3552],[.653,.6999,.3564],[.6595,.7016,.3577],[.6659,.7034,.3589],[.6724,.7051,.3602],[.6789,.7068,.3614],[.6853,.7085,.3626],[.6918,.7102,.3639],[.6983,.712,.3651],[.7047,.7137,.3664],[.7112,.7154,.3676],[.7176,.7171,.3688],[.7193,.7137,.3701],[.7209,.7103,.3713],[.7225,.7069,.3726],[.7242,.7035,.3738],[.7258,.7001,.375],[.7275,.6967,.3763],[.7291,.6934,.3775],[.7307,.69,.3788],[.7324,.6866,.38],[.734,.6832,.3812],[.7356,.6798,.3825],[.7373,.6764,.3837],[.7389,.673,.3849],[.7406,.6697,.3862],[.7422,.6663,.3874],[.7438,.6629,.3887],[.7455,.6595,.3899],[.7471,.6561,.3911],[.7488,.6527,.3924],[.7504,.6493,.3936],[.752,.6459,.3949],[.7537,.6426,.3961],[.7553,.6392,.4057],[.7597,.6413,.4153],[.7641,.643,.425],[.7685,.6447,.4346],[.7729,.6464,.4442],[.7773,.6481,.4538],[.7817,.6515,.4634],[.786,.6549,.473],[.7904,.6583,.4826],[.7948,.6617,.4922],[.7992,.6651,.5018],[.8036,.6685,.5114],[.808,.6719,.521],[.8124,.6753,.5306],[.8167,.6787,.5402],[.8211,.6821,.5499],[.8255,.6855,.5595],[.8299,.6889,.5691],[.8343,.6923,.5787],[.8387,.6957,.5883],[.8431,.6991,.5979],[.8475,.7047,.6075],[.8518,.7103,.6171],[.8562,.7159,.6267],[.8606,.7215,.6363],[.865,.7269,.6459],[.8694,.7323,.6555],[.8738,.7377,.6652],[.8782,.7431,.677],[.8825,.7507,.6888],[.8869,.7584,.7006],[.8913,.7661,.7124],[.8957,.7738,.7243],[.9001,.7814,.7361],[.9045,.7891,.7479],[.9089,.7968,.7597],[.9132,.8044,.7715],[.9176,.8121,.7834],[.922,.8198,.7952],[.9264,.8275,.807],[.9308,.8364,.8188],[.9352,.8454,.8306],[.9396,.8544,.8425],[.944,.8634,.8543],[.9483,.8725,.8661],[.9527,.8816,.8779],[.9571,.8931,.8897],[.9615,.9045,.9016],[.9659,.916,.9134],[.9703,.9274,.9252],[.9747,.9389,.937],[.979,.9503,.9488],[.9834,.9618,.9607],[.9878,.9732,.9725],[.9922,.9843,.9843]]};ce.gist_gray={interpolate:!0,colors:[[0,0,0],[.0039,.0039,.0039],[.0078,.0078,.0078],[.0118,.0118,.0118],[.0157,.0157,.0157],[.0196,.0196,.0196],[.0235,.0235,.0235],[.0275,.0275,.0275],[.0314,.0314,.0314],[.0353,.0353,.0353],[.0392,.0392,.0392],[.0431,.0431,.0431],[.0471,.0471,.0471],[.051,.051,.051],[.0549,.0549,.0549],[.0588,.0588,.0588],[.0627,.0627,.0627],[.0667,.0667,.0667],[.0706,.0706,.0706],[.0745,.0745,.0745],[.0784,.0784,.0784],[.0824,.0824,.0824],[.0863,.0863,.0863],[.0902,.0902,.0902],[.0941,.0941,.0941],[.098,.098,.098],[.102,.102,.102],[.1059,.1059,.1059],[.1098,.1098,.1098],[.1137,.1137,.1137],[.1176,.1176,.1176],[.1216,.1216,.1216],[.1255,.1255,.1255],[.1294,.1294,.1294],[.1333,.1333,.1333],[.1373,.1373,.1373],[.1412,.1412,.1412],[.1451,.1451,.1451],[.149,.149,.149],[.1529,.1529,.1529],[.1569,.1569,.1569],[.1608,.1608,.1608],[.1647,.1647,.1647],[.1686,.1686,.1686],[.1725,.1725,.1725],[.1765,.1765,.1765],[.1804,.1804,.1804],[.1843,.1843,.1843],[.1882,.1882,.1882],[.1922,.1922,.1922],[.1961,.1961,.1961],[.2,.2,.2],[.2039,.2039,.2039],[.2078,.2078,.2078],[.2118,.2118,.2118],[.2157,.2157,.2157],[.2196,.2196,.2196],[.2235,.2235,.2235],[.2275,.2275,.2275],[.2314,.2314,.2314],[.2353,.2353,.2353],[.2392,.2392,.2392],[.2431,.2431,.2431],[.2471,.2471,.2471],[.251,.251,.251],[.2549,.2549,.2549],[.2588,.2588,.2588],[.2627,.2627,.2627],[.2667,.2667,.2667],[.2706,.2706,.2706],[.2745,.2745,.2745],[.2784,.2784,.2784],[.2824,.2824,.2824],[.2863,.2863,.2863],[.2902,.2902,.2902],[.2941,.2941,.2941],[.298,.298,.298],[.302,.302,.302],[.3059,.3059,.3059],[.3098,.3098,.3098],[.3137,.3137,.3137],[.3176,.3176,.3176],[.3216,.3216,.3216],[.3255,.3255,.3255],[.3294,.3294,.3294],[.3333,.3333,.3333],[.3373,.3373,.3373],[.3412,.3412,.3412],[.3451,.3451,.3451],[.349,.349,.349],[.3529,.3529,.3529],[.3569,.3569,.3569],[.3608,.3608,.3608],[.3647,.3647,.3647],[.3686,.3686,.3686],[.3725,.3725,.3725],[.3765,.3765,.3765],[.3804,.3804,.3804],[.3843,.3843,.3843],[.3882,.3882,.3882],[.3922,.3922,.3922],[.3961,.3961,.3961],[.4,.4,.4],[.4039,.4039,.4039],[.4078,.4078,.4078],[.4118,.4118,.4118],[.4157,.4157,.4157],[.4196,.4196,.4196],[.4235,.4235,.4235],[.4275,.4275,.4275],[.4314,.4314,.4314],[.4353,.4353,.4353],[.4392,.4392,.4392],[.4431,.4431,.4431],[.4471,.4471,.4471],[.451,.451,.451],[.4549,.4549,.4549],[.4588,.4588,.4588],[.4627,.4627,.4627],[.4667,.4667,.4667],[.4706,.4706,.4706],[.4745,.4745,.4745],[.4784,.4784,.4784],[.4824,.4824,.4824],[.4863,.4863,.4863],[.4902,.4902,.4902],[.4941,.4941,.4941],[.498,.498,.498],[.502,.502,.502],[.5059,.5059,.5059],[.5098,.5098,.5098],[.5137,.5137,.5137],[.5176,.5176,.5176],[.5216,.5216,.5216],[.5255,.5255,.5255],[.5294,.5294,.5294],[.5333,.5333,.5333],[.5373,.5373,.5373],[.5412,.5412,.5412],[.5451,.5451,.5451],[.549,.549,.549],[.5529,.5529,.5529],[.5569,.5569,.5569],[.5608,.5608,.5608],[.5647,.5647,.5647],[.5686,.5686,.5686],[.5725,.5725,.5725],[.5765,.5765,.5765],[.5804,.5804,.5804],[.5843,.5843,.5843],[.5882,.5882,.5882],[.5922,.5922,.5922],[.5961,.5961,.5961],[.6,.6,.6],[.6039,.6039,.6039],[.6078,.6078,.6078],[.6118,.6118,.6118],[.6157,.6157,.6157],[.6196,.6196,.6196],[.6235,.6235,.6235],[.6275,.6275,.6275],[.6314,.6314,.6314],[.6353,.6353,.6353],[.6392,.6392,.6392],[.6431,.6431,.6431],[.6471,.6471,.6471],[.651,.651,.651],[.6549,.6549,.6549],[.6588,.6588,.6588],[.6627,.6627,.6627],[.6667,.6667,.6667],[.6706,.6706,.6706],[.6745,.6745,.6745],[.6784,.6784,.6784],[.6824,.6824,.6824],[.6863,.6863,.6863],[.6902,.6902,.6902],[.6941,.6941,.6941],[.698,.698,.698],[.702,.702,.702],[.7059,.7059,.7059],[.7098,.7098,.7098],[.7137,.7137,.7137],[.7176,.7176,.7176],[.7216,.7216,.7216],[.7255,.7255,.7255],[.7294,.7294,.7294],[.7333,.7333,.7333],[.7373,.7373,.7373],[.7412,.7412,.7412],[.7451,.7451,.7451],[.749,.749,.749],[.7529,.7529,.7529],[.7569,.7569,.7569],[.7608,.7608,.7608],[.7647,.7647,.7647],[.7686,.7686,.7686],[.7725,.7725,.7725],[.7765,.7765,.7765],[.7804,.7804,.7804],[.7843,.7843,.7843],[.7882,.7882,.7882],[.7922,.7922,.7922],[.7961,.7961,.7961],[.8,.8,.8],[.8039,.8039,.8039],[.8078,.8078,.8078],[.8118,.8118,.8118],[.8157,.8157,.8157],[.8196,.8196,.8196],[.8235,.8235,.8235],[.8275,.8275,.8275],[.8314,.8314,.8314],[.8353,.8353,.8353],[.8392,.8392,.8392],[.8431,.8431,.8431],[.8471,.8471,.8471],[.851,.851,.851],[.8549,.8549,.8549],[.8588,.8588,.8588],[.8627,.8627,.8627],[.8667,.8667,.8667],[.8706,.8706,.8706],[.8745,.8745,.8745],[.8784,.8784,.8784],[.8824,.8824,.8824],[.8863,.8863,.8863],[.8902,.8902,.8902],[.8941,.8941,.8941],[.898,.898,.898],[.902,.902,.902],[.9059,.9059,.9059],[.9098,.9098,.9098],[.9137,.9137,.9137],[.9176,.9176,.9176],[.9216,.9216,.9216],[.9255,.9255,.9255],[.9294,.9294,.9294],[.9333,.9333,.9333],[.9373,.9373,.9373],[.9412,.9412,.9412],[.9451,.9451,.9451],[.949,.949,.949],[.9529,.9529,.9529],[.9569,.9569,.9569],[.9608,.9608,.9608],[.9647,.9647,.9647],[.9686,.9686,.9686],[.9725,.9725,.9725],[.9765,.9765,.9765],[.9804,.9804,.9804],[.9843,.9843,.9843],[.9882,.9882,.9882],[.9922,.9922,.9922],[.9961,.9961,.9961],[1,1,1]]};ce.gist_heat={interpolate:!0,colors:[[0,0,0],[.0059,0,0],[.0118,0,0],[.0176,0,0],[.0235,0,0],[.0294,0,0],[.0353,0,0],[.0412,0,0],[.0471,0,0],[.0529,0,0],[.0588,0,0],[.0647,0,0],[.0706,0,0],[.0765,0,0],[.0824,0,0],[.0882,0,0],[.0941,0,0],[.1,0,0],[.1059,0,0],[.1118,0,0],[.1176,0,0],[.1235,0,0],[.1294,0,0],[.1353,0,0],[.1412,0,0],[.1471,0,0],[.1529,0,0],[.1588,0,0],[.1647,0,0],[.1706,0,0],[.1765,0,0],[.1824,0,0],[.1882,0,0],[.1941,0,0],[.2,0,0],[.2059,0,0],[.2118,0,0],[.2176,0,0],[.2235,0,0],[.2294,0,0],[.2353,0,0],[.2412,0,0],[.2471,0,0],[.2529,0,0],[.2588,0,0],[.2647,0,0],[.2706,0,0],[.2765,0,0],[.2824,0,0],[.2882,0,0],[.2941,0,0],[.3,0,0],[.3059,0,0],[.3118,0,0],[.3176,0,0],[.3235,0,0],[.3294,0,0],[.3353,0,0],[.3412,0,0],[.3471,0,0],[.3529,0,0],[.3588,0,0],[.3647,0,0],[.3706,0,0],[.3765,0,0],[.3824,0,0],[.3882,0,0],[.3941,0,0],[.4,0,0],[.4059,0,0],[.4118,0,0],[.4176,0,0],[.4235,0,0],[.4294,0,0],[.4353,0,0],[.4412,0,0],[.4471,0,0],[.4529,0,0],[.4588,0,0],[.4647,0,0],[.4706,0,0],[.4765,0,0],[.4824,0,0],[.4882,0,0],[.4941,0,0],[.5,0,0],[.5059,0,0],[.5118,0,0],[.5176,0,0],[.5235,0,0],[.5294,0,0],[.5353,0,0],[.5412,0,0],[.5471,0,0],[.5529,0,0],[.5588,0,0],[.5647,0,0],[.5706,0,0],[.5765,0,0],[.5824,0,0],[.5882,0,0],[.5941,0,0],[.6,0,0],[.6059,0,0],[.6118,0,0],[.6176,0,0],[.6235,0,0],[.6294,0,0],[.6353,0,0],[.6412,0,0],[.6471,0,0],[.6529,0,0],[.6588,0,0],[.6647,0,0],[.6706,0,0],[.6765,0,0],[.6824,0,0],[.6882,0,0],[.6941,0,0],[.7,0,0],[.7059,0,0],[.7118,0,0],[.7176,0,0],[.7235,0,0],[.7294,0,0],[.7353,0,0],[.7412,0,0],[.7471,0,0],[.7529,.0039,0],[.7588,.0118,0],[.7647,.0196,0],[.7706,.0275,0],[.7765,.0353,0],[.7824,.0431,0],[.7882,.051,0],[.7941,.0588,0],[.8,.0667,0],[.8059,.0745,0],[.8118,.0824,0],[.8176,.0902,0],[.8235,.098,0],[.8294,.1059,0],[.8353,.1137,0],[.8412,.1216,0],[.8471,.1294,0],[.8529,.1373,0],[.8588,.1451,0],[.8647,.1529,0],[.8706,.1608,0],[.8765,.1686,0],[.8824,.1765,0],[.8882,.1843,0],[.8941,.1922,0],[.9,.2,0],[.9059,.2078,0],[.9118,.2157,0],[.9176,.2235,0],[.9235,.2314,0],[.9294,.2392,0],[.9353,.2471,0],[.9412,.2549,0],[.9471,.2627,0],[.9529,.2706,0],[.9588,.2784,0],[.9647,.2863,0],[.9706,.2941,0],[.9765,.302,0],[.9824,.3098,0],[.9882,.3176,0],[.9941,.3255,0],[1,.3333,0],[1,.3412,0],[1,.349,0],[1,.3569,0],[1,.3647,0],[1,.3725,0],[1,.3804,0],[1,.3882,0],[1,.3961,0],[1,.4039,0],[1,.4118,0],[1,.4196,0],[1,.4275,0],[1,.4353,0],[1,.4431,0],[1,.451,0],[1,.4588,0],[1,.4667,0],[1,.4745,0],[1,.4824,0],[1,.4902,0],[1,.498,0],[1,.5059,.0118],[1,.5137,.0275],[1,.5216,.0431],[1,.5294,.0588],[1,.5373,.0745],[1,.5451,.0902],[1,.5529,.1059],[1,.5608,.1216],[1,.5686,.1373],[1,.5765,.1529],[1,.5843,.1686],[1,.5922,.1843],[1,.6,.2],[1,.6078,.2157],[1,.6157,.2314],[1,.6235,.2471],[1,.6314,.2627],[1,.6392,.2784],[1,.6471,.2941],[1,.6549,.3098],[1,.6627,.3255],[1,.6706,.3412],[1,.6784,.3569],[1,.6863,.3725],[1,.6941,.3882],[1,.702,.4039],[1,.7098,.4196],[1,.7176,.4353],[1,.7255,.451],[1,.7333,.4667],[1,.7412,.4824],[1,.749,.498],[1,.7569,.5137],[1,.7647,.5294],[1,.7725,.5451],[1,.7804,.5608],[1,.7882,.5765],[1,.7961,.5922],[1,.8039,.6078],[1,.8118,.6235],[1,.8196,.6392],[1,.8275,.6549],[1,.8353,.6706],[1,.8431,.6863],[1,.851,.702],[1,.8588,.7176],[1,.8667,.7333],[1,.8745,.749],[1,.8824,.7647],[1,.8902,.7804],[1,.898,.7961],[1,.9059,.8118],[1,.9137,.8275],[1,.9216,.8431],[1,.9294,.8588],[1,.9373,.8745],[1,.9451,.8902],[1,.9529,.9059],[1,.9608,.9216],[1,.9686,.9373],[1,.9765,.9529],[1,.9843,.9686],[1,.9922,.9843],[1,1,1]]};ce.gist_ncar={interpolate:!0,colors:[[0,0,.502],[0,.0286,.4651],[0,.0572,.4282],[0,.0859,.3913],[0,.1145,.3544],[0,.1431,.3175],[0,.1717,.2806],[0,.2003,.2437],[0,.229,.2069],[0,.2576,.17],[0,.2862,.1331],[0,.3148,.0962],[0,.3434,.0593],[0,.3721,.0224],[0,.3457,.0871],[0,.3192,.1523],[0,.2926,.2175],[0,.266,.2827],[0,.2394,.3479],[0,.2128,.4132],[0,.1862,.4784],[0,.1596,.5436],[0,.1331,.6088],[0,.1065,.674],[0,.0799,.7392],[0,.0533,.8044],[0,.0267,.8696],[0,1e-4,.9349],[0,.0551,1],[0,.1105,1],[0,.1659,1],[0,.2213,1],[0,.2766,1],[0,.332,1],[0,.3874,1],[0,.4428,1],[0,.4982,1],[0,.5535,1],[0,.6089,1],[0,.6643,1],[0,.7197,1],[0,.7536,1],[0,.7752,1],[0,.7925,1],[0,.8098,1],[0,.8271,1],[0,.8444,1],[0,.8617,1],[0,.8789,1],[0,.8962,1],[0,.9135,1],[0,.9308,1],[0,.9481,.9999],[0,.9654,.9741],[0,.9827,.9484],[0,.9999,.9227],[0,.9982,.897],[0,.9964,.8713],[0,.9947,.8456],[0,.9929,.8199],[0,.9911,.7942],[0,.9893,.7685],[0,.9875,.7428],[0,.9857,.717],[0,.984,.6913],[0,.9822,.6656],[0,.9804,.6399],[0,.9804,.614],[0,.9804,.5731],[0,.9804,.5322],[0,.982,.4913],[0,.9837,.4504],[0,.9853,.4095],[0,.9869,.3685],[0,.9886,.3276],[0,.9902,.2867],[0,.9918,.2458],[0,.9935,.2049],[0,.9951,.164],[0,.9967,.1231],[.025,.9984,.0822],[.05,.9998,.0412],[.0749,.9851,3e-4],[.0999,.9703,0],[.1249,.9556,0],[.1499,.9408,0],[.1748,.926,0],[.1998,.9113,0],[.2248,.8965,0],[.2498,.8818,0],[.2747,.867,0],[.2997,.8523,0],[.3247,.8375,0],[.3497,.8228,0],[.3746,.8082,0],[.3994,.821,0],[.4072,.8337,0],[.4149,.8465,0],[.4227,.8593,0],[.4305,.8721,0],[.4382,.8848,0],[.446,.8976,0],[.4538,.9104,0],[.4615,.9232,0],[.4693,.936,0],[.4771,.9487,0],[.4848,.9615,0],[.4926,.9743,.0156],[.5004,.9871,.0312],[.5183,.9998,.0468],[.5361,1,.0624],[.554,1,.078],[.5718,1,.0937],[.5897,1,.1093],[.6075,1,.1249],[.6254,1,.1405],[.6432,1,.1561],[.6611,1,.1718],[.6789,1,.1874],[.6968,1,.203],[.7146,1,.2186],[.7324,1,.2342],[.7503,1,.2185],[.7681,1,.2029],[.786,1,.1873],[.8038,1,.1717],[.8217,1,.1561],[.8395,1,.1404],[.8574,1,.1248],[.8752,1,.1092],[.8931,1,.0936],[.9109,1,.078],[.9288,1,.0623],[.9466,1,.0467],[.9645,.9904,.0311],[.9823,.9807,.0155],[1,.9711,0],[1,.9614,0],[1,.9517,0],[1,.942,0],[1,.9324,0],[1,.9227,0],[1,.913,0],[1,.9034,0],[1,.8937,0],[1,.884,0],[1,.8743,0],[1,.8647,0],[1,.855,0],[1,.8453,.0042],[1,.8357,.0084],[1,.826,.0127],[1,.8163,.0169],[1,.8066,.0211],[1,.797,.0253],[1,.7873,.0295],[1,.7776,.0338],[1,.768,.038],[1,.7583,.0422],[1,.7486,.0464],[1,.7389,.0506],[1,.7293,.0549],[1,.6973,.0513],[1,.6652,.0476],[1,.6331,.0439],[1,.601,.0403],[1,.5688,.0366],[1,.5367,.033],[1,.5046,.0293],[1,.4725,.0256],[1,.4404,.022],[1,.4083,.0183],[1,.3762,.0146],[1,.344,.011],[1,.3119,.0073],[1,.2798,.0037],[1,.2611,0],[1,.2424,0],[1,.2238,0],[1,.2051,0],[1,.1865,0],[1,.1678,0],[1,.1492,0],[1,.1305,0],[1,.1119,0],[1,.0932,0],[1,.0746,0],[1,.056,0],[1,.0373,0],[1,.0187,.0688],[1,0,.1383],[1,0,.2079],[1,0,.2774],[1,0,.347],[1,0,.4166],[1,0,.4861],[1,0,.5557],[1,0,.6252],[1,0,.6948],[1,0,.7644],[1,0,.8339],[1,0,.9035],[1,0,.973],[.9733,.0134,.9868],[.9463,.0269,1],[.9193,.0404,1],[.8922,.0539,1],[.8652,.0674,1],[.8382,.0809,1],[.8112,.0944,1],[.7842,.1079,1],[.7572,.1214,1],[.7301,.1349,1],[.7031,.1484,1],[.6761,.1619,1],[.6491,.1755,1],[.6221,.1987,.9952],[.6448,.2219,.9905],[.668,.2451,.9858],[.6913,.2683,.9811],[.7145,.2915,.9764],[.7378,.3147,.9717],[.761,.3379,.967],[.7843,.3611,.9623],[.8075,.3843,.9576],[.8308,.4075,.9529],[.854,.4307,.9482],[.8772,.4538,.9435],[.9005,.477,.9388],[.9235,.5002,.9341],[.9263,.5183,.9365],[.9291,.5365,.9389],[.9319,.5547,.9413],[.9347,.5728,.9437],[.9375,.591,.946],[.9403,.6092,.9484],[.9431,.6273,.9508],[.9459,.6455,.9532],[.9486,.6637,.9556],[.9514,.6818,.958],[.9542,.7,.9603],[.957,.7182,.9627],[.9598,.7363,.9651],[.9626,.7545,.9675],[.9654,.7727,.9699],[.9682,.7908,.9723],[.971,.809,.9746],[.9738,.8272,.977],[.9766,.8453,.9794],[.9794,.8635,.9818],[.9821,.8817,.9842],[.9849,.8998,.9866],[.9877,.918,.9889],[.9905,.9362,.9913],[.9933,.9543,.9937],[.9961,.9725,.9961]]};ce.gist_rainbow={interpolate:!0,colors:[[1,0,.16],[1,0,.1391],[1,0,.1182],[1,0,.0973],[1,0,.0763],[1,0,.0554],[1,0,.0345],[1,0,.0136],[1,.0074,0],[1,.0286,0],[1,.0498,0],[1,.071,0],[1,.0922,0],[1,.1134,0],[1,.1346,0],[1,.1558,0],[1,.177,0],[1,.1982,0],[1,.2194,0],[1,.2406,0],[1,.2618,0],[1,.283,0],[1,.3042,0],[1,.3254,0],[1,.3466,0],[1,.3678,0],[1,.389,0],[1,.4102,0],[1,.4314,0],[1,.4526,0],[1,.4738,0],[1,.495,0],[1,.5162,0],[1,.5374,0],[1,.5586,0],[1,.5798,0],[1,.601,0],[1,.6222,0],[1,.6433,0],[1,.6645,0],[1,.6857,0],[1,.7069,0],[1,.7281,0],[1,.7493,0],[1,.7705,0],[1,.7917,0],[1,.8129,0],[1,.8341,0],[1,.8553,0],[1,.8765,0],[1,.8977,0],[1,.9189,0],[1,.9401,0],[1,.9613,0],[1,.9825,0],[.9963,1,0],[.9751,1,0],[.9539,1,0],[.9327,1,0],[.9115,1,0],[.8903,1,0],[.8691,1,0],[.8479,1,0],[.8267,1,0],[.8055,1,0],[.7843,1,0],[.7631,1,0],[.7419,1,0],[.7207,1,0],[.6995,1,0],[.6783,1,0],[.6571,1,0],[.6359,1,0],[.6147,1,0],[.5935,1,0],[.5723,1,0],[.5511,1,0],[.5299,1,0],[.5087,1,0],[.4875,1,0],[.4663,1,0],[.4452,1,0],[.424,1,0],[.4028,1,0],[.3816,1,0],[.3604,1,0],[.3392,1,0],[.318,1,0],[.2968,1,0],[.2756,1,0],[.2544,1,0],[.2332,1,0],[.212,1,0],[.1908,1,0],[.1696,1,0],[.1484,1,0],[.1272,1,0],[.106,1,0],[.0848,1,0],[.0636,1,0],[.0424,1,0],[.0212,1,0],[0,1,0],[0,1,.0211],[0,1,.0422],[0,1,.0633],[0,1,.0843],[0,1,.1054],[0,1,.1265],[0,1,.1476],[0,1,.1687],[0,1,.1898],[0,1,.2108],[0,1,.2319],[0,1,.253],[0,1,.2741],[0,1,.2952],[0,1,.3163],[0,1,.3373],[0,1,.3584],[0,1,.3795],[0,1,.4006],[0,1,.4217],[0,1,.4428],[0,1,.4638],[0,1,.4849],[0,1,.506],[0,1,.5271],[0,1,.5482],[0,1,.5693],[0,1,.5903],[0,1,.6114],[0,1,.6325],[0,1,.6536],[0,1,.6747],[0,1,.6958],[0,1,.7168],[0,1,.7379],[0,1,.759],[0,1,.7801],[0,1,.8012],[0,1,.8223],[0,1,.8433],[0,1,.8644],[0,1,.8855],[0,1,.9066],[0,1,.9277],[0,1,.9488],[0,1,.9699],[0,1,.9909],[0,.9879,1],[0,.9665,1],[0,.9452,1],[0,.9239,1],[0,.9026,1],[0,.8813,1],[0,.86,1],[0,.8387,1],[0,.8173,1],[0,.796,1],[0,.7747,1],[0,.7534,1],[0,.7321,1],[0,.7108,1],[0,.6895,1],[0,.6682,1],[0,.6468,1],[0,.6255,1],[0,.6042,1],[0,.5829,1],[0,.5616,1],[0,.5403,1],[0,.519,1],[0,.4977,1],[0,.4763,1],[0,.455,1],[0,.4337,1],[0,.4124,1],[0,.3911,1],[0,.3698,1],[0,.3485,1],[0,.3272,1],[0,.3058,1],[0,.2845,1],[0,.2632,1],[0,.2419,1],[0,.2206,1],[0,.1993,1],[0,.178,1],[0,.1566,1],[0,.1353,1],[0,.114,1],[0,.0927,1],[0,.0714,1],[0,.0501,1],[0,.0288,1],[0,.0075,1],[.0139,0,1],[.0352,0,1],[.0565,0,1],[.0778,0,1],[.0991,0,1],[.1204,0,1],[.1417,0,1],[.163,0,1],[.1844,0,1],[.2057,0,1],[.227,0,1],[.2483,0,1],[.2696,0,1],[.2909,0,1],[.3122,0,1],[.3335,0,1],[.3549,0,1],[.3762,0,1],[.3975,0,1],[.4188,0,1],[.4401,0,1],[.4614,0,1],[.4827,0,1],[.504,0,1],[.5254,0,1],[.5467,0,1],[.568,0,1],[.5893,0,1],[.6106,0,1],[.6319,0,1],[.6532,0,1],[.6746,0,1],[.6959,0,1],[.7172,0,1],[.7385,0,1],[.7598,0,1],[.7811,0,1],[.8024,0,1],[.8237,0,1],[.8451,0,1],[.8664,0,1],[.8877,0,1],[.909,0,1],[.9303,0,1],[.9516,0,1],[.9729,0,1],[.9942,0,1],[1,0,.9844],[1,0,.9631],[1,0,.9418],[1,0,.9205],[1,0,.8992],[1,0,.8779],[1,0,.8566],[1,0,.8353],[1,0,.8139],[1,0,.7926],[1,0,.7713],[1,0,.75]]};ce.gist_stern={interpolate:!0,colors:[[0,0,0],[.0717,.0039,.0078],[.1434,.0078,.0157],[.2151,.0118,.0235],[.2868,.0157,.0314],[.3585,.0196,.0392],[.4302,.0235,.0471],[.5018,.0275,.0549],[.5735,.0314,.0627],[.6452,.0353,.0706],[.7169,.0392,.0784],[.7886,.0431,.0863],[.8603,.0471,.0941],[.932,.051,.102],[.999,.0549,.1098],[.9795,.0588,.1176],[.9599,.0627,.1255],[.9404,.0667,.1333],[.9208,.0706,.1412],[.9013,.0745,.149],[.8818,.0784,.1569],[.8622,.0824,.1647],[.8427,.0863,.1725],[.8232,.0902,.1804],[.8036,.0941,.1882],[.7841,.098,.1961],[.7645,.102,.2039],[.745,.1059,.2118],[.7255,.1098,.2196],[.7059,.1137,.2275],[.6864,.1176,.2353],[.6669,.1216,.2431],[.6473,.1255,.251],[.6278,.1294,.2588],[.6082,.1333,.2667],[.5887,.1373,.2745],[.5692,.1412,.2824],[.5496,.1451,.2902],[.5301,.149,.298],[.5106,.1529,.3059],[.491,.1569,.3137],[.4715,.1608,.3216],[.4519,.1647,.3294],[.4324,.1686,.3373],[.4129,.1725,.3451],[.3933,.1765,.3529],[.3738,.1804,.3608],[.3543,.1843,.3686],[.3347,.1882,.3765],[.3152,.1922,.3843],[.2956,.1961,.3922],[.2761,.2,.4],[.2566,.2039,.4078],[.237,.2078,.4157],[.2175,.2118,.4235],[.198,.2157,.4314],[.1784,.2196,.4392],[.1589,.2235,.4471],[.1393,.2275,.4549],[.1198,.2314,.4627],[.1003,.2353,.4706],[.0807,.2392,.4784],[.0612,.2431,.4863],[.0417,.2471,.4941],[.251,.251,.502],[.2549,.2549,.5098],[.2588,.2588,.5176],[.2627,.2627,.5255],[.2667,.2667,.5333],[.2706,.2706,.5412],[.2745,.2745,.549],[.2784,.2784,.5569],[.2824,.2824,.5647],[.2863,.2863,.5725],[.2902,.2902,.5804],[.2941,.2941,.5882],[.298,.298,.5961],[.302,.302,.6039],[.3059,.3059,.6118],[.3098,.3098,.6196],[.3137,.3137,.6275],[.3176,.3176,.6353],[.3216,.3216,.6431],[.3255,.3255,.651],[.3294,.3294,.6588],[.3333,.3333,.6667],[.3373,.3373,.6745],[.3412,.3412,.6824],[.3451,.3451,.6902],[.349,.349,.698],[.3529,.3529,.7059],[.3569,.3569,.7137],[.3608,.3608,.7216],[.3647,.3647,.7294],[.3686,.3686,.7373],[.3725,.3725,.7451],[.3765,.3765,.7529],[.3804,.3804,.7608],[.3843,.3843,.7686],[.3882,.3882,.7765],[.3922,.3922,.7843],[.3961,.3961,.7922],[.4,.4,.8],[.4039,.4039,.8078],[.4078,.4078,.8157],[.4118,.4118,.8235],[.4157,.4157,.8314],[.4196,.4196,.8392],[.4235,.4235,.8471],[.4275,.4275,.8549],[.4314,.4314,.8627],[.4353,.4353,.8706],[.4392,.4392,.8784],[.4431,.4431,.8863],[.4471,.4471,.8941],[.451,.451,.902],[.4549,.4549,.9098],[.4588,.4588,.9176],[.4627,.4627,.9255],[.4667,.4667,.9333],[.4706,.4706,.9412],[.4745,.4745,.949],[.4784,.4784,.9569],[.4824,.4824,.9647],[.4863,.4863,.9725],[.4902,.4902,.9804],[.4941,.4941,.9882],[.498,.498,.9961],[.502,.502,.9917],[.5059,.5059,.975],[.5098,.5098,.9583],[.5137,.5137,.9416],[.5176,.5176,.9249],[.5216,.5216,.9082],[.5255,.5255,.8915],[.5294,.5294,.8748],[.5333,.5333,.8582],[.5373,.5373,.8415],[.5412,.5412,.8248],[.5451,.5451,.8081],[.549,.549,.7914],[.5529,.5529,.7747],[.5569,.5569,.758],[.5608,.5608,.7413],[.5647,.5647,.7247],[.5686,.5686,.708],[.5725,.5725,.6913],[.5765,.5765,.6746],[.5804,.5804,.6579],[.5843,.5843,.6412],[.5882,.5882,.6245],[.5922,.5922,.6078],[.5961,.5961,.5912],[.6,.6,.5745],[.6039,.6039,.5578],[.6078,.6078,.5411],[.6118,.6118,.5244],[.6157,.6157,.5077],[.6196,.6196,.491],[.6235,.6235,.4743],[.6275,.6275,.4577],[.6314,.6314,.441],[.6353,.6353,.4243],[.6392,.6392,.4076],[.6431,.6431,.3909],[.6471,.6471,.3742],[.651,.651,.3575],[.6549,.6549,.3408],[.6588,.6588,.3242],[.6627,.6627,.3075],[.6667,.6667,.2908],[.6706,.6706,.2741],[.6745,.6745,.2574],[.6784,.6784,.2407],[.6824,.6824,.224],[.6863,.6863,.2073],[.6902,.6902,.1907],[.6941,.6941,.174],[.698,.698,.1573],[.702,.702,.1406],[.7059,.7059,.1239],[.7098,.7098,.1072],[.7137,.7137,.0905],[.7176,.7176,.0738],[.7216,.7216,.0572],[.7255,.7255,.0405],[.7294,.7294,.0238],[.7333,.7333,.0071],[.7373,.7373,.0085],[.7412,.7412,.0233],[.7451,.7451,.0381],[.749,.749,.0529],[.7529,.7529,.0677],[.7569,.7569,.0825],[.7608,.7608,.0973],[.7647,.7647,.1121],[.7686,.7686,.1269],[.7725,.7725,.1417],[.7765,.7765,.1565],[.7804,.7804,.1713],[.7843,.7843,.1861],[.7882,.7882,.2009],[.7922,.7922,.2157],[.7961,.7961,.2305],[.8,.8,.2453],[.8039,.8039,.2601],[.8078,.8078,.2749],[.8118,.8118,.2897],[.8157,.8157,.3045],[.8196,.8196,.3193],[.8235,.8235,.3341],[.8275,.8275,.3489],[.8314,.8314,.3637],[.8353,.8353,.3785],[.8392,.8392,.3933],[.8431,.8431,.4081],[.8471,.8471,.4229],[.851,.851,.4377],[.8549,.8549,.4525],[.8588,.8588,.4673],[.8627,.8627,.4821],[.8667,.8667,.4969],[.8706,.8706,.5117],[.8745,.8745,.5265],[.8784,.8784,.5413],[.8824,.8824,.556],[.8863,.8863,.5708],[.8902,.8902,.5856],[.8941,.8941,.6004],[.898,.898,.6152],[.902,.902,.63],[.9059,.9059,.6448],[.9098,.9098,.6596],[.9137,.9137,.6744],[.9176,.9176,.6892],[.9216,.9216,.704],[.9255,.9255,.7188],[.9294,.9294,.7336],[.9333,.9333,.7484],[.9373,.9373,.7632],[.9412,.9412,.778],[.9451,.9451,.7928],[.949,.949,.8076],[.9529,.9529,.8224],[.9569,.9569,.8372],[.9608,.9608,.852],[.9647,.9647,.8668],[.9686,.9686,.8816],[.9725,.9725,.8964],[.9765,.9765,.9112],[.9804,.9804,.926],[.9843,.9843,.9408],[.9882,.9882,.9556],[.9922,.9922,.9704],[.9961,.9961,.9852],[1,1,1]]};ce.gist_yarg={interpolate:!0,colors:[[1,1,1],[.9961,.9961,.9961],[.9922,.9922,.9922],[.9882,.9882,.9882],[.9843,.9843,.9843],[.9804,.9804,.9804],[.9765,.9765,.9765],[.9725,.9725,.9725],[.9686,.9686,.9686],[.9647,.9647,.9647],[.9608,.9608,.9608],[.9569,.9569,.9569],[.9529,.9529,.9529],[.949,.949,.949],[.9451,.9451,.9451],[.9412,.9412,.9412],[.9373,.9373,.9373],[.9333,.9333,.9333],[.9294,.9294,.9294],[.9255,.9255,.9255],[.9216,.9216,.9216],[.9176,.9176,.9176],[.9137,.9137,.9137],[.9098,.9098,.9098],[.9059,.9059,.9059],[.902,.902,.902],[.898,.898,.898],[.8941,.8941,.8941],[.8902,.8902,.8902],[.8863,.8863,.8863],[.8824,.8824,.8824],[.8784,.8784,.8784],[.8745,.8745,.8745],[.8706,.8706,.8706],[.8667,.8667,.8667],[.8627,.8627,.8627],[.8588,.8588,.8588],[.8549,.8549,.8549],[.851,.851,.851],[.8471,.8471,.8471],[.8431,.8431,.8431],[.8392,.8392,.8392],[.8353,.8353,.8353],[.8314,.8314,.8314],[.8275,.8275,.8275],[.8235,.8235,.8235],[.8196,.8196,.8196],[.8157,.8157,.8157],[.8118,.8118,.8118],[.8078,.8078,.8078],[.8039,.8039,.8039],[.8,.8,.8],[.7961,.7961,.7961],[.7922,.7922,.7922],[.7882,.7882,.7882],[.7843,.7843,.7843],[.7804,.7804,.7804],[.7765,.7765,.7765],[.7725,.7725,.7725],[.7686,.7686,.7686],[.7647,.7647,.7647],[.7608,.7608,.7608],[.7569,.7569,.7569],[.7529,.7529,.7529],[.749,.749,.749],[.7451,.7451,.7451],[.7412,.7412,.7412],[.7373,.7373,.7373],[.7333,.7333,.7333],[.7294,.7294,.7294],[.7255,.7255,.7255],[.7216,.7216,.7216],[.7176,.7176,.7176],[.7137,.7137,.7137],[.7098,.7098,.7098],[.7059,.7059,.7059],[.702,.702,.702],[.698,.698,.698],[.6941,.6941,.6941],[.6902,.6902,.6902],[.6863,.6863,.6863],[.6824,.6824,.6824],[.6784,.6784,.6784],[.6745,.6745,.6745],[.6706,.6706,.6706],[.6667,.6667,.6667],[.6627,.6627,.6627],[.6588,.6588,.6588],[.6549,.6549,.6549],[.651,.651,.651],[.6471,.6471,.6471],[.6431,.6431,.6431],[.6392,.6392,.6392],[.6353,.6353,.6353],[.6314,.6314,.6314],[.6275,.6275,.6275],[.6235,.6235,.6235],[.6196,.6196,.6196],[.6157,.6157,.6157],[.6118,.6118,.6118],[.6078,.6078,.6078],[.6039,.6039,.6039],[.6,.6,.6],[.5961,.5961,.5961],[.5922,.5922,.5922],[.5882,.5882,.5882],[.5843,.5843,.5843],[.5804,.5804,.5804],[.5765,.5765,.5765],[.5725,.5725,.5725],[.5686,.5686,.5686],[.5647,.5647,.5647],[.5608,.5608,.5608],[.5569,.5569,.5569],[.5529,.5529,.5529],[.549,.549,.549],[.5451,.5451,.5451],[.5412,.5412,.5412],[.5373,.5373,.5373],[.5333,.5333,.5333],[.5294,.5294,.5294],[.5255,.5255,.5255],[.5216,.5216,.5216],[.5176,.5176,.5176],[.5137,.5137,.5137],[.5098,.5098,.5098],[.5059,.5059,.5059],[.502,.502,.502],[.498,.498,.498],[.4941,.4941,.4941],[.4902,.4902,.4902],[.4863,.4863,.4863],[.4824,.4824,.4824],[.4784,.4784,.4784],[.4745,.4745,.4745],[.4706,.4706,.4706],[.4667,.4667,.4667],[.4627,.4627,.4627],[.4588,.4588,.4588],[.4549,.4549,.4549],[.451,.451,.451],[.4471,.4471,.4471],[.4431,.4431,.4431],[.4392,.4392,.4392],[.4353,.4353,.4353],[.4314,.4314,.4314],[.4275,.4275,.4275],[.4235,.4235,.4235],[.4196,.4196,.4196],[.4157,.4157,.4157],[.4118,.4118,.4118],[.4078,.4078,.4078],[.4039,.4039,.4039],[.4,.4,.4],[.3961,.3961,.3961],[.3922,.3922,.3922],[.3882,.3882,.3882],[.3843,.3843,.3843],[.3804,.3804,.3804],[.3765,.3765,.3765],[.3725,.3725,.3725],[.3686,.3686,.3686],[.3647,.3647,.3647],[.3608,.3608,.3608],[.3569,.3569,.3569],[.3529,.3529,.3529],[.349,.349,.349],[.3451,.3451,.3451],[.3412,.3412,.3412],[.3373,.3373,.3373],[.3333,.3333,.3333],[.3294,.3294,.3294],[.3255,.3255,.3255],[.3216,.3216,.3216],[.3176,.3176,.3176],[.3137,.3137,.3137],[.3098,.3098,.3098],[.3059,.3059,.3059],[.302,.302,.302],[.298,.298,.298],[.2941,.2941,.2941],[.2902,.2902,.2902],[.2863,.2863,.2863],[.2824,.2824,.2824],[.2784,.2784,.2784],[.2745,.2745,.2745],[.2706,.2706,.2706],[.2667,.2667,.2667],[.2627,.2627,.2627],[.2588,.2588,.2588],[.2549,.2549,.2549],[.251,.251,.251],[.2471,.2471,.2471],[.2431,.2431,.2431],[.2392,.2392,.2392],[.2353,.2353,.2353],[.2314,.2314,.2314],[.2275,.2275,.2275],[.2235,.2235,.2235],[.2196,.2196,.2196],[.2157,.2157,.2157],[.2118,.2118,.2118],[.2078,.2078,.2078],[.2039,.2039,.2039],[.2,.2,.2],[.1961,.1961,.1961],[.1922,.1922,.1922],[.1882,.1882,.1882],[.1843,.1843,.1843],[.1804,.1804,.1804],[.1765,.1765,.1765],[.1725,.1725,.1725],[.1686,.1686,.1686],[.1647,.1647,.1647],[.1608,.1608,.1608],[.1569,.1569,.1569],[.1529,.1529,.1529],[.149,.149,.149],[.1451,.1451,.1451],[.1412,.1412,.1412],[.1373,.1373,.1373],[.1333,.1333,.1333],[.1294,.1294,.1294],[.1255,.1255,.1255],[.1216,.1216,.1216],[.1176,.1176,.1176],[.1137,.1137,.1137],[.1098,.1098,.1098],[.1059,.1059,.1059],[.102,.102,.102],[.098,.098,.098],[.0941,.0941,.0941],[.0902,.0902,.0902],[.0863,.0863,.0863],[.0824,.0824,.0824],[.0784,.0784,.0784],[.0745,.0745,.0745],[.0706,.0706,.0706],[.0667,.0667,.0667],[.0627,.0627,.0627],[.0588,.0588,.0588],[.0549,.0549,.0549],[.051,.051,.051],[.0471,.0471,.0471],[.0431,.0431,.0431],[.0392,.0392,.0392],[.0353,.0353,.0353],[.0314,.0314,.0314],[.0275,.0275,.0275],[.0235,.0235,.0235],[.0196,.0196,.0196],[.0157,.0157,.0157],[.0118,.0118,.0118],[.0078,.0078,.0078],[.0039,.0039,.0039],[0,0,0]]};ce.gnuplot={interpolate:!0,colors:[[0,0,0],[.0626,0,.0246],[.0886,0,.0493],[.1085,0,.0739],[.1252,0,.0984],[.14,0,.1229],[.1534,0,.1473],[.1657,0,.1716],[.1771,0,.1958],[.1879,0,.2199],[.198,1e-4,.2439],[.2077,1e-4,.2677],[.2169,1e-4,.2914],[.2258,1e-4,.3149],[.2343,2e-4,.3382],[.2425,2e-4,.3612],[.2505,2e-4,.3841],[.2582,3e-4,.4067],[.2657,4e-4,.4291],[.273,4e-4,.4512],[.2801,5e-4,.4731],[.287,6e-4,.4947],[.2937,6e-4,.5159],[.3003,7e-4,.5369],[.3068,8e-4,.5575],[.3131,9e-4,.5778],[.3193,.0011,.5977],[.3254,.0012,.6173],[.3314,.0013,.6365],[.3372,.0015,.6553],[.343,.0016,.6737],[.3487,.0018,.6917],[.3542,.002,.7093],[.3597,.0022,.7264],[.3651,.0024,.7431],[.3705,.0026,.7594],[.3757,.0028,.7752],[.3809,.0031,.7905],[.386,.0033,.8054],[.3911,.0036,.8197],[.3961,.0039,.8336],[.401,.0042,.847],[.4058,.0045,.8598],[.4106,.0048,.8721],[.4154,.0051,.8839],[.4201,.0055,.8952],[.4247,.0059,.9059],[.4293,.0063,.916],[.4339,.0067,.9256],[.4384,.0071,.9347],[.4428,.0075,.9432],[.4472,.008,.9511],[.4516,.0085,.9584],[.4559,.009,.9651],[.4602,.0095,.9713],[.4644,.01,.9768],[.4686,.0106,.9818],[.4728,.0112,.9862],[.4769,.0118,.99],[.481,.0124,.9932],[.4851,.013,.9957],[.4891,.0137,.9977],[.4931,.0144,.9991],[.4971,.0151,.9998],[.501,.0158,1],[.5049,.0166,.9995],[.5087,.0173,.9985],[.5126,.0181,.9968],[.5164,.019,.9945],[.5202,.0198,.9916],[.5239,.0207,.9882],[.5277,.0216,.9841],[.5314,.0225,.9794],[.535,.0235,.9741],[.5387,.0244,.9683],[.5423,.0254,.9618],[.5459,.0265,.9548],[.5495,.0275,.9472],[.5531,.0286,.939],[.5566,.0297,.9302],[.5601,.0309,.9209],[.5636,.0321,.911],[.5671,.0333,.9006],[.5705,.0345,.8896],[.5739,.0357,.8781],[.5774,.037,.866],[.5807,.0384,.8534],[.5841,.0397,.8403],[.5875,.0411,.8267],[.5908,.0425,.8126],[.5941,.044,.798],[.5974,.0454,.7829],[.6007,.047,.7674],[.6039,.0485,.7513],[.6071,.0501,.7348],[.6104,.0517,.7179],[.6136,.0534,.7005],[.6168,.055,.6827],[.6199,.0568,.6645],[.6231,.0585,.6459],[.6262,.0603,.6269],[.6293,.0621,.6075],[.6325,.064,.5878],[.6355,.0659,.5677],[.6386,.0678,.5472],[.6417,.0698,.5264],[.6447,.0718,.5053],[.6478,.0739,.4839],[.6508,.076,.4622],[.6538,.0781,.4402],[.6568,.0803,.418],[.6598,.0825,.3955],[.6627,.0847,.3727],[.6657,.087,.3497],[.6686,.0893,.3265],[.6716,.0917,.3032],[.6745,.0941,.2796],[.6774,.0966,.2558],[.6803,.0991,.2319],[.6831,.1016,.2079],[.686,.1042,.1837],[.6888,.1068,.1595],[.6917,.1095,.1351],[.6945,.1122,.1107],[.6973,.115,.0861],[.7001,.1178,.0616],[.7029,.1206,.037],[.7057,.1235,.0123],[.7085,.1265,0],[.7113,.1295,0],[.714,.1325,0],[.7167,.1356,0],[.7195,.1387,0],[.7222,.1419,0],[.7249,.1451,0],[.7276,.1484,0],[.7303,.1517,0],[.733,.1551,0],[.7356,.1585,0],[.7383,.162,0],[.741,.1655,0],[.7436,.1691,0],[.7462,.1727,0],[.7489,.1764,0],[.7515,.1801,0],[.7541,.1839,0],[.7567,.1877,0],[.7593,.1916,0],[.7618,.1955,0],[.7644,.1995,0],[.767,.2035,0],[.7695,.2076,0],[.7721,.2118,0],[.7746,.216,0],[.7771,.2203,0],[.7796,.2246,0],[.7822,.229,0],[.7847,.2334,0],[.7872,.2379,0],[.7896,.2424,0],[.7921,.247,0],[.7946,.2517,0],[.7971,.2564,0],[.7995,.2612,0],[.802,.266,0],[.8044,.2709,0],[.8068,.2759,0],[.8093,.2809,0],[.8117,.286,0],[.8141,.2911,0],[.8165,.2963,0],[.8189,.3016,0],[.8213,.3069,0],[.8237,.3123,0],[.826,.3177,0],[.8284,.3232,0],[.8308,.3288,0],[.8331,.3344,0],[.8355,.3401,0],[.8378,.3459,0],[.8402,.3517,0],[.8425,.3576,0],[.8448,.3636,0],[.8471,.3696,0],[.8495,.3757,0],[.8518,.3819,0],[.8541,.3881,0],[.8563,.3944,0],[.8586,.4007,0],[.8609,.4072,0],[.8632,.4137,0],[.8655,.4202,0],[.8677,.4269,0],[.87,.4336,0],[.8722,.4403,0],[.8745,.4472,0],[.8767,.4541,0],[.8789,.4611,0],[.8812,.4681,0],[.8834,.4753,0],[.8856,.4825,0],[.8878,.4897,0],[.89,.4971,0],[.8922,.5045,0],[.8944,.512,0],[.8966,.5196,0],[.8988,.5272,0],[.901,.5349,0],[.9032,.5427,0],[.9053,.5506,0],[.9075,.5585,0],[.9096,.5665,0],[.9118,.5746,0],[.9139,.5828,0],[.9161,.591,0],[.9182,.5994,0],[.9204,.6078,0],[.9225,.6163,0],[.9246,.6248,0],[.9267,.6334,0],[.9288,.6422,0],[.9309,.651,0],[.9331,.6598,0],[.9352,.6688,0],[.9372,.6778,0],[.9393,.687,0],[.9414,.6962,0],[.9435,.7054,0],[.9456,.7148,0],[.9476,.7242,0],[.9497,.7338,0],[.9518,.7434,0],[.9538,.7531,0],[.9559,.7629,0],[.9579,.7727,0],[.96,.7827,0],[.962,.7927,0],[.9641,.8028,0],[.9661,.813,0],[.9681,.8233,0],[.9701,.8337,0],[.9722,.8442,0],[.9742,.8547,0],[.9762,.8654,0],[.9782,.8761,0],[.9802,.8869,0],[.9822,.8978,0],[.9842,.9088,0],[.9862,.9199,0],[.9882,.9311,0],[.9901,.9423,0],[.9921,.9537,0],[.9941,.9651,0],[.9961,.9767,0],[.998,.9883,0],[1,1,0]]};ce.gnuplot2={interpolate:!0,colors:[[0,0,0],[0,0,.0157],[0,0,.0314],[0,0,.0471],[0,0,.0627],[0,0,.0784],[0,0,.0941],[0,0,.1098],[0,0,.1255],[0,0,.1412],[0,0,.1569],[0,0,.1725],[0,0,.1882],[0,0,.2039],[0,0,.2196],[0,0,.2353],[0,0,.251],[0,0,.2667],[0,0,.2824],[0,0,.298],[0,0,.3137],[0,0,.3294],[0,0,.3451],[0,0,.3608],[0,0,.3765],[0,0,.3922],[0,0,.4078],[0,0,.4235],[0,0,.4392],[0,0,.4549],[0,0,.4706],[0,0,.4863],[0,0,.502],[0,0,.5176],[0,0,.5333],[0,0,.549],[0,0,.5647],[0,0,.5804],[0,0,.5961],[0,0,.6118],[0,0,.6275],[0,0,.6431],[0,0,.6588],[0,0,.6745],[0,0,.6902],[0,0,.7059],[0,0,.7216],[0,0,.7373],[0,0,.7529],[0,0,.7686],[0,0,.7843],[0,0,.8],[0,0,.8157],[0,0,.8314],[0,0,.8471],[0,0,.8627],[0,0,.8784],[0,0,.8941],[0,0,.9098],[0,0,.9255],[0,0,.9412],[0,0,.9569],[0,0,.9725],[0,0,.9882],[.0031,0,1],[.0153,0,1],[.0276,0,1],[.0398,0,1],[.0521,0,1],[.0643,0,1],[.0766,0,1],[.0888,0,1],[.1011,0,1],[.1134,0,1],[.1256,0,1],[.1379,0,1],[.1501,0,1],[.1624,0,1],[.1746,0,1],[.1869,0,1],[.1991,0,1],[.2114,0,1],[.2237,0,1],[.2359,0,1],[.2482,0,1],[.2604,0,1],[.2727,0,1],[.2849,0,1],[.2972,0,1],[.3094,0,1],[.3217,0,1],[.3339,0,1],[.3462,0,1],[.3585,0,1],[.3707,0,1],[.383,0,1],[.3952,0,1],[.4075,0,1],[.4197,0,1],[.432,0,1],[.4442,0,1],[.4565,0,1],[.4688,0,1],[.481,0,1],[.4933,0,1],[.5055,0,1],[.5178,0,1],[.53,0,1],[.5423,.0071,.9929],[.5545,.0149,.9851],[.5668,.0227,.9773],[.579,.0306,.9694],[.5913,.0384,.9616],[.6036,.0463,.9537],[.6158,.0541,.9459],[.6281,.062,.938],[.6403,.0698,.9302],[.6526,.0776,.9224],[.6648,.0855,.9145],[.6771,.0933,.9067],[.6893,.1012,.8988],[.7016,.109,.891],[.7138,.1169,.8831],[.7261,.1247,.8753],[.7384,.1325,.8675],[.7506,.1404,.8596],[.7629,.1482,.8518],[.7751,.1561,.8439],[.7874,.1639,.8361],[.7996,.1718,.8282],[.8119,.1796,.8204],[.8241,.1875,.8125],[.8364,.1953,.8047],[.8487,.2031,.7969],[.8609,.211,.789],[.8732,.2188,.7812],[.8854,.2267,.7733],[.8977,.2345,.7655],[.9099,.2424,.7576],[.9222,.2502,.7498],[.9344,.258,.742],[.9467,.2659,.7341],[.9589,.2737,.7263],[.9712,.2816,.7184],[.9835,.2894,.7106],[.9957,.2973,.7027],[1,.3051,.6949],[1,.3129,.6871],[1,.3208,.6792],[1,.3286,.6714],[1,.3365,.6635],[1,.3443,.6557],[1,.3522,.6478],[1,.36,.64],[1,.3678,.6322],[1,.3757,.6243],[1,.3835,.6165],[1,.3914,.6086],[1,.3992,.6008],[1,.4071,.5929],[1,.4149,.5851],[1,.4227,.5773],[1,.4306,.5694],[1,.4384,.5616],[1,.4463,.5537],[1,.4541,.5459],[1,.462,.538],[1,.4698,.5302],[1,.4776,.5224],[1,.4855,.5145],[1,.4933,.5067],[1,.5012,.4988],[1,.509,.491],[1,.5169,.4831],[1,.5247,.4753],[1,.5325,.4675],[1,.5404,.4596],[1,.5482,.4518],[1,.5561,.4439],[1,.5639,.4361],[1,.5718,.4282],[1,.5796,.4204],[1,.5875,.4125],[1,.5953,.4047],[1,.6031,.3969],[1,.611,.389],[1,.6188,.3812],[1,.6267,.3733],[1,.6345,.3655],[1,.6424,.3576],[1,.6502,.3498],[1,.658,.342],[1,.6659,.3341],[1,.6737,.3263],[1,.6816,.3184],[1,.6894,.3106],[1,.6973,.3027],[1,.7051,.2949],[1,.7129,.2871],[1,.7208,.2792],[1,.7286,.2714],[1,.7365,.2635],[1,.7443,.2557],[1,.7522,.2478],[1,.76,.24],[1,.7678,.2322],[1,.7757,.2243],[1,.7835,.2165],[1,.7914,.2086],[1,.7992,.2008],[1,.8071,.1929],[1,.8149,.1851],[1,.8227,.1773],[1,.8306,.1694],[1,.8384,.1616],[1,.8463,.1537],[1,.8541,.1459],[1,.862,.138],[1,.8698,.1302],[1,.8776,.1224],[1,.8855,.1145],[1,.8933,.1067],[1,.9012,.0988],[1,.909,.091],[1,.9169,.0831],[1,.9247,.0753],[1,.9325,.0675],[1,.9404,.0596],[1,.9482,.0518],[1,.9561,.0439],[1,.9639,.0361],[1,.9718,.0282],[1,.9796,.0204],[1,.9875,.0125],[1,.9953,.0047],[1,1,.0196],[1,1,.0686],[1,1,.1176],[1,1,.1667],[1,1,.2157],[1,1,.2647],[1,1,.3137],[1,1,.3627],[1,1,.4118],[1,1,.4608],[1,1,.5098],[1,1,.5588],[1,1,.6078],[1,1,.6569],[1,1,.7059],[1,1,.7549],[1,1,.8039],[1,1,.8529],[1,1,.902],[1,1,.951],[1,1,1]]};ce.gray={interpolate:!0,colors:[[0,0,0],[.0039,.0039,.0039],[.0078,.0078,.0078],[.0118,.0118,.0118],[.0157,.0157,.0157],[.0196,.0196,.0196],[.0235,.0235,.0235],[.0275,.0275,.0275],[.0314,.0314,.0314],[.0353,.0353,.0353],[.0392,.0392,.0392],[.0431,.0431,.0431],[.0471,.0471,.0471],[.051,.051,.051],[.0549,.0549,.0549],[.0588,.0588,.0588],[.0627,.0627,.0627],[.0667,.0667,.0667],[.0706,.0706,.0706],[.0745,.0745,.0745],[.0784,.0784,.0784],[.0824,.0824,.0824],[.0863,.0863,.0863],[.0902,.0902,.0902],[.0941,.0941,.0941],[.098,.098,.098],[.102,.102,.102],[.1059,.1059,.1059],[.1098,.1098,.1098],[.1137,.1137,.1137],[.1176,.1176,.1176],[.1216,.1216,.1216],[.1255,.1255,.1255],[.1294,.1294,.1294],[.1333,.1333,.1333],[.1373,.1373,.1373],[.1412,.1412,.1412],[.1451,.1451,.1451],[.149,.149,.149],[.1529,.1529,.1529],[.1569,.1569,.1569],[.1608,.1608,.1608],[.1647,.1647,.1647],[.1686,.1686,.1686],[.1725,.1725,.1725],[.1765,.1765,.1765],[.1804,.1804,.1804],[.1843,.1843,.1843],[.1882,.1882,.1882],[.1922,.1922,.1922],[.1961,.1961,.1961],[.2,.2,.2],[.2039,.2039,.2039],[.2078,.2078,.2078],[.2118,.2118,.2118],[.2157,.2157,.2157],[.2196,.2196,.2196],[.2235,.2235,.2235],[.2275,.2275,.2275],[.2314,.2314,.2314],[.2353,.2353,.2353],[.2392,.2392,.2392],[.2431,.2431,.2431],[.2471,.2471,.2471],[.251,.251,.251],[.2549,.2549,.2549],[.2588,.2588,.2588],[.2627,.2627,.2627],[.2667,.2667,.2667],[.2706,.2706,.2706],[.2745,.2745,.2745],[.2784,.2784,.2784],[.2824,.2824,.2824],[.2863,.2863,.2863],[.2902,.2902,.2902],[.2941,.2941,.2941],[.298,.298,.298],[.302,.302,.302],[.3059,.3059,.3059],[.3098,.3098,.3098],[.3137,.3137,.3137],[.3176,.3176,.3176],[.3216,.3216,.3216],[.3255,.3255,.3255],[.3294,.3294,.3294],[.3333,.3333,.3333],[.3373,.3373,.3373],[.3412,.3412,.3412],[.3451,.3451,.3451],[.349,.349,.349],[.3529,.3529,.3529],[.3569,.3569,.3569],[.3608,.3608,.3608],[.3647,.3647,.3647],[.3686,.3686,.3686],[.3725,.3725,.3725],[.3765,.3765,.3765],[.3804,.3804,.3804],[.3843,.3843,.3843],[.3882,.3882,.3882],[.3922,.3922,.3922],[.3961,.3961,.3961],[.4,.4,.4],[.4039,.4039,.4039],[.4078,.4078,.4078],[.4118,.4118,.4118],[.4157,.4157,.4157],[.4196,.4196,.4196],[.4235,.4235,.4235],[.4275,.4275,.4275],[.4314,.4314,.4314],[.4353,.4353,.4353],[.4392,.4392,.4392],[.4431,.4431,.4431],[.4471,.4471,.4471],[.451,.451,.451],[.4549,.4549,.4549],[.4588,.4588,.4588],[.4627,.4627,.4627],[.4667,.4667,.4667],[.4706,.4706,.4706],[.4745,.4745,.4745],[.4784,.4784,.4784],[.4824,.4824,.4824],[.4863,.4863,.4863],[.4902,.4902,.4902],[.4941,.4941,.4941],[.498,.498,.498],[.502,.502,.502],[.5059,.5059,.5059],[.5098,.5098,.5098],[.5137,.5137,.5137],[.5176,.5176,.5176],[.5216,.5216,.5216],[.5255,.5255,.5255],[.5294,.5294,.5294],[.5333,.5333,.5333],[.5373,.5373,.5373],[.5412,.5412,.5412],[.5451,.5451,.5451],[.549,.549,.549],[.5529,.5529,.5529],[.5569,.5569,.5569],[.5608,.5608,.5608],[.5647,.5647,.5647],[.5686,.5686,.5686],[.5725,.5725,.5725],[.5765,.5765,.5765],[.5804,.5804,.5804],[.5843,.5843,.5843],[.5882,.5882,.5882],[.5922,.5922,.5922],[.5961,.5961,.5961],[.6,.6,.6],[.6039,.6039,.6039],[.6078,.6078,.6078],[.6118,.6118,.6118],[.6157,.6157,.6157],[.6196,.6196,.6196],[.6235,.6235,.6235],[.6275,.6275,.6275],[.6314,.6314,.6314],[.6353,.6353,.6353],[.6392,.6392,.6392],[.6431,.6431,.6431],[.6471,.6471,.6471],[.651,.651,.651],[.6549,.6549,.6549],[.6588,.6588,.6588],[.6627,.6627,.6627],[.6667,.6667,.6667],[.6706,.6706,.6706],[.6745,.6745,.6745],[.6784,.6784,.6784],[.6824,.6824,.6824],[.6863,.6863,.6863],[.6902,.6902,.6902],[.6941,.6941,.6941],[.698,.698,.698],[.702,.702,.702],[.7059,.7059,.7059],[.7098,.7098,.7098],[.7137,.7137,.7137],[.7176,.7176,.7176],[.7216,.7216,.7216],[.7255,.7255,.7255],[.7294,.7294,.7294],[.7333,.7333,.7333],[.7373,.7373,.7373],[.7412,.7412,.7412],[.7451,.7451,.7451],[.749,.749,.749],[.7529,.7529,.7529],[.7569,.7569,.7569],[.7608,.7608,.7608],[.7647,.7647,.7647],[.7686,.7686,.7686],[.7725,.7725,.7725],[.7765,.7765,.7765],[.7804,.7804,.7804],[.7843,.7843,.7843],[.7882,.7882,.7882],[.7922,.7922,.7922],[.7961,.7961,.7961],[.8,.8,.8],[.8039,.8039,.8039],[.8078,.8078,.8078],[.8118,.8118,.8118],[.8157,.8157,.8157],[.8196,.8196,.8196],[.8235,.8235,.8235],[.8275,.8275,.8275],[.8314,.8314,.8314],[.8353,.8353,.8353],[.8392,.8392,.8392],[.8431,.8431,.8431],[.8471,.8471,.8471],[.851,.851,.851],[.8549,.8549,.8549],[.8588,.8588,.8588],[.8627,.8627,.8627],[.8667,.8667,.8667],[.8706,.8706,.8706],[.8745,.8745,.8745],[.8784,.8784,.8784],[.8824,.8824,.8824],[.8863,.8863,.8863],[.8902,.8902,.8902],[.8941,.8941,.8941],[.898,.898,.898],[.902,.902,.902],[.9059,.9059,.9059],[.9098,.9098,.9098],[.9137,.9137,.9137],[.9176,.9176,.9176],[.9216,.9216,.9216],[.9255,.9255,.9255],[.9294,.9294,.9294],[.9333,.9333,.9333],[.9373,.9373,.9373],[.9412,.9412,.9412],[.9451,.9451,.9451],[.949,.949,.949],[.9529,.9529,.9529],[.9569,.9569,.9569],[.9608,.9608,.9608],[.9647,.9647,.9647],[.9686,.9686,.9686],[.9725,.9725,.9725],[.9765,.9765,.9765],[.9804,.9804,.9804],[.9843,.9843,.9843],[.9882,.9882,.9882],[.9922,.9922,.9922],[.9961,.9961,.9961],[1,1,1]]};ce.hot={interpolate:!0,colors:[[.0416,0,0],[.0519,0,0],[.0622,0,0],[.0725,0,0],[.0828,0,0],[.0931,0,0],[.1034,0,0],[.1137,0,0],[.124,0,0],[.1343,0,0],[.1445,0,0],[.1548,0,0],[.1651,0,0],[.1754,0,0],[.1857,0,0],[.196,0,0],[.2063,0,0],[.2166,0,0],[.2269,0,0],[.2372,0,0],[.2475,0,0],[.2578,0,0],[.2681,0,0],[.2784,0,0],[.2887,0,0],[.299,0,0],[.3093,0,0],[.3196,0,0],[.3299,0,0],[.3402,0,0],[.3504,0,0],[.3607,0,0],[.371,0,0],[.3813,0,0],[.3916,0,0],[.4019,0,0],[.4122,0,0],[.4225,0,0],[.4328,0,0],[.4431,0,0],[.4534,0,0],[.4637,0,0],[.474,0,0],[.4843,0,0],[.4946,0,0],[.5049,0,0],[.5152,0,0],[.5255,0,0],[.5358,0,0],[.546,0,0],[.5563,0,0],[.5666,0,0],[.5769,0,0],[.5872,0,0],[.5975,0,0],[.6078,0,0],[.6181,0,0],[.6284,0,0],[.6387,0,0],[.649,0,0],[.6593,0,0],[.6696,0,0],[.6799,0,0],[.6902,0,0],[.7005,0,0],[.7108,0,0],[.7211,0,0],[.7314,0,0],[.7416,0,0],[.7519,0,0],[.7622,0,0],[.7725,0,0],[.7828,0,0],[.7931,0,0],[.8034,0,0],[.8137,0,0],[.824,0,0],[.8343,0,0],[.8446,0,0],[.8549,0,0],[.8652,0,0],[.8755,0,0],[.8858,0,0],[.8961,0,0],[.9064,0,0],[.9167,0,0],[.927,0,0],[.9373,0,0],[.9475,0,0],[.9578,0,0],[.9681,0,0],[.9784,0,0],[.9887,0,0],[.999,0,0],[1,.0093,0],[1,.0196,0],[1,.0299,0],[1,.0402,0],[1,.0505,0],[1,.0608,0],[1,.0711,0],[1,.0814,0],[1,.0917,0],[1,.102,0],[1,.1123,0],[1,.1225,0],[1,.1328,0],[1,.1431,0],[1,.1534,0],[1,.1637,0],[1,.174,0],[1,.1843,0],[1,.1946,0],[1,.2049,0],[1,.2152,0],[1,.2255,0],[1,.2358,0],[1,.2461,0],[1,.2564,0],[1,.2667,0],[1,.277,0],[1,.2873,0],[1,.2975,0],[1,.3078,0],[1,.3181,0],[1,.3284,0],[1,.3387,0],[1,.349,0],[1,.3593,0],[1,.3696,0],[1,.3799,0],[1,.3902,0],[1,.4005,0],[1,.4108,0],[1,.4211,0],[1,.4314,0],[1,.4417,0],[1,.452,0],[1,.4623,0],[1,.4725,0],[1,.4828,0],[1,.4931,0],[1,.5034,0],[1,.5137,0],[1,.524,0],[1,.5343,0],[1,.5446,0],[1,.5549,0],[1,.5652,0],[1,.5755,0],[1,.5858,0],[1,.5961,0],[1,.6064,0],[1,.6167,0],[1,.627,0],[1,.6373,0],[1,.6475,0],[1,.6578,0],[1,.6681,0],[1,.6784,0],[1,.6887,0],[1,.699,0],[1,.7093,0],[1,.7196,0],[1,.7299,0],[1,.7402,0],[1,.7505,0],[1,.7608,0],[1,.7711,0],[1,.7814,0],[1,.7917,0],[1,.802,0],[1,.8123,0],[1,.8225,0],[1,.8328,0],[1,.8431,0],[1,.8534,0],[1,.8637,0],[1,.874,0],[1,.8843,0],[1,.8946,0],[1,.9049,0],[1,.9152,0],[1,.9255,0],[1,.9358,0],[1,.9461,0],[1,.9564,0],[1,.9667,0],[1,.977,0],[1,.9873,0],[1,.9975,0],[1,1,.0118],[1,1,.0272],[1,1,.0426],[1,1,.0581],[1,1,.0735],[1,1,.089],[1,1,.1044],[1,1,.1199],[1,1,.1353],[1,1,.1507],[1,1,.1662],[1,1,.1816],[1,1,.1971],[1,1,.2125],[1,1,.2279],[1,1,.2434],[1,1,.2588],[1,1,.2743],[1,1,.2897],[1,1,.3051],[1,1,.3206],[1,1,.336],[1,1,.3515],[1,1,.3669],[1,1,.3824],[1,1,.3978],[1,1,.4132],[1,1,.4287],[1,1,.4441],[1,1,.4596],[1,1,.475],[1,1,.4904],[1,1,.5059],[1,1,.5213],[1,1,.5368],[1,1,.5522],[1,1,.5676],[1,1,.5831],[1,1,.5985],[1,1,.614],[1,1,.6294],[1,1,.6449],[1,1,.6603],[1,1,.6757],[1,1,.6912],[1,1,.7066],[1,1,.7221],[1,1,.7375],[1,1,.7529],[1,1,.7684],[1,1,.7838],[1,1,.7993],[1,1,.8147],[1,1,.8301],[1,1,.8456],[1,1,.861],[1,1,.8765],[1,1,.8919],[1,1,.9074],[1,1,.9228],[1,1,.9382],[1,1,.9537],[1,1,.9691],[1,1,.9846],[1,1,1]]};ce.hsv={interpolate:!0,colors:[[1,0,0],[1,.0232,0],[1,.0463,0],[1,.0695,0],[1,.0926,0],[1,.1158,0],[1,.139,0],[1,.1621,0],[1,.1853,0],[1,.2085,0],[1,.2316,0],[1,.2548,0],[1,.2779,0],[1,.3011,0],[1,.3243,0],[1,.3474,0],[1,.3706,0],[1,.3938,0],[1,.4169,0],[1,.4401,0],[1,.4632,0],[1,.4864,0],[1,.5096,0],[1,.5327,0],[1,.5559,0],[1,.579,0],[1,.6022,0],[1,.6254,0],[1,.6485,0],[1,.6717,0],[1,.6949,0],[1,.718,0],[1,.7412,0],[1,.7643,0],[1,.7875,0],[1,.8107,0],[1,.8338,0],[1,.857,0],[1,.8801,0],[1,.9033,0],[1,.9265,0],[.996,.9456,0],[.9882,.961,0],[.9805,.9765,0],[.9728,.9919,0],[.9577,1,0],[.9346,1,0],[.9114,1,0],[.8882,1,0],[.8651,1,0],[.8419,1,0],[.8187,1,0],[.7956,1,0],[.7724,1,0],[.7493,1,0],[.7261,1,0],[.7029,1,0],[.6798,1,0],[.6566,1,0],[.6335,1,0],[.6103,1,0],[.5871,1,0],[.564,1,0],[.5408,1,0],[.5176,1,0],[.4945,1,0],[.4713,1,0],[.4482,1,0],[.425,1,0],[.4018,1,0],[.3787,1,0],[.3555,1,0],[.3324,1,0],[.3092,1,0],[.286,1,0],[.2629,1,0],[.2397,1,0],[.2165,1,0],[.1934,1,0],[.1702,1,0],[.1471,1,0],[.1239,1,0],[.1007,1,0],[.0776,1,0],[.0544,1,0],[.0312,1,0],[.0235,1,.0154],[.0158,1,.0309],[.0081,1,.0463],[4e-4,1,.0618],[0,1,.0846],[0,1,.1077],[0,1,.1309],[0,1,.154],[0,1,.1772],[0,1,.2004],[0,1,.2235],[0,1,.2467],[0,1,.2699],[0,1,.293],[0,1,.3162],[0,1,.3393],[0,1,.3625],[0,1,.3857],[0,1,.4088],[0,1,.432],[0,1,.4551],[0,1,.4783],[0,1,.5015],[0,1,.5246],[0,1,.5478],[0,1,.571],[0,1,.5941],[0,1,.6173],[0,1,.6404],[0,1,.6636],[0,1,.6868],[0,1,.7099],[0,1,.7331],[0,1,.7562],[0,1,.7794],[0,1,.8026],[0,1,.8257],[0,1,.8489],[0,1,.8721],[0,1,.8952],[0,1,.9184],[0,1,.9415],[0,1,.9647],[0,1,.9879],[0,.989,1],[0,.9658,1],[0,.9426,1],[0,.9195,1],[0,.8963,1],[0,.8732,1],[0,.85,1],[0,.8268,1],[0,.8037,1],[0,.7805,1],[0,.7574,1],[0,.7342,1],[0,.711,1],[0,.6879,1],[0,.6647,1],[0,.6415,1],[0,.6184,1],[0,.5952,1],[0,.5721,1],[0,.5489,1],[0,.5257,1],[0,.5026,1],[0,.4794,1],[0,.4563,1],[0,.4331,1],[0,.4099,1],[0,.3868,1],[0,.3636,1],[0,.3404,1],[0,.3173,1],[0,.2941,1],[0,.271,1],[0,.2478,1],[0,.2246,1],[0,.2015,1],[0,.1783,1],[0,.1551,1],[0,.132,1],[0,.1088,1],[0,.0857,1],[0,.0625,1],[.0077,.0471,1],[.0154,.0316,1],[.0232,.0162,1],[.0309,7e-4,1],[.0533,0,1],[.0765,0,1],[.0996,0,1],[.1228,0,1],[.146,0,1],[.1691,0,1],[.1923,0,1],[.2154,0,1],[.2386,0,1],[.2618,0,1],[.2849,0,1],[.3081,0,1],[.3312,0,1],[.3544,0,1],[.3776,0,1],[.4007,0,1],[.4239,0,1],[.4471,0,1],[.4702,0,1],[.4934,0,1],[.5165,0,1],[.5397,0,1],[.5629,0,1],[.586,0,1],[.6092,0,1],[.6324,0,1],[.6555,0,1],[.6787,0,1],[.7018,0,1],[.725,0,1],[.7482,0,1],[.7713,0,1],[.7945,0,1],[.8176,0,1],[.8408,0,1],[.864,0,1],[.8871,0,1],[.9103,0,1],[.9335,0,1],[.9566,0,1],[.9724,0,.9926],[.9801,0,.9772],[.9879,0,.9618],[.9956,0,.9463],[1,0,.9276],[1,0,.9044],[1,0,.8813],[1,0,.8581],[1,0,.8349],[1,0,.8118],[1,0,.7886],[1,0,.7654],[1,0,.7423],[1,0,.7191],[1,0,.696],[1,0,.6728],[1,0,.6496],[1,0,.6265],[1,0,.6033],[1,0,.5801],[1,0,.557],[1,0,.5338],[1,0,.5107],[1,0,.4875],[1,0,.4643],[1,0,.4412],[1,0,.418],[1,0,.3949],[1,0,.3717],[1,0,.3485],[1,0,.3254],[1,0,.3022],[1,0,.279],[1,0,.2559],[1,0,.2327],[1,0,.2096],[1,0,.1864],[1,0,.1632],[1,0,.1401],[1,0,.1169],[1,0,.0938]]};ce.inferno={interpolate:!0,colors:[[.0015,5e-4,.0139],[.0023,.0013,.0186],[.0033,.0022,.0242],[.0045,.0034,.0309],[.006,.0047,.0386],[.0077,.0061,.0468],[.0096,.0077,.0551],[.0117,.0094,.0635],[.014,.0112,.0719],[.0166,.0131,.0803],[.0194,.0151,.0888],[.0224,.0172,.0973],[.0258,.0193,.1059],[.0294,.0215,.1146],[.0334,.0237,.1234],[.0377,.0259,.1322],[.0423,.0281,.1411],[.0469,.0303,.1502],[.0516,.0325,.1593],[.0564,.0346,.1684],[.0613,.0366,.1776],[.0663,.0385,.187],[.0714,.0403,.1964],[.0766,.0419,.2058],[.082,.0433,.2153],[.0874,.0446,.2248],[.093,.0456,.2344],[.0987,.0464,.2439],[.1046,.047,.2534],[.1105,.0474,.2629],[.1167,.0476,.2723],[.1229,.0475,.2816],[.1293,.0473,.2908],[.1358,.0469,.2998],[.1424,.0462,.3086],[.1491,.0455,.3171],[.1558,.0446,.3253],[.1627,.0436,.3333],[.1696,.0425,.3409],[.1765,.0414,.3481],[.1834,.0403,.355],[.1904,.0393,.3614],[.1973,.0384,.3675],[.2042,.0376,.3732],[.2111,.037,.3786],[.2179,.0366,.3835],[.2248,.0364,.3881],[.2315,.0364,.3924],[.2383,.0366,.3964],[.245,.0371,.4],[.2516,.0377,.4034],[.2582,.0386,.4065],[.2648,.0396,.4093],[.2713,.0409,.412],[.2778,.0424,.4144],[.2843,.0439,.4166],[.2908,.0456,.4186],[.2972,.0475,.4205],[.3036,.0494,.4222],[.3099,.0514,.4237],[.3163,.0535,.4251],[.3226,.0556,.4264],[.3289,.0578,.4275],[.3352,.0601,.4285],[.3415,.0623,.4294],[.3478,.0646,.4302],[.354,.0669,.4309],[.3603,.0692,.4315],[.3665,.0716,.432],[.3728,.0739,.4324],[.379,.0763,.4327],[.3852,.0786,.433],[.3915,.0809,.4331],[.3977,.0833,.4332],[.4039,.0856,.4332],[.4101,.0879,.4331],[.4163,.0902,.4329],[.4225,.0925,.4327],[.4288,.0948,.4324],[.435,.0971,.432],[.4412,.0993,.4316],[.4474,.1016,.4311],[.4537,.1038,.4305],[.4599,.1061,.4298],[.4661,.1083,.4291],[.4723,.1105,.4283],[.4786,.1128,.4275],[.4848,.115,.4265],[.491,.1172,.4256],[.4973,.1194,.4245],[.5035,.1216,.4234],[.5097,.1238,.4222],[.516,.126,.4209],[.5222,.1281,.4195],[.5284,.1303,.4181],[.5347,.1325,.4167],[.5409,.1347,.4151],[.5472,.1369,.4135],[.5534,.1391,.4118],[.5596,.1413,.4101],[.5659,.1436,.4083],[.5721,.1458,.4064],[.5783,.148,.4044],[.5845,.1503,.4024],[.5907,.1526,.4003],[.5969,.1548,.3981],[.6031,.1572,.3959],[.6093,.1595,.3936],[.6155,.1618,.3912],[.6217,.1642,.3888],[.6278,.1666,.3863],[.634,.169,.3837],[.6401,.1714,.3811],[.6463,.1739,.3784],[.6524,.1764,.3756],[.6585,.179,.3727],[.6645,.1815,.3698],[.6706,.1842,.3669],[.6766,.1868,.3638],[.6827,.1895,.3608],[.6887,.1922,.3576],[.6946,.195,.3544],[.7006,.1979,.3511],[.7065,.2007,.3478],[.7124,.2037,.3444],[.7183,.2066,.3409],[.7241,.2097,.3374],[.7299,.2128,.3339],[.7357,.2159,.3302],[.7414,.2191,.3266],[.7471,.2224,.3229],[.7528,.2257,.3191],[.7584,.2291,.3153],[.764,.2326,.3114],[.7696,.2361,.3075],[.7751,.2397,.3035],[.7805,.2433,.2995],[.7859,.2471,.2955],[.7913,.2509,.2914],[.7966,.2547,.2873],[.8019,.2587,.2831],[.8071,.2627,.2789],[.8122,.2668,.2747],[.8173,.271,.2704],[.8224,.2752,.2661],[.8274,.2795,.2618],[.8323,.2839,.2574],[.8372,.2884,.253],[.842,.2929,.2486],[.8467,.2976,.2441],[.8514,.3023,.2396],[.856,.307,.2351],[.8605,.3119,.2306],[.865,.3168,.2261],[.8694,.3218,.2215],[.8737,.3269,.2169],[.878,.3321,.2123],[.8822,.3373,.2076],[.8863,.3426,.203],[.8903,.348,.1983],[.8943,.3534,.1936],[.8982,.3589,.1889],[.902,.3645,.1841],[.9057,.3701,.1794],[.9094,.3759,.1746],[.913,.3816,.1698],[.9165,.3875,.1649],[.9199,.3934,.1601],[.9232,.3994,.1552],[.9265,.4054,.1503],[.9296,.4115,.1454],[.9327,.4176,.1404],[.9357,.4238,.1354],[.9387,.4301,.1304],[.9415,.4364,.1254],[.9443,.4428,.1204],[.947,.4492,.1153],[.9496,.4557,.1102],[.9521,.4622,.105],[.9545,.4687,.0999],[.9569,.4754,.0947],[.9591,.482,.0895],[.9613,.4887,.0843],[.9634,.4955,.0791],[.9654,.5022,.0739],[.9673,.5091,.0687],[.9692,.5159,.0635],[.9709,.5229,.0584],[.9726,.5298,.0533],[.9742,.5368,.0484],[.9757,.5438,.0436],[.9771,.5508,.039],[.9784,.5579,.0349],[.9797,.5651,.0314],[.9808,.5722,.0285],[.9819,.5794,.0262],[.9829,.5866,.0247],[.9838,.5938,.0238],[.9846,.6011,.0236],[.9853,.6084,.0242],[.986,.6158,.0256],[.9865,.6231,.0278],[.987,.6305,.0309],[.9873,.6379,.0349],[.9876,.6453,.0399],[.9878,.6528,.0456],[.9879,.6602,.0518],[.9879,.6677,.0583],[.9879,.6753,.0653],[.9877,.6828,.0725],[.9875,.6904,.08],[.9871,.6979,.0877],[.9867,.7055,.0957],[.9862,.7132,.1039],[.9856,.7208,.1122],[.9849,.7284,.1208],[.9841,.7361,.1295],[.9832,.7438,.1385],[.9822,.7514,.1476],[.9812,.7591,.1569],[.98,.7668,.1664],[.9788,.7745,.176],[.9775,.7823,.1859],[.9761,.79,.196],[.9746,.7977,.2063],[.9731,.8054,.2169],[.9715,.8131,.2277],[.9698,.8208,.2387],[.968,.8285,.25],[.9662,.8362,.2615],[.9644,.8438,.2734],[.9625,.8515,.2855],[.9606,.8591,.298],[.9587,.8666,.3108],[.9568,.8741,.324],[.955,.8816,.3375],[.9532,.8889,.3514],[.9515,.8962,.3656],[.95,.9034,.3803],[.9487,.9105,.3953],[.9476,.9174,.4107],[.9468,.9242,.4264],[.9464,.9308,.4424],[.9464,.9372,.4586],[.9469,.9433,.475],[.9479,.9493,.4914],[.9495,.9551,.5079],[.9517,.9606,.5242],[.9545,.9659,.5404],[.9579,.971,.5563],[.9618,.9759,.5719],[.9662,.9807,.5872],[.9712,.9853,.6022],[.9765,.9898,.6168],[.9823,.9941,.631],[.9884,.9984,.6449]]};ce.jet={interpolate:!0,colors:[[0,0,.5],[0,0,.5178],[0,0,.5357],[0,0,.5535],[0,0,.5713],[0,0,.5891],[0,0,.607],[0,0,.6248],[0,0,.6426],[0,0,.6604],[0,0,.6783],[0,0,.6961],[0,0,.7139],[0,0,.7317],[0,0,.7496],[0,0,.7674],[0,0,.7852],[0,0,.803],[0,0,.8209],[0,0,.8387],[0,0,.8565],[0,0,.8743],[0,0,.8922],[0,0,.91],[0,0,.9278],[0,0,.9456],[0,0,.9635],[0,0,.9813],[0,0,.9991],[0,0,1],[0,0,1],[0,0,1],[0,.002,1],[0,.0176,1],[0,.0333,1],[0,.049,1],[0,.0647,1],[0,.0804,1],[0,.0961,1],[0,.1118,1],[0,.1275,1],[0,.1431,1],[0,.1588,1],[0,.1745,1],[0,.1902,1],[0,.2059,1],[0,.2216,1],[0,.2373,1],[0,.2529,1],[0,.2686,1],[0,.2843,1],[0,.3,1],[0,.3157,1],[0,.3314,1],[0,.3471,1],[0,.3627,1],[0,.3784,1],[0,.3941,1],[0,.4098,1],[0,.4255,1],[0,.4412,1],[0,.4569,1],[0,.4725,1],[0,.4882,1],[0,.5039,1],[0,.5196,1],[0,.5353,1],[0,.551,1],[0,.5667,1],[0,.5824,1],[0,.598,1],[0,.6137,1],[0,.6294,1],[0,.6451,1],[0,.6608,1],[0,.6765,1],[0,.6922,1],[0,.7078,1],[0,.7235,1],[0,.7392,1],[0,.7549,1],[0,.7706,1],[0,.7863,1],[0,.802,1],[0,.8176,1],[0,.8333,1],[0,.849,1],[0,.8647,.9962],[0,.8804,.9836],[0,.8961,.9709],[.0095,.9118,.9583],[.0221,.9275,.9456],[.0348,.9431,.933],[.0474,.9588,.9203],[.0601,.9745,.9077],[.0727,.9902,.895],[.0854,1,.8824],[.098,1,.8697],[.1107,1,.8571],[.1233,1,.8444],[.136,1,.8318],[.1486,1,.8191],[.1613,1,.8065],[.1739,1,.7938],[.1866,1,.7812],[.1992,1,.7685],[.2119,1,.7559],[.2245,1,.7432],[.2372,1,.7306],[.2498,1,.7179],[.2625,1,.7052],[.2751,1,.6926],[.2878,1,.6799],[.3004,1,.6673],[.3131,1,.6546],[.3257,1,.642],[.3384,1,.6293],[.351,1,.6167],[.3637,1,.604],[.3763,1,.5914],[.389,1,.5787],[.4016,1,.5661],[.4143,1,.5534],[.4269,1,.5408],[.4396,1,.5281],[.4522,1,.5155],[.4649,1,.5028],[.4775,1,.4902],[.4902,1,.4775],[.5028,1,.4649],[.5155,1,.4522],[.5281,1,.4396],[.5408,1,.4269],[.5534,1,.4143],[.5661,1,.4016],[.5787,1,.389],[.5914,1,.3763],[.604,1,.3637],[.6167,1,.351],[.6293,1,.3384],[.642,1,.3257],[.6546,1,.3131],[.6673,1,.3004],[.6799,1,.2878],[.6926,1,.2751],[.7052,1,.2625],[.7179,1,.2498],[.7306,1,.2372],[.7432,1,.2245],[.7559,1,.2119],[.7685,1,.1992],[.7812,1,.1866],[.7938,1,.1739],[.8065,1,.1613],[.8191,1,.1486],[.8318,1,.136],[.8444,1,.1233],[.8571,1,.1107],[.8697,1,.098],[.8824,1,.0854],[.895,1,.0727],[.9077,1,.0601],[.9203,1,.0474],[.933,1,.0348],[.9456,.9884,.0221],[.9583,.9739,.0095],[.9709,.9593,0],[.9836,.9448,0],[.9962,.9303,0],[1,.9158,0],[1,.9012,0],[1,.8867,0],[1,.8722,0],[1,.8577,0],[1,.8431,0],[1,.8286,0],[1,.8141,0],[1,.7996,0],[1,.785,0],[1,.7705,0],[1,.756,0],[1,.7415,0],[1,.7269,0],[1,.7124,0],[1,.6979,0],[1,.6834,0],[1,.6688,0],[1,.6543,0],[1,.6398,0],[1,.6253,0],[1,.6107,0],[1,.5962,0],[1,.5817,0],[1,.5672,0],[1,.5527,0],[1,.5381,0],[1,.5236,0],[1,.5091,0],[1,.4946,0],[1,.48,0],[1,.4655,0],[1,.451,0],[1,.4365,0],[1,.4219,0],[1,.4074,0],[1,.3929,0],[1,.3784,0],[1,.3638,0],[1,.3493,0],[1,.3348,0],[1,.3203,0],[1,.3057,0],[1,.2912,0],[1,.2767,0],[1,.2622,0],[1,.2476,0],[1,.2331,0],[1,.2186,0],[1,.2041,0],[1,.1895,0],[1,.175,0],[1,.1605,0],[1,.146,0],[1,.1314,0],[1,.1169,0],[1,.1024,0],[1,.0879,0],[.9991,.0733,0],[.9813,.0588,0],[.9635,.0443,0],[.9456,.0298,0],[.9278,.0153,0],[.91,7e-4,0],[.8922,0,0],[.8743,0,0],[.8565,0,0],[.8387,0,0],[.8209,0,0],[.803,0,0],[.7852,0,0],[.7674,0,0],[.7496,0,0],[.7317,0,0],[.7139,0,0],[.6961,0,0],[.6783,0,0],[.6604,0,0],[.6426,0,0],[.6248,0,0],[.607,0,0],[.5891,0,0],[.5713,0,0],[.5535,0,0],[.5357,0,0],[.5178,0,0],[.5,0,0]]};ce.magma={interpolate:!0,colors:[[.0015,5e-4,.0139],[.0023,.0013,.0183],[.0033,.0023,.0237],[.0045,.0035,.03],[.006,.0048,.0371],[.0076,.0064,.045],[.0094,.008,.0528],[.0115,.0098,.0608],[.0137,.0118,.0687],[.0162,.0138,.0766],[.0188,.016,.0846],[.0217,.0183,.0926],[.0248,.0207,.1007],[.0281,.0232,.1088],[.0317,.0258,.117],[.0355,.0284,.1252],[.0396,.0311,.1335],[.0438,.0338,.1419],[.0481,.0366,.1503],[.0523,.0394,.1588],[.0566,.0422,.1674],[.0609,.0448,.1761],[.0653,.0473,.1849],[.0698,.0497,.1937],[.0743,.052,.2027],[.0788,.0542,.2117],[.0834,.0562,.2208],[.0882,.0581,.2299],[.0929,.0599,.2392],[.0978,.0615,.2485],[.1028,.063,.2579],[.1079,.0643,.2673],[.1131,.0655,.2768],[.1184,.0665,.2863],[.1238,.0673,.2959],[.1294,.0679,.3054],[.1351,.0684,.315],[.1409,.0687,.3245],[.1468,.0687,.334],[.1528,.0686,.3434],[.159,.0684,.3527],[.1653,.0679,.3618],[.1717,.0673,.3708],[.1782,.0666,.3795],[.1848,.0657,.388],[.1915,.0648,.3962],[.1982,.0639,.404],[.2049,.0629,.4115],[.2117,.062,.4186],[.2185,.0612,.4254],[.2253,.0604,.4317],[.2321,.0599,.4377],[.2388,.0595,.4433],[.2455,.0594,.4484],[.2522,.0594,.4532],[.2589,.0597,.4577],[.2654,.0602,.4618],[.272,.061,.4657],[.2785,.062,.4692],[.285,.0632,.4725],[.2914,.0646,.4755],[.2977,.0661,.4782],[.3041,.0678,.4808],[.3104,.0697,.4832],[.3167,.0717,.4854],[.3229,.0738,.4874],[.3291,.076,.4893],[.3353,.0782,.491],[.3415,.0806,.4926],[.3476,.0829,.4941],[.3538,.0854,.4955],[.3599,.0878,.4968],[.366,.0903,.498],[.3721,.0928,.4991],[.3782,.0953,.5001],[.3843,.0979,.501],[.3904,.1004,.5019],[.3965,.1029,.5027],[.4025,.1054,.5034],[.4086,.1079,.5041],[.4147,.1104,.5047],[.4208,.1129,.5052],[.4269,.1154,.5057],[.433,.1179,.5062],[.4391,.1203,.5066],[.4452,.1227,.5069],[.4513,.1251,.5072],[.4574,.1275,.5074],[.4635,.1299,.5077],[.4696,.1322,.5078],[.4758,.1346,.5079],[.4819,.1369,.508],[.4881,.1392,.508],[.4943,.1415,.508],[.5004,.1437,.5079],[.5066,.146,.5078],[.5128,.1482,.5076],[.519,.1504,.5074],[.5253,.1526,.5072],[.5315,.1547,.5069],[.5378,.1569,.5066],[.544,.159,.5062],[.5503,.1612,.5057],[.5566,.1633,.5052],[.5629,.1654,.5047],[.5692,.1675,.5041],[.5755,.1695,.5035],[.5818,.1716,.5028],[.5882,.1737,.502],[.5945,.1757,.5012],[.6009,.1777,.5004],[.6072,.1798,.4995],[.6136,.1818,.4985],[.62,.1838,.4975],[.6264,.1859,.4965],[.6328,.1879,.4953],[.6392,.1899,.4942],[.6456,.192,.4929],[.6521,.194,.4916],[.6585,.196,.4903],[.6649,.1981,.4888],[.6713,.2001,.4874],[.6778,.2022,.4858],[.6842,.2043,.4842],[.6907,.2064,.4826],[.6971,.2085,.4808],[.7035,.2106,.479],[.71,.2128,.4772],[.7164,.215,.4753],[.7228,.2172,.4733],[.7292,.2194,.4713],[.7356,.2217,.4692],[.742,.224,.467],[.7484,.2264,.4648],[.7547,.2288,.4625],[.7611,.2312,.4602],[.7674,.2337,.4578],[.7737,.2362,.4553],[.78,.2389,.4528],[.7862,.2415,.4502],[.7924,.2442,.4475],[.7986,.247,.4448],[.8048,.2499,.4421],[.8109,.2529,.4393],[.8169,.2559,.4365],[.8229,.259,.4336],[.8289,.2622,.4306],[.8348,.2655,.4277],[.8406,.269,.4247],[.8464,.2725,.4216],[.8521,.2761,.4186],[.8578,.2799,.4155],[.8633,.2837,.4124],[.8688,.2877,.4093],[.8742,.2919,.4062],[.8795,.2961,.4031],[.8847,.3005,.4],[.8897,.3051,.397],[.8947,.3098,.394],[.8996,.3146,.391],[.9043,.3196,.3881],[.9089,.3248,.3853],[.9134,.3301,.3826],[.9177,.3355,.3799],[.9219,.3411,.3774],[.9259,.3468,.375],[.9298,.3527,.3727],[.9336,.3588,.3705],[.9372,.3649,.3686],[.9407,.3712,.3668],[.944,.3776,.3651],[.9472,.3842,.3637],[.9502,.3908,.3625],[.9531,.3976,.3614],[.9558,.4044,.3606],[.9585,.4113,.36],[.9609,.4183,.3596],[.9633,.4254,.3595],[.9655,.4325,.3595],[.9677,.4397,.3598],[.9697,.4469,.3603],[.9716,.4542,.361],[.9734,.4615,.362],[.9751,.4689,.3631],[.9767,.4762,.3645],[.9782,.4836,.366],[.9796,.491,.3678],[.981,.4984,.3697],[.9823,.5059,.3719],[.9835,.5133,.3742],[.9846,.5207,.3767],[.9857,.5281,.3794],[.9867,.5356,.3822],[.9876,.543,.3852],[.9885,.5504,.3884],[.9894,.5579,.3917],[.9901,.5653,.3951],[.9909,.5727,.3987],[.9916,.5801,.4024],[.9922,.5875,.4063],[.9928,.5949,.4103],[.9933,.6023,.4144],[.9938,.6096,.4186],[.9943,.617,.423],[.9947,.6244,.4274],[.9951,.6317,.432],[.9955,.639,.4366],[.9958,.6463,.4414],[.9961,.6537,.4462],[.9963,.661,.4512],[.9966,.6683,.4562],[.9968,.6755,.4613],[.9969,.6828,.4665],[.9971,.6901,.4718],[.9972,.6973,.4772],[.9973,.7046,.4826],[.9973,.7118,.4882],[.9974,.7191,.4938],[.9974,.7263,.4994],[.9973,.7335,.5052],[.9973,.7408,.511],[.9972,.748,.5169],[.9971,.7552,.5228],[.997,.7624,.5288],[.9969,.7696,.5349],[.9967,.7768,.541],[.9966,.784,.5472],[.9964,.7912,.5535],[.9962,.7983,.5598],[.9959,.8055,.5662],[.9957,.8127,.5726],[.9954,.8199,.5791],[.9951,.8271,.5857],[.9949,.8342,.5923],[.9945,.8414,.599],[.9942,.8485,.6057],[.9939,.8557,.6125],[.9935,.8629,.6193],[.9932,.87,.6262],[.9928,.8772,.6331],[.9924,.8843,.6401],[.9921,.8915,.6471],[.9917,.8986,.6542],[.9913,.9058,.6613],[.9909,.9129,.6685],[.9906,.92,.6757],[.9902,.9272,.6829],[.9898,.9343,.6902],[.9894,.9415,.6975],[.9891,.9486,.7049],[.9887,.9557,.7122],[.9884,.9629,.7196],[.988,.97,.7271],[.9877,.9772,.7345],[.9874,.9843,.742],[.9871,.9914,.7495]]};ce.nipy_spectral={interpolate:!0,colors:[[0,0,0],[.0366,0,.0418],[.0732,0,.0837],[.1098,0,.1255],[.1464,0,.1673],[.183,0,.2091],[.2196,0,.251],[.2562,0,.2928],[.2928,0,.3346],[.3294,0,.3764],[.366,0,.4183],[.4026,0,.4601],[.4392,0,.5019],[.468,0,.5346],[.4732,0,.5398],[.4785,0,.5451],[.4837,0,.5503],[.4889,0,.5555],[.4941,0,.5608],[.4993,0,.566],[.5046,0,.5712],[.5098,0,.5765],[.515,0,.5817],[.5202,0,.5869],[.5255,0,.5922],[.5307,0,.5974],[.5124,0,.6026],[.4706,0,.6078],[.4287,0,.6131],[.3869,0,.6183],[.3451,0,.6235],[.3032,0,.6288],[.2614,0,.634],[.2196,0,.6392],[.1778,0,.6445],[.1359,0,.6497],[.0941,0,.6549],[.0523,0,.6602],[.0105,0,.6654],[0,0,.6785],[0,0,.6942],[0,0,.7098],[0,0,.7255],[0,0,.7412],[0,0,.7569],[0,0,.7726],[0,0,.7883],[0,0,.804],[0,0,.8196],[0,0,.8353],[0,0,.851],[0,0,.8667],[0,.0366,.8667],[0,.0732,.8667],[0,.1098,.8667],[0,.1464,.8667],[0,.183,.8667],[0,.2196,.8667],[0,.2562,.8667],[0,.2928,.8667],[0,.3294,.8667],[0,.366,.8667],[0,.4026,.8667],[0,.4392,.8667],[0,.4693,.8667],[0,.4798,.8667],[0,.4902,.8667],[0,.5007,.8667],[0,.5111,.8667],[0,.5216,.8667],[0,.532,.8667],[0,.5425,.8667],[0,.553,.8667],[0,.5634,.8667],[0,.5739,.8667],[0,.5843,.8667],[0,.5948,.8667],[0,.6026,.8589],[0,.6078,.8432],[0,.6131,.8275],[0,.6183,.8118],[0,.6235,.7961],[0,.6288,.7804],[0,.634,.7647],[0,.6392,.7491],[0,.6445,.7334],[0,.6497,.7177],[0,.6549,.702],[0,.6602,.6863],[0,.6654,.6706],[0,.6667,.6589],[0,.6667,.6484],[0,.6667,.6379],[0,.6667,.6275],[0,.6667,.617],[0,.6667,.6065],[0,.6667,.5961],[0,.6667,.5856],[0,.6667,.5752],[0,.6667,.5647],[0,.6667,.5542],[0,.6667,.5438],[0,.6667,.5333],[0,.6615,.4915],[0,.6562,.4496],[0,.651,.4078],[0,.6458,.366],[0,.6405,.3242],[0,.6353,.2823],[0,.6301,.2405],[0,.6248,.1987],[0,.6196,.1569],[0,.6144,.115],[0,.6092,.0732],[0,.6039,.0314],[0,.6026,0],[0,.6131,0],[0,.6235,0],[0,.634,0],[0,.6444,0],[0,.6549,0],[0,.6653,0],[0,.6758,0],[0,.6863,0],[0,.6967,0],[0,.7072,0],[0,.7176,0],[0,.7281,0],[0,.7385,0],[0,.749,0],[0,.7595,0],[0,.7699,0],[0,.7804,0],[0,.7908,0],[0,.8013,0],[0,.8118,0],[0,.8222,0],[0,.8327,0],[0,.8432,0],[0,.8536,0],[0,.8641,0],[0,.8745,0],[0,.885,0],[0,.8955,0],[0,.9059,0],[0,.9164,0],[0,.9268,0],[0,.9373,0],[0,.9477,0],[0,.9582,0],[0,.9686,0],[0,.9791,0],[0,.9895,0],[0,1,0],[.0575,1,0],[.115,1,0],[.1725,1,0],[.2301,1,0],[.2876,1,0],[.3451,1,0],[.4026,1,0],[.4601,1,0],[.5176,1,0],[.5751,1,0],[.6327,1,0],[.6902,1,0],[.7372,.9987,0],[.7529,.9935,0],[.7686,.9882,0],[.7843,.983,0],[.8,.9778,0],[.8157,.9725,0],[.8313,.9673,0],[.847,.9621,0],[.8627,.9568,0],[.8784,.9516,0],[.8941,.9464,0],[.9098,.9411,0],[.9255,.9359,0],[.9359,.9281,0],[.9411,.9176,0],[.9464,.9072,0],[.9516,.8967,0],[.9568,.8863,0],[.9621,.8758,0],[.9673,.8653,0],[.9725,.8549,0],[.9778,.8444,0],[.983,.834,0],[.9882,.8235,0],[.9935,.8131,0],[.9987,.8026,0],[1,.7882,0],[1,.7725,0],[1,.7569,0],[1,.7412,0],[1,.7255,0],[1,.7098,0],[1,.6941,0],[1,.6784,0],[1,.6627,0],[1,.6471,0],[1,.6314,0],[1,.6157,0],[1,.6,0],[1,.5529,0],[1,.5059,0],[1,.4588,0],[1,.4118,0],[1,.3647,0],[1,.3176,0],[1,.2706,0],[1,.2235,0],[1,.1765,0],[1,.1294,0],[1,.0824,0],[1,.0353,0],[.9974,0,0],[.9869,0,0],[.9765,0,0],[.966,0,0],[.9556,0,0],[.9451,0,0],[.9347,0,0],[.9242,0,0],[.9137,0,0],[.9033,0,0],[.8928,0,0],[.8824,0,0],[.8719,0,0],[.8641,0,0],[.8589,0,0],[.8536,0,0],[.8484,0,0],[.8432,0,0],[.8379,0,0],[.8327,0,0],[.8275,0,0],[.8222,0,0],[.817,0,0],[.8118,0,0],[.8065,0,0],[.8013,0,0],[.8,.0471,.0471],[.8,.1098,.1098],[.8,.1725,.1725],[.8,.2353,.2353],[.8,.298,.298],[.8,.3608,.3608],[.8,.4235,.4235],[.8,.4863,.4863],[.8,.549,.549],[.8,.6118,.6118],[.8,.6745,.6745],[.8,.7373,.7373],[.8,.8,.8]]};ce.ocean={interpolate:!0,colors:[[0,.5,0],[0,.4941,.0039],[0,.4882,.0078],[0,.4824,.0118],[0,.4765,.0157],[0,.4706,.0196],[0,.4647,.0235],[0,.4588,.0275],[0,.4529,.0314],[0,.4471,.0353],[0,.4412,.0392],[0,.4353,.0431],[0,.4294,.0471],[0,.4235,.051],[0,.4176,.0549],[0,.4118,.0588],[0,.4059,.0627],[0,.4,.0667],[0,.3941,.0706],[0,.3882,.0745],[0,.3824,.0784],[0,.3765,.0824],[0,.3706,.0863],[0,.3647,.0902],[0,.3588,.0941],[0,.3529,.098],[0,.3471,.102],[0,.3412,.1059],[0,.3353,.1098],[0,.3294,.1137],[0,.3235,.1176],[0,.3176,.1216],[0,.3118,.1255],[0,.3059,.1294],[0,.3,.1333],[0,.2941,.1373],[0,.2882,.1412],[0,.2824,.1451],[0,.2765,.149],[0,.2706,.1529],[0,.2647,.1569],[0,.2588,.1608],[0,.2529,.1647],[0,.2471,.1686],[0,.2412,.1725],[0,.2353,.1765],[0,.2294,.1804],[0,.2235,.1843],[0,.2176,.1882],[0,.2118,.1922],[0,.2059,.1961],[0,.2,.2],[0,.1941,.2039],[0,.1882,.2078],[0,.1824,.2118],[0,.1765,.2157],[0,.1706,.2196],[0,.1647,.2235],[0,.1588,.2275],[0,.1529,.2314],[0,.1471,.2353],[0,.1412,.2392],[0,.1353,.2431],[0,.1294,.2471],[0,.1235,.251],[0,.1176,.2549],[0,.1118,.2588],[0,.1059,.2627],[0,.1,.2667],[0,.0941,.2706],[0,.0882,.2745],[0,.0824,.2784],[0,.0765,.2824],[0,.0706,.2863],[0,.0647,.2902],[0,.0588,.2941],[0,.0529,.298],[0,.0471,.302],[0,.0412,.3059],[0,.0353,.3098],[0,.0294,.3137],[0,.0235,.3176],[0,.0176,.3216],[0,.0118,.3255],[0,.0059,.3294],[0,0,.3333],[0,.0059,.3373],[0,.0118,.3412],[0,.0176,.3451],[0,.0235,.349],[0,.0294,.3529],[0,.0353,.3569],[0,.0412,.3608],[0,.0471,.3647],[0,.0529,.3686],[0,.0588,.3725],[0,.0647,.3765],[0,.0706,.3804],[0,.0765,.3843],[0,.0824,.3882],[0,.0882,.3922],[0,.0941,.3961],[0,.1,.4],[0,.1059,.4039],[0,.1118,.4078],[0,.1176,.4118],[0,.1235,.4157],[0,.1294,.4196],[0,.1353,.4235],[0,.1412,.4275],[0,.1471,.4314],[0,.1529,.4353],[0,.1588,.4392],[0,.1647,.4431],[0,.1706,.4471],[0,.1765,.451],[0,.1824,.4549],[0,.1882,.4588],[0,.1941,.4627],[0,.2,.4667],[0,.2059,.4706],[0,.2118,.4745],[0,.2176,.4784],[0,.2235,.4824],[0,.2294,.4863],[0,.2353,.4902],[0,.2412,.4941],[0,.2471,.498],[0,.2529,.502],[0,.2588,.5059],[0,.2647,.5098],[0,.2706,.5137],[0,.2765,.5176],[0,.2824,.5216],[0,.2882,.5255],[0,.2941,.5294],[0,.3,.5333],[0,.3059,.5373],[0,.3118,.5412],[0,.3176,.5451],[0,.3235,.549],[0,.3294,.5529],[0,.3353,.5569],[0,.3412,.5608],[0,.3471,.5647],[0,.3529,.5686],[0,.3588,.5725],[0,.3647,.5765],[0,.3706,.5804],[0,.3765,.5843],[0,.3824,.5882],[0,.3882,.5922],[0,.3941,.5961],[0,.4,.6],[0,.4059,.6039],[0,.4118,.6078],[0,.4176,.6118],[0,.4235,.6157],[0,.4294,.6196],[0,.4353,.6235],[0,.4412,.6275],[0,.4471,.6314],[0,.4529,.6353],[0,.4588,.6392],[0,.4647,.6431],[0,.4706,.6471],[0,.4765,.651],[0,.4824,.6549],[0,.4882,.6588],[0,.4941,.6627],[0,.5,.6667],[.0118,.5059,.6706],[.0235,.5118,.6745],[.0353,.5176,.6784],[.0471,.5235,.6824],[.0588,.5294,.6863],[.0706,.5353,.6902],[.0824,.5412,.6941],[.0941,.5471,.698],[.1059,.5529,.702],[.1176,.5588,.7059],[.1294,.5647,.7098],[.1412,.5706,.7137],[.1529,.5765,.7176],[.1647,.5824,.7216],[.1765,.5882,.7255],[.1882,.5941,.7294],[.2,.6,.7333],[.2118,.6059,.7373],[.2235,.6118,.7412],[.2353,.6176,.7451],[.2471,.6235,.749],[.2588,.6294,.7529],[.2706,.6353,.7569],[.2824,.6412,.7608],[.2941,.6471,.7647],[.3059,.6529,.7686],[.3176,.6588,.7725],[.3294,.6647,.7765],[.3412,.6706,.7804],[.3529,.6765,.7843],[.3647,.6824,.7882],[.3765,.6882,.7922],[.3882,.6941,.7961],[.4,.7,.8],[.4118,.7059,.8039],[.4235,.7118,.8078],[.4353,.7176,.8118],[.4471,.7235,.8157],[.4588,.7294,.8196],[.4706,.7353,.8235],[.4824,.7412,.8275],[.4941,.7471,.8314],[.5059,.7529,.8353],[.5176,.7588,.8392],[.5294,.7647,.8431],[.5412,.7706,.8471],[.5529,.7765,.851],[.5647,.7824,.8549],[.5765,.7882,.8588],[.5882,.7941,.8627],[.6,.8,.8667],[.6118,.8059,.8706],[.6235,.8118,.8745],[.6353,.8176,.8784],[.6471,.8235,.8824],[.6588,.8294,.8863],[.6706,.8353,.8902],[.6824,.8412,.8941],[.6941,.8471,.898],[.7059,.8529,.902],[.7176,.8588,.9059],[.7294,.8647,.9098],[.7412,.8706,.9137],[.7529,.8765,.9176],[.7647,.8824,.9216],[.7765,.8882,.9255],[.7882,.8941,.9294],[.8,.9,.9333],[.8118,.9059,.9373],[.8235,.9118,.9412],[.8353,.9176,.9451],[.8471,.9235,.949],[.8588,.9294,.9529],[.8706,.9353,.9569],[.8824,.9412,.9608],[.8941,.9471,.9647],[.9059,.9529,.9686],[.9176,.9588,.9725],[.9294,.9647,.9765],[.9412,.9706,.9804],[.9529,.9765,.9843],[.9647,.9824,.9882],[.9765,.9882,.9922],[.9882,.9941,.9961],[1,1,1]]};ce.pink={interpolate:!0,colors:[[.1178,0,0],[.1371,.0254,.0254],[.1564,.0508,.0508],[.1757,.0762,.0762],[.1949,.1017,.1017],[.2088,.1129,.1129],[.2223,.1234,.1234],[.2358,.1339,.1339],[.2494,.1445,.1445],[.2607,.1528,.1528],[.2717,.1609,.1609],[.2828,.1689,.1689],[.2939,.177,.177],[.3037,.184,.184],[.3133,.1908,.1908],[.3229,.1976,.1976],[.3325,.2044,.2044],[.3413,.2106,.2106],[.3499,.2166,.2166],[.3585,.2226,.2226],[.3671,.2286,.2286],[.3751,.2342,.2342],[.3829,.2396,.2396],[.3908,.245,.245],[.3986,.2504,.2504],[.4061,.2555,.2555],[.4134,.2605,.2605],[.4206,.2655,.2655],[.4279,.2705,.2705],[.4349,.2753,.2753],[.4417,.2799,.2799],[.4485,.2845,.2845],[.4553,.2892,.2892],[.4619,.2937,.2937],[.4683,.298,.298],[.4747,.3024,.3024],[.4811,.3067,.3067],[.4873,.311,.311],[.4934,.3151,.3151],[.4995,.3192,.3192],[.5056,.3233,.3233],[.5116,.3274,.3274],[.5174,.3313,.3313],[.5232,.3352,.3352],[.529,.3391,.3391],[.5347,.343,.343],[.5403,.3467,.3467],[.5458,.3505,.3505],[.5514,.3542,.3542],[.5569,.3579,.3579],[.5622,.3615,.3615],[.5675,.3651,.3651],[.5729,.3687,.3687],[.5782,.3722,.3722],[.5833,.3757,.3757],[.5885,.3791,.3791],[.5936,.3826,.3826],[.5987,.386,.386],[.6037,.3894,.3894],[.6087,.3927,.3927],[.6137,.396,.396],[.6186,.3993,.3993],[.6234,.4026,.4026],[.6282,.4058,.4058],[.6331,.409,.409],[.6378,.4122,.4122],[.6425,.4153,.4153],[.6472,.4185,.4185],[.6519,.4216,.4216],[.6565,.4247,.4247],[.6611,.4278,.4278],[.6656,.4308,.4308],[.6702,.4338,.4338],[.6747,.4369,.4369],[.6791,.4398,.4398],[.6836,.4428,.4428],[.688,.4457,.4457],[.6924,.4487,.4487],[.6967,.4515,.4515],[.701,.4544,.4544],[.7053,.4573,.4573],[.7096,.4602,.4602],[.7139,.463,.463],[.7181,.4658,.4658],[.7223,.4686,.4686],[.7265,.4714,.4714],[.7306,.4741,.4741],[.7347,.4769,.4769],[.7388,.4796,.4796],[.7429,.4824,.4824],[.747,.485,.485],[.751,.4877,.4877],[.755,.4904,.4904],[.759,.4931,.4931],[.761,.4988,.4957],[.7627,.5047,.4983],[.7644,.5107,.501],[.7661,.5167,.5036],[.7678,.5224,.5062],[.7695,.5282,.5087],[.7712,.5339,.5113],[.7729,.5396,.5139],[.7746,.5451,.5164],[.7763,.5506,.5189],[.778,.5561,.5214],[.7796,.5615,.5239],[.7813,.5669,.5264],[.783,.5721,.5289],[.7847,.5774,.5313],[.7863,.5827,.5338],[.788,.5878,.5363],[.7896,.5929,.5387],[.7913,.598,.5411],[.7929,.6031,.5435],[.7946,.608,.5459],[.7962,.613,.5483],[.7979,.6179,.5507],[.7995,.6228,.5531],[.8011,.6276,.5554],[.8028,.6324,.5578],[.8044,.6372,.5601],[.806,.6419,.5624],[.8076,.6466,.5648],[.8093,.6512,.5671],[.8109,.6559,.5694],[.8125,.6605,.5717],[.8141,.665,.5739],[.8157,.6695,.5762],[.8173,.674,.5785],[.8189,.6785,.5807],[.8205,.683,.583],[.8221,.6874,.5852],[.8237,.6918,.5874],[.8253,.6961,.5897],[.8268,.7005,.5919],[.8284,.7047,.5941],[.83,.709,.5963],[.8316,.7133,.5985],[.8331,.7175,.6006],[.8347,.7217,.6028],[.8363,.7259,.605],[.8378,.73,.6071],[.8394,.7342,.6093],[.8409,.7383,.6114],[.8425,.7423,.6136],[.844,.7464,.6157],[.8456,.7505,.6178],[.8471,.7545,.6199],[.8487,.7585,.622],[.8502,.7625,.6241],[.8518,.7664,.6262],[.8533,.7703,.6283],[.8548,.7742,.6304],[.8563,.7781,.6324],[.8579,.782,.6345],[.8594,.7859,.6366],[.8609,.7897,.6386],[.8624,.7935,.6407],[.8639,.7974,.6427],[.8655,.8011,.6447],[.867,.8049,.6467],[.8685,.8086,.6488],[.87,.8124,.6508],[.8715,.8161,.6528],[.873,.8198,.6548],[.8745,.8234,.6568],[.876,.8271,.6588],[.8775,.8308,.6607],[.8789,.8344,.6627],[.8804,.838,.6647],[.8819,.8416,.6667],[.8834,.8452,.6686],[.8849,.8487,.6706],[.8863,.8523,.6725],[.8878,.8559,.6745],[.8893,.8594,.6764],[.8908,.8629,.6783],[.8922,.8664,.6802],[.8937,.8699,.6822],[.8952,.8733,.6841],[.8966,.8768,.686],[.8981,.8802,.6879],[.8995,.8837,.6898],[.901,.8871,.6917],[.9024,.8905,.6936],[.9039,.8939,.6954],[.9053,.8972,.6973],[.9068,.9006,.6992],[.9082,.9039,.7011],[.9096,.9073,.7029],[.9111,.9106,.7048],[.9125,.9125,.7094],[.9139,.9139,.7148],[.9154,.9154,.7202],[.9168,.9168,.7256],[.9182,.9182,.7309],[.9196,.9196,.7362],[.9211,.9211,.7414],[.9225,.9225,.7467],[.9239,.9239,.7519],[.9253,.9253,.757],[.9267,.9267,.7621],[.9281,.9281,.7672],[.9295,.9295,.7722],[.9309,.9309,.7772],[.9323,.9323,.7822],[.9338,.9338,.7872],[.9352,.9352,.7921],[.9365,.9365,.7969],[.9379,.9379,.8018],[.9393,.9393,.8067],[.9407,.9407,.8115],[.9421,.9421,.8162],[.9435,.9435,.8209],[.9449,.9449,.8257],[.9463,.9463,.8304],[.9476,.9476,.835],[.949,.949,.8396],[.9504,.9504,.8443],[.9518,.9518,.8489],[.9531,.9531,.8534],[.9545,.9545,.8579],[.9559,.9559,.8625],[.9573,.9573,.867],[.9586,.9586,.8714],[.96,.96,.8758],[.9613,.9613,.8803],[.9627,.9627,.8847],[.9641,.9641,.889],[.9654,.9654,.8934],[.9668,.9668,.8977],[.9681,.9681,.9021],[.9695,.9695,.9063],[.9708,.9708,.9106],[.9722,.9722,.9149],[.9735,.9735,.9191],[.9748,.9748,.9233],[.9762,.9762,.9275],[.9775,.9775,.9317],[.9789,.9789,.9358],[.9802,.9802,.94],[.9815,.9815,.9441],[.9829,.9829,.9482],[.9842,.9842,.9523],[.9855,.9855,.9563],[.9868,.9868,.9604],[.9882,.9882,.9644],[.9895,.9895,.9685],[.9908,.9908,.9724],[.9921,.9921,.9764],[.9934,.9934,.9804],[.9948,.9948,.9844],[.9961,.9961,.9883],[.9974,.9974,.9922],[.9987,.9987,.9961],[1,1,1]]};ce.plasma={interpolate:!0,colors:[[.0504,.0298,.528],[.0635,.0284,.5331],[.0754,.0272,.538],[.0862,.0261,.5427],[.0964,.0252,.5471],[.106,.0243,.5514],[.1151,.0236,.5555],[.1239,.0229,.5594],[.1324,.0223,.5632],[.1406,.0217,.567],[.1486,.0212,.5706],[.1564,.0207,.5741],[.1641,.0202,.5775],[.1716,.0197,.5808],[.179,.0193,.5841],[.1862,.0188,.5872],[.1934,.0184,.5903],[.2004,.0179,.5934],[.2074,.0174,.5963],[.2144,.017,.5992],[.2212,.0165,.6021],[.228,.016,.6049],[.2347,.0155,.6076],[.2414,.015,.6103],[.248,.0144,.6129],[.2546,.0139,.6154],[.2612,.0133,.6179],[.2677,.0127,.6203],[.2742,.0121,.6227],[.2806,.0115,.625],[.2871,.0109,.6273],[.2935,.0102,.6295],[.2999,.0096,.6316],[.3062,.0089,.6337],[.3125,.0082,.6357],[.3189,.0076,.6376],[.3252,.0069,.6395],[.3314,.0063,.6413],[.3377,.0056,.643],[.3439,.005,.6447],[.3502,.0044,.6463],[.3564,.0038,.6478],[.3626,.0032,.6492],[.3687,.0027,.6506],[.3749,.0022,.6519],[.381,.0018,.6531],[.3872,.0014,.6542],[.3933,.0011,.6552],[.3994,9e-4,.6561],[.4055,7e-4,.657],[.4116,6e-4,.6577],[.4176,6e-4,.6584],[.4237,6e-4,.659],[.4297,8e-4,.6594],[.4357,.0011,.6598],[.4417,.0015,.6601],[.4477,.0021,.6602],[.4537,.0028,.6603],[.4596,.0036,.6603],[.4656,.0045,.6601],[.4715,.0057,.6599],[.4773,.007,.6595],[.4832,.0085,.6591],[.4891,.0101,.6585],[.4949,.012,.6579],[.5007,.0141,.6571],[.5065,.0163,.6562],[.5122,.0188,.6552],[.5179,.0216,.6541],[.5236,.0245,.6529],[.5293,.0277,.6516],[.535,.0312,.6502],[.5406,.035,.6486],[.5462,.039,.647],[.5517,.0431,.6453],[.5572,.0473,.6434],[.5627,.0515,.6415],[.5682,.0558,.6395],[.5736,.06,.6373],[.579,.0643,.6351],[.5844,.0686,.6328],[.5897,.0729,.6304],[.595,.0772,.6279],[.6003,.0815,.6253],[.6055,.0859,.6227],[.6107,.0902,.62],[.6158,.0946,.6171],[.6209,.0989,.6143],[.626,.1033,.6113],[.631,.1077,.6083],[.636,.1121,.6052],[.641,.1165,.6021],[.6459,.1209,.5989],[.6507,.1253,.5956],[.6556,.1297,.5923],[.6604,.1341,.589],[.6651,.1386,.5856],[.6698,.143,.5822],[.6745,.1474,.5787],[.6792,.1518,.5752],[.6838,.1563,.5717],[.6883,.1607,.5681],[.6928,.1651,.5645],[.6973,.1696,.5609],[.7018,.174,.5573],[.7062,.1784,.5537],[.7105,.1829,.55],[.7149,.1873,.5463],[.7192,.1917,.5427],[.7234,.1962,.539],[.7277,.2006,.5353],[.7319,.205,.5316],[.736,.2094,.5279],[.7401,.2139,.5242],[.7442,.2183,.5205],[.7483,.2227,.5168],[.7523,.2271,.5131],[.7563,.2316,.5095],[.7603,.236,.5058],[.7642,.2404,.5021],[.7681,.2448,.4985],[.772,.2492,.4948],[.7758,.2537,.4912],[.7796,.2581,.4875],[.7834,.2625,.4839],[.7871,.2669,.4803],[.7909,.2713,.4767],[.7945,.2758,.4731],[.7982,.2802,.4695],[.8019,.2846,.466],[.8055,.2891,.4624],[.8091,.2935,.4589],[.8126,.2979,.4553],[.8161,.3024,.4518],[.8197,.3068,.4483],[.8231,.3113,.4448],[.8266,.3157,.4413],[.83,.3202,.4378],[.8334,.3246,.4344],[.8368,.3291,.4309],[.8402,.3336,.4275],[.8435,.3381,.424],[.8468,.3426,.4206],[.8501,.347,.4172],[.8533,.3516,.4137],[.8565,.3561,.4103],[.8598,.3606,.4069],[.8629,.3651,.4035],[.8661,.3697,.4001],[.8692,.3742,.3967],[.8723,.3788,.3934],[.8754,.3833,.39],[.8784,.3879,.3866],[.8814,.3925,.3832],[.8844,.3971,.3799],[.8874,.4018,.3765],[.8903,.4064,.3731],[.8932,.411,.3698],[.8961,.4157,.3664],[.899,.4204,.363],[.9018,.4251,.3597],[.9046,.4298,.3563],[.9074,.4345,.353],[.9101,.4393,.3496],[.9128,.444,.3463],[.9155,.4488,.3429],[.9181,.4536,.3395],[.9207,.4584,.3362],[.9233,.4633,.3328],[.9258,.4681,.3294],[.9283,.473,.3261],[.9308,.4779,.3227],[.9332,.4828,.3193],[.9356,.4877,.316],[.938,.4927,.3126],[.9403,.4976,.3092],[.9426,.5026,.3058],[.9448,.5077,.3024],[.9471,.5127,.299],[.9492,.5178,.2957],[.9513,.5228,.2923],[.9534,.528,.2889],[.9555,.5331,.2855],[.9575,.5382,.2821],[.9594,.5434,.2787],[.9613,.5486,.2753],[.9632,.5539,.2719],[.965,.5591,.2685],[.9668,.5644,.2651],[.9685,.5697,.2617],[.9702,.575,.2583],[.9718,.5804,.2549],[.9734,.5858,.2515],[.9749,.5912,.2482],[.9764,.5966,.2448],[.9779,.6021,.2414],[.9792,.6075,.238],[.9806,.613,.2346],[.9818,.6186,.2313],[.983,.6241,.2279],[.9842,.6297,.2246],[.9853,.6353,.2213],[.9863,.641,.2179],[.9873,.6466,.2146],[.9883,.6523,.2114],[.9891,.658,.2081],[.9899,.6638,.2049],[.9907,.6696,.2016],[.9914,.6754,.1985],[.992,.6812,.1953],[.9925,.687,.1922],[.993,.6929,.1891],[.9935,.6988,.186],[.9938,.7047,.183],[.9941,.7107,.1801],[.9943,.7167,.1772],[.9945,.7227,.1744],[.9946,.7287,.1716],[.9946,.7348,.1689],[.9945,.7409,.1663],[.9944,.747,.1638],[.9941,.7531,.1614],[.9939,.7593,.1591],[.9935,.7655,.1569],[.993,.7717,.1548],[.9925,.778,.1529],[.9919,.7842,.151],[.9912,.7905,.1494],[.9904,.7969,.1479],[.9896,.8032,.1465],[.9886,.8096,.1454],[.9876,.816,.1444],[.9865,.8224,.1436],[.9853,.8288,.1429],[.984,.8353,.1425],[.9827,.8418,.1423],[.9812,.8483,.1423],[.9796,.8549,.1425],[.978,.8614,.1428],[.9763,.868,.1434],[.9744,.8746,.1441],[.9725,.8812,.1449],[.9705,.8879,.1459],[.9684,.8946,.147],[.9663,.9012,.1482],[.964,.908,.1494],[.9617,.9147,.1505],[.9593,.9214,.1516],[.9568,.9282,.1524],[.9543,.9349,.1529],[.9517,.9417,.1529],[.9492,.9484,.1522],[.9466,.9552,.1503],[.9442,.9619,.1469],[.9419,.9686,.141],[.94,.9752,.1313]]};ce.prism={interpolate:!0,colors:[[1,0,0],[1,0,0],[1,.1296,0],[1,.3203,0],[1,.5116,0],[1,.6909,0],[1,.8464,0],[1,.9679,0],[.889,1,0],[.6991,1,0],[.5073,1,0],[.3262,.9966,0],[.1678,.887,0],[.0425,.7408,.2247],[0,.5675,.4915],[0,.3785,.7259],[0,.1863,.9124],[0,.0036,1],[.1001,0,1],[.2431,0,1],[.4142,0,.9965],[.6022,0,.845],[.7946,0,.6378],[.9788,0,.3885],[1,0,.1136],[1,0,0],[1,.0561,0],[1,.2429,0],[1,.4354,0],[1,.6211,0],[1,.7875,0],[1,.9237,0],[.9619,1,0],[.7764,1,0],[.5838,1,0],[.3969,1,0],[.228,.9359,0],[.0883,.8034,.1123],[0,.6397,.3872],[0,.4555,.6367],[0,.2631,.8441],[0,.0751,.9959],[.0528,0,1],[.1817,0,1],[.3427,0,1],[.5254,0,.9132],[.7176,0,.7269],[.9066,0,.4927],[1,0,.2261],[1,0,0],[1,0,0],[1,.1664,0],[1,.3582,0],[1,.5481,0],[1,.7236,0],[1,.8732,0],[1,.987,0],[.8525,1,0],[.6612,1,0],[.4705,1,0],[.293,.9784,0],[.1403,.861,0],[.0226,.7086,.2788],[0,.5312,.5406],[0,.3406,.7667],[0,.1493,.9423],[.0121,0,1],[.1255,0,1],[.2748,0,1],[.4501,0,.9717],[.64,0,.8083],[.8318,0,.5917],[1,0,.336],[1,0,.0582],[1,0,0],[1,.0917,0],[1,.2806,0],[1,.4728,0],[1,.6556,0],[1,.8169,0],[1,.9461,0],[.9267,1,0],[.7387,1,0],[.5463,1,0],[.362,1,0],[.198,.9129,0],[.0651,.7735,.1674],[0,.6048,.4387],[0,.418,.6811],[0,.2255,.8786],[0,.0398,1],[.0751,0,1],[.2111,0,1],[.3772,0,1],[.5627,0,.8811],[.7553,0,.6843],[.9422,0,.4425],[1,0,.1714],[1,0,0],[1,.0195,0],[1,.2036,0],[1,.396,0],[1,.5841,0],[1,.7554,0],[1,.8987,0],[.9981,1,0],[.8155,1,0],[.6234,1,0],[.4343,1,0],[.2607,.9585,0],[.1142,.8336,.0542],[.0043,.6754,.3322],[0,.4945,.5883],[0,.3027,.8056],[0,.1128,.9698],[.0311,0,1],[.1522,0,1],[.3075,0,1],[.4866,0,.9444],[.6779,0,.7696],[.8686,0,.5441],[1,0,.2827],[1,0,.0027],[1,0,0],[1,.1279,0],[1,.3185,0],[1,.5098,0],[1,.6893,0],[1,.8451,0],[1,.9669,0],[.8908,1,0],[.7009,1,0],[.5091,1,0],[.3279,.9974,0],[.1692,.8883,0],[.0435,.7423,.2221],[0,.5692,.4891],[0,.3803,.7239],[0,.1881,.9109],[0,.0052,1],[.0989,0,1],[.2416,0,1],[.4125,0,.9976],[.6003,0,.8467],[.7928,0,.64],[.9772,0,.391],[1,0,.1163],[1,0,0],[1,.0543,0],[1,.241,0],[1,.4336,0],[1,.6194,0],[1,.786,0],[1,.9226,0],[.9636,1,0],[.7782,1,0],[.5856,1,0],[.3986,1,0],[.2295,.937,0],[.0895,.8049,.1096],[0,.6414,.3847],[0,.4574,.6344],[0,.2649,.8424],[0,.0768,.9947],[.0518,0,1],[.1803,0,1],[.3411,0,1],[.5236,0,.9147],[.7157,0,.729],[.9048,0,.4952],[1,0,.2287],[1,0,0],[1,0,0],[1,.1646,0],[1,.3563,0],[1,.5463,0],[1,.7221,0],[1,.872,0],[1,.9861,0],[.8543,1,0],[.6631,1,0],[.4723,1,0],[.2946,.9793,0],[.1416,.8623,0],[.0235,.7102,.2762],[0,.533,.5382],[0,.3425,.7648],[0,.1511,.9409],[.0112,0,1],[.1242,0,1],[.2732,0,1],[.4484,0,.9729],[.6381,0,.8102],[.83,0,.594],[1,0,.3386],[1,0,.061],[1,0,0],[1,.0899,0],[1,.2788,0],[1,.471,0],[1,.6539,0],[1,.8155,0],[1,.9451,0],[.9284,1,0],[.7406,1,0],[.5481,1,0],[.3637,1,0],[.1994,.914,0],[.0662,.7749,.1647],[0,.6065,.4362],[0,.4199,.679],[0,.2273,.877],[0,.0415,1],[.074,0,1],[.2096,0,1],[.3755,0,1],[.5609,0,.8827],[.7534,0,.6864],[.9405,0,.4449],[1,0,.1741],[1,0,0],[1,.0178,0],[1,.2017,0],[1,.3941,0],[1,.5823,0],[1,.7539,0],[1,.8974,0],[.9997,1,0],[.8173,1,0],[.6252,1,0],[.436,1,0],[.2623,.9595,0],[.1154,.8349,.0515],[.0051,.6771,.3296],[0,.4963,.586],[0,.3046,.8037],[0,.1146,.9685],[.0302,0,1],[.1509,0,1],[.3059,0,1],[.4848,0,.9458],[.676,0,.7716],[.8668,0,.5465],[1,0,.2854],[1,0,.0054],[1,0,0],[1,.1261,0],[1,.3166,0],[1,.508,0],[1,.6877,0],[1,.8437,0],[1,.966,0],[.8925,1,0],[.7028,1,0],[.5109,1,0],[.3295,.9983,0]]};ce.rainbow={interpolate:!0,colors:[[.5,0,1],[.4922,.0123,1],[.4843,.0246,.9999],[.4765,.037,.9998],[.4686,.0493,.9997],[.4608,.0616,.9995],[.4529,.0739,.9993],[.4451,.0861,.9991],[.4373,.0984,.9988],[.4294,.1107,.9985],[.4216,.1229,.9981],[.4137,.1351,.9977],[.4059,.1473,.9973],[.398,.1595,.9968],[.3902,.1716,.9963],[.3824,.1837,.9957],[.3745,.1958,.9951],[.3667,.2079,.9945],[.3588,.2199,.9939],[.351,.2319,.9932],[.3431,.2439,.9924],[.3353,.2558,.9916],[.3275,.2677,.9908],[.3196,.2796,.99],[.3118,.2914,.9891],[.3039,.3032,.9882],[.2961,.3149,.9872],[.2882,.3265,.9862],[.2804,.3382,.9852],[.2725,.3497,.9841],[.2647,.3612,.983],[.2569,.3727,.9818],[.249,.3841,.9806],[.2412,.3955,.9794],[.2333,.4067,.9781],[.2255,.418,.9768],[.2176,.4291,.9755],[.2098,.4402,.9741],[.202,.4512,.9727],[.1941,.4622,.9713],[.1863,.4731,.9698],[.1784,.4839,.9683],[.1706,.4947,.9667],[.1627,.5053,.9651],[.1549,.5159,.9635],[.1471,.5264,.9618],[.1392,.5369,.9601],[.1314,.5472,.9584],[.1235,.5575,.9566],[.1157,.5677,.9548],[.1078,.5778,.9529],[.1,.5878,.9511],[.0922,.5977,.9491],[.0843,.6075,.9472],[.0765,.6173,.9452],[.0686,.6269,.9432],[.0608,.6365,.9411],[.0529,.6459,.939],[.0451,.6553,.9369],[.0373,.6645,.9347],[.0294,.6737,.9325],[.0216,.6827,.9302],[.0137,.6917,.928],[.0059,.7005,.9256],[.002,.7093,.9233],[.0098,.7179,.9209],[.0176,.7264,.9185],[.0255,.7348,.916],[.0333,.7431,.9135],[.0412,.7513,.911],[.049,.7594,.9085],[.0569,.7674,.9059],[.0647,.7752,.9032],[.0725,.7829,.9006],[.0804,.7905,.8979],[.0882,.798,.8952],[.0961,.8054,.8924],[.1039,.8126,.8896],[.1118,.8197,.8868],[.1196,.8267,.8839],[.1275,.8336,.881],[.1353,.8403,.8781],[.1431,.847,.8751],[.151,.8534,.8721],[.1588,.8598,.8691],[.1667,.866,.866],[.1745,.8721,.8629],[.1824,.8781,.8598],[.1902,.8839,.8566],[.198,.8896,.8534],[.2059,.8952,.8502],[.2137,.9006,.847],[.2216,.9059,.8437],[.2294,.911,.8403],[.2373,.916,.837],[.2451,.9209,.8336],[.2529,.9256,.8302],[.2608,.9302,.8267],[.2686,.9347,.8233],[.2765,.939,.8197],[.2843,.9432,.8162],[.2922,.9472,.8126],[.3,.9511,.809],[.3078,.9548,.8054],[.3157,.9584,.8017],[.3235,.9618,.798],[.3314,.9651,.7943],[.3392,.9683,.7905],[.3471,.9713,.7867],[.3549,.9741,.7829],[.3627,.9768,.7791],[.3706,.9794,.7752],[.3784,.9818,.7713],[.3863,.9841,.7674],[.3941,.9862,.7634],[.402,.9882,.7594],[.4098,.99,.7554],[.4176,.9916,.7513],[.4255,.9932,.7473],[.4333,.9945,.7431],[.4412,.9957,.739],[.449,.9968,.7348],[.4569,.9977,.7307],[.4647,.9985,.7264],[.4725,.9991,.7222],[.4804,.9995,.7179],[.4882,.9998,.7136],[.4961,1,.7093],[.5039,1,.7049],[.5118,.9998,.7005],[.5196,.9995,.6961],[.5275,.9991,.6917],[.5353,.9985,.6872],[.5431,.9977,.6827],[.551,.9968,.6782],[.5588,.9957,.6737],[.5667,.9945,.6691],[.5745,.9932,.6645],[.5824,.9916,.6599],[.5902,.99,.6553],[.598,.9882,.6506],[.6059,.9862,.6459],[.6137,.9841,.6412],[.6216,.9818,.6365],[.6294,.9794,.6317],[.6373,.9768,.6269],[.6451,.9741,.6221],[.6529,.9713,.6173],[.6608,.9683,.6124],[.6686,.9651,.6075],[.6765,.9618,.6026],[.6843,.9584,.5977],[.6922,.9548,.5928],[.7,.9511,.5878],[.7078,.9472,.5828],[.7157,.9432,.5778],[.7235,.939,.5727],[.7314,.9347,.5677],[.7392,.9302,.5626],[.7471,.9256,.5575],[.7549,.9209,.5524],[.7627,.916,.5472],[.7706,.911,.5421],[.7784,.9059,.5369],[.7863,.9006,.5317],[.7941,.8952,.5264],[.802,.8896,.5212],[.8098,.8839,.5159],[.8176,.8781,.5106],[.8255,.8721,.5053],[.8333,.866,.5],[.8412,.8598,.4947],[.849,.8534,.4893],[.8569,.847,.4839],[.8647,.8403,.4785],[.8725,.8336,.4731],[.8804,.8267,.4677],[.8882,.8197,.4622],[.8961,.8126,.4567],[.9039,.8054,.4512],[.9118,.798,.4457],[.9196,.7905,.4402],[.9275,.7829,.4347],[.9353,.7752,.4291],[.9431,.7674,.4235],[.951,.7594,.418],[.9588,.7513,.4124],[.9667,.7431,.4067],[.9745,.7348,.4011],[.9824,.7264,.3955],[.9902,.7179,.3898],[.998,.7093,.3841],[1,.7005,.3784],[1,.6917,.3727],[1,.6827,.367],[1,.6737,.3612],[1,.6645,.3555],[1,.6553,.3497],[1,.6459,.3439],[1,.6365,.3382],[1,.6269,.3324],[1,.6173,.3265],[1,.6075,.3207],[1,.5977,.3149],[1,.5878,.309],[1,.5778,.3032],[1,.5677,.2973],[1,.5575,.2914],[1,.5472,.2855],[1,.5369,.2796],[1,.5264,.2737],[1,.5159,.2677],[1,.5053,.2618],[1,.4947,.2558],[1,.4839,.2499],[1,.4731,.2439],[1,.4622,.2379],[1,.4512,.2319],[1,.4402,.226],[1,.4291,.2199],[1,.418,.2139],[1,.4067,.2079],[1,.3955,.2019],[1,.3841,.1958],[1,.3727,.1898],[1,.3612,.1837],[1,.3497,.1777],[1,.3382,.1716],[1,.3265,.1656],[1,.3149,.1595],[1,.3032,.1534],[1,.2914,.1473],[1,.2796,.1412],[1,.2677,.1351],[1,.2558,.129],[1,.2439,.1229],[1,.2319,.1168],[1,.2199,.1107],[1,.2079,.1045],[1,.1958,.0984],[1,.1837,.0923],[1,.1716,.0861],[1,.1595,.08],[1,.1473,.0739],[1,.1351,.0677],[1,.1229,.0616],[1,.1107,.0554],[1,.0984,.0493],[1,.0861,.0431],[1,.0739,.037],[1,.0616,.0308],[1,.0493,.0246],[1,.037,.0185],[1,.0246,.0123],[1,.0123,.0062],[1,0,0]]};ce.seismic={interpolate:!0,colors:[[0,0,.3],[0,0,.311],[0,0,.322],[0,0,.3329],[0,0,.3439],[0,0,.3549],[0,0,.3659],[0,0,.3769],[0,0,.3878],[0,0,.3988],[0,0,.4098],[0,0,.4208],[0,0,.4318],[0,0,.4427],[0,0,.4537],[0,0,.4647],[0,0,.4757],[0,0,.4867],[0,0,.4976],[0,0,.5086],[0,0,.5196],[0,0,.5306],[0,0,.5416],[0,0,.5525],[0,0,.5635],[0,0,.5745],[0,0,.5855],[0,0,.5965],[0,0,.6075],[0,0,.6184],[0,0,.6294],[0,0,.6404],[0,0,.6514],[0,0,.6624],[0,0,.6733],[0,0,.6843],[0,0,.6953],[0,0,.7063],[0,0,.7173],[0,0,.7282],[0,0,.7392],[0,0,.7502],[0,0,.7612],[0,0,.7722],[0,0,.7831],[0,0,.7941],[0,0,.8051],[0,0,.8161],[0,0,.8271],[0,0,.838],[0,0,.849],[0,0,.86],[0,0,.871],[0,0,.882],[0,0,.8929],[0,0,.9039],[0,0,.9149],[0,0,.9259],[0,0,.9369],[0,0,.9478],[0,0,.9588],[0,0,.9698],[0,0,.9808],[0,0,.9918],[.0039,.0039,1],[.0196,.0196,1],[.0353,.0353,1],[.051,.051,1],[.0667,.0667,1],[.0824,.0824,1],[.098,.098,1],[.1137,.1137,1],[.1294,.1294,1],[.1451,.1451,1],[.1608,.1608,1],[.1765,.1765,1],[.1922,.1922,1],[.2078,.2078,1],[.2235,.2235,1],[.2392,.2392,1],[.2549,.2549,1],[.2706,.2706,1],[.2863,.2863,1],[.302,.302,1],[.3176,.3176,1],[.3333,.3333,1],[.349,.349,1],[.3647,.3647,1],[.3804,.3804,1],[.3961,.3961,1],[.4118,.4118,1],[.4275,.4275,1],[.4431,.4431,1],[.4588,.4588,1],[.4745,.4745,1],[.4902,.4902,1],[.5059,.5059,1],[.5216,.5216,1],[.5373,.5373,1],[.5529,.5529,1],[.5686,.5686,1],[.5843,.5843,1],[.6,.6,1],[.6157,.6157,1],[.6314,.6314,1],[.6471,.6471,1],[.6627,.6627,1],[.6784,.6784,1],[.6941,.6941,1],[.7098,.7098,1],[.7255,.7255,1],[.7412,.7412,1],[.7569,.7569,1],[.7725,.7725,1],[.7882,.7882,1],[.8039,.8039,1],[.8196,.8196,1],[.8353,.8353,1],[.851,.851,1],[.8667,.8667,1],[.8824,.8824,1],[.898,.898,1],[.9137,.9137,1],[.9294,.9294,1],[.9451,.9451,1],[.9608,.9608,1],[.9765,.9765,1],[.9922,.9922,1],[1,.9922,.9922],[1,.9765,.9765],[1,.9608,.9608],[1,.9451,.9451],[1,.9294,.9294],[1,.9137,.9137],[1,.898,.898],[1,.8824,.8824],[1,.8667,.8667],[1,.851,.851],[1,.8353,.8353],[1,.8196,.8196],[1,.8039,.8039],[1,.7882,.7882],[1,.7725,.7725],[1,.7569,.7569],[1,.7412,.7412],[1,.7255,.7255],[1,.7098,.7098],[1,.6941,.6941],[1,.6784,.6784],[1,.6627,.6627],[1,.6471,.6471],[1,.6314,.6314],[1,.6157,.6157],[1,.6,.6],[1,.5843,.5843],[1,.5686,.5686],[1,.5529,.5529],[1,.5373,.5373],[1,.5216,.5216],[1,.5059,.5059],[1,.4902,.4902],[1,.4745,.4745],[1,.4588,.4588],[1,.4431,.4431],[1,.4275,.4275],[1,.4118,.4118],[1,.3961,.3961],[1,.3804,.3804],[1,.3647,.3647],[1,.349,.349],[1,.3333,.3333],[1,.3176,.3176],[1,.302,.302],[1,.2863,.2863],[1,.2706,.2706],[1,.2549,.2549],[1,.2392,.2392],[1,.2235,.2235],[1,.2078,.2078],[1,.1922,.1922],[1,.1765,.1765],[1,.1608,.1608],[1,.1451,.1451],[1,.1294,.1294],[1,.1137,.1137],[1,.098,.098],[1,.0824,.0824],[1,.0667,.0667],[1,.051,.051],[1,.0353,.0353],[1,.0196,.0196],[1,.0039,.0039],[.9941,0,0],[.9863,0,0],[.9784,0,0],[.9706,0,0],[.9627,0,0],[.9549,0,0],[.9471,0,0],[.9392,0,0],[.9314,0,0],[.9235,0,0],[.9157,0,0],[.9078,0,0],[.9,0,0],[.8922,0,0],[.8843,0,0],[.8765,0,0],[.8686,0,0],[.8608,0,0],[.8529,0,0],[.8451,0,0],[.8373,0,0],[.8294,0,0],[.8216,0,0],[.8137,0,0],[.8059,0,0],[.798,0,0],[.7902,0,0],[.7824,0,0],[.7745,0,0],[.7667,0,0],[.7588,0,0],[.751,0,0],[.7431,0,0],[.7353,0,0],[.7275,0,0],[.7196,0,0],[.7118,0,0],[.7039,0,0],[.6961,0,0],[.6882,0,0],[.6804,0,0],[.6725,0,0],[.6647,0,0],[.6569,0,0],[.649,0,0],[.6412,0,0],[.6333,0,0],[.6255,0,0],[.6176,0,0],[.6098,0,0],[.602,0,0],[.5941,0,0],[.5863,0,0],[.5784,0,0],[.5706,0,0],[.5627,0,0],[.5549,0,0],[.5471,0,0],[.5392,0,0],[.5314,0,0],[.5235,0,0],[.5157,0,0],[.5078,0,0],[.5,0,0]]};ce.spring={interpolate:!0,colors:[[1,0,1],[1,.0039,.9961],[1,.0078,.9922],[1,.0118,.9882],[1,.0157,.9843],[1,.0196,.9804],[1,.0235,.9765],[1,.0275,.9725],[1,.0314,.9686],[1,.0353,.9647],[1,.0392,.9608],[1,.0431,.9569],[1,.0471,.9529],[1,.051,.949],[1,.0549,.9451],[1,.0588,.9412],[1,.0627,.9373],[1,.0667,.9333],[1,.0706,.9294],[1,.0745,.9255],[1,.0784,.9216],[1,.0824,.9176],[1,.0863,.9137],[1,.0902,.9098],[1,.0941,.9059],[1,.098,.902],[1,.102,.898],[1,.1059,.8941],[1,.1098,.8902],[1,.1137,.8863],[1,.1176,.8824],[1,.1216,.8784],[1,.1255,.8745],[1,.1294,.8706],[1,.1333,.8667],[1,.1373,.8627],[1,.1412,.8588],[1,.1451,.8549],[1,.149,.851],[1,.1529,.8471],[1,.1569,.8431],[1,.1608,.8392],[1,.1647,.8353],[1,.1686,.8314],[1,.1725,.8275],[1,.1765,.8235],[1,.1804,.8196],[1,.1843,.8157],[1,.1882,.8118],[1,.1922,.8078],[1,.1961,.8039],[1,.2,.8],[1,.2039,.7961],[1,.2078,.7922],[1,.2118,.7882],[1,.2157,.7843],[1,.2196,.7804],[1,.2235,.7765],[1,.2275,.7725],[1,.2314,.7686],[1,.2353,.7647],[1,.2392,.7608],[1,.2431,.7569],[1,.2471,.7529],[1,.251,.749],[1,.2549,.7451],[1,.2588,.7412],[1,.2627,.7373],[1,.2667,.7333],[1,.2706,.7294],[1,.2745,.7255],[1,.2784,.7216],[1,.2824,.7176],[1,.2863,.7137],[1,.2902,.7098],[1,.2941,.7059],[1,.298,.702],[1,.302,.698],[1,.3059,.6941],[1,.3098,.6902],[1,.3137,.6863],[1,.3176,.6824],[1,.3216,.6784],[1,.3255,.6745],[1,.3294,.6706],[1,.3333,.6667],[1,.3373,.6627],[1,.3412,.6588],[1,.3451,.6549],[1,.349,.651],[1,.3529,.6471],[1,.3569,.6431],[1,.3608,.6392],[1,.3647,.6353],[1,.3686,.6314],[1,.3725,.6275],[1,.3765,.6235],[1,.3804,.6196],[1,.3843,.6157],[1,.3882,.6118],[1,.3922,.6078],[1,.3961,.6039],[1,.4,.6],[1,.4039,.5961],[1,.4078,.5922],[1,.4118,.5882],[1,.4157,.5843],[1,.4196,.5804],[1,.4235,.5765],[1,.4275,.5725],[1,.4314,.5686],[1,.4353,.5647],[1,.4392,.5608],[1,.4431,.5569],[1,.4471,.5529],[1,.451,.549],[1,.4549,.5451],[1,.4588,.5412],[1,.4627,.5373],[1,.4667,.5333],[1,.4706,.5294],[1,.4745,.5255],[1,.4784,.5216],[1,.4824,.5176],[1,.4863,.5137],[1,.4902,.5098],[1,.4941,.5059],[1,.498,.502],[1,.502,.498],[1,.5059,.4941],[1,.5098,.4902],[1,.5137,.4863],[1,.5176,.4824],[1,.5216,.4784],[1,.5255,.4745],[1,.5294,.4706],[1,.5333,.4667],[1,.5373,.4627],[1,.5412,.4588],[1,.5451,.4549],[1,.549,.451],[1,.5529,.4471],[1,.5569,.4431],[1,.5608,.4392],[1,.5647,.4353],[1,.5686,.4314],[1,.5725,.4275],[1,.5765,.4235],[1,.5804,.4196],[1,.5843,.4157],[1,.5882,.4118],[1,.5922,.4078],[1,.5961,.4039],[1,.6,.4],[1,.6039,.3961],[1,.6078,.3922],[1,.6118,.3882],[1,.6157,.3843],[1,.6196,.3804],[1,.6235,.3765],[1,.6275,.3725],[1,.6314,.3686],[1,.6353,.3647],[1,.6392,.3608],[1,.6431,.3569],[1,.6471,.3529],[1,.651,.349],[1,.6549,.3451],[1,.6588,.3412],[1,.6627,.3373],[1,.6667,.3333],[1,.6706,.3294],[1,.6745,.3255],[1,.6784,.3216],[1,.6824,.3176],[1,.6863,.3137],[1,.6902,.3098],[1,.6941,.3059],[1,.698,.302],[1,.702,.298],[1,.7059,.2941],[1,.7098,.2902],[1,.7137,.2863],[1,.7176,.2824],[1,.7216,.2784],[1,.7255,.2745],[1,.7294,.2706],[1,.7333,.2667],[1,.7373,.2627],[1,.7412,.2588],[1,.7451,.2549],[1,.749,.251],[1,.7529,.2471],[1,.7569,.2431],[1,.7608,.2392],[1,.7647,.2353],[1,.7686,.2314],[1,.7725,.2275],[1,.7765,.2235],[1,.7804,.2196],[1,.7843,.2157],[1,.7882,.2118],[1,.7922,.2078],[1,.7961,.2039],[1,.8,.2],[1,.8039,.1961],[1,.8078,.1922],[1,.8118,.1882],[1,.8157,.1843],[1,.8196,.1804],[1,.8235,.1765],[1,.8275,.1725],[1,.8314,.1686],[1,.8353,.1647],[1,.8392,.1608],[1,.8431,.1569],[1,.8471,.1529],[1,.851,.149],[1,.8549,.1451],[1,.8588,.1412],[1,.8627,.1373],[1,.8667,.1333],[1,.8706,.1294],[1,.8745,.1255],[1,.8784,.1216],[1,.8824,.1176],[1,.8863,.1137],[1,.8902,.1098],[1,.8941,.1059],[1,.898,.102],[1,.902,.098],[1,.9059,.0941],[1,.9098,.0902],[1,.9137,.0863],[1,.9176,.0824],[1,.9216,.0784],[1,.9255,.0745],[1,.9294,.0706],[1,.9333,.0667],[1,.9373,.0627],[1,.9412,.0588],[1,.9451,.0549],[1,.949,.051],[1,.9529,.0471],[1,.9569,.0431],[1,.9608,.0392],[1,.9647,.0353],[1,.9686,.0314],[1,.9725,.0275],[1,.9765,.0235],[1,.9804,.0196],[1,.9843,.0157],[1,.9882,.0118],[1,.9922,.0078],[1,.9961,.0039],[1,1,0]]};ce.summer={interpolate:!0,colors:[[0,.5,.4],[.0039,.502,.4],[.0078,.5039,.4],[.0118,.5059,.4],[.0157,.5078,.4],[.0196,.5098,.4],[.0235,.5118,.4],[.0275,.5137,.4],[.0314,.5157,.4],[.0353,.5176,.4],[.0392,.5196,.4],[.0431,.5216,.4],[.0471,.5235,.4],[.051,.5255,.4],[.0549,.5275,.4],[.0588,.5294,.4],[.0627,.5314,.4],[.0667,.5333,.4],[.0706,.5353,.4],[.0745,.5373,.4],[.0784,.5392,.4],[.0824,.5412,.4],[.0863,.5431,.4],[.0902,.5451,.4],[.0941,.5471,.4],[.098,.549,.4],[.102,.551,.4],[.1059,.5529,.4],[.1098,.5549,.4],[.1137,.5569,.4],[.1176,.5588,.4],[.1216,.5608,.4],[.1255,.5627,.4],[.1294,.5647,.4],[.1333,.5667,.4],[.1373,.5686,.4],[.1412,.5706,.4],[.1451,.5725,.4],[.149,.5745,.4],[.1529,.5765,.4],[.1569,.5784,.4],[.1608,.5804,.4],[.1647,.5824,.4],[.1686,.5843,.4],[.1725,.5863,.4],[.1765,.5882,.4],[.1804,.5902,.4],[.1843,.5922,.4],[.1882,.5941,.4],[.1922,.5961,.4],[.1961,.598,.4],[.2,.6,.4],[.2039,.602,.4],[.2078,.6039,.4],[.2118,.6059,.4],[.2157,.6078,.4],[.2196,.6098,.4],[.2235,.6118,.4],[.2275,.6137,.4],[.2314,.6157,.4],[.2353,.6176,.4],[.2392,.6196,.4],[.2431,.6216,.4],[.2471,.6235,.4],[.251,.6255,.4],[.2549,.6275,.4],[.2588,.6294,.4],[.2627,.6314,.4],[.2667,.6333,.4],[.2706,.6353,.4],[.2745,.6373,.4],[.2784,.6392,.4],[.2824,.6412,.4],[.2863,.6431,.4],[.2902,.6451,.4],[.2941,.6471,.4],[.298,.649,.4],[.302,.651,.4],[.3059,.6529,.4],[.3098,.6549,.4],[.3137,.6569,.4],[.3176,.6588,.4],[.3216,.6608,.4],[.3255,.6627,.4],[.3294,.6647,.4],[.3333,.6667,.4],[.3373,.6686,.4],[.3412,.6706,.4],[.3451,.6725,.4],[.349,.6745,.4],[.3529,.6765,.4],[.3569,.6784,.4],[.3608,.6804,.4],[.3647,.6824,.4],[.3686,.6843,.4],[.3725,.6863,.4],[.3765,.6882,.4],[.3804,.6902,.4],[.3843,.6922,.4],[.3882,.6941,.4],[.3922,.6961,.4],[.3961,.698,.4],[.4,.7,.4],[.4039,.702,.4],[.4078,.7039,.4],[.4118,.7059,.4],[.4157,.7078,.4],[.4196,.7098,.4],[.4235,.7118,.4],[.4275,.7137,.4],[.4314,.7157,.4],[.4353,.7176,.4],[.4392,.7196,.4],[.4431,.7216,.4],[.4471,.7235,.4],[.451,.7255,.4],[.4549,.7275,.4],[.4588,.7294,.4],[.4627,.7314,.4],[.4667,.7333,.4],[.4706,.7353,.4],[.4745,.7373,.4],[.4784,.7392,.4],[.4824,.7412,.4],[.4863,.7431,.4],[.4902,.7451,.4],[.4941,.7471,.4],[.498,.749,.4],[.502,.751,.4],[.5059,.7529,.4],[.5098,.7549,.4],[.5137,.7569,.4],[.5176,.7588,.4],[.5216,.7608,.4],[.5255,.7627,.4],[.5294,.7647,.4],[.5333,.7667,.4],[.5373,.7686,.4],[.5412,.7706,.4],[.5451,.7725,.4],[.549,.7745,.4],[.5529,.7765,.4],[.5569,.7784,.4],[.5608,.7804,.4],[.5647,.7824,.4],[.5686,.7843,.4],[.5725,.7863,.4],[.5765,.7882,.4],[.5804,.7902,.4],[.5843,.7922,.4],[.5882,.7941,.4],[.5922,.7961,.4],[.5961,.798,.4],[.6,.8,.4],[.6039,.802,.4],[.6078,.8039,.4],[.6118,.8059,.4],[.6157,.8078,.4],[.6196,.8098,.4],[.6235,.8118,.4],[.6275,.8137,.4],[.6314,.8157,.4],[.6353,.8176,.4],[.6392,.8196,.4],[.6431,.8216,.4],[.6471,.8235,.4],[.651,.8255,.4],[.6549,.8275,.4],[.6588,.8294,.4],[.6627,.8314,.4],[.6667,.8333,.4],[.6706,.8353,.4],[.6745,.8373,.4],[.6784,.8392,.4],[.6824,.8412,.4],[.6863,.8431,.4],[.6902,.8451,.4],[.6941,.8471,.4],[.698,.849,.4],[.702,.851,.4],[.7059,.8529,.4],[.7098,.8549,.4],[.7137,.8569,.4],[.7176,.8588,.4],[.7216,.8608,.4],[.7255,.8627,.4],[.7294,.8647,.4],[.7333,.8667,.4],[.7373,.8686,.4],[.7412,.8706,.4],[.7451,.8725,.4],[.749,.8745,.4],[.7529,.8765,.4],[.7569,.8784,.4],[.7608,.8804,.4],[.7647,.8824,.4],[.7686,.8843,.4],[.7725,.8863,.4],[.7765,.8882,.4],[.7804,.8902,.4],[.7843,.8922,.4],[.7882,.8941,.4],[.7922,.8961,.4],[.7961,.898,.4],[.8,.9,.4],[.8039,.902,.4],[.8078,.9039,.4],[.8118,.9059,.4],[.8157,.9078,.4],[.8196,.9098,.4],[.8235,.9118,.4],[.8275,.9137,.4],[.8314,.9157,.4],[.8353,.9176,.4],[.8392,.9196,.4],[.8431,.9216,.4],[.8471,.9235,.4],[.851,.9255,.4],[.8549,.9275,.4],[.8588,.9294,.4],[.8627,.9314,.4],[.8667,.9333,.4],[.8706,.9353,.4],[.8745,.9373,.4],[.8784,.9392,.4],[.8824,.9412,.4],[.8863,.9431,.4],[.8902,.9451,.4],[.8941,.9471,.4],[.898,.949,.4],[.902,.951,.4],[.9059,.9529,.4],[.9098,.9549,.4],[.9137,.9569,.4],[.9176,.9588,.4],[.9216,.9608,.4],[.9255,.9627,.4],[.9294,.9647,.4],[.9333,.9667,.4],[.9373,.9686,.4],[.9412,.9706,.4],[.9451,.9725,.4],[.949,.9745,.4],[.9529,.9765,.4],[.9569,.9784,.4],[.9608,.9804,.4],[.9647,.9824,.4],[.9686,.9843,.4],[.9725,.9863,.4],[.9765,.9882,.4],[.9804,.9902,.4],[.9843,.9922,.4],[.9882,.9941,.4],[.9922,.9961,.4],[.9961,.998,.4],[1,1,.4]]};ce.tab10={interpolate:!1,colors:[[.1216,.4667,.7059],[1,.498,.0549],[.1725,.6275,.1725],[.8392,.1529,.1569],[.5804,.4039,.7412],[.549,.3373,.2941],[.8902,.4667,.7608],[.498,.498,.498],[.7373,.7412,.1333],[.0902,.7451,.8118]]};ce.tab20={interpolate:!1,colors:[[.1216,.4667,.7059],[.6824,.7804,.9098],[1,.498,.0549],[1,.7333,.4706],[.1725,.6275,.1725],[.5961,.8745,.5412],[.8392,.1529,.1569],[1,.5961,.5882],[.5804,.4039,.7412],[.7725,.6902,.8353],[.549,.3373,.2941],[.7686,.6118,.5804],[.8902,.4667,.7608],[.9686,.7137,.8235],[.498,.498,.498],[.7804,.7804,.7804],[.7373,.7412,.1333],[.8588,.8588,.5529],[.0902,.7451,.8118],[.6196,.8549,.898]]};ce.tab20b={interpolate:!1,colors:[[.2235,.2314,.4745],[.3216,.3294,.6392],[.4196,.4314,.8118],[.6118,.6196,.8706],[.3882,.4745,.2235],[.549,.6353,.3216],[.7098,.8118,.4196],[.8078,.8588,.6118],[.549,.4275,.1922],[.7412,.6196,.2235],[.9059,.7294,.3216],[.9059,.7961,.5804],[.5176,.2353,.2235],[.6784,.2863,.2902],[.8392,.3804,.4196],[.9059,.5882,.6118],[.4824,.2549,.451],[.6471,.3176,.5804],[.8078,.4275,.7412],[.8706,.6196,.8392]]};ce.tab20c={interpolate:!1,colors:[[.1922,.5098,.7412],[.4196,.6824,.8392],[.6196,.7922,.8824],[.7765,.8588,.9373],[.902,.3333,.051],[.9922,.5529,.2353],[.9922,.6824,.4196],[.9922,.8157,.6353],[.1922,.6392,.3294],[.4549,.7686,.4627],[.6314,.851,.6078],[.7804,.9137,.7529],[.4588,.4196,.6941],[.6196,.6039,.7843],[.7373,.7412,.8627],[.8549,.8549,.9216],[.3882,.3882,.3882],[.5882,.5882,.5882],[.7412,.7412,.7412],[.851,.851,.851]]};ce.terrain={interpolate:!0,colors:[[.2,.2,.6],[.1948,.2105,.6105],[.1895,.2209,.6209],[.1843,.2314,.6314],[.1791,.2418,.6418],[.1739,.2523,.6523],[.1686,.2627,.6627],[.1634,.2732,.6732],[.1582,.2837,.6837],[.1529,.2941,.6941],[.1477,.3046,.7046],[.1425,.315,.715],[.1373,.3255,.7255],[.132,.3359,.7359],[.1268,.3464,.7464],[.1216,.3569,.7569],[.1163,.3673,.7673],[.1111,.3778,.7778],[.1059,.3882,.7882],[.1007,.3987,.7987],[.0954,.4092,.8092],[.0902,.4196,.8196],[.085,.4301,.8301],[.0797,.4405,.8405],[.0745,.451,.851],[.0693,.4614,.8614],[.0641,.4719,.8719],[.0588,.4824,.8824],[.0536,.4928,.8928],[.0484,.5033,.9033],[.0431,.5137,.9137],[.0379,.5242,.9242],[.0327,.5346,.9346],[.0275,.5451,.9451],[.0222,.5556,.9556],[.017,.566,.966],[.0118,.5765,.9765],[.0065,.5869,.9869],[.0013,.5974,.9974],[0,.6059,.9824],[0,.6137,.9588],[0,.6216,.9353],[0,.6294,.9118],[0,.6373,.8882],[0,.6451,.8647],[0,.6529,.8412],[0,.6608,.8176],[0,.6686,.7941],[0,.6765,.7706],[0,.6843,.7471],[0,.6922,.7235],[0,.7,.7],[0,.7078,.6765],[0,.7157,.6529],[0,.7235,.6294],[0,.7314,.6059],[0,.7392,.5824],[0,.7471,.5588],[0,.7549,.5353],[0,.7627,.5118],[0,.7706,.4882],[0,.7784,.4647],[0,.7863,.4412],[0,.7941,.4176],[.0039,.8008,.4008],[.0196,.8039,.4039],[.0353,.8071,.4071],[.051,.8102,.4102],[.0667,.8133,.4133],[.0824,.8165,.4165],[.098,.8196,.4196],[.1137,.8227,.4227],[.1294,.8259,.4259],[.1451,.829,.429],[.1608,.8322,.4322],[.1765,.8353,.4353],[.1922,.8384,.4384],[.2078,.8416,.4416],[.2235,.8447,.4447],[.2392,.8478,.4478],[.2549,.851,.451],[.2706,.8541,.4541],[.2863,.8573,.4573],[.302,.8604,.4604],[.3176,.8635,.4635],[.3333,.8667,.4667],[.349,.8698,.4698],[.3647,.8729,.4729],[.3804,.8761,.4761],[.3961,.8792,.4792],[.4118,.8824,.4824],[.4275,.8855,.4855],[.4431,.8886,.4886],[.4588,.8918,.4918],[.4745,.8949,.4949],[.4902,.898,.498],[.5059,.9012,.5012],[.5216,.9043,.5043],[.5373,.9075,.5075],[.5529,.9106,.5106],[.5686,.9137,.5137],[.5843,.9169,.5169],[.6,.92,.52],[.6157,.9231,.5231],[.6314,.9263,.5263],[.6471,.9294,.5294],[.6627,.9325,.5325],[.6784,.9357,.5357],[.6941,.9388,.5388],[.7098,.942,.542],[.7255,.9451,.5451],[.7412,.9482,.5482],[.7569,.9514,.5514],[.7725,.9545,.5545],[.7882,.9576,.5576],[.8039,.9608,.5608],[.8196,.9639,.5639],[.8353,.9671,.5671],[.851,.9702,.5702],[.8667,.9733,.5733],[.8824,.9765,.5765],[.898,.9796,.5796],[.9137,.9827,.5827],[.9294,.9859,.5859],[.9451,.989,.589],[.9608,.9922,.5922],[.9765,.9953,.5953],[.9922,.9984,.5984],[.9961,.995,.5979],[.9882,.9849,.5936],[.9804,.9749,.5894],[.9725,.9649,.5852],[.9647,.9548,.5809],[.9569,.9448,.5767],[.949,.9347,.5725],[.9412,.9247,.5682],[.9333,.9147,.564],[.9255,.9046,.5598],[.9176,.8946,.5555],[.9098,.8845,.5513],[.902,.8745,.5471],[.8941,.8645,.5428],[.8863,.8544,.5386],[.8784,.8444,.5344],[.8706,.8344,.5301],[.8627,.8243,.5259],[.8549,.8143,.5216],[.8471,.8042,.5174],[.8392,.7942,.5132],[.8314,.7842,.5089],[.8235,.7741,.5047],[.8157,.7641,.5005],[.8078,.754,.4962],[.8,.744,.492],[.7922,.734,.4878],[.7843,.7239,.4835],[.7765,.7139,.4793],[.7686,.7038,.4751],[.7608,.6938,.4708],[.7529,.6838,.4666],[.7451,.6737,.4624],[.7373,.6637,.4581],[.7294,.6536,.4539],[.7216,.6436,.4496],[.7137,.6336,.4454],[.7059,.6235,.4412],[.698,.6135,.4369],[.6902,.6035,.4327],[.6824,.5934,.4285],[.6745,.5834,.4242],[.6667,.5733,.42],[.6588,.5633,.4158],[.651,.5533,.4115],[.6431,.5432,.4073],[.6353,.5332,.4031],[.6275,.5231,.3988],[.6196,.5131,.3946],[.6118,.5031,.3904],[.6039,.493,.3861],[.5961,.483,.3819],[.5882,.4729,.3776],[.5804,.4629,.3734],[.5725,.4529,.3692],[.5647,.4428,.3649],[.5569,.4328,.3607],[.549,.4227,.3565],[.5412,.4127,.3522],[.5333,.4027,.348],[.5255,.3926,.3438],[.5176,.3826,.3395],[.5098,.3725,.3353],[.502,.3625,.3311],[.5059,.3675,.3379],[.5137,.3776,.3484],[.5216,.3876,.3589],[.5294,.3976,.3694],[.5373,.4077,.3799],[.5451,.4177,.3904],[.5529,.4278,.4009],[.5608,.4378,.4115],[.5686,.4478,.422],[.5765,.4579,.4325],[.5843,.4679,.443],[.5922,.478,.4535],[.6,.488,.464],[.6078,.498,.4745],[.6157,.5081,.485],[.6235,.5181,.4955],[.6314,.5282,.506],[.6392,.5382,.5165],[.6471,.5482,.5271],[.6549,.5583,.5376],[.6627,.5683,.5481],[.6706,.5784,.5586],[.6784,.5884,.5691],[.6863,.5984,.5796],[.6941,.6085,.5901],[.702,.6185,.6006],[.7098,.6285,.6111],[.7176,.6386,.6216],[.7255,.6486,.6322],[.7333,.6587,.6427],[.7412,.6687,.6532],[.749,.6787,.6637],[.7569,.6888,.6742],[.7647,.6988,.6847],[.7725,.7089,.6952],[.7804,.7189,.7057],[.7882,.7289,.7162],[.7961,.739,.7267],[.8039,.749,.7373],[.8118,.7591,.7478],[.8196,.7691,.7583],[.8275,.7791,.7688],[.8353,.7892,.7793],[.8431,.7992,.7898],[.851,.8093,.8003],[.8588,.8193,.8108],[.8667,.8293,.8213],[.8745,.8394,.8318],[.8824,.8494,.8424],[.8902,.8595,.8529],[.898,.8695,.8634],[.9059,.8795,.8739],[.9137,.8896,.8844],[.9216,.8996,.8949],[.9294,.9096,.9054],[.9373,.9197,.9159],[.9451,.9297,.9264],[.9529,.9398,.9369],[.9608,.9498,.9475],[.9686,.9598,.958],[.9765,.9699,.9685],[.9843,.9799,.979],[.9922,.99,.9895],[1,1,1]]};ce.turbo={interpolate:!0,colors:[[.19,.0718,.2322],[.1948,.0834,.2615],[.1996,.095,.2902],[.2042,.1065,.3184],[.2086,.118,.3461],[.2129,.1295,.3731],[.2171,.1409,.3996],[.2211,.1522,.4256],[.225,.1635,.451],[.2288,.1748,.4758],[.2324,.186,.5],[.2358,.1972,.5237],[.2392,.2083,.5469],[.2423,.2194,.5694],[.2454,.2304,.5914],[.2483,.2414,.6129],[.2511,.2524,.6337],[.2537,.2633,.6541],[.2562,.2741,.6738],[.2585,.2849,.693],[.2607,.2957,.7116],[.2628,.3064,.7297],[.2647,.3171,.7472],[.2665,.3277,.7641],[.2682,.3382,.7805],[.2697,.3488,.7963],[.271,.3593,.8116],[.2723,.3697,.8262],[.2733,.3801,.8404],[.2743,.3904,.8539],[.2751,.4007,.8669],[.2758,.411,.8794],[.2763,.4212,.8912],[.2767,.4313,.9025],[.2769,.4414,.9133],[.277,.4515,.9235],[.277,.4615,.9331],[.2768,.4715,.9421],[.2765,.4814,.9506],[.276,.4913,.9586],[.2754,.5012,.9659],[.2747,.5109,.9728],[.2738,.5207,.979],[.2727,.5304,.9846],[.2711,.5402,.9893],[.2688,.55,.993],[.2659,.5598,.9958],[.2625,.5697,.9977],[.2586,.5796,.9988],[.2542,.5895,.999],[.2495,.5994,.9984],[.2443,.6094,.997],[.2387,.6193,.9948],[.2329,.6292,.992],[.2268,.6391,.9885],[.2204,.649,.9844],[.2138,.6589,.9796],[.2071,.6687,.9742],[.2002,.6784,.9683],[.1933,.6881,.9619],[.1862,.6978,.955],[.1792,.7073,.9476],[.1722,.7168,.9398],[.1653,.7262,.9316],[.1584,.7355,.923],[.1517,.7447,.9142],[.1452,.7538,.905],[.1389,.7628,.8955],[.1328,.7716,.8858],[.127,.7804,.8759],[.1215,.789,.8658],[.1164,.7974,.8556],[.1117,.8057,.8452],[.1074,.8138,.8348],[.1036,.8218,.8244],[.1003,.8296,.8139],[.0975,.8371,.8034],[.0953,.8446,.793],[.0938,.8518,.7826],[.0929,.8588,.7724],[.0927,.8655,.7623],[.0932,.8721,.7524],[.0945,.8784,.7426],[.0966,.8845,.7332],[.0996,.8904,.7239],[.1034,.896,.715],[.1082,.9014,.706],[.1137,.9067,.6965],[.1201,.9119,.6866],[.1273,.917,.6763],[.1353,.922,.6656],[.1439,.9268,.6545],[.1532,.9315,.6431],[.1632,.9361,.6314],[.1738,.9405,.6194],[.1849,.9448,.6071],[.1966,.949,.5947],[.2088,.953,.582],[.2214,.9569,.5691],[.2345,.9606,.5561],[.248,.9642,.543],[.2618,.9676,.5298],[.276,.9709,.5165],[.2904,.974,.5032],[.3051,.977,.4899],[.3201,.9797,.4765],[.3352,.9823,.4632],[.3504,.9848,.45],[.3658,.987,.4369],[.3813,.9891,.4239],[.3968,.991,.411],[.4123,.9927,.3983],[.4278,.9942,.3858],[.4432,.9955,.3734],[.4585,.9966,.3614],[.4738,.9976,.3496],[.4888,.9983,.3382],[.5036,.9988,.327],[.5182,.9991,.3162],[.5326,.9992,.3058],[.5466,.9991,.2958],[.5603,.9987,.2862],[.5736,.9982,.2771],[.5865,.9974,.2685],[.5989,.9964,.2604],[.6109,.9951,.2528],[.6223,.9937,.2458],[.6332,.992,.2394],[.6436,.99,.2336],[.6539,.9878,.2284],[.6643,.9852,.2237],[.6746,.9825,.2196],[.6849,.9794,.216],[.6952,.9761,.2129],[.7055,.9726,.2103],[.7158,.9688,.2082],[.726,.9647,.2064],[.7361,.9604,.205],[.7462,.9559,.2041],[.7562,.9512,.2034],[.7661,.9463,.2031],[.7759,.9411,.2031],[.7856,.9358,.2034],[.7952,.9302,.2039],[.8047,.9245,.2046],[.8141,.9186,.2055],[.8233,.9125,.2066],[.8324,.9063,.2079],[.8413,.8999,.2093],[.8501,.8933,.2107],[.8587,.8866,.2123],[.8671,.8797,.2139],[.8753,.8727,.2156],[.8833,.8655,.2172],[.8911,.8583,.2188],[.8987,.8509,.2204],[.906,.8434,.2219],[.9132,.8358,.2233],[.92,.8281,.2246],[.9267,.8202,.2257],[.933,.8124,.2267],[.9391,.8044,.2274],[.9449,.7963,.228],[.9504,.7882,.2283],[.9556,.78,.2284],[.9605,.7718,.2281],[.9651,.7635,.2275],[.9693,.7552,.2266],[.9732,.7468,.2254],[.9768,.7384,.2237],[.98,.73,.2216],[.9829,.7214,.2192],[.9855,.7125,.2165],[.9878,.7033,.2136],[.9899,.6938,.2104],[.9916,.6841,.2071],[.9931,.6741,.2035],[.9944,.6639,.1997],[.9954,.6534,.1958],[.9961,.6428,.1916],[.9965,.6319,.1874],[.9968,.6209,.183],[.9967,.6098,.1784],[.9964,.5985,.1738],[.9959,.587,.169],[.9952,.5755,.1641],[.9942,.5639,.1592],[.993,.5521,.1542],[.9915,.5404,.1491],[.9899,.5285,.144],[.988,.5167,.1388],[.9859,.5048,.1337],[.9836,.4929,.1285],[.9811,.481,.1233],[.9784,.4692,.1182],[.9754,.4574,.113],[.9723,.4456,.108],[.969,.434,.1029],[.9656,.4224,.098],[.9619,.4109,.0931],[.958,.3996,.0883],[.954,.3884,.0836],[.9498,.3773,.079],[.9454,.3664,.0746],[.9408,.3557,.0703],[.9361,.3451,.0662],[.9312,.3348,.0622],[.9262,.3247,.0584],[.921,.3149,.0548],[.9157,.3053,.0513],[.9102,.296,.0481],[.9046,.287,.0452],[.8989,.2782,.0424],[.893,.2698,.0399],[.8869,.2615,.0375],[.8807,.2533,.0352],[.8742,.2453,.033],[.8676,.2373,.0308],[.8608,.2294,.0288],[.8538,.2217,.0268],[.8466,.2141,.0249],[.8393,.2065,.023],[.8317,.1991,.0213],[.824,.1918,.0197],[.8161,.1846,.0181],[.808,.1775,.0166],[.7997,.1706,.0152],[.7912,.1637,.0139],[.7826,.1569,.0126],[.7738,.1503,.0115],[.7648,.1437,.0104],[.7556,.1373,.0094],[.7462,.131,.0085],[.7366,.1248,.0077],[.7269,.1187,.007],[.7169,.1127,.0063],[.7068,.1068,.0057],[.6965,.101,.0052],[.686,.0954,.0048],[.6754,.0898,.0045],[.6645,.0844,.0042],[.6534,.079,.0041],[.6422,.0738,.004],[.6308,.0687,.004],[.6192,.0637,.0041],[.6075,.0588,.0043],[.5955,.054,.0045],[.5834,.0493,.0049],[.571,.0447,.0053],[.5585,.0403,.0058],[.5458,.0359,.0064],[.533,.0317,.007],[.5199,.0276,.0078],[.5066,.0235,.0086],[.4932,.0196,.0096],[.4796,.0158,.0106]]};ce.twilight={interpolate:!0,colors:[[.8858,.85,.888],[.8838,.8507,.8872],[.8817,.8513,.8864],[.8795,.8517,.8854],[.8772,.8519,.8843],[.8749,.8519,.8832],[.8723,.8518,.8819],[.8697,.8515,.8805],[.867,.8511,.8791],[.8641,.8505,.8776],[.8611,.8498,.876],[.858,.8489,.8743],[.8547,.8479,.8726],[.8513,.8467,.8709],[.8478,.8455,.869],[.8441,.8441,.8672],[.8403,.8426,.8653],[.8363,.8409,.8633],[.8322,.8392,.8613],[.828,.8374,.8592],[.8236,.8355,.8571],[.819,.8335,.855],[.8144,.8315,.8528],[.8096,.8293,.8506],[.8047,.8271,.8484],[.7997,.8248,.8462],[.7945,.8225,.8439],[.7893,.82,.8416],[.784,.8176,.8394],[.7786,.815,.8371],[.7731,.8124,.8348],[.7675,.8098,.8325],[.7619,.8071,.8303],[.7562,.8044,.828],[.7504,.8016,.8258],[.7446,.7988,.8236],[.7387,.796,.8214],[.7328,.7931,.8193],[.7269,.7902,.8172],[.721,.7872,.8151],[.715,.7843,.8131],[.709,.7813,.8111],[.703,.7782,.8092],[.697,.7752,.8073],[.691,.7721,.8055],[.6851,.769,.8037],[.6791,.7658,.802],[.6731,.7627,.8003],[.6672,.7595,.7986],[.6613,.7563,.797],[.6554,.7531,.7955],[.6496,.7499,.794],[.6438,.7466,.7926],[.638,.7433,.7912],[.6323,.74,.7898],[.6266,.7367,.7885],[.621,.7334,.7872],[.6154,.73,.786],[.6099,.7267,.7847],[.6044,.7233,.7836],[.599,.7199,.7825],[.5936,.7165,.7814],[.5883,.713,.7803],[.583,.7096,.7793],[.5778,.7061,.7783],[.5727,.7027,.7773],[.5676,.6992,.7763],[.5626,.6957,.7754],[.5576,.6922,.7745],[.5527,.6886,.7736],[.5478,.6851,.7728],[.5431,.6815,.7719],[.5383,.678,.7711],[.5337,.6744,.7703],[.5291,.6708,.7696],[.5246,.6672,.7688],[.5201,.6636,.7681],[.5157,.6599,.7673],[.5114,.6563,.7666],[.5071,.6526,.7659],[.5029,.649,.7652],[.4987,.6453,.7645],[.4947,.6416,.7639],[.4907,.6379,.7632],[.4867,.6342,.7626],[.4829,.6304,.7619],[.4791,.6267,.7613],[.4753,.6229,.7607],[.4717,.6192,.76],[.4681,.6154,.7594],[.4646,.6116,.7588],[.4611,.6078,.7582],[.4577,.6039,.7576],[.4544,.6001,.757],[.4512,.5962,.7564],[.448,.5924,.7557],[.4449,.5885,.7551],[.4419,.5846,.7545],[.439,.5807,.7539],[.4361,.5768,.7533],[.4333,.5729,.7527],[.4306,.5689,.752],[.4279,.565,.7514],[.4253,.561,.7508],[.4228,.557,.7501],[.4204,.553,.7494],[.418,.549,.7488],[.4157,.5449,.7481],[.4135,.5409,.7474],[.4114,.5368,.7467],[.4093,.5328,.746],[.4073,.5287,.7452],[.4053,.5246,.7445],[.4035,.5205,.7437],[.4017,.5164,.743],[.3999,.5122,.7422],[.3983,.5081,.7414],[.3967,.5039,.7405],[.3951,.4997,.7397],[.3937,.4955,.7388],[.3923,.4913,.7379],[.3909,.4871,.737],[.3896,.4828,.736],[.3884,.4786,.7351],[.3872,.4743,.7341],[.3861,.47,.7331],[.3851,.4657,.732],[.3841,.4614,.7309],[.3831,.4571,.7298],[.3822,.4527,.7287],[.3814,.4484,.7276],[.3806,.444,.7264],[.3798,.4396,.7251],[.3791,.4352,.7239],[.3784,.4308,.7226],[.3778,.4264,.7213],[.3772,.4219,.7199],[.3766,.4175,.7185],[.3761,.413,.7171],[.3756,.4086,.7156],[.3751,.4041,.7141],[.3747,.3996,.7126],[.3743,.395,.711],[.3739,.3905,.7094],[.3736,.386,.7077],[.3732,.3814,.706],[.3729,.3768,.7042],[.3726,.3723,.7024],[.3724,.3677,.7006],[.3721,.3631,.6987],[.3719,.3584,.6968],[.3716,.3538,.6948],[.3714,.3492,.6927],[.3712,.3445,.6907],[.3709,.3399,.6885],[.3707,.3352,.6863],[.3705,.3305,.6841],[.3703,.3258,.6818],[.3701,.3211,.6794],[.3699,.3164,.677],[.3697,.3117,.6746],[.3694,.3069,.6721],[.3692,.3022,.6695],[.369,.2974,.6668],[.3687,.2927,.6641],[.3684,.2879,.6613],[.3681,.2832,.6585],[.3678,.2784,.6556],[.3675,.2736,.6526],[.3672,.2688,.6496],[.3668,.264,.6465],[.3664,.2593,.6433],[.366,.2545,.64],[.3656,.2497,.6367],[.3651,.2449,.6333],[.3646,.2401,.6298],[.3641,.2354,.6262],[.3635,.2306,.6225],[.3629,.2258,.6188],[.3622,.2211,.615],[.3615,.2164,.611],[.3608,.2116,.607],[.36,.2069,.6029],[.3592,.2023,.5987],[.3583,.1976,.5944],[.3574,.193,.59],[.3564,.1884,.5855],[.3554,.1838,.5809],[.3543,.1793,.5762],[.3531,.1748,.5714],[.3519,.1703,.5665],[.3506,.166,.5615],[.3492,.1616,.5563],[.3478,.1573,.5511],[.3463,.1531,.5458],[.3447,.149,.5403],[.3431,.1449,.5347],[.3414,.1409,.5291],[.3395,.137,.5233],[.3376,.1332,.5174],[.3357,.1295,.5114],[.3336,.1259,.5054],[.3315,.1224,.4992],[.3292,.1191,.4929],[.3269,.1158,.4866],[.3245,.1126,.4802],[.322,.1096,.4737],[.3195,.1067,.4671],[.3168,.1039,.4605],[.3141,.1012,.4539],[.3113,.0987,.4472],[.3084,.0963,.4405],[.3055,.094,.4337],[.3025,.0918,.427],[.2994,.0897,.4202],[.2963,.0877,.4135],[.2931,.0859,.4067],[.2899,.0841,.4],[.2867,.0824,.3933],[.2834,.0809,.3867],[.2801,.0794,.3801],[.2768,.078,.3735],[.2734,.0767,.367],[.2701,.0755,.3606],[.2667,.0743,.3542],[.2634,.0733,.3479],[.26,.0723,.3417],[.2567,.0714,.3356],[.2534,.0705,.3296],[.2501,.0698,.3237],[.2469,.0691,.3179],[.2437,.0684,.3122],[.2405,.0679,.3066],[.2374,.0674,.3011],[.2343,.0669,.2957],[.2313,.0666,.2905],[.2284,.0663,.2854],[.2255,.0661,.2804],[.2227,.0659,.2756],[.22,.0659,.2709],[.2174,.0659,.2663],[.2148,.0659,.2619],[.2124,.0661,.2577],[.21,.0663,.2535],[.2077,.0666,.2495],[.2056,.067,.2457],[.2035,.0674,.2421],[.2016,.068,.2385],[.1997,.0686,.2352],[.1979,.0693,.2319],[.1961,.0703,.2287],[.1941,.0716,.2256],[.192,.0732,.2224],[.1898,.075,.2193],[.1874,.0771,.2162],[.1849,.0794,.2131],[.1877,.0773,.2139],[.1905,.0753,.2147],[.1932,.0736,.2154],[.1957,.0722,.2162],[.1982,.071,.2169],[.2006,.0701,.2176],[.2029,.0694,.2183],[.2053,.0689,.2191],[.2079,.0685,.22],[.2105,.0681,.221],[.2133,.0678,.2221],[.2163,.0676,.2232],[.2193,.0675,.2245],[.2225,.0674,.2259],[.2258,.0674,.2273],[.2292,.0674,.2288],[.2327,.0676,.2304],[.2363,.0677,.232],[.24,.068,.2337],[.2438,.0683,.2355],[.2477,.0687,.2373],[.2517,.0691,.2392],[.2558,.0695,.2411],[.26,.0701,.2431],[.2643,.0706,.2451],[.2686,.0712,.2471],[.273,.0719,.2492],[.2775,.0726,.2512],[.282,.0733,.2533],[.2866,.0741,.2554],[.2913,.0749,.2576],[.296,.0757,.2597],[.3008,.0766,.2618],[.3056,.0775,.2639],[.3105,.0785,.266],[.3154,.0794,.2681],[.3203,.0804,.2702],[.3253,.0814,.2723],[.3303,.0825,.2743],[.3353,.0835,.2763],[.3404,.0846,.2783],[.3455,.0857,.2803],[.3506,.0869,.2822],[.3557,.088,.2841],[.3609,.0892,.2859],[.3661,.0904,.2877],[.3712,.0917,.2895],[.3764,.0929,.2912],[.3816,.0942,.2928],[.3868,.0956,.2944],[.392,.0969,.296],[.3972,.0983,.2974],[.4024,.0997,.2989],[.4076,.1012,.3002],[.4128,.1027,.3015],[.418,.1042,.3028],[.4231,.1058,.304],[.4283,.1074,.3051],[.4334,.1091,.3061],[.4386,.1108,.3071],[.4437,.1125,.308],[.4488,.1144,.3089],[.4538,.1162,.3097],[.4589,.1181,.3104],[.4639,.1201,.3111],[.4689,.1222,.3117],[.4738,.1243,.3123],[.4788,.1264,.3127],[.4837,.1286,.3132],[.4885,.1309,.3135],[.4934,.1333,.3139],[.4981,.1357,.3141],[.5029,.1382,.3144],[.5076,.1407,.3145],[.5123,.1433,.3147],[.5169,.146,.3148],[.5215,.1487,.3148],[.526,.1515,.3148],[.5305,.1544,.3148],[.535,.1573,.3148],[.5394,.1602,.3147],[.5438,.1633,.3146],[.5481,.1664,.3145],[.5524,.1695,.3144],[.5566,.1727,.3142],[.5608,.1759,.3141],[.565,.1792,.3139],[.5691,.1826,.3137],[.5731,.186,.3136],[.5772,.1894,.3134],[.5811,.1929,.3132],[.5851,.1964,.3131],[.5889,.2,.3129],[.5928,.2036,.3127],[.5966,.2072,.3126],[.6004,.2109,.3124],[.6041,.2146,.3123],[.6078,.2184,.3122],[.6114,.2221,.3121],[.615,.2259,.3121],[.6186,.2298,.312],[.6221,.2337,.312],[.6256,.2376,.312],[.629,.2415,.312],[.6324,.2455,.312],[.6358,.2494,.3121],[.6391,.2535,.3122],[.6424,.2575,.3123],[.6457,.2616,.3125],[.6489,.2656,.3127],[.6521,.2697,.3129],[.6552,.2739,.3132],[.6583,.278,.3135],[.6614,.2822,.3138],[.6644,.2864,.3142],[.6674,.2906,.3146],[.6704,.2949,.315],[.6733,.2991,.3155],[.6762,.3034,.3161],[.6791,.3077,.3167],[.6819,.312,.3173],[.6847,.3163,.318],[.6874,.3207,.3187],[.6901,.3251,.3195],[.6928,.3295,.3203],[.6955,.3339,.3211],[.6981,.3383,.3221],[.7006,.3427,.3231],[.7032,.3472,.3241],[.7057,.3517,.3252],[.7081,.3561,.3263],[.7105,.3607,.3275],[.7129,.3652,.3288],[.7153,.3697,.3301],[.7176,.3743,.3315],[.7199,.3788,.333],[.7221,.3834,.3345],[.7243,.388,.3361],[.7265,.3926,.3377],[.7286,.3972,.3395],[.7307,.4019,.3412],[.7328,.4065,.3431],[.7348,.4112,.345],[.7368,.4159,.347],[.7388,.4205,.3491],[.7407,.4252,.3513],[.7426,.4299,.3535],[.7445,.4347,.3558],[.7463,.4394,.3582],[.748,.4441,.3607],[.7498,.4489,.3633],[.7515,.4536,.3659],[.7532,.4584,.3686],[.7548,.4632,.3714],[.7564,.468,.3743],[.758,.4728,.3773],[.7596,.4776,.3804],[.7611,.4824,.3835],[.7626,.4872,.3868],[.764,.492,.3901],[.7655,.4968,.3935],[.7669,.5017,.397],[.7682,.5065,.4006],[.7696,.5113,.4043],[.7709,.5162,.4081],[.7722,.521,.412],[.7734,.5259,.4159],[.7747,.5307,.42],[.7759,.5355,.4241],[.7771,.5404,.4284],[.7783,.5452,.4327],[.7795,.5501,.4371],[.7806,.5549,.4416],[.7817,.5598,.4462],[.7829,.5646,.4509],[.784,.5694,.4557],[.7851,.5742,.4606],[.7862,.5791,.4655],[.7872,.5839,.4706],[.7883,.5887,.4757],[.7894,.5935,.4809],[.7905,.5983,.4862],[.7915,.6031,.4916],[.7926,.6078,.4971],[.7937,.6126,.5026],[.7948,.6174,.5082],[.7958,.6221,.5139],[.7969,.6268,.5196],[.798,.6316,.5255],[.7992,.6363,.5313],[.8003,.641,.5373],[.8014,.6457,.5433],[.8026,.6503,.5494],[.8038,.655,.5556],[.805,.6596,.5618],[.8062,.6643,.568],[.8075,.6689,.5743],[.8087,.6735,.5807],[.81,.678,.5871],[.8114,.6826,.5936],[.8127,.6871,.6001],[.8141,.6916,.6066],[.8155,.6961,.6132],[.8169,.7006,.6198],[.8184,.7051,.6264],[.8199,.7095,.633],[.8214,.7139,.6397],[.8229,.7183,.6464],[.8245,.7226,.6531],[.8261,.727,.6599],[.8278,.7313,.6666],[.8294,.7355,.6733],[.8311,.7398,.6801],[.8328,.744,.6868],[.8346,.7481,.6936],[.8363,.7523,.7003],[.8381,.7564,.707],[.8399,.7604,.7137],[.8417,.7644,.7203],[.8435,.7684,.727],[.8453,.7723,.7336],[.8471,.7761,.7401],[.8489,.7799,.7466],[.8507,.7837,.7531],[.8525,.7873,.7595],[.8543,.791,.7658],[.856,.7945,.7721],[.8578,.798,.7783],[.8594,.8014,.7844],[.8611,.8048,.7904],[.8627,.8081,.7963],[.8642,.8112,.802],[.8656,.8144,.8077],[.8671,.8174,.8131],[.8684,.8203,.8184],[.8697,.8231,.8235],[.8709,.8259,.8284],[.8722,.8285,.833],[.8734,.831,.8375],[.8745,.8333,.8417],[.8757,.8355,.8458],[.8769,.8376,.8496],[.878,.8395,.8533],[.8791,.8413,.8569],[.8802,.8429,.8603],[.8812,.8443,.8636],[.8821,.8456,.8667],[.883,.8467,.8698],[.8837,.8476,.8727],[.8843,.8484,.8756],[.8849,.8491,.8783],[.8853,.8496,.8809],[.8855,.8499,.8834],[.8857,.85,.8857]]};ce.twilight_shifted={interpolate:!0,colors:[[.1874,.0771,.2162],[.1898,.075,.2193],[.192,.0732,.2224],[.1941,.0716,.2256],[.1961,.0703,.2287],[.1979,.0693,.2319],[.1997,.0686,.2352],[.2016,.068,.2385],[.2035,.0674,.2421],[.2056,.067,.2457],[.2077,.0666,.2495],[.21,.0663,.2535],[.2124,.0661,.2577],[.2148,.0659,.2619],[.2174,.0659,.2663],[.22,.0659,.2709],[.2227,.0659,.2756],[.2255,.0661,.2804],[.2284,.0663,.2854],[.2313,.0666,.2905],[.2343,.0669,.2957],[.2374,.0674,.3011],[.2405,.0679,.3066],[.2437,.0684,.3122],[.2469,.0691,.3179],[.2501,.0698,.3237],[.2534,.0705,.3296],[.2567,.0714,.3356],[.26,.0723,.3417],[.2634,.0733,.3479],[.2667,.0743,.3542],[.2701,.0755,.3606],[.2734,.0767,.367],[.2768,.078,.3735],[.2801,.0794,.3801],[.2834,.0809,.3867],[.2867,.0824,.3933],[.2899,.0841,.4],[.2931,.0859,.4067],[.2963,.0877,.4135],[.2994,.0897,.4202],[.3025,.0918,.427],[.3055,.094,.4337],[.3084,.0963,.4405],[.3113,.0987,.4472],[.3141,.1012,.4539],[.3168,.1039,.4605],[.3195,.1067,.4671],[.322,.1096,.4737],[.3245,.1126,.4802],[.3269,.1158,.4866],[.3292,.1191,.4929],[.3315,.1224,.4992],[.3336,.1259,.5054],[.3357,.1295,.5114],[.3376,.1332,.5174],[.3395,.137,.5233],[.3414,.1409,.5291],[.3431,.1449,.5347],[.3447,.149,.5403],[.3463,.1531,.5458],[.3478,.1573,.5511],[.3492,.1616,.5563],[.3506,.166,.5615],[.3519,.1703,.5665],[.3531,.1748,.5714],[.3543,.1793,.5762],[.3554,.1838,.5809],[.3564,.1884,.5855],[.3574,.193,.59],[.3583,.1976,.5944],[.3592,.2023,.5987],[.36,.2069,.6029],[.3608,.2116,.607],[.3615,.2164,.611],[.3622,.2211,.615],[.3629,.2258,.6188],[.3635,.2306,.6225],[.3641,.2354,.6262],[.3646,.2401,.6298],[.3651,.2449,.6333],[.3656,.2497,.6367],[.366,.2545,.64],[.3664,.2593,.6433],[.3668,.264,.6465],[.3672,.2688,.6496],[.3675,.2736,.6526],[.3678,.2784,.6556],[.3681,.2832,.6585],[.3684,.2879,.6613],[.3687,.2927,.6641],[.369,.2974,.6668],[.3692,.3022,.6695],[.3694,.3069,.6721],[.3697,.3117,.6746],[.3699,.3164,.677],[.3701,.3211,.6794],[.3703,.3258,.6818],[.3705,.3305,.6841],[.3707,.3352,.6863],[.3709,.3399,.6885],[.3712,.3445,.6907],[.3714,.3492,.6927],[.3716,.3538,.6948],[.3719,.3584,.6968],[.3721,.3631,.6987],[.3724,.3677,.7006],[.3726,.3723,.7024],[.3729,.3768,.7042],[.3732,.3814,.706],[.3736,.386,.7077],[.3739,.3905,.7094],[.3743,.395,.711],[.3747,.3996,.7126],[.3751,.4041,.7141],[.3756,.4086,.7156],[.3761,.413,.7171],[.3766,.4175,.7185],[.3772,.4219,.7199],[.3778,.4264,.7213],[.3784,.4308,.7226],[.3791,.4352,.7239],[.3798,.4396,.7251],[.3806,.444,.7264],[.3814,.4484,.7276],[.3822,.4527,.7287],[.3831,.4571,.7298],[.3841,.4614,.7309],[.3851,.4657,.732],[.3861,.47,.7331],[.3872,.4743,.7341],[.3884,.4786,.7351],[.3896,.4828,.736],[.3909,.4871,.737],[.3923,.4913,.7379],[.3937,.4955,.7388],[.3951,.4997,.7397],[.3967,.5039,.7405],[.3983,.5081,.7414],[.3999,.5122,.7422],[.4017,.5164,.743],[.4035,.5205,.7437],[.4053,.5246,.7445],[.4073,.5287,.7452],[.4093,.5328,.746],[.4114,.5368,.7467],[.4135,.5409,.7474],[.4157,.5449,.7481],[.418,.549,.7488],[.4204,.553,.7494],[.4228,.557,.7501],[.4253,.561,.7508],[.4279,.565,.7514],[.4306,.5689,.752],[.4333,.5729,.7527],[.4361,.5768,.7533],[.439,.5807,.7539],[.4419,.5846,.7545],[.4449,.5885,.7551],[.448,.5924,.7557],[.4512,.5962,.7564],[.4544,.6001,.757],[.4577,.6039,.7576],[.4611,.6078,.7582],[.4646,.6116,.7588],[.4681,.6154,.7594],[.4717,.6192,.76],[.4753,.6229,.7607],[.4791,.6267,.7613],[.4829,.6304,.7619],[.4867,.6342,.7626],[.4907,.6379,.7632],[.4947,.6416,.7639],[.4987,.6453,.7645],[.5029,.649,.7652],[.5071,.6526,.7659],[.5114,.6563,.7666],[.5157,.6599,.7673],[.5201,.6636,.7681],[.5246,.6672,.7688],[.5291,.6708,.7696],[.5337,.6744,.7703],[.5383,.678,.7711],[.5431,.6815,.7719],[.5478,.6851,.7728],[.5527,.6886,.7736],[.5576,.6922,.7745],[.5626,.6957,.7754],[.5676,.6992,.7763],[.5727,.7027,.7773],[.5778,.7061,.7783],[.583,.7096,.7793],[.5883,.713,.7803],[.5936,.7165,.7814],[.599,.7199,.7825],[.6044,.7233,.7836],[.6099,.7267,.7847],[.6154,.73,.786],[.621,.7334,.7872],[.6266,.7367,.7885],[.6323,.74,.7898],[.638,.7433,.7912],[.6438,.7466,.7926],[.6496,.7499,.794],[.6554,.7531,.7955],[.6613,.7563,.797],[.6672,.7595,.7986],[.6731,.7627,.8003],[.6791,.7658,.802],[.6851,.769,.8037],[.691,.7721,.8055],[.697,.7752,.8073],[.703,.7782,.8092],[.709,.7813,.8111],[.715,.7843,.8131],[.721,.7872,.8151],[.7269,.7902,.8172],[.7328,.7931,.8193],[.7387,.796,.8214],[.7446,.7988,.8236],[.7504,.8016,.8258],[.7562,.8044,.828],[.7619,.8071,.8303],[.7675,.8098,.8325],[.7731,.8124,.8348],[.7786,.815,.8371],[.784,.8176,.8394],[.7893,.82,.8416],[.7945,.8225,.8439],[.7997,.8248,.8462],[.8047,.8271,.8484],[.8096,.8293,.8506],[.8144,.8315,.8528],[.819,.8335,.855],[.8236,.8355,.8571],[.828,.8374,.8592],[.8322,.8392,.8613],[.8363,.8409,.8633],[.8403,.8426,.8653],[.8441,.8441,.8672],[.8478,.8455,.869],[.8513,.8467,.8709],[.8547,.8479,.8726],[.858,.8489,.8743],[.8611,.8498,.876],[.8641,.8505,.8776],[.867,.8511,.8791],[.8697,.8515,.8805],[.8723,.8518,.8819],[.8749,.8519,.8832],[.8772,.8519,.8843],[.8795,.8517,.8854],[.8817,.8513,.8864],[.8838,.8507,.8872],[.8858,.85,.888],[.8857,.85,.8857],[.8855,.8499,.8834],[.8853,.8496,.8809],[.8849,.8491,.8783],[.8843,.8484,.8756],[.8837,.8476,.8727],[.883,.8467,.8698],[.8821,.8456,.8667],[.8812,.8443,.8636],[.8802,.8429,.8603],[.8791,.8413,.8569],[.878,.8395,.8533],[.8769,.8376,.8496],[.8757,.8355,.8458],[.8745,.8333,.8417],[.8734,.831,.8375],[.8722,.8285,.833],[.8709,.8259,.8284],[.8697,.8231,.8235],[.8684,.8203,.8184],[.8671,.8174,.8131],[.8656,.8144,.8077],[.8642,.8112,.802],[.8627,.8081,.7963],[.8611,.8048,.7904],[.8594,.8014,.7844],[.8578,.798,.7783],[.856,.7945,.7721],[.8543,.791,.7658],[.8525,.7873,.7595],[.8507,.7837,.7531],[.8489,.7799,.7466],[.8471,.7761,.7401],[.8453,.7723,.7336],[.8435,.7684,.727],[.8417,.7644,.7203],[.8399,.7604,.7137],[.8381,.7564,.707],[.8363,.7523,.7003],[.8346,.7481,.6936],[.8328,.744,.6868],[.8311,.7398,.6801],[.8294,.7355,.6733],[.8278,.7313,.6666],[.8261,.727,.6599],[.8245,.7226,.6531],[.8229,.7183,.6464],[.8214,.7139,.6397],[.8199,.7095,.633],[.8184,.7051,.6264],[.8169,.7006,.6198],[.8155,.6961,.6132],[.8141,.6916,.6066],[.8127,.6871,.6001],[.8114,.6826,.5936],[.81,.678,.5871],[.8087,.6735,.5807],[.8075,.6689,.5743],[.8062,.6643,.568],[.805,.6596,.5618],[.8038,.655,.5556],[.8026,.6503,.5494],[.8014,.6457,.5433],[.8003,.641,.5373],[.7992,.6363,.5313],[.798,.6316,.5255],[.7969,.6268,.5196],[.7958,.6221,.5139],[.7948,.6174,.5082],[.7937,.6126,.5026],[.7926,.6078,.4971],[.7915,.6031,.4916],[.7905,.5983,.4862],[.7894,.5935,.4809],[.7883,.5887,.4757],[.7872,.5839,.4706],[.7862,.5791,.4655],[.7851,.5742,.4606],[.784,.5694,.4557],[.7829,.5646,.4509],[.7817,.5598,.4462],[.7806,.5549,.4416],[.7795,.5501,.4371],[.7783,.5452,.4327],[.7771,.5404,.4284],[.7759,.5355,.4241],[.7747,.5307,.42],[.7734,.5259,.4159],[.7722,.521,.412],[.7709,.5162,.4081],[.7696,.5113,.4043],[.7682,.5065,.4006],[.7669,.5017,.397],[.7655,.4968,.3935],[.764,.492,.3901],[.7626,.4872,.3868],[.7611,.4824,.3835],[.7596,.4776,.3804],[.758,.4728,.3773],[.7564,.468,.3743],[.7548,.4632,.3714],[.7532,.4584,.3686],[.7515,.4536,.3659],[.7498,.4489,.3633],[.748,.4441,.3607],[.7463,.4394,.3582],[.7445,.4347,.3558],[.7426,.4299,.3535],[.7407,.4252,.3513],[.7388,.4205,.3491],[.7368,.4159,.347],[.7348,.4112,.345],[.7328,.4065,.3431],[.7307,.4019,.3412],[.7286,.3972,.3395],[.7265,.3926,.3377],[.7243,.388,.3361],[.7221,.3834,.3345],[.7199,.3788,.333],[.7176,.3743,.3315],[.7153,.3697,.3301],[.7129,.3652,.3288],[.7105,.3607,.3275],[.7081,.3561,.3263],[.7057,.3517,.3252],[.7032,.3472,.3241],[.7006,.3427,.3231],[.6981,.3383,.3221],[.6955,.3339,.3211],[.6928,.3295,.3203],[.6901,.3251,.3195],[.6874,.3207,.3187],[.6847,.3163,.318],[.6819,.312,.3173],[.6791,.3077,.3167],[.6762,.3034,.3161],[.6733,.2991,.3155],[.6704,.2949,.315],[.6674,.2906,.3146],[.6644,.2864,.3142],[.6614,.2822,.3138],[.6583,.278,.3135],[.6552,.2739,.3132],[.6521,.2697,.3129],[.6489,.2656,.3127],[.6457,.2616,.3125],[.6424,.2575,.3123],[.6391,.2535,.3122],[.6358,.2494,.3121],[.6324,.2455,.312],[.629,.2415,.312],[.6256,.2376,.312],[.6221,.2337,.312],[.6186,.2298,.312],[.615,.2259,.3121],[.6114,.2221,.3121],[.6078,.2184,.3122],[.6041,.2146,.3123],[.6004,.2109,.3124],[.5966,.2072,.3126],[.5928,.2036,.3127],[.5889,.2,.3129],[.5851,.1964,.3131],[.5811,.1929,.3132],[.5772,.1894,.3134],[.5731,.186,.3136],[.5691,.1826,.3137],[.565,.1792,.3139],[.5608,.1759,.3141],[.5566,.1727,.3142],[.5524,.1695,.3144],[.5481,.1664,.3145],[.5438,.1633,.3146],[.5394,.1602,.3147],[.535,.1573,.3148],[.5305,.1544,.3148],[.526,.1515,.3148],[.5215,.1487,.3148],[.5169,.146,.3148],[.5123,.1433,.3147],[.5076,.1407,.3145],[.5029,.1382,.3144],[.4981,.1357,.3141],[.4934,.1333,.3139],[.4885,.1309,.3135],[.4837,.1286,.3132],[.4788,.1264,.3127],[.4738,.1243,.3123],[.4689,.1222,.3117],[.4639,.1201,.3111],[.4589,.1181,.3104],[.4538,.1162,.3097],[.4488,.1144,.3089],[.4437,.1125,.308],[.4386,.1108,.3071],[.4334,.1091,.3061],[.4283,.1074,.3051],[.4231,.1058,.304],[.418,.1042,.3028],[.4128,.1027,.3015],[.4076,.1012,.3002],[.4024,.0997,.2989],[.3972,.0983,.2974],[.392,.0969,.296],[.3868,.0956,.2944],[.3816,.0942,.2928],[.3764,.0929,.2912],[.3712,.0917,.2895],[.3661,.0904,.2877],[.3609,.0892,.2859],[.3557,.088,.2841],[.3506,.0869,.2822],[.3455,.0857,.2803],[.3404,.0846,.2783],[.3353,.0835,.2763],[.3303,.0825,.2743],[.3253,.0814,.2723],[.3203,.0804,.2702],[.3154,.0794,.2681],[.3105,.0785,.266],[.3056,.0775,.2639],[.3008,.0766,.2618],[.296,.0757,.2597],[.2913,.0749,.2576],[.2866,.0741,.2554],[.282,.0733,.2533],[.2775,.0726,.2512],[.273,.0719,.2492],[.2686,.0712,.2471],[.2643,.0706,.2451],[.26,.0701,.2431],[.2558,.0695,.2411],[.2517,.0691,.2392],[.2477,.0687,.2373],[.2438,.0683,.2355],[.24,.068,.2337],[.2363,.0677,.232],[.2327,.0676,.2304],[.2292,.0674,.2288],[.2258,.0674,.2273],[.2225,.0674,.2259],[.2193,.0675,.2245],[.2163,.0676,.2232],[.2133,.0678,.2221],[.2105,.0681,.221],[.2079,.0685,.22],[.2053,.0689,.2191],[.2029,.0694,.2183],[.2006,.0701,.2176],[.1982,.071,.2169],[.1957,.0722,.2162],[.1932,.0736,.2154],[.1905,.0753,.2147],[.1877,.0773,.2139],[.1849,.0794,.2131]]};ce.viridis={interpolate:!0,colors:[[.267,.0049,.3294],[.2685,.0096,.3354],[.2699,.0146,.3414],[.2713,.0199,.3473],[.2726,.0256,.3531],[.2738,.0315,.3589],[.275,.0378,.3645],[.276,.0442,.3702],[.277,.0503,.3757],[.2779,.0563,.3812],[.2788,.0621,.3866],[.2796,.0678,.3919],[.2803,.0734,.3972],[.2809,.0789,.4023],[.2814,.0843,.4074],[.2819,.0897,.4124],[.2823,.095,.4173],[.2827,.1002,.4222],[.2829,.1054,.4269],[.2831,.1106,.4316],[.2832,.1157,.4361],[.2832,.1208,.4406],[.2832,.1258,.445],[.2831,.1309,.4492],[.2829,.1359,.4534],[.2826,.1409,.4575],[.2823,.1459,.4615],[.2819,.1509,.4654],[.2814,.1558,.4692],[.2809,.1608,.4729],[.2803,.1657,.4765],[.2796,.1706,.48],[.2788,.1755,.4834],[.278,.1804,.4867],[.2771,.1852,.4899],[.2762,.1901,.493],[.2752,.1949,.496],[.2741,.1997,.4989],[.273,.2045,.5017],[.2718,.2093,.5044],[.2706,.2141,.5071],[.2693,.2188,.5096],[.268,.2235,.512],[.2666,.2283,.5143],[.2651,.233,.5166],[.2637,.2376,.5188],[.2621,.2423,.5208],[.2606,.2469,.5228],[.259,.2515,.5247],[.2573,.2561,.5266],[.2556,.2607,.5283],[.2539,.2653,.53],[.2522,.2698,.5316],[.2504,.2743,.5331],[.2486,.2788,.5346],[.2468,.2832,.5359],[.245,.2877,.5373],[.2431,.2921,.5385],[.2412,.2965,.5397],[.2393,.3009,.5408],[.2374,.3052,.5419],[.2355,.3095,.5429],[.2336,.3138,.5439],[.2317,.3181,.5448],[.2297,.3224,.5457],[.2278,.3266,.5465],[.2259,.3308,.5473],[.2239,.335,.5481],[.222,.3392,.5488],[.2201,.3433,.5494],[.2181,.3474,.55],[.2162,.3515,.5506],[.2143,.3556,.5512],[.2124,.3597,.5517],[.2105,.3637,.5522],[.2086,.3678,.5527],[.2068,.3718,.5531],[.2049,.3757,.5535],[.2031,.3797,.5539],[.2012,.3837,.5543],[.1994,.3876,.5546],[.1976,.3915,.555],[.1959,.3954,.5553],[.1941,.3993,.5556],[.1924,.4032,.5558],[.1906,.4071,.5561],[.1889,.4109,.5563],[.1872,.4147,.5565],[.1856,.4186,.5568],[.1839,.4224,.5569],[.1823,.4262,.5571],[.1806,.43,.5573],[.179,.4338,.5574],[.1774,.4375,.5576],[.1758,.4413,.5577],[.1743,.445,.5578],[.1727,.4488,.5579],[.1712,.4525,.558],[.1696,.4563,.558],[.1681,.46,.5581],[.1666,.4637,.5581],[.1651,.4674,.5581],[.1636,.4711,.5581],[.1621,.4748,.5581],[.1607,.4785,.5581],[.1592,.4822,.5581],[.1577,.4859,.558],[.1563,.4896,.5579],[.1548,.4933,.5578],[.1534,.497,.5577],[.1519,.5007,.5576],[.1505,.5044,.5574],[.149,.5081,.5572],[.1476,.5117,.557],[.1462,.5154,.5568],[.1448,.5191,.5566],[.1433,.5228,.5563],[.1419,.5265,.556],[.1405,.5301,.5557],[.1391,.5338,.5553],[.1378,.5375,.5549],[.1364,.5412,.5545],[.1351,.5449,.554],[.1337,.5485,.5535],[.1324,.5522,.553],[.1312,.5559,.5525],[.1299,.5596,.5519],[.1287,.5633,.5512],[.1276,.5669,.5506],[.1265,.5706,.5498],[.1254,.5743,.5491],[.1244,.578,.5483],[.1235,.5817,.5474],[.1226,.5854,.5466],[.1218,.5891,.5456],[.1211,.5927,.5446],[.1206,.5964,.5436],[.1201,.6001,.5425],[.1197,.6038,.5414],[.1195,.6075,.5402],[.1194,.6111,.539],[.1195,.6148,.5377],[.1197,.6185,.5363],[.1201,.6222,.5349],[.1206,.6258,.5335],[.1214,.6295,.532],[.1223,.6332,.5304],[.1234,.6368,.5288],[.1248,.6405,.5271],[.1263,.6441,.5253],[.1281,.6477,.5235],[.1301,.6514,.5216],[.1323,.655,.5197],[.1347,.6586,.5176],[.1373,.6623,.5156],[.1402,.6659,.5134],[.1433,.6695,.5112],[.1466,.673,.5089],[.1501,.6766,.5066],[.1539,.6802,.5042],[.1579,.6838,.5017],[.162,.6873,.4991],[.1664,.6909,.4965],[.1709,.6944,.4938],[.1757,.6979,.491],[.1807,.7014,.4882],[.1858,.7049,.4853],[.1911,.7084,.4823],[.1966,.7118,.4792],[.2022,.7153,.4761],[.208,.7187,.4729],[.214,.7221,.4696],[.2201,.7255,.4662],[.2264,.7289,.4628],[.2328,.7322,.4593],[.2394,.7356,.4557],[.2461,.7389,.452],[.2529,.7422,.4483],[.2599,.7455,.4445],[.2669,.7488,.4406],[.2741,.752,.4366],[.2815,.7552,.4326],[.2889,.7584,.4284],[.2965,.7616,.4242],[.3041,.7647,.4199],[.3119,.7678,.4156],[.3198,.7709,.4112],[.3278,.774,.4066],[.3359,.777,.402],[.3441,.78,.3974],[.3524,.783,.3926],[.3607,.786,.3878],[.3692,.7889,.3829],[.3778,.7918,.3779],[.3864,.7946,.3729],[.3952,.7975,.3678],[.404,.8003,.3626],[.4129,.803,.3573],[.4219,.8058,.3519],[.431,.8085,.3465],[.4401,.8111,.341],[.4494,.8138,.3354],[.4587,.8164,.3297],[.4681,.8189,.324],[.4775,.8214,.3182],[.487,.8239,.3123],[.4966,.8264,.3064],[.5063,.8288,.3004],[.516,.8312,.2943],[.5258,.8335,.2881],[.5356,.8358,.2819],[.5455,.838,.2756],[.5555,.8403,.2693],[.5655,.8424,.2629],[.5756,.8446,.2564],[.5857,.8467,.2499],[.5958,.8487,.2433],[.606,.8507,.2367],[.6163,.8527,.2301],[.6266,.8546,.2234],[.6369,.8565,.2166],[.6473,.8584,.2099],[.6576,.8602,.2031],[.6681,.862,.1963],[.6785,.8637,.1895],[.6889,.8654,.1827],[.6994,.8671,.176],[.7099,.8688,.1693],[.7204,.8704,.1626],[.7309,.8719,.156],[.7414,.8734,.1496],[.7519,.875,.1432],[.7624,.8764,.1371],[.7729,.8779,.1311],[.7833,.8793,.1254],[.7938,.8807,.12],[.8042,.882,.115],[.8146,.8834,.1103],[.8249,.8847,.1062],[.8353,.886,.1026],[.8456,.8873,.0997],[.8558,.8886,.0975],[.866,.8899,.096],[.8762,.8911,.0952],[.8863,.8924,.0954],[.8963,.8936,.0963],[.9063,.8949,.0981],[.9162,.8961,.1007],[.9261,.8973,.1041],[.9359,.8986,.1081],[.9456,.8998,.1128],[.9553,.9011,.1181],[.9649,.9023,.1239],[.9744,.9036,.1302],[.9839,.9049,.1369],[.9932,.9062,.1439]]};ce.winter={interpolate:!0,colors:[[0,0,1],[0,.0039,.998],[0,.0078,.9961],[0,.0118,.9941],[0,.0157,.9922],[0,.0196,.9902],[0,.0235,.9882],[0,.0275,.9863],[0,.0314,.9843],[0,.0353,.9824],[0,.0392,.9804],[0,.0431,.9784],[0,.0471,.9765],[0,.051,.9745],[0,.0549,.9725],[0,.0588,.9706],[0,.0627,.9686],[0,.0667,.9667],[0,.0706,.9647],[0,.0745,.9627],[0,.0784,.9608],[0,.0824,.9588],[0,.0863,.9569],[0,.0902,.9549],[0,.0941,.9529],[0,.098,.951],[0,.102,.949],[0,.1059,.9471],[0,.1098,.9451],[0,.1137,.9431],[0,.1176,.9412],[0,.1216,.9392],[0,.1255,.9373],[0,.1294,.9353],[0,.1333,.9333],[0,.1373,.9314],[0,.1412,.9294],[0,.1451,.9275],[0,.149,.9255],[0,.1529,.9235],[0,.1569,.9216],[0,.1608,.9196],[0,.1647,.9176],[0,.1686,.9157],[0,.1725,.9137],[0,.1765,.9118],[0,.1804,.9098],[0,.1843,.9078],[0,.1882,.9059],[0,.1922,.9039],[0,.1961,.902],[0,.2,.9],[0,.2039,.898],[0,.2078,.8961],[0,.2118,.8941],[0,.2157,.8922],[0,.2196,.8902],[0,.2235,.8882],[0,.2275,.8863],[0,.2314,.8843],[0,.2353,.8824],[0,.2392,.8804],[0,.2431,.8784],[0,.2471,.8765],[0,.251,.8745],[0,.2549,.8725],[0,.2588,.8706],[0,.2627,.8686],[0,.2667,.8667],[0,.2706,.8647],[0,.2745,.8627],[0,.2784,.8608],[0,.2824,.8588],[0,.2863,.8569],[0,.2902,.8549],[0,.2941,.8529],[0,.298,.851],[0,.302,.849],[0,.3059,.8471],[0,.3098,.8451],[0,.3137,.8431],[0,.3176,.8412],[0,.3216,.8392],[0,.3255,.8373],[0,.3294,.8353],[0,.3333,.8333],[0,.3373,.8314],[0,.3412,.8294],[0,.3451,.8275],[0,.349,.8255],[0,.3529,.8235],[0,.3569,.8216],[0,.3608,.8196],[0,.3647,.8176],[0,.3686,.8157],[0,.3725,.8137],[0,.3765,.8118],[0,.3804,.8098],[0,.3843,.8078],[0,.3882,.8059],[0,.3922,.8039],[0,.3961,.802],[0,.4,.8],[0,.4039,.798],[0,.4078,.7961],[0,.4118,.7941],[0,.4157,.7922],[0,.4196,.7902],[0,.4235,.7882],[0,.4275,.7863],[0,.4314,.7843],[0,.4353,.7824],[0,.4392,.7804],[0,.4431,.7784],[0,.4471,.7765],[0,.451,.7745],[0,.4549,.7725],[0,.4588,.7706],[0,.4627,.7686],[0,.4667,.7667],[0,.4706,.7647],[0,.4745,.7627],[0,.4784,.7608],[0,.4824,.7588],[0,.4863,.7569],[0,.4902,.7549],[0,.4941,.7529],[0,.498,.751],[0,.502,.749],[0,.5059,.7471],[0,.5098,.7451],[0,.5137,.7431],[0,.5176,.7412],[0,.5216,.7392],[0,.5255,.7373],[0,.5294,.7353],[0,.5333,.7333],[0,.5373,.7314],[0,.5412,.7294],[0,.5451,.7275],[0,.549,.7255],[0,.5529,.7235],[0,.5569,.7216],[0,.5608,.7196],[0,.5647,.7176],[0,.5686,.7157],[0,.5725,.7137],[0,.5765,.7118],[0,.5804,.7098],[0,.5843,.7078],[0,.5882,.7059],[0,.5922,.7039],[0,.5961,.702],[0,.6,.7],[0,.6039,.698],[0,.6078,.6961],[0,.6118,.6941],[0,.6157,.6922],[0,.6196,.6902],[0,.6235,.6882],[0,.6275,.6863],[0,.6314,.6843],[0,.6353,.6824],[0,.6392,.6804],[0,.6431,.6784],[0,.6471,.6765],[0,.651,.6745],[0,.6549,.6725],[0,.6588,.6706],[0,.6627,.6686],[0,.6667,.6667],[0,.6706,.6647],[0,.6745,.6627],[0,.6784,.6608],[0,.6824,.6588],[0,.6863,.6569],[0,.6902,.6549],[0,.6941,.6529],[0,.698,.651],[0,.702,.649],[0,.7059,.6471],[0,.7098,.6451],[0,.7137,.6431],[0,.7176,.6412],[0,.7216,.6392],[0,.7255,.6373],[0,.7294,.6353],[0,.7333,.6333],[0,.7373,.6314],[0,.7412,.6294],[0,.7451,.6275],[0,.749,.6255],[0,.7529,.6235],[0,.7569,.6216],[0,.7608,.6196],[0,.7647,.6176],[0,.7686,.6157],[0,.7725,.6137],[0,.7765,.6118],[0,.7804,.6098],[0,.7843,.6078],[0,.7882,.6059],[0,.7922,.6039],[0,.7961,.602],[0,.8,.6],[0,.8039,.598],[0,.8078,.5961],[0,.8118,.5941],[0,.8157,.5922],[0,.8196,.5902],[0,.8235,.5882],[0,.8275,.5863],[0,.8314,.5843],[0,.8353,.5824],[0,.8392,.5804],[0,.8431,.5784],[0,.8471,.5765],[0,.851,.5745],[0,.8549,.5725],[0,.8588,.5706],[0,.8627,.5686],[0,.8667,.5667],[0,.8706,.5647],[0,.8745,.5627],[0,.8784,.5608],[0,.8824,.5588],[0,.8863,.5569],[0,.8902,.5549],[0,.8941,.5529],[0,.898,.551],[0,.902,.549],[0,.9059,.5471],[0,.9098,.5451],[0,.9137,.5431],[0,.9176,.5412],[0,.9216,.5392],[0,.9255,.5373],[0,.9294,.5353],[0,.9333,.5333],[0,.9373,.5314],[0,.9412,.5294],[0,.9451,.5275],[0,.949,.5255],[0,.9529,.5235],[0,.9569,.5216],[0,.9608,.5196],[0,.9647,.5176],[0,.9686,.5157],[0,.9725,.5137],[0,.9765,.5118],[0,.9804,.5098],[0,.9843,.5078],[0,.9882,.5059],[0,.9922,.5039],[0,.9961,.502],[0,1,.5]]};function zs(r,e,t){let i=X0(e,t);if(!i)return 0;let{colors:s,stops:n}=Tp(i.colors,i.stops);return Sb(r,i.interpolate,s,n,i.reverse)}function Sb(r,e,t,i,s){return r=Math.clamp(r,0,1),s===!0&&(r=1-r),o7(e===!0?Cb(r,t,i):wb(r,t,i))}function X0(r,e){if(r.startsWith("custom:")){if(r=r.slice(7),!(r in e.customColorMaps)){console.error("Custom colormap "+r+" does not exist!");return}let t=e.customColorMaps[r];return{colors:t.colors.map(i=>Ti(i).rgb),interpolate:t.interpolate,reverse:t.reverse,stops:t.stops}}else{let t=!1;if(r.endsWith("_r")&&(t=!0,r=r.substring(0,r.length-2)),!(r in ce)){console.error("Colormap "+r+" does not exist!");return}return{interpolate:ce[r].interpolate,reverse:t,colors:ce[r].colors.map(i=>Vn([i[0]*255,i[1]*255,i[2]*255]))}}}function Tp(r,e){if(e){if(e=e,e.lengthi+o*s))}}else e=Array.from({length:r.length},(i,s)=>s/(r.length-1));let t=r.map((i,s)=>({col:i,stop:e[s]})).sort((i,s)=>i.stop-s.stop);return{colors:t.map(i=>i.col),stops:t.map(i=>i.stop)}}function Cb(r,e,t){let i=t.findLastIndex(d=>d<=r);i===-1&&(i=0);let s=t.findIndex(d=>d>r);s===-1&&(s=e.length-1);let n=s===i?1:(r-t[i])/(t[s]-t[i]),o=e[i],a=e[s],l=$0(o)*(1-n)+$0(a)*n,c=q0(o)*(1-n)+q0(a)*n,h=Y0(o)*(1-n)+Y0(a)*n;return os(l,c,h)}function wb(r,e,t){return e[Math.max(0,t.findLastIndex(i=>i<=r))]}function o7(r){let e=u.settings.interactivesBrightness[u.app.getTheme()==="moonstone"?"light":"dark"];return n7(r,e)}var hr=(r=>(r[r.WEBGL_LEGACY=0]="WEBGL_LEGACY",r[r.WEBGL=1]="WEBGL",r[r.WEBGL2=2]="WEBGL2",r))(hr||{}),_p=(r=>(r[r.UNKNOWN=0]="UNKNOWN",r[r.WEBGL=1]="WEBGL",r[r.CANVAS=2]="CANVAS",r))(_p||{}),xh=(r=>(r[r.COLOR=16384]="COLOR",r[r.DEPTH=256]="DEPTH",r[r.STENCIL=1024]="STENCIL",r))(xh||{}),ke=(r=>(r[r.NORMAL=0]="NORMAL",r[r.ADD=1]="ADD",r[r.MULTIPLY=2]="MULTIPLY",r[r.SCREEN=3]="SCREEN",r[r.OVERLAY=4]="OVERLAY",r[r.DARKEN=5]="DARKEN",r[r.LIGHTEN=6]="LIGHTEN",r[r.COLOR_DODGE=7]="COLOR_DODGE",r[r.COLOR_BURN=8]="COLOR_BURN",r[r.HARD_LIGHT=9]="HARD_LIGHT",r[r.SOFT_LIGHT=10]="SOFT_LIGHT",r[r.DIFFERENCE=11]="DIFFERENCE",r[r.EXCLUSION=12]="EXCLUSION",r[r.HUE=13]="HUE",r[r.SATURATION=14]="SATURATION",r[r.COLOR=15]="COLOR",r[r.LUMINOSITY=16]="LUMINOSITY",r[r.NORMAL_NPM=17]="NORMAL_NPM",r[r.ADD_NPM=18]="ADD_NPM",r[r.SCREEN_NPM=19]="SCREEN_NPM",r[r.NONE=20]="NONE",r[r.SRC_OVER=0]="SRC_OVER",r[r.SRC_IN=21]="SRC_IN",r[r.SRC_OUT=22]="SRC_OUT",r[r.SRC_ATOP=23]="SRC_ATOP",r[r.DST_OVER=24]="DST_OVER",r[r.DST_IN=25]="DST_IN",r[r.DST_OUT=26]="DST_OUT",r[r.DST_ATOP=27]="DST_ATOP",r[r.ERASE=26]="ERASE",r[r.SUBTRACT=28]="SUBTRACT",r[r.XOR=29]="XOR",r))(ke||{}),K0=(r=>(r[r.POINTS=0]="POINTS",r[r.LINES=1]="LINES",r[r.LINE_LOOP=2]="LINE_LOOP",r[r.LINE_STRIP=3]="LINE_STRIP",r[r.TRIANGLES=4]="TRIANGLES",r[r.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",r[r.TRIANGLE_FAN=6]="TRIANGLE_FAN",r))(K0||{}),le=(r=>(r[r.RGBA=6408]="RGBA",r[r.RGB=6407]="RGB",r[r.RG=33319]="RG",r[r.RED=6403]="RED",r[r.RGBA_INTEGER=36249]="RGBA_INTEGER",r[r.RGB_INTEGER=36248]="RGB_INTEGER",r[r.RG_INTEGER=33320]="RG_INTEGER",r[r.RED_INTEGER=36244]="RED_INTEGER",r[r.ALPHA=6406]="ALPHA",r[r.LUMINANCE=6409]="LUMINANCE",r[r.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",r[r.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",r[r.DEPTH_STENCIL=34041]="DEPTH_STENCIL",r))(le||{}),ls=(r=>(r[r.TEXTURE_2D=3553]="TEXTURE_2D",r[r.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",r[r.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",r[r.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",r[r.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",r[r.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",r[r.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",r))(ls||{}),Ce=(r=>(r[r.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",r[r.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",r[r.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",r[r.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",r[r.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",r[r.UNSIGNED_INT=5125]="UNSIGNED_INT",r[r.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",r[r.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",r[r.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",r[r.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",r[r.BYTE=5120]="BYTE",r[r.SHORT=5122]="SHORT",r[r.INT=5124]="INT",r[r.FLOAT=5126]="FLOAT",r[r.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",r[r.HALF_FLOAT=36193]="HALF_FLOAT",r))(Ce||{}),Dh=(r=>(r[r.FLOAT=0]="FLOAT",r[r.INT=1]="INT",r[r.UINT=2]="UINT",r))(Dh||{}),Nr=(r=>(r[r.NEAREST=0]="NEAREST",r[r.LINEAR=1]="LINEAR",r))(Nr||{}),dr=(r=>(r[r.CLAMP=33071]="CLAMP",r[r.REPEAT=10497]="REPEAT",r[r.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",r))(dr||{}),x0=(r=>(r[r.OFF=0]="OFF",r[r.POW2=1]="POW2",r[r.ON=2]="ON",r[r.ON_MANUAL=3]="ON_MANUAL",r))(x0||{}),Qt=(r=>(r[r.NPM=0]="NPM",r[r.UNPACK=1]="UNPACK",r[r.PMA=2]="PMA",r[r.NO_PREMULTIPLIED_ALPHA=0]="NO_PREMULTIPLIED_ALPHA",r[r.PREMULTIPLY_ON_UPLOAD=1]="PREMULTIPLY_ON_UPLOAD",r[r.PREMULTIPLIED_ALPHA=2]="PREMULTIPLIED_ALPHA",r))(Qt||{}),pr=(r=>(r[r.NO=0]="NO",r[r.YES=1]="YES",r[r.AUTO=2]="AUTO",r[r.BLEND=0]="BLEND",r[r.CLEAR=1]="CLEAR",r[r.BLIT=2]="BLIT",r))(pr||{}),bh=(r=>(r[r.AUTO=0]="AUTO",r[r.MANUAL=1]="MANUAL",r))(bh||{}),B0=(r=>(r.LOW="lowp",r.MEDIUM="mediump",r.HIGH="highp",r))(B0||{}),Nt=(r=>(r[r.NONE=0]="NONE",r[r.SCISSOR=1]="SCISSOR",r[r.STENCIL=2]="STENCIL",r[r.SPRITE=3]="SPRITE",r[r.COLOR=4]="COLOR",r))(Nt||{});var ut=(r=>(r[r.NONE=0]="NONE",r[r.LOW=2]="LOW",r[r.MEDIUM=4]="MEDIUM",r[r.HIGH=8]="HIGH",r))(ut||{}),Z0=(r=>(r[r.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",r[r.ARRAY_BUFFER=34962]="ARRAY_BUFFER",r[r.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",r))(Z0||{});var Fp={createCanvas:(r,e)=>{let t=document.createElement("canvas");return t.width=r,t.height=e,t},getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(r,e)=>fetch(r,e),parseXML:r=>new DOMParser().parseFromString(r,"text/xml")};var K={ADAPTER:Fp,RESOLUTION:1,CREATE_IMAGE_BITMAP:!1,ROUND_PIXELS:!1};var Ap=/iPhone/i,a7=/iPod/i,l7=/iPad/i,c7=/\biOS-universal(?:.+)Mac\b/i,kp=/\bAndroid(?:.+)Mobile\b/i,u7=/Android/i,jo=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,Eh=/Silk/i,cs=/Windows Phone/i,h7=/\bWindows(?:.+)ARM\b/i,d7=/BlackBerry/i,p7=/BB10/i,f7=/Opera Mini/i,g7=/\b(CriOS|Chrome)(?:.+)Mobile/i,m7=/Mobile(?:.+)Firefox\b/i,y7=function(r){return typeof r<"u"&&r.platform==="MacIntel"&&typeof r.maxTouchPoints=="number"&&r.maxTouchPoints>1&&typeof MSStream>"u"};function Tb(r){return function(e){return e.test(r)}}function kl(r){var e={userAgent:"",platform:"",maxTouchPoints:0};!r&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof r=="string"?e.userAgent=r:r&&r.userAgent&&(e={userAgent:r.userAgent,platform:r.platform,maxTouchPoints:r.maxTouchPoints||0});var t=e.userAgent,i=t.split("[FBAN");typeof i[1]<"u"&&(t=i[0]),i=t.split("Twitter"),typeof i[1]<"u"&&(t=i[0]);var s=Tb(t),n={apple:{phone:s(Ap)&&!s(cs),ipod:s(a7),tablet:!s(Ap)&&(s(l7)||y7(e))&&!s(cs),universal:s(c7),device:(s(Ap)||s(a7)||s(l7)||s(c7)||y7(e))&&!s(cs)},amazon:{phone:s(jo),tablet:!s(jo)&&s(Eh),device:s(jo)||s(Eh)},android:{phone:!s(cs)&&s(jo)||!s(cs)&&s(kp),tablet:!s(cs)&&!s(jo)&&!s(kp)&&(s(Eh)||s(u7)),device:!s(cs)&&(s(jo)||s(Eh)||s(kp)||s(u7))||s(/\bokhttp\b/i)},windows:{phone:s(cs),tablet:s(h7),device:s(cs)||s(h7)},other:{blackberry:s(d7),blackberry10:s(p7),opera:s(f7),firefox:s(m7),chrome:s(g7),device:s(d7)||s(p7)||s(f7)||s(m7)||s(g7)},any:!1,phone:!1,tablet:!1};return n.any=n.apple.device||n.android.device||n.windows.device||n.other.device,n.phone=n.apple.phone||n.android.phone||n.windows.phone,n.tablet=n.apple.tablet||n.android.tablet||n.windows.tablet,n}var _b=kl.default??kl,Pr=_b(globalThis.navigator);var ae={};El(ae,{BaseTextureCache:()=>O0,BoundingBox:()=>Yo,CanvasRenderTarget:()=>Mh,DATA_URI:()=>Ih,EventEmitter:()=>js.default,ProgramCache:()=>Ul,TextureCache:()=>c0,clearTextureCache:()=>r3,correctBlendMode:()=>q7,createIndicesForQuads:()=>Z7,decomposeDataUri:()=>o3,deprecation:()=>Ue,destroyTextureCache:()=>t3,determineCrossOrigin:()=>Bh,earcut:()=>a3.default,getBufferType:()=>Ws,getCanvasBoundingBox:()=>Nh,getResolutionOfUrl:()=>Vl,hex2rgb:()=>W7,hex2string:()=>H7,interleaveTypedArrays:()=>Q7,isMobile:()=>Pr,isPow2:()=>Ol,isWebGLSupported:()=>Ah,log2:()=>Gl,nextPow2:()=>Hs,path:()=>Bp,premultiplyBlendMode:()=>Rl,premultiplyRgba:()=>Y7,premultiplyTint:()=>X7,premultiplyTintToRgba:()=>K7,removeItems:()=>Lh,rgb2hex:()=>$7,sayHello:()=>k7,sign:()=>J7,skipHello:()=>A7,string2hex:()=>j7,trimCanvas:()=>n3,uid:()=>_i,url:()=>Fh});K.RETINA_PREFIX=/@([0-9\.]+)x/;K.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT=!1;var js=St(x7(),1),a3=St(C7(),1);function w7(){throw new Error("Node.js url.parse() was called - this module has been removed to allow mobile compatibility")}function T7(){throw new Error("Node.js url.format() was called - this module has been removed to allow mobile compatibility")}function _7(){throw new Error("Node.js url.resolve() was called - this module has been removed to allow mobile compatibility")}var Fh={parse:w7,format:T7,resolve:_7};function ni(r){if(typeof r!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(r)}`)}function Pl(r){return r.split("?")[0].split("#")[0]}function jb(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function $b(r,e,t){return r.replace(new RegExp(jb(e),"g"),t)}function qb(r,e){let t="",i=0,s=-1,n=0,o=-1;for(let a=0;a<=r.length;++a){if(a2){let l=t.lastIndexOf("/");if(l!==t.length-1){l===-1?(t="",i=0):(t=t.slice(0,l),i=t.length-1-t.lastIndexOf("/")),s=a,n=0;continue}}else if(t.length===2||t.length===1){t="",i=0,s=a,n=0;continue}}e&&(t.length>0?t+="/..":t="..",i=2)}else t.length>0?t+=`/${r.slice(s+1,a)}`:t=r.slice(s+1,a),i=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return t}var Bp={toPosix(r){return $b(r,"\\","/")},isUrl(r){return/^https?:/.test(this.toPosix(r))},isDataUrl(r){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(r)},hasProtocol(r){return/^[^/:]+:\//.test(this.toPosix(r))},getProtocol(r){ni(r),r=this.toPosix(r);let e="",t=/^file:\/\/\//.exec(r),i=/^[^/:]+:\/\//.exec(r),s=/^[^/:]+:\//.exec(r);if(t||i||s){let n=t?.[0]||i?.[0]||s?.[0];e=n,r=r.slice(n.length)}return e},toAbsolute(r,e,t){if(this.isDataUrl(r))return r;let i=Pl(this.toPosix(e??K.ADAPTER.getBaseUrl())),s=Pl(this.toPosix(t??this.rootname(i)));return ni(r),r=this.toPosix(r),r.startsWith("/")?Bp.join(s,r.slice(1)):this.isAbsolute(r)?r:this.join(i,r)},normalize(r){if(r=this.toPosix(r),ni(r),r.length===0)return".";let e="",t=r.startsWith("/");this.hasProtocol(r)&&(e=this.rootname(r),r=r.slice(e.length));let i=r.endsWith("/");return r=qb(r,!1),r.length>0&&i&&(r+="/"),t?`/${r}`:e+r},isAbsolute(r){return ni(r),r=this.toPosix(r),this.hasProtocol(r)?!0:r.startsWith("/")},join(...r){if(r.length===0)return".";let e;for(let t=0;t0)if(e===void 0)e=i;else{let s=r[t-1]??"";this.extname(s)?e+=`/../${i}`:e+=`/${i}`}}return e===void 0?".":this.normalize(e)},dirname(r){if(ni(r),r.length===0)return".";r=this.toPosix(r);let e=r.charCodeAt(0),t=e===47,i=-1,s=!0,n=this.getProtocol(r),o=r;r=r.slice(n.length);for(let a=r.length-1;a>=1;--a)if(e=r.charCodeAt(a),e===47){if(!s){i=a;break}}else s=!1;return i===-1?t?"/":this.isUrl(o)?n+r:n:t&&i===1?"//":n+r.slice(0,i)},rootname(r){ni(r),r=this.toPosix(r);let e="";if(r.startsWith("/")?e="/":e=this.getProtocol(r),this.isUrl(r)){let t=r.indexOf("/",e.length);t!==-1?e=r.slice(0,t):e=r,e.endsWith("/")||(e+="/")}return e},basename(r,e){ni(r),e&&ni(e),r=Pl(this.toPosix(r));let t=0,i=-1,s=!0,n;if(e!==void 0&&e.length>0&&e.length<=r.length){if(e.length===r.length&&e===r)return"";let o=e.length-1,a=-1;for(n=r.length-1;n>=0;--n){let l=r.charCodeAt(n);if(l===47){if(!s){t=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(l===e.charCodeAt(o)?--o===-1&&(i=n):(o=-1,i=a))}return t===i?i=a:i===-1&&(i=r.length),r.slice(t,i)}for(n=r.length-1;n>=0;--n)if(r.charCodeAt(n)===47){if(!s){t=n+1;break}}else i===-1&&(s=!1,i=n+1);return i===-1?"":r.slice(t,i)},extname(r){ni(r),r=Pl(this.toPosix(r));let e=-1,t=0,i=-1,s=!0,n=0;for(let o=r.length-1;o>=0;--o){let a=r.charCodeAt(o);if(a===47){if(!s){t=o+1;break}continue}i===-1&&(s=!1,i=o+1),a===46?e===-1?e=o:n!==1&&(n=1):e!==-1&&(n=-1)}return e===-1||i===-1||n===0||n===1&&e===i-1&&e===t+1?"":r.slice(e,i)},parse(r){ni(r);let e={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return e;r=Pl(this.toPosix(r));let t=r.charCodeAt(0),i=this.isAbsolute(r),s,n="";e.root=this.rootname(r),i||this.hasProtocol(r)?s=1:s=0;let o=-1,a=0,l=-1,c=!0,h=r.length-1,d=0;for(;h>=s;--h){if(t=r.charCodeAt(h),t===47){if(!c){a=h+1;break}continue}l===-1&&(c=!1,l=h+1),t===46?o===-1?o=h:d!==1&&(d=1):o!==-1&&(d=-1)}return o===-1||l===-1||d===0||d===1&&o===l-1&&o===a+1?l!==-1&&(a===0&&i?e.base=e.name=r.slice(1,l):e.base=e.name=r.slice(a,l)):(a===0&&i?(e.name=r.slice(1,o),e.base=r.slice(1,l)):(e.name=r.slice(a,o),e.base=r.slice(a,l)),e.ext=r.slice(o,l)),e.dir=this.dirname(r),n&&(e.dir=n+e.dir),e},sep:"/",delimiter:":"};var F7={};function Ue(r,e,t=3){if(F7[e])return;let i=new Error().stack;typeof i>"u"?console.warn("PixiJS Deprecation Warning: ",`${e} Deprecated since v${r}`):(i=i.split(` `).splice(t).join(` `),console.groupCollapsed?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",`${e} Deprecated since v${r}`),console.warn(i),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",`${e} -Deprecated since v${r}`),console.warn(i))),F7[e]=!0}function A7(){Ue("7.0.0","skipHello is deprecated, please use settings.RENDER_OPTIONS.hello")}function k7(){Ue("7.0.0",`sayHello is deprecated, please use Renderer's "hello" option`)}var Rp;function Ah(){return typeof Rp>"u"&&(Rp=function(){let e={stencil:!0,failIfMajorPerformanceCaveat:K.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT};try{if(!K.ADAPTER.getWebGLRenderingContext())return!1;let t=K.ADAPTER.createCanvas(),i=t.getContext("webgl",e)||t.getContext("experimental-webgl",e),s=!!i?.getContextAttributes()?.stencil;if(i){let n=i.getExtension("WEBGL_lose_context");n&&n.loseContext()}return i=null,s}catch{return!1}}()),Rp}var qb={grad:.9,turn:360,rad:360/(2*Math.PI)},us=function(r){return typeof r=="string"?r.length>0:typeof r=="number"},l0=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*r)/t+0},Br=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),r>t?t:r>e?r:e},O7=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},I7=function(r){return{r:Br(r.r,0,255),g:Br(r.g,0,255),b:Br(r.b,0,255),a:Br(r.a)}},Op=function(r){return{r:l0(r.r),g:l0(r.g),b:l0(r.b),a:l0(r.a,3)}},Yb=/^#([0-9a-f]{3,8})$/i,kh=function(r){var e=r.toString(16);return e.length<2?"0"+e:e},G7=function(r){var e=r.r,t=r.g,i=r.b,s=r.a,n=Math.max(e,t,i),o=n-Math.min(e,t,i),a=o?n===e?(t-i)/o:n===t?2+(i-e)/o:4+(e-t)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},U7=function(r){var e=r.h,t=r.s,i=r.v,s=r.a;e=e/360*6,t/=100,i/=100;var n=Math.floor(e),o=i*(1-t),a=i*(1-(e-n)*t),l=i*(1-(1-e+n)*t),c=n%6;return{r:255*[i,a,o,o,l,i][c],g:255*[l,i,i,a,o,o][c],b:255*[o,o,l,i,i,a][c],a:s}},L7=function(r){return{h:O7(r.h),s:Br(r.s,0,100),l:Br(r.l,0,100),a:Br(r.a)}},M7=function(r){return{h:l0(r.h),s:l0(r.s),l:l0(r.l),a:l0(r.a,3)}},N7=function(r){return U7((t=(e=r).s,{h:e.h,s:(t*=((i=e.l)<50?i:100-i)/100)>0?2*t/(i+t)*100:0,v:i+t,a:e.a}));var e,t,i},Bl=function(r){return{h:(e=G7(r)).h,s:(s=(200-(t=e.s))*(i=e.v)/100)>0&&s<200?t*i/100/(s<=100?s:200-s)*100:0,l:s/2,a:e.a};var e,t,i,s},Xb=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Kb=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Zb=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Qb=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Vp={string:[[function(r){var e=Yb.exec(r);return e?(r=e[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:r.length===4?l0(parseInt(r[3]+r[3],16)/255,2):1}:r.length===6||r.length===8?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:r.length===8?l0(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var e=Zb.exec(r)||Qb.exec(r);return e?e[2]!==e[4]||e[4]!==e[6]?null:I7({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(r){var e=Xb.exec(r)||Kb.exec(r);if(!e)return null;var t,i,s=L7({h:(t=e[1],i=e[2],i===void 0&&(i="deg"),Number(t)*(qb[i]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return N7(s)},"hsl"]],object:[[function(r){var e=r.r,t=r.g,i=r.b,s=r.a,n=s===void 0?1:s;return us(e)&&us(t)&&us(i)?I7({r:Number(e),g:Number(t),b:Number(i),a:Number(n)}):null},"rgb"],[function(r){var e=r.h,t=r.s,i=r.l,s=r.a,n=s===void 0?1:s;if(!us(e)||!us(t)||!us(i))return null;var o=L7({h:Number(e),s:Number(t),l:Number(i),a:Number(n)});return N7(o)},"hsl"],[function(r){var e=r.h,t=r.s,i=r.v,s=r.a,n=s===void 0?1:s;if(!us(e)||!us(t)||!us(i))return null;var o=function(a){return{h:O7(a.h),s:Br(a.s,0,100),v:Br(a.v,0,100),a:Br(a.a)}}({h:Number(e),s:Number(t),v:Number(i),a:Number(n)});return U7(o)},"hsv"]]},P7=function(r,e){for(var t=0;t=.5},r.prototype.toHex=function(){return e=Op(this.rgba),t=e.r,i=e.g,s=e.b,o=(n=e.a)<1?kh(l0(255*n)):"","#"+kh(t)+kh(i)+kh(s)+o;var e,t,i,s,n,o},r.prototype.toRgb=function(){return Op(this.rgba)},r.prototype.toRgbString=function(){return e=Op(this.rgba),t=e.r,i=e.g,s=e.b,(n=e.a)<1?"rgba("+t+", "+i+", "+s+", "+n+")":"rgb("+t+", "+i+", "+s+")";var e,t,i,s,n},r.prototype.toHsl=function(){return M7(Bl(this.rgba))},r.prototype.toHslString=function(){return e=M7(Bl(this.rgba)),t=e.h,i=e.s,s=e.l,(n=e.a)<1?"hsla("+t+", "+i+"%, "+s+"%, "+n+")":"hsl("+t+", "+i+"%, "+s+"%)";var e,t,i,s,n},r.prototype.toHsv=function(){return e=G7(this.rgba),{h:l0(e.h),s:l0(e.s),v:l0(e.v),a:l0(e.a,3)};var e},r.prototype.invert=function(){return oi({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},r.prototype.saturate=function(e){return e===void 0&&(e=.1),oi(Gp(this.rgba,e))},r.prototype.desaturate=function(e){return e===void 0&&(e=.1),oi(Gp(this.rgba,-e))},r.prototype.grayscale=function(){return oi(Gp(this.rgba,-1))},r.prototype.lighten=function(e){return e===void 0&&(e=.1),oi(B7(this.rgba,e))},r.prototype.darken=function(e){return e===void 0&&(e=.1),oi(B7(this.rgba,-e))},r.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},r.prototype.alpha=function(e){return typeof e=="number"?oi({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):l0(this.rgba.a,3);var t},r.prototype.hue=function(e){var t=Bl(this.rgba);return typeof e=="number"?oi({h:e,s:t.s,l:t.l,a:t.a}):l0(t.h)},r.prototype.isEqual=function(e){return this.toHex()===oi(e).toHex()},r}(),oi=function(r){return r instanceof zp?r:new zp(r)},R7=[],V7=function(r){r.forEach(function(e){R7.indexOf(e)<0&&(e(zp,Vp),R7.push(e))})};function z7(r,e){var t={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},i={};for(var s in t)i[t[s]]=s;var n={};r.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,l,c=i[this.toHex()];if(c)return c;if(o?.closest){var h=this.toRgb(),d=1/0,p="black";if(!n.length)for(var g in t)n[g]=new r(t[g]).toRgb();for(var v in t){var C=(a=h,l=n[v],Math.pow(a.r-l.r,2)+Math.pow(a.g-l.g,2)+Math.pow(a.b-l.b,2));Cs===e[n]);if(r!==null&&e!==null){let s=Object.keys(r),n=Object.keys(e);return s.length!==n.length?!1:s.every(o=>r[o]===e[o])}return r===e}toRgba(){let[r,e,t,i]=this._components;return{r,g:e,b:t,a:i}}toRgb(){let[r,e,t]=this._components;return{r,g:e,b:t}}toRgbaString(){let[r,e,t]=this.toUint8RgbArray();return`rgba(${r},${e},${t},${this.alpha})`}toUint8RgbArray(r){let[e,t,i]=this._components;return r=r??[],r[0]=Math.round(e*255),r[1]=Math.round(t*255),r[2]=Math.round(i*255),r}toRgbArray(r){r=r??[];let[e,t,i]=this._components;return r[0]=e,r[1]=t,r[2]=i,r}toNumber(){return this._int}toLittleEndianNumber(){let r=this._int;return(r>>16)+(r&65280)+((r&255)<<16)}multiply(r){let[e,t,i,s]=qo.temp.setValue(r)._components;return this._components[0]*=e,this._components[1]*=t,this._components[2]*=i,this._components[3]*=s,this.refreshInt(),this._value=null,this}premultiply(r,e=!0){return e&&(this._components[0]*=r,this._components[1]*=r,this._components[2]*=r),this._components[3]=r,this.refreshInt(),this._value=null,this}toPremultiplied(r,e=!0){if(r===1)return(255<<24)+this._int;if(r===0)return e?0:this._int;let t=this._int>>16&255,i=this._int>>8&255,s=this._int&255;return e&&(t=t*r+.5|0,i=i*r+.5|0,s=s*r+.5|0),(r*255<<24)+(t<<16)+(i<<8)+s}toHex(){let r=this._int.toString(16);return`#${"000000".substring(0,6-r.length)+r}`}toHexa(){let e=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-e.length)+e}setAlpha(r){return this._components[3]=this._clamp(r),this}round(r){let[e,t,i]=this._components;return this._components[0]=Math.round(e*r)/r,this._components[1]=Math.round(t*r)/r,this._components[2]=Math.round(i*r)/r,this.refreshInt(),this._value=null,this}toArray(r){r=r??[];let[e,t,i,s]=this._components;return r[0]=e,r[1]=t,r[2]=i,r[3]=s,r}normalize(r){let e,t,i,s;if((typeof r=="number"||r instanceof Number)&&r>=0&&r<=16777215){let n=r;e=(n>>16&255)/255,t=(n>>8&255)/255,i=(n&255)/255,s=1}else if((Array.isArray(r)||r instanceof Float32Array)&&r.length>=3&&r.length<=4)r=this._clamp(r),[e,t,i,s=1]=r;else if((r instanceof Uint8Array||r instanceof Uint8ClampedArray)&&r.length>=3&&r.length<=4)r=this._clamp(r,0,255),[e,t,i,s=255]=r,e/=255,t/=255,i/=255,s/=255;else if(typeof r=="string"||typeof r=="object"){if(typeof r=="string"){let o=qo.HEX_PATTERN.exec(r);o&&(r=`#${o[2]}`)}let n=oi(r);n.isValid()&&({r:e,g:t,b:i,a:s}=n.rgba,e/=255,t/=255,i/=255)}if(e!==void 0)this._components[0]=e,this._components[1]=t,this._components[2]=i,this._components[3]=s,this.refreshInt();else throw new Error(`Unable to convert color ${r}`)}refreshInt(){this._clamp(this._components);let[r,e,t]=this._components;this._int=(r*255<<16)+(e*255<<8)+(t*255|0)}_clamp(r,e=0,t=1){return typeof r=="number"?Math.min(Math.max(r,e),t):(r.forEach((i,s)=>{r[s]=Math.min(Math.max(i,e),t)}),r)}},Me=qo;Me.shared=new qo;Me.temp=new qo;Me.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;function W7(r,e=[]){return Ue("7.2.0","utils.hex2rgb is deprecated, use Color#toRgbArray instead"),Me.shared.setValue(r).toRgbArray(e)}function H7(r){return Ue("7.2.0","utils.hex2string is deprecated, use Color#toHex instead"),Me.shared.setValue(r).toHex()}function j7(r){return Ue("7.2.0","utils.string2hex is deprecated, use Color#toNumber instead"),Me.shared.setValue(r).toNumber()}function $7(r){return Ue("7.2.0","utils.rgb2hex is deprecated, use Color#toNumber instead"),Me.shared.setValue(r).toNumber()}function eE(){let r=[],e=[];for(let i=0;i<32;i++)r[i]=i,e[i]=i;r[ke.NORMAL_NPM]=ke.NORMAL,r[ke.ADD_NPM]=ke.ADD,r[ke.SCREEN_NPM]=ke.SCREEN,e[ke.NORMAL]=ke.NORMAL_NPM,e[ke.ADD]=ke.ADD_NPM,e[ke.SCREEN]=ke.SCREEN_NPM;let t=[];return t.push(e),t.push(r),t}var Rl=eE();function q7(r,e){return Rl[e?1:0][r]}function Y7(r,e,t,i=!0){return Ue("7.2.0","utils.premultiplyRgba has moved to Color.premultiply"),Me.shared.setValue(r).premultiply(e,i).toArray(t??new Float32Array(4))}function X7(r,e){return Ue("7.2.0","utils.premultiplyTint has moved to Color.toPremultiplied"),Me.shared.setValue(r).toPremultiplied(e)}function K7(r,e,t,i=!0){return Ue("7.2.0","utils.premultiplyTintToRgba has moved to Color.premultiply"),Me.shared.setValue(r).premultiply(e,i).toArray(t??new Float32Array(4))}var Ih=/^\s*data:(?:([\w-]+)\/([\w+.-]+))?(?:;charset=([\w-]+))?(?:;(base64))?,(.*)/i;function Z7(r,e=null){let t=r*6;if(e=e||new Uint16Array(t),e.length!==t)throw new Error(`Out buffer length is incorrect, got ${e.length} and expected ${t}`);for(let i=0,s=0;i>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r+1}function Ol(r){return!(r&r-1)&&!!r}function Gl(r){let e=(r>65535?1:0)<<4;r>>>=e;let t=(r>255?1:0)<<3;return r>>>=t,e|=t,t=(r>15?1:0)<<2,r>>>=t,e|=t,t=(r>3?1:0)<<1,r>>>=t,e|=t,e|r>>1}function Lh(r,e,t){let i=r.length,s;if(e>=i||t===0)return;t=e+t>i?i-e:t;let n=i-t;for(s=e;s(r.Renderer="renderer",r.Application="application",r.RendererSystem="renderer-webgl-system",r.RendererPlugin="renderer-webgl-plugin",r.CanvasRendererSystem="renderer-canvas-system",r.CanvasRendererPlugin="renderer-canvas-plugin",r.Asset="asset",r.LoadParser="load-parser",r.ResolveParser="resolve-parser",r.CacheParser="cache-parser",r.DetectionParser="detection-parser",r))(Z||{}),Wp=r=>{if(typeof r=="function"||typeof r=="object"&&r.extension){if(!r.extension)throw new Error("Extension class must have an extension object");r={...typeof r.extension!="object"?{type:r.extension}:r.extension,ref:r}}if(typeof r=="object")r={...r};else throw new Error("Invalid extension type");return typeof r.type=="string"&&(r.type=[r.type]),r},l3=(r,e)=>Wp(r).priority??e,te={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...r){return r.map(Wp).forEach(e=>{e.type.forEach(t=>this._removeHandlers[t]?.(e))}),this},add(...r){return r.map(Wp).forEach(e=>{e.type.forEach(t=>{let i=this._addHandlers,s=this._queue;i[t]?i[t](e):(s[t]=s[t]||[],s[t].push(e))})}),this},handle(r,e,t){let i=this._addHandlers,s=this._removeHandlers;if(i[r]||s[r])throw new Error(`Extension type ${r} already has a handler`);i[r]=e,s[r]=t;let n=this._queue;return n[r]&&(n[r].forEach(o=>e(o)),delete n[r]),this},handleByMap(r,e){return this.handle(r,t=>{e[t.name]=t.ref},t=>{delete e[t.name]})},handleByList(r,e,t=-1){return this.handle(r,i=>{e.includes(i.ref)||(e.push(i.ref),e.sort((s,n)=>l3(n,t)-l3(s,t)))},i=>{let s=e.indexOf(i.ref);s!==-1&&e.splice(s,1)})}};var $s=class{constructor(e){typeof e=="number"?this.rawBinaryData=new ArrayBuffer(e):e instanceof Uint8Array?this.rawBinaryData=e.buffer:this.rawBinaryData=e,this.uint32View=new Uint32Array(this.rawBinaryData),this.float32View=new Float32Array(this.rawBinaryData)}get int8View(){return this._int8View||(this._int8View=new Int8Array(this.rawBinaryData)),this._int8View}get uint8View(){return this._uint8View||(this._uint8View=new Uint8Array(this.rawBinaryData)),this._uint8View}get int16View(){return this._int16View||(this._int16View=new Int16Array(this.rawBinaryData)),this._int16View}get uint16View(){return this._uint16View||(this._uint16View=new Uint16Array(this.rawBinaryData)),this._uint16View}get int32View(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View}view(e){return this[`${e}View`]}destroy(){this.rawBinaryData=null,this._int8View=null,this._uint8View=null,this._int16View=null,this._uint16View=null,this._int32View=null,this.uint32View=null,this.float32View=null}static sizeOf(e){switch(e){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${e} isn't a valid view type`)}}};var iE=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(` -`);function sE(r){let e="";for(let t=0;t0&&(e+=` -else `),t=0;--i){let s=Xo[i];if(s.test&&s.test(r,t))return new s(r,e)}throw new Error("Unrecognized source type to auto-detect Resource")}var Ht=class{constructor(e){this.items=[],this._name=e,this._aliasCount=0}emit(e,t,i,s,n,o,a,l){if(arguments.length>8)throw new Error("max arguments reached");let{name:c,items:h}=this;this._aliasCount++;for(let d=0,p=h.length;d0&&this.items.length>1&&(this._aliasCount=0,this.items=this.items.slice(0))}add(e){return e[this._name]&&(this.ensureNonAliasedItems(),this.remove(e),this.items.push(e)),this}remove(e){let t=this.items.indexOf(e);return t!==-1&&(this.ensureNonAliasedItems(),this.items.splice(t,1)),this}contains(e){return this.items.includes(e)}removeAll(){return this.ensureNonAliasedItems(),this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}};Object.defineProperties(Ht.prototype,{dispatch:{value:Ht.prototype.emit},run:{value:Ht.prototype.emit}});var fr=class{constructor(e=0,t=0){this._width=e,this._height=t,this.destroyed=!1,this.internal=!1,this.onResize=new Ht("setRealSize"),this.onUpdate=new Ht("update"),this.onError=new Ht("onError")}bind(e){this.onResize.add(e),this.onUpdate.add(e),this.onError.add(e),(this._width||this._height)&&this.onResize.emit(this._width,this._height)}unbind(e){this.onResize.remove(e),this.onUpdate.remove(e),this.onError.remove(e)}resize(e,t){(e!==this._width||t!==this._height)&&(this._width=e,this._height=t,this.onResize.emit(e,t))}get valid(){return!!this._width&&!!this._height}update(){this.destroyed||this.onUpdate.emit()}load(){return Promise.resolve(this)}get width(){return this._width}get height(){return this._height}style(e,t,i){return!1}dispose(){}destroy(){this.destroyed||(this.destroyed=!0,this.dispose(),this.onError.removeAll(),this.onError=null,this.onResize.removeAll(),this.onResize=null,this.onUpdate.removeAll(),this.onUpdate=null)}static test(e,t){return!1}};var Q0=class extends fr{constructor(e,t){let{width:i,height:s}=t||{};if(!i||!s)throw new Error("BufferResource width or height invalid");super(i,s),this.data=e}upload(e,t,i){let s=e.gl;s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.alphaMode===Qt.UNPACK);let n=t.realWidth,o=t.realHeight;return i.width===n&&i.height===o?s.texSubImage2D(t.target,0,0,0,n,o,t.format,i.type,this.data):(i.width=n,i.height=o,s.texImage2D(t.target,0,i.internalFormat,n,o,0,t.format,i.type,this.data)),!0}dispose(){this.data=null}static test(e){return e instanceof Float32Array||e instanceof Uint8Array||e instanceof Uint32Array}};var nE={scaleMode:Nr.NEAREST,format:le.RGBA,alphaMode:Qt.NPM},Zo=class extends js.default{constructor(r=null,e=null){super(),e=Object.assign({},Zo.defaultOptions,e);let{alphaMode:t,mipmap:i,anisotropicLevel:s,scaleMode:n,width:o,height:a,wrapMode:l,format:c,type:h,target:d,resolution:p,resourceOptions:g}=e;r&&!(r instanceof fr)&&(r=Ko(r,g),r.internal=!0),this.resolution=p||K.RESOLUTION,this.width=Math.round((o||0)*this.resolution)/this.resolution,this.height=Math.round((a||0)*this.resolution)/this.resolution,this._mipmap=i,this.anisotropicLevel=s,this._wrapMode=l,this._scaleMode=n,this.format=c,this.type=h,this.target=d,this.alphaMode=t,this.uid=_i(),this.touched=0,this.isPowerOfTwo=!1,this._refreshPOT(),this._glTextures={},this.dirtyId=0,this.dirtyStyleId=0,this.cacheId=null,this.valid=o>0&&a>0,this.textureCacheIds=[],this.destroyed=!1,this.resource=null,this._batchEnabled=0,this._batchLocation=0,this.parentTextureArray=null,this.setResource(r)}get realWidth(){return Math.round(this.width*this.resolution)}get realHeight(){return Math.round(this.height*this.resolution)}get mipmap(){return this._mipmap}set mipmap(r){this._mipmap!==r&&(this._mipmap=r,this.dirtyStyleId++)}get scaleMode(){return this._scaleMode}set scaleMode(r){this._scaleMode!==r&&(this._scaleMode=r,this.dirtyStyleId++)}get wrapMode(){return this._wrapMode}set wrapMode(r){this._wrapMode!==r&&(this._wrapMode=r,this.dirtyStyleId++)}setStyle(r,e){let t;return r!==void 0&&r!==this.scaleMode&&(this.scaleMode=r,t=!0),e!==void 0&&e!==this.mipmap&&(this.mipmap=e,t=!0),t&&this.dirtyStyleId++,this}setSize(r,e,t){return t=t||this.resolution,this.setRealSize(r*t,e*t,t)}setRealSize(r,e,t){return this.resolution=t||this.resolution,this.width=Math.round(r)/this.resolution,this.height=Math.round(e)/this.resolution,this._refreshPOT(),this.update(),this}_refreshPOT(){this.isPowerOfTwo=Ol(this.realWidth)&&Ol(this.realHeight)}setResolution(r){let e=this.resolution;return e===r?this:(this.resolution=r,this.valid&&(this.width=Math.round(this.width*e)/r,this.height=Math.round(this.height*e)/r,this.emit("update",this)),this._refreshPOT(),this)}setResource(r){if(this.resource===r)return this;if(this.resource)throw new Error("Resource can be set only once");return r.bind(this),this.resource=r,this}update(){this.valid?(this.dirtyId++,this.dirtyStyleId++,this.emit("update",this)):this.width>0&&this.height>0&&(this.valid=!0,this.emit("loaded",this),this.emit("update",this))}onError(r){this.emit("error",this,r)}destroy(){this.resource&&(this.resource.unbind(this),this.resource.internal&&this.resource.destroy(),this.resource=null),this.cacheId&&(delete O0[this.cacheId],delete c0[this.cacheId],this.cacheId=null),this.dispose(),Zo.removeFromCache(this),this.textureCacheIds=null,this.destroyed=!0}dispose(){this.emit("dispose",this)}castToBaseTexture(){return this}static from(r,e,t=K.STRICT_TEXTURE_CACHE){let i=typeof r=="string",s=null;if(i)s=r;else{if(!r._pixiId){let o=e?.pixiIdPrefix||"pixiid";r._pixiId=`${o}_${_i()}`}s=r._pixiId}let n=O0[s];if(i&&t&&!n)throw new Error(`The cacheId "${s}" does not exist in BaseTextureCache.`);return n||(n=new Zo(r,e),n.cacheId=s,Zo.addToCache(n,s)),n}static fromBuffer(r,e,t,i){r=r||new Float32Array(e*t*4);let s=new Q0(r,{width:e,height:t}),n=r instanceof Float32Array?Ce.FLOAT:Ce.UNSIGNED_BYTE;return new Zo(s,Object.assign({},nE,{type:n},i))}static addToCache(r,e){e&&(r.textureCacheIds.includes(e)||r.textureCacheIds.push(e),O0[e]&&O0[e]!==r&&console.warn(`BaseTexture added to the cache with an id [${e}] that already had an entry`),O0[e]=r)}static removeFromCache(r){if(typeof r=="string"){let e=O0[r];if(e){let t=e.textureCacheIds.indexOf(r);return t>-1&&e.textureCacheIds.splice(t,1),delete O0[r],e}}else if(r?.textureCacheIds){for(let e=0;e1){for(let d=0;d(r[r.POLY=0]="POLY",r[r.RECT=1]="RECT",r[r.CIRC=2]="CIRC",r[r.ELIP=3]="ELIP",r[r.RREC=4]="RREC",r))(vt||{});var Ne=class r{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new r(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[@pixi/math:Point x=${this.x} y=${this.y}]`}};var Oh=[new Ne,new Ne,new Ne,new Ne],Ie=class r{constructor(e=0,t=0,i=0,s=0){this.x=Number(e),this.y=Number(t),this.width=Number(i),this.height=Number(s),this.type=vt.RECT}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}static get EMPTY(){return new r(0,0,0,0)}clone(){return new r(this.x,this.y,this.width,this.height)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}contains(e,t){return this.width<=0||this.height<=0?!1:e>=this.x&&e=this.y&&te.right?e.right:this.right)<=R)return!1;let U=this.ye.bottom?e.bottom:this.bottom)>U}let i=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=i||o<=n)return!1;let a=Oh[0].set(e.left,e.top),l=Oh[1].set(e.left,e.bottom),c=Oh[2].set(e.right,e.top),h=Oh[3].set(e.right,e.bottom);if(c.x<=a.x||l.y<=a.y)return!1;let d=Math.sign(t.a*t.d-t.b*t.c);if(d===0||(t.apply(a,a),t.apply(l,l),t.apply(c,c),t.apply(h,h),Math.max(a.x,l.x,c.x,h.x)<=i||Math.min(a.x,l.x,c.x,h.x)>=s||Math.max(a.y,l.y,c.y,h.y)<=n||Math.min(a.y,l.y,c.y,h.y)>=o))return!1;let p=d*(l.y-a.y),g=d*(a.x-l.x),v=p*i+g*n,C=p*s+g*n,w=p*i+g*o,k=p*s+g*o;if(Math.max(v,C,w,k)<=p*a.x+g*a.y||Math.min(v,C,w,k)>=p*h.x+g*h.y)return!1;let B=d*(a.y-c.y),L=d*(c.x-a.x),T=B*i+L*n,W=B*s+L*n,j=B*i+L*o,I=B*s+L*o;return!(Math.max(T,W,j,I)<=B*a.x+L*a.y||Math.min(T,W,j,I)>=B*h.x+L*h.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=e*2,this.height+=t*2,this}fit(e){let t=Math.max(this.x,e.x),i=Math.min(this.x+this.width,e.x+e.width),s=Math.max(this.y,e.y),n=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(i-t,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(e=1,t=.001){let i=Math.ceil((this.x+this.width-t)*e)/e,s=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=i-this.x,this.height=s-this.y,this}enlarge(e){let t=Math.min(this.x,e.x),i=Math.max(this.x+this.width,e.x+e.width),s=Math.min(this.y,e.y),n=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=i-t,this.y=s,this.height=n-s,this}toString(){return`[@pixi/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}};var zl=class r{constructor(e=0,t=0,i=0){this.x=e,this.y=t,this.radius=i,this.type=vt.CIRC}clone(){return new r(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;let i=this.radius*this.radius,s=this.x-e,n=this.y-t;return s*=s,n*=n,s+n<=i}getBounds(){return new Ie(this.x-this.radius,this.y-this.radius,this.radius*2,this.radius*2)}toString(){return`[@pixi/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}};var Wl=class r{constructor(e=0,t=0,i=0,s=0){this.x=e,this.y=t,this.width=i,this.height=s,this.type=vt.ELIP}clone(){return new r(this.x,this.y,this.width,this.height)}contains(e,t){if(this.width<=0||this.height<=0)return!1;let i=(e-this.x)/this.width,s=(t-this.y)/this.height;return i*=i,s*=s,i+s<=1}getBounds(){return new Ie(this.x-this.width,this.y-this.height,this.width,this.height)}toString(){return`[@pixi/math:Ellipse x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}};var hs=class r{constructor(...e){let t=Array.isArray(e[0])?e[0]:e;if(typeof t[0]!="number"){let i=[];for(let s=0,n=t.length;st!=h>t&&e<(c-a)*((t-l)/(h-l))+a&&(i=!i)}return i}toString(){return`[@pixi/math:PolygoncloseStroke=${this.closeStroke}points=${this.points.reduce((e,t)=>`${e}, ${t}`,"")}]`}};var Hl=class r{constructor(e=0,t=0,i=0,s=0,n=20){this.x=e,this.y=t,this.width=i,this.height=s,this.radius=n,this.type=vt.RREC}clone(){return new r(this.x,this.y,this.width,this.height,this.radius)}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){let i=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+i&&t<=this.y+this.height-i||e>=this.x+i&&e<=this.x+this.width-i)return!0;let s=e-(this.x+i),n=t-(this.y+i),o=i*i;if(s*s+n*n<=o||(s=e-(this.x+this.width-i),s*s+n*n<=o)||(n=t-(this.y+this.height-i),s*s+n*n<=o)||(s=e-(this.x+i),s*s+n*n<=o))return!0}return!1}toString(){return`[@pixi/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}};var je=class r{constructor(e=1,t=0,i=0,s=1,n=0,o=0){this.array=null,this.a=e,this.b=t,this.c=i,this.d=s,this.tx=n,this.ty=o}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,i,s,n,o){return this.a=e,this.b=t,this.c=i,this.d=s,this.tx=n,this.ty=o,this}toArray(e,t){this.array||(this.array=new Float32Array(9));let i=t||this.array;return e?(i[0]=this.a,i[1]=this.b,i[2]=0,i[3]=this.c,i[4]=this.d,i[5]=0,i[6]=this.tx,i[7]=this.ty,i[8]=1):(i[0]=this.a,i[1]=this.c,i[2]=this.tx,i[3]=this.b,i[4]=this.d,i[5]=this.ty,i[6]=0,i[7]=0,i[8]=1),i}apply(e,t){t=t||new Ne;let i=e.x,s=e.y;return t.x=this.a*i+this.c*s+this.tx,t.y=this.b*i+this.d*s+this.ty,t}applyInverse(e,t){t=t||new Ne;let i=1/(this.a*this.d+this.c*-this.b),s=e.x,n=e.y;return t.x=this.d*i*s+-this.c*i*n+(this.ty*this.c-this.tx*this.d)*i,t.y=this.a*i*n+-this.b*i*s+(-this.ty*this.a+this.tx*this.b)*i,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){let t=Math.cos(e),i=Math.sin(e),s=this.a,n=this.c,o=this.tx;return this.a=s*t-this.b*i,this.b=s*i+this.b*t,this.c=n*t-this.d*i,this.d=n*i+this.d*t,this.tx=o*t-this.ty*i,this.ty=o*i+this.ty*t,this}append(e){let t=this.a,i=this.b,s=this.c,n=this.d;return this.a=e.a*t+e.b*s,this.b=e.a*i+e.b*n,this.c=e.c*t+e.d*s,this.d=e.c*i+e.d*n,this.tx=e.tx*t+e.ty*s+this.tx,this.ty=e.tx*i+e.ty*n+this.ty,this}setTransform(e,t,i,s,n,o,a,l,c){return this.a=Math.cos(a+c)*n,this.b=Math.sin(a+c)*n,this.c=-Math.sin(a-l)*o,this.d=Math.cos(a-l)*o,this.tx=e-(i*this.a+s*this.c),this.ty=t-(i*this.b+s*this.d),this}prepend(e){let t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){let i=this.a,s=this.c;this.a=i*e.a+this.b*e.c,this.b=i*e.b+this.b*e.d,this.c=s*e.a+this.d*e.c,this.d=s*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){let t=this.a,i=this.b,s=this.c,n=this.d,o=e.pivot,a=-Math.atan2(-s,n),l=Math.atan2(i,t),c=Math.abs(a+l);return c<1e-5||Math.abs(Ys-c)<1e-5?(e.rotation=l,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=l),e.scale.x=Math.sqrt(t*t+i*i),e.scale.y=Math.sqrt(s*s+n*n),e.position.x=this.tx+(o.x*t+o.y*s),e.position.y=this.ty+(o.x*i+o.y*n),e}invert(){let e=this.a,t=this.b,i=this.c,s=this.d,n=this.tx,o=e*s-t*i;return this.a=s/o,this.b=-t/o,this.c=-i/o,this.d=e/o,this.tx=(i*this.ty-s*n)/o,this.ty=-(e*this.ty-t*n)/o,this}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){let e=new r;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}toString(){return`[@pixi/math:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return new r}static get TEMP_MATRIX(){return new r}};var Hn=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],jn=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],$n=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],qn=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],Qp=[],h3=[],Gh=Math.sign;function uE(){for(let r=0;r<16;r++){let e=[];Qp.push(e);for(let t=0;t<16;t++){let i=Gh(Hn[r]*Hn[t]+$n[r]*jn[t]),s=Gh(jn[r]*Hn[t]+qn[r]*jn[t]),n=Gh(Hn[r]*$n[t]+$n[r]*qn[t]),o=Gh(jn[r]*$n[t]+qn[r]*qn[t]);for(let a=0;a<16;a++)if(Hn[a]===i&&jn[a]===s&&$n[a]===n&&qn[a]===o){e.push(a);break}}}for(let r=0;r<16;r++){let e=new je;e.set(Hn[r],jn[r],$n[r],qn[r],0,0),h3.push(e)}}uE();var Ct={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:r=>Hn[r],uY:r=>jn[r],vX:r=>$n[r],vY:r=>qn[r],inv:r=>r&8?r&15:-r&7,add:(r,e)=>Qp[r][e],sub:(r,e)=>Qp[r][Ct.inv(e)],rotate180:r=>r^4,isVertical:r=>(r&3)===2,byDirection:(r,e)=>Math.abs(r)*2<=Math.abs(e)?e>=0?Ct.S:Ct.N:Math.abs(e)*2<=Math.abs(r)?r>0?Ct.E:Ct.W:e>0?r>0?Ct.SE:Ct.SW:r>0?Ct.NE:Ct.NW,matrixAppendRotationInv:(r,e,t=0,i=0)=>{let s=h3[Ct.inv(e)];s.tx=t,s.ty=i,r.append(s)}};var Rr=class r{constructor(e,t,i=0,s=0){this._x=i,this._y=s,this.cb=e,this.scope=t}clone(e=this.cb,t=this.scope){return new r(e,t,this._x,this._y)}set(e=0,t=e){return(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this.cb.call(this.scope)),this}copyFrom(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this.cb.call(this.scope)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}toString(){return`[@pixi/math:ObservablePoint x=0 y=0 scope=${this.scope}]`}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this.cb.call(this.scope))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this.cb.call(this.scope))}};var d3=class{constructor(){this.worldTransform=new je,this.localTransform=new je,this.position=new Rr(this.onChange,this,0,0),this.scale=new Rr(this.onChange,this,1,1),this.pivot=new Rr(this.onChange,this,0,0),this.skew=new Rr(this.updateSkew,this,0,0),this._rotation=0,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._localID=0,this._currentLocalID=0,this._worldID=0,this._parentID=0}onChange(){this._localID++}updateSkew(){this._cx=Math.cos(this._rotation+this.skew.y),this._sx=Math.sin(this._rotation+this.skew.y),this._cy=-Math.sin(this._rotation-this.skew.x),this._sy=Math.cos(this._rotation-this.skew.x),this._localID++}toString(){return`[@pixi/math:Transform position=(${this.position.x}, ${this.position.y}) rotation=${this.rotation} scale=(${this.scale.x}, ${this.scale.y}) skew=(${this.skew.x}, ${this.skew.y}) ]`}updateLocalTransform(){let r=this.localTransform;this._localID!==this._currentLocalID&&(r.a=this._cx*this.scale.x,r.b=this._sx*this.scale.x,r.c=this._cy*this.scale.y,r.d=this._sy*this.scale.y,r.tx=this.position.x-(this.pivot.x*r.a+this.pivot.y*r.c),r.ty=this.position.y-(this.pivot.x*r.b+this.pivot.y*r.d),this._currentLocalID=this._localID,this._parentID=-1)}updateTransform(r){let e=this.localTransform;if(this._localID!==this._currentLocalID&&(e.a=this._cx*this.scale.x,e.b=this._sx*this.scale.x,e.c=this._cy*this.scale.y,e.d=this._sy*this.scale.y,e.tx=this.position.x-(this.pivot.x*e.a+this.pivot.y*e.c),e.ty=this.position.y-(this.pivot.x*e.b+this.pivot.y*e.d),this._currentLocalID=this._localID,this._parentID=-1),this._parentID!==r._worldID){let t=r.worldTransform,i=this.worldTransform;i.a=e.a*t.a+e.b*t.c,i.b=e.a*t.b+e.b*t.d,i.c=e.c*t.a+e.d*t.c,i.d=e.c*t.b+e.d*t.d,i.tx=e.tx*t.a+e.ty*t.c+t.tx,i.ty=e.tx*t.b+e.ty*t.d+t.ty,this._parentID=r._worldID,this._worldID++}}setFromMatrix(r){r.decompose(this),this._localID++}get rotation(){return this._rotation}set rotation(r){this._rotation!==r&&(this._rotation=r,this.updateSkew())}},Yn=d3;Yn.IDENTITY=new d3;var p3=`varying vec2 vTextureCoord; +Deprecated since v${r}`),console.warn(i))),F7[e]=!0}function A7(){Ue("7.0.0","skipHello is deprecated, please use settings.RENDER_OPTIONS.hello")}function k7(){Ue("7.0.0",`sayHello is deprecated, please use Renderer's "hello" option`)}var Rp;function Ah(){return typeof Rp>"u"&&(Rp=function(){let e={stencil:!0,failIfMajorPerformanceCaveat:K.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT};try{if(!K.ADAPTER.getWebGLRenderingContext())return!1;let t=K.ADAPTER.createCanvas(),i=t.getContext("webgl",e)||t.getContext("experimental-webgl",e),s=!!i?.getContextAttributes()?.stencil;if(i){let n=i.getExtension("WEBGL_lose_context");n&&n.loseContext()}return i=null,s}catch{return!1}}()),Rp}var Yb={grad:.9,turn:360,rad:360/(2*Math.PI)},us=function(r){return typeof r=="string"?r.length>0:typeof r=="number"},l0=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*r)/t+0},Br=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),r>t?t:r>e?r:e},O7=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},I7=function(r){return{r:Br(r.r,0,255),g:Br(r.g,0,255),b:Br(r.b,0,255),a:Br(r.a)}},Op=function(r){return{r:l0(r.r),g:l0(r.g),b:l0(r.b),a:l0(r.a,3)}},Xb=/^#([0-9a-f]{3,8})$/i,kh=function(r){var e=r.toString(16);return e.length<2?"0"+e:e},G7=function(r){var e=r.r,t=r.g,i=r.b,s=r.a,n=Math.max(e,t,i),o=n-Math.min(e,t,i),a=o?n===e?(t-i)/o:n===t?2+(i-e)/o:4+(e-t)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},U7=function(r){var e=r.h,t=r.s,i=r.v,s=r.a;e=e/360*6,t/=100,i/=100;var n=Math.floor(e),o=i*(1-t),a=i*(1-(e-n)*t),l=i*(1-(1-e+n)*t),c=n%6;return{r:255*[i,a,o,o,l,i][c],g:255*[l,i,i,a,o,o][c],b:255*[o,o,l,i,i,a][c],a:s}},L7=function(r){return{h:O7(r.h),s:Br(r.s,0,100),l:Br(r.l,0,100),a:Br(r.a)}},M7=function(r){return{h:l0(r.h),s:l0(r.s),l:l0(r.l),a:l0(r.a,3)}},N7=function(r){return U7((t=(e=r).s,{h:e.h,s:(t*=((i=e.l)<50?i:100-i)/100)>0?2*t/(i+t)*100:0,v:i+t,a:e.a}));var e,t,i},Bl=function(r){return{h:(e=G7(r)).h,s:(s=(200-(t=e.s))*(i=e.v)/100)>0&&s<200?t*i/100/(s<=100?s:200-s)*100:0,l:s/2,a:e.a};var e,t,i,s},Kb=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Zb=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Qb=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Jb=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Vp={string:[[function(r){var e=Xb.exec(r);return e?(r=e[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:r.length===4?l0(parseInt(r[3]+r[3],16)/255,2):1}:r.length===6||r.length===8?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:r.length===8?l0(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var e=Qb.exec(r)||Jb.exec(r);return e?e[2]!==e[4]||e[4]!==e[6]?null:I7({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(r){var e=Kb.exec(r)||Zb.exec(r);if(!e)return null;var t,i,s=L7({h:(t=e[1],i=e[2],i===void 0&&(i="deg"),Number(t)*(Yb[i]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return N7(s)},"hsl"]],object:[[function(r){var e=r.r,t=r.g,i=r.b,s=r.a,n=s===void 0?1:s;return us(e)&&us(t)&&us(i)?I7({r:Number(e),g:Number(t),b:Number(i),a:Number(n)}):null},"rgb"],[function(r){var e=r.h,t=r.s,i=r.l,s=r.a,n=s===void 0?1:s;if(!us(e)||!us(t)||!us(i))return null;var o=L7({h:Number(e),s:Number(t),l:Number(i),a:Number(n)});return N7(o)},"hsl"],[function(r){var e=r.h,t=r.s,i=r.v,s=r.a,n=s===void 0?1:s;if(!us(e)||!us(t)||!us(i))return null;var o=function(a){return{h:O7(a.h),s:Br(a.s,0,100),v:Br(a.v,0,100),a:Br(a.a)}}({h:Number(e),s:Number(t),v:Number(i),a:Number(n)});return U7(o)},"hsv"]]},P7=function(r,e){for(var t=0;t=.5},r.prototype.toHex=function(){return e=Op(this.rgba),t=e.r,i=e.g,s=e.b,o=(n=e.a)<1?kh(l0(255*n)):"","#"+kh(t)+kh(i)+kh(s)+o;var e,t,i,s,n,o},r.prototype.toRgb=function(){return Op(this.rgba)},r.prototype.toRgbString=function(){return e=Op(this.rgba),t=e.r,i=e.g,s=e.b,(n=e.a)<1?"rgba("+t+", "+i+", "+s+", "+n+")":"rgb("+t+", "+i+", "+s+")";var e,t,i,s,n},r.prototype.toHsl=function(){return M7(Bl(this.rgba))},r.prototype.toHslString=function(){return e=M7(Bl(this.rgba)),t=e.h,i=e.s,s=e.l,(n=e.a)<1?"hsla("+t+", "+i+"%, "+s+"%, "+n+")":"hsl("+t+", "+i+"%, "+s+"%)";var e,t,i,s,n},r.prototype.toHsv=function(){return e=G7(this.rgba),{h:l0(e.h),s:l0(e.s),v:l0(e.v),a:l0(e.a,3)};var e},r.prototype.invert=function(){return oi({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},r.prototype.saturate=function(e){return e===void 0&&(e=.1),oi(Gp(this.rgba,e))},r.prototype.desaturate=function(e){return e===void 0&&(e=.1),oi(Gp(this.rgba,-e))},r.prototype.grayscale=function(){return oi(Gp(this.rgba,-1))},r.prototype.lighten=function(e){return e===void 0&&(e=.1),oi(B7(this.rgba,e))},r.prototype.darken=function(e){return e===void 0&&(e=.1),oi(B7(this.rgba,-e))},r.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},r.prototype.alpha=function(e){return typeof e=="number"?oi({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):l0(this.rgba.a,3);var t},r.prototype.hue=function(e){var t=Bl(this.rgba);return typeof e=="number"?oi({h:e,s:t.s,l:t.l,a:t.a}):l0(t.h)},r.prototype.isEqual=function(e){return this.toHex()===oi(e).toHex()},r}(),oi=function(r){return r instanceof zp?r:new zp(r)},R7=[],V7=function(r){r.forEach(function(e){R7.indexOf(e)<0&&(e(zp,Vp),R7.push(e))})};function z7(r,e){var t={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},i={};for(var s in t)i[t[s]]=s;var n={};r.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,l,c=i[this.toHex()];if(c)return c;if(o?.closest){var h=this.toRgb(),d=1/0,p="black";if(!n.length)for(var g in t)n[g]=new r(t[g]).toRgb();for(var v in t){var C=(a=h,l=n[v],Math.pow(a.r-l.r,2)+Math.pow(a.g-l.g,2)+Math.pow(a.b-l.b,2));Cs===e[n]);if(r!==null&&e!==null){let s=Object.keys(r),n=Object.keys(e);return s.length!==n.length?!1:s.every(o=>r[o]===e[o])}return r===e}toRgba(){let[r,e,t,i]=this._components;return{r,g:e,b:t,a:i}}toRgb(){let[r,e,t]=this._components;return{r,g:e,b:t}}toRgbaString(){let[r,e,t]=this.toUint8RgbArray();return`rgba(${r},${e},${t},${this.alpha})`}toUint8RgbArray(r){let[e,t,i]=this._components;return r=r??[],r[0]=Math.round(e*255),r[1]=Math.round(t*255),r[2]=Math.round(i*255),r}toRgbArray(r){r=r??[];let[e,t,i]=this._components;return r[0]=e,r[1]=t,r[2]=i,r}toNumber(){return this._int}toLittleEndianNumber(){let r=this._int;return(r>>16)+(r&65280)+((r&255)<<16)}multiply(r){let[e,t,i,s]=qo.temp.setValue(r)._components;return this._components[0]*=e,this._components[1]*=t,this._components[2]*=i,this._components[3]*=s,this.refreshInt(),this._value=null,this}premultiply(r,e=!0){return e&&(this._components[0]*=r,this._components[1]*=r,this._components[2]*=r),this._components[3]=r,this.refreshInt(),this._value=null,this}toPremultiplied(r,e=!0){if(r===1)return(255<<24)+this._int;if(r===0)return e?0:this._int;let t=this._int>>16&255,i=this._int>>8&255,s=this._int&255;return e&&(t=t*r+.5|0,i=i*r+.5|0,s=s*r+.5|0),(r*255<<24)+(t<<16)+(i<<8)+s}toHex(){let r=this._int.toString(16);return`#${"000000".substring(0,6-r.length)+r}`}toHexa(){let e=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-e.length)+e}setAlpha(r){return this._components[3]=this._clamp(r),this}round(r){let[e,t,i]=this._components;return this._components[0]=Math.round(e*r)/r,this._components[1]=Math.round(t*r)/r,this._components[2]=Math.round(i*r)/r,this.refreshInt(),this._value=null,this}toArray(r){r=r??[];let[e,t,i,s]=this._components;return r[0]=e,r[1]=t,r[2]=i,r[3]=s,r}normalize(r){let e,t,i,s;if((typeof r=="number"||r instanceof Number)&&r>=0&&r<=16777215){let n=r;e=(n>>16&255)/255,t=(n>>8&255)/255,i=(n&255)/255,s=1}else if((Array.isArray(r)||r instanceof Float32Array)&&r.length>=3&&r.length<=4)r=this._clamp(r),[e,t,i,s=1]=r;else if((r instanceof Uint8Array||r instanceof Uint8ClampedArray)&&r.length>=3&&r.length<=4)r=this._clamp(r,0,255),[e,t,i,s=255]=r,e/=255,t/=255,i/=255,s/=255;else if(typeof r=="string"||typeof r=="object"){if(typeof r=="string"){let o=qo.HEX_PATTERN.exec(r);o&&(r=`#${o[2]}`)}let n=oi(r);n.isValid()&&({r:e,g:t,b:i,a:s}=n.rgba,e/=255,t/=255,i/=255)}if(e!==void 0)this._components[0]=e,this._components[1]=t,this._components[2]=i,this._components[3]=s,this.refreshInt();else throw new Error(`Unable to convert color ${r}`)}refreshInt(){this._clamp(this._components);let[r,e,t]=this._components;this._int=(r*255<<16)+(e*255<<8)+(t*255|0)}_clamp(r,e=0,t=1){return typeof r=="number"?Math.min(Math.max(r,e),t):(r.forEach((i,s)=>{r[s]=Math.min(Math.max(i,e),t)}),r)}},Me=qo;Me.shared=new qo;Me.temp=new qo;Me.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;function W7(r,e=[]){return Ue("7.2.0","utils.hex2rgb is deprecated, use Color#toRgbArray instead"),Me.shared.setValue(r).toRgbArray(e)}function H7(r){return Ue("7.2.0","utils.hex2string is deprecated, use Color#toHex instead"),Me.shared.setValue(r).toHex()}function j7(r){return Ue("7.2.0","utils.string2hex is deprecated, use Color#toNumber instead"),Me.shared.setValue(r).toNumber()}function $7(r){return Ue("7.2.0","utils.rgb2hex is deprecated, use Color#toNumber instead"),Me.shared.setValue(r).toNumber()}function tE(){let r=[],e=[];for(let i=0;i<32;i++)r[i]=i,e[i]=i;r[ke.NORMAL_NPM]=ke.NORMAL,r[ke.ADD_NPM]=ke.ADD,r[ke.SCREEN_NPM]=ke.SCREEN,e[ke.NORMAL]=ke.NORMAL_NPM,e[ke.ADD]=ke.ADD_NPM,e[ke.SCREEN]=ke.SCREEN_NPM;let t=[];return t.push(e),t.push(r),t}var Rl=tE();function q7(r,e){return Rl[e?1:0][r]}function Y7(r,e,t,i=!0){return Ue("7.2.0","utils.premultiplyRgba has moved to Color.premultiply"),Me.shared.setValue(r).premultiply(e,i).toArray(t??new Float32Array(4))}function X7(r,e){return Ue("7.2.0","utils.premultiplyTint has moved to Color.toPremultiplied"),Me.shared.setValue(r).toPremultiplied(e)}function K7(r,e,t,i=!0){return Ue("7.2.0","utils.premultiplyTintToRgba has moved to Color.premultiply"),Me.shared.setValue(r).premultiply(e,i).toArray(t??new Float32Array(4))}var Ih=/^\s*data:(?:([\w-]+)\/([\w+.-]+))?(?:;charset=([\w-]+))?(?:;(base64))?,(.*)/i;function Z7(r,e=null){let t=r*6;if(e=e||new Uint16Array(t),e.length!==t)throw new Error(`Out buffer length is incorrect, got ${e.length} and expected ${t}`);for(let i=0,s=0;i>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r+1}function Ol(r){return!(r&r-1)&&!!r}function Gl(r){let e=(r>65535?1:0)<<4;r>>>=e;let t=(r>255?1:0)<<3;return r>>>=t,e|=t,t=(r>15?1:0)<<2,r>>>=t,e|=t,t=(r>3?1:0)<<1,r>>>=t,e|=t,e|r>>1}function Lh(r,e,t){let i=r.length,s;if(e>=i||t===0)return;t=e+t>i?i-e:t;let n=i-t;for(s=e;s(r.Renderer="renderer",r.Application="application",r.RendererSystem="renderer-webgl-system",r.RendererPlugin="renderer-webgl-plugin",r.CanvasRendererSystem="renderer-canvas-system",r.CanvasRendererPlugin="renderer-canvas-plugin",r.Asset="asset",r.LoadParser="load-parser",r.ResolveParser="resolve-parser",r.CacheParser="cache-parser",r.DetectionParser="detection-parser",r))(Z||{}),Wp=r=>{if(typeof r=="function"||typeof r=="object"&&r.extension){if(!r.extension)throw new Error("Extension class must have an extension object");r={...typeof r.extension!="object"?{type:r.extension}:r.extension,ref:r}}if(typeof r=="object")r={...r};else throw new Error("Invalid extension type");return typeof r.type=="string"&&(r.type=[r.type]),r},l3=(r,e)=>Wp(r).priority??e,te={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...r){return r.map(Wp).forEach(e=>{e.type.forEach(t=>this._removeHandlers[t]?.(e))}),this},add(...r){return r.map(Wp).forEach(e=>{e.type.forEach(t=>{let i=this._addHandlers,s=this._queue;i[t]?i[t](e):(s[t]=s[t]||[],s[t].push(e))})}),this},handle(r,e,t){let i=this._addHandlers,s=this._removeHandlers;if(i[r]||s[r])throw new Error(`Extension type ${r} already has a handler`);i[r]=e,s[r]=t;let n=this._queue;return n[r]&&(n[r].forEach(o=>e(o)),delete n[r]),this},handleByMap(r,e){return this.handle(r,t=>{e[t.name]=t.ref},t=>{delete e[t.name]})},handleByList(r,e,t=-1){return this.handle(r,i=>{e.includes(i.ref)||(e.push(i.ref),e.sort((s,n)=>l3(n,t)-l3(s,t)))},i=>{let s=e.indexOf(i.ref);s!==-1&&e.splice(s,1)})}};var $s=class{constructor(e){typeof e=="number"?this.rawBinaryData=new ArrayBuffer(e):e instanceof Uint8Array?this.rawBinaryData=e.buffer:this.rawBinaryData=e,this.uint32View=new Uint32Array(this.rawBinaryData),this.float32View=new Float32Array(this.rawBinaryData)}get int8View(){return this._int8View||(this._int8View=new Int8Array(this.rawBinaryData)),this._int8View}get uint8View(){return this._uint8View||(this._uint8View=new Uint8Array(this.rawBinaryData)),this._uint8View}get int16View(){return this._int16View||(this._int16View=new Int16Array(this.rawBinaryData)),this._int16View}get uint16View(){return this._uint16View||(this._uint16View=new Uint16Array(this.rawBinaryData)),this._uint16View}get int32View(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View}view(e){return this[`${e}View`]}destroy(){this.rawBinaryData=null,this._int8View=null,this._uint8View=null,this._int16View=null,this._uint16View=null,this._int32View=null,this.uint32View=null,this.float32View=null}static sizeOf(e){switch(e){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${e} isn't a valid view type`)}}};var sE=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(` +`);function nE(r){let e="";for(let t=0;t0&&(e+=` +else `),t=0;--i){let s=Xo[i];if(s.test&&s.test(r,t))return new s(r,e)}throw new Error("Unrecognized source type to auto-detect Resource")}var Ht=class{constructor(e){this.items=[],this._name=e,this._aliasCount=0}emit(e,t,i,s,n,o,a,l){if(arguments.length>8)throw new Error("max arguments reached");let{name:c,items:h}=this;this._aliasCount++;for(let d=0,p=h.length;d0&&this.items.length>1&&(this._aliasCount=0,this.items=this.items.slice(0))}add(e){return e[this._name]&&(this.ensureNonAliasedItems(),this.remove(e),this.items.push(e)),this}remove(e){let t=this.items.indexOf(e);return t!==-1&&(this.ensureNonAliasedItems(),this.items.splice(t,1)),this}contains(e){return this.items.includes(e)}removeAll(){return this.ensureNonAliasedItems(),this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}};Object.defineProperties(Ht.prototype,{dispatch:{value:Ht.prototype.emit},run:{value:Ht.prototype.emit}});var fr=class{constructor(e=0,t=0){this._width=e,this._height=t,this.destroyed=!1,this.internal=!1,this.onResize=new Ht("setRealSize"),this.onUpdate=new Ht("update"),this.onError=new Ht("onError")}bind(e){this.onResize.add(e),this.onUpdate.add(e),this.onError.add(e),(this._width||this._height)&&this.onResize.emit(this._width,this._height)}unbind(e){this.onResize.remove(e),this.onUpdate.remove(e),this.onError.remove(e)}resize(e,t){(e!==this._width||t!==this._height)&&(this._width=e,this._height=t,this.onResize.emit(e,t))}get valid(){return!!this._width&&!!this._height}update(){this.destroyed||this.onUpdate.emit()}load(){return Promise.resolve(this)}get width(){return this._width}get height(){return this._height}style(e,t,i){return!1}dispose(){}destroy(){this.destroyed||(this.destroyed=!0,this.dispose(),this.onError.removeAll(),this.onError=null,this.onResize.removeAll(),this.onResize=null,this.onUpdate.removeAll(),this.onUpdate=null)}static test(e,t){return!1}};var Q0=class extends fr{constructor(e,t){let{width:i,height:s}=t||{};if(!i||!s)throw new Error("BufferResource width or height invalid");super(i,s),this.data=e}upload(e,t,i){let s=e.gl;s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.alphaMode===Qt.UNPACK);let n=t.realWidth,o=t.realHeight;return i.width===n&&i.height===o?s.texSubImage2D(t.target,0,0,0,n,o,t.format,i.type,this.data):(i.width=n,i.height=o,s.texImage2D(t.target,0,i.internalFormat,n,o,0,t.format,i.type,this.data)),!0}dispose(){this.data=null}static test(e){return e instanceof Float32Array||e instanceof Uint8Array||e instanceof Uint32Array}};var oE={scaleMode:Nr.NEAREST,format:le.RGBA,alphaMode:Qt.NPM},Zo=class extends js.default{constructor(r=null,e=null){super(),e=Object.assign({},Zo.defaultOptions,e);let{alphaMode:t,mipmap:i,anisotropicLevel:s,scaleMode:n,width:o,height:a,wrapMode:l,format:c,type:h,target:d,resolution:p,resourceOptions:g}=e;r&&!(r instanceof fr)&&(r=Ko(r,g),r.internal=!0),this.resolution=p||K.RESOLUTION,this.width=Math.round((o||0)*this.resolution)/this.resolution,this.height=Math.round((a||0)*this.resolution)/this.resolution,this._mipmap=i,this.anisotropicLevel=s,this._wrapMode=l,this._scaleMode=n,this.format=c,this.type=h,this.target=d,this.alphaMode=t,this.uid=_i(),this.touched=0,this.isPowerOfTwo=!1,this._refreshPOT(),this._glTextures={},this.dirtyId=0,this.dirtyStyleId=0,this.cacheId=null,this.valid=o>0&&a>0,this.textureCacheIds=[],this.destroyed=!1,this.resource=null,this._batchEnabled=0,this._batchLocation=0,this.parentTextureArray=null,this.setResource(r)}get realWidth(){return Math.round(this.width*this.resolution)}get realHeight(){return Math.round(this.height*this.resolution)}get mipmap(){return this._mipmap}set mipmap(r){this._mipmap!==r&&(this._mipmap=r,this.dirtyStyleId++)}get scaleMode(){return this._scaleMode}set scaleMode(r){this._scaleMode!==r&&(this._scaleMode=r,this.dirtyStyleId++)}get wrapMode(){return this._wrapMode}set wrapMode(r){this._wrapMode!==r&&(this._wrapMode=r,this.dirtyStyleId++)}setStyle(r,e){let t;return r!==void 0&&r!==this.scaleMode&&(this.scaleMode=r,t=!0),e!==void 0&&e!==this.mipmap&&(this.mipmap=e,t=!0),t&&this.dirtyStyleId++,this}setSize(r,e,t){return t=t||this.resolution,this.setRealSize(r*t,e*t,t)}setRealSize(r,e,t){return this.resolution=t||this.resolution,this.width=Math.round(r)/this.resolution,this.height=Math.round(e)/this.resolution,this._refreshPOT(),this.update(),this}_refreshPOT(){this.isPowerOfTwo=Ol(this.realWidth)&&Ol(this.realHeight)}setResolution(r){let e=this.resolution;return e===r?this:(this.resolution=r,this.valid&&(this.width=Math.round(this.width*e)/r,this.height=Math.round(this.height*e)/r,this.emit("update",this)),this._refreshPOT(),this)}setResource(r){if(this.resource===r)return this;if(this.resource)throw new Error("Resource can be set only once");return r.bind(this),this.resource=r,this}update(){this.valid?(this.dirtyId++,this.dirtyStyleId++,this.emit("update",this)):this.width>0&&this.height>0&&(this.valid=!0,this.emit("loaded",this),this.emit("update",this))}onError(r){this.emit("error",this,r)}destroy(){this.resource&&(this.resource.unbind(this),this.resource.internal&&this.resource.destroy(),this.resource=null),this.cacheId&&(delete O0[this.cacheId],delete c0[this.cacheId],this.cacheId=null),this.dispose(),Zo.removeFromCache(this),this.textureCacheIds=null,this.destroyed=!0}dispose(){this.emit("dispose",this)}castToBaseTexture(){return this}static from(r,e,t=K.STRICT_TEXTURE_CACHE){let i=typeof r=="string",s=null;if(i)s=r;else{if(!r._pixiId){let o=e?.pixiIdPrefix||"pixiid";r._pixiId=`${o}_${_i()}`}s=r._pixiId}let n=O0[s];if(i&&t&&!n)throw new Error(`The cacheId "${s}" does not exist in BaseTextureCache.`);return n||(n=new Zo(r,e),n.cacheId=s,Zo.addToCache(n,s)),n}static fromBuffer(r,e,t,i){r=r||new Float32Array(e*t*4);let s=new Q0(r,{width:e,height:t}),n=r instanceof Float32Array?Ce.FLOAT:Ce.UNSIGNED_BYTE;return new Zo(s,Object.assign({},oE,{type:n},i))}static addToCache(r,e){e&&(r.textureCacheIds.includes(e)||r.textureCacheIds.push(e),O0[e]&&O0[e]!==r&&console.warn(`BaseTexture added to the cache with an id [${e}] that already had an entry`),O0[e]=r)}static removeFromCache(r){if(typeof r=="string"){let e=O0[r];if(e){let t=e.textureCacheIds.indexOf(r);return t>-1&&e.textureCacheIds.splice(t,1),delete O0[r],e}}else if(r?.textureCacheIds){for(let e=0;e1){for(let d=0;d(r[r.POLY=0]="POLY",r[r.RECT=1]="RECT",r[r.CIRC=2]="CIRC",r[r.ELIP=3]="ELIP",r[r.RREC=4]="RREC",r))(vt||{});var Ne=class r{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new r(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[@pixi/math:Point x=${this.x} y=${this.y}]`}};var Oh=[new Ne,new Ne,new Ne,new Ne],Ie=class r{constructor(e=0,t=0,i=0,s=0){this.x=Number(e),this.y=Number(t),this.width=Number(i),this.height=Number(s),this.type=vt.RECT}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}static get EMPTY(){return new r(0,0,0,0)}clone(){return new r(this.x,this.y,this.width,this.height)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}contains(e,t){return this.width<=0||this.height<=0?!1:e>=this.x&&e=this.y&&te.right?e.right:this.right)<=R)return!1;let U=this.ye.bottom?e.bottom:this.bottom)>U}let i=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=i||o<=n)return!1;let a=Oh[0].set(e.left,e.top),l=Oh[1].set(e.left,e.bottom),c=Oh[2].set(e.right,e.top),h=Oh[3].set(e.right,e.bottom);if(c.x<=a.x||l.y<=a.y)return!1;let d=Math.sign(t.a*t.d-t.b*t.c);if(d===0||(t.apply(a,a),t.apply(l,l),t.apply(c,c),t.apply(h,h),Math.max(a.x,l.x,c.x,h.x)<=i||Math.min(a.x,l.x,c.x,h.x)>=s||Math.max(a.y,l.y,c.y,h.y)<=n||Math.min(a.y,l.y,c.y,h.y)>=o))return!1;let p=d*(l.y-a.y),g=d*(a.x-l.x),v=p*i+g*n,C=p*s+g*n,w=p*i+g*o,k=p*s+g*o;if(Math.max(v,C,w,k)<=p*a.x+g*a.y||Math.min(v,C,w,k)>=p*h.x+g*h.y)return!1;let B=d*(a.y-c.y),L=d*(c.x-a.x),T=B*i+L*n,W=B*s+L*n,j=B*i+L*o,I=B*s+L*o;return!(Math.max(T,W,j,I)<=B*a.x+L*a.y||Math.min(T,W,j,I)>=B*h.x+L*h.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=e*2,this.height+=t*2,this}fit(e){let t=Math.max(this.x,e.x),i=Math.min(this.x+this.width,e.x+e.width),s=Math.max(this.y,e.y),n=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(i-t,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(e=1,t=.001){let i=Math.ceil((this.x+this.width-t)*e)/e,s=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=i-this.x,this.height=s-this.y,this}enlarge(e){let t=Math.min(this.x,e.x),i=Math.max(this.x+this.width,e.x+e.width),s=Math.min(this.y,e.y),n=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=i-t,this.y=s,this.height=n-s,this}toString(){return`[@pixi/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}};var zl=class r{constructor(e=0,t=0,i=0){this.x=e,this.y=t,this.radius=i,this.type=vt.CIRC}clone(){return new r(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;let i=this.radius*this.radius,s=this.x-e,n=this.y-t;return s*=s,n*=n,s+n<=i}getBounds(){return new Ie(this.x-this.radius,this.y-this.radius,this.radius*2,this.radius*2)}toString(){return`[@pixi/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}};var Wl=class r{constructor(e=0,t=0,i=0,s=0){this.x=e,this.y=t,this.width=i,this.height=s,this.type=vt.ELIP}clone(){return new r(this.x,this.y,this.width,this.height)}contains(e,t){if(this.width<=0||this.height<=0)return!1;let i=(e-this.x)/this.width,s=(t-this.y)/this.height;return i*=i,s*=s,i+s<=1}getBounds(){return new Ie(this.x-this.width,this.y-this.height,this.width,this.height)}toString(){return`[@pixi/math:Ellipse x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}};var hs=class r{constructor(...e){let t=Array.isArray(e[0])?e[0]:e;if(typeof t[0]!="number"){let i=[];for(let s=0,n=t.length;st!=h>t&&e<(c-a)*((t-l)/(h-l))+a&&(i=!i)}return i}toString(){return`[@pixi/math:PolygoncloseStroke=${this.closeStroke}points=${this.points.reduce((e,t)=>`${e}, ${t}`,"")}]`}};var Hl=class r{constructor(e=0,t=0,i=0,s=0,n=20){this.x=e,this.y=t,this.width=i,this.height=s,this.radius=n,this.type=vt.RREC}clone(){return new r(this.x,this.y,this.width,this.height,this.radius)}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){let i=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+i&&t<=this.y+this.height-i||e>=this.x+i&&e<=this.x+this.width-i)return!0;let s=e-(this.x+i),n=t-(this.y+i),o=i*i;if(s*s+n*n<=o||(s=e-(this.x+this.width-i),s*s+n*n<=o)||(n=t-(this.y+this.height-i),s*s+n*n<=o)||(s=e-(this.x+i),s*s+n*n<=o))return!0}return!1}toString(){return`[@pixi/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}};var je=class r{constructor(e=1,t=0,i=0,s=1,n=0,o=0){this.array=null,this.a=e,this.b=t,this.c=i,this.d=s,this.tx=n,this.ty=o}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,i,s,n,o){return this.a=e,this.b=t,this.c=i,this.d=s,this.tx=n,this.ty=o,this}toArray(e,t){this.array||(this.array=new Float32Array(9));let i=t||this.array;return e?(i[0]=this.a,i[1]=this.b,i[2]=0,i[3]=this.c,i[4]=this.d,i[5]=0,i[6]=this.tx,i[7]=this.ty,i[8]=1):(i[0]=this.a,i[1]=this.c,i[2]=this.tx,i[3]=this.b,i[4]=this.d,i[5]=this.ty,i[6]=0,i[7]=0,i[8]=1),i}apply(e,t){t=t||new Ne;let i=e.x,s=e.y;return t.x=this.a*i+this.c*s+this.tx,t.y=this.b*i+this.d*s+this.ty,t}applyInverse(e,t){t=t||new Ne;let i=1/(this.a*this.d+this.c*-this.b),s=e.x,n=e.y;return t.x=this.d*i*s+-this.c*i*n+(this.ty*this.c-this.tx*this.d)*i,t.y=this.a*i*n+-this.b*i*s+(-this.ty*this.a+this.tx*this.b)*i,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){let t=Math.cos(e),i=Math.sin(e),s=this.a,n=this.c,o=this.tx;return this.a=s*t-this.b*i,this.b=s*i+this.b*t,this.c=n*t-this.d*i,this.d=n*i+this.d*t,this.tx=o*t-this.ty*i,this.ty=o*i+this.ty*t,this}append(e){let t=this.a,i=this.b,s=this.c,n=this.d;return this.a=e.a*t+e.b*s,this.b=e.a*i+e.b*n,this.c=e.c*t+e.d*s,this.d=e.c*i+e.d*n,this.tx=e.tx*t+e.ty*s+this.tx,this.ty=e.tx*i+e.ty*n+this.ty,this}setTransform(e,t,i,s,n,o,a,l,c){return this.a=Math.cos(a+c)*n,this.b=Math.sin(a+c)*n,this.c=-Math.sin(a-l)*o,this.d=Math.cos(a-l)*o,this.tx=e-(i*this.a+s*this.c),this.ty=t-(i*this.b+s*this.d),this}prepend(e){let t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){let i=this.a,s=this.c;this.a=i*e.a+this.b*e.c,this.b=i*e.b+this.b*e.d,this.c=s*e.a+this.d*e.c,this.d=s*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){let t=this.a,i=this.b,s=this.c,n=this.d,o=e.pivot,a=-Math.atan2(-s,n),l=Math.atan2(i,t),c=Math.abs(a+l);return c<1e-5||Math.abs(Ys-c)<1e-5?(e.rotation=l,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=l),e.scale.x=Math.sqrt(t*t+i*i),e.scale.y=Math.sqrt(s*s+n*n),e.position.x=this.tx+(o.x*t+o.y*s),e.position.y=this.ty+(o.x*i+o.y*n),e}invert(){let e=this.a,t=this.b,i=this.c,s=this.d,n=this.tx,o=e*s-t*i;return this.a=s/o,this.b=-t/o,this.c=-i/o,this.d=e/o,this.tx=(i*this.ty-s*n)/o,this.ty=-(e*this.ty-t*n)/o,this}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){let e=new r;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}toString(){return`[@pixi/math:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return new r}static get TEMP_MATRIX(){return new r}};var Hn=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],jn=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],$n=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],qn=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],Qp=[],h3=[],Gh=Math.sign;function hE(){for(let r=0;r<16;r++){let e=[];Qp.push(e);for(let t=0;t<16;t++){let i=Gh(Hn[r]*Hn[t]+$n[r]*jn[t]),s=Gh(jn[r]*Hn[t]+qn[r]*jn[t]),n=Gh(Hn[r]*$n[t]+$n[r]*qn[t]),o=Gh(jn[r]*$n[t]+qn[r]*qn[t]);for(let a=0;a<16;a++)if(Hn[a]===i&&jn[a]===s&&$n[a]===n&&qn[a]===o){e.push(a);break}}}for(let r=0;r<16;r++){let e=new je;e.set(Hn[r],jn[r],$n[r],qn[r],0,0),h3.push(e)}}hE();var Ct={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:r=>Hn[r],uY:r=>jn[r],vX:r=>$n[r],vY:r=>qn[r],inv:r=>r&8?r&15:-r&7,add:(r,e)=>Qp[r][e],sub:(r,e)=>Qp[r][Ct.inv(e)],rotate180:r=>r^4,isVertical:r=>(r&3)===2,byDirection:(r,e)=>Math.abs(r)*2<=Math.abs(e)?e>=0?Ct.S:Ct.N:Math.abs(e)*2<=Math.abs(r)?r>0?Ct.E:Ct.W:e>0?r>0?Ct.SE:Ct.SW:r>0?Ct.NE:Ct.NW,matrixAppendRotationInv:(r,e,t=0,i=0)=>{let s=h3[Ct.inv(e)];s.tx=t,s.ty=i,r.append(s)}};var Rr=class r{constructor(e,t,i=0,s=0){this._x=i,this._y=s,this.cb=e,this.scope=t}clone(e=this.cb,t=this.scope){return new r(e,t,this._x,this._y)}set(e=0,t=e){return(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this.cb.call(this.scope)),this}copyFrom(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this.cb.call(this.scope)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}toString(){return`[@pixi/math:ObservablePoint x=0 y=0 scope=${this.scope}]`}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this.cb.call(this.scope))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this.cb.call(this.scope))}};var d3=class{constructor(){this.worldTransform=new je,this.localTransform=new je,this.position=new Rr(this.onChange,this,0,0),this.scale=new Rr(this.onChange,this,1,1),this.pivot=new Rr(this.onChange,this,0,0),this.skew=new Rr(this.updateSkew,this,0,0),this._rotation=0,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._localID=0,this._currentLocalID=0,this._worldID=0,this._parentID=0}onChange(){this._localID++}updateSkew(){this._cx=Math.cos(this._rotation+this.skew.y),this._sx=Math.sin(this._rotation+this.skew.y),this._cy=-Math.sin(this._rotation-this.skew.x),this._sy=Math.cos(this._rotation-this.skew.x),this._localID++}toString(){return`[@pixi/math:Transform position=(${this.position.x}, ${this.position.y}) rotation=${this.rotation} scale=(${this.scale.x}, ${this.scale.y}) skew=(${this.skew.x}, ${this.skew.y}) ]`}updateLocalTransform(){let r=this.localTransform;this._localID!==this._currentLocalID&&(r.a=this._cx*this.scale.x,r.b=this._sx*this.scale.x,r.c=this._cy*this.scale.y,r.d=this._sy*this.scale.y,r.tx=this.position.x-(this.pivot.x*r.a+this.pivot.y*r.c),r.ty=this.position.y-(this.pivot.x*r.b+this.pivot.y*r.d),this._currentLocalID=this._localID,this._parentID=-1)}updateTransform(r){let e=this.localTransform;if(this._localID!==this._currentLocalID&&(e.a=this._cx*this.scale.x,e.b=this._sx*this.scale.x,e.c=this._cy*this.scale.y,e.d=this._sy*this.scale.y,e.tx=this.position.x-(this.pivot.x*e.a+this.pivot.y*e.c),e.ty=this.position.y-(this.pivot.x*e.b+this.pivot.y*e.d),this._currentLocalID=this._localID,this._parentID=-1),this._parentID!==r._worldID){let t=r.worldTransform,i=this.worldTransform;i.a=e.a*t.a+e.b*t.c,i.b=e.a*t.b+e.b*t.d,i.c=e.c*t.a+e.d*t.c,i.d=e.c*t.b+e.d*t.d,i.tx=e.tx*t.a+e.ty*t.c+t.tx,i.ty=e.tx*t.b+e.ty*t.d+t.ty,this._parentID=r._worldID,this._worldID++}}setFromMatrix(r){r.decompose(this),this._localID++}get rotation(){return this._rotation}set rotation(r){this._rotation!==r&&(this._rotation=r,this.updateSkew())}},Yn=d3;Yn.IDENTITY=new d3;var p3=`varying vec2 vTextureCoord; uniform sampler2D uSampler; @@ -178,7 +178,7 @@ void main(void){ cv[3] = v[3]; gl.uniform4f(ud["${r}"].location, v[0], v[1], v[2], v[3]) - }`}];var hE={float:` + }`}];var dE={float:` if (cv !== v) { cu.value = v; @@ -314,7 +314,7 @@ void main(void){ cu.value = v; gl.uniform1i(location, v); - }`},dE={float:"gl.uniform1fv(location, v)",vec2:"gl.uniform2fv(location, v)",vec3:"gl.uniform3fv(location, v)",vec4:"gl.uniform4fv(location, v)",mat4:"gl.uniformMatrix4fv(location, false, v)",mat3:"gl.uniformMatrix3fv(location, false, v)",mat2:"gl.uniformMatrix2fv(location, false, v)",int:"gl.uniform1iv(location, v)",ivec2:"gl.uniform2iv(location, v)",ivec3:"gl.uniform3iv(location, v)",ivec4:"gl.uniform4iv(location, v)",uint:"gl.uniform1uiv(location, v)",uvec2:"gl.uniform2uiv(location, v)",uvec3:"gl.uniform3uiv(location, v)",uvec4:"gl.uniform4uiv(location, v)",bool:"gl.uniform1iv(location, v)",bvec2:"gl.uniform2iv(location, v)",bvec3:"gl.uniform3iv(location, v)",bvec4:"gl.uniform4iv(location, v)",sampler2D:"gl.uniform1iv(location, v)",samplerCube:"gl.uniform1iv(location, v)",sampler2DArray:"gl.uniform1iv(location, v)"};function e2(r,e){let t=[` + }`},pE={float:"gl.uniform1fv(location, v)",vec2:"gl.uniform2fv(location, v)",vec3:"gl.uniform3fv(location, v)",vec4:"gl.uniform4fv(location, v)",mat4:"gl.uniformMatrix4fv(location, false, v)",mat3:"gl.uniformMatrix3fv(location, false, v)",mat2:"gl.uniformMatrix2fv(location, false, v)",int:"gl.uniform1iv(location, v)",ivec2:"gl.uniform2iv(location, v)",ivec3:"gl.uniform3iv(location, v)",ivec4:"gl.uniform4iv(location, v)",uint:"gl.uniform1uiv(location, v)",uvec2:"gl.uniform2uiv(location, v)",uvec3:"gl.uniform3uiv(location, v)",uvec4:"gl.uniform4uiv(location, v)",bool:"gl.uniform1iv(location, v)",bvec2:"gl.uniform2iv(location, v)",bvec3:"gl.uniform3iv(location, v)",bvec4:"gl.uniform4iv(location, v)",sampler2D:"gl.uniform1iv(location, v)",samplerCube:"gl.uniform1iv(location, v)",sampler2DArray:"gl.uniform1iv(location, v)"};function e2(r,e){let t=[` var v = null; var cv = null; var cu = null; @@ -324,7 +324,7 @@ void main(void){ renderer.shader.syncUniformBufferGroup(uv.${i}, '${i}'); `):t.push(` renderer.shader.syncUniformGroup(uv.${i}, syncData); - `));continue}let n=r.uniforms[i],o=!1;for(let a=0;a=hr.WEBGL2&&(e=r.getContext("webgl2",{})),e||(e=r.getContext("webgl",{})||r.getContext("experimental-webgl",{}),e?e.getExtension("WEBGL_draw_buffers"):e=null),Vh=e}return Vh}var Wh;function t2(){if(!Wh){Wh=B0.MEDIUM;let r=zh();r&&r.getShaderPrecisionFormat&&(Wh=r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_FLOAT).precision?B0.HIGH:B0.MEDIUM)}return Wh}function m3(r,e){let t=r.getShaderSource(e).split(` `).map((c,h)=>`${h}: ${c}`),i=r.getShaderInfoLog(e),s=i.split(` `),n={},o=s.map(c=>parseFloat(c.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1"))).filter(c=>c&&!n[c]?(n[c]=!0,!0):!1),a=[""];o.forEach(c=>{t[c-1]=`%c${t[c-1]}%c`,a.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")});let l=t.join(` -`);a[0]=l,console.error(i),console.groupCollapsed("click to view full shader code"),console.warn(...a),console.groupEnd()}function r2(r,e,t,i){r.getProgramParameter(e,r.LINK_STATUS)||(r.getShaderParameter(t,r.COMPILE_STATUS)||m3(r,t),r.getShaderParameter(i,r.COMPILE_STATUS)||m3(r,i),console.error("PixiJS Error: Could not initialize shader."),r.getProgramInfoLog(e)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",r.getProgramInfoLog(e)))}var pE={float:1,vec2:2,vec3:3,vec4:4,int:1,ivec2:2,ivec3:3,ivec4:4,uint:1,uvec2:2,uvec3:3,uvec4:4,bool:1,bvec2:2,bvec3:3,bvec4:4,mat2:4,mat3:9,mat4:16,sampler2D:1};function $l(r){return pE[r]}var Hh=null,y3={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",UNSIGNED_INT:"uint",UNSIGNED_INT_VEC2:"uvec2",UNSIGNED_INT_VEC3:"uvec3",UNSIGNED_INT_VEC4:"uvec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D",INT_SAMPLER_2D:"sampler2D",UNSIGNED_INT_SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray"};function ql(r,e){if(!Hh){let t=Object.keys(y3);Hh={};for(let i=0;i0&&(t+=` else `),i=0;--s)e[s]=i[s]||null,e[s]&&(e[s]._batchLocation=s)}boundArray(e,t,i,s){let{elements:n,ids:o,count:a}=e,l=0;for(let c=0;c=0&&d=hr.WEBGL2&&(i=e.getContext("webgl2",t)),i)this.webGLVersion=2;else if(this.webGLVersion=1,i=e.getContext("webgl",t)||e.getContext("experimental-webgl",t),!i)throw new Error("This browser does not support WebGL. Try using the canvas renderer");return this.gl=i,this.getExtensions(),this.gl}getExtensions(){let{gl:e}=this,t={loseContext:e.getExtension("WEBGL_lose_context"),anisotropicFiltering:e.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),s3tc:e.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:e.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:e.getExtension("WEBGL_compressed_texture_etc"),etc1:e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:e.getExtension("WEBGL_compressed_texture_atc"),astc:e.getExtension("WEBGL_compressed_texture_astc")};this.webGLVersion===1?Object.assign(this.extensions,t,{drawBuffers:e.getExtension("WEBGL_draw_buffers"),depthTexture:e.getExtension("WEBGL_depth_texture"),vertexArrayObject:e.getExtension("OES_vertex_array_object")||e.getExtension("MOZ_OES_vertex_array_object")||e.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:e.getExtension("OES_element_index_uint"),floatTexture:e.getExtension("OES_texture_float"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),textureHalfFloat:e.getExtension("OES_texture_half_float"),textureHalfFloatLinear:e.getExtension("OES_texture_half_float_linear")}):this.webGLVersion===2&&Object.assign(this.extensions,t,{colorBufferFloat:e.getExtension("EXT_color_buffer_float")})}handleContextLost(e){e.preventDefault(),setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext&&this.extensions.loseContext.restoreContext()},0)}handleContextRestored(){this.renderer.runners.contextChange.emit(this.gl)}destroy(){let e=this.renderer.view;this.renderer=null,e.removeEventListener!==void 0&&(e.removeEventListener("webglcontextlost",this.handleContextLost),e.removeEventListener("webglcontextrestored",this.handleContextRestored)),this.gl.useProgram(null),this.extensions.loseContext&&this.extensions.loseContext.loseContext()}postrender(){this.renderer.objectRenderer.renderingToScreen&&this.gl.flush()}validateContext(e){let t=e.getContextAttributes(),i="WebGL2RenderingContext"in globalThis&&e instanceof globalThis.WebGL2RenderingContext;i&&(this.webGLVersion=2),t&&!t.stencil&&console.warn("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let s=i||!!e.getExtension("OES_element_index_uint");this.supports.uint32Indices=s,s||console.warn("Provided WebGL context does not support 32 index buffer, complex graphics may not render correctly")}};ps.defaultOptions={context:null,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default"};ps.extension={type:Z.RendererSystem,name:"context"};te.add(ps);var Yh=class extends Q0{upload(e,t,i){let s=e.gl;s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.alphaMode===Qt.UNPACK);let n=t.realWidth,o=t.realHeight;return i.width===n&&i.height===o?s.texSubImage2D(t.target,0,0,0,n,o,t.format,i.type,this.data):(i.width=n,i.height=o,s.texImage2D(t.target,0,i.internalFormat,n,o,0,t.format,i.type,this.data)),!0}};var Ks=class{constructor(e,t){this.width=Math.round(e||100),this.height=Math.round(t||100),this.stencil=!1,this.depth=!1,this.dirtyId=0,this.dirtyFormat=0,this.dirtySize=0,this.depthTexture=null,this.colorTextures=[],this.glFramebuffers={},this.disposeRunner=new Ht("disposeFramebuffer"),this.multisample=ut.NONE}get colorTexture(){return this.colorTextures[0]}addColorTexture(e=0,t){return this.colorTextures[e]=t||new we(null,{scaleMode:Nr.NEAREST,resolution:1,mipmap:x0.OFF,width:this.width,height:this.height}),this.dirtyId++,this.dirtyFormat++,this}addDepthTexture(e){return this.depthTexture=e||new we(new Yh(null,{width:this.width,height:this.height}),{scaleMode:Nr.NEAREST,resolution:1,width:this.width,height:this.height,mipmap:x0.OFF,format:le.DEPTH_COMPONENT,type:Ce.UNSIGNED_SHORT}),this.dirtyId++,this.dirtyFormat++,this}enableDepth(){return this.depth=!0,this.dirtyId++,this.dirtyFormat++,this}enableStencil(){return this.stencil=!0,this.dirtyId++,this.dirtyFormat++,this}resize(e,t){if(e=Math.round(e),t=Math.round(t),!(e===this.width&&t===this.height)){this.width=e,this.height=t,this.dirtyId++,this.dirtySize++;for(let i=0;i{let s=this.source;this.url=s.src;let n=()=>{this.destroyed||(s.onload=null,s.onerror=null,this.resize(s.width,s.height),this._load=null,this.createBitmap?t(this.process()):t(this))};s.complete&&s.src?n():(s.onload=n,s.onerror=o=>{i(o),this.onError.emit(o)})}),this._load)}process(){let e=this.source;if(this._process!==null)return this._process;if(this.bitmap!==null||!globalThis.createImageBitmap)return Promise.resolve(this);let t=globalThis.createImageBitmap,i=!e.crossOrigin||e.crossOrigin==="anonymous";return this._process=fetch(e.src,{mode:i?"cors":"no-cors"}).then(s=>s.blob()).then(s=>t(s,0,0,e.width,e.height,{premultiplyAlpha:this.alphaMode===null||this.alphaMode===Qt.UNPACK?"premultiply":"none"})).then(s=>this.destroyed?Promise.reject():(this.bitmap=s,this.update(),this._process=null,Promise.resolve(this))),this._process}upload(e,t,i){if(typeof this.alphaMode=="number"&&(t.alphaMode=this.alphaMode),!this.createBitmap)return super.upload(e,t,i);if(!this.bitmap&&(this.process(),!this.bitmap))return!1;if(super.upload(e,t,i,this.bitmap),!this.preserveBitmap){let s=!0,n=t._glTextures;for(let o in n){let a=n[o];if(a!==i&&a.dirtyId!==t.dirtyId){s=!1;break}}s&&(this.bitmap.close&&this.bitmap.close(),this.bitmap=null)}return!0}dispose(){this.source.onload=null,this.source.onerror=null,super.dispose(),this.bitmap&&(this.bitmap.close(),this.bitmap=null),this._process=null,this._load=null}static test(e){return typeof HTMLImageElement<"u"&&(typeof e=="string"||e instanceof HTMLImageElement)}};var ta=class{constructor(){this.x0=0,this.y0=0,this.x1=1,this.y1=0,this.x2=1,this.y2=1,this.x3=0,this.y3=1,this.uvsFloat32=new Float32Array(8)}set(e,t,i){let s=t.width,n=t.height;if(i){let o=e.width/2/s,a=e.height/2/n,l=e.x/s+o,c=e.y/n+a;i=Ct.add(i,Ct.NW),this.x0=l+o*Ct.uX(i),this.y0=c+a*Ct.uY(i),i=Ct.add(i,2),this.x1=l+o*Ct.uX(i),this.y1=c+a*Ct.uY(i),i=Ct.add(i,2),this.x2=l+o*Ct.uX(i),this.y2=c+a*Ct.uY(i),i=Ct.add(i,2),this.x3=l+o*Ct.uX(i),this.y3=c+a*Ct.uY(i)}else this.x0=e.x/s,this.y0=e.y/n,this.x1=(e.x+e.width)/s,this.y1=e.y/n,this.x2=(e.x+e.width)/s,this.y2=(e.y+e.height)/n,this.x3=e.x/s,this.y3=(e.y+e.height)/n;this.uvsFloat32[0]=this.x0,this.uvsFloat32[1]=this.y0,this.uvsFloat32[2]=this.x1,this.uvsFloat32[3]=this.y1,this.uvsFloat32[4]=this.x2,this.uvsFloat32[5]=this.y2,this.uvsFloat32[6]=this.x3,this.uvsFloat32[7]=this.y3}toString(){return`[@pixi/core:TextureUvs x0=${this.x0} y0=${this.y0} x1=${this.x1} y1=${this.y1} x2=${this.x2} y2=${this.y2} x3=${this.x3} y3=${this.y3}]`}};var w3=new ta;function Xh(r){r.destroy=function(){},r.on=function(){},r.once=function(){},r.emit=function(){}}var Se=class r extends js.default{constructor(e,t,i,s,n,o,a){if(super(),this.noFrame=!1,t||(this.noFrame=!0,t=new Ie(0,0,1,1)),e instanceof r&&(e=e.baseTexture),this.baseTexture=e,this._frame=t,this.trim=s,this.valid=!1,this._uvs=w3,this.uvMatrix=null,this.orig=i||t,this._rotate=Number(n||0),n===!0)this._rotate=2;else if(this._rotate%2!==0)throw new Error("attempt to use diamond-shaped UVs. If you are sure, set rotation manually");this.defaultAnchor=o?new Ne(o.x,o.y):new Ne(0,0),this.defaultBorders=a,this._updateID=0,this.textureCacheIds=[],e.valid?this.noFrame?e.valid&&this.onBaseTextureUpdated(e):this.frame=t:e.once("loaded",this.onBaseTextureUpdated,this),this.noFrame&&e.on("update",this.onBaseTextureUpdated,this)}update(){this.baseTexture.resource&&this.baseTexture.resource.update()}onBaseTextureUpdated(e){if(this.noFrame){if(!this.baseTexture.valid)return;this._frame.width=e.width,this._frame.height=e.height,this.valid=!0,this.updateUvs()}else this.frame=this._frame;this.emit("update",this)}destroy(e){if(this.baseTexture){if(e){let{resource:t}=this.baseTexture;t?.url&&c0[t.url]&&r.removeFromCache(t.url),this.baseTexture.destroy()}this.baseTexture.off("loaded",this.onBaseTextureUpdated,this),this.baseTexture.off("update",this.onBaseTextureUpdated,this),this.baseTexture=null}this._frame=null,this._uvs=null,this.trim=null,this.orig=null,this.valid=!1,r.removeFromCache(this),this.textureCacheIds=null}clone(){let e=this._frame.clone(),t=this._frame===this.orig?e:this.orig.clone(),i=new r(this.baseTexture,!this.noFrame&&e,t,this.trim?.clone(),this.rotate,this.defaultAnchor,this.defaultBorders);return this.noFrame&&(i._frame=e),i}updateUvs(){this._uvs===w3&&(this._uvs=new ta),this._uvs.set(this._frame,this.baseTexture,this.rotate),this._updateID++}static from(e,t={},i=K.STRICT_TEXTURE_CACHE){let s=typeof e=="string",n=null;if(s)n=e;else if(e instanceof we){if(!e.cacheId){let a=t?.pixiIdPrefix||"pixiid";e.cacheId=`${a}-${_i()}`,we.addToCache(e,e.cacheId)}n=e.cacheId}else{if(!e._pixiId){let a=t?.pixiIdPrefix||"pixiid";e._pixiId=`${a}_${_i()}`}n=e._pixiId}let o=c0[n];if(s&&i&&!o)throw new Error(`The cacheId "${n}" does not exist in TextureCache.`);return!o&&!(e instanceof we)?(t.resolution||(t.resolution=Vl(e)),o=new r(new we(e,t)),o.baseTexture.cacheId=n,we.addToCache(o.baseTexture,n),r.addToCache(o,n)):!o&&e instanceof we&&(o=new r(e),r.addToCache(o,n)),o}static fromURL(e,t){let i=Object.assign({autoLoad:!1},t?.resourceOptions),s=r.from(e,Object.assign({resourceOptions:i},t),!1),n=s.baseTexture.resource;return s.baseTexture.valid?Promise.resolve(s):n.load().then(()=>Promise.resolve(s))}static fromBuffer(e,t,i,s){return new r(we.fromBuffer(e,t,i,s))}static fromLoader(e,t,i,s){let n=new we(e,Object.assign({scaleMode:we.defaultOptions.scaleMode,resolution:Vl(t)},s)),{resource:o}=n;o instanceof Zs&&(o.url=t);let a=new r(n);return i||(i=t),we.addToCache(a.baseTexture,i),r.addToCache(a,i),i!==t&&(we.addToCache(a.baseTexture,t),r.addToCache(a,t)),a.baseTexture.valid?Promise.resolve(a):new Promise(l=>{a.baseTexture.once("loaded",()=>l(a))})}static addToCache(e,t){t&&(e.textureCacheIds.includes(t)||e.textureCacheIds.push(t),c0[t]&&c0[t]!==e&&console.warn(`Texture added to the cache with an id [${t}] that already had an entry`),c0[t]=e)}static removeFromCache(e){if(typeof e=="string"){let t=c0[e];if(t){let i=t.textureCacheIds.indexOf(e);return i>-1&&t.textureCacheIds.splice(i,1),delete c0[e],t}}else if(e?.textureCacheIds){for(let t=0;tthis.baseTexture.width,a=i+n>this.baseTexture.height;if(o||a){let l=o&&a?"and":"or",c=`X: ${t} + ${s} = ${t+s} > ${this.baseTexture.width}`,h=`Y: ${i} + ${n} = ${i+n} > ${this.baseTexture.height}`;throw new Error(`Texture Error: frame does not fit inside the base Texture dimensions: ${c} ${l} ${h}`)}this.valid=s&&n&&this.baseTexture.valid,!this.trim&&!this.rotate&&(this.orig=e),this.valid&&this.updateUvs()}get rotate(){return this._rotate}set rotate(e){this._rotate=e,this.valid&&this.updateUvs()}get width(){return this.orig.width}get height(){return this.orig.height}castToBaseTexture(){return this.baseTexture}static get EMPTY(){return r._EMPTY||(r._EMPTY=new r(new we),Xh(r._EMPTY),Xh(r._EMPTY.baseTexture)),r._EMPTY}static get WHITE(){if(!r._WHITE){let e=K.ADAPTER.createCanvas(16,16),t=e.getContext("2d");e.width=16,e.height=16,t.fillStyle="white",t.fillRect(0,0,16,16),r._WHITE=new r(we.from(e)),Xh(r._WHITE),Xh(r._WHITE.baseTexture)}return r._WHITE}};var Or=class r extends Se{constructor(e,t){super(e,t),this.valid=!0,this.filterFrame=null,this.filterPoolKey=null,this.updateUvs()}get framebuffer(){return this.baseTexture.framebuffer}get multisample(){return this.framebuffer.multisample}set multisample(e){this.framebuffer.multisample=e}resize(e,t,i=!0){let s=this.baseTexture.resolution,n=Math.round(e*s)/s,o=Math.round(t*s)/s;this.valid=n>0&&o>0,this._frame.width=this.orig.width=n,this._frame.height=this.orig.height=o,i&&this.baseTexture.resize(n,o),this.updateUvs()}setResolution(e){let{baseTexture:t}=this;t.resolution!==e&&(t.setResolution(e),this.resize(t.width,t.height,!1))}static create(e){return new r(new Xn(e))}};var ra=class{constructor(e){this.texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1,this._pixelsWidth=0,this._pixelsHeight=0}createTexture(e,t,i=ut.NONE){let s=new Xn(Object.assign({width:e,height:t,resolution:1,multisample:i},this.textureOptions));return new Or(s)}getOptimalTexture(e,t,i=1,s=ut.NONE){let n;e=Math.ceil(e*i-1e-6),t=Math.ceil(t*i-1e-6),!this.enableFullScreen||e!==this._pixelsWidth||t!==this._pixelsHeight?(e=Hs(e),t=Hs(t),n=((e&65535)<<16|t&65535)>>>0,s>1&&(n+=s*4294967296)):n=s>1?-s:-1,this.texturePool[n]||(this.texturePool[n]=[]);let o=this.texturePool[n].pop();return o||(o=this.createTexture(e,t,s)),o.filterPoolKey=n,o.setResolution(i),o}getFilterTexture(e,t,i){let s=this.getOptimalTexture(e.width,e.height,t||e.resolution,i||ut.NONE);return s.filterFrame=e.filterFrame,s}returnTexture(e){let t=e.filterPoolKey;e.filterFrame=null,this.texturePool[t].push(e)}returnFilterTexture(e){this.returnTexture(e)}clear(e){if(e=e!==!1,e)for(let t in this.texturePool){let i=this.texturePool[t];if(i)for(let s=0;s0&&e.height>0;for(let t in this.texturePool){if(!(Number(t)<0))continue;let i=this.texturePool[t];if(i)for(let s=0;s1&&(h=this.getOptimalFilterTexture(c.width,c.height,t.resolution),h.filterFrame=c.filterFrame),i[d].apply(this,c,h,pr.CLEAR,t);let p=c;c=h,h=p}i[d].apply(this,c,l.renderTexture,pr.BLEND,t),d>1&&t.multisample>1&&this.returnFilterTexture(t.renderTexture),this.returnFilterTexture(c),this.returnFilterTexture(h)}t.clear(),this.statePool.push(t)}bindAndClear(e,t=pr.CLEAR){let{renderTexture:i,state:s}=this.renderer;if(e===this.defaultFilterStack[this.defaultFilterStack.length-1].renderTexture?this.renderer.projection.transform=this.activeState.transform:this.renderer.projection.transform=null,e?.filterFrame){let o=this.tempRect;o.x=0,o.y=0,o.width=e.filterFrame.width,o.height=e.filterFrame.height,i.bind(e,e.filterFrame,o)}else e!==this.defaultFilterStack[this.defaultFilterStack.length-1].renderTexture?i.bind(e):this.renderer.renderTexture.bind(e,this.activeState.bindingSourceFrame,this.activeState.bindingDestinationFrame);let n=s.stateId&1||this.forceClear;(t===pr.CLEAR||t===pr.BLIT&&n)&&this.renderer.framebuffer.clear(0,0,0,0)}applyFilter(e,t,i,s){let n=this.renderer;n.state.set(e.state),this.bindAndClear(i,s),e.uniforms.uSampler=t,e.uniforms.filterGlobals=this.globalUniforms,n.shader.bind(e),e.legacy=!!e.program.attributeData.aTextureCoord,e.legacy?(this.quadUv.map(t._frame,t.filterFrame),n.geometry.bind(this.quadUv),n.geometry.draw(K0.TRIANGLES)):(n.geometry.bind(this.quad),n.geometry.draw(K0.TRIANGLE_STRIP))}calculateSpriteMatrix(e,t){let{sourceFrame:i,destinationFrame:s}=this.activeState,{orig:n}=t._texture,o=e.set(s.width,0,0,s.height,i.x,i.y),a=t.worldTransform.copyTo(je.TEMP_MATRIX);return a.invert(),o.prepend(a),o.scale(1/n.width,1/n.height),o.translate(t.anchor.x,t.anchor.y),o}destroy(){this.renderer=null,this.texturePool.clear(!1)}getOptimalFilterTexture(e,t,i=1,s=ut.NONE){return this.texturePool.getOptimalTexture(e,t,i,s)}getFilterTexture(e,t,i){if(typeof e=="number"){let n=e;e=t,t=n}e=e||this.activeState.renderTexture;let s=this.texturePool.getOptimalTexture(e.width,e.height,t||e.resolution,i||ut.NONE);return s.filterFrame=e.filterFrame,s}returnFilterTexture(e){this.texturePool.returnTexture(e)}emptyPool(){this.texturePool.clear(!0)}resize(){this.texturePool.setScreenSize(this.renderer.view)}transformAABB(e,t){let i=Kh[0],s=Kh[1],n=Kh[2],o=Kh[3];i.set(t.left,t.top),s.set(t.left,t.bottom),n.set(t.right,t.top),o.set(t.right,t.bottom),e.apply(i,i),e.apply(s,s),e.apply(n,n),e.apply(o,o);let a=Math.min(i.x,s.x,n.x,o.x),l=Math.min(i.y,s.y,n.y,o.y),c=Math.max(i.x,s.x,n.x,o.x),h=Math.max(i.y,s.y,n.y,o.y);t.x=a,t.y=l,t.width=c-a,t.height=h-l}roundFrame(e,t,i,s,n){if(!(e.width<=0||e.height<=0||i.width<=0||i.height<=0)){if(n){let{a:o,b:a,c:l,d:c}=n;if((Math.abs(a)>1e-4||Math.abs(l)>1e-4)&&(Math.abs(o)>1e-4||Math.abs(c)>1e-4))return}n=n?i2.copyFrom(n):i2.identity(),n.translate(-i.x,-i.y).scale(s.width/i.width,s.height/i.height).translate(s.x,s.y),this.transformAABB(n,e),e.ceil(t),this.transformAABB(n.invert(),e)}}};ia.extension={type:Z.RendererSystem,name:"filter"};te.add(ia);var Jl=class{constructor(e){this.framebuffer=e,this.stencil=null,this.dirtyId=-1,this.dirtyFormat=-1,this.dirtySize=-1,this.multisample=ut.NONE,this.msaaBuffer=null,this.blitFramebuffer=null,this.mipLevel=0}};var mE=new Ie,sa=class{constructor(e){this.renderer=e,this.managedFramebuffers=[],this.unknownFramebuffer=new Ks(10,10),this.msaaSamples=null}contextChange(){this.disposeAll(!0);let e=this.gl=this.renderer.gl;if(this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.current=this.unknownFramebuffer,this.viewport=new Ie,this.hasMRT=!0,this.writeDepthTexture=!0,this.renderer.context.webGLVersion===1){let t=this.renderer.context.extensions.drawBuffers,i=this.renderer.context.extensions.depthTexture;K.PREFER_ENV===hr.WEBGL_LEGACY&&(t=null,i=null),t?e.drawBuffers=s=>t.drawBuffersWEBGL(s):(this.hasMRT=!1,e.drawBuffers=()=>{}),i||(this.writeDepthTexture=!1)}else this.msaaSamples=e.getInternalformatParameter(e.RENDERBUFFER,e.RGBA8,e.SAMPLES)}bind(e,t,i=0){let{gl:s}=this;if(e){let n=e.glFramebuffers[this.CONTEXT_UID]||this.initFramebuffer(e);this.current!==e&&(this.current=e,s.bindFramebuffer(s.FRAMEBUFFER,n.framebuffer)),n.mipLevel!==i&&(e.dirtyId++,e.dirtyFormat++,n.mipLevel=i),n.dirtyId!==e.dirtyId&&(n.dirtyId=e.dirtyId,n.dirtyFormat!==e.dirtyFormat?(n.dirtyFormat=e.dirtyFormat,n.dirtySize=e.dirtySize,this.updateFramebuffer(e,i)):n.dirtySize!==e.dirtySize&&(n.dirtySize=e.dirtySize,this.resizeFramebuffer(e)));for(let o=0;o>i,a=t.height>>i,l=o/t.width;this.setViewport(t.x*l,t.y*l,o,a)}else{let o=e.width>>i,a=e.height>>i;this.setViewport(0,0,o,a)}}else this.current&&(this.current=null,s.bindFramebuffer(s.FRAMEBUFFER,null)),t?this.setViewport(t.x,t.y,t.width,t.height):this.setViewport(0,0,this.renderer.width,this.renderer.height)}setViewport(e,t,i,s){let n=this.viewport;e=Math.round(e),t=Math.round(t),i=Math.round(i),s=Math.round(s),(n.width!==i||n.height!==s||n.x!==e||n.y!==t)&&(n.x=e,n.y=t,n.width=i,n.height=s,this.gl.viewport(e,t,i,s))}get size(){return this.current?{x:0,y:0,width:this.current.width,height:this.current.height}:{x:0,y:0,width:this.renderer.width,height:this.renderer.height}}clear(e,t,i,s,n=xh.COLOR|xh.DEPTH){let{gl:o}=this;o.clearColor(e,t,i,s),o.clear(n)}initFramebuffer(e){let{gl:t}=this,i=new Jl(t.createFramebuffer());return i.multisample=this.detectSamples(e.multisample),e.glFramebuffers[this.CONTEXT_UID]=i,this.managedFramebuffers.push(e),e.disposeRunner.add(this),i}resizeFramebuffer(e){let{gl:t}=this,i=e.glFramebuffers[this.CONTEXT_UID];i.stencil&&(t.bindRenderbuffer(t.RENDERBUFFER,i.stencil),i.msaaBuffer?t.renderbufferStorageMultisample(t.RENDERBUFFER,i.multisample,t.DEPTH24_STENCIL8,e.width,e.height):t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,e.width,e.height));let s=e.colorTextures,n=s.length;t.drawBuffers||(n=Math.min(n,1));for(let o=0;o1&&this.canMultisampleFramebuffer(e)?s.msaaBuffer=s.msaaBuffer||i.createRenderbuffer():s.msaaBuffer&&(i.deleteRenderbuffer(s.msaaBuffer),s.msaaBuffer=null,s.blitFramebuffer&&(s.blitFramebuffer.dispose(),s.blitFramebuffer=null));let a=[];for(let l=0;l1&&i.drawBuffers(a),e.depthTexture&&this.writeDepthTexture){let c=e.depthTexture;this.renderer.texture.bind(c,0),i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.TEXTURE_2D,c._glTextures[this.CONTEXT_UID].texture,t)}(e.stencil||e.depth)&&!(e.depthTexture&&this.writeDepthTexture)?(s.stencil=s.stencil||i.createRenderbuffer(),i.bindRenderbuffer(i.RENDERBUFFER,s.stencil),s.msaaBuffer?i.renderbufferStorageMultisample(i.RENDERBUFFER,s.multisample,i.DEPTH24_STENCIL8,e.width,e.height):i.renderbufferStorage(i.RENDERBUFFER,i.DEPTH_STENCIL,e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,i.RENDERBUFFER,s.stencil)):s.stencil&&(i.deleteRenderbuffer(s.stencil),s.stencil=null)}canMultisampleFramebuffer(e){return this.renderer.context.webGLVersion!==1&&e.colorTextures.length<=1&&!e.depthTexture}detectSamples(e){let{msaaSamples:t}=this,i=ut.NONE;if(e<=1||t===null)return i;for(let s=0;s=0&&this.managedFramebuffers.splice(n,1),e.disposeRunner.remove(this),t||(s.deleteFramebuffer(i.framebuffer),i.msaaBuffer&&s.deleteRenderbuffer(i.msaaBuffer),i.stencil&&s.deleteRenderbuffer(i.stencil)),i.blitFramebuffer&&this.disposeFramebuffer(i.blitFramebuffer,t)}disposeAll(e){let t=this.managedFramebuffers;this.managedFramebuffers=[];for(let i=0;ii.createVertexArrayOES(),e.bindVertexArray=s=>i.bindVertexArrayOES(s),e.deleteVertexArray=s=>i.deleteVertexArrayOES(s)):(this.hasVao=!1,e.createVertexArray=()=>null,e.bindVertexArray=()=>null,e.deleteVertexArray=()=>null)}if(t.webGLVersion!==2){let i=e.getExtension("ANGLE_instanced_arrays");i?(e.vertexAttribDivisor=(s,n)=>i.vertexAttribDivisorANGLE(s,n),e.drawElementsInstanced=(s,n,o,a,l)=>i.drawElementsInstancedANGLE(s,n,o,a,l),e.drawArraysInstanced=(s,n,o,a)=>i.drawArraysInstancedANGLE(s,n,o,a)):this.hasInstance=!1}this.canUseUInt32ElementIndex=t.webGLVersion===2||!!t.extensions.uint32ElementIndex}bind(e,t){t=t||this.renderer.shader.shader;let{gl:i}=this,s=e.glVertexArrayObjects[this.CONTEXT_UID],n=!1;s||(this.managedGeometries[e.id]=e,e.disposeRunner.add(this),e.glVertexArrayObjects[this.CONTEXT_UID]=s={},n=!0);let o=s[t.program.id]||this.initGeometryVao(e,t,n);this._activeGeometry=e,this._activeVao!==o&&(this._activeVao=o,this.hasVao?i.bindVertexArray(o):this.activateVao(e,t.program)),this.updateBuffers()}reset(){this.unbind()}updateBuffers(){let e=this._activeGeometry,t=this.renderer.buffer;for(let i=0;i"u"?.5:t,this.isSimple=!1}get texture(){return this._texture}set texture(e){this._texture=e,this._textureID=-1}multiplyUvs(e,t){t===void 0&&(t=e);let i=this.mapCoord;for(let s=0;s=0;--s)e[s]=i[s]||null,e[s]&&(e[s]._batchLocation=s)}boundArray(e,t,i,s){let{elements:n,ids:o,count:a}=e,l=0;for(let c=0;c=0&&d=hr.WEBGL2&&(i=e.getContext("webgl2",t)),i)this.webGLVersion=2;else if(this.webGLVersion=1,i=e.getContext("webgl",t)||e.getContext("experimental-webgl",t),!i)throw new Error("This browser does not support WebGL. Try using the canvas renderer");return this.gl=i,this.getExtensions(),this.gl}getExtensions(){let{gl:e}=this,t={loseContext:e.getExtension("WEBGL_lose_context"),anisotropicFiltering:e.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),s3tc:e.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:e.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:e.getExtension("WEBGL_compressed_texture_etc"),etc1:e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:e.getExtension("WEBGL_compressed_texture_atc"),astc:e.getExtension("WEBGL_compressed_texture_astc")};this.webGLVersion===1?Object.assign(this.extensions,t,{drawBuffers:e.getExtension("WEBGL_draw_buffers"),depthTexture:e.getExtension("WEBGL_depth_texture"),vertexArrayObject:e.getExtension("OES_vertex_array_object")||e.getExtension("MOZ_OES_vertex_array_object")||e.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:e.getExtension("OES_element_index_uint"),floatTexture:e.getExtension("OES_texture_float"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),textureHalfFloat:e.getExtension("OES_texture_half_float"),textureHalfFloatLinear:e.getExtension("OES_texture_half_float_linear")}):this.webGLVersion===2&&Object.assign(this.extensions,t,{colorBufferFloat:e.getExtension("EXT_color_buffer_float")})}handleContextLost(e){e.preventDefault(),setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext&&this.extensions.loseContext.restoreContext()},0)}handleContextRestored(){this.renderer.runners.contextChange.emit(this.gl)}destroy(){let e=this.renderer.view;this.renderer=null,e.removeEventListener!==void 0&&(e.removeEventListener("webglcontextlost",this.handleContextLost),e.removeEventListener("webglcontextrestored",this.handleContextRestored)),this.gl.useProgram(null),this.extensions.loseContext&&this.extensions.loseContext.loseContext()}postrender(){this.renderer.objectRenderer.renderingToScreen&&this.gl.flush()}validateContext(e){let t=e.getContextAttributes(),i="WebGL2RenderingContext"in globalThis&&e instanceof globalThis.WebGL2RenderingContext;i&&(this.webGLVersion=2),t&&!t.stencil&&console.warn("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let s=i||!!e.getExtension("OES_element_index_uint");this.supports.uint32Indices=s,s||console.warn("Provided WebGL context does not support 32 index buffer, complex graphics may not render correctly")}};ps.defaultOptions={context:null,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default"};ps.extension={type:Z.RendererSystem,name:"context"};te.add(ps);var Yh=class extends Q0{upload(e,t,i){let s=e.gl;s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.alphaMode===Qt.UNPACK);let n=t.realWidth,o=t.realHeight;return i.width===n&&i.height===o?s.texSubImage2D(t.target,0,0,0,n,o,t.format,i.type,this.data):(i.width=n,i.height=o,s.texImage2D(t.target,0,i.internalFormat,n,o,0,t.format,i.type,this.data)),!0}};var Ks=class{constructor(e,t){this.width=Math.round(e||100),this.height=Math.round(t||100),this.stencil=!1,this.depth=!1,this.dirtyId=0,this.dirtyFormat=0,this.dirtySize=0,this.depthTexture=null,this.colorTextures=[],this.glFramebuffers={},this.disposeRunner=new Ht("disposeFramebuffer"),this.multisample=ut.NONE}get colorTexture(){return this.colorTextures[0]}addColorTexture(e=0,t){return this.colorTextures[e]=t||new we(null,{scaleMode:Nr.NEAREST,resolution:1,mipmap:x0.OFF,width:this.width,height:this.height}),this.dirtyId++,this.dirtyFormat++,this}addDepthTexture(e){return this.depthTexture=e||new we(new Yh(null,{width:this.width,height:this.height}),{scaleMode:Nr.NEAREST,resolution:1,width:this.width,height:this.height,mipmap:x0.OFF,format:le.DEPTH_COMPONENT,type:Ce.UNSIGNED_SHORT}),this.dirtyId++,this.dirtyFormat++,this}enableDepth(){return this.depth=!0,this.dirtyId++,this.dirtyFormat++,this}enableStencil(){return this.stencil=!0,this.dirtyId++,this.dirtyFormat++,this}resize(e,t){if(e=Math.round(e),t=Math.round(t),!(e===this.width&&t===this.height)){this.width=e,this.height=t,this.dirtyId++,this.dirtySize++;for(let i=0;i{let s=this.source;this.url=s.src;let n=()=>{this.destroyed||(s.onload=null,s.onerror=null,this.resize(s.width,s.height),this._load=null,this.createBitmap?t(this.process()):t(this))};s.complete&&s.src?n():(s.onload=n,s.onerror=o=>{i(o),this.onError.emit(o)})}),this._load)}process(){let e=this.source;if(this._process!==null)return this._process;if(this.bitmap!==null||!globalThis.createImageBitmap)return Promise.resolve(this);let t=globalThis.createImageBitmap,i=!e.crossOrigin||e.crossOrigin==="anonymous";return this._process=fetch(e.src,{mode:i?"cors":"no-cors"}).then(s=>s.blob()).then(s=>t(s,0,0,e.width,e.height,{premultiplyAlpha:this.alphaMode===null||this.alphaMode===Qt.UNPACK?"premultiply":"none"})).then(s=>this.destroyed?Promise.reject():(this.bitmap=s,this.update(),this._process=null,Promise.resolve(this))),this._process}upload(e,t,i){if(typeof this.alphaMode=="number"&&(t.alphaMode=this.alphaMode),!this.createBitmap)return super.upload(e,t,i);if(!this.bitmap&&(this.process(),!this.bitmap))return!1;if(super.upload(e,t,i,this.bitmap),!this.preserveBitmap){let s=!0,n=t._glTextures;for(let o in n){let a=n[o];if(a!==i&&a.dirtyId!==t.dirtyId){s=!1;break}}s&&(this.bitmap.close&&this.bitmap.close(),this.bitmap=null)}return!0}dispose(){this.source.onload=null,this.source.onerror=null,super.dispose(),this.bitmap&&(this.bitmap.close(),this.bitmap=null),this._process=null,this._load=null}static test(e){return typeof HTMLImageElement<"u"&&(typeof e=="string"||e instanceof HTMLImageElement)}};var ta=class{constructor(){this.x0=0,this.y0=0,this.x1=1,this.y1=0,this.x2=1,this.y2=1,this.x3=0,this.y3=1,this.uvsFloat32=new Float32Array(8)}set(e,t,i){let s=t.width,n=t.height;if(i){let o=e.width/2/s,a=e.height/2/n,l=e.x/s+o,c=e.y/n+a;i=Ct.add(i,Ct.NW),this.x0=l+o*Ct.uX(i),this.y0=c+a*Ct.uY(i),i=Ct.add(i,2),this.x1=l+o*Ct.uX(i),this.y1=c+a*Ct.uY(i),i=Ct.add(i,2),this.x2=l+o*Ct.uX(i),this.y2=c+a*Ct.uY(i),i=Ct.add(i,2),this.x3=l+o*Ct.uX(i),this.y3=c+a*Ct.uY(i)}else this.x0=e.x/s,this.y0=e.y/n,this.x1=(e.x+e.width)/s,this.y1=e.y/n,this.x2=(e.x+e.width)/s,this.y2=(e.y+e.height)/n,this.x3=e.x/s,this.y3=(e.y+e.height)/n;this.uvsFloat32[0]=this.x0,this.uvsFloat32[1]=this.y0,this.uvsFloat32[2]=this.x1,this.uvsFloat32[3]=this.y1,this.uvsFloat32[4]=this.x2,this.uvsFloat32[5]=this.y2,this.uvsFloat32[6]=this.x3,this.uvsFloat32[7]=this.y3}toString(){return`[@pixi/core:TextureUvs x0=${this.x0} y0=${this.y0} x1=${this.x1} y1=${this.y1} x2=${this.x2} y2=${this.y2} x3=${this.x3} y3=${this.y3}]`}};var w3=new ta;function Xh(r){r.destroy=function(){},r.on=function(){},r.once=function(){},r.emit=function(){}}var Se=class r extends js.default{constructor(e,t,i,s,n,o,a){if(super(),this.noFrame=!1,t||(this.noFrame=!0,t=new Ie(0,0,1,1)),e instanceof r&&(e=e.baseTexture),this.baseTexture=e,this._frame=t,this.trim=s,this.valid=!1,this._uvs=w3,this.uvMatrix=null,this.orig=i||t,this._rotate=Number(n||0),n===!0)this._rotate=2;else if(this._rotate%2!==0)throw new Error("attempt to use diamond-shaped UVs. If you are sure, set rotation manually");this.defaultAnchor=o?new Ne(o.x,o.y):new Ne(0,0),this.defaultBorders=a,this._updateID=0,this.textureCacheIds=[],e.valid?this.noFrame?e.valid&&this.onBaseTextureUpdated(e):this.frame=t:e.once("loaded",this.onBaseTextureUpdated,this),this.noFrame&&e.on("update",this.onBaseTextureUpdated,this)}update(){this.baseTexture.resource&&this.baseTexture.resource.update()}onBaseTextureUpdated(e){if(this.noFrame){if(!this.baseTexture.valid)return;this._frame.width=e.width,this._frame.height=e.height,this.valid=!0,this.updateUvs()}else this.frame=this._frame;this.emit("update",this)}destroy(e){if(this.baseTexture){if(e){let{resource:t}=this.baseTexture;t?.url&&c0[t.url]&&r.removeFromCache(t.url),this.baseTexture.destroy()}this.baseTexture.off("loaded",this.onBaseTextureUpdated,this),this.baseTexture.off("update",this.onBaseTextureUpdated,this),this.baseTexture=null}this._frame=null,this._uvs=null,this.trim=null,this.orig=null,this.valid=!1,r.removeFromCache(this),this.textureCacheIds=null}clone(){let e=this._frame.clone(),t=this._frame===this.orig?e:this.orig.clone(),i=new r(this.baseTexture,!this.noFrame&&e,t,this.trim?.clone(),this.rotate,this.defaultAnchor,this.defaultBorders);return this.noFrame&&(i._frame=e),i}updateUvs(){this._uvs===w3&&(this._uvs=new ta),this._uvs.set(this._frame,this.baseTexture,this.rotate),this._updateID++}static from(e,t={},i=K.STRICT_TEXTURE_CACHE){let s=typeof e=="string",n=null;if(s)n=e;else if(e instanceof we){if(!e.cacheId){let a=t?.pixiIdPrefix||"pixiid";e.cacheId=`${a}-${_i()}`,we.addToCache(e,e.cacheId)}n=e.cacheId}else{if(!e._pixiId){let a=t?.pixiIdPrefix||"pixiid";e._pixiId=`${a}_${_i()}`}n=e._pixiId}let o=c0[n];if(s&&i&&!o)throw new Error(`The cacheId "${n}" does not exist in TextureCache.`);return!o&&!(e instanceof we)?(t.resolution||(t.resolution=Vl(e)),o=new r(new we(e,t)),o.baseTexture.cacheId=n,we.addToCache(o.baseTexture,n),r.addToCache(o,n)):!o&&e instanceof we&&(o=new r(e),r.addToCache(o,n)),o}static fromURL(e,t){let i=Object.assign({autoLoad:!1},t?.resourceOptions),s=r.from(e,Object.assign({resourceOptions:i},t),!1),n=s.baseTexture.resource;return s.baseTexture.valid?Promise.resolve(s):n.load().then(()=>Promise.resolve(s))}static fromBuffer(e,t,i,s){return new r(we.fromBuffer(e,t,i,s))}static fromLoader(e,t,i,s){let n=new we(e,Object.assign({scaleMode:we.defaultOptions.scaleMode,resolution:Vl(t)},s)),{resource:o}=n;o instanceof Zs&&(o.url=t);let a=new r(n);return i||(i=t),we.addToCache(a.baseTexture,i),r.addToCache(a,i),i!==t&&(we.addToCache(a.baseTexture,t),r.addToCache(a,t)),a.baseTexture.valid?Promise.resolve(a):new Promise(l=>{a.baseTexture.once("loaded",()=>l(a))})}static addToCache(e,t){t&&(e.textureCacheIds.includes(t)||e.textureCacheIds.push(t),c0[t]&&c0[t]!==e&&console.warn(`Texture added to the cache with an id [${t}] that already had an entry`),c0[t]=e)}static removeFromCache(e){if(typeof e=="string"){let t=c0[e];if(t){let i=t.textureCacheIds.indexOf(e);return i>-1&&t.textureCacheIds.splice(i,1),delete c0[e],t}}else if(e?.textureCacheIds){for(let t=0;tthis.baseTexture.width,a=i+n>this.baseTexture.height;if(o||a){let l=o&&a?"and":"or",c=`X: ${t} + ${s} = ${t+s} > ${this.baseTexture.width}`,h=`Y: ${i} + ${n} = ${i+n} > ${this.baseTexture.height}`;throw new Error(`Texture Error: frame does not fit inside the base Texture dimensions: ${c} ${l} ${h}`)}this.valid=s&&n&&this.baseTexture.valid,!this.trim&&!this.rotate&&(this.orig=e),this.valid&&this.updateUvs()}get rotate(){return this._rotate}set rotate(e){this._rotate=e,this.valid&&this.updateUvs()}get width(){return this.orig.width}get height(){return this.orig.height}castToBaseTexture(){return this.baseTexture}static get EMPTY(){return r._EMPTY||(r._EMPTY=new r(new we),Xh(r._EMPTY),Xh(r._EMPTY.baseTexture)),r._EMPTY}static get WHITE(){if(!r._WHITE){let e=K.ADAPTER.createCanvas(16,16),t=e.getContext("2d");e.width=16,e.height=16,t.fillStyle="white",t.fillRect(0,0,16,16),r._WHITE=new r(we.from(e)),Xh(r._WHITE),Xh(r._WHITE.baseTexture)}return r._WHITE}};var Or=class r extends Se{constructor(e,t){super(e,t),this.valid=!0,this.filterFrame=null,this.filterPoolKey=null,this.updateUvs()}get framebuffer(){return this.baseTexture.framebuffer}get multisample(){return this.framebuffer.multisample}set multisample(e){this.framebuffer.multisample=e}resize(e,t,i=!0){let s=this.baseTexture.resolution,n=Math.round(e*s)/s,o=Math.round(t*s)/s;this.valid=n>0&&o>0,this._frame.width=this.orig.width=n,this._frame.height=this.orig.height=o,i&&this.baseTexture.resize(n,o),this.updateUvs()}setResolution(e){let{baseTexture:t}=this;t.resolution!==e&&(t.setResolution(e),this.resize(t.width,t.height,!1))}static create(e){return new r(new Xn(e))}};var ra=class{constructor(e){this.texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1,this._pixelsWidth=0,this._pixelsHeight=0}createTexture(e,t,i=ut.NONE){let s=new Xn(Object.assign({width:e,height:t,resolution:1,multisample:i},this.textureOptions));return new Or(s)}getOptimalTexture(e,t,i=1,s=ut.NONE){let n;e=Math.ceil(e*i-1e-6),t=Math.ceil(t*i-1e-6),!this.enableFullScreen||e!==this._pixelsWidth||t!==this._pixelsHeight?(e=Hs(e),t=Hs(t),n=((e&65535)<<16|t&65535)>>>0,s>1&&(n+=s*4294967296)):n=s>1?-s:-1,this.texturePool[n]||(this.texturePool[n]=[]);let o=this.texturePool[n].pop();return o||(o=this.createTexture(e,t,s)),o.filterPoolKey=n,o.setResolution(i),o}getFilterTexture(e,t,i){let s=this.getOptimalTexture(e.width,e.height,t||e.resolution,i||ut.NONE);return s.filterFrame=e.filterFrame,s}returnTexture(e){let t=e.filterPoolKey;e.filterFrame=null,this.texturePool[t].push(e)}returnFilterTexture(e){this.returnTexture(e)}clear(e){if(e=e!==!1,e)for(let t in this.texturePool){let i=this.texturePool[t];if(i)for(let s=0;s0&&e.height>0;for(let t in this.texturePool){if(!(Number(t)<0))continue;let i=this.texturePool[t];if(i)for(let s=0;s1&&(h=this.getOptimalFilterTexture(c.width,c.height,t.resolution),h.filterFrame=c.filterFrame),i[d].apply(this,c,h,pr.CLEAR,t);let p=c;c=h,h=p}i[d].apply(this,c,l.renderTexture,pr.BLEND,t),d>1&&t.multisample>1&&this.returnFilterTexture(t.renderTexture),this.returnFilterTexture(c),this.returnFilterTexture(h)}t.clear(),this.statePool.push(t)}bindAndClear(e,t=pr.CLEAR){let{renderTexture:i,state:s}=this.renderer;if(e===this.defaultFilterStack[this.defaultFilterStack.length-1].renderTexture?this.renderer.projection.transform=this.activeState.transform:this.renderer.projection.transform=null,e?.filterFrame){let o=this.tempRect;o.x=0,o.y=0,o.width=e.filterFrame.width,o.height=e.filterFrame.height,i.bind(e,e.filterFrame,o)}else e!==this.defaultFilterStack[this.defaultFilterStack.length-1].renderTexture?i.bind(e):this.renderer.renderTexture.bind(e,this.activeState.bindingSourceFrame,this.activeState.bindingDestinationFrame);let n=s.stateId&1||this.forceClear;(t===pr.CLEAR||t===pr.BLIT&&n)&&this.renderer.framebuffer.clear(0,0,0,0)}applyFilter(e,t,i,s){let n=this.renderer;n.state.set(e.state),this.bindAndClear(i,s),e.uniforms.uSampler=t,e.uniforms.filterGlobals=this.globalUniforms,n.shader.bind(e),e.legacy=!!e.program.attributeData.aTextureCoord,e.legacy?(this.quadUv.map(t._frame,t.filterFrame),n.geometry.bind(this.quadUv),n.geometry.draw(K0.TRIANGLES)):(n.geometry.bind(this.quad),n.geometry.draw(K0.TRIANGLE_STRIP))}calculateSpriteMatrix(e,t){let{sourceFrame:i,destinationFrame:s}=this.activeState,{orig:n}=t._texture,o=e.set(s.width,0,0,s.height,i.x,i.y),a=t.worldTransform.copyTo(je.TEMP_MATRIX);return a.invert(),o.prepend(a),o.scale(1/n.width,1/n.height),o.translate(t.anchor.x,t.anchor.y),o}destroy(){this.renderer=null,this.texturePool.clear(!1)}getOptimalFilterTexture(e,t,i=1,s=ut.NONE){return this.texturePool.getOptimalTexture(e,t,i,s)}getFilterTexture(e,t,i){if(typeof e=="number"){let n=e;e=t,t=n}e=e||this.activeState.renderTexture;let s=this.texturePool.getOptimalTexture(e.width,e.height,t||e.resolution,i||ut.NONE);return s.filterFrame=e.filterFrame,s}returnFilterTexture(e){this.texturePool.returnTexture(e)}emptyPool(){this.texturePool.clear(!0)}resize(){this.texturePool.setScreenSize(this.renderer.view)}transformAABB(e,t){let i=Kh[0],s=Kh[1],n=Kh[2],o=Kh[3];i.set(t.left,t.top),s.set(t.left,t.bottom),n.set(t.right,t.top),o.set(t.right,t.bottom),e.apply(i,i),e.apply(s,s),e.apply(n,n),e.apply(o,o);let a=Math.min(i.x,s.x,n.x,o.x),l=Math.min(i.y,s.y,n.y,o.y),c=Math.max(i.x,s.x,n.x,o.x),h=Math.max(i.y,s.y,n.y,o.y);t.x=a,t.y=l,t.width=c-a,t.height=h-l}roundFrame(e,t,i,s,n){if(!(e.width<=0||e.height<=0||i.width<=0||i.height<=0)){if(n){let{a:o,b:a,c:l,d:c}=n;if((Math.abs(a)>1e-4||Math.abs(l)>1e-4)&&(Math.abs(o)>1e-4||Math.abs(c)>1e-4))return}n=n?i2.copyFrom(n):i2.identity(),n.translate(-i.x,-i.y).scale(s.width/i.width,s.height/i.height).translate(s.x,s.y),this.transformAABB(n,e),e.ceil(t),this.transformAABB(n.invert(),e)}}};ia.extension={type:Z.RendererSystem,name:"filter"};te.add(ia);var Jl=class{constructor(e){this.framebuffer=e,this.stencil=null,this.dirtyId=-1,this.dirtyFormat=-1,this.dirtySize=-1,this.multisample=ut.NONE,this.msaaBuffer=null,this.blitFramebuffer=null,this.mipLevel=0}};var yE=new Ie,sa=class{constructor(e){this.renderer=e,this.managedFramebuffers=[],this.unknownFramebuffer=new Ks(10,10),this.msaaSamples=null}contextChange(){this.disposeAll(!0);let e=this.gl=this.renderer.gl;if(this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.current=this.unknownFramebuffer,this.viewport=new Ie,this.hasMRT=!0,this.writeDepthTexture=!0,this.renderer.context.webGLVersion===1){let t=this.renderer.context.extensions.drawBuffers,i=this.renderer.context.extensions.depthTexture;K.PREFER_ENV===hr.WEBGL_LEGACY&&(t=null,i=null),t?e.drawBuffers=s=>t.drawBuffersWEBGL(s):(this.hasMRT=!1,e.drawBuffers=()=>{}),i||(this.writeDepthTexture=!1)}else this.msaaSamples=e.getInternalformatParameter(e.RENDERBUFFER,e.RGBA8,e.SAMPLES)}bind(e,t,i=0){let{gl:s}=this;if(e){let n=e.glFramebuffers[this.CONTEXT_UID]||this.initFramebuffer(e);this.current!==e&&(this.current=e,s.bindFramebuffer(s.FRAMEBUFFER,n.framebuffer)),n.mipLevel!==i&&(e.dirtyId++,e.dirtyFormat++,n.mipLevel=i),n.dirtyId!==e.dirtyId&&(n.dirtyId=e.dirtyId,n.dirtyFormat!==e.dirtyFormat?(n.dirtyFormat=e.dirtyFormat,n.dirtySize=e.dirtySize,this.updateFramebuffer(e,i)):n.dirtySize!==e.dirtySize&&(n.dirtySize=e.dirtySize,this.resizeFramebuffer(e)));for(let o=0;o>i,a=t.height>>i,l=o/t.width;this.setViewport(t.x*l,t.y*l,o,a)}else{let o=e.width>>i,a=e.height>>i;this.setViewport(0,0,o,a)}}else this.current&&(this.current=null,s.bindFramebuffer(s.FRAMEBUFFER,null)),t?this.setViewport(t.x,t.y,t.width,t.height):this.setViewport(0,0,this.renderer.width,this.renderer.height)}setViewport(e,t,i,s){let n=this.viewport;e=Math.round(e),t=Math.round(t),i=Math.round(i),s=Math.round(s),(n.width!==i||n.height!==s||n.x!==e||n.y!==t)&&(n.x=e,n.y=t,n.width=i,n.height=s,this.gl.viewport(e,t,i,s))}get size(){return this.current?{x:0,y:0,width:this.current.width,height:this.current.height}:{x:0,y:0,width:this.renderer.width,height:this.renderer.height}}clear(e,t,i,s,n=xh.COLOR|xh.DEPTH){let{gl:o}=this;o.clearColor(e,t,i,s),o.clear(n)}initFramebuffer(e){let{gl:t}=this,i=new Jl(t.createFramebuffer());return i.multisample=this.detectSamples(e.multisample),e.glFramebuffers[this.CONTEXT_UID]=i,this.managedFramebuffers.push(e),e.disposeRunner.add(this),i}resizeFramebuffer(e){let{gl:t}=this,i=e.glFramebuffers[this.CONTEXT_UID];i.stencil&&(t.bindRenderbuffer(t.RENDERBUFFER,i.stencil),i.msaaBuffer?t.renderbufferStorageMultisample(t.RENDERBUFFER,i.multisample,t.DEPTH24_STENCIL8,e.width,e.height):t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,e.width,e.height));let s=e.colorTextures,n=s.length;t.drawBuffers||(n=Math.min(n,1));for(let o=0;o1&&this.canMultisampleFramebuffer(e)?s.msaaBuffer=s.msaaBuffer||i.createRenderbuffer():s.msaaBuffer&&(i.deleteRenderbuffer(s.msaaBuffer),s.msaaBuffer=null,s.blitFramebuffer&&(s.blitFramebuffer.dispose(),s.blitFramebuffer=null));let a=[];for(let l=0;l1&&i.drawBuffers(a),e.depthTexture&&this.writeDepthTexture){let c=e.depthTexture;this.renderer.texture.bind(c,0),i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.TEXTURE_2D,c._glTextures[this.CONTEXT_UID].texture,t)}(e.stencil||e.depth)&&!(e.depthTexture&&this.writeDepthTexture)?(s.stencil=s.stencil||i.createRenderbuffer(),i.bindRenderbuffer(i.RENDERBUFFER,s.stencil),s.msaaBuffer?i.renderbufferStorageMultisample(i.RENDERBUFFER,s.multisample,i.DEPTH24_STENCIL8,e.width,e.height):i.renderbufferStorage(i.RENDERBUFFER,i.DEPTH_STENCIL,e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,i.RENDERBUFFER,s.stencil)):s.stencil&&(i.deleteRenderbuffer(s.stencil),s.stencil=null)}canMultisampleFramebuffer(e){return this.renderer.context.webGLVersion!==1&&e.colorTextures.length<=1&&!e.depthTexture}detectSamples(e){let{msaaSamples:t}=this,i=ut.NONE;if(e<=1||t===null)return i;for(let s=0;s=0&&this.managedFramebuffers.splice(n,1),e.disposeRunner.remove(this),t||(s.deleteFramebuffer(i.framebuffer),i.msaaBuffer&&s.deleteRenderbuffer(i.msaaBuffer),i.stencil&&s.deleteRenderbuffer(i.stencil)),i.blitFramebuffer&&this.disposeFramebuffer(i.blitFramebuffer,t)}disposeAll(e){let t=this.managedFramebuffers;this.managedFramebuffers=[];for(let i=0;ii.createVertexArrayOES(),e.bindVertexArray=s=>i.bindVertexArrayOES(s),e.deleteVertexArray=s=>i.deleteVertexArrayOES(s)):(this.hasVao=!1,e.createVertexArray=()=>null,e.bindVertexArray=()=>null,e.deleteVertexArray=()=>null)}if(t.webGLVersion!==2){let i=e.getExtension("ANGLE_instanced_arrays");i?(e.vertexAttribDivisor=(s,n)=>i.vertexAttribDivisorANGLE(s,n),e.drawElementsInstanced=(s,n,o,a,l)=>i.drawElementsInstancedANGLE(s,n,o,a,l),e.drawArraysInstanced=(s,n,o,a)=>i.drawArraysInstancedANGLE(s,n,o,a)):this.hasInstance=!1}this.canUseUInt32ElementIndex=t.webGLVersion===2||!!t.extensions.uint32ElementIndex}bind(e,t){t=t||this.renderer.shader.shader;let{gl:i}=this,s=e.glVertexArrayObjects[this.CONTEXT_UID],n=!1;s||(this.managedGeometries[e.id]=e,e.disposeRunner.add(this),e.glVertexArrayObjects[this.CONTEXT_UID]=s={},n=!0);let o=s[t.program.id]||this.initGeometryVao(e,t,n);this._activeGeometry=e,this._activeVao!==o&&(this._activeVao=o,this.hasVao?i.bindVertexArray(o):this.activateVao(e,t.program)),this.updateBuffers()}reset(){this.unbind()}updateBuffers(){let e=this._activeGeometry,t=this.renderer.buffer;for(let i=0;i"u"?.5:t,this.isSimple=!1}get texture(){return this._texture}set texture(e){this._texture=e,this._textureID=-1}multiplyUvs(e,t){t===void 0&&(t=e);let i=this.mapCoord;for(let s=0;s0?this.maskStack[this.maskStack.length-1]._colorMask:15;i!==t&&this.renderer.gl.colorMask((i&1)!==0,(i&2)!==0,(i&4)!==0,(i&8)!==0)}destroy(){this.renderer=null}};oa.extension={type:Z.RendererSystem,name:"mask"};te.add(oa);var aa=class{constructor(e){this.renderer=e,this.maskStack=[],this.glConst=0}getStackLength(){return this.maskStack.length}setMaskStack(e){let{gl:t}=this.renderer,i=this.getStackLength();this.maskStack=e;let s=this.getStackLength();s!==i&&(s===0?t.disable(this.glConst):(t.enable(this.glConst),this._useCurrent()))}_useCurrent(){}destroy(){this.renderer=null,this.maskStack=null}};var A3=new je,k3=[],Zh=class extends aa{constructor(r){super(r),this.glConst=K.ADAPTER.getWebGLRenderingContext().SCISSOR_TEST}getStackLength(){let r=this.maskStack[this.maskStack.length-1];return r?r._scissorCounter:0}calcScissorRect(r){if(r._scissorRectLocal)return;let e=r._scissorRect,{maskObject:t}=r,{renderer:i}=this,s=i.renderTexture,n=t.getBounds(!0,k3.pop()??new Ie);this.roundFrameToPixels(n,s.current?s.current.resolution:i.resolution,s.sourceFrame,s.destinationFrame,i.projection.transform),e&&n.fit(e),r._scissorRectLocal=n}static isMatrixRotated(r){if(!r)return!1;let{a:e,b:t,c:i,d:s}=r;return(Math.abs(t)>1e-4||Math.abs(i)>1e-4)&&(Math.abs(e)>1e-4||Math.abs(s)>1e-4)}testScissor(r){let{maskObject:e}=r;if(!e.isFastRect||!e.isFastRect()||Zh.isMatrixRotated(e.worldTransform)||Zh.isMatrixRotated(this.renderer.projection.transform))return!1;this.calcScissorRect(r);let t=r._scissorRectLocal;return t.width>0&&t.height>0}roundFrameToPixels(r,e,t,i,s){Zh.isMatrixRotated(s)||(s=s?A3.copyFrom(s):A3.identity(),s.translate(-t.x,-t.y).scale(i.width/t.width,i.height/t.height).translate(i.x,i.y),this.renderer.filter.transformAABB(s,r),r.fit(i),r.x=Math.round(r.x*e),r.y=Math.round(r.y*e),r.width=Math.round(r.width*e),r.height=Math.round(r.height*e))}push(r){r._scissorRectLocal||this.calcScissorRect(r);let{gl:e}=this.renderer;r._scissorRect||e.enable(e.SCISSOR_TEST),r._scissorCounter++,r._scissorRect=r._scissorRectLocal,this._useCurrent()}pop(r){let{gl:e}=this.renderer;r&&k3.push(r._scissorRectLocal),this.getStackLength()>0?this._useCurrent():e.disable(e.SCISSOR_TEST)}_useCurrent(){let r=this.maskStack[this.maskStack.length-1]._scissorRect,e;this.renderer.renderTexture.current?e=r.y:e=this.renderer.height-r.height-r.y,this.renderer.gl.scissor(r.x,e,r.width,r.height)}},Qh=Zh;Qh.extension={type:Z.RendererSystem,name:"scissor"};te.add(Qh);var la=class extends aa{constructor(e){super(e),this.glConst=K.ADAPTER.getWebGLRenderingContext().STENCIL_TEST}getStackLength(){let e=this.maskStack[this.maskStack.length-1];return e?e._stencilCounter:0}push(e){let t=e.maskObject,{gl:i}=this.renderer,s=e._stencilCounter;s===0&&(this.renderer.framebuffer.forceStencil(),i.clearStencil(0),i.clear(i.STENCIL_BUFFER_BIT),i.enable(i.STENCIL_TEST)),e._stencilCounter++;let n=e._colorMask;n!==0&&(e._colorMask=0,i.colorMask(!1,!1,!1,!1)),i.stencilFunc(i.EQUAL,s,4294967295),i.stencilOp(i.KEEP,i.KEEP,i.INCR),t.renderable=!0,t.render(this.renderer),this.renderer.batch.flush(),t.renderable=!1,n!==0&&(e._colorMask=n,i.colorMask((n&1)!==0,(n&2)!==0,(n&4)!==0,(n&8)!==0)),this._useCurrent()}pop(e){let t=this.renderer.gl;if(this.getStackLength()===0)t.disable(t.STENCIL_TEST);else{let i=this.maskStack.length!==0?this.maskStack[this.maskStack.length-1]:null,s=i?i._colorMask:15;s!==0&&(i._colorMask=0,t.colorMask(!1,!1,!1,!1)),t.stencilOp(t.KEEP,t.KEEP,t.DECR),e.renderable=!0,e.render(this.renderer),this.renderer.batch.flush(),e.renderable=!1,s!==0&&(i._colorMask=s,t.colorMask((s&1)!==0,(s&2)!==0,(s&4)!==0,(s&8)!==0)),this._useCurrent()}}_useCurrent(){let e=this.renderer.gl;e.stencilFunc(e.EQUAL,this.getStackLength(),4294967295),e.stencilOp(e.KEEP,e.KEEP,e.KEEP)}};la.extension={type:Z.RendererSystem,name:"stencil"};te.add(la);var ca=class{constructor(e){this.renderer=e,this.plugins={},Object.defineProperties(this.plugins,{extract:{enumerable:!1,get(){return Ue("7.0.0","renderer.plugins.extract has moved to renderer.extract"),e.extract}},prepare:{enumerable:!1,get(){return Ue("7.0.0","renderer.plugins.prepare has moved to renderer.prepare"),e.prepare}},interaction:{enumerable:!1,get(){return Ue("7.0.0","renderer.plugins.interaction has been deprecated, use renderer.events"),e.events}}})}init(){let e=this.rendererPlugins;for(let t in e)this.plugins[t]=new e[t](this.renderer)}destroy(){for(let e in this.plugins)this.plugins[e].destroy(),this.plugins[e]=null}};ca.extension={type:[Z.RendererSystem,Z.CanvasRendererSystem],name:"_plugin"};te.add(ca);var ua=class{constructor(e){this.renderer=e,this.destinationFrame=null,this.sourceFrame=null,this.defaultFrame=null,this.projectionMatrix=new je,this.transform=null}update(e,t,i,s){this.destinationFrame=e||this.destinationFrame||this.defaultFrame,this.sourceFrame=t||this.sourceFrame||e,this.calculateProjection(this.destinationFrame,this.sourceFrame,i,s),this.transform&&this.projectionMatrix.append(this.transform);let n=this.renderer;n.globalUniforms.uniforms.projectionMatrix=this.projectionMatrix,n.globalUniforms.update(),n.shader.shader&&n.shader.syncUniformGroup(n.shader.shader.uniforms.globals)}calculateProjection(e,t,i,s){let n=this.projectionMatrix,o=s?-1:1;n.identity(),n.a=1/t.width*2,n.d=o*(1/t.height*2),n.tx=-1-t.x*n.a,n.ty=-o-t.y*n.d}setTransform(e){}destroy(){this.renderer=null}};ua.extension={type:Z.RendererSystem,name:"projection"};te.add(ua);var yE=new Yn,ha=class{constructor(e){this.renderer=e,this._tempMatrix=new je}generateTexture(e,t){let{region:i,...s}=t||{},n=i||e.getLocalBounds(null,!0);n.width===0&&(n.width=1),n.height===0&&(n.height=1);let o=Or.create({width:n.width,height:n.height,...s});this._tempMatrix.tx=-n.x,this._tempMatrix.ty=-n.y;let a=e.transform;return e.transform=yE,this.renderer.render(e,{renderTexture:o,transform:this._tempMatrix,skipUpdateTransform:!!e.parent,blit:!0}),e.transform=a,o}destroy(){}};ha.extension={type:[Z.RendererSystem,Z.CanvasRendererSystem],name:"textureGenerator"};te.add(ha);var Zn=new Ie,rc=new Ie,da=class{constructor(e){this.renderer=e,this.defaultMaskStack=[],this.current=null,this.sourceFrame=new Ie,this.destinationFrame=new Ie,this.viewportFrame=new Ie}contextChange(){let e=this.renderer?.gl.getContextAttributes();this._rendererPremultipliedAlpha=!!(e&&e.alpha&&e.premultipliedAlpha)}bind(e=null,t,i){let s=this.renderer;this.current=e;let n,o,a;e?(n=e.baseTexture,a=n.resolution,t||(Zn.width=e.frame.width,Zn.height=e.frame.height,t=Zn),i||(rc.x=e.frame.x,rc.y=e.frame.y,rc.width=t.width,rc.height=t.height,i=rc),o=n.framebuffer):(a=s.resolution,t||(Zn.width=s._view.screen.width,Zn.height=s._view.screen.height,t=Zn),i||(i=Zn,i.width=t.width,i.height=t.height));let l=this.viewportFrame;l.x=i.x*a,l.y=i.y*a,l.width=i.width*a,l.height=i.height*a,e||(l.y=s.view.height-(l.y+l.height)),l.ceil(),this.renderer.framebuffer.bind(o,l),this.renderer.projection.update(i,t,a,!o),e?this.renderer.mask.setMaskStack(n.maskStack):this.renderer.mask.setMaskStack(this.defaultMaskStack),this.sourceFrame.copyFrom(t),this.destinationFrame.copyFrom(i)}clear(e,t){let i=this.current?this.current.baseTexture.clear:this.renderer.background.backgroundColor,s=Me.shared.setValue(e||i);(this.current&&this.current.baseTexture.alphaMode>0||!this.current&&this._rendererPremultipliedAlpha)&&s.premultiply(s.alpha);let n=this.destinationFrame,o=this.current?this.current.baseTexture:this.renderer._view.screen,a=n.width!==o.width||n.height!==o.height;if(a){let{x:l,y:c,width:h,height:d}=this.viewportFrame;l=Math.round(l),c=Math.round(c),h=Math.round(h),d=Math.round(d),this.renderer.gl.enable(this.renderer.gl.SCISSOR_TEST),this.renderer.gl.scissor(l,c,h,d)}this.renderer.framebuffer.clear(s.red,s.green,s.blue,s.alpha,t),a&&this.renderer.scissor.pop()}resize(){this.bind(null)}reset(){this.bind(null)}destroy(){this.renderer=null}};da.extension={type:Z.RendererSystem,name:"renderTexture"};te.add(da);var ic=class{constructor(e,t){this.program=e,this.uniformData=t,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBufferBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBufferBindings=null,this.program=null}};function I3(r,e){let t={},i=e.getProgramParameter(r,e.ACTIVE_ATTRIBUTES);for(let s=0;sc>h?1:-1);for(let c=0;c0?this.maskStack[this.maskStack.length-1]._colorMask:15;i!==t&&this.renderer.gl.colorMask((i&1)!==0,(i&2)!==0,(i&4)!==0,(i&8)!==0)}destroy(){this.renderer=null}};oa.extension={type:Z.RendererSystem,name:"mask"};te.add(oa);var aa=class{constructor(e){this.renderer=e,this.maskStack=[],this.glConst=0}getStackLength(){return this.maskStack.length}setMaskStack(e){let{gl:t}=this.renderer,i=this.getStackLength();this.maskStack=e;let s=this.getStackLength();s!==i&&(s===0?t.disable(this.glConst):(t.enable(this.glConst),this._useCurrent()))}_useCurrent(){}destroy(){this.renderer=null,this.maskStack=null}};var A3=new je,k3=[],Zh=class extends aa{constructor(r){super(r),this.glConst=K.ADAPTER.getWebGLRenderingContext().SCISSOR_TEST}getStackLength(){let r=this.maskStack[this.maskStack.length-1];return r?r._scissorCounter:0}calcScissorRect(r){if(r._scissorRectLocal)return;let e=r._scissorRect,{maskObject:t}=r,{renderer:i}=this,s=i.renderTexture,n=t.getBounds(!0,k3.pop()??new Ie);this.roundFrameToPixels(n,s.current?s.current.resolution:i.resolution,s.sourceFrame,s.destinationFrame,i.projection.transform),e&&n.fit(e),r._scissorRectLocal=n}static isMatrixRotated(r){if(!r)return!1;let{a:e,b:t,c:i,d:s}=r;return(Math.abs(t)>1e-4||Math.abs(i)>1e-4)&&(Math.abs(e)>1e-4||Math.abs(s)>1e-4)}testScissor(r){let{maskObject:e}=r;if(!e.isFastRect||!e.isFastRect()||Zh.isMatrixRotated(e.worldTransform)||Zh.isMatrixRotated(this.renderer.projection.transform))return!1;this.calcScissorRect(r);let t=r._scissorRectLocal;return t.width>0&&t.height>0}roundFrameToPixels(r,e,t,i,s){Zh.isMatrixRotated(s)||(s=s?A3.copyFrom(s):A3.identity(),s.translate(-t.x,-t.y).scale(i.width/t.width,i.height/t.height).translate(i.x,i.y),this.renderer.filter.transformAABB(s,r),r.fit(i),r.x=Math.round(r.x*e),r.y=Math.round(r.y*e),r.width=Math.round(r.width*e),r.height=Math.round(r.height*e))}push(r){r._scissorRectLocal||this.calcScissorRect(r);let{gl:e}=this.renderer;r._scissorRect||e.enable(e.SCISSOR_TEST),r._scissorCounter++,r._scissorRect=r._scissorRectLocal,this._useCurrent()}pop(r){let{gl:e}=this.renderer;r&&k3.push(r._scissorRectLocal),this.getStackLength()>0?this._useCurrent():e.disable(e.SCISSOR_TEST)}_useCurrent(){let r=this.maskStack[this.maskStack.length-1]._scissorRect,e;this.renderer.renderTexture.current?e=r.y:e=this.renderer.height-r.height-r.y,this.renderer.gl.scissor(r.x,e,r.width,r.height)}},Qh=Zh;Qh.extension={type:Z.RendererSystem,name:"scissor"};te.add(Qh);var la=class extends aa{constructor(e){super(e),this.glConst=K.ADAPTER.getWebGLRenderingContext().STENCIL_TEST}getStackLength(){let e=this.maskStack[this.maskStack.length-1];return e?e._stencilCounter:0}push(e){let t=e.maskObject,{gl:i}=this.renderer,s=e._stencilCounter;s===0&&(this.renderer.framebuffer.forceStencil(),i.clearStencil(0),i.clear(i.STENCIL_BUFFER_BIT),i.enable(i.STENCIL_TEST)),e._stencilCounter++;let n=e._colorMask;n!==0&&(e._colorMask=0,i.colorMask(!1,!1,!1,!1)),i.stencilFunc(i.EQUAL,s,4294967295),i.stencilOp(i.KEEP,i.KEEP,i.INCR),t.renderable=!0,t.render(this.renderer),this.renderer.batch.flush(),t.renderable=!1,n!==0&&(e._colorMask=n,i.colorMask((n&1)!==0,(n&2)!==0,(n&4)!==0,(n&8)!==0)),this._useCurrent()}pop(e){let t=this.renderer.gl;if(this.getStackLength()===0)t.disable(t.STENCIL_TEST);else{let i=this.maskStack.length!==0?this.maskStack[this.maskStack.length-1]:null,s=i?i._colorMask:15;s!==0&&(i._colorMask=0,t.colorMask(!1,!1,!1,!1)),t.stencilOp(t.KEEP,t.KEEP,t.DECR),e.renderable=!0,e.render(this.renderer),this.renderer.batch.flush(),e.renderable=!1,s!==0&&(i._colorMask=s,t.colorMask((s&1)!==0,(s&2)!==0,(s&4)!==0,(s&8)!==0)),this._useCurrent()}}_useCurrent(){let e=this.renderer.gl;e.stencilFunc(e.EQUAL,this.getStackLength(),4294967295),e.stencilOp(e.KEEP,e.KEEP,e.KEEP)}};la.extension={type:Z.RendererSystem,name:"stencil"};te.add(la);var ca=class{constructor(e){this.renderer=e,this.plugins={},Object.defineProperties(this.plugins,{extract:{enumerable:!1,get(){return Ue("7.0.0","renderer.plugins.extract has moved to renderer.extract"),e.extract}},prepare:{enumerable:!1,get(){return Ue("7.0.0","renderer.plugins.prepare has moved to renderer.prepare"),e.prepare}},interaction:{enumerable:!1,get(){return Ue("7.0.0","renderer.plugins.interaction has been deprecated, use renderer.events"),e.events}}})}init(){let e=this.rendererPlugins;for(let t in e)this.plugins[t]=new e[t](this.renderer)}destroy(){for(let e in this.plugins)this.plugins[e].destroy(),this.plugins[e]=null}};ca.extension={type:[Z.RendererSystem,Z.CanvasRendererSystem],name:"_plugin"};te.add(ca);var ua=class{constructor(e){this.renderer=e,this.destinationFrame=null,this.sourceFrame=null,this.defaultFrame=null,this.projectionMatrix=new je,this.transform=null}update(e,t,i,s){this.destinationFrame=e||this.destinationFrame||this.defaultFrame,this.sourceFrame=t||this.sourceFrame||e,this.calculateProjection(this.destinationFrame,this.sourceFrame,i,s),this.transform&&this.projectionMatrix.append(this.transform);let n=this.renderer;n.globalUniforms.uniforms.projectionMatrix=this.projectionMatrix,n.globalUniforms.update(),n.shader.shader&&n.shader.syncUniformGroup(n.shader.shader.uniforms.globals)}calculateProjection(e,t,i,s){let n=this.projectionMatrix,o=s?-1:1;n.identity(),n.a=1/t.width*2,n.d=o*(1/t.height*2),n.tx=-1-t.x*n.a,n.ty=-o-t.y*n.d}setTransform(e){}destroy(){this.renderer=null}};ua.extension={type:Z.RendererSystem,name:"projection"};te.add(ua);var vE=new Yn,ha=class{constructor(e){this.renderer=e,this._tempMatrix=new je}generateTexture(e,t){let{region:i,...s}=t||{},n=i||e.getLocalBounds(null,!0);n.width===0&&(n.width=1),n.height===0&&(n.height=1);let o=Or.create({width:n.width,height:n.height,...s});this._tempMatrix.tx=-n.x,this._tempMatrix.ty=-n.y;let a=e.transform;return e.transform=vE,this.renderer.render(e,{renderTexture:o,transform:this._tempMatrix,skipUpdateTransform:!!e.parent,blit:!0}),e.transform=a,o}destroy(){}};ha.extension={type:[Z.RendererSystem,Z.CanvasRendererSystem],name:"textureGenerator"};te.add(ha);var Zn=new Ie,rc=new Ie,da=class{constructor(e){this.renderer=e,this.defaultMaskStack=[],this.current=null,this.sourceFrame=new Ie,this.destinationFrame=new Ie,this.viewportFrame=new Ie}contextChange(){let e=this.renderer?.gl.getContextAttributes();this._rendererPremultipliedAlpha=!!(e&&e.alpha&&e.premultipliedAlpha)}bind(e=null,t,i){let s=this.renderer;this.current=e;let n,o,a;e?(n=e.baseTexture,a=n.resolution,t||(Zn.width=e.frame.width,Zn.height=e.frame.height,t=Zn),i||(rc.x=e.frame.x,rc.y=e.frame.y,rc.width=t.width,rc.height=t.height,i=rc),o=n.framebuffer):(a=s.resolution,t||(Zn.width=s._view.screen.width,Zn.height=s._view.screen.height,t=Zn),i||(i=Zn,i.width=t.width,i.height=t.height));let l=this.viewportFrame;l.x=i.x*a,l.y=i.y*a,l.width=i.width*a,l.height=i.height*a,e||(l.y=s.view.height-(l.y+l.height)),l.ceil(),this.renderer.framebuffer.bind(o,l),this.renderer.projection.update(i,t,a,!o),e?this.renderer.mask.setMaskStack(n.maskStack):this.renderer.mask.setMaskStack(this.defaultMaskStack),this.sourceFrame.copyFrom(t),this.destinationFrame.copyFrom(i)}clear(e,t){let i=this.current?this.current.baseTexture.clear:this.renderer.background.backgroundColor,s=Me.shared.setValue(e||i);(this.current&&this.current.baseTexture.alphaMode>0||!this.current&&this._rendererPremultipliedAlpha)&&s.premultiply(s.alpha);let n=this.destinationFrame,o=this.current?this.current.baseTexture:this.renderer._view.screen,a=n.width!==o.width||n.height!==o.height;if(a){let{x:l,y:c,width:h,height:d}=this.viewportFrame;l=Math.round(l),c=Math.round(c),h=Math.round(h),d=Math.round(d),this.renderer.gl.enable(this.renderer.gl.SCISSOR_TEST),this.renderer.gl.scissor(l,c,h,d)}this.renderer.framebuffer.clear(s.red,s.green,s.blue,s.alpha,t),a&&this.renderer.scissor.pop()}resize(){this.bind(null)}reset(){this.bind(null)}destroy(){this.renderer=null}};da.extension={type:Z.RendererSystem,name:"renderTexture"};te.add(da);var ic=class{constructor(e,t){this.program=e,this.uniformData=t,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBufferBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBufferBindings=null,this.program=null}};function I3(r,e){let t={},i=e.getProgramParameter(r,e.ACTIVE_ATTRIBUTES);for(let s=0;sc>h?1:-1);for(let c=0;c({data:n,offset:0,dataLen:0,dirty:0})),t=0,i=0,s=0;for(let n=0;n1&&(t=Math.max(t,16)*o.data.size),o.dataLen=t,i%t!==0&&i<16){let a=i%t%16;i+=a,s+=a}i+t>16?(s=Math.ceil(s/16)*16,o.offset=s,s+=t,i=t):(o.offset=s,i+=t,s+=t)}return s=Math.ceil(s/16)*16,{uboElements:e,size:s}}function P3(r,e){let t=[];for(let i in r)e[i]&&t.push(e[i]);return t.sort((i,s)=>i.index-s.index),t}function o2(r,e){if(!r.autoManage)return{size:0,syncFunc:vE};let t=P3(r.uniforms,e),{uboElements:i,size:s}=N3(t),n=[` + `},M3={float:4,vec2:8,vec3:12,vec4:16,int:4,ivec2:8,ivec3:12,ivec4:16,uint:4,uvec2:8,uvec3:12,uvec4:16,bool:4,bvec2:8,bvec3:12,bvec4:16,mat2:16*2,mat3:16*3,mat4:16*4};function N3(r){let e=r.map(n=>({data:n,offset:0,dataLen:0,dirty:0})),t=0,i=0,s=0;for(let n=0;n1&&(t=Math.max(t,16)*o.data.size),o.dataLen=t,i%t!==0&&i<16){let a=i%t%16;i+=a,s+=a}i+t>16?(s=Math.ceil(s/16)*16,o.offset=s,s+=t,i=t):(o.offset=s,i+=t,s+=t)}return s=Math.ceil(s/16)*16,{uboElements:e,size:s}}function P3(r,e){let t=[];for(let i in r)e[i]&&t.push(e[i]);return t.sort((i,s)=>i.index-s.index),t}function o2(r,e){if(!r.autoManage)return{size:0,syncFunc:xE};let t=P3(r.uniforms,e),{uboElements:i,size:s}=N3(t),n=[` var v = null; var v2 = null; var cv = null; @@ -510,7 +510,7 @@ void main(void) offset += ${v}; } - `)}else{let d=xE[a.data.type];n.push(` + `)}else{let d=DE[a.data.type];n.push(` cv = ud.${c}.value; v = uv.${c}; offset = ${a.offset/4}; @@ -518,7 +518,7 @@ void main(void) `)}}return n.push(` renderer.buffer.update(buffer); `),{size:s,syncFunc:new Function("ud","uv","renderer","syncData","buffer",n.join(` -`))}}var DE=0,Jh={textureCount:0,uboCount:0},pa=class{constructor(e){this.destroyed=!1,this.renderer=e,this.systemCheck(),this.gl=null,this.shader=null,this.program=null,this.cache={},this._uboCache={},this.id=DE++}systemCheck(){if(!$h())throw new Error("Current environment does not allow unsafe-eval, please use @pixi/unsafe-eval module to enable support.")}contextChange(e){this.gl=e,this.reset()}bind(e,t){e.disposeRunner.add(this),e.uniforms.globals=this.renderer.globalUniforms;let i=e.program,s=i.glPrograms[this.renderer.CONTEXT_UID]||this.generateProgram(e);return this.shader=e,this.program!==i&&(this.program=i,this.gl.useProgram(s.program)),t||(Jh.textureCount=0,Jh.uboCount=0,this.syncUniformGroup(e.uniformGroup,Jh)),s}setUniforms(e){let t=this.shader.program,i=t.glPrograms[this.renderer.CONTEXT_UID];t.syncUniforms(i.uniformData,e,this.renderer)}syncUniformGroup(e,t){let i=this.getGlProgram();(!e.static||e.dirtyId!==i.uniformDirtyGroups[e.id])&&(i.uniformDirtyGroups[e.id]=e.dirtyId,this.syncUniforms(e,i,t))}syncUniforms(e,t,i){(e.syncUniforms[this.shader.program.id]||this.createSyncGroups(e))(t.uniformData,e.uniforms,this.renderer,i)}createSyncGroups(e){let t=this.getSignature(e,this.shader.program.uniformData,"u");return this.cache[t]||(this.cache[t]=e2(e,this.shader.program.uniformData)),e.syncUniforms[this.shader.program.id]=this.cache[t],e.syncUniforms[this.shader.program.id]}syncUniformBufferGroup(e,t){let i=this.getGlProgram();if(!e.static||e.dirtyId!==0||!i.uniformGroups[e.id]){e.dirtyId=0;let s=i.uniformGroups[e.id]||this.createSyncBufferGroup(e,i,t);e.buffer.update(),s(i.uniformData,e.uniforms,this.renderer,Jh,e.buffer)}this.renderer.buffer.bindBufferBase(e.buffer,i.uniformBufferBindings[t])}createSyncBufferGroup(e,t,i){let{gl:s}=this.renderer;this.renderer.buffer.bind(e.buffer);let n=this.gl.getUniformBlockIndex(t.program,i);t.uniformBufferBindings[i]=this.shader.uniformBindCount,s.uniformBlockBinding(t.program,n,this.shader.uniformBindCount),this.shader.uniformBindCount++;let o=this.getSignature(e,this.shader.program.uniformData,"ubo"),a=this._uboCache[o];if(a||(a=this._uboCache[o]=o2(e,this.shader.program.uniformData)),e.autoManage){let l=new Float32Array(a.size/4);e.buffer.update(l)}return t.uniformGroups[e.id]=a.syncFunc,t.uniformGroups[e.id]}getSignature(e,t,i){let s=e.uniforms,n=[`${i}-`];for(let o in s)n.push(o),t[o]&&n.push(t[o].type);return n.join("-")}getGlProgram(){return this.shader?this.shader.program.glPrograms[this.renderer.CONTEXT_UID]:null}generateProgram(e){let t=this.gl,i=e.program,s=n2(t,i);return i.glPrograms[this.renderer.CONTEXT_UID]=s,s}reset(){this.program=null,this.shader=null}disposeShader(e){this.shader===e&&(this.shader=null)}destroy(){this.renderer=null,this.destroyed=!0}};pa.extension={type:Z.RendererSystem,name:"shader"};te.add(pa);var fs=class{constructor(e){this.renderer=e}run(e){let{renderer:t}=this;t.runners.init.emit(t.options),e.hello&&console.log(`PixiJS 7.2.4 - ${t.rendererLogId} - https://pixijs.com`),t.resize(t.screen.width,t.screen.height)}destroy(){}};fs.defaultOptions={hello:!1};fs.extension={type:[Z.RendererSystem,Z.CanvasRendererSystem],name:"startup"};te.add(fs);function B3(r,e=[]){return e[ke.NORMAL]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.ADD]=[r.ONE,r.ONE],e[ke.MULTIPLY]=[r.DST_COLOR,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.SCREEN]=[r.ONE,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.OVERLAY]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.DARKEN]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.LIGHTEN]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.COLOR_DODGE]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.COLOR_BURN]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.HARD_LIGHT]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.SOFT_LIGHT]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.DIFFERENCE]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.EXCLUSION]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.HUE]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.SATURATION]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.COLOR]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.LUMINOSITY]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.NONE]=[0,0],e[ke.NORMAL_NPM]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.ADD_NPM]=[r.SRC_ALPHA,r.ONE,r.ONE,r.ONE],e[ke.SCREEN_NPM]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.SRC_IN]=[r.DST_ALPHA,r.ZERO],e[ke.SRC_OUT]=[r.ONE_MINUS_DST_ALPHA,r.ZERO],e[ke.SRC_ATOP]=[r.DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],e[ke.DST_OVER]=[r.ONE_MINUS_DST_ALPHA,r.ONE],e[ke.DST_IN]=[r.ZERO,r.SRC_ALPHA],e[ke.DST_OUT]=[r.ZERO,r.ONE_MINUS_SRC_ALPHA],e[ke.DST_ATOP]=[r.ONE_MINUS_DST_ALPHA,r.SRC_ALPHA],e[ke.XOR]=[r.ONE_MINUS_DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],e[ke.SUBTRACT]=[r.ONE,r.ONE,r.ONE,r.ONE,r.FUNC_REVERSE_SUBTRACT,r.FUNC_ADD],e}var bE=0,EE=1,SE=2,CE=3,wE=4,TE=5,a2=class{constructor(){this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode=ke.NONE,this._blendEq=!1,this.map=[],this.map[bE]=this.setBlend,this.map[EE]=this.setOffset,this.map[SE]=this.setCullFace,this.map[CE]=this.setDepthTest,this.map[wE]=this.setFrontFace,this.map[TE]=this.setDepthMask,this.checks=[],this.defaultState=new D0,this.defaultState.blend=!0}contextChange(r){this.gl=r,this.blendModes=B3(r),this.set(this.defaultState),this.reset()}set(r){if(r=r||this.defaultState,this.stateId!==r.data){let e=this.stateId^r.data,t=0;for(;e;)e&1&&this.map[t].call(this,!!(r.data&1<>1,t++;this.stateId=r.data}for(let e=0;ee.systems[s]),i=[...t,...Object.keys(e.systems).filter(s=>!t.includes(s))];for(let s of i)this.addSystem(e.systems[s],s)}addRunners(...e){e.forEach(t=>{this.runners[t]=new Ht(t)})}addSystem(e,t){let i=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=i,this._systemsHash[t]=i;for(let s in this.runners)this.runners[s].add(i);return this}emitWithCustomOptions(e,t){let i=Object.keys(this._systemsHash);e.items.forEach(s=>{let n=i.find(o=>this._systemsHash[o]===s);s[e.name](t[n])})}destroy(){Object.values(this.runners).forEach(e=>{e.destroy()}),this._systemsHash={}}};var td=class{constructor(r){this.renderer=r,this.count=0,this.checkCount=0,this.maxIdle=td.defaultMaxIdle,this.checkCountMax=td.defaultCheckCountMax,this.mode=td.defaultMode}postrender(){this.renderer.objectRenderer.renderingToScreen&&(this.count++,this.mode!==bh.MANUAL&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))}run(){let r=this.renderer.texture,e=r.managedTextures,t=!1;for(let i=0;ithis.maxIdle&&(r.destroyTexture(s,!0),e[i]=null,t=!0)}if(t){let i=0;for(let s=0;s=0;i--)this.unload(r.children[i])}destroy(){this.renderer=null}},J0=td;J0.defaultMode=bh.AUTO;J0.defaultMaxIdle=60*60;J0.defaultCheckCountMax=60*10;J0.extension={type:Z.RendererSystem,name:"textureGC"};te.add(J0);var Qn=class{constructor(e){this.texture=e,this.width=-1,this.height=-1,this.dirtyId=-1,this.dirtyStyleId=-1,this.mipmap=!1,this.wrapMode=33071,this.type=Ce.UNSIGNED_BYTE,this.internalFormat=le.RGBA,this.samplerType=0}};function R3(r){let e;return"WebGL2RenderingContext"in globalThis&&r instanceof globalThis.WebGL2RenderingContext?e={[Ce.UNSIGNED_BYTE]:{[le.RGBA]:r.RGBA8,[le.RGB]:r.RGB8,[le.RG]:r.RG8,[le.RED]:r.R8,[le.RGBA_INTEGER]:r.RGBA8UI,[le.RGB_INTEGER]:r.RGB8UI,[le.RG_INTEGER]:r.RG8UI,[le.RED_INTEGER]:r.R8UI,[le.ALPHA]:r.ALPHA,[le.LUMINANCE]:r.LUMINANCE,[le.LUMINANCE_ALPHA]:r.LUMINANCE_ALPHA},[Ce.BYTE]:{[le.RGBA]:r.RGBA8_SNORM,[le.RGB]:r.RGB8_SNORM,[le.RG]:r.RG8_SNORM,[le.RED]:r.R8_SNORM,[le.RGBA_INTEGER]:r.RGBA8I,[le.RGB_INTEGER]:r.RGB8I,[le.RG_INTEGER]:r.RG8I,[le.RED_INTEGER]:r.R8I},[Ce.UNSIGNED_SHORT]:{[le.RGBA_INTEGER]:r.RGBA16UI,[le.RGB_INTEGER]:r.RGB16UI,[le.RG_INTEGER]:r.RG16UI,[le.RED_INTEGER]:r.R16UI,[le.DEPTH_COMPONENT]:r.DEPTH_COMPONENT16},[Ce.SHORT]:{[le.RGBA_INTEGER]:r.RGBA16I,[le.RGB_INTEGER]:r.RGB16I,[le.RG_INTEGER]:r.RG16I,[le.RED_INTEGER]:r.R16I},[Ce.UNSIGNED_INT]:{[le.RGBA_INTEGER]:r.RGBA32UI,[le.RGB_INTEGER]:r.RGB32UI,[le.RG_INTEGER]:r.RG32UI,[le.RED_INTEGER]:r.R32UI,[le.DEPTH_COMPONENT]:r.DEPTH_COMPONENT24},[Ce.INT]:{[le.RGBA_INTEGER]:r.RGBA32I,[le.RGB_INTEGER]:r.RGB32I,[le.RG_INTEGER]:r.RG32I,[le.RED_INTEGER]:r.R32I},[Ce.FLOAT]:{[le.RGBA]:r.RGBA32F,[le.RGB]:r.RGB32F,[le.RG]:r.RG32F,[le.RED]:r.R32F,[le.DEPTH_COMPONENT]:r.DEPTH_COMPONENT32F},[Ce.HALF_FLOAT]:{[le.RGBA]:r.RGBA16F,[le.RGB]:r.RGB16F,[le.RG]:r.RG16F,[le.RED]:r.R16F},[Ce.UNSIGNED_SHORT_5_6_5]:{[le.RGB]:r.RGB565},[Ce.UNSIGNED_SHORT_4_4_4_4]:{[le.RGBA]:r.RGBA4},[Ce.UNSIGNED_SHORT_5_5_5_1]:{[le.RGBA]:r.RGB5_A1},[Ce.UNSIGNED_INT_2_10_10_10_REV]:{[le.RGBA]:r.RGB10_A2,[le.RGBA_INTEGER]:r.RGB10_A2UI},[Ce.UNSIGNED_INT_10F_11F_11F_REV]:{[le.RGB]:r.R11F_G11F_B10F},[Ce.UNSIGNED_INT_5_9_9_9_REV]:{[le.RGB]:r.RGB9_E5},[Ce.UNSIGNED_INT_24_8]:{[le.DEPTH_STENCIL]:r.DEPTH24_STENCIL8},[Ce.FLOAT_32_UNSIGNED_INT_24_8_REV]:{[le.DEPTH_STENCIL]:r.DEPTH32F_STENCIL8}}:e={[Ce.UNSIGNED_BYTE]:{[le.RGBA]:r.RGBA,[le.RGB]:r.RGB,[le.ALPHA]:r.ALPHA,[le.LUMINANCE]:r.LUMINANCE,[le.LUMINANCE_ALPHA]:r.LUMINANCE_ALPHA},[Ce.UNSIGNED_SHORT_5_6_5]:{[le.RGB]:r.RGB},[Ce.UNSIGNED_SHORT_4_4_4_4]:{[le.RGBA]:r.RGBA},[Ce.UNSIGNED_SHORT_5_5_5_1]:{[le.RGBA]:r.RGBA}},e}var ga=class{constructor(e){this.renderer=e,this.boundTextures=[],this.currentLocation=-1,this.managedTextures=[],this._unknownBoundTextures=!1,this.unknownTexture=new we,this.hasIntegerTextures=!1}contextChange(){let e=this.gl=this.renderer.gl;this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.webGLVersion=this.renderer.context.webGLVersion,this.internalFormats=R3(e);let t=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS);this.boundTextures.length=t;for(let s=0;s=0;--n){let o=t[n];o&&o._glTextures[s].samplerType!==Dh.FLOAT&&this.renderer.texture.unbind(o)}}initTexture(e){let t=new Qn(this.gl.createTexture());return t.dirtyId=-1,e._glTextures[this.CONTEXT_UID]=t,this.managedTextures.push(e),e.on("dispose",this.destroyTexture,this),t}initTextureType(e,t){t.internalFormat=this.internalFormats[e.type]?.[e.format]??e.format,this.webGLVersion===2&&e.type===Ce.HALF_FLOAT?t.type=this.gl.HALF_FLOAT:t.type=e.type}updateTexture(e){let t=e._glTextures[this.CONTEXT_UID];if(!t)return;let i=this.renderer;if(this.initTextureType(e,t),e.resource?.upload(i,e,t))t.samplerType!==Dh.FLOAT&&(this.hasIntegerTextures=!0);else{let s=e.realWidth,n=e.realHeight,o=i.gl;(t.width!==s||t.height!==n||t.dirtyId<0)&&(t.width=s,t.height=n,o.texImage2D(e.target,0,t.internalFormat,s,n,0,e.format,t.type,null))}e.dirtyStyleId!==t.dirtyStyleId&&this.updateTextureStyle(e),t.dirtyId=e.dirtyId}destroyTexture(e,t){let{gl:i}=this;if(e=e.castToBaseTexture(),e._glTextures[this.CONTEXT_UID]&&(this.unbind(e),i.deleteTexture(e._glTextures[this.CONTEXT_UID].texture),e.off("dispose",this.destroyTexture,this),delete e._glTextures[this.CONTEXT_UID],!t)){let s=this.managedTextures.indexOf(e);s!==-1&&Lh(this.managedTextures,s,1)}}updateTextureStyle(e){let t=e._glTextures[this.CONTEXT_UID];t&&((e.mipmap===x0.POW2||this.webGLVersion!==2)&&!e.isPowerOfTwo?t.mipmap=!1:t.mipmap=e.mipmap>=1,this.webGLVersion!==2&&!e.isPowerOfTwo?t.wrapMode=dr.CLAMP:t.wrapMode=e.wrapMode,e.resource?.style(this.renderer,e,t)||this.setStyle(e,t),t.dirtyStyleId=e.dirtyStyleId)}setStyle(e,t){let i=this.gl;if(t.mipmap&&e.mipmap!==x0.ON_MANUAL&&i.generateMipmap(e.target),i.texParameteri(e.target,i.TEXTURE_WRAP_S,t.wrapMode),i.texParameteri(e.target,i.TEXTURE_WRAP_T,t.wrapMode),t.mipmap){i.texParameteri(e.target,i.TEXTURE_MIN_FILTER,e.scaleMode===Nr.LINEAR?i.LINEAR_MIPMAP_LINEAR:i.NEAREST_MIPMAP_NEAREST);let s=this.renderer.context.extensions.anisotropicFiltering;if(s&&e.anisotropicLevel>0&&e.scaleMode===Nr.LINEAR){let n=Math.min(e.anisotropicLevel,i.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT));i.texParameterf(e.target,s.TEXTURE_MAX_ANISOTROPY_EXT,n)}}else i.texParameteri(e.target,i.TEXTURE_MIN_FILTER,e.scaleMode===Nr.LINEAR?i.LINEAR:i.NEAREST);i.texParameteri(e.target,i.TEXTURE_MAG_FILTER,e.scaleMode===Nr.LINEAR?i.LINEAR:i.NEAREST)}destroy(){this.renderer=null}};ga.extension={type:Z.RendererSystem,name:"texture"};te.add(ga);var ma=class{constructor(e){this.renderer=e}contextChange(){this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID}bind(e){let{gl:t,CONTEXT_UID:i}=this,s=e._glTransformFeedbacks[i]||this.createGLTransformFeedback(e);t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,s)}unbind(){let{gl:e}=this;e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,null)}beginTransformFeedback(e,t){let{gl:i,renderer:s}=this;t&&s.shader.bind(t),i.beginTransformFeedback(e)}endTransformFeedback(){let{gl:e}=this;e.endTransformFeedback()}createGLTransformFeedback(e){let{gl:t,renderer:i,CONTEXT_UID:s}=this,n=t.createTransformFeedback();e._glTransformFeedbacks[s]=n,t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,n);for(let o=0;o(r[r.INTERACTION=50]="INTERACTION",r[r.HIGH=25]="HIGH",r[r.NORMAL=0]="NORMAL",r[r.LOW=-25]="LOW",r[r.UTILITY=-50]="UTILITY",r))(yr||{});var ya=class{constructor(e,t=null,i=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this.fn=e,this.context=t,this.priority=i,this.once=s}match(e,t=null){return this.fn===e&&this.context===t}emit(e){this.fn&&(this.context?this.fn.call(this.context,e):this.fn(e));let t=this.next;return this.once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!1){this._destroyed=!0,this.fn=null,this.context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);let t=this.next;return this.next=e?null:t,this.previous=null,t}};var vr=class{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new ya(null,null,1/0),this.deltaMS=1/vr.targetFPMS,this.elapsedMS=1/vr.targetFPMS,this._tick=r=>{this._requestId=null,this.started&&(this.update(r),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(r,e,t=yr.NORMAL){return this._addListener(new ya(r,e,t))}addOnce(r,e,t=yr.NORMAL){return this._addListener(new ya(r,e,t,!0))}_addListener(r){let e=this._head.next,t=this._head;if(!e)r.connect(t);else{for(;e;){if(r.priority>e.priority){r.connect(t);break}t=e,e=e.next}r.previous||r.connect(t)}return this._startIfPossible(),this}remove(r,e){let t=this._head.next;for(;t;)t.match(r,e)?t=t.destroy():t=t.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let r=0,e=this._head;for(;e=e.next;)r++;return r}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let r=this._head.next;for(;r;)r=r.destroy(!0);this._head.destroy(),this._head=null}}update(r=performance.now()){let e;if(r>this.lastTime){if(e=this.elapsedMS=r-this.lastTime,e>this._maxElapsedMS&&(e=this._maxElapsedMS),e*=this.speed,this._minElapsedMS){let s=r-this._lastFrame|0;if(s{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?It.shared:new It,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};sc.extension=Z.Application;te.add(sc);var O3=[];te.handleByList(Z.Renderer,O3);function l2(r){for(let e of O3)if(e.test(r))return new e(r);throw new Error("Unable to auto-detect a suitable renderer.")}var G3=`attribute vec2 aVertexPosition; +`))}}var bE=0,Jh={textureCount:0,uboCount:0},pa=class{constructor(e){this.destroyed=!1,this.renderer=e,this.systemCheck(),this.gl=null,this.shader=null,this.program=null,this.cache={},this._uboCache={},this.id=bE++}systemCheck(){if(!$h())throw new Error("Current environment does not allow unsafe-eval, please use @pixi/unsafe-eval module to enable support.")}contextChange(e){this.gl=e,this.reset()}bind(e,t){e.disposeRunner.add(this),e.uniforms.globals=this.renderer.globalUniforms;let i=e.program,s=i.glPrograms[this.renderer.CONTEXT_UID]||this.generateProgram(e);return this.shader=e,this.program!==i&&(this.program=i,this.gl.useProgram(s.program)),t||(Jh.textureCount=0,Jh.uboCount=0,this.syncUniformGroup(e.uniformGroup,Jh)),s}setUniforms(e){let t=this.shader.program,i=t.glPrograms[this.renderer.CONTEXT_UID];t.syncUniforms(i.uniformData,e,this.renderer)}syncUniformGroup(e,t){let i=this.getGlProgram();(!e.static||e.dirtyId!==i.uniformDirtyGroups[e.id])&&(i.uniformDirtyGroups[e.id]=e.dirtyId,this.syncUniforms(e,i,t))}syncUniforms(e,t,i){(e.syncUniforms[this.shader.program.id]||this.createSyncGroups(e))(t.uniformData,e.uniforms,this.renderer,i)}createSyncGroups(e){let t=this.getSignature(e,this.shader.program.uniformData,"u");return this.cache[t]||(this.cache[t]=e2(e,this.shader.program.uniformData)),e.syncUniforms[this.shader.program.id]=this.cache[t],e.syncUniforms[this.shader.program.id]}syncUniformBufferGroup(e,t){let i=this.getGlProgram();if(!e.static||e.dirtyId!==0||!i.uniformGroups[e.id]){e.dirtyId=0;let s=i.uniformGroups[e.id]||this.createSyncBufferGroup(e,i,t);e.buffer.update(),s(i.uniformData,e.uniforms,this.renderer,Jh,e.buffer)}this.renderer.buffer.bindBufferBase(e.buffer,i.uniformBufferBindings[t])}createSyncBufferGroup(e,t,i){let{gl:s}=this.renderer;this.renderer.buffer.bind(e.buffer);let n=this.gl.getUniformBlockIndex(t.program,i);t.uniformBufferBindings[i]=this.shader.uniformBindCount,s.uniformBlockBinding(t.program,n,this.shader.uniformBindCount),this.shader.uniformBindCount++;let o=this.getSignature(e,this.shader.program.uniformData,"ubo"),a=this._uboCache[o];if(a||(a=this._uboCache[o]=o2(e,this.shader.program.uniformData)),e.autoManage){let l=new Float32Array(a.size/4);e.buffer.update(l)}return t.uniformGroups[e.id]=a.syncFunc,t.uniformGroups[e.id]}getSignature(e,t,i){let s=e.uniforms,n=[`${i}-`];for(let o in s)n.push(o),t[o]&&n.push(t[o].type);return n.join("-")}getGlProgram(){return this.shader?this.shader.program.glPrograms[this.renderer.CONTEXT_UID]:null}generateProgram(e){let t=this.gl,i=e.program,s=n2(t,i);return i.glPrograms[this.renderer.CONTEXT_UID]=s,s}reset(){this.program=null,this.shader=null}disposeShader(e){this.shader===e&&(this.shader=null)}destroy(){this.renderer=null,this.destroyed=!0}};pa.extension={type:Z.RendererSystem,name:"shader"};te.add(pa);var fs=class{constructor(e){this.renderer=e}run(e){let{renderer:t}=this;t.runners.init.emit(t.options),e.hello&&console.log(`PixiJS 7.2.4 - ${t.rendererLogId} - https://pixijs.com`),t.resize(t.screen.width,t.screen.height)}destroy(){}};fs.defaultOptions={hello:!1};fs.extension={type:[Z.RendererSystem,Z.CanvasRendererSystem],name:"startup"};te.add(fs);function B3(r,e=[]){return e[ke.NORMAL]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.ADD]=[r.ONE,r.ONE],e[ke.MULTIPLY]=[r.DST_COLOR,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.SCREEN]=[r.ONE,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.OVERLAY]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.DARKEN]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.LIGHTEN]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.COLOR_DODGE]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.COLOR_BURN]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.HARD_LIGHT]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.SOFT_LIGHT]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.DIFFERENCE]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.EXCLUSION]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.HUE]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.SATURATION]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.COLOR]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.LUMINOSITY]=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.NONE]=[0,0],e[ke.NORMAL_NPM]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.ADD_NPM]=[r.SRC_ALPHA,r.ONE,r.ONE,r.ONE],e[ke.SCREEN_NPM]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e[ke.SRC_IN]=[r.DST_ALPHA,r.ZERO],e[ke.SRC_OUT]=[r.ONE_MINUS_DST_ALPHA,r.ZERO],e[ke.SRC_ATOP]=[r.DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],e[ke.DST_OVER]=[r.ONE_MINUS_DST_ALPHA,r.ONE],e[ke.DST_IN]=[r.ZERO,r.SRC_ALPHA],e[ke.DST_OUT]=[r.ZERO,r.ONE_MINUS_SRC_ALPHA],e[ke.DST_ATOP]=[r.ONE_MINUS_DST_ALPHA,r.SRC_ALPHA],e[ke.XOR]=[r.ONE_MINUS_DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],e[ke.SUBTRACT]=[r.ONE,r.ONE,r.ONE,r.ONE,r.FUNC_REVERSE_SUBTRACT,r.FUNC_ADD],e}var EE=0,SE=1,CE=2,wE=3,TE=4,_E=5,a2=class{constructor(){this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode=ke.NONE,this._blendEq=!1,this.map=[],this.map[EE]=this.setBlend,this.map[SE]=this.setOffset,this.map[CE]=this.setCullFace,this.map[wE]=this.setDepthTest,this.map[TE]=this.setFrontFace,this.map[_E]=this.setDepthMask,this.checks=[],this.defaultState=new D0,this.defaultState.blend=!0}contextChange(r){this.gl=r,this.blendModes=B3(r),this.set(this.defaultState),this.reset()}set(r){if(r=r||this.defaultState,this.stateId!==r.data){let e=this.stateId^r.data,t=0;for(;e;)e&1&&this.map[t].call(this,!!(r.data&1<>1,t++;this.stateId=r.data}for(let e=0;ee.systems[s]),i=[...t,...Object.keys(e.systems).filter(s=>!t.includes(s))];for(let s of i)this.addSystem(e.systems[s],s)}addRunners(...e){e.forEach(t=>{this.runners[t]=new Ht(t)})}addSystem(e,t){let i=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=i,this._systemsHash[t]=i;for(let s in this.runners)this.runners[s].add(i);return this}emitWithCustomOptions(e,t){let i=Object.keys(this._systemsHash);e.items.forEach(s=>{let n=i.find(o=>this._systemsHash[o]===s);s[e.name](t[n])})}destroy(){Object.values(this.runners).forEach(e=>{e.destroy()}),this._systemsHash={}}};var td=class{constructor(r){this.renderer=r,this.count=0,this.checkCount=0,this.maxIdle=td.defaultMaxIdle,this.checkCountMax=td.defaultCheckCountMax,this.mode=td.defaultMode}postrender(){this.renderer.objectRenderer.renderingToScreen&&(this.count++,this.mode!==bh.MANUAL&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))}run(){let r=this.renderer.texture,e=r.managedTextures,t=!1;for(let i=0;ithis.maxIdle&&(r.destroyTexture(s,!0),e[i]=null,t=!0)}if(t){let i=0;for(let s=0;s=0;i--)this.unload(r.children[i])}destroy(){this.renderer=null}},J0=td;J0.defaultMode=bh.AUTO;J0.defaultMaxIdle=60*60;J0.defaultCheckCountMax=60*10;J0.extension={type:Z.RendererSystem,name:"textureGC"};te.add(J0);var Qn=class{constructor(e){this.texture=e,this.width=-1,this.height=-1,this.dirtyId=-1,this.dirtyStyleId=-1,this.mipmap=!1,this.wrapMode=33071,this.type=Ce.UNSIGNED_BYTE,this.internalFormat=le.RGBA,this.samplerType=0}};function R3(r){let e;return"WebGL2RenderingContext"in globalThis&&r instanceof globalThis.WebGL2RenderingContext?e={[Ce.UNSIGNED_BYTE]:{[le.RGBA]:r.RGBA8,[le.RGB]:r.RGB8,[le.RG]:r.RG8,[le.RED]:r.R8,[le.RGBA_INTEGER]:r.RGBA8UI,[le.RGB_INTEGER]:r.RGB8UI,[le.RG_INTEGER]:r.RG8UI,[le.RED_INTEGER]:r.R8UI,[le.ALPHA]:r.ALPHA,[le.LUMINANCE]:r.LUMINANCE,[le.LUMINANCE_ALPHA]:r.LUMINANCE_ALPHA},[Ce.BYTE]:{[le.RGBA]:r.RGBA8_SNORM,[le.RGB]:r.RGB8_SNORM,[le.RG]:r.RG8_SNORM,[le.RED]:r.R8_SNORM,[le.RGBA_INTEGER]:r.RGBA8I,[le.RGB_INTEGER]:r.RGB8I,[le.RG_INTEGER]:r.RG8I,[le.RED_INTEGER]:r.R8I},[Ce.UNSIGNED_SHORT]:{[le.RGBA_INTEGER]:r.RGBA16UI,[le.RGB_INTEGER]:r.RGB16UI,[le.RG_INTEGER]:r.RG16UI,[le.RED_INTEGER]:r.R16UI,[le.DEPTH_COMPONENT]:r.DEPTH_COMPONENT16},[Ce.SHORT]:{[le.RGBA_INTEGER]:r.RGBA16I,[le.RGB_INTEGER]:r.RGB16I,[le.RG_INTEGER]:r.RG16I,[le.RED_INTEGER]:r.R16I},[Ce.UNSIGNED_INT]:{[le.RGBA_INTEGER]:r.RGBA32UI,[le.RGB_INTEGER]:r.RGB32UI,[le.RG_INTEGER]:r.RG32UI,[le.RED_INTEGER]:r.R32UI,[le.DEPTH_COMPONENT]:r.DEPTH_COMPONENT24},[Ce.INT]:{[le.RGBA_INTEGER]:r.RGBA32I,[le.RGB_INTEGER]:r.RGB32I,[le.RG_INTEGER]:r.RG32I,[le.RED_INTEGER]:r.R32I},[Ce.FLOAT]:{[le.RGBA]:r.RGBA32F,[le.RGB]:r.RGB32F,[le.RG]:r.RG32F,[le.RED]:r.R32F,[le.DEPTH_COMPONENT]:r.DEPTH_COMPONENT32F},[Ce.HALF_FLOAT]:{[le.RGBA]:r.RGBA16F,[le.RGB]:r.RGB16F,[le.RG]:r.RG16F,[le.RED]:r.R16F},[Ce.UNSIGNED_SHORT_5_6_5]:{[le.RGB]:r.RGB565},[Ce.UNSIGNED_SHORT_4_4_4_4]:{[le.RGBA]:r.RGBA4},[Ce.UNSIGNED_SHORT_5_5_5_1]:{[le.RGBA]:r.RGB5_A1},[Ce.UNSIGNED_INT_2_10_10_10_REV]:{[le.RGBA]:r.RGB10_A2,[le.RGBA_INTEGER]:r.RGB10_A2UI},[Ce.UNSIGNED_INT_10F_11F_11F_REV]:{[le.RGB]:r.R11F_G11F_B10F},[Ce.UNSIGNED_INT_5_9_9_9_REV]:{[le.RGB]:r.RGB9_E5},[Ce.UNSIGNED_INT_24_8]:{[le.DEPTH_STENCIL]:r.DEPTH24_STENCIL8},[Ce.FLOAT_32_UNSIGNED_INT_24_8_REV]:{[le.DEPTH_STENCIL]:r.DEPTH32F_STENCIL8}}:e={[Ce.UNSIGNED_BYTE]:{[le.RGBA]:r.RGBA,[le.RGB]:r.RGB,[le.ALPHA]:r.ALPHA,[le.LUMINANCE]:r.LUMINANCE,[le.LUMINANCE_ALPHA]:r.LUMINANCE_ALPHA},[Ce.UNSIGNED_SHORT_5_6_5]:{[le.RGB]:r.RGB},[Ce.UNSIGNED_SHORT_4_4_4_4]:{[le.RGBA]:r.RGBA},[Ce.UNSIGNED_SHORT_5_5_5_1]:{[le.RGBA]:r.RGBA}},e}var ga=class{constructor(e){this.renderer=e,this.boundTextures=[],this.currentLocation=-1,this.managedTextures=[],this._unknownBoundTextures=!1,this.unknownTexture=new we,this.hasIntegerTextures=!1}contextChange(){let e=this.gl=this.renderer.gl;this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.webGLVersion=this.renderer.context.webGLVersion,this.internalFormats=R3(e);let t=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS);this.boundTextures.length=t;for(let s=0;s=0;--n){let o=t[n];o&&o._glTextures[s].samplerType!==Dh.FLOAT&&this.renderer.texture.unbind(o)}}initTexture(e){let t=new Qn(this.gl.createTexture());return t.dirtyId=-1,e._glTextures[this.CONTEXT_UID]=t,this.managedTextures.push(e),e.on("dispose",this.destroyTexture,this),t}initTextureType(e,t){t.internalFormat=this.internalFormats[e.type]?.[e.format]??e.format,this.webGLVersion===2&&e.type===Ce.HALF_FLOAT?t.type=this.gl.HALF_FLOAT:t.type=e.type}updateTexture(e){let t=e._glTextures[this.CONTEXT_UID];if(!t)return;let i=this.renderer;if(this.initTextureType(e,t),e.resource?.upload(i,e,t))t.samplerType!==Dh.FLOAT&&(this.hasIntegerTextures=!0);else{let s=e.realWidth,n=e.realHeight,o=i.gl;(t.width!==s||t.height!==n||t.dirtyId<0)&&(t.width=s,t.height=n,o.texImage2D(e.target,0,t.internalFormat,s,n,0,e.format,t.type,null))}e.dirtyStyleId!==t.dirtyStyleId&&this.updateTextureStyle(e),t.dirtyId=e.dirtyId}destroyTexture(e,t){let{gl:i}=this;if(e=e.castToBaseTexture(),e._glTextures[this.CONTEXT_UID]&&(this.unbind(e),i.deleteTexture(e._glTextures[this.CONTEXT_UID].texture),e.off("dispose",this.destroyTexture,this),delete e._glTextures[this.CONTEXT_UID],!t)){let s=this.managedTextures.indexOf(e);s!==-1&&Lh(this.managedTextures,s,1)}}updateTextureStyle(e){let t=e._glTextures[this.CONTEXT_UID];t&&((e.mipmap===x0.POW2||this.webGLVersion!==2)&&!e.isPowerOfTwo?t.mipmap=!1:t.mipmap=e.mipmap>=1,this.webGLVersion!==2&&!e.isPowerOfTwo?t.wrapMode=dr.CLAMP:t.wrapMode=e.wrapMode,e.resource?.style(this.renderer,e,t)||this.setStyle(e,t),t.dirtyStyleId=e.dirtyStyleId)}setStyle(e,t){let i=this.gl;if(t.mipmap&&e.mipmap!==x0.ON_MANUAL&&i.generateMipmap(e.target),i.texParameteri(e.target,i.TEXTURE_WRAP_S,t.wrapMode),i.texParameteri(e.target,i.TEXTURE_WRAP_T,t.wrapMode),t.mipmap){i.texParameteri(e.target,i.TEXTURE_MIN_FILTER,e.scaleMode===Nr.LINEAR?i.LINEAR_MIPMAP_LINEAR:i.NEAREST_MIPMAP_NEAREST);let s=this.renderer.context.extensions.anisotropicFiltering;if(s&&e.anisotropicLevel>0&&e.scaleMode===Nr.LINEAR){let n=Math.min(e.anisotropicLevel,i.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT));i.texParameterf(e.target,s.TEXTURE_MAX_ANISOTROPY_EXT,n)}}else i.texParameteri(e.target,i.TEXTURE_MIN_FILTER,e.scaleMode===Nr.LINEAR?i.LINEAR:i.NEAREST);i.texParameteri(e.target,i.TEXTURE_MAG_FILTER,e.scaleMode===Nr.LINEAR?i.LINEAR:i.NEAREST)}destroy(){this.renderer=null}};ga.extension={type:Z.RendererSystem,name:"texture"};te.add(ga);var ma=class{constructor(e){this.renderer=e}contextChange(){this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID}bind(e){let{gl:t,CONTEXT_UID:i}=this,s=e._glTransformFeedbacks[i]||this.createGLTransformFeedback(e);t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,s)}unbind(){let{gl:e}=this;e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,null)}beginTransformFeedback(e,t){let{gl:i,renderer:s}=this;t&&s.shader.bind(t),i.beginTransformFeedback(e)}endTransformFeedback(){let{gl:e}=this;e.endTransformFeedback()}createGLTransformFeedback(e){let{gl:t,renderer:i,CONTEXT_UID:s}=this,n=t.createTransformFeedback();e._glTransformFeedbacks[s]=n,t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,n);for(let o=0;o(r[r.INTERACTION=50]="INTERACTION",r[r.HIGH=25]="HIGH",r[r.NORMAL=0]="NORMAL",r[r.LOW=-25]="LOW",r[r.UTILITY=-50]="UTILITY",r))(yr||{});var ya=class{constructor(e,t=null,i=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this.fn=e,this.context=t,this.priority=i,this.once=s}match(e,t=null){return this.fn===e&&this.context===t}emit(e){this.fn&&(this.context?this.fn.call(this.context,e):this.fn(e));let t=this.next;return this.once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!1){this._destroyed=!0,this.fn=null,this.context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);let t=this.next;return this.next=e?null:t,this.previous=null,t}};var vr=class{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new ya(null,null,1/0),this.deltaMS=1/vr.targetFPMS,this.elapsedMS=1/vr.targetFPMS,this._tick=r=>{this._requestId=null,this.started&&(this.update(r),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(r,e,t=yr.NORMAL){return this._addListener(new ya(r,e,t))}addOnce(r,e,t=yr.NORMAL){return this._addListener(new ya(r,e,t,!0))}_addListener(r){let e=this._head.next,t=this._head;if(!e)r.connect(t);else{for(;e;){if(r.priority>e.priority){r.connect(t);break}t=e,e=e.next}r.previous||r.connect(t)}return this._startIfPossible(),this}remove(r,e){let t=this._head.next;for(;t;)t.match(r,e)?t=t.destroy():t=t.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let r=0,e=this._head;for(;e=e.next;)r++;return r}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let r=this._head.next;for(;r;)r=r.destroy(!0);this._head.destroy(),this._head=null}}update(r=performance.now()){let e;if(r>this.lastTime){if(e=this.elapsedMS=r-this.lastTime,e>this._maxElapsedMS&&(e=this._maxElapsedMS),e*=this.speed,this._minElapsedMS){let s=r-this._lastFrame|0;if(s{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?It.shared:new It,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};sc.extension=Z.Application;te.add(sc);var O3=[];te.handleByList(Z.Renderer,O3);function l2(r){for(let e of O3)if(e.test(r))return new e(r);throw new Error("Unable to auto-detect a suitable renderer.")}var G3=`attribute vec2 aVertexPosition; attribute vec2 aTextureCoord; uniform mat3 projectionMatrix; @@ -555,7 +555,7 @@ void main(void) gl_Position = filterVertexPosition(); vTextureCoord = filterTextureCoord(); } -`;var c2=G3,nc=U3;var oc=class{constructor(e){this.renderer=e}contextChange(e){let t;if(this.renderer.context.webGLVersion===1){let i=e.getParameter(e.FRAMEBUFFER_BINDING);e.bindFramebuffer(e.FRAMEBUFFER,null),t=e.getParameter(e.SAMPLES),e.bindFramebuffer(e.FRAMEBUFFER,i)}else{let i=e.getParameter(e.DRAW_FRAMEBUFFER_BINDING);e.bindFramebuffer(e.DRAW_FRAMEBUFFER,null),t=e.getParameter(e.SAMPLES),e.bindFramebuffer(e.DRAW_FRAMEBUFFER,i)}t>=ut.HIGH?this.multisample=ut.HIGH:t>=ut.MEDIUM?this.multisample=ut.MEDIUM:t>=ut.LOW?this.multisample=ut.LOW:this.multisample=ut.NONE}destroy(){}};oc.extension={type:Z.RendererSystem,name:"_multisample"};te.add(oc);var rd=class{constructor(e){this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.refCount=0}};var ac=class{constructor(e){this.renderer=e,this.managedBuffers={},this.boundBufferBases={}}destroy(){this.renderer=null}contextChange(){this.disposeAll(!0),this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID}bind(e){let{gl:t,CONTEXT_UID:i}=this,s=e._glBuffers[i]||this.createGLBuffer(e);t.bindBuffer(e.type,s.buffer)}unbind(e){let{gl:t}=this;t.bindBuffer(e,null)}bindBufferBase(e,t){let{gl:i,CONTEXT_UID:s}=this;if(this.boundBufferBases[t]!==e){let n=e._glBuffers[s]||this.createGLBuffer(e);this.boundBufferBases[t]=e,i.bindBufferBase(i.UNIFORM_BUFFER,t,n.buffer)}}bindBufferRange(e,t,i){let{gl:s,CONTEXT_UID:n}=this;i=i||0;let o=e._glBuffers[n]||this.createGLBuffer(e);s.bindBufferRange(s.UNIFORM_BUFFER,t||0,o.buffer,i*256,256)}update(e){let{gl:t,CONTEXT_UID:i}=this,s=e._glBuffers[i]||this.createGLBuffer(e);if(e._updateID!==s.updateID)if(s.updateID=e._updateID,t.bindBuffer(e.type,s.buffer),s.byteLength>=e.data.byteLength)t.bufferSubData(e.type,0,e.data);else{let n=e.static?t.STATIC_DRAW:t.DYNAMIC_DRAW;s.byteLength=e.data.byteLength,t.bufferData(e.type,e.data,n)}}dispose(e,t){if(!this.managedBuffers[e.id])return;delete this.managedBuffers[e.id];let i=e._glBuffers[this.CONTEXT_UID],s=this.gl;e.disposeRunner.remove(this),i&&(t||s.deleteBuffer(i.buffer),delete e._glBuffers[this.CONTEXT_UID])}disposeAll(e){let t=Object.keys(this.managedBuffers);for(let i=0;ii.resource).filter(i=>i).map(i=>i.load());return this._load=Promise.all(t).then(()=>{let{realWidth:i,realHeight:s}=this.items[0];return this.resize(i,s),Promise.resolve(this)}),this._load}};var va=class extends Js{constructor(e,t){let{width:i,height:s}=t||{},n,o;Array.isArray(e)?(n=e,o=e.length):o=e,super(o,{width:i,height:s}),n&&this.initFromArray(n,t)}addBaseTextureAt(e,t){if(e.resource)this.addResourceAt(e.resource,t);else throw new Error("ArrayResource does not support RenderTexture");return this}bind(e){super.bind(e),e.target=ls.TEXTURE_2D_ARRAY}upload(e,t,i){let{length:s,itemDirtyIds:n,items:o}=this,{gl:a}=e;i.dirtyId<0&&a.texImage3D(a.TEXTURE_2D_ARRAY,0,i.internalFormat,this._width,this._height,s,0,t.format,i.type,null);for(let l=0;l0)if(r.resource)this.addResourceAt(r.resource,e);else throw new Error("CubeResource does not support copying of renderTexture.");else r.target=ls.TEXTURE_CUBE_MAP_POSITIVE_X+e,r.parentTextureArray=this.baseTexture,this.items[e]=r;return r.valid&&!this.valid&&this.resize(r.realWidth,r.realHeight),this.items[e]=r,this}upload(r,e,t){let i=this.itemDirtyIds;for(let s=0;s{if(this.url===null){e(this);return}try{let i=await K.ADAPTER.fetch(this.url,{mode:this.crossOrigin?"cors":"no-cors"});if(this.destroyed)return;let s=await i.blob();if(this.destroyed)return;let n=await createImageBitmap(s,{premultiplyAlpha:this.alphaMode===null||this.alphaMode===Qt.UNPACK?"premultiply":"none"});if(this.destroyed)return;this.source=n,this.update(),e(this)}catch(i){if(this.destroyed)return;t(i),this.onError.emit(i)}}),this._load)}upload(e,t,i){return this.source instanceof ImageBitmap?(typeof this.alphaMode=="number"&&(t.alphaMode=this.alphaMode),super.upload(e,t,i)):(this.load(),!1)}dispose(){this.source instanceof ImageBitmap&&this.source.close(),super.dispose(),this._load=null}static test(e){return!!globalThis.createImageBitmap&&typeof ImageBitmap<"u"&&(typeof e=="string"||e instanceof ImageBitmap)}static get EMPTY(){return r._EMPTY=r._EMPTY??K.ADAPTER.createCanvas(0,0),r._EMPTY}};var id=class extends E0{constructor(r,e){e=e||{},super(K.ADAPTER.createCanvas()),this._width=0,this._height=0,this.svg=r,this.scale=e.scale||1,this._overrideWidth=e.width,this._overrideHeight=e.height,this._resolve=null,this._crossorigin=e.crossorigin,this._load=null,e.autoLoad!==!1&&this.load()}load(){return this._load?this._load:(this._load=new Promise(r=>{if(this._resolve=()=>{this.resize(this.source.width,this.source.height),r(this)},id.SVG_XML.test(this.svg.trim())){if(!btoa)throw new Error("Your browser doesn't support base64 conversions.");this.svg=`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(this.svg)))}`}this._loadSvg()}),this._load)}_loadSvg(){let r=new Image;E0.crossOrigin(r,this.svg,this._crossorigin),r.src=this.svg,r.onerror=e=>{this._resolve&&(r.onerror=null,this.onError.emit(e))},r.onload=()=>{if(!this._resolve)return;let e=r.width,t=r.height;if(!e||!t)throw new Error("The SVG image must have width and height defined (in pixels), canvas API needs them.");let i=e*this.scale,s=t*this.scale;(this._overrideWidth||this._overrideHeight)&&(i=this._overrideWidth||this._overrideHeight/t*e,s=this._overrideHeight||this._overrideWidth/e*t),i=Math.round(i),s=Math.round(s);let n=this.source;n.width=i,n.height=s,n._pixiId=`canvas_${_i()}`,n.getContext("2d").drawImage(r,0,0,e,t,0,0,i,s),this._resolve(),this._resolve=null}}static getSize(r){let e=id.SVG_SIZE.exec(r),t={};return e&&(t[e[1]]=Math.round(parseFloat(e[3])),t[e[5]]=Math.round(parseFloat(e[7]))),t}dispose(){super.dispose(),this._resolve=null,this._crossorigin=null}static test(r,e){return e==="svg"||typeof r=="string"&&r.startsWith("data:image/svg+xml")||typeof r=="string"&&id.SVG_XML.test(r)}},ms=id;ms.SVG_XML=/^(<\?xml[^?]+\?>)?\s*()]*-->)?\s*\]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i;var h2=class extends E0{constructor(r,e){if(e=e||{},!(r instanceof HTMLVideoElement)){let t=document.createElement("video");t.setAttribute("preload","auto"),t.setAttribute("webkit-playsinline",""),t.setAttribute("playsinline",""),typeof r=="string"&&(r=[r]);let i=r[0].src||r[0];E0.crossOrigin(t,i,e.crossorigin);for(let s=0;s{this.valid?e(this):(this._resolve=e,r.load())}),this._load}_onError(r){this.source.removeEventListener("error",this._onError,!0),this.onError.emit(r)}_isSourcePlaying(){let r=this.source;return!r.paused&&!r.ended&&this._isSourceReady()}_isSourceReady(){return this.source.readyState>2}_onPlayStart(){this.valid||this._onCanPlay(),this.autoUpdate&&!this._isConnectedToTicker&&(It.shared.add(this.update,this),this._isConnectedToTicker=!0)}_onPlayStop(){this._isConnectedToTicker&&(It.shared.remove(this.update,this),this._isConnectedToTicker=!1)}_onCanPlay(){let r=this.source;r.removeEventListener("canplay",this._onCanPlay),r.removeEventListener("canplaythrough",this._onCanPlay);let e=this.valid;this.resize(r.videoWidth,r.videoHeight),!e&&this._resolve&&(this._resolve(this),this._resolve=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&r.play()}dispose(){this._isConnectedToTicker&&(It.shared.remove(this.update,this),this._isConnectedToTicker=!1);let r=this.source;r&&(r.removeEventListener("error",this._onError,!0),r.pause(),r.src="",r.load()),super.dispose()}get autoUpdate(){return this._autoUpdate}set autoUpdate(r){r!==this._autoUpdate&&(this._autoUpdate=r,!this._autoUpdate&&this._isConnectedToTicker?(It.shared.remove(this.update,this),this._isConnectedToTicker=!1):this._autoUpdate&&!this._isConnectedToTicker&&this._isSourcePlaying()&&(It.shared.add(this.update,this),this._isConnectedToTicker=!0))}get updateFPS(){return this._updateFPS}set updateFPS(r){r!==this._updateFPS&&(this._updateFPS=r)}static test(r,e){return globalThis.HTMLVideoElement&&r instanceof HTMLVideoElement||h2.TYPES.includes(e)}},ba=h2;ba.TYPES=["mp4","m4v","webm","ogg","ogv","h264","avi","mov"];ba.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};Xo.push(Da,Zs,xa,ba,ms,Q0,uc,va);var Ai=class{constructor(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.rect=null,this.updateID=-1}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}clear(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0}getRectangle(e){return this.minX>this.maxX||this.minY>this.maxY?Ie.EMPTY:(e=e||new Ie(0,0,1,1),e.x=this.minX,e.y=this.minY,e.width=this.maxX-this.minX,e.height=this.maxY-this.minY,e)}addPoint(e){this.minX=Math.min(this.minX,e.x),this.maxX=Math.max(this.maxX,e.x),this.minY=Math.min(this.minY,e.y),this.maxY=Math.max(this.maxY,e.y)}addPointMatrix(e,t){let{a:i,b:s,c:n,d:o,tx:a,ty:l}=e,c=i*t.x+n*t.y+a,h=s*t.x+o*t.y+l;this.minX=Math.min(this.minX,c),this.maxX=Math.max(this.maxX,c),this.minY=Math.min(this.minY,h),this.maxY=Math.max(this.maxY,h)}addQuad(e){let t=this.minX,i=this.minY,s=this.maxX,n=this.maxY,o=e[0],a=e[1];t=os?o:s,n=a>n?a:n,o=e[2],a=e[3],t=os?o:s,n=a>n?a:n,o=e[4],a=e[5],t=os?o:s,n=a>n?a:n,o=e[6],a=e[7],t=os?o:s,n=a>n?a:n,this.minX=t,this.minY=i,this.maxX=s,this.maxY=n}addFrame(e,t,i,s,n){this.addFrameMatrix(e.worldTransform,t,i,s,n)}addFrameMatrix(e,t,i,s,n){let o=e.a,a=e.b,l=e.c,c=e.d,h=e.tx,d=e.ty,p=this.minX,g=this.minY,v=this.maxX,C=this.maxY,w=o*t+l*i+h,k=a*t+c*i+d;p=wv?w:v,C=k>C?k:C,w=o*s+l*i+h,k=a*s+c*i+d,p=wv?w:v,C=k>C?k:C,w=o*t+l*n+h,k=a*t+c*n+d,p=wv?w:v,C=k>C?k:C,w=o*s+l*n+h,k=a*s+c*n+d,p=wv?w:v,C=k>C?k:C,this.minX=p,this.minY=g,this.maxX=v,this.maxY=C}addVertexData(e,t,i){let s=this.minX,n=this.minY,o=this.maxX,a=this.maxY;for(let l=t;lo?c:o,a=h>a?h:a}this.minX=s,this.minY=n,this.maxX=o,this.maxY=a}addVertices(e,t,i,s){this.addVerticesMatrix(e.worldTransform,t,i,s)}addVerticesMatrix(e,t,i,s,n=0,o=n){let a=e.a,l=e.b,c=e.c,h=e.d,d=e.tx,p=e.ty,g=this.minX,v=this.minY,C=this.maxX,w=this.maxY;for(let k=i;ks?e.maxX:s,this.maxY=e.maxY>n?e.maxY:n}addBoundsMask(e,t){let i=e.minX>t.minX?e.minX:t.minX,s=e.minY>t.minY?e.minY:t.minY,n=e.maxXc?n:c,this.maxY=o>h?o:h}}addBoundsMatrix(e,t){this.addFrameMatrix(t,e.minX,e.minY,e.maxX,e.maxY)}addBoundsArea(e,t){let i=e.minX>t.x?e.minX:t.x,s=e.minY>t.y?e.minY:t.y,n=e.maxXc?n:c,this.maxY=o>h?o:h}}pad(e=0,t=e){this.isEmpty()||(this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t)}addFramePad(e,t,i,s,n,o){e-=n,t-=o,i+=n,s+=o,this.minX=this.minXi?this.maxX:i,this.minY=this.minYs?this.maxY:s}};var at=class r extends ae.EventEmitter{constructor(){super(),this.tempDisplayObjectParent=null,this.transform=new Yn,this.alpha=1,this.visible=!0,this.renderable=!0,this.cullable=!1,this.cullArea=null,this.parent=null,this.worldAlpha=1,this._lastSortedIndex=0,this._zIndex=0,this.filterArea=null,this.filters=null,this._enabledFilters=null,this._bounds=new Ai,this._localBounds=null,this._boundsID=0,this._boundsRect=null,this._localBoundsRect=null,this._mask=null,this._maskRefCount=0,this._destroyed=!1,this.isSprite=!1,this.isMask=!1}static mixin(e){let t=Object.keys(e);for(let i=0;i1)for(let e=0;ethis.children.length)throw new Error(`${r}addChildAt: The index ${e} supplied is out of bounds ${this.children.length}`);return r.parent&&r.parent.removeChild(r),r.parent=this,this.sortDirty=!0,r.transform._parentID=-1,this.children.splice(e,0,r),this._boundsID++,this.onChildrenChange(e),r.emit("added",this),this.emit("childAdded",r,this,e),r}swapChildren(r,e){if(r===e)return;let t=this.getChildIndex(r),i=this.getChildIndex(e);this.children[t]=e,this.children[i]=r,this.onChildrenChange(t=this.children.length)throw new Error(`The index ${e} supplied is out of bounds ${this.children.length}`);let t=this.getChildIndex(r);ae.removeItems(this.children,t,1),this.children.splice(e,0,r),this.onChildrenChange(e)}getChildAt(r){if(r<0||r>=this.children.length)throw new Error(`getChildAt: Index (${r}) does not exist.`);return this.children[r]}removeChild(...r){if(r.length>1)for(let e=0;e0&&s<=i){n=this.children.splice(t,s);for(let o=0;o1&&this.children.sort(FE),this.sortDirty=!1}updateTransform(){this.sortableChildren&&this.sortDirty&&this.sortChildren(),this._boundsID++,this.transform.updateTransform(this.parent.transform),this.worldAlpha=this.alpha*this.parent.worldAlpha;for(let r=0,e=this.children.length;r0&&e.height>0))return;let t,i;this.cullArea?(t=this.cullArea,i=this.worldTransform):this._render!==d2.prototype._render&&(t=this.getBounds(!0));let s=r.projection.transform;if(s&&(i?(i=_E.copyFrom(i),i.prepend(s)):i=s),t&&e.intersects(t,i))this._render(r);else if(this.cullArea)return;for(let n=0,o=this.children.length;n=s&&hc.x=n&&hc.y=ut.HIGH?this.multisample=ut.HIGH:t>=ut.MEDIUM?this.multisample=ut.MEDIUM:t>=ut.LOW?this.multisample=ut.LOW:this.multisample=ut.NONE}destroy(){}};oc.extension={type:Z.RendererSystem,name:"_multisample"};te.add(oc);var rd=class{constructor(e){this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.refCount=0}};var ac=class{constructor(e){this.renderer=e,this.managedBuffers={},this.boundBufferBases={}}destroy(){this.renderer=null}contextChange(){this.disposeAll(!0),this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID}bind(e){let{gl:t,CONTEXT_UID:i}=this,s=e._glBuffers[i]||this.createGLBuffer(e);t.bindBuffer(e.type,s.buffer)}unbind(e){let{gl:t}=this;t.bindBuffer(e,null)}bindBufferBase(e,t){let{gl:i,CONTEXT_UID:s}=this;if(this.boundBufferBases[t]!==e){let n=e._glBuffers[s]||this.createGLBuffer(e);this.boundBufferBases[t]=e,i.bindBufferBase(i.UNIFORM_BUFFER,t,n.buffer)}}bindBufferRange(e,t,i){let{gl:s,CONTEXT_UID:n}=this;i=i||0;let o=e._glBuffers[n]||this.createGLBuffer(e);s.bindBufferRange(s.UNIFORM_BUFFER,t||0,o.buffer,i*256,256)}update(e){let{gl:t,CONTEXT_UID:i}=this,s=e._glBuffers[i]||this.createGLBuffer(e);if(e._updateID!==s.updateID)if(s.updateID=e._updateID,t.bindBuffer(e.type,s.buffer),s.byteLength>=e.data.byteLength)t.bufferSubData(e.type,0,e.data);else{let n=e.static?t.STATIC_DRAW:t.DYNAMIC_DRAW;s.byteLength=e.data.byteLength,t.bufferData(e.type,e.data,n)}}dispose(e,t){if(!this.managedBuffers[e.id])return;delete this.managedBuffers[e.id];let i=e._glBuffers[this.CONTEXT_UID],s=this.gl;e.disposeRunner.remove(this),i&&(t||s.deleteBuffer(i.buffer),delete e._glBuffers[this.CONTEXT_UID])}disposeAll(e){let t=Object.keys(this.managedBuffers);for(let i=0;ii.resource).filter(i=>i).map(i=>i.load());return this._load=Promise.all(t).then(()=>{let{realWidth:i,realHeight:s}=this.items[0];return this.resize(i,s),Promise.resolve(this)}),this._load}};var va=class extends Js{constructor(e,t){let{width:i,height:s}=t||{},n,o;Array.isArray(e)?(n=e,o=e.length):o=e,super(o,{width:i,height:s}),n&&this.initFromArray(n,t)}addBaseTextureAt(e,t){if(e.resource)this.addResourceAt(e.resource,t);else throw new Error("ArrayResource does not support RenderTexture");return this}bind(e){super.bind(e),e.target=ls.TEXTURE_2D_ARRAY}upload(e,t,i){let{length:s,itemDirtyIds:n,items:o}=this,{gl:a}=e;i.dirtyId<0&&a.texImage3D(a.TEXTURE_2D_ARRAY,0,i.internalFormat,this._width,this._height,s,0,t.format,i.type,null);for(let l=0;l0)if(r.resource)this.addResourceAt(r.resource,e);else throw new Error("CubeResource does not support copying of renderTexture.");else r.target=ls.TEXTURE_CUBE_MAP_POSITIVE_X+e,r.parentTextureArray=this.baseTexture,this.items[e]=r;return r.valid&&!this.valid&&this.resize(r.realWidth,r.realHeight),this.items[e]=r,this}upload(r,e,t){let i=this.itemDirtyIds;for(let s=0;s{if(this.url===null){e(this);return}try{let i=await K.ADAPTER.fetch(this.url,{mode:this.crossOrigin?"cors":"no-cors"});if(this.destroyed)return;let s=await i.blob();if(this.destroyed)return;let n=await createImageBitmap(s,{premultiplyAlpha:this.alphaMode===null||this.alphaMode===Qt.UNPACK?"premultiply":"none"});if(this.destroyed)return;this.source=n,this.update(),e(this)}catch(i){if(this.destroyed)return;t(i),this.onError.emit(i)}}),this._load)}upload(e,t,i){return this.source instanceof ImageBitmap?(typeof this.alphaMode=="number"&&(t.alphaMode=this.alphaMode),super.upload(e,t,i)):(this.load(),!1)}dispose(){this.source instanceof ImageBitmap&&this.source.close(),super.dispose(),this._load=null}static test(e){return!!globalThis.createImageBitmap&&typeof ImageBitmap<"u"&&(typeof e=="string"||e instanceof ImageBitmap)}static get EMPTY(){return r._EMPTY=r._EMPTY??K.ADAPTER.createCanvas(0,0),r._EMPTY}};var id=class extends E0{constructor(r,e){e=e||{},super(K.ADAPTER.createCanvas()),this._width=0,this._height=0,this.svg=r,this.scale=e.scale||1,this._overrideWidth=e.width,this._overrideHeight=e.height,this._resolve=null,this._crossorigin=e.crossorigin,this._load=null,e.autoLoad!==!1&&this.load()}load(){return this._load?this._load:(this._load=new Promise(r=>{if(this._resolve=()=>{this.resize(this.source.width,this.source.height),r(this)},id.SVG_XML.test(this.svg.trim())){if(!btoa)throw new Error("Your browser doesn't support base64 conversions.");this.svg=`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(this.svg)))}`}this._loadSvg()}),this._load)}_loadSvg(){let r=new Image;E0.crossOrigin(r,this.svg,this._crossorigin),r.src=this.svg,r.onerror=e=>{this._resolve&&(r.onerror=null,this.onError.emit(e))},r.onload=()=>{if(!this._resolve)return;let e=r.width,t=r.height;if(!e||!t)throw new Error("The SVG image must have width and height defined (in pixels), canvas API needs them.");let i=e*this.scale,s=t*this.scale;(this._overrideWidth||this._overrideHeight)&&(i=this._overrideWidth||this._overrideHeight/t*e,s=this._overrideHeight||this._overrideWidth/e*t),i=Math.round(i),s=Math.round(s);let n=this.source;n.width=i,n.height=s,n._pixiId=`canvas_${_i()}`,n.getContext("2d").drawImage(r,0,0,e,t,0,0,i,s),this._resolve(),this._resolve=null}}static getSize(r){let e=id.SVG_SIZE.exec(r),t={};return e&&(t[e[1]]=Math.round(parseFloat(e[3])),t[e[5]]=Math.round(parseFloat(e[7]))),t}dispose(){super.dispose(),this._resolve=null,this._crossorigin=null}static test(r,e){return e==="svg"||typeof r=="string"&&r.startsWith("data:image/svg+xml")||typeof r=="string"&&id.SVG_XML.test(r)}},ms=id;ms.SVG_XML=/^(<\?xml[^?]+\?>)?\s*()]*-->)?\s*\]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i;var h2=class extends E0{constructor(r,e){if(e=e||{},!(r instanceof HTMLVideoElement)){let t=document.createElement("video");t.setAttribute("preload","auto"),t.setAttribute("webkit-playsinline",""),t.setAttribute("playsinline",""),typeof r=="string"&&(r=[r]);let i=r[0].src||r[0];E0.crossOrigin(t,i,e.crossorigin);for(let s=0;s{this.valid?e(this):(this._resolve=e,r.load())}),this._load}_onError(r){this.source.removeEventListener("error",this._onError,!0),this.onError.emit(r)}_isSourcePlaying(){let r=this.source;return!r.paused&&!r.ended&&this._isSourceReady()}_isSourceReady(){return this.source.readyState>2}_onPlayStart(){this.valid||this._onCanPlay(),this.autoUpdate&&!this._isConnectedToTicker&&(It.shared.add(this.update,this),this._isConnectedToTicker=!0)}_onPlayStop(){this._isConnectedToTicker&&(It.shared.remove(this.update,this),this._isConnectedToTicker=!1)}_onCanPlay(){let r=this.source;r.removeEventListener("canplay",this._onCanPlay),r.removeEventListener("canplaythrough",this._onCanPlay);let e=this.valid;this.resize(r.videoWidth,r.videoHeight),!e&&this._resolve&&(this._resolve(this),this._resolve=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&r.play()}dispose(){this._isConnectedToTicker&&(It.shared.remove(this.update,this),this._isConnectedToTicker=!1);let r=this.source;r&&(r.removeEventListener("error",this._onError,!0),r.pause(),r.src="",r.load()),super.dispose()}get autoUpdate(){return this._autoUpdate}set autoUpdate(r){r!==this._autoUpdate&&(this._autoUpdate=r,!this._autoUpdate&&this._isConnectedToTicker?(It.shared.remove(this.update,this),this._isConnectedToTicker=!1):this._autoUpdate&&!this._isConnectedToTicker&&this._isSourcePlaying()&&(It.shared.add(this.update,this),this._isConnectedToTicker=!0))}get updateFPS(){return this._updateFPS}set updateFPS(r){r!==this._updateFPS&&(this._updateFPS=r)}static test(r,e){return globalThis.HTMLVideoElement&&r instanceof HTMLVideoElement||h2.TYPES.includes(e)}},ba=h2;ba.TYPES=["mp4","m4v","webm","ogg","ogv","h264","avi","mov"];ba.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};Xo.push(Da,Zs,xa,ba,ms,Q0,uc,va);var Ai=class{constructor(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.rect=null,this.updateID=-1}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}clear(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0}getRectangle(e){return this.minX>this.maxX||this.minY>this.maxY?Ie.EMPTY:(e=e||new Ie(0,0,1,1),e.x=this.minX,e.y=this.minY,e.width=this.maxX-this.minX,e.height=this.maxY-this.minY,e)}addPoint(e){this.minX=Math.min(this.minX,e.x),this.maxX=Math.max(this.maxX,e.x),this.minY=Math.min(this.minY,e.y),this.maxY=Math.max(this.maxY,e.y)}addPointMatrix(e,t){let{a:i,b:s,c:n,d:o,tx:a,ty:l}=e,c=i*t.x+n*t.y+a,h=s*t.x+o*t.y+l;this.minX=Math.min(this.minX,c),this.maxX=Math.max(this.maxX,c),this.minY=Math.min(this.minY,h),this.maxY=Math.max(this.maxY,h)}addQuad(e){let t=this.minX,i=this.minY,s=this.maxX,n=this.maxY,o=e[0],a=e[1];t=os?o:s,n=a>n?a:n,o=e[2],a=e[3],t=os?o:s,n=a>n?a:n,o=e[4],a=e[5],t=os?o:s,n=a>n?a:n,o=e[6],a=e[7],t=os?o:s,n=a>n?a:n,this.minX=t,this.minY=i,this.maxX=s,this.maxY=n}addFrame(e,t,i,s,n){this.addFrameMatrix(e.worldTransform,t,i,s,n)}addFrameMatrix(e,t,i,s,n){let o=e.a,a=e.b,l=e.c,c=e.d,h=e.tx,d=e.ty,p=this.minX,g=this.minY,v=this.maxX,C=this.maxY,w=o*t+l*i+h,k=a*t+c*i+d;p=wv?w:v,C=k>C?k:C,w=o*s+l*i+h,k=a*s+c*i+d,p=wv?w:v,C=k>C?k:C,w=o*t+l*n+h,k=a*t+c*n+d,p=wv?w:v,C=k>C?k:C,w=o*s+l*n+h,k=a*s+c*n+d,p=wv?w:v,C=k>C?k:C,this.minX=p,this.minY=g,this.maxX=v,this.maxY=C}addVertexData(e,t,i){let s=this.minX,n=this.minY,o=this.maxX,a=this.maxY;for(let l=t;lo?c:o,a=h>a?h:a}this.minX=s,this.minY=n,this.maxX=o,this.maxY=a}addVertices(e,t,i,s){this.addVerticesMatrix(e.worldTransform,t,i,s)}addVerticesMatrix(e,t,i,s,n=0,o=n){let a=e.a,l=e.b,c=e.c,h=e.d,d=e.tx,p=e.ty,g=this.minX,v=this.minY,C=this.maxX,w=this.maxY;for(let k=i;ks?e.maxX:s,this.maxY=e.maxY>n?e.maxY:n}addBoundsMask(e,t){let i=e.minX>t.minX?e.minX:t.minX,s=e.minY>t.minY?e.minY:t.minY,n=e.maxXc?n:c,this.maxY=o>h?o:h}}addBoundsMatrix(e,t){this.addFrameMatrix(t,e.minX,e.minY,e.maxX,e.maxY)}addBoundsArea(e,t){let i=e.minX>t.x?e.minX:t.x,s=e.minY>t.y?e.minY:t.y,n=e.maxXc?n:c,this.maxY=o>h?o:h}}pad(e=0,t=e){this.isEmpty()||(this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t)}addFramePad(e,t,i,s,n,o){e-=n,t-=o,i+=n,s+=o,this.minX=this.minXi?this.maxX:i,this.minY=this.minYs?this.maxY:s}};var at=class r extends ae.EventEmitter{constructor(){super(),this.tempDisplayObjectParent=null,this.transform=new Yn,this.alpha=1,this.visible=!0,this.renderable=!0,this.cullable=!1,this.cullArea=null,this.parent=null,this.worldAlpha=1,this._lastSortedIndex=0,this._zIndex=0,this.filterArea=null,this.filters=null,this._enabledFilters=null,this._bounds=new Ai,this._localBounds=null,this._boundsID=0,this._boundsRect=null,this._localBoundsRect=null,this._mask=null,this._maskRefCount=0,this._destroyed=!1,this.isSprite=!1,this.isMask=!1}static mixin(e){let t=Object.keys(e);for(let i=0;i1)for(let e=0;ethis.children.length)throw new Error(`${r}addChildAt: The index ${e} supplied is out of bounds ${this.children.length}`);return r.parent&&r.parent.removeChild(r),r.parent=this,this.sortDirty=!0,r.transform._parentID=-1,this.children.splice(e,0,r),this._boundsID++,this.onChildrenChange(e),r.emit("added",this),this.emit("childAdded",r,this,e),r}swapChildren(r,e){if(r===e)return;let t=this.getChildIndex(r),i=this.getChildIndex(e);this.children[t]=e,this.children[i]=r,this.onChildrenChange(t=this.children.length)throw new Error(`The index ${e} supplied is out of bounds ${this.children.length}`);let t=this.getChildIndex(r);ae.removeItems(this.children,t,1),this.children.splice(e,0,r),this.onChildrenChange(e)}getChildAt(r){if(r<0||r>=this.children.length)throw new Error(`getChildAt: Index (${r}) does not exist.`);return this.children[r]}removeChild(...r){if(r.length>1)for(let e=0;e0&&s<=i){n=this.children.splice(t,s);for(let o=0;o1&&this.children.sort(AE),this.sortDirty=!1}updateTransform(){this.sortableChildren&&this.sortDirty&&this.sortChildren(),this._boundsID++,this.transform.updateTransform(this.parent.transform),this.worldAlpha=this.alpha*this.parent.worldAlpha;for(let r=0,e=this.children.length;r0&&e.height>0))return;let t,i;this.cullArea?(t=this.cullArea,i=this.worldTransform):this._render!==d2.prototype._render&&(t=this.getBounds(!0));let s=r.projection.transform;if(s&&(i?(i=FE.copyFrom(i),i.prepend(s)):i=s),t&&e.intersects(t,i))this._render(r);else if(this.cullArea)return;for(let n=0,o=this.children.length;n=s&&hc.x=n&&hc.y=t&&(o=r-a-1),l=l.replace("%value%",e[o].toString()),s+=l,s+=` -`}return i=i.replace("%blur%",s),i=i.replace("%size%",r.toString()),i}var LE=` +`;var dc=class extends ot{constructor(e=1){super(c2,z3,{uAlpha:1}),this.alpha=e}get alpha(){return this.uniforms.uAlpha}set alpha(e){this.uniforms.uAlpha=e}};var IE={5:[.153388,.221461,.250301],7:[.071303,.131514,.189879,.214607],9:[.028532,.067234,.124009,.179044,.20236],11:[.0093,.028002,.065984,.121703,.175713,.198596],13:[.002406,.009255,.027867,.065666,.121117,.174868,.197641],15:[489e-6,.002403,.009246,.02784,.065602,.120999,.174697,.197448]},LE=["varying vec2 vBlurTexCoords[%size%];","uniform sampler2D uSampler;","void main(void)","{"," gl_FragColor = vec4(0.0);"," %blur%","}"].join(` +`);function W3(r){let e=IE[r],t=e.length,i=LE,s="",n="gl_FragColor += texture2D(uSampler, vBlurTexCoords[%index%]) * %value%;",o;for(let a=0;a=t&&(o=r-a-1),l=l.replace("%value%",e[o].toString()),s+=l,s+=` +`}return i=i.replace("%blur%",s),i=i.replace("%size%",r.toString()),i}var ME=` attribute vec2 aVertexPosition; uniform mat3 projectionMatrix; @@ -596,7 +596,7 @@ void main(void) vec2 textureCoord = filterTextureCoord(); %blur% - }`;function H3(r,e){let t=Math.ceil(r/2),i=LE,s="",n;e?n="vBlurTexCoords[%index%] = textureCoord + vec2(%sampleIndex% * strength, 0.0);":n="vBlurTexCoords[%index%] = textureCoord + vec2(0.0, %sampleIndex% * strength);";for(let o=0;o{Object.defineProperty(f2,r,{get(){return ae.deprecation("7.1.0",`filters.${r} has moved to ${r}`),e}})});var g2=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this.tickerAdded=!1,this._pauseUpdate=!0}init(e){this.removeTickerListener(),this.events=e,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this.tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(e){this._pauseUpdate=e}addTickerListener(){this.tickerAdded||!this.domElement||(It.system.add(this.tickerUpdate,this,yr.INTERACTION),this.tickerAdded=!0)}removeTickerListener(){this.tickerAdded&&(It.system.remove(this.tickerUpdate,this),this.tickerAdded=!1)}pointerMoved(){this._didMove=!0}update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}let e=this.events.rootPointerEvent;this.events.supportsTouchEvents&&e.pointerType==="touch"||globalThis.document.dispatchEvent(new PointerEvent("pointermove",{clientX:e.clientX,clientY:e.clientY}))}tickerUpdate(e){this._deltaTime+=e,!(this._deltaTimei.priority-s.priority)}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;let t=this.mappingTable[e.type];if(t)for(let i=0,s=t.length;i=0;s--)if(e.currentTarget=i[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,i=this._allInteractiveElements){if(i.length===0)return;e.eventPhase=e.BUBBLING_PHASE;let s=Array.isArray(t)?t:[t];for(let n=i.length-1;n>=0;n--)s.forEach(o=>{e.currentTarget=i[n],this.notifyTarget(e,o)})}propagationPath(e){let t=[e];for(let i=0;i=0;d--){let p=h[d],g=this.hitTestMoveRecursive(p,this._isInteractive(t)?t:p.eventMode,i,s,n,o||n(e,i));if(g){if(g.length>0&&!g[g.length-1].parent)continue;let v=e.isInteractive();(g.length>0||v)&&(v&&this._allInteractiveElements.push(e),g.push(e)),this._hitElements.length===0&&(this._hitElements=g),a=!0}}}let l=this._isInteractive(t),c=e.isInteractive();return c&&c&&this._allInteractiveElements.push(e),o||this._hitElements.length>0?null:a?this._hitElements:l&&!n(e,i)&&s(e,i)?c?[e]:[]:null}hitTestRecursive(e,t,i,s,n){if(this._interactivePrune(e)||n(e,i))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(ki.pauseUpdate=!1),e.interactiveChildren&&e.children){let l=e.children;for(let c=l.length-1;c>=0;c--){let h=l[c],d=this.hitTestRecursive(h,this._isInteractive(t)?t:h.eventMode,i,s,n);if(d){if(d.length>0&&!d[d.length-1].parent)continue;let p=e.isInteractive();return(d.length>0||p)&&d.push(e),d}}}let o=this._isInteractive(t),a=e.isInteractive();return o&&s(e,i)?a?[e]:[]:null}_isInteractive(e){return e==="static"||e==="dynamic"}_interactivePrune(e){return!!(!e||e.isMask||!e.visible||!e.renderable||e.eventMode==="none"||e.eventMode==="passive"&&!e.interactiveChildren||e.isMask)}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,m2),!e.hitArea.contains(m2.x,m2.y)))return!0;if(e._mask){let i=e._mask.isMaskData?e._mask.maskObject:e._mask;if(i&&!i.containsPoint?.(t))return!0}return!1}hitTestFn(e,t){return e.eventMode==="passive"?!1:e.hitArea?!0:e.containsPoint?e.containsPoint(t):!1}notifyTarget(e,t){t=t??e.type;let i=`on${t}`;e.currentTarget[i]?.(e);let s=e.eventPhase===e.CAPTURING_PHASE||e.eventPhase===e.AT_TARGET?`${t}capture`:t;this.notifyListeners(e,s),e.eventPhase===e.AT_TARGET&&this.notifyListeners(e,t)}mapPointerDown(e){if(!(e instanceof F0)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.createPointerEvent(e);if(this.dispatchEvent(t,"pointerdown"),t.pointerType==="touch")this.dispatchEvent(t,"touchstart");else if(t.pointerType==="mouse"||t.pointerType==="pen"){let s=t.button===2;this.dispatchEvent(t,s?"rightdown":"mousedown")}let i=this.trackingData(e.pointerId);i.pressTargetsByButton[e.button]=t.composedPath(),this.freeEvent(t)}mapPointerMove(e){if(!(e instanceof F0)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let t=this.createPointerEvent(e);this._isPointerMoveEvent=!1;let i=t.pointerType==="mouse"||t.pointerType==="pen",s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==t.target){let l=e.type==="mousemove"?"mouseout":"pointerout",c=this.createPointerEvent(e,l,n);if(this.dispatchEvent(c,"pointerout"),i&&this.dispatchEvent(c,"mouseout"),!t.composedPath().includes(n)){let h=this.createPointerEvent(e,"pointerleave",n);for(h.eventPhase=h.AT_TARGET;h.target&&!t.composedPath().includes(h.target);)h.currentTarget=h.target,this.notifyTarget(h),i&&this.notifyTarget(h,"mouseleave"),h.target=h.target.parent;this.freeEvent(h)}this.freeEvent(c)}if(n!==t.target){let l=e.type==="mousemove"?"mouseover":"pointerover",c=this.clonePointerEvent(t,l);this.dispatchEvent(c,"pointerover"),i&&this.dispatchEvent(c,"mouseover");let h=n?.parent;for(;h&&h!==this.rootTarget.parent&&h!==t.target;)h=h.parent;if(!h||h===this.rootTarget.parent){let p=this.clonePointerEvent(t,"pointerenter");for(p.eventPhase=p.AT_TARGET;p.target&&p.target!==n&&p.target!==this.rootTarget.parent;)p.currentTarget=p.target,this.notifyTarget(p),i&&this.notifyTarget(p,"mouseenter"),p.target=p.target.parent;this.freeEvent(p)}this.freeEvent(c)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(t,"pointermove"),a&&o.push("globalpointermove"),t.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(t,"touchmove"),a&&o.push("globaltouchmove")),i&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),a&&o.push("globalmousemove"),this.cursor=t.target?.cursor),o.length>0&&this.all(t,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof F0)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),i=this.createPointerEvent(e),s=i.pointerType==="mouse"||i.pointerType==="pen";this.dispatchEvent(i,"pointerover"),s&&this.dispatchEvent(i,"mouseover"),i.pointerType==="mouse"&&(this.cursor=i.target?.cursor);let n=this.clonePointerEvent(i,"pointerenter");for(n.eventPhase=n.AT_TARGET;n.target&&n.target!==this.rootTarget.parent;)n.currentTarget=n.target,this.notifyTarget(n),s&&this.notifyTarget(n,"mouseenter"),n.target=n.target.parent;t.overTargets=i.composedPath(),this.freeEvent(i),this.freeEvent(n)}mapPointerOut(e){if(!(e instanceof F0)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId);if(t.overTargets){let i=e.pointerType==="mouse"||e.pointerType==="pen",s=this.findMountedTarget(t.overTargets),n=this.createPointerEvent(e,"pointerout",s);this.dispatchEvent(n),i&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(e,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),i&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;t.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(e){if(!(e instanceof F0)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=performance.now(),i=this.createPointerEvent(e);if(this.dispatchEvent(i,"pointerup"),i.pointerType==="touch")this.dispatchEvent(i,"touchend");else if(i.pointerType==="mouse"||i.pointerType==="pen"){let a=i.button===2;this.dispatchEvent(i,a?"rightup":"mouseup")}let s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.pressTargetsByButton[e.button]),o=n;if(n&&!i.composedPath().includes(n)){let a=n;for(;a&&!i.composedPath().includes(a);){if(i.currentTarget=a,this.notifyTarget(i,"pointerupoutside"),i.pointerType==="touch")this.notifyTarget(i,"touchendoutside");else if(i.pointerType==="mouse"||i.pointerType==="pen"){let l=i.button===2;this.notifyTarget(i,l?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[e.button],o=a}if(o){let a=this.clonePointerEvent(i,"click");a.target=o,a.path=null,s.clicksByButton[e.button]||(s.clicksByButton[e.button]={clickCount:0,target:a.target,timeStamp:t});let l=s.clicksByButton[e.button];if(l.target===a.target&&t-l.timeStamp<200?++l.clickCount:l.clickCount=1,l.target=a.target,l.timeStamp=t,a.detail=l.clickCount,a.pointerType==="mouse"){let c=a.button===2;this.dispatchEvent(a,c?"rightclick":"click")}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a)}this.freeEvent(i)}mapPointerUpOutside(e){if(!(e instanceof F0)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),i=this.findMountedTarget(t.pressTargetsByButton[e.button]),s=this.createPointerEvent(e);if(i){let n=i;for(;n;)s.currentTarget=n,this.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch"?this.notifyTarget(s,"touchendoutside"):(s.pointerType==="mouse"||s.pointerType==="pen")&&this.notifyTarget(s,s.button===2?"rightupoutside":"mouseupoutside"),n=n.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(s)}mapWheel(e){if(!(e instanceof ci)){console.warn("EventBoundary cannot map a non-wheel event as a wheel event");return}let t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let i=1;i(t==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=i),e[t]=i,!0)}),this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onPointerOverOut=this.onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(r){let{view:e,resolution:t}=this.renderer;this.setTargetElement(e),this.resolution=t,y2._defaultEventMode=r.eventMode??"auto",Object.assign(this.features,r.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(r){this.resolution=r}destroy(){this.setTargetElement(null),this.renderer=null}setCursor(r){r=r||"default";let e=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(e=!1),this.currentCursor===r)return;this.currentCursor=r;let t=this.cursorStyles[r];if(t)switch(typeof t){case"string":e&&(this.domElement.style.cursor=t);break;case"function":t(r);break;case"object":e&&Object.assign(this.domElement.style,t);break}else e&&typeof r=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,r)&&(this.domElement.style.cursor=r)}get pointer(){return this.rootPointerEvent}onPointerDown(r){if(!this.features.click||(this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.supportsTouchEvents&&r.pointerType==="touch"))return;let e=this.normalizeToPointerData(r);this.autoPreventDefault&&e[0].isNormalized&&(r.cancelable||!("cancelable"in r))&&r.preventDefault();for(let t=0,i=e.length;t0&&(e=r.composedPath()[0]);let t=e!==this.domElement?"outside":"",i=this.normalizeToPointerData(r);for(let s=0,n=i.length;s"u"&&(s.button=0),typeof s.buttons>"u"&&(s.buttons=1),typeof s.isPrimary>"u"&&(s.isPrimary=r.touches.length===1&&r.type==="touchstart"),typeof s.width>"u"&&(s.width=s.radiusX||1),typeof s.height>"u"&&(s.height=s.radiusY||1),typeof s.tiltX>"u"&&(s.tiltX=0),typeof s.tiltY>"u"&&(s.tiltY=0),typeof s.pointerType>"u"&&(s.pointerType="touch"),typeof s.pointerId>"u"&&(s.pointerId=s.identifier||0),typeof s.pressure>"u"&&(s.pressure=s.force||.5),typeof s.twist>"u"&&(s.twist=0),typeof s.tangentialPressure>"u"&&(s.tangentialPressure=0),typeof s.layerX>"u"&&(s.layerX=s.offsetX=s.clientX),typeof s.layerY>"u"&&(s.layerY=s.offsetY=s.clientY),s.isNormalized=!0,s.type=r.type,e.push(s)}else if(!globalThis.MouseEvent||r instanceof MouseEvent&&(!this.supportsPointerEvents||!(r instanceof globalThis.PointerEvent))){let t=r;typeof t.isPrimary>"u"&&(t.isPrimary=!0),typeof t.width>"u"&&(t.width=1),typeof t.height>"u"&&(t.height=1),typeof t.tiltX>"u"&&(t.tiltX=0),typeof t.tiltY>"u"&&(t.tiltY=0),typeof t.pointerType>"u"&&(t.pointerType="mouse"),typeof t.pointerId>"u"&&(t.pointerId=PE),typeof t.pressure>"u"&&(t.pressure=.5),typeof t.twist>"u"&&(t.twist=0),typeof t.tangentialPressure>"u"&&(t.tangentialPressure=0),t.isNormalized=!0,e.push(t)}else e.push(r);return e}normalizeWheelEvent(r){let e=this.rootWheelEvent;return this.transferMouseData(e,r),e.deltaX=r.deltaX,e.deltaY=r.deltaY,e.deltaZ=r.deltaZ,e.deltaMode=r.deltaMode,this.mapPositionToPoint(e.screen,r.clientX,r.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.nativeEvent=r,e.type=r.type,e}bootstrapEvent(r,e){return r.originalEvent=null,r.nativeEvent=e,r.pointerId=e.pointerId,r.width=e.width,r.height=e.height,r.isPrimary=e.isPrimary,r.pointerType=e.pointerType,r.pressure=e.pressure,r.tangentialPressure=e.tangentialPressure,r.tiltX=e.tiltX,r.tiltY=e.tiltY,r.twist=e.twist,this.transferMouseData(r,e),this.mapPositionToPoint(r.screen,e.clientX,e.clientY),r.global.copyFrom(r.screen),r.offset.copyFrom(r.screen),r.isTrusted=e.isTrusted,r.type==="pointerleave"&&(r.type="pointerout"),r.type.startsWith("mouse")&&(r.type=r.type.replace("mouse","pointer")),r.type.startsWith("touch")&&(r.type=BE[r.type]||r.type),r}transferMouseData(r,e){r.isTrusted=e.isTrusted,r.srcElement=e.srcElement,r.timeStamp=performance.now(),r.type=e.type,r.altKey=e.altKey,r.button=e.button,r.buttons=e.buttons,r.client.x=e.clientX,r.client.y=e.clientY,r.ctrlKey=e.ctrlKey,r.metaKey=e.metaKey,r.movement.x=e.movementX,r.movement.y=e.movementY,r.page.x=e.pageX,r.page.y=e.pageY,r.relatedTarget=null,r.shiftKey=e.shiftKey}},to=y2;to.extension={name:"events",type:[Z.RendererSystem,Z.CanvasRendererSystem]};to.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};te.add(to);function Z3(r){return r==="dynamic"||r==="static"}var Q3={onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,_internalInteractive:void 0,get interactive(){return this._internalInteractive??Z3(to.defaultEventMode)},set interactive(r){ae.deprecation("7.2.0","Setting interactive is deprecated, use eventMode = 'none'/'passive'/'auto'/'static'/'dynamic' instead."),this._internalInteractive=r,this.eventMode=r?"static":"auto"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??to.defaultEventMode},set eventMode(r){this._internalInteractive=Z3(r),this._internalEventMode=r},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(r,e,t){let i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof e=="function"?void 0:e;r=i?`${r}capture`:r,e=typeof e=="function"?e:e.handleEvent,this.on(r,e,s)},removeEventListener(r,e,t){let i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof e=="function"?void 0:e;r=i?`${r}capture`:r,e=typeof e=="function"?e:e.handleEvent,this.off(r,e,s)},dispatchEvent(r){if(!(r instanceof ys))throw new Error("DisplayObject cannot propagate events outside of the Federated Events API");return r.defaultPrevented=!1,r.path=null,r.target=this,r.manager.dispatchEvent(r),!r.defaultPrevented}};at.mixin(Q3);var v2={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,_accessibleActive:!1,_accessibleDiv:null,accessibleType:"button",accessiblePointerEvents:"auto",accessibleChildren:!0,renderId:-1};at.mixin(v2);var RE=9,nd=100,OE=0,GE=0,J3=2,ef=1,UE=-1e3,VE=-1e3,zE=2,vc=class{constructor(e){this.debug=!1,this._isActive=!1,this._isMobileAccessibility=!1,this.pool=[],this.renderId=0,this.children=[],this.androidUpdateCount=0,this.androidUpdateFrequency=500,this._hookDiv=null,(ae.isMobile.tablet||ae.isMobile.phone)&&this.createTouchHook();let t=document.createElement("div");t.style.width=`${nd}px`,t.style.height=`${nd}px`,t.style.position="absolute",t.style.top=`${OE}px`,t.style.left=`${GE}px`,t.style.zIndex=J3.toString(),this.div=t,this.renderer=e,this._onKeyDown=this._onKeyDown.bind(this),this._onMouseMove=this._onMouseMove.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}createTouchHook(){let e=document.createElement("button");e.style.width=`${ef}px`,e.style.height=`${ef}px`,e.style.position="absolute",e.style.top=`${UE}px`,e.style.left=`${VE}px`,e.style.zIndex=zE.toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this.activate(),this.destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}activate(){this._isActive||(this._isActive=!0,globalThis.document.addEventListener("mousemove",this._onMouseMove,!0),globalThis.removeEventListener("keydown",this._onKeyDown,!1),this.renderer.on("postrender",this.update,this),this.renderer.view.parentNode?.appendChild(this.div))}deactivate(){!this._isActive||this._isMobileAccessibility||(this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),globalThis.addEventListener("keydown",this._onKeyDown,!1),this.renderer.off("postrender",this.update),this.div.parentNode?.removeChild(this.div))}updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&e.isInteractive()&&(e._accessibleActive||this.addChild(e),e.renderId=this.renderId);let t=e.children;if(t)for(let i=0;i title : ${e.title}
tabIndex: ${e.tabIndex}`}capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);let{width:t,height:i}=this.renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>i&&(e.height=i-e.y)}addChild(e){let t=this.pool.pop();t||(t=document.createElement("button"),t.style.width=`${nd}px`,t.style.height=`${nd}px`,t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex=J3.toString(),t.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?t.setAttribute("aria-live","off"):t.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?t.setAttribute("aria-relevant","additions"):t.setAttribute("aria-relevant","text"),t.addEventListener("click",this._onClick.bind(this)),t.addEventListener("focus",this._onFocus.bind(this)),t.addEventListener("focusout",this._onFocusOut.bind(this))),t.style.pointerEvents=e.accessiblePointerEvents,t.type=e.accessibleType,e.accessibleTitle&&e.accessibleTitle!==null?t.title=e.accessibleTitle:(!e.accessibleHint||e.accessibleHint===null)&&(t.title=`displayObject ${e.tabIndex}`),e.accessibleHint&&e.accessibleHint!==null&&t.setAttribute("aria-label",e.accessibleHint),this.debug&&this.updateDebugHTML(t),e._accessibleActive=!0,e._accessibleDiv=t,t.displayObject=e,this.children.push(e),this.div.appendChild(e._accessibleDiv),e._accessibleDiv.tabIndex=e.tabIndex}_dispatchEvent(e,t){let{displayObject:i}=e.target,s=this.renderer.events.rootBoundary,n=Object.assign(new ys(s),{target:i});s.rootTarget=this.renderer.lastObjectRendered,t.forEach(o=>s.dispatchEvent(n,o))}_onClick(e){this._dispatchEvent(e,["click","pointertap","tap"])}_onFocus(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","assertive"),this._dispatchEvent(e,["mouseover"])}_onFocusOut(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","polite"),this._dispatchEvent(e,["mouseout"])}_onKeyDown(e){e.keyCode===RE&&this.activate()}_onMouseMove(e){e.movementX===0&&e.movementY===0||this.deactivate()}destroy(){this.destroyTouchHook(),this.div=null,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),globalThis.removeEventListener("keydown",this._onKeyDown),this.pool=null,this.children=null,this.renderer=null}};vc.extension={name:"accessibility",type:[Z.RendererPlugin,Z.CanvasRendererPlugin]};te.add(vc);var x2=class{constructor(r){this.stage=new tt,r=Object.assign({forceCanvas:!1},r),this.renderer=l2(r),x2._plugins.forEach(e=>{e.init.call(this,r)})}render(){this.renderer.render(this.stage)}get view(){return this.renderer.view}get screen(){return this.renderer.screen}destroy(r,e){let t=x2._plugins.slice(0);t.reverse(),t.forEach(i=>{i.destroy.call(this)}),this.stage.destroy(e),this.stage=null,this.renderer.destroy(r),this.renderer=null}},D2=x2;D2._plugins=[];te.handleByList(Z.Application,D2._plugins);var xc=class{static init(e){Object.defineProperty(this,"resizeTo",{set(t){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=t,t&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this.cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()))},this.cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{if(!this._resizeTo)return;this.cancelResize();let t,i;if(this._resizeTo===globalThis.window)t=globalThis.innerWidth,i=globalThis.innerHeight;else{let{clientWidth:s,clientHeight:n}=this._resizeTo;t=s,i=n}this.renderer.resize(t,i),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this.cancelResize(),this.cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}};xc.extension=Z.Application;te.add(xc);var tf={loader:Z.LoadParser,resolver:Z.ResolveParser,cache:Z.CacheParser,detection:Z.DetectionParser};te.handle(Z.Asset,r=>{let e=r.ref;Object.entries(tf).filter(([t])=>!!e[t]).forEach(([t,i])=>te.add(Object.assign(e[t],{extension:e[t].extension??i})))},r=>{let e=r.ref;Object.keys(tf).filter(t=>!!e[t]).forEach(t=>te.remove(e[t]))});var od=class{constructor(e,t=!1){this._loader=e,this._assetList=[],this._isLoading=!1,this._maxConcurrent=1,this.verbose=t}add(e){e.forEach(t=>{this._assetList.push(t)}),this.verbose&&console.log("[BackgroundLoader] assets: ",this._assetList),this._isActive&&!this._isLoading&&this._next()}async _next(){if(this._assetList.length&&this._isActive){this._isLoading=!0;let e=[],t=Math.min(this._assetList.length,this._maxConcurrent);for(let i=0;i(Array.isArray(r)||(r=[r]),e?r.map(t=>typeof t=="string"?e(t):t):r);var ro=(r,e)=>{let t=e.split("?")[1];return t&&(r+=`?${t}`),r};function rf(r,e,t,i,s){let n=e[t];for(let o=0;o{let o=n.substring(1,n.length-1).split(",");s.push(o)}),rf(r,s,0,t,i)}else i.push(r);return i}var vs=r=>!Array.isArray(r);var b2=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(e){return this._cache.has(e)}get(e){let t=this._cache.get(e);return t||console.warn(`[Assets] Asset id ${e} was not found in the Cache`),t}set(e,t){let i=U0(e),s;for(let a=0;a{s[a]=t}));let n=Object.keys(s),o={cacheKeys:n,keys:i};if(i.forEach(a=>{this._cacheMap.set(a,o)}),n.forEach(a=>{this._cache.has(a)&&this._cache.get(a)!==t&&console.warn("[Cache] already has key:",a),this._cache.set(a,s[a])}),t instanceof Se){let a=t;i.forEach(l=>{a.baseTexture!==Se.EMPTY.baseTexture&&we.addToCache(a.baseTexture,l),Se.addToCache(a,l)})}}remove(e){if(this._cacheMap.get(e),!this._cacheMap.has(e)){console.warn(`[Assets] Asset id ${e} was not found in the Cache`);return}let t=this._cacheMap.get(e);t.cacheKeys.forEach(s=>{this._cache.delete(s)}),t.keys.forEach(s=>{this._cacheMap.delete(s)})}get parsers(){return this._parsers}},tn=new b2;var ld=class{constructor(){this._parsers=[],this._parsersValidated=!1,this.parsers=new Proxy(this._parsers,{set:(e,t,i)=>(this._parsersValidated=!1,e[t]=i,!0)}),this.promiseCache={}}reset(){this._parsersValidated=!1,this.promiseCache={}}_getLoadPromiseAndParser(e,t){let i={promise:null,parser:null};return i.promise=(async()=>{let s=null,n=null;if(t.loadParser&&(n=this._parserHash[t.loadParser],n||console.warn(`[Assets] specified load parser "${t.loadParser}" not found while loading ${e}`)),!n){for(let o=0;o({src:c})),a=o.length,l=o.map(async c=>{let h=ae.path.toAbsolute(c.src);if(!s[c.src])try{this.promiseCache[h]||(this.promiseCache[h]=this._getLoadPromiseAndParser(h,c)),s[c.src]=await this.promiseCache[h].promise,t&&t(++i/a)}catch(d){throw delete this.promiseCache[h],delete s[c.src],new Error(`[Loader.load] Failed to load ${h}. -${d}`)}});return await Promise.all(l),n?s[o[0].src]:s}async unload(e){let i=U0(e,s=>({src:s})).map(async s=>{let n=ae.path.toAbsolute(s.src),o=this.promiseCache[n];if(o){let a=await o.promise;o.parser?.unload?.(a,s,this),delete this.promiseCache[n]}});await Promise.all(i)}_validateParsers(){this._parsersValidated=!0,this._parserHash=this._parsers.filter(e=>e.name).reduce((e,t)=>(e[t.name]&&console.warn(`[Assets] loadParser name conflict "${t.name}"`),{...e,[t.name]:t}),{})}};var jt=(r=>(r[r.Low=0]="Low",r[r.Normal=1]="Normal",r[r.High=2]="High",r))(jt||{});var WE=".json",HE="application/json",E2={extension:{type:Z.LoadParser,priority:jt.Low},name:"loadJson",test(r){return Gr(r,HE)||A0(r,WE)},async load(r){return await(await K.ADAPTER.fetch(r)).json()}};te.add(E2);var jE=".txt",$E="text/plain",S2={name:"loadTxt",extension:{type:Z.LoadParser,priority:jt.Low},test(r){return Gr(r,$E)||A0(r,jE)},async load(r){return await(await K.ADAPTER.fetch(r)).text()}};te.add(S2);var qE=["normal","bold","100","200","300","400","500","600","700","800","900"],YE=[".ttf",".otf",".woff",".woff2"],XE=["font/ttf","font/otf","font/woff","font/woff2"],KE=/^(--|-?[A-Z_])[0-9A-Z_-]*$/i;function C2(r){let e=ae.path.extname(r),s=ae.path.basename(r,e).replace(/(-|_)/g," ").toLowerCase().split(" ").map(a=>a.charAt(0).toUpperCase()+a.slice(1)),n=s.length>0;for(let a of s)if(!a.match(KE)){n=!1;break}let o=s.join(" ");return n||(o=`"${o.replace(/[\\"]/g,"\\$&")}"`),o}var w2={extension:{type:Z.LoadParser,priority:jt.Low},name:"loadWebFont",test(r){return Gr(r,XE)||A0(r,YE)},async load(r,e){let t=K.ADAPTER.getFontFaceSet();if(t){let i=[],s=e.data?.family??C2(r),n=e.data?.weights?.filter(a=>qE.includes(a))??["normal"],o=e.data??{};for(let a=0;aK.ADAPTER.getFontFaceSet().delete(e))}};te.add(w2);var sf=0,T2,ZE="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=",QE={id:"checkImageBitmap",code:` +`;var mc=class extends ot{constructor(e=.5,t=Math.random()){super(nc,K3,{uNoise:0,uSeed:0}),this.noise=e,this.seed=t}get noise(){return this.uniforms.uNoise}set noise(e){this.uniforms.uNoise=e}get seed(){return this.uniforms.uSeed}set seed(e){this.uniforms.uSeed=e}};var f2={AlphaFilter:dc,BlurFilter:pc,BlurFilterPass:en,ColorMatrixFilter:eo,DisplacementFilter:fc,FXAAFilter:gc,NoiseFilter:mc};Object.entries(f2).forEach(([r,e])=>{Object.defineProperty(f2,r,{get(){return ae.deprecation("7.1.0",`filters.${r} has moved to ${r}`),e}})});var g2=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this.tickerAdded=!1,this._pauseUpdate=!0}init(e){this.removeTickerListener(),this.events=e,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this.tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(e){this._pauseUpdate=e}addTickerListener(){this.tickerAdded||!this.domElement||(It.system.add(this.tickerUpdate,this,yr.INTERACTION),this.tickerAdded=!0)}removeTickerListener(){this.tickerAdded&&(It.system.remove(this.tickerUpdate,this),this.tickerAdded=!1)}pointerMoved(){this._didMove=!0}update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}let e=this.events.rootPointerEvent;this.events.supportsTouchEvents&&e.pointerType==="touch"||globalThis.document.dispatchEvent(new PointerEvent("pointermove",{clientX:e.clientX,clientY:e.clientY}))}tickerUpdate(e){this._deltaTime+=e,!(this._deltaTimei.priority-s.priority)}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;let t=this.mappingTable[e.type];if(t)for(let i=0,s=t.length;i=0;s--)if(e.currentTarget=i[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,i=this._allInteractiveElements){if(i.length===0)return;e.eventPhase=e.BUBBLING_PHASE;let s=Array.isArray(t)?t:[t];for(let n=i.length-1;n>=0;n--)s.forEach(o=>{e.currentTarget=i[n],this.notifyTarget(e,o)})}propagationPath(e){let t=[e];for(let i=0;i=0;d--){let p=h[d],g=this.hitTestMoveRecursive(p,this._isInteractive(t)?t:p.eventMode,i,s,n,o||n(e,i));if(g){if(g.length>0&&!g[g.length-1].parent)continue;let v=e.isInteractive();(g.length>0||v)&&(v&&this._allInteractiveElements.push(e),g.push(e)),this._hitElements.length===0&&(this._hitElements=g),a=!0}}}let l=this._isInteractive(t),c=e.isInteractive();return c&&c&&this._allInteractiveElements.push(e),o||this._hitElements.length>0?null:a?this._hitElements:l&&!n(e,i)&&s(e,i)?c?[e]:[]:null}hitTestRecursive(e,t,i,s,n){if(this._interactivePrune(e)||n(e,i))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(ki.pauseUpdate=!1),e.interactiveChildren&&e.children){let l=e.children;for(let c=l.length-1;c>=0;c--){let h=l[c],d=this.hitTestRecursive(h,this._isInteractive(t)?t:h.eventMode,i,s,n);if(d){if(d.length>0&&!d[d.length-1].parent)continue;let p=e.isInteractive();return(d.length>0||p)&&d.push(e),d}}}let o=this._isInteractive(t),a=e.isInteractive();return o&&s(e,i)?a?[e]:[]:null}_isInteractive(e){return e==="static"||e==="dynamic"}_interactivePrune(e){return!!(!e||e.isMask||!e.visible||!e.renderable||e.eventMode==="none"||e.eventMode==="passive"&&!e.interactiveChildren||e.isMask)}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,m2),!e.hitArea.contains(m2.x,m2.y)))return!0;if(e._mask){let i=e._mask.isMaskData?e._mask.maskObject:e._mask;if(i&&!i.containsPoint?.(t))return!0}return!1}hitTestFn(e,t){return e.eventMode==="passive"?!1:e.hitArea?!0:e.containsPoint?e.containsPoint(t):!1}notifyTarget(e,t){t=t??e.type;let i=`on${t}`;e.currentTarget[i]?.(e);let s=e.eventPhase===e.CAPTURING_PHASE||e.eventPhase===e.AT_TARGET?`${t}capture`:t;this.notifyListeners(e,s),e.eventPhase===e.AT_TARGET&&this.notifyListeners(e,t)}mapPointerDown(e){if(!(e instanceof F0)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.createPointerEvent(e);if(this.dispatchEvent(t,"pointerdown"),t.pointerType==="touch")this.dispatchEvent(t,"touchstart");else if(t.pointerType==="mouse"||t.pointerType==="pen"){let s=t.button===2;this.dispatchEvent(t,s?"rightdown":"mousedown")}let i=this.trackingData(e.pointerId);i.pressTargetsByButton[e.button]=t.composedPath(),this.freeEvent(t)}mapPointerMove(e){if(!(e instanceof F0)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let t=this.createPointerEvent(e);this._isPointerMoveEvent=!1;let i=t.pointerType==="mouse"||t.pointerType==="pen",s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==t.target){let l=e.type==="mousemove"?"mouseout":"pointerout",c=this.createPointerEvent(e,l,n);if(this.dispatchEvent(c,"pointerout"),i&&this.dispatchEvent(c,"mouseout"),!t.composedPath().includes(n)){let h=this.createPointerEvent(e,"pointerleave",n);for(h.eventPhase=h.AT_TARGET;h.target&&!t.composedPath().includes(h.target);)h.currentTarget=h.target,this.notifyTarget(h),i&&this.notifyTarget(h,"mouseleave"),h.target=h.target.parent;this.freeEvent(h)}this.freeEvent(c)}if(n!==t.target){let l=e.type==="mousemove"?"mouseover":"pointerover",c=this.clonePointerEvent(t,l);this.dispatchEvent(c,"pointerover"),i&&this.dispatchEvent(c,"mouseover");let h=n?.parent;for(;h&&h!==this.rootTarget.parent&&h!==t.target;)h=h.parent;if(!h||h===this.rootTarget.parent){let p=this.clonePointerEvent(t,"pointerenter");for(p.eventPhase=p.AT_TARGET;p.target&&p.target!==n&&p.target!==this.rootTarget.parent;)p.currentTarget=p.target,this.notifyTarget(p),i&&this.notifyTarget(p,"mouseenter"),p.target=p.target.parent;this.freeEvent(p)}this.freeEvent(c)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(t,"pointermove"),a&&o.push("globalpointermove"),t.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(t,"touchmove"),a&&o.push("globaltouchmove")),i&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),a&&o.push("globalmousemove"),this.cursor=t.target?.cursor),o.length>0&&this.all(t,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof F0)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),i=this.createPointerEvent(e),s=i.pointerType==="mouse"||i.pointerType==="pen";this.dispatchEvent(i,"pointerover"),s&&this.dispatchEvent(i,"mouseover"),i.pointerType==="mouse"&&(this.cursor=i.target?.cursor);let n=this.clonePointerEvent(i,"pointerenter");for(n.eventPhase=n.AT_TARGET;n.target&&n.target!==this.rootTarget.parent;)n.currentTarget=n.target,this.notifyTarget(n),s&&this.notifyTarget(n,"mouseenter"),n.target=n.target.parent;t.overTargets=i.composedPath(),this.freeEvent(i),this.freeEvent(n)}mapPointerOut(e){if(!(e instanceof F0)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId);if(t.overTargets){let i=e.pointerType==="mouse"||e.pointerType==="pen",s=this.findMountedTarget(t.overTargets),n=this.createPointerEvent(e,"pointerout",s);this.dispatchEvent(n),i&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(e,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),i&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;t.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(e){if(!(e instanceof F0)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=performance.now(),i=this.createPointerEvent(e);if(this.dispatchEvent(i,"pointerup"),i.pointerType==="touch")this.dispatchEvent(i,"touchend");else if(i.pointerType==="mouse"||i.pointerType==="pen"){let a=i.button===2;this.dispatchEvent(i,a?"rightup":"mouseup")}let s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.pressTargetsByButton[e.button]),o=n;if(n&&!i.composedPath().includes(n)){let a=n;for(;a&&!i.composedPath().includes(a);){if(i.currentTarget=a,this.notifyTarget(i,"pointerupoutside"),i.pointerType==="touch")this.notifyTarget(i,"touchendoutside");else if(i.pointerType==="mouse"||i.pointerType==="pen"){let l=i.button===2;this.notifyTarget(i,l?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[e.button],o=a}if(o){let a=this.clonePointerEvent(i,"click");a.target=o,a.path=null,s.clicksByButton[e.button]||(s.clicksByButton[e.button]={clickCount:0,target:a.target,timeStamp:t});let l=s.clicksByButton[e.button];if(l.target===a.target&&t-l.timeStamp<200?++l.clickCount:l.clickCount=1,l.target=a.target,l.timeStamp=t,a.detail=l.clickCount,a.pointerType==="mouse"){let c=a.button===2;this.dispatchEvent(a,c?"rightclick":"click")}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a)}this.freeEvent(i)}mapPointerUpOutside(e){if(!(e instanceof F0)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),i=this.findMountedTarget(t.pressTargetsByButton[e.button]),s=this.createPointerEvent(e);if(i){let n=i;for(;n;)s.currentTarget=n,this.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch"?this.notifyTarget(s,"touchendoutside"):(s.pointerType==="mouse"||s.pointerType==="pen")&&this.notifyTarget(s,s.button===2?"rightupoutside":"mouseupoutside"),n=n.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(s)}mapWheel(e){if(!(e instanceof ci)){console.warn("EventBoundary cannot map a non-wheel event as a wheel event");return}let t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let i=1;i(t==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=i),e[t]=i,!0)}),this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onPointerOverOut=this.onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(r){let{view:e,resolution:t}=this.renderer;this.setTargetElement(e),this.resolution=t,y2._defaultEventMode=r.eventMode??"auto",Object.assign(this.features,r.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(r){this.resolution=r}destroy(){this.setTargetElement(null),this.renderer=null}setCursor(r){r=r||"default";let e=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(e=!1),this.currentCursor===r)return;this.currentCursor=r;let t=this.cursorStyles[r];if(t)switch(typeof t){case"string":e&&(this.domElement.style.cursor=t);break;case"function":t(r);break;case"object":e&&Object.assign(this.domElement.style,t);break}else e&&typeof r=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,r)&&(this.domElement.style.cursor=r)}get pointer(){return this.rootPointerEvent}onPointerDown(r){if(!this.features.click||(this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.supportsTouchEvents&&r.pointerType==="touch"))return;let e=this.normalizeToPointerData(r);this.autoPreventDefault&&e[0].isNormalized&&(r.cancelable||!("cancelable"in r))&&r.preventDefault();for(let t=0,i=e.length;t0&&(e=r.composedPath()[0]);let t=e!==this.domElement?"outside":"",i=this.normalizeToPointerData(r);for(let s=0,n=i.length;s"u"&&(s.button=0),typeof s.buttons>"u"&&(s.buttons=1),typeof s.isPrimary>"u"&&(s.isPrimary=r.touches.length===1&&r.type==="touchstart"),typeof s.width>"u"&&(s.width=s.radiusX||1),typeof s.height>"u"&&(s.height=s.radiusY||1),typeof s.tiltX>"u"&&(s.tiltX=0),typeof s.tiltY>"u"&&(s.tiltY=0),typeof s.pointerType>"u"&&(s.pointerType="touch"),typeof s.pointerId>"u"&&(s.pointerId=s.identifier||0),typeof s.pressure>"u"&&(s.pressure=s.force||.5),typeof s.twist>"u"&&(s.twist=0),typeof s.tangentialPressure>"u"&&(s.tangentialPressure=0),typeof s.layerX>"u"&&(s.layerX=s.offsetX=s.clientX),typeof s.layerY>"u"&&(s.layerY=s.offsetY=s.clientY),s.isNormalized=!0,s.type=r.type,e.push(s)}else if(!globalThis.MouseEvent||r instanceof MouseEvent&&(!this.supportsPointerEvents||!(r instanceof globalThis.PointerEvent))){let t=r;typeof t.isPrimary>"u"&&(t.isPrimary=!0),typeof t.width>"u"&&(t.width=1),typeof t.height>"u"&&(t.height=1),typeof t.tiltX>"u"&&(t.tiltX=0),typeof t.tiltY>"u"&&(t.tiltY=0),typeof t.pointerType>"u"&&(t.pointerType="mouse"),typeof t.pointerId>"u"&&(t.pointerId=BE),typeof t.pressure>"u"&&(t.pressure=.5),typeof t.twist>"u"&&(t.twist=0),typeof t.tangentialPressure>"u"&&(t.tangentialPressure=0),t.isNormalized=!0,e.push(t)}else e.push(r);return e}normalizeWheelEvent(r){let e=this.rootWheelEvent;return this.transferMouseData(e,r),e.deltaX=r.deltaX,e.deltaY=r.deltaY,e.deltaZ=r.deltaZ,e.deltaMode=r.deltaMode,this.mapPositionToPoint(e.screen,r.clientX,r.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.nativeEvent=r,e.type=r.type,e}bootstrapEvent(r,e){return r.originalEvent=null,r.nativeEvent=e,r.pointerId=e.pointerId,r.width=e.width,r.height=e.height,r.isPrimary=e.isPrimary,r.pointerType=e.pointerType,r.pressure=e.pressure,r.tangentialPressure=e.tangentialPressure,r.tiltX=e.tiltX,r.tiltY=e.tiltY,r.twist=e.twist,this.transferMouseData(r,e),this.mapPositionToPoint(r.screen,e.clientX,e.clientY),r.global.copyFrom(r.screen),r.offset.copyFrom(r.screen),r.isTrusted=e.isTrusted,r.type==="pointerleave"&&(r.type="pointerout"),r.type.startsWith("mouse")&&(r.type=r.type.replace("mouse","pointer")),r.type.startsWith("touch")&&(r.type=RE[r.type]||r.type),r}transferMouseData(r,e){r.isTrusted=e.isTrusted,r.srcElement=e.srcElement,r.timeStamp=performance.now(),r.type=e.type,r.altKey=e.altKey,r.button=e.button,r.buttons=e.buttons,r.client.x=e.clientX,r.client.y=e.clientY,r.ctrlKey=e.ctrlKey,r.metaKey=e.metaKey,r.movement.x=e.movementX,r.movement.y=e.movementY,r.page.x=e.pageX,r.page.y=e.pageY,r.relatedTarget=null,r.shiftKey=e.shiftKey}},to=y2;to.extension={name:"events",type:[Z.RendererSystem,Z.CanvasRendererSystem]};to.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};te.add(to);function Z3(r){return r==="dynamic"||r==="static"}var Q3={onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,_internalInteractive:void 0,get interactive(){return this._internalInteractive??Z3(to.defaultEventMode)},set interactive(r){ae.deprecation("7.2.0","Setting interactive is deprecated, use eventMode = 'none'/'passive'/'auto'/'static'/'dynamic' instead."),this._internalInteractive=r,this.eventMode=r?"static":"auto"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??to.defaultEventMode},set eventMode(r){this._internalInteractive=Z3(r),this._internalEventMode=r},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(r,e,t){let i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof e=="function"?void 0:e;r=i?`${r}capture`:r,e=typeof e=="function"?e:e.handleEvent,this.on(r,e,s)},removeEventListener(r,e,t){let i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof e=="function"?void 0:e;r=i?`${r}capture`:r,e=typeof e=="function"?e:e.handleEvent,this.off(r,e,s)},dispatchEvent(r){if(!(r instanceof ys))throw new Error("DisplayObject cannot propagate events outside of the Federated Events API");return r.defaultPrevented=!1,r.path=null,r.target=this,r.manager.dispatchEvent(r),!r.defaultPrevented}};at.mixin(Q3);var v2={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,_accessibleActive:!1,_accessibleDiv:null,accessibleType:"button",accessiblePointerEvents:"auto",accessibleChildren:!0,renderId:-1};at.mixin(v2);var OE=9,nd=100,GE=0,UE=0,J3=2,ef=1,VE=-1e3,zE=-1e3,WE=2,vc=class{constructor(e){this.debug=!1,this._isActive=!1,this._isMobileAccessibility=!1,this.pool=[],this.renderId=0,this.children=[],this.androidUpdateCount=0,this.androidUpdateFrequency=500,this._hookDiv=null,(ae.isMobile.tablet||ae.isMobile.phone)&&this.createTouchHook();let t=document.createElement("div");t.style.width=`${nd}px`,t.style.height=`${nd}px`,t.style.position="absolute",t.style.top=`${GE}px`,t.style.left=`${UE}px`,t.style.zIndex=J3.toString(),this.div=t,this.renderer=e,this._onKeyDown=this._onKeyDown.bind(this),this._onMouseMove=this._onMouseMove.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}createTouchHook(){let e=document.createElement("button");e.style.width=`${ef}px`,e.style.height=`${ef}px`,e.style.position="absolute",e.style.top=`${VE}px`,e.style.left=`${zE}px`,e.style.zIndex=WE.toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this.activate(),this.destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}activate(){this._isActive||(this._isActive=!0,globalThis.document.addEventListener("mousemove",this._onMouseMove,!0),globalThis.removeEventListener("keydown",this._onKeyDown,!1),this.renderer.on("postrender",this.update,this),this.renderer.view.parentNode?.appendChild(this.div))}deactivate(){!this._isActive||this._isMobileAccessibility||(this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),globalThis.addEventListener("keydown",this._onKeyDown,!1),this.renderer.off("postrender",this.update),this.div.parentNode?.removeChild(this.div))}updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&e.isInteractive()&&(e._accessibleActive||this.addChild(e),e.renderId=this.renderId);let t=e.children;if(t)for(let i=0;i title : ${e.title}
tabIndex: ${e.tabIndex}`}capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);let{width:t,height:i}=this.renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>i&&(e.height=i-e.y)}addChild(e){let t=this.pool.pop();t||(t=document.createElement("button"),t.style.width=`${nd}px`,t.style.height=`${nd}px`,t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex=J3.toString(),t.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?t.setAttribute("aria-live","off"):t.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?t.setAttribute("aria-relevant","additions"):t.setAttribute("aria-relevant","text"),t.addEventListener("click",this._onClick.bind(this)),t.addEventListener("focus",this._onFocus.bind(this)),t.addEventListener("focusout",this._onFocusOut.bind(this))),t.style.pointerEvents=e.accessiblePointerEvents,t.type=e.accessibleType,e.accessibleTitle&&e.accessibleTitle!==null?t.title=e.accessibleTitle:(!e.accessibleHint||e.accessibleHint===null)&&(t.title=`displayObject ${e.tabIndex}`),e.accessibleHint&&e.accessibleHint!==null&&t.setAttribute("aria-label",e.accessibleHint),this.debug&&this.updateDebugHTML(t),e._accessibleActive=!0,e._accessibleDiv=t,t.displayObject=e,this.children.push(e),this.div.appendChild(e._accessibleDiv),e._accessibleDiv.tabIndex=e.tabIndex}_dispatchEvent(e,t){let{displayObject:i}=e.target,s=this.renderer.events.rootBoundary,n=Object.assign(new ys(s),{target:i});s.rootTarget=this.renderer.lastObjectRendered,t.forEach(o=>s.dispatchEvent(n,o))}_onClick(e){this._dispatchEvent(e,["click","pointertap","tap"])}_onFocus(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","assertive"),this._dispatchEvent(e,["mouseover"])}_onFocusOut(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","polite"),this._dispatchEvent(e,["mouseout"])}_onKeyDown(e){e.keyCode===OE&&this.activate()}_onMouseMove(e){e.movementX===0&&e.movementY===0||this.deactivate()}destroy(){this.destroyTouchHook(),this.div=null,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),globalThis.removeEventListener("keydown",this._onKeyDown),this.pool=null,this.children=null,this.renderer=null}};vc.extension={name:"accessibility",type:[Z.RendererPlugin,Z.CanvasRendererPlugin]};te.add(vc);var x2=class{constructor(r){this.stage=new tt,r=Object.assign({forceCanvas:!1},r),this.renderer=l2(r),x2._plugins.forEach(e=>{e.init.call(this,r)})}render(){this.renderer.render(this.stage)}get view(){return this.renderer.view}get screen(){return this.renderer.screen}destroy(r,e){let t=x2._plugins.slice(0);t.reverse(),t.forEach(i=>{i.destroy.call(this)}),this.stage.destroy(e),this.stage=null,this.renderer.destroy(r),this.renderer=null}},D2=x2;D2._plugins=[];te.handleByList(Z.Application,D2._plugins);var xc=class{static init(e){Object.defineProperty(this,"resizeTo",{set(t){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=t,t&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this.cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()))},this.cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{if(!this._resizeTo)return;this.cancelResize();let t,i;if(this._resizeTo===globalThis.window)t=globalThis.innerWidth,i=globalThis.innerHeight;else{let{clientWidth:s,clientHeight:n}=this._resizeTo;t=s,i=n}this.renderer.resize(t,i),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this.cancelResize(),this.cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}};xc.extension=Z.Application;te.add(xc);var tf={loader:Z.LoadParser,resolver:Z.ResolveParser,cache:Z.CacheParser,detection:Z.DetectionParser};te.handle(Z.Asset,r=>{let e=r.ref;Object.entries(tf).filter(([t])=>!!e[t]).forEach(([t,i])=>te.add(Object.assign(e[t],{extension:e[t].extension??i})))},r=>{let e=r.ref;Object.keys(tf).filter(t=>!!e[t]).forEach(t=>te.remove(e[t]))});var od=class{constructor(e,t=!1){this._loader=e,this._assetList=[],this._isLoading=!1,this._maxConcurrent=1,this.verbose=t}add(e){e.forEach(t=>{this._assetList.push(t)}),this.verbose&&console.log("[BackgroundLoader] assets: ",this._assetList),this._isActive&&!this._isLoading&&this._next()}async _next(){if(this._assetList.length&&this._isActive){this._isLoading=!0;let e=[],t=Math.min(this._assetList.length,this._maxConcurrent);for(let i=0;i(Array.isArray(r)||(r=[r]),e?r.map(t=>typeof t=="string"?e(t):t):r);var ro=(r,e)=>{let t=e.split("?")[1];return t&&(r+=`?${t}`),r};function rf(r,e,t,i,s){let n=e[t];for(let o=0;o{let o=n.substring(1,n.length-1).split(",");s.push(o)}),rf(r,s,0,t,i)}else i.push(r);return i}var vs=r=>!Array.isArray(r);var b2=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(e){return this._cache.has(e)}get(e){let t=this._cache.get(e);return t||console.warn(`[Assets] Asset id ${e} was not found in the Cache`),t}set(e,t){let i=U0(e),s;for(let a=0;a{s[a]=t}));let n=Object.keys(s),o={cacheKeys:n,keys:i};if(i.forEach(a=>{this._cacheMap.set(a,o)}),n.forEach(a=>{this._cache.has(a)&&this._cache.get(a)!==t&&console.warn("[Cache] already has key:",a),this._cache.set(a,s[a])}),t instanceof Se){let a=t;i.forEach(l=>{a.baseTexture!==Se.EMPTY.baseTexture&&we.addToCache(a.baseTexture,l),Se.addToCache(a,l)})}}remove(e){if(this._cacheMap.get(e),!this._cacheMap.has(e)){console.warn(`[Assets] Asset id ${e} was not found in the Cache`);return}let t=this._cacheMap.get(e);t.cacheKeys.forEach(s=>{this._cache.delete(s)}),t.keys.forEach(s=>{this._cacheMap.delete(s)})}get parsers(){return this._parsers}},tn=new b2;var ld=class{constructor(){this._parsers=[],this._parsersValidated=!1,this.parsers=new Proxy(this._parsers,{set:(e,t,i)=>(this._parsersValidated=!1,e[t]=i,!0)}),this.promiseCache={}}reset(){this._parsersValidated=!1,this.promiseCache={}}_getLoadPromiseAndParser(e,t){let i={promise:null,parser:null};return i.promise=(async()=>{let s=null,n=null;if(t.loadParser&&(n=this._parserHash[t.loadParser],n||console.warn(`[Assets] specified load parser "${t.loadParser}" not found while loading ${e}`)),!n){for(let o=0;o({src:c})),a=o.length,l=o.map(async c=>{let h=ae.path.toAbsolute(c.src);if(!s[c.src])try{this.promiseCache[h]||(this.promiseCache[h]=this._getLoadPromiseAndParser(h,c)),s[c.src]=await this.promiseCache[h].promise,t&&t(++i/a)}catch(d){throw delete this.promiseCache[h],delete s[c.src],new Error(`[Loader.load] Failed to load ${h}. +${d}`)}});return await Promise.all(l),n?s[o[0].src]:s}async unload(e){let i=U0(e,s=>({src:s})).map(async s=>{let n=ae.path.toAbsolute(s.src),o=this.promiseCache[n];if(o){let a=await o.promise;o.parser?.unload?.(a,s,this),delete this.promiseCache[n]}});await Promise.all(i)}_validateParsers(){this._parsersValidated=!0,this._parserHash=this._parsers.filter(e=>e.name).reduce((e,t)=>(e[t.name]&&console.warn(`[Assets] loadParser name conflict "${t.name}"`),{...e,[t.name]:t}),{})}};var jt=(r=>(r[r.Low=0]="Low",r[r.Normal=1]="Normal",r[r.High=2]="High",r))(jt||{});var HE=".json",jE="application/json",E2={extension:{type:Z.LoadParser,priority:jt.Low},name:"loadJson",test(r){return Gr(r,jE)||A0(r,HE)},async load(r){return await(await K.ADAPTER.fetch(r)).json()}};te.add(E2);var $E=".txt",qE="text/plain",S2={name:"loadTxt",extension:{type:Z.LoadParser,priority:jt.Low},test(r){return Gr(r,qE)||A0(r,$E)},async load(r){return await(await K.ADAPTER.fetch(r)).text()}};te.add(S2);var YE=["normal","bold","100","200","300","400","500","600","700","800","900"],XE=[".ttf",".otf",".woff",".woff2"],KE=["font/ttf","font/otf","font/woff","font/woff2"],ZE=/^(--|-?[A-Z_])[0-9A-Z_-]*$/i;function C2(r){let e=ae.path.extname(r),s=ae.path.basename(r,e).replace(/(-|_)/g," ").toLowerCase().split(" ").map(a=>a.charAt(0).toUpperCase()+a.slice(1)),n=s.length>0;for(let a of s)if(!a.match(ZE)){n=!1;break}let o=s.join(" ");return n||(o=`"${o.replace(/[\\"]/g,"\\$&")}"`),o}var w2={extension:{type:Z.LoadParser,priority:jt.Low},name:"loadWebFont",test(r){return Gr(r,KE)||A0(r,XE)},async load(r,e){let t=K.ADAPTER.getFontFaceSet();if(t){let i=[],s=e.data?.family??C2(r),n=e.data?.weights?.filter(a=>YE.includes(a))??["normal"],o=e.data??{};for(let a=0;aK.ADAPTER.getFontFaceSet().delete(e))}};te.add(w2);var sf=0,T2,QE="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=",JE={id:"checkImageBitmap",code:` async function checkImageBitmap() { try { if (typeof createImageBitmap !== 'function') return false; - const response = await fetch('${ZE}'); + const response = await fetch('${QE}'); const imageBlob = await response.blob(); const imageBitmap = await createImageBitmap(imageBlob); @@ -915,7 +915,7 @@ ${d}`)}});return await Promise.all(l),n?s[o[0].src]:s}async unload(e){let i=U0(e } } checkImageBitmap().then((result) => { self.postMessage(result); }); - `},JE={id:"loadImageBitmap",code:` + `},eS={id:"loadImageBitmap",code:` async function loadImageBitmap(url) { const response = await fetch(url); @@ -951,7 +951,7 @@ ${d}`)}});return await Promise.all(l),n?s[o[0].src]:s}async unload(e){let i=U0(e id: event.data.id, }); } - };`},_2,F2=class{constructor(){this._initialized=!1,this._createdWorkers=0,this.workerPool=[],this.queue=[],this.resolveHash={}}isImageBitmapSupported(){return this._isImageBitmapSupported!==void 0?this._isImageBitmapSupported:(this._isImageBitmapSupported=new Promise(e=>{let t=URL.createObjectURL(new Blob([QE.code],{type:"application/javascript"})),i=new Worker(t);i.addEventListener("message",s=>{i.terminate(),URL.revokeObjectURL(t),e(s.data)})}),this._isImageBitmapSupported)}loadImageBitmap(e){return this._run("loadImageBitmap",[e])}async _initWorkers(){this._initialized||(this._initialized=!0)}getWorker(){T2===void 0&&(T2=navigator.hardwareConcurrency||4);let e=this.workerPool.pop();return!e&&this._createdWorkers{this.complete(t.data),this.returnWorker(t.target),this.next()})),e}returnWorker(e){this.workerPool.push(e)}complete(e){e.error!==void 0?this.resolveHash[e.uuid].reject(e.error):this.resolveHash[e.uuid].resolve(e.data),this.resolveHash[e.uuid]=null}async _run(e,t){await this._initWorkers();let i=new Promise((s,n)=>{this.queue.push({id:e,arguments:t,resolve:s,reject:n})});return this.next(),i}next(){if(!this.queue.length)return;let e=this.getWorker();if(!e)return;let t=this.queue.pop(),i=t.id;this.resolveHash[sf]={resolve:t.resolve,reject:t.reject},e.postMessage({data:t.arguments,uuid:sf++,id:i})}},A2=new F2;function Li(r,e,t){let i=new Se(r);return i.baseTexture.on("dispose",()=>{delete e.promiseCache[t]}),i}var eS=[".jpeg",".jpg",".png",".webp",".avif"],tS=["image/jpeg","image/png","image/webp","image/avif"];async function k2(r){let e=await K.ADAPTER.fetch(r);if(!e.ok)throw new Error(`[loadImageBitmap] Failed to fetch ${r}: ${e.status} ${e.statusText}`);let t=await e.blob();return await createImageBitmap(t)}var xs={name:"loadTextures",extension:{type:Z.LoadParser,priority:jt.High},config:{preferWorkers:!0,preferCreateImageBitmap:!0,crossOrigin:"anonymous"},test(r){return Gr(r,tS)||A0(r,eS)},async load(r,e,t){let i=null;globalThis.createImageBitmap&&this.config.preferCreateImageBitmap?this.config.preferWorkers&&await A2.isImageBitmapSupported()?i=await A2.loadImageBitmap(r):i=await k2(r):i=await new Promise(n=>{i=new Image,i.crossOrigin=this.config.crossOrigin,i.src=r,i.complete?n(i):i.onload=()=>{n(i)}});let s=new we(i,{resolution:ae.getResolutionOfUrl(r),...e.data});return s.resource.src=r,Li(s,t,r)},unload(r){r.destroy(!0)}};te.add(xs);var rS=".svg",iS="image/svg+xml",I2={extension:{type:Z.LoadParser,priority:jt.High},name:"loadSVG",test(r){return Gr(r,iS)||A0(r,rS)},async testParse(r){return ms.test(r)},async parse(r,e,t){let i=new ms(r,e?.data?.resourceOptions);await i.load();let s=new we(i,{resolution:ae.getResolutionOfUrl(r),...e?.data});return s.resource.src=r,Li(s,t,r)},async load(r,e){return(await K.ADAPTER.fetch(r)).text()},unload:xs.unload};te.add(I2);var cd=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(e,t)=>`${e}${this._bundleIdConnector}${t}`,extractAssetIdFromBundle:(e,t)=>t.replace(`${e}${this._bundleIdConnector}`,"")},this._bundleIdConnector=this._defaultBundleIdentifierOptions.connector,this._createBundleAssetId=this._defaultBundleIdentifierOptions.createBundleAssetId,this._extractAssetIdFromBundle=this._defaultBundleIdentifierOptions.extractAssetIdFromBundle,this._assetMap={},this._preferredOrder=[],this._parsers=[],this._resolverHash={},this._bundles={}}setBundleIdentifier(e){if(this._bundleIdConnector=e.connector??this._bundleIdConnector,this._createBundleAssetId=e.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=e.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...e){e.forEach(t=>{this._preferredOrder.push(t),t.priority||(t.priority=Object.keys(t.params))}),this._resolverHash={}}set basePath(e){this._basePath=e}get basePath(){return this._basePath}set rootPath(e){this._rootPath=e}get rootPath(){return this._rootPath}get parsers(){return this._parsers}reset(){this.setBundleIdentifier(this._defaultBundleIdentifierOptions),this._assetMap={},this._preferredOrder=[],this._resolverHash={},this._rootPath=null,this._basePath=null,this._manifest=null,this._bundles={},this._defaultSearchParams=null}setDefaultSearchParams(e){if(typeof e=="string")this._defaultSearchParams=e;else{let t=e;this._defaultSearchParams=Object.keys(t).map(i=>`${encodeURIComponent(i)}=${encodeURIComponent(t[i])}`).join("&")}}addManifest(e){this._manifest&&console.warn("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=e,e.bundles.forEach(t=>{this.addBundle(t.name,t.assets)})}addBundle(e,t){let i=[];Array.isArray(t)?t.forEach(s=>{if(typeof s.name=="string"){let n=this._createBundleAssetId(e,s.name);i.push(n),this.add([s.name,n],s.srcs,s.data)}else{let n=s.name.map(o=>this._createBundleAssetId(e,o));n.forEach(o=>{i.push(o)}),this.add([...s.name,...n],s.srcs)}}):Object.keys(t).forEach(s=>{i.push(this._createBundleAssetId(e,s)),this.add([s,this._createBundleAssetId(e,s)],t[s])}),this._bundles[e]=i}add(e,t,i){let s=U0(e);s.forEach(o=>{this.hasKey(o)&&console.warn(`[Resolver] already has key: ${o} overwriting`)}),Array.isArray(t)||(typeof t=="string"?t=ad(t):t=[t]);let n=t.map(o=>{let a=o;if(typeof o=="string"){let l=!1;for(let c=0;c{this._assetMap[o]=n})}resolveBundle(e){let t=vs(e);e=U0(e);let i={};return e.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let l in o){let c=o[l];a[this._extractAssetIdFromBundle(s,l)]=c}i[s]=a}}),t?i[e[0]]:i}resolveUrl(e){let t=this.resolve(e);if(typeof e!="string"){let i={};for(let s in t)i[s]=t[s].src;return i}return t.src}resolve(e){let t=vs(e);e=U0(e);let i={};return e.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let n=this._assetMap[s],o=this._getPreferredOrder(n),a=n[0];o?.priority.forEach(l=>{o.params[l].forEach(c=>{let h=n.filter(d=>d[l]?d[l]===c:!1);h.length&&(n=h)})}),this._resolverHash[s]=n[0]??a}else{let n=s;(this._basePath||this._rootPath)&&(n=ae.path.toAbsolute(n,this._basePath,this._rootPath)),n=this._appendDefaultSearchParams(n),this._resolverHash[s]={src:n}}i[s]=this._resolverHash[s]}),t?i[e[0]]:i}hasKey(e){return!!this._assetMap[e]}hasBundle(e){return!!this._bundles[e]}_getPreferredOrder(e){for(let t=0;tn.params.format.includes(i.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(e){if(!this._defaultSearchParams)return e;let t=/\?/.test(e)?"&":"?";return`${e}${t}${this._defaultSearchParams}`}};var ud=class{constructor(){this._detections=[],this._initialized=!1,this.resolver=new cd,this.loader=new ld,this.cache=tn,this._backgroundLoader=new od(this.loader),this._backgroundLoader.active=!0,this.reset()}async init(e={}){if(this._initialized){console.warn("[Assets]AssetManager already initialized, did you load before calling this Asset.init()?");return}if(this._initialized=!0,e.defaultSearchParams&&this.resolver.setDefaultSearchParams(e.defaultSearchParams),e.basePath&&(this.resolver.basePath=e.basePath),e.bundleIdentifier&&this.resolver.setBundleIdentifier(e.bundleIdentifier),e.manifest){let n=e.manifest;typeof n=="string"&&(n=await this.load(n)),this.resolver.addManifest(n)}let t=e.texturePreference?.resolution??1,i=typeof t=="number"?[t]:t,s=[];if(e.texturePreference?.format){let n=e.texturePreference?.format;s=typeof n=="string"?[n]:n;for(let o of this._detections)await o.test()||(s=await o.remove(s))}else for(let n of this._detections)await n.test()&&(s=await n.add(s));this.resolver.prefer({params:{format:s,resolution:i}}),e.preferences&&this.setPreferences(e.preferences)}add(e,t,i){this.resolver.add(e,t,i)}async load(e,t){this._initialized||await this.init();let i=vs(e),s=U0(e).map(a=>typeof a!="string"?(this.resolver.add(a.src,a),a.src):(this.resolver.hasKey(a)||this.resolver.add(a,a),a)),n=this.resolver.resolve(s),o=await this._mapLoadToResolve(n,t);return i?o[s[0]]:o}addBundle(e,t){this.resolver.addBundle(e,t)}async loadBundle(e,t){this._initialized||await this.init();let i=!1;typeof e=="string"&&(i=!0,e=[e]);let s=this.resolver.resolveBundle(e),n={},o=Object.keys(s),a=0,l=0,c=()=>{t?.(++a/l)},h=o.map(d=>{let p=s[d];return l+=Object.keys(p).length,this._mapLoadToResolve(p,c).then(g=>{n[d]=g})});return await Promise.all(h),i?n[e[0]]:n}async backgroundLoad(e){this._initialized||await this.init(),typeof e=="string"&&(e=[e]);let t=this.resolver.resolve(e);this._backgroundLoader.add(Object.values(t))}async backgroundLoadBundle(e){this._initialized||await this.init(),typeof e=="string"&&(e=[e]);let t=this.resolver.resolveBundle(e);Object.values(t).forEach(i=>{this._backgroundLoader.add(Object.values(i))})}reset(){this.resolver.reset(),this.loader.reset(),this.cache.reset(),this._initialized=!1}get(e){if(typeof e=="string")return tn.get(e);let t={};for(let i=0;i{let c=n[a.src],h=[a.src];a.alias&&h.push(...a.alias),o[s[l]]=c,tn.set(h,c)}),o}async unload(e){this._initialized||await this.init();let t=U0(e).map(s=>typeof s!="string"?s.src:s),i=this.resolver.resolve(t);await this._unloadFromResolved(i)}async unloadBundle(e){this._initialized||await this.init(),e=U0(e);let t=this.resolver.resolveBundle(e),i=Object.keys(t).map(s=>this._unloadFromResolved(t[s]));await Promise.all(i)}async _unloadFromResolved(e){let t=Object.values(e);t.forEach(i=>{tn.remove(i.src)}),await this.loader.unload(t)}get detections(){return this._detections}get preferWorkers(){return xs.config.preferWorkers}set preferWorkers(e){ae.deprecation("7.2.0","Assets.prefersWorkers is deprecated, use Assets.setPreferences({ preferWorkers: true }) instead."),this.setPreferences({preferWorkers:e})}setPreferences(e){this.loader.parsers.forEach(t=>{t.config&&Object.keys(t.config).filter(i=>i in e).forEach(i=>{t.config[i]=e[i]})})}},Ds=new ud;te.handleByList(Z.LoadParser,Ds.loader.parsers).handleByList(Z.ResolveParser,Ds.resolver.parsers).handleByList(Z.CacheParser,Ds.cache.parsers).handleByList(Z.DetectionParser,Ds.detections);var L2={extension:Z.CacheParser,test:r=>Array.isArray(r)&&r.every(e=>e instanceof Se),getCacheableAssets:(r,e)=>{let t={};return r.forEach(i=>{e.forEach((s,n)=>{t[i+(n===0?"":n+1)]=s})}),t}};te.add(L2);var M2={extension:{type:Z.DetectionParser,priority:1},test:async()=>{if(!globalThis.createImageBitmap)return!1;let e=await K.ADAPTER.fetch("data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=").then(t=>t.blob());return createImageBitmap(e).then(()=>!0,()=>!1)},add:async r=>[...r,"avif"],remove:async r=>r.filter(e=>e!=="avif")};te.add(M2);var N2={extension:{type:Z.DetectionParser,priority:0},test:async()=>{if(!globalThis.createImageBitmap)return!1;let e=await K.ADAPTER.fetch("data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=").then(t=>t.blob());return createImageBitmap(e).then(()=>!0,()=>!1)},add:async r=>[...r,"webp"],remove:async r=>r.filter(e=>e!=="webp")};te.add(N2);var nf=["png","jpg","jpeg"],P2={extension:{type:Z.DetectionParser,priority:-1},test:()=>Promise.resolve(!0),add:async r=>[...r,...nf],remove:async r=>r.filter(e=>!nf.includes(e))};te.add(P2);var B2={extension:Z.ResolveParser,test:xs.test,parse:r=>({resolution:parseFloat(K.RETINA_PREFIX.exec(r)?.[1]??"1"),format:r.split(".").pop(),src:r})};te.add(B2);var V0=(r=>(r[r.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",r[r.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",r[r.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",r[r.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",r[r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",r[r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",r[r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",r[r.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",r[r.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",r[r.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",r[r.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",r[r.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",r[r.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",r[r.COMPRESSED_RGBA8_ETC2_EAC=37496]="COMPRESSED_RGBA8_ETC2_EAC",r[r.COMPRESSED_SRGB8_ETC2=37493]="COMPRESSED_SRGB8_ETC2",r[r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37497]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",r[r.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37494]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",r[r.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37495]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",r[r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",r[r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",r[r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",r[r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",r[r.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",r[r.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",r[r.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",r[r.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",r[r.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",r))(V0||{}),rn={33776:.5,33777:.5,33778:1,33779:1,35916:.5,35917:.5,35918:1,35919:1,37488:.5,37489:.5,37490:1,37491:1,37492:.5,37496:1,37493:.5,37497:1,37494:.5,37495:.5,35840:.5,35842:.5,35841:.25,35843:.25,36196:.5,35986:.5,35986:1,34798:1,37808:1};var bs,Ea;function of(){Ea={s3tc:bs.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:bs.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:bs.getExtension("WEBGL_compressed_texture_etc"),etc1:bs.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:bs.getExtension("WEBGL_compressed_texture_pvrtc")||bs.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:bs.getExtension("WEBGL_compressed_texture_atc"),astc:bs.getExtension("WEBGL_compressed_texture_astc")}}var R2={extension:{type:Z.DetectionParser,priority:2},test:async()=>{let e=K.ADAPTER.createCanvas().getContext("webgl");return e?(bs=e,!0):(console.warn("WebGL not available for compressed textures."),!1)},add:async r=>{Ea||of();let e=[];for(let t in Ea)Ea[t]&&e.push(t);return[...e,...r]},remove:async r=>(Ea||of(),r.filter(e=>!(e in Ea)))};te.add(R2);var Sa=class extends Q0{constructor(e,t={width:1,height:1,autoLoad:!0}){let i,s;typeof e=="string"?(i=e,s=new Uint8Array):(i=null,s=e),super(s,t),this.origin=i,this.buffer=s?new $s(s):null,this._load=null,this.loaded=!1,this.origin!==null&&t.autoLoad!==!1&&this.load(),this.origin===null&&this.buffer&&(this._load=Promise.resolve(this),this.loaded=!0,this.onBlobLoaded(this.buffer.rawBinaryData))}onBlobLoaded(e){}load(){return this._load?this._load:(this._load=fetch(this.origin).then(e=>e.blob()).then(e=>e.arrayBuffer()).then(e=>(this.data=new Uint32Array(e),this.buffer=new $s(e),this.loaded=!0,this.onBlobLoaded(e),this.update(),this)),this._load)}};var Es=class r extends Sa{constructor(e,t){super(e,t),this.format=t.format,this.levels=t.levels||1,this._width=t.width,this._height=t.height,this._extension=r._formatToExtension(this.format),(t.levelBuffers||this.buffer)&&(this._levelBuffers=t.levelBuffers||r._createLevelBuffers(e instanceof Uint8Array?e:this.buffer.uint8View,this.format,this.levels,4,4,this.width,this.height))}upload(e,t,i){let s=e.gl;if(!e.context.extensions[this._extension])throw new Error(`${this._extension} textures are not supported on the current machine`);if(!this._levelBuffers)return!1;for(let o=0,a=this.levels;o=33776&&e<=33779)return"s3tc";if(e>=37488&&e<=37497)return"etc";if(e>=35840&&e<=35843)return"pvrtc";if(e>=36196)return"etc1";if(e>=35986&&e<=34798)return"atc";throw new Error("Invalid (compressed) texture format given!")}static _createLevelBuffers(e,t,i,s,n,o,a){let l=new Array(i),c=e.byteOffset,h=o,d=a,p=h+s-1&~(s-1),g=d+n-1&~(n-1),v=p*g*rn[t];for(let C=0;C1?h:p,levelHeight:i>1?d:g,levelBuffer:new Uint8Array(e.buffer,c,v)},c+=v,h=h>>1||1,d=d>>1||1,p=h+s-1&~(s-1),g=d+n-1&~(n-1),v=p*g*rn[t];return l}};var O2=4,hd=124,sS=32,af=20,nS=542327876,dd={SIZE:1,FLAGS:2,HEIGHT:3,WIDTH:4,MIPMAP_COUNT:7,PIXEL_FORMAT:19},oS={SIZE:0,FLAGS:1,FOURCC:2,RGB_BITCOUNT:3,R_BIT_MASK:4,G_BIT_MASK:5,B_BIT_MASK:6,A_BIT_MASK:7},pd={DXGI_FORMAT:0,RESOURCE_DIMENSION:1,MISC_FLAG:2,ARRAY_SIZE:3,MISC_FLAGS2:4};var aS=1,lS=2,cS=4,uS=64,hS=512,dS=131072,pS=827611204,fS=861165636,gS=894720068,mS=808540228,yS=4,vS={[pS]:V0.COMPRESSED_RGBA_S3TC_DXT1_EXT,[fS]:V0.COMPRESSED_RGBA_S3TC_DXT3_EXT,[gS]:V0.COMPRESSED_RGBA_S3TC_DXT5_EXT},xS={70:V0.COMPRESSED_RGBA_S3TC_DXT1_EXT,71:V0.COMPRESSED_RGBA_S3TC_DXT1_EXT,73:V0.COMPRESSED_RGBA_S3TC_DXT3_EXT,74:V0.COMPRESSED_RGBA_S3TC_DXT3_EXT,76:V0.COMPRESSED_RGBA_S3TC_DXT5_EXT,77:V0.COMPRESSED_RGBA_S3TC_DXT5_EXT,72:V0.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,75:V0.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,78:V0.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT};function fd(r){let e=new Uint32Array(r);if(e[0]!==nS)throw new Error("Invalid DDS file magic word");let i=new Uint32Array(r,0,hd/Uint32Array.BYTES_PER_ELEMENT),s=i[dd.HEIGHT],n=i[dd.WIDTH],o=i[dd.MIPMAP_COUNT],a=new Uint32Array(r,dd.PIXEL_FORMAT*Uint32Array.BYTES_PER_ELEMENT,sS/Uint32Array.BYTES_PER_ELEMENT),l=a[aS];if(l&cS){let c=a[oS.FOURCC];if(c!==mS){let L=vS[c],T=O2+hd,W=new Uint8Array(r,T);return[new Es(W,{format:L,width:n,height:s,levels:o})]}let h=O2+hd,d=new Uint32Array(e.buffer,h,af/Uint32Array.BYTES_PER_ELEMENT),p=d[pd.DXGI_FORMAT],g=d[pd.RESOURCE_DIMENSION],v=d[pd.MISC_FLAG],C=d[pd.ARRAY_SIZE],w=xS[p];if(w===void 0)throw new Error(`DDSParser cannot parse texture data with DXGI format ${p}`);if(v===yS)throw new Error("DDSParser does not support cubemap textures");if(g===6)throw new Error("DDSParser does not supported 3D texture data");let k=new Array,B=O2+hd+af;if(C===1)k.push(new Uint8Array(r,B));else{let L=rn[w],T=0,W=n,j=s;for(let R=0;R>>1,j=j>>>1}let I=B;for(let R=0;Rnew Es(L,{format:w,width:n,height:s,levels:o}))}throw l&uS?new Error("DDSParser does not support uncompressed texture data."):l&hS?new Error("DDSParser does not supported YUV uncompressed texture data."):l&dS?new Error("DDSParser does not support single-channel (lumninance) texture data!"):l&lS?new Error("DDSParser does not support single-channel (alpha) texture data!"):new Error("DDSParser failed to load a texture file due to an unknown reason!")}var lf=[171,75,84,88,32,49,49,187,13,10,26,10],DS=67305985,ui={FILE_IDENTIFIER:0,ENDIANNESS:12,GL_TYPE:16,GL_TYPE_SIZE:20,GL_FORMAT:24,GL_INTERNAL_FORMAT:28,GL_BASE_INTERNAL_FORMAT:32,PIXEL_WIDTH:36,PIXEL_HEIGHT:40,PIXEL_DEPTH:44,NUMBER_OF_ARRAY_ELEMENTS:48,NUMBER_OF_FACES:52,NUMBER_OF_MIPMAP_LEVELS:56,BYTES_OF_KEY_VALUE_DATA:60},G2=64,gd={[Ce.UNSIGNED_BYTE]:1,[Ce.UNSIGNED_SHORT]:2,[Ce.INT]:4,[Ce.UNSIGNED_INT]:4,[Ce.FLOAT]:4,[Ce.HALF_FLOAT]:8},U2={[le.RGBA]:4,[le.RGB]:3,[le.RG]:2,[le.RED]:1,[le.LUMINANCE]:1,[le.LUMINANCE_ALPHA]:2,[le.ALPHA]:1},V2={[Ce.UNSIGNED_SHORT_4_4_4_4]:2,[Ce.UNSIGNED_SHORT_5_5_5_1]:2,[Ce.UNSIGNED_SHORT_5_6_5]:2};function md(r,e,t=!1){let i=new DataView(e);if(!bS(r,i))return null;let s=i.getUint32(ui.ENDIANNESS,!0)===DS,n=i.getUint32(ui.GL_TYPE,s),o=i.getUint32(ui.GL_FORMAT,s),a=i.getUint32(ui.GL_INTERNAL_FORMAT,s),l=i.getUint32(ui.PIXEL_WIDTH,s),c=i.getUint32(ui.PIXEL_HEIGHT,s)||1,h=i.getUint32(ui.PIXEL_DEPTH,s)||1,d=i.getUint32(ui.NUMBER_OF_ARRAY_ELEMENTS,s)||1,p=i.getUint32(ui.NUMBER_OF_FACES,s),g=i.getUint32(ui.NUMBER_OF_MIPMAP_LEVELS,s),v=i.getUint32(ui.BYTES_OF_KEY_VALUE_DATA,s);if(c===0||h!==1)throw new Error("Only 2D textures are supported");if(p!==1)throw new Error("CubeTextures are not supported by KTXLoader yet!");if(d!==1)throw new Error("WebGL does not support array textures");let C=4,w=4,k=l+3&-4,B=c+3&-4,L=new Array(d),T=l*c;n===0&&(T=k*B);let W;if(n!==0?gd[n]?W=gd[n]*U2[o]:W=V2[n]:W=rn[a],W===void 0)throw new Error("Unable to resolve the pixel format stored in the *.ktx file!");let j=t?SS(i,v,s):null,R=T*W,z=l,U=c,q=k,re=B,$=G2+v;for(let Q=0;Q1||n!==0?z:q,levelHeight:g>1||n!==0?U:re,levelBuffer:new Uint8Array(e,ye,R)},ye+=R}$+=Te+4,$=$%4!==0?$+4-$%4:$,z=z>>1||1,U=U>>1||1,q=z+C-1&~(C-1),re=U+w-1&~(w-1),R=q*re*W}return n!==0?{uncompressed:L.map(Q=>{let Te=Q[0].levelBuffer,ye=!1;return n===Ce.FLOAT?Te=new Float32Array(Q[0].levelBuffer.buffer,Q[0].levelBuffer.byteOffset,Q[0].levelBuffer.byteLength/4):n===Ce.UNSIGNED_INT?(ye=!0,Te=new Uint32Array(Q[0].levelBuffer.buffer,Q[0].levelBuffer.byteOffset,Q[0].levelBuffer.byteLength/4)):n===Ce.INT&&(ye=!0,Te=new Int32Array(Q[0].levelBuffer.buffer,Q[0].levelBuffer.byteOffset,Q[0].levelBuffer.byteLength/4)),{resource:new Q0(Te,{width:Q[0].levelWidth,height:Q[0].levelHeight}),type:n,format:ye?ES(o):o}}),kvData:j}:{compressed:L.map(Q=>new Es(null,{format:a,width:l,height:c,levels:g,levelBuffers:Q})),kvData:j}}function bS(r,e){for(let t=0;te-s){console.error("KTXLoader: keyAndValueByteSize out of bounds");break}let l=0;for(;l{let l=new we(a,{mipmap:x0.OFF,alphaMode:Qt.NO_PREMULTIPLIED_ALPHA,resolution:ae.getResolutionOfUrl(r),...e.data});return Li(l,t,r)});return o.length===1?o[0]:o},unload(r){Array.isArray(r)?r.forEach(e=>e.destroy(!0)):r.destroy(!0)}};te.add(z2);var W2={extension:{type:Z.LoadParser,priority:jt.High},name:"loadKTX",test(r){return A0(r,".ktx")},async load(r,e,t){let s=await(await K.ADAPTER.fetch(r)).arrayBuffer(),{compressed:n,uncompressed:o,kvData:a}=md(r,s),l=n??o,c={mipmap:x0.OFF,alphaMode:Qt.NO_PREMULTIPLIED_ALPHA,resolution:ae.getResolutionOfUrl(r),...e.data},h=l.map(d=>{l===o&&Object.assign(c,{type:d.type,format:d.format});let p=new we(d,c);return p.ktxKeyValueData=a,Li(p,t,r)});return h.length===1?h[0]:h},unload(r){Array.isArray(r)?r.forEach(e=>e.destroy(!0)):r.destroy(!0)}};te.add(W2);var H2={extension:Z.ResolveParser,test:r=>{let t=r.split("?")[0].split(".").pop();return["basis","ktx","dds"].includes(t)},parse:r=>{if(r.split("?")[0].split(".").pop()==="ktx"){let i=[".s3tc.ktx",".s3tc_sRGB.ktx",".etc.ktx",".etc1.ktx",".pvrt.ktx",".atc.ktx",".astc.ktx"];if(i.some(s=>r.endsWith(s)))return{resolution:parseFloat(K.RETINA_PREFIX.exec(r)?.[1]??"1"),format:i.find(s=>r.endsWith(s)),src:r}}return{resolution:parseFloat(K.RETINA_PREFIX.exec(r)?.[1]??"1"),format:r.split(".").pop(),src:r}}};te.add(H2);var CS=new Ie,wS=4,Dc=class{constructor(r){this.renderer=r}async image(r,e,t){let i=new Image;return i.src=await this.base64(r,e,t),i}async base64(r,e,t){let i=this.canvas(r);if(i.toBlob!==void 0)return new Promise((s,n)=>{i.toBlob(o=>{if(!o){n(new Error("ICanvas.toBlob failed!"));return}let a=new FileReader;a.onload=()=>s(a.result),a.onerror=n,a.readAsDataURL(o)},e,t)});if(i.toDataURL!==void 0)return i.toDataURL(e,t);if(i.convertToBlob!==void 0){let s=await i.convertToBlob({type:e,quality:t});return new Promise((n,o)=>{let a=new FileReader;a.onload=()=>n(a.result),a.onerror=o,a.readAsDataURL(s)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(r,e){let{pixels:t,width:i,height:s,flipY:n}=this._rawPixels(r,e);n&&Dc._flipY(t,i,s),Dc._unpremultiplyAlpha(t);let o=new ae.CanvasRenderTarget(i,s,1),a=new ImageData(new Uint8ClampedArray(t.buffer),i,s);return o.context.putImageData(a,0,0),o.canvas}pixels(r,e){let{pixels:t,width:i,height:s,flipY:n}=this._rawPixels(r,e);return n&&Dc._flipY(t,i,s),Dc._unpremultiplyAlpha(t),t}_rawPixels(r,e){let t=this.renderer;if(!t)throw new Error("The Extract has already been destroyed");let i,s=!1,n,o=!1;if(r&&(r instanceof Or?n=r:(n=t.generateTexture(r,{resolution:t.resolution,multisample:t.multisample}),o=!0)),n){if(i=n.baseTexture.resolution,e=e??n.frame,s=!1,!o){t.renderTexture.bind(n);let d=n.framebuffer.glFramebuffers[t.CONTEXT_UID];d.blitFramebuffer&&t.framebuffer.bind(d.blitFramebuffer)}}else i=t.resolution,e||(e=CS,e.width=t.width/i,e.height=t.height/i),s=!0,t.renderTexture.bind();let a=Math.round(e.width*i),l=Math.round(e.height*i),c=new Uint8Array(wS*a*l),h=t.gl;return h.readPixels(Math.round(e.x*i),Math.round(e.y*i),a,l,h.RGBA,h.UNSIGNED_BYTE,c),o&&n?.destroy(!0),{pixels:c,width:a,height:l,flipY:s}}destroy(){this.renderer=null}static _flipY(r,e,t){let i=e<<2,s=t>>1,n=new Uint8Array(i);for(let o=0;o=0&&a>=0&&s>=0&&n>=0)){e.length=0;return}let l=Math.ceil(2.3*Math.sqrt(o+a)),c=l*8+(s?4:0)+(n?4:0);if(e.length=c,c===0)return;if(l===0){e.length=8,e[0]=e[6]=t+s,e[1]=e[3]=i+n,e[2]=e[4]=t-s,e[5]=e[7]=i-n;return}let h=0,d=l*4+(s?2:0)+2,p=d,g=c;{let v=s+o,C=n,w=t+v,k=t-v,B=i+C;if(e[h++]=w,e[h++]=B,e[--d]=B,e[--d]=k,n){let L=i-C;e[p++]=k,e[p++]=L,e[--g]=L,e[--g]=w}}for(let v=1;v0||e&&i<=0){let s=t/2;for(let n=s+s%2;n=6){cf(t,!1);let o=[];for(let c=0;c=0&&n>=0&&o.push(t,i,t+s,i,t+s,i+n,t,i+n)},triangulate(r,e){let t=r.points,i=e.points;if(t.length===0)return;let s=i.length/2;i.push(t[0],t[1],t[2],t[3],t[6],t[7],t[4],t[5]),e.indices.push(s,s+1,s+2,s+1,s+2,s+3)}};var vd={build(r){sn.build(r)},triangulate(r,e){sn.triangulate(r,e)}};var z0=(r=>(r.MITER="miter",r.BEVEL="bevel",r.ROUND="round",r))(z0||{}),hi=(r=>(r.BUTT="butt",r.ROUND="round",r.SQUARE="square",r))(hi||{}),Ur={adaptive:!0,maxLength:10,minSegments:8,maxSegments:2048,epsilon:1e-4,_segmentsCount(r,e=20){if(!this.adaptive||!r||isNaN(r))return e;let t=Math.ceil(r/this.maxLength);return tthis.maxSegments&&(t=this.maxSegments),t}};var io=class{static curveTo(e,t,i,s,n,o){let a=o[o.length-2],c=o[o.length-1]-t,h=a-e,d=s-t,p=i-e,g=Math.abs(c*p-h*d);if(g<1e-8||n===0)return(o[o.length-2]!==e||o[o.length-1]!==t)&&o.push(e,t),null;let v=c*c+h*h,C=d*d+p*p,w=c*d+h*p,k=n*Math.sqrt(v)/g,B=n*Math.sqrt(C)/g,L=k*w/v,T=B*w/C,W=k*p+B*h,j=k*d+B*c,I=h*(B+L),R=c*(B+L),z=p*(k+T),U=d*(k+T),q=Math.atan2(R-j,I-W),re=Math.atan2(U-j,z-W);return{cx:W+e,cy:j+t,radius:n,startAngle:q,endAngle:re,anticlockwise:h*d>p*c}}static arc(e,t,i,s,n,o,a,l,c){let h=a-o,d=Ur._segmentsCount(Math.abs(h)*n,Math.ceil(Math.abs(h)/Ys)*40),p=h/(d*2),g=p*2,v=Math.cos(p),C=Math.sin(p),w=d-1,k=w%1/w;for(let B=0;B<=w;++B){let L=B+k*B,T=p+o+g*L,W=Math.cos(T),j=-Math.sin(T);c.push((v*W+C*j)*n+i,(v*-j+C*W)*n+s)}}};var wa=class{constructor(){this.reset()}begin(e,t,i){this.reset(),this.style=e,this.start=t,this.attribStart=i}end(e,t){this.attribSize=t-this.attribStart,this.size=e-this.start}reset(){this.style=null,this.size=0,this.start=0,this.attribStart=0,this.attribSize=0}};var Ta=class r{static curveLength(e,t,i,s,n,o,a,l){let h=0,d=0,p=0,g=0,v=0,C=0,w=0,k=0,B=0,L=0,T=0,W=e,j=t;for(let I=1;I<=10;++I)d=I/10,p=d*d,g=p*d,v=1-d,C=v*v,w=C*v,k=w*e+3*C*d*i+3*v*p*n+g*a,B=w*t+3*C*d*s+3*v*p*o+g*l,L=W-k,T=j-B,W=k,j=B,h+=Math.sqrt(L*L+T*T);return h}static curveTo(e,t,i,s,n,o,a){let l=a[a.length-2],c=a[a.length-1];a.length-=2;let h=Ur._segmentsCount(r.curveLength(l,c,e,t,i,s,n,o)),d=0,p=0,g=0,v=0,C=0;a.push(l,c);for(let w=1,k=0;w<=h;++w)k=w/h,d=1-k,p=d*d,g=p*d,v=k*k,C=v*k,a.push(g*l+3*p*k*e+3*d*v*i+C*n,g*c+3*p*k*t+3*d*v*s+C*o)}};function uf(r,e,t,i,s,n,o,a){let l=r-t*s,c=e-i*s,h=r+t*n,d=e+i*n,p,g;o?(p=i,g=-t):(p=-i,g=t);let v=l+p,C=c+g,w=h+p,k=d+g;return a.push(v,C,w,k),2}function so(r,e,t,i,s,n,o,a){let l=t-r,c=i-e,h=Math.atan2(l,c),d=Math.atan2(s-r,n-e);a&&hd&&(d+=Math.PI*2);let p=h,g=d-h,v=Math.abs(g),C=Math.sqrt(l*l+c*c),w=(15*v*Math.sqrt(C)/Math.PI>>0)+1,k=g/w;if(p+=k,a){o.push(r,e,t,i);for(let B=1,L=p;B=0&&(n.join===z0.ROUND?p+=so(L,T,L-I*$,T-R*$,L-z*$,T-U*$,h,!1)+4:p+=2,h.push(L-z*Q,T-U*Q,L+z*$,T+U*$));continue}let I0=(-I+k)*(-R+T)-(-I+L)*(-R+B),de=(-z+W)*(-U+T)-(-z+L)*(-U+j),oe=(De*de-Mt*I0)/gt,ve=(rt*I0-_e*de)/gt,Yt=(oe-L)*(oe-L)+(ve-T)*(ve-T),Ut=L+(oe-L)*$,r0=T+(ve-T)*$,Ft=L-(oe-L)*Q,it=T-(ve-T)*Q,p0=Math.min(De*De+_e*_e,Mt*Mt+rt*rt),i0=Dt?$:Q,C0=p0+i0*i0*C,Zr=Yt<=C0,wt=n.join;if(wt===z0.MITER&&Yt/C>w&&(wt=z0.BEVEL),Zr)switch(wt){case z0.MITER:{h.push(Ut,r0,Ft,it);break}case z0.BEVEL:{Dt?h.push(Ut,r0,L+I*Q,T+R*Q,Ut,r0,L+z*Q,T+U*Q):h.push(L-I*$,T-R*$,Ft,it,L-z*$,T-U*$,Ft,it),p+=2;break}case z0.ROUND:{Dt?(h.push(Ut,r0,L+I*Q,T+R*Q),p+=so(L,T,L+I*Q,T+R*Q,L+z*Q,T+U*Q,h,!0)+4,h.push(Ut,r0,L+z*Q,T+U*Q)):(h.push(L-I*$,T-R*$,Ft,it),p+=so(L,T,L-I*$,T-R*$,L-z*$,T-U*$,h,!1)+4,h.push(L-z*$,T-U*$,Ft,it));break}}else{switch(h.push(L-I*$,T-R*$,L+I*Q,T+R*Q),wt){case z0.MITER:{Dt?h.push(Ft,it,Ft,it):h.push(Ut,r0,Ut,r0),p+=2;break}case z0.ROUND:{Dt?p+=so(L,T,L+I*Q,T+R*Q,L+z*Q,T+U*Q,h,!0)+2:p+=so(L,T,L-I*$,T-R*$,L-z*$,T-U*$,h,!1)+2;break}}h.push(L-z*$,T-U*$,L+z*Q,T+U*Q),p+=2}}k=i[(d-2)*2],B=i[(d-2)*2+1],L=i[(d-1)*2],T=i[(d-1)*2+1],I=-(B-T),R=k-L,q=Math.sqrt(I*I+R*R),I/=q,R/=q,I*=v,R*=v,h.push(L-I*$,T-R*$,L+I*Q,T+R*Q),l||(n.cap===hi.ROUND?p+=so(L-I*($-Q)*.5,T-R*($-Q)*.5,L-I*$,T-R*$,L+I*Q,T+R*Q,h,!1)+2:n.cap===hi.SQUARE&&(p+=uf(L,T,I,R,$,Q,!1,h)));let Te=e.indices,ye=Ur.epsilon*Ur.epsilon;for(let xe=g;xe0&&(this.invalidate(),this.clearDirty++,this.graphicsData.length=0),this}drawShape(r,e=null,t=null,i=null){let s=new Aa(r,e,t,i);return this.graphicsData.push(s),this.dirty++,this}drawHole(r,e=null){if(!this.graphicsData.length)return null;let t=new Aa(r,null,null,e),i=this.graphicsData[this.graphicsData.length-1];return t.lineStyle=i.lineStyle,i.holes.push(t),this.dirty++,this}destroy(){super.destroy();for(let r=0;r0&&(t=this.batches[this.batches.length-1],i=t.style);for(let a=this.shapeIndex;a65535;this.indicesUint16&&this.indices.length===this.indicesUint16.length&&o===this.indicesUint16.BYTES_PER_ELEMENT>2?this.indicesUint16.set(this.indices):this.indicesUint16=o?new Uint32Array(this.indices):new Uint16Array(this.indices),this.batchable=this.isBatchable(),this.batchable?this.packBatches():this.buildDrawCalls()}_compareStyles(r,e){return!(!r||!e||r.texture.baseTexture!==e.texture.baseTexture||r.color+r.alpha!==e.color+e.alpha||!!r.native!=!!e.native)}validateBatching(){if(this.dirty===this.cacheDirty||!this.graphicsData.length)return!1;for(let r=0,e=this.graphicsData.length;r65535*2)return!1;let r=this.batches;for(let e=0;e0&&(i=Fa.pop(),i||(i=new qs,i.texArray=new Xs),this.drawCalls.push(i)),i.start=c,i.size=0,i.texArray.count=0,i.type=l),v.touched=1,v._batchEnabled=r,v._batchLocation=s,v.wrapMode=dr.REPEAT,i.texArray.elements[i.texArray.count++]=v,s++)),i.size+=d.size,c+=d.size,o=v._batchLocation,this.addColors(e,g.color,g.alpha,d.attribSize,d.attribStart),this.addTextureIds(t,o,d.attribSize,d.attribStart)}we._globalBatch=r,this.packAttributes()}packAttributes(){let r=this.points,e=this.uvs,t=this.colors,i=this.textureIds,s=new ArrayBuffer(r.length*3*4),n=new Float32Array(s),o=new Uint32Array(s),a=0;for(let l=0;l0&&r.alpha>0;return t?(r.matrix&&(r.matrix=r.matrix.clone(),r.matrix.invert()),Object.assign(this._lineStyle,{visible:t},r)):this._lineStyle.reset(),this}startPoly(){if(this.currentPath){let r=this.currentPath.points,e=this.currentPath.points.length;e>2&&(this.drawShape(this.currentPath),this.currentPath=new hs,this.currentPath.closeStroke=!1,this.currentPath.points.push(r[e-2],r[e-1]))}else this.currentPath=new hs,this.currentPath.closeStroke=!1}finishPoly(){this.currentPath&&(this.currentPath.points.length>2?(this.drawShape(this.currentPath),this.currentPath=null):this.currentPath.points.length=0)}moveTo(r,e){return this.startPoly(),this.currentPath.points[0]=r,this.currentPath.points[1]=e,this}lineTo(r,e){this.currentPath||this.moveTo(0,0);let t=this.currentPath.points,i=t[t.length-2],s=t[t.length-1];return(i!==r||s!==e)&&t.push(r,e),this}_initCurve(r=0,e=0){this.currentPath?this.currentPath.points.length===0&&(this.currentPath.points=[r,e]):this.moveTo(r,e)}quadraticCurveTo(r,e,t,i){this._initCurve();let s=this.currentPath.points;return s.length===0&&this.moveTo(0,0),_a.curveTo(r,e,t,i,s),this}bezierCurveTo(r,e,t,i,s,n){return this._initCurve(),Ta.curveTo(r,e,t,i,s,n,this.currentPath.points),this}arcTo(r,e,t,i,s){this._initCurve(r,e);let n=this.currentPath.points,o=io.curveTo(r,e,t,i,s,n);if(o){let{cx:a,cy:l,radius:c,startAngle:h,endAngle:d,anticlockwise:p}=o;this.arc(a,l,c,h,d,p)}return this}arc(r,e,t,i,s,n=!1){if(i===s)return this;if(!n&&s<=i?s+=Ys:n&&i<=s&&(i+=Ys),s-i===0)return this;let a=r+Math.cos(i)*t,l=e+Math.sin(i)*t,c=this._geometry.closePointEps,h=this.currentPath?this.currentPath.points:null;if(h){let d=Math.abs(h[h.length-2]-a),p=Math.abs(h[h.length-1]-l);d0;return t?(r.matrix&&(r.matrix=r.matrix.clone(),r.matrix.invert()),Object.assign(this._fillStyle,{visible:t},r)):this._fillStyle.reset(),this}endFill(){return this.finishPoly(),this._fillStyle.reset(),this}drawRect(r,e,t,i){return this.drawShape(new Ie(r,e,t,i))}drawRoundedRect(r,e,t,i,s){return this.drawShape(new Hl(r,e,t,i,s))}drawCircle(r,e,t){return this.drawShape(new zl(r,e,t))}drawEllipse(r,e,t,i){return this.drawShape(new Wl(r,e,t,i))}drawPolygon(...r){let e,t=!0,i=r[0];i.points?(t=i.closeStroke,e=i.points):Array.isArray(r[0])?e=r[0]:e=r;let s=new hs(e);return s.closeStroke=t,this.drawShape(s),this}drawShape(r){return this._holeMode?this._geometry.drawHole(r,this._matrix):this._geometry.drawShape(r,this._fillStyle.clone(),this._lineStyle.clone(),this._matrix),this}clear(){return this._geometry.clear(),this._lineStyle.reset(),this._fillStyle.reset(),this._boundsID++,this._matrix=null,this._holeMode=!1,this.currentPath=null,this}isFastRect(){let r=this._geometry.graphicsData;return r.length===1&&r[0].shape.type===vt.RECT&&!r[0].matrix&&!r[0].holes.length&&!(r[0].lineStyle.visible&&r[0].lineStyle.width)}_render(r){this.finishPoly();let e=this._geometry;e.updateBatches(),e.batchable?(this.batchDirty!==e.batchDirty&&this._populateBatches(),this._renderBatched(r)):(r.batch.flush(),this._renderDirect(r))}_populateBatches(){let r=this._geometry,e=this.blendMode,t=r.batches.length;this.batchTint=-1,this._transformID=-1,this.batchDirty=r.batchDirty,this.batches.length=t,this.vertexData=new Float32Array(r.points);for(let i=0;i{let t=URL.createObjectURL(new Blob([JE.code],{type:"application/javascript"})),i=new Worker(t);i.addEventListener("message",s=>{i.terminate(),URL.revokeObjectURL(t),e(s.data)})}),this._isImageBitmapSupported)}loadImageBitmap(e){return this._run("loadImageBitmap",[e])}async _initWorkers(){this._initialized||(this._initialized=!0)}getWorker(){T2===void 0&&(T2=navigator.hardwareConcurrency||4);let e=this.workerPool.pop();return!e&&this._createdWorkers{this.complete(t.data),this.returnWorker(t.target),this.next()})),e}returnWorker(e){this.workerPool.push(e)}complete(e){e.error!==void 0?this.resolveHash[e.uuid].reject(e.error):this.resolveHash[e.uuid].resolve(e.data),this.resolveHash[e.uuid]=null}async _run(e,t){await this._initWorkers();let i=new Promise((s,n)=>{this.queue.push({id:e,arguments:t,resolve:s,reject:n})});return this.next(),i}next(){if(!this.queue.length)return;let e=this.getWorker();if(!e)return;let t=this.queue.pop(),i=t.id;this.resolveHash[sf]={resolve:t.resolve,reject:t.reject},e.postMessage({data:t.arguments,uuid:sf++,id:i})}},A2=new F2;function Li(r,e,t){let i=new Se(r);return i.baseTexture.on("dispose",()=>{delete e.promiseCache[t]}),i}var tS=[".jpeg",".jpg",".png",".webp",".avif"],rS=["image/jpeg","image/png","image/webp","image/avif"];async function k2(r){let e=await K.ADAPTER.fetch(r);if(!e.ok)throw new Error(`[loadImageBitmap] Failed to fetch ${r}: ${e.status} ${e.statusText}`);let t=await e.blob();return await createImageBitmap(t)}var xs={name:"loadTextures",extension:{type:Z.LoadParser,priority:jt.High},config:{preferWorkers:!0,preferCreateImageBitmap:!0,crossOrigin:"anonymous"},test(r){return Gr(r,rS)||A0(r,tS)},async load(r,e,t){let i=null;globalThis.createImageBitmap&&this.config.preferCreateImageBitmap?this.config.preferWorkers&&await A2.isImageBitmapSupported()?i=await A2.loadImageBitmap(r):i=await k2(r):i=await new Promise(n=>{i=new Image,i.crossOrigin=this.config.crossOrigin,i.src=r,i.complete?n(i):i.onload=()=>{n(i)}});let s=new we(i,{resolution:ae.getResolutionOfUrl(r),...e.data});return s.resource.src=r,Li(s,t,r)},unload(r){r.destroy(!0)}};te.add(xs);var iS=".svg",sS="image/svg+xml",I2={extension:{type:Z.LoadParser,priority:jt.High},name:"loadSVG",test(r){return Gr(r,sS)||A0(r,iS)},async testParse(r){return ms.test(r)},async parse(r,e,t){let i=new ms(r,e?.data?.resourceOptions);await i.load();let s=new we(i,{resolution:ae.getResolutionOfUrl(r),...e?.data});return s.resource.src=r,Li(s,t,r)},async load(r,e){return(await K.ADAPTER.fetch(r)).text()},unload:xs.unload};te.add(I2);var cd=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(e,t)=>`${e}${this._bundleIdConnector}${t}`,extractAssetIdFromBundle:(e,t)=>t.replace(`${e}${this._bundleIdConnector}`,"")},this._bundleIdConnector=this._defaultBundleIdentifierOptions.connector,this._createBundleAssetId=this._defaultBundleIdentifierOptions.createBundleAssetId,this._extractAssetIdFromBundle=this._defaultBundleIdentifierOptions.extractAssetIdFromBundle,this._assetMap={},this._preferredOrder=[],this._parsers=[],this._resolverHash={},this._bundles={}}setBundleIdentifier(e){if(this._bundleIdConnector=e.connector??this._bundleIdConnector,this._createBundleAssetId=e.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=e.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...e){e.forEach(t=>{this._preferredOrder.push(t),t.priority||(t.priority=Object.keys(t.params))}),this._resolverHash={}}set basePath(e){this._basePath=e}get basePath(){return this._basePath}set rootPath(e){this._rootPath=e}get rootPath(){return this._rootPath}get parsers(){return this._parsers}reset(){this.setBundleIdentifier(this._defaultBundleIdentifierOptions),this._assetMap={},this._preferredOrder=[],this._resolverHash={},this._rootPath=null,this._basePath=null,this._manifest=null,this._bundles={},this._defaultSearchParams=null}setDefaultSearchParams(e){if(typeof e=="string")this._defaultSearchParams=e;else{let t=e;this._defaultSearchParams=Object.keys(t).map(i=>`${encodeURIComponent(i)}=${encodeURIComponent(t[i])}`).join("&")}}addManifest(e){this._manifest&&console.warn("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=e,e.bundles.forEach(t=>{this.addBundle(t.name,t.assets)})}addBundle(e,t){let i=[];Array.isArray(t)?t.forEach(s=>{if(typeof s.name=="string"){let n=this._createBundleAssetId(e,s.name);i.push(n),this.add([s.name,n],s.srcs,s.data)}else{let n=s.name.map(o=>this._createBundleAssetId(e,o));n.forEach(o=>{i.push(o)}),this.add([...s.name,...n],s.srcs)}}):Object.keys(t).forEach(s=>{i.push(this._createBundleAssetId(e,s)),this.add([s,this._createBundleAssetId(e,s)],t[s])}),this._bundles[e]=i}add(e,t,i){let s=U0(e);s.forEach(o=>{this.hasKey(o)&&console.warn(`[Resolver] already has key: ${o} overwriting`)}),Array.isArray(t)||(typeof t=="string"?t=ad(t):t=[t]);let n=t.map(o=>{let a=o;if(typeof o=="string"){let l=!1;for(let c=0;c{this._assetMap[o]=n})}resolveBundle(e){let t=vs(e);e=U0(e);let i={};return e.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let l in o){let c=o[l];a[this._extractAssetIdFromBundle(s,l)]=c}i[s]=a}}),t?i[e[0]]:i}resolveUrl(e){let t=this.resolve(e);if(typeof e!="string"){let i={};for(let s in t)i[s]=t[s].src;return i}return t.src}resolve(e){let t=vs(e);e=U0(e);let i={};return e.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let n=this._assetMap[s],o=this._getPreferredOrder(n),a=n[0];o?.priority.forEach(l=>{o.params[l].forEach(c=>{let h=n.filter(d=>d[l]?d[l]===c:!1);h.length&&(n=h)})}),this._resolverHash[s]=n[0]??a}else{let n=s;(this._basePath||this._rootPath)&&(n=ae.path.toAbsolute(n,this._basePath,this._rootPath)),n=this._appendDefaultSearchParams(n),this._resolverHash[s]={src:n}}i[s]=this._resolverHash[s]}),t?i[e[0]]:i}hasKey(e){return!!this._assetMap[e]}hasBundle(e){return!!this._bundles[e]}_getPreferredOrder(e){for(let t=0;tn.params.format.includes(i.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(e){if(!this._defaultSearchParams)return e;let t=/\?/.test(e)?"&":"?";return`${e}${t}${this._defaultSearchParams}`}};var ud=class{constructor(){this._detections=[],this._initialized=!1,this.resolver=new cd,this.loader=new ld,this.cache=tn,this._backgroundLoader=new od(this.loader),this._backgroundLoader.active=!0,this.reset()}async init(e={}){if(this._initialized){console.warn("[Assets]AssetManager already initialized, did you load before calling this Asset.init()?");return}if(this._initialized=!0,e.defaultSearchParams&&this.resolver.setDefaultSearchParams(e.defaultSearchParams),e.basePath&&(this.resolver.basePath=e.basePath),e.bundleIdentifier&&this.resolver.setBundleIdentifier(e.bundleIdentifier),e.manifest){let n=e.manifest;typeof n=="string"&&(n=await this.load(n)),this.resolver.addManifest(n)}let t=e.texturePreference?.resolution??1,i=typeof t=="number"?[t]:t,s=[];if(e.texturePreference?.format){let n=e.texturePreference?.format;s=typeof n=="string"?[n]:n;for(let o of this._detections)await o.test()||(s=await o.remove(s))}else for(let n of this._detections)await n.test()&&(s=await n.add(s));this.resolver.prefer({params:{format:s,resolution:i}}),e.preferences&&this.setPreferences(e.preferences)}add(e,t,i){this.resolver.add(e,t,i)}async load(e,t){this._initialized||await this.init();let i=vs(e),s=U0(e).map(a=>typeof a!="string"?(this.resolver.add(a.src,a),a.src):(this.resolver.hasKey(a)||this.resolver.add(a,a),a)),n=this.resolver.resolve(s),o=await this._mapLoadToResolve(n,t);return i?o[s[0]]:o}addBundle(e,t){this.resolver.addBundle(e,t)}async loadBundle(e,t){this._initialized||await this.init();let i=!1;typeof e=="string"&&(i=!0,e=[e]);let s=this.resolver.resolveBundle(e),n={},o=Object.keys(s),a=0,l=0,c=()=>{t?.(++a/l)},h=o.map(d=>{let p=s[d];return l+=Object.keys(p).length,this._mapLoadToResolve(p,c).then(g=>{n[d]=g})});return await Promise.all(h),i?n[e[0]]:n}async backgroundLoad(e){this._initialized||await this.init(),typeof e=="string"&&(e=[e]);let t=this.resolver.resolve(e);this._backgroundLoader.add(Object.values(t))}async backgroundLoadBundle(e){this._initialized||await this.init(),typeof e=="string"&&(e=[e]);let t=this.resolver.resolveBundle(e);Object.values(t).forEach(i=>{this._backgroundLoader.add(Object.values(i))})}reset(){this.resolver.reset(),this.loader.reset(),this.cache.reset(),this._initialized=!1}get(e){if(typeof e=="string")return tn.get(e);let t={};for(let i=0;i{let c=n[a.src],h=[a.src];a.alias&&h.push(...a.alias),o[s[l]]=c,tn.set(h,c)}),o}async unload(e){this._initialized||await this.init();let t=U0(e).map(s=>typeof s!="string"?s.src:s),i=this.resolver.resolve(t);await this._unloadFromResolved(i)}async unloadBundle(e){this._initialized||await this.init(),e=U0(e);let t=this.resolver.resolveBundle(e),i=Object.keys(t).map(s=>this._unloadFromResolved(t[s]));await Promise.all(i)}async _unloadFromResolved(e){let t=Object.values(e);t.forEach(i=>{tn.remove(i.src)}),await this.loader.unload(t)}get detections(){return this._detections}get preferWorkers(){return xs.config.preferWorkers}set preferWorkers(e){ae.deprecation("7.2.0","Assets.prefersWorkers is deprecated, use Assets.setPreferences({ preferWorkers: true }) instead."),this.setPreferences({preferWorkers:e})}setPreferences(e){this.loader.parsers.forEach(t=>{t.config&&Object.keys(t.config).filter(i=>i in e).forEach(i=>{t.config[i]=e[i]})})}},Ds=new ud;te.handleByList(Z.LoadParser,Ds.loader.parsers).handleByList(Z.ResolveParser,Ds.resolver.parsers).handleByList(Z.CacheParser,Ds.cache.parsers).handleByList(Z.DetectionParser,Ds.detections);var L2={extension:Z.CacheParser,test:r=>Array.isArray(r)&&r.every(e=>e instanceof Se),getCacheableAssets:(r,e)=>{let t={};return r.forEach(i=>{e.forEach((s,n)=>{t[i+(n===0?"":n+1)]=s})}),t}};te.add(L2);var M2={extension:{type:Z.DetectionParser,priority:1},test:async()=>{if(!globalThis.createImageBitmap)return!1;let e=await K.ADAPTER.fetch("data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=").then(t=>t.blob());return createImageBitmap(e).then(()=>!0,()=>!1)},add:async r=>[...r,"avif"],remove:async r=>r.filter(e=>e!=="avif")};te.add(M2);var N2={extension:{type:Z.DetectionParser,priority:0},test:async()=>{if(!globalThis.createImageBitmap)return!1;let e=await K.ADAPTER.fetch("data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=").then(t=>t.blob());return createImageBitmap(e).then(()=>!0,()=>!1)},add:async r=>[...r,"webp"],remove:async r=>r.filter(e=>e!=="webp")};te.add(N2);var nf=["png","jpg","jpeg"],P2={extension:{type:Z.DetectionParser,priority:-1},test:()=>Promise.resolve(!0),add:async r=>[...r,...nf],remove:async r=>r.filter(e=>!nf.includes(e))};te.add(P2);var B2={extension:Z.ResolveParser,test:xs.test,parse:r=>({resolution:parseFloat(K.RETINA_PREFIX.exec(r)?.[1]??"1"),format:r.split(".").pop(),src:r})};te.add(B2);var V0=(r=>(r[r.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",r[r.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",r[r.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",r[r.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",r[r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",r[r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",r[r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",r[r.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",r[r.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",r[r.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",r[r.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",r[r.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",r[r.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",r[r.COMPRESSED_RGBA8_ETC2_EAC=37496]="COMPRESSED_RGBA8_ETC2_EAC",r[r.COMPRESSED_SRGB8_ETC2=37493]="COMPRESSED_SRGB8_ETC2",r[r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37497]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",r[r.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37494]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",r[r.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37495]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",r[r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",r[r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",r[r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",r[r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",r[r.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",r[r.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",r[r.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",r[r.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",r[r.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",r))(V0||{}),rn={33776:.5,33777:.5,33778:1,33779:1,35916:.5,35917:.5,35918:1,35919:1,37488:.5,37489:.5,37490:1,37491:1,37492:.5,37496:1,37493:.5,37497:1,37494:.5,37495:.5,35840:.5,35842:.5,35841:.25,35843:.25,36196:.5,35986:.5,35986:1,34798:1,37808:1};var bs,Ea;function of(){Ea={s3tc:bs.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:bs.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:bs.getExtension("WEBGL_compressed_texture_etc"),etc1:bs.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:bs.getExtension("WEBGL_compressed_texture_pvrtc")||bs.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:bs.getExtension("WEBGL_compressed_texture_atc"),astc:bs.getExtension("WEBGL_compressed_texture_astc")}}var R2={extension:{type:Z.DetectionParser,priority:2},test:async()=>{let e=K.ADAPTER.createCanvas().getContext("webgl");return e?(bs=e,!0):(console.warn("WebGL not available for compressed textures."),!1)},add:async r=>{Ea||of();let e=[];for(let t in Ea)Ea[t]&&e.push(t);return[...e,...r]},remove:async r=>(Ea||of(),r.filter(e=>!(e in Ea)))};te.add(R2);var Sa=class extends Q0{constructor(e,t={width:1,height:1,autoLoad:!0}){let i,s;typeof e=="string"?(i=e,s=new Uint8Array):(i=null,s=e),super(s,t),this.origin=i,this.buffer=s?new $s(s):null,this._load=null,this.loaded=!1,this.origin!==null&&t.autoLoad!==!1&&this.load(),this.origin===null&&this.buffer&&(this._load=Promise.resolve(this),this.loaded=!0,this.onBlobLoaded(this.buffer.rawBinaryData))}onBlobLoaded(e){}load(){return this._load?this._load:(this._load=fetch(this.origin).then(e=>e.blob()).then(e=>e.arrayBuffer()).then(e=>(this.data=new Uint32Array(e),this.buffer=new $s(e),this.loaded=!0,this.onBlobLoaded(e),this.update(),this)),this._load)}};var Es=class r extends Sa{constructor(e,t){super(e,t),this.format=t.format,this.levels=t.levels||1,this._width=t.width,this._height=t.height,this._extension=r._formatToExtension(this.format),(t.levelBuffers||this.buffer)&&(this._levelBuffers=t.levelBuffers||r._createLevelBuffers(e instanceof Uint8Array?e:this.buffer.uint8View,this.format,this.levels,4,4,this.width,this.height))}upload(e,t,i){let s=e.gl;if(!e.context.extensions[this._extension])throw new Error(`${this._extension} textures are not supported on the current machine`);if(!this._levelBuffers)return!1;for(let o=0,a=this.levels;o=33776&&e<=33779)return"s3tc";if(e>=37488&&e<=37497)return"etc";if(e>=35840&&e<=35843)return"pvrtc";if(e>=36196)return"etc1";if(e>=35986&&e<=34798)return"atc";throw new Error("Invalid (compressed) texture format given!")}static _createLevelBuffers(e,t,i,s,n,o,a){let l=new Array(i),c=e.byteOffset,h=o,d=a,p=h+s-1&~(s-1),g=d+n-1&~(n-1),v=p*g*rn[t];for(let C=0;C1?h:p,levelHeight:i>1?d:g,levelBuffer:new Uint8Array(e.buffer,c,v)},c+=v,h=h>>1||1,d=d>>1||1,p=h+s-1&~(s-1),g=d+n-1&~(n-1),v=p*g*rn[t];return l}};var O2=4,hd=124,nS=32,af=20,oS=542327876,dd={SIZE:1,FLAGS:2,HEIGHT:3,WIDTH:4,MIPMAP_COUNT:7,PIXEL_FORMAT:19},aS={SIZE:0,FLAGS:1,FOURCC:2,RGB_BITCOUNT:3,R_BIT_MASK:4,G_BIT_MASK:5,B_BIT_MASK:6,A_BIT_MASK:7},pd={DXGI_FORMAT:0,RESOURCE_DIMENSION:1,MISC_FLAG:2,ARRAY_SIZE:3,MISC_FLAGS2:4};var lS=1,cS=2,uS=4,hS=64,dS=512,pS=131072,fS=827611204,gS=861165636,mS=894720068,yS=808540228,vS=4,xS={[fS]:V0.COMPRESSED_RGBA_S3TC_DXT1_EXT,[gS]:V0.COMPRESSED_RGBA_S3TC_DXT3_EXT,[mS]:V0.COMPRESSED_RGBA_S3TC_DXT5_EXT},DS={70:V0.COMPRESSED_RGBA_S3TC_DXT1_EXT,71:V0.COMPRESSED_RGBA_S3TC_DXT1_EXT,73:V0.COMPRESSED_RGBA_S3TC_DXT3_EXT,74:V0.COMPRESSED_RGBA_S3TC_DXT3_EXT,76:V0.COMPRESSED_RGBA_S3TC_DXT5_EXT,77:V0.COMPRESSED_RGBA_S3TC_DXT5_EXT,72:V0.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,75:V0.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,78:V0.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT};function fd(r){let e=new Uint32Array(r);if(e[0]!==oS)throw new Error("Invalid DDS file magic word");let i=new Uint32Array(r,0,hd/Uint32Array.BYTES_PER_ELEMENT),s=i[dd.HEIGHT],n=i[dd.WIDTH],o=i[dd.MIPMAP_COUNT],a=new Uint32Array(r,dd.PIXEL_FORMAT*Uint32Array.BYTES_PER_ELEMENT,nS/Uint32Array.BYTES_PER_ELEMENT),l=a[lS];if(l&uS){let c=a[aS.FOURCC];if(c!==yS){let L=xS[c],T=O2+hd,W=new Uint8Array(r,T);return[new Es(W,{format:L,width:n,height:s,levels:o})]}let h=O2+hd,d=new Uint32Array(e.buffer,h,af/Uint32Array.BYTES_PER_ELEMENT),p=d[pd.DXGI_FORMAT],g=d[pd.RESOURCE_DIMENSION],v=d[pd.MISC_FLAG],C=d[pd.ARRAY_SIZE],w=DS[p];if(w===void 0)throw new Error(`DDSParser cannot parse texture data with DXGI format ${p}`);if(v===vS)throw new Error("DDSParser does not support cubemap textures");if(g===6)throw new Error("DDSParser does not supported 3D texture data");let k=new Array,B=O2+hd+af;if(C===1)k.push(new Uint8Array(r,B));else{let L=rn[w],T=0,W=n,j=s;for(let R=0;R>>1,j=j>>>1}let I=B;for(let R=0;Rnew Es(L,{format:w,width:n,height:s,levels:o}))}throw l&hS?new Error("DDSParser does not support uncompressed texture data."):l&dS?new Error("DDSParser does not supported YUV uncompressed texture data."):l&pS?new Error("DDSParser does not support single-channel (lumninance) texture data!"):l&cS?new Error("DDSParser does not support single-channel (alpha) texture data!"):new Error("DDSParser failed to load a texture file due to an unknown reason!")}var lf=[171,75,84,88,32,49,49,187,13,10,26,10],bS=67305985,ui={FILE_IDENTIFIER:0,ENDIANNESS:12,GL_TYPE:16,GL_TYPE_SIZE:20,GL_FORMAT:24,GL_INTERNAL_FORMAT:28,GL_BASE_INTERNAL_FORMAT:32,PIXEL_WIDTH:36,PIXEL_HEIGHT:40,PIXEL_DEPTH:44,NUMBER_OF_ARRAY_ELEMENTS:48,NUMBER_OF_FACES:52,NUMBER_OF_MIPMAP_LEVELS:56,BYTES_OF_KEY_VALUE_DATA:60},G2=64,gd={[Ce.UNSIGNED_BYTE]:1,[Ce.UNSIGNED_SHORT]:2,[Ce.INT]:4,[Ce.UNSIGNED_INT]:4,[Ce.FLOAT]:4,[Ce.HALF_FLOAT]:8},U2={[le.RGBA]:4,[le.RGB]:3,[le.RG]:2,[le.RED]:1,[le.LUMINANCE]:1,[le.LUMINANCE_ALPHA]:2,[le.ALPHA]:1},V2={[Ce.UNSIGNED_SHORT_4_4_4_4]:2,[Ce.UNSIGNED_SHORT_5_5_5_1]:2,[Ce.UNSIGNED_SHORT_5_6_5]:2};function md(r,e,t=!1){let i=new DataView(e);if(!ES(r,i))return null;let s=i.getUint32(ui.ENDIANNESS,!0)===bS,n=i.getUint32(ui.GL_TYPE,s),o=i.getUint32(ui.GL_FORMAT,s),a=i.getUint32(ui.GL_INTERNAL_FORMAT,s),l=i.getUint32(ui.PIXEL_WIDTH,s),c=i.getUint32(ui.PIXEL_HEIGHT,s)||1,h=i.getUint32(ui.PIXEL_DEPTH,s)||1,d=i.getUint32(ui.NUMBER_OF_ARRAY_ELEMENTS,s)||1,p=i.getUint32(ui.NUMBER_OF_FACES,s),g=i.getUint32(ui.NUMBER_OF_MIPMAP_LEVELS,s),v=i.getUint32(ui.BYTES_OF_KEY_VALUE_DATA,s);if(c===0||h!==1)throw new Error("Only 2D textures are supported");if(p!==1)throw new Error("CubeTextures are not supported by KTXLoader yet!");if(d!==1)throw new Error("WebGL does not support array textures");let C=4,w=4,k=l+3&-4,B=c+3&-4,L=new Array(d),T=l*c;n===0&&(T=k*B);let W;if(n!==0?gd[n]?W=gd[n]*U2[o]:W=V2[n]:W=rn[a],W===void 0)throw new Error("Unable to resolve the pixel format stored in the *.ktx file!");let j=t?CS(i,v,s):null,R=T*W,z=l,U=c,q=k,re=B,$=G2+v;for(let Q=0;Q1||n!==0?z:q,levelHeight:g>1||n!==0?U:re,levelBuffer:new Uint8Array(e,ye,R)},ye+=R}$+=Te+4,$=$%4!==0?$+4-$%4:$,z=z>>1||1,U=U>>1||1,q=z+C-1&~(C-1),re=U+w-1&~(w-1),R=q*re*W}return n!==0?{uncompressed:L.map(Q=>{let Te=Q[0].levelBuffer,ye=!1;return n===Ce.FLOAT?Te=new Float32Array(Q[0].levelBuffer.buffer,Q[0].levelBuffer.byteOffset,Q[0].levelBuffer.byteLength/4):n===Ce.UNSIGNED_INT?(ye=!0,Te=new Uint32Array(Q[0].levelBuffer.buffer,Q[0].levelBuffer.byteOffset,Q[0].levelBuffer.byteLength/4)):n===Ce.INT&&(ye=!0,Te=new Int32Array(Q[0].levelBuffer.buffer,Q[0].levelBuffer.byteOffset,Q[0].levelBuffer.byteLength/4)),{resource:new Q0(Te,{width:Q[0].levelWidth,height:Q[0].levelHeight}),type:n,format:ye?SS(o):o}}),kvData:j}:{compressed:L.map(Q=>new Es(null,{format:a,width:l,height:c,levels:g,levelBuffers:Q})),kvData:j}}function ES(r,e){for(let t=0;te-s){console.error("KTXLoader: keyAndValueByteSize out of bounds");break}let l=0;for(;l{let l=new we(a,{mipmap:x0.OFF,alphaMode:Qt.NO_PREMULTIPLIED_ALPHA,resolution:ae.getResolutionOfUrl(r),...e.data});return Li(l,t,r)});return o.length===1?o[0]:o},unload(r){Array.isArray(r)?r.forEach(e=>e.destroy(!0)):r.destroy(!0)}};te.add(z2);var W2={extension:{type:Z.LoadParser,priority:jt.High},name:"loadKTX",test(r){return A0(r,".ktx")},async load(r,e,t){let s=await(await K.ADAPTER.fetch(r)).arrayBuffer(),{compressed:n,uncompressed:o,kvData:a}=md(r,s),l=n??o,c={mipmap:x0.OFF,alphaMode:Qt.NO_PREMULTIPLIED_ALPHA,resolution:ae.getResolutionOfUrl(r),...e.data},h=l.map(d=>{l===o&&Object.assign(c,{type:d.type,format:d.format});let p=new we(d,c);return p.ktxKeyValueData=a,Li(p,t,r)});return h.length===1?h[0]:h},unload(r){Array.isArray(r)?r.forEach(e=>e.destroy(!0)):r.destroy(!0)}};te.add(W2);var H2={extension:Z.ResolveParser,test:r=>{let t=r.split("?")[0].split(".").pop();return["basis","ktx","dds"].includes(t)},parse:r=>{if(r.split("?")[0].split(".").pop()==="ktx"){let i=[".s3tc.ktx",".s3tc_sRGB.ktx",".etc.ktx",".etc1.ktx",".pvrt.ktx",".atc.ktx",".astc.ktx"];if(i.some(s=>r.endsWith(s)))return{resolution:parseFloat(K.RETINA_PREFIX.exec(r)?.[1]??"1"),format:i.find(s=>r.endsWith(s)),src:r}}return{resolution:parseFloat(K.RETINA_PREFIX.exec(r)?.[1]??"1"),format:r.split(".").pop(),src:r}}};te.add(H2);var wS=new Ie,TS=4,Dc=class{constructor(r){this.renderer=r}async image(r,e,t){let i=new Image;return i.src=await this.base64(r,e,t),i}async base64(r,e,t){let i=this.canvas(r);if(i.toBlob!==void 0)return new Promise((s,n)=>{i.toBlob(o=>{if(!o){n(new Error("ICanvas.toBlob failed!"));return}let a=new FileReader;a.onload=()=>s(a.result),a.onerror=n,a.readAsDataURL(o)},e,t)});if(i.toDataURL!==void 0)return i.toDataURL(e,t);if(i.convertToBlob!==void 0){let s=await i.convertToBlob({type:e,quality:t});return new Promise((n,o)=>{let a=new FileReader;a.onload=()=>n(a.result),a.onerror=o,a.readAsDataURL(s)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(r,e){let{pixels:t,width:i,height:s,flipY:n}=this._rawPixels(r,e);n&&Dc._flipY(t,i,s),Dc._unpremultiplyAlpha(t);let o=new ae.CanvasRenderTarget(i,s,1),a=new ImageData(new Uint8ClampedArray(t.buffer),i,s);return o.context.putImageData(a,0,0),o.canvas}pixels(r,e){let{pixels:t,width:i,height:s,flipY:n}=this._rawPixels(r,e);return n&&Dc._flipY(t,i,s),Dc._unpremultiplyAlpha(t),t}_rawPixels(r,e){let t=this.renderer;if(!t)throw new Error("The Extract has already been destroyed");let i,s=!1,n,o=!1;if(r&&(r instanceof Or?n=r:(n=t.generateTexture(r,{resolution:t.resolution,multisample:t.multisample}),o=!0)),n){if(i=n.baseTexture.resolution,e=e??n.frame,s=!1,!o){t.renderTexture.bind(n);let d=n.framebuffer.glFramebuffers[t.CONTEXT_UID];d.blitFramebuffer&&t.framebuffer.bind(d.blitFramebuffer)}}else i=t.resolution,e||(e=wS,e.width=t.width/i,e.height=t.height/i),s=!0,t.renderTexture.bind();let a=Math.round(e.width*i),l=Math.round(e.height*i),c=new Uint8Array(TS*a*l),h=t.gl;return h.readPixels(Math.round(e.x*i),Math.round(e.y*i),a,l,h.RGBA,h.UNSIGNED_BYTE,c),o&&n?.destroy(!0),{pixels:c,width:a,height:l,flipY:s}}destroy(){this.renderer=null}static _flipY(r,e,t){let i=e<<2,s=t>>1,n=new Uint8Array(i);for(let o=0;o=0&&a>=0&&s>=0&&n>=0)){e.length=0;return}let l=Math.ceil(2.3*Math.sqrt(o+a)),c=l*8+(s?4:0)+(n?4:0);if(e.length=c,c===0)return;if(l===0){e.length=8,e[0]=e[6]=t+s,e[1]=e[3]=i+n,e[2]=e[4]=t-s,e[5]=e[7]=i-n;return}let h=0,d=l*4+(s?2:0)+2,p=d,g=c;{let v=s+o,C=n,w=t+v,k=t-v,B=i+C;if(e[h++]=w,e[h++]=B,e[--d]=B,e[--d]=k,n){let L=i-C;e[p++]=k,e[p++]=L,e[--g]=L,e[--g]=w}}for(let v=1;v0||e&&i<=0){let s=t/2;for(let n=s+s%2;n=6){cf(t,!1);let o=[];for(let c=0;c=0&&n>=0&&o.push(t,i,t+s,i,t+s,i+n,t,i+n)},triangulate(r,e){let t=r.points,i=e.points;if(t.length===0)return;let s=i.length/2;i.push(t[0],t[1],t[2],t[3],t[6],t[7],t[4],t[5]),e.indices.push(s,s+1,s+2,s+1,s+2,s+3)}};var vd={build(r){sn.build(r)},triangulate(r,e){sn.triangulate(r,e)}};var z0=(r=>(r.MITER="miter",r.BEVEL="bevel",r.ROUND="round",r))(z0||{}),hi=(r=>(r.BUTT="butt",r.ROUND="round",r.SQUARE="square",r))(hi||{}),Ur={adaptive:!0,maxLength:10,minSegments:8,maxSegments:2048,epsilon:1e-4,_segmentsCount(r,e=20){if(!this.adaptive||!r||isNaN(r))return e;let t=Math.ceil(r/this.maxLength);return tthis.maxSegments&&(t=this.maxSegments),t}};var io=class{static curveTo(e,t,i,s,n,o){let a=o[o.length-2],c=o[o.length-1]-t,h=a-e,d=s-t,p=i-e,g=Math.abs(c*p-h*d);if(g<1e-8||n===0)return(o[o.length-2]!==e||o[o.length-1]!==t)&&o.push(e,t),null;let v=c*c+h*h,C=d*d+p*p,w=c*d+h*p,k=n*Math.sqrt(v)/g,B=n*Math.sqrt(C)/g,L=k*w/v,T=B*w/C,W=k*p+B*h,j=k*d+B*c,I=h*(B+L),R=c*(B+L),z=p*(k+T),U=d*(k+T),q=Math.atan2(R-j,I-W),re=Math.atan2(U-j,z-W);return{cx:W+e,cy:j+t,radius:n,startAngle:q,endAngle:re,anticlockwise:h*d>p*c}}static arc(e,t,i,s,n,o,a,l,c){let h=a-o,d=Ur._segmentsCount(Math.abs(h)*n,Math.ceil(Math.abs(h)/Ys)*40),p=h/(d*2),g=p*2,v=Math.cos(p),C=Math.sin(p),w=d-1,k=w%1/w;for(let B=0;B<=w;++B){let L=B+k*B,T=p+o+g*L,W=Math.cos(T),j=-Math.sin(T);c.push((v*W+C*j)*n+i,(v*-j+C*W)*n+s)}}};var wa=class{constructor(){this.reset()}begin(e,t,i){this.reset(),this.style=e,this.start=t,this.attribStart=i}end(e,t){this.attribSize=t-this.attribStart,this.size=e-this.start}reset(){this.style=null,this.size=0,this.start=0,this.attribStart=0,this.attribSize=0}};var Ta=class r{static curveLength(e,t,i,s,n,o,a,l){let h=0,d=0,p=0,g=0,v=0,C=0,w=0,k=0,B=0,L=0,T=0,W=e,j=t;for(let I=1;I<=10;++I)d=I/10,p=d*d,g=p*d,v=1-d,C=v*v,w=C*v,k=w*e+3*C*d*i+3*v*p*n+g*a,B=w*t+3*C*d*s+3*v*p*o+g*l,L=W-k,T=j-B,W=k,j=B,h+=Math.sqrt(L*L+T*T);return h}static curveTo(e,t,i,s,n,o,a){let l=a[a.length-2],c=a[a.length-1];a.length-=2;let h=Ur._segmentsCount(r.curveLength(l,c,e,t,i,s,n,o)),d=0,p=0,g=0,v=0,C=0;a.push(l,c);for(let w=1,k=0;w<=h;++w)k=w/h,d=1-k,p=d*d,g=p*d,v=k*k,C=v*k,a.push(g*l+3*p*k*e+3*d*v*i+C*n,g*c+3*p*k*t+3*d*v*s+C*o)}};function uf(r,e,t,i,s,n,o,a){let l=r-t*s,c=e-i*s,h=r+t*n,d=e+i*n,p,g;o?(p=i,g=-t):(p=-i,g=t);let v=l+p,C=c+g,w=h+p,k=d+g;return a.push(v,C,w,k),2}function so(r,e,t,i,s,n,o,a){let l=t-r,c=i-e,h=Math.atan2(l,c),d=Math.atan2(s-r,n-e);a&&hd&&(d+=Math.PI*2);let p=h,g=d-h,v=Math.abs(g),C=Math.sqrt(l*l+c*c),w=(15*v*Math.sqrt(C)/Math.PI>>0)+1,k=g/w;if(p+=k,a){o.push(r,e,t,i);for(let B=1,L=p;B=0&&(n.join===z0.ROUND?p+=so(L,T,L-I*$,T-R*$,L-z*$,T-U*$,h,!1)+4:p+=2,h.push(L-z*Q,T-U*Q,L+z*$,T+U*$));continue}let I0=(-I+k)*(-R+T)-(-I+L)*(-R+B),de=(-z+W)*(-U+T)-(-z+L)*(-U+j),oe=(De*de-Mt*I0)/gt,ve=(rt*I0-_e*de)/gt,Yt=(oe-L)*(oe-L)+(ve-T)*(ve-T),Ut=L+(oe-L)*$,r0=T+(ve-T)*$,Ft=L-(oe-L)*Q,it=T-(ve-T)*Q,p0=Math.min(De*De+_e*_e,Mt*Mt+rt*rt),i0=Dt?$:Q,C0=p0+i0*i0*C,Zr=Yt<=C0,wt=n.join;if(wt===z0.MITER&&Yt/C>w&&(wt=z0.BEVEL),Zr)switch(wt){case z0.MITER:{h.push(Ut,r0,Ft,it);break}case z0.BEVEL:{Dt?h.push(Ut,r0,L+I*Q,T+R*Q,Ut,r0,L+z*Q,T+U*Q):h.push(L-I*$,T-R*$,Ft,it,L-z*$,T-U*$,Ft,it),p+=2;break}case z0.ROUND:{Dt?(h.push(Ut,r0,L+I*Q,T+R*Q),p+=so(L,T,L+I*Q,T+R*Q,L+z*Q,T+U*Q,h,!0)+4,h.push(Ut,r0,L+z*Q,T+U*Q)):(h.push(L-I*$,T-R*$,Ft,it),p+=so(L,T,L-I*$,T-R*$,L-z*$,T-U*$,h,!1)+4,h.push(L-z*$,T-U*$,Ft,it));break}}else{switch(h.push(L-I*$,T-R*$,L+I*Q,T+R*Q),wt){case z0.MITER:{Dt?h.push(Ft,it,Ft,it):h.push(Ut,r0,Ut,r0),p+=2;break}case z0.ROUND:{Dt?p+=so(L,T,L+I*Q,T+R*Q,L+z*Q,T+U*Q,h,!0)+2:p+=so(L,T,L-I*$,T-R*$,L-z*$,T-U*$,h,!1)+2;break}}h.push(L-z*$,T-U*$,L+z*Q,T+U*Q),p+=2}}k=i[(d-2)*2],B=i[(d-2)*2+1],L=i[(d-1)*2],T=i[(d-1)*2+1],I=-(B-T),R=k-L,q=Math.sqrt(I*I+R*R),I/=q,R/=q,I*=v,R*=v,h.push(L-I*$,T-R*$,L+I*Q,T+R*Q),l||(n.cap===hi.ROUND?p+=so(L-I*($-Q)*.5,T-R*($-Q)*.5,L-I*$,T-R*$,L+I*Q,T+R*Q,h,!1)+2:n.cap===hi.SQUARE&&(p+=uf(L,T,I,R,$,Q,!1,h)));let Te=e.indices,ye=Ur.epsilon*Ur.epsilon;for(let xe=g;xe0&&(this.invalidate(),this.clearDirty++,this.graphicsData.length=0),this}drawShape(r,e=null,t=null,i=null){let s=new Aa(r,e,t,i);return this.graphicsData.push(s),this.dirty++,this}drawHole(r,e=null){if(!this.graphicsData.length)return null;let t=new Aa(r,null,null,e),i=this.graphicsData[this.graphicsData.length-1];return t.lineStyle=i.lineStyle,i.holes.push(t),this.dirty++,this}destroy(){super.destroy();for(let r=0;r0&&(t=this.batches[this.batches.length-1],i=t.style);for(let a=this.shapeIndex;a65535;this.indicesUint16&&this.indices.length===this.indicesUint16.length&&o===this.indicesUint16.BYTES_PER_ELEMENT>2?this.indicesUint16.set(this.indices):this.indicesUint16=o?new Uint32Array(this.indices):new Uint16Array(this.indices),this.batchable=this.isBatchable(),this.batchable?this.packBatches():this.buildDrawCalls()}_compareStyles(r,e){return!(!r||!e||r.texture.baseTexture!==e.texture.baseTexture||r.color+r.alpha!==e.color+e.alpha||!!r.native!=!!e.native)}validateBatching(){if(this.dirty===this.cacheDirty||!this.graphicsData.length)return!1;for(let r=0,e=this.graphicsData.length;r65535*2)return!1;let r=this.batches;for(let e=0;e0&&(i=Fa.pop(),i||(i=new qs,i.texArray=new Xs),this.drawCalls.push(i)),i.start=c,i.size=0,i.texArray.count=0,i.type=l),v.touched=1,v._batchEnabled=r,v._batchLocation=s,v.wrapMode=dr.REPEAT,i.texArray.elements[i.texArray.count++]=v,s++)),i.size+=d.size,c+=d.size,o=v._batchLocation,this.addColors(e,g.color,g.alpha,d.attribSize,d.attribStart),this.addTextureIds(t,o,d.attribSize,d.attribStart)}we._globalBatch=r,this.packAttributes()}packAttributes(){let r=this.points,e=this.uvs,t=this.colors,i=this.textureIds,s=new ArrayBuffer(r.length*3*4),n=new Float32Array(s),o=new Uint32Array(s),a=0;for(let l=0;l0&&r.alpha>0;return t?(r.matrix&&(r.matrix=r.matrix.clone(),r.matrix.invert()),Object.assign(this._lineStyle,{visible:t},r)):this._lineStyle.reset(),this}startPoly(){if(this.currentPath){let r=this.currentPath.points,e=this.currentPath.points.length;e>2&&(this.drawShape(this.currentPath),this.currentPath=new hs,this.currentPath.closeStroke=!1,this.currentPath.points.push(r[e-2],r[e-1]))}else this.currentPath=new hs,this.currentPath.closeStroke=!1}finishPoly(){this.currentPath&&(this.currentPath.points.length>2?(this.drawShape(this.currentPath),this.currentPath=null):this.currentPath.points.length=0)}moveTo(r,e){return this.startPoly(),this.currentPath.points[0]=r,this.currentPath.points[1]=e,this}lineTo(r,e){this.currentPath||this.moveTo(0,0);let t=this.currentPath.points,i=t[t.length-2],s=t[t.length-1];return(i!==r||s!==e)&&t.push(r,e),this}_initCurve(r=0,e=0){this.currentPath?this.currentPath.points.length===0&&(this.currentPath.points=[r,e]):this.moveTo(r,e)}quadraticCurveTo(r,e,t,i){this._initCurve();let s=this.currentPath.points;return s.length===0&&this.moveTo(0,0),_a.curveTo(r,e,t,i,s),this}bezierCurveTo(r,e,t,i,s,n){return this._initCurve(),Ta.curveTo(r,e,t,i,s,n,this.currentPath.points),this}arcTo(r,e,t,i,s){this._initCurve(r,e);let n=this.currentPath.points,o=io.curveTo(r,e,t,i,s,n);if(o){let{cx:a,cy:l,radius:c,startAngle:h,endAngle:d,anticlockwise:p}=o;this.arc(a,l,c,h,d,p)}return this}arc(r,e,t,i,s,n=!1){if(i===s)return this;if(!n&&s<=i?s+=Ys:n&&i<=s&&(i+=Ys),s-i===0)return this;let a=r+Math.cos(i)*t,l=e+Math.sin(i)*t,c=this._geometry.closePointEps,h=this.currentPath?this.currentPath.points:null;if(h){let d=Math.abs(h[h.length-2]-a),p=Math.abs(h[h.length-1]-l);d0;return t?(r.matrix&&(r.matrix=r.matrix.clone(),r.matrix.invert()),Object.assign(this._fillStyle,{visible:t},r)):this._fillStyle.reset(),this}endFill(){return this.finishPoly(),this._fillStyle.reset(),this}drawRect(r,e,t,i){return this.drawShape(new Ie(r,e,t,i))}drawRoundedRect(r,e,t,i,s){return this.drawShape(new Hl(r,e,t,i,s))}drawCircle(r,e,t){return this.drawShape(new zl(r,e,t))}drawEllipse(r,e,t,i){return this.drawShape(new Wl(r,e,t,i))}drawPolygon(...r){let e,t=!0,i=r[0];i.points?(t=i.closeStroke,e=i.points):Array.isArray(r[0])?e=r[0]:e=r;let s=new hs(e);return s.closeStroke=t,this.drawShape(s),this}drawShape(r){return this._holeMode?this._geometry.drawHole(r,this._matrix):this._geometry.drawShape(r,this._fillStyle.clone(),this._lineStyle.clone(),this._matrix),this}clear(){return this._geometry.clear(),this._lineStyle.reset(),this._fillStyle.reset(),this._boundsID++,this._matrix=null,this._holeMode=!1,this.currentPath=null,this}isFastRect(){let r=this._geometry.graphicsData;return r.length===1&&r[0].shape.type===vt.RECT&&!r[0].matrix&&!r[0].holes.length&&!(r[0].lineStyle.visible&&r[0].lineStyle.width)}_render(r){this.finishPoly();let e=this._geometry;e.updateBatches(),e.batchable?(this.batchDirty!==e.batchDirty&&this._populateBatches(),this._renderBatched(r)):(r.batch.flush(),this._renderDirect(r))}_populateBatches(){let r=this._geometry,e=this.blendMode,t=r.batches.length;this.batchTint=-1,this._transformID=-1,this.batchDirty=r.batchDirty,this.batches.length=t,this.vertexData=new Float32Array(r.points);for(let i=0;ii&&!e.autoResize&&(o=i);let a=e._buffers;a||(a=e._buffers=this.generateBuffers(e));let l=t[0]._texture.baseTexture,c=l.alphaMode>0;this.state.blendMode=ae.correctBlendMode(e.blendMode,c),n.state.set(this.state);let h=n.gl,d=e.worldTransform.copyTo(this.tempMatrix);d.prepend(n.globalUniforms.uniforms.projectionMatrix),this.shader.uniforms.translationMatrix=d.toArray(!0),this.shader.uniforms.uColor=Me.shared.setValue(e.tintRgb).premultiply(e.worldAlpha,c).toArray(this.shader.uniforms.uColor),this.shader.uniforms.uSampler=l,this.renderer.shader.bind(this.shader);let p=!1;for(let g=0,v=0;gs&&(C=s),v>=a.length&&a.push(this._generateOneMoreBuffer(e));let w=a[v];w.uploadDynamic(t,g,C);let k=e._bufferUpdateIDs[v]||0;p=p||w._updateID0);s[o]=c,s[o+n]=c,s[o+n*2]=c,s[o+n*3]=c,o+=n*4}}destroy(){super.destroy(),this.shader&&(this.shader.destroy(),this.shader=null),this.tempMatrix=null}};Tc.extension={name:"particle",type:Z.RendererPlugin};te.add(Tc);var an=(r=>(r[r.LINEAR_VERTICAL=0]="LINEAR_VERTICAL",r[r.LINEAR_HORIZONTAL=1]="LINEAR_HORIZONTAL",r))(an||{});var Ed={willReadFrequently:!0},Ae=class{static get experimentalLetterSpacingSupported(){let r=Ae._experimentalLetterSpacingSupported;if(r!==void 0){let e=K.ADAPTER.getCanvasRenderingContext2D().prototype;r=Ae._experimentalLetterSpacingSupported="letterSpacing"in e||"textLetterSpacing"in e}return r}constructor(r,e,t,i,s,n,o,a,l){this.text=r,this.style=e,this.width=t,this.height=i,this.lines=s,this.lineWidths=n,this.lineHeight=o,this.maxLineWidth=a,this.fontProperties=l}static measureText(r,e,t,i=Ae._canvas){t=t??e.wordWrap;let s=e.toFontString(),n=Ae.measureFont(s);n.fontSize===0&&(n.fontSize=e.fontSize,n.ascent=e.fontSize);let o=i.getContext("2d",Ed);o.font=s;let l=(t?Ae.wordWrap(r,e,i):r).split(/(?:\r\n|\r|\n)/),c=new Array(l.length),h=0;for(let v=0;v0&&(i?s-=e:s+=(Ae.graphemeSegmenter(r).length-1)*e),s}static wordWrap(r,e,t=Ae._canvas){let i=t.getContext("2d",Ed),s=0,n="",o="",a=Object.create(null),{letterSpacing:l,whiteSpace:c}=e,h=Ae.collapseSpaces(c),d=Ae.collapseNewlines(c),p=!h,g=e.wordWrapWidth+l,v=Ae.tokenize(r);for(let C=0;Cg)if(n!==""&&(o+=Ae.addLine(n),n="",s=0),Ae.canBreakWords(w,e.breakWords)){let B=Ae.wordWrapSplit(w);for(let L=0;Lg&&(o+=Ae.addLine(n),p=!1,n="",s=0),n+=T,s+=I}}else{n.length>0&&(o+=Ae.addLine(n),n="",s=0);let B=C===v.length-1;o+=Ae.addLine(w,!B),p=!1,n="",s=0}else k+s>g&&(p=!1,o+=Ae.addLine(n),n="",s=0),(n.length>0||!Ae.isBreakingSpace(w)||p)&&(n+=w,s+=k)}return o+=Ae.addLine(n,!1),o}static addLine(r,e=!0){return r=Ae.trimRight(r),r=e?`${r} -`:r,r}static getFromCache(r,e,t,i){let s=t[r];return typeof s!="number"&&(s=Ae._measureText(r,e,i)+e,t[r]=s),s}static collapseSpaces(r){return r==="normal"||r==="pre-line"}static collapseNewlines(r){return r==="normal"}static trimRight(r){if(typeof r!="string")return"";for(let e=r.length-1;e>=0;e--){let t=r[e];if(!Ae.isBreakingSpace(t))break;r=r.slice(0,-1)}return r}static isNewline(r){return typeof r!="string"?!1:Ae._newlines.includes(r.charCodeAt(0))}static isBreakingSpace(r,e){return typeof r!="string"?!1:Ae._breakingSpaces.includes(r.charCodeAt(0))}static tokenize(r){let e=[],t="";if(typeof r!="string")return e;for(let i=0;io;--d){for(let v=0;v{if(typeof Intl?.Segmenter=="function"){let r=new Intl.Segmenter;return e=>[...r.segment(e)].map(t=>t.segment)}return r=>[...r]})();xt.experimentalLetterSpacing=!1;xt._fonts={};xt._newlines=[10,13];xt._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];var IS=["serif","sans-serif","monospace","cursive","fantasy","system-ui"],_c=class{constructor(r){this.styleID=0,this.reset(),X2(this,r,r)}clone(){let r={};return X2(r,this,_c.defaultStyle),new _c(r)}reset(){X2(this,_c.defaultStyle,_c.defaultStyle)}get align(){return this._align}set align(r){this._align!==r&&(this._align=r,this.styleID++)}get breakWords(){return this._breakWords}set breakWords(r){this._breakWords!==r&&(this._breakWords=r,this.styleID++)}get dropShadow(){return this._dropShadow}set dropShadow(r){this._dropShadow!==r&&(this._dropShadow=r,this.styleID++)}get dropShadowAlpha(){return this._dropShadowAlpha}set dropShadowAlpha(r){this._dropShadowAlpha!==r&&(this._dropShadowAlpha=r,this.styleID++)}get dropShadowAngle(){return this._dropShadowAngle}set dropShadowAngle(r){this._dropShadowAngle!==r&&(this._dropShadowAngle=r,this.styleID++)}get dropShadowBlur(){return this._dropShadowBlur}set dropShadowBlur(r){this._dropShadowBlur!==r&&(this._dropShadowBlur=r,this.styleID++)}get dropShadowColor(){return this._dropShadowColor}set dropShadowColor(r){let e=Y2(r);this._dropShadowColor!==e&&(this._dropShadowColor=e,this.styleID++)}get dropShadowDistance(){return this._dropShadowDistance}set dropShadowDistance(r){this._dropShadowDistance!==r&&(this._dropShadowDistance=r,this.styleID++)}get fill(){return this._fill}set fill(r){let e=Y2(r);this._fill!==e&&(this._fill=e,this.styleID++)}get fillGradientType(){return this._fillGradientType}set fillGradientType(r){this._fillGradientType!==r&&(this._fillGradientType=r,this.styleID++)}get fillGradientStops(){return this._fillGradientStops}set fillGradientStops(r){LS(this._fillGradientStops,r)||(this._fillGradientStops=r,this.styleID++)}get fontFamily(){return this._fontFamily}set fontFamily(r){this.fontFamily!==r&&(this._fontFamily=r,this.styleID++)}get fontSize(){return this._fontSize}set fontSize(r){this._fontSize!==r&&(this._fontSize=r,this.styleID++)}get fontStyle(){return this._fontStyle}set fontStyle(r){this._fontStyle!==r&&(this._fontStyle=r,this.styleID++)}get fontVariant(){return this._fontVariant}set fontVariant(r){this._fontVariant!==r&&(this._fontVariant=r,this.styleID++)}get fontWeight(){return this._fontWeight}set fontWeight(r){this._fontWeight!==r&&(this._fontWeight=r,this.styleID++)}get letterSpacing(){return this._letterSpacing}set letterSpacing(r){this._letterSpacing!==r&&(this._letterSpacing=r,this.styleID++)}get lineHeight(){return this._lineHeight}set lineHeight(r){this._lineHeight!==r&&(this._lineHeight=r,this.styleID++)}get leading(){return this._leading}set leading(r){this._leading!==r&&(this._leading=r,this.styleID++)}get lineJoin(){return this._lineJoin}set lineJoin(r){this._lineJoin!==r&&(this._lineJoin=r,this.styleID++)}get miterLimit(){return this._miterLimit}set miterLimit(r){this._miterLimit!==r&&(this._miterLimit=r,this.styleID++)}get padding(){return this._padding}set padding(r){this._padding!==r&&(this._padding=r,this.styleID++)}get stroke(){return this._stroke}set stroke(r){let e=Y2(r);this._stroke!==e&&(this._stroke=e,this.styleID++)}get strokeThickness(){return this._strokeThickness}set strokeThickness(r){this._strokeThickness!==r&&(this._strokeThickness=r,this.styleID++)}get textBaseline(){return this._textBaseline}set textBaseline(r){this._textBaseline!==r&&(this._textBaseline=r,this.styleID++)}get trim(){return this._trim}set trim(r){this._trim!==r&&(this._trim=r,this.styleID++)}get whiteSpace(){return this._whiteSpace}set whiteSpace(r){this._whiteSpace!==r&&(this._whiteSpace=r,this.styleID++)}get wordWrap(){return this._wordWrap}set wordWrap(r){this._wordWrap!==r&&(this._wordWrap=r,this.styleID++)}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(r){this._wordWrapWidth!==r&&(this._wordWrapWidth=r,this.styleID++)}toFontString(){let r=typeof this.fontSize=="number"?`${this.fontSize}px`:this.fontSize,e=this.fontFamily;Array.isArray(this.fontFamily)||(e=this.fontFamily.split(","));for(let t=e.length-1;t>=0;t--){let i=e[t].trim();!/([\"\'])[^\'\"]+\1/.test(i)&&!IS.includes(i)&&(i=`"${i}"`),e[t]=i}return`${this.fontStyle} ${this.fontVariant} ${this.fontWeight} ${r} ${e.join(",")}`}},s0=_c;s0.defaultStyle={align:"left",breakWords:!1,dropShadow:!1,dropShadowAlpha:1,dropShadowAngle:Math.PI/6,dropShadowBlur:0,dropShadowColor:"black",dropShadowDistance:5,fill:"black",fillGradientType:an.LINEAR_VERTICAL,fillGradientStops:[],fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,lineJoin:"miter",miterLimit:10,padding:0,stroke:"black",strokeThickness:0,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};function Y2(r){let e=Me.shared;return Array.isArray(r)?r.map(t=>e.setValue(t).toHex()):e.setValue(r).toHex()}function LS(r,e){if(!Array.isArray(r)||!Array.isArray(e)||r.length!==e.length)return!1;for(let t=0;t0&&g>v&&(C=(v+g)/2);let w=v+d,k=t.lineHeight*(p+1),B=w;p+10}};function NS(r,e){let t=!1;if(r?._textures?.length){for(let i=0;i{this.queue&&this.prepareItems()},this.registerFindHook(GS),this.registerFindHook(US),this.registerFindHook(NS),this.registerFindHook(PS),this.registerFindHook(BS),this.registerUploadHook(RS),this.registerUploadHook(OS)}upload(r){return new Promise(e=>{r&&this.add(r),this.queue.length?(this.completes.push(e),this.ticking||(this.ticking=!0,It.system.addOnce(this.tick,this,yr.UTILITY))):e()})}tick(){setTimeout(this.delayedTick,0)}prepareItems(){for(this.limiter.beginFrame();this.queue.length&&this.limiter.allowedToUpload();){let r=this.queue[0],e=!1;if(r&&!r._destroyed){for(let t=0,i=this.uploadHooks.length;t=0;e--)this.add(r.children[e]);return this}destroy(){this.ticking&&It.system.remove(this.tick,this),this.ticking=!1,this.addHooks=null,this.uploadHooks=null,this.renderer=null,this.completes=null,this.queue=null,this.limiter=null,this.uploadHookHelper=null}},oo=vf;oo.uploadsPerFrame=4;Object.defineProperties(K,{UPLOADS_PER_FRAME:{get(){return oo.uploadsPerFrame},set(r){ae.deprecation("7.1.0","settings.UPLOADS_PER_FRAME is deprecated, use prepare.BasePrepare.uploadsPerFrame"),oo.uploadsPerFrame=r}}});function xf(r,e){return e instanceof we?(e._glTextures[r.CONTEXT_UID]||r.texture.bind(e),!0):!1}function VS(r,e){if(!(e instanceof lt))return!1;let{geometry:t}=e;e.finishPoly(),t.updateBatches();let{batches:i}=t;for(let s=0;s=0;e--){let t=r[e];if(!Ae.isBreakingSpace(t))break;r=r.slice(0,-1)}return r}static isNewline(r){return typeof r!="string"?!1:Ae._newlines.includes(r.charCodeAt(0))}static isBreakingSpace(r,e){return typeof r!="string"?!1:Ae._breakingSpaces.includes(r.charCodeAt(0))}static tokenize(r){let e=[],t="";if(typeof r!="string")return e;for(let i=0;io;--d){for(let v=0;v{if(typeof Intl?.Segmenter=="function"){let r=new Intl.Segmenter;return e=>[...r.segment(e)].map(t=>t.segment)}return r=>[...r]})();xt.experimentalLetterSpacing=!1;xt._fonts={};xt._newlines=[10,13];xt._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];var LS=["serif","sans-serif","monospace","cursive","fantasy","system-ui"],_c=class{constructor(r){this.styleID=0,this.reset(),X2(this,r,r)}clone(){let r={};return X2(r,this,_c.defaultStyle),new _c(r)}reset(){X2(this,_c.defaultStyle,_c.defaultStyle)}get align(){return this._align}set align(r){this._align!==r&&(this._align=r,this.styleID++)}get breakWords(){return this._breakWords}set breakWords(r){this._breakWords!==r&&(this._breakWords=r,this.styleID++)}get dropShadow(){return this._dropShadow}set dropShadow(r){this._dropShadow!==r&&(this._dropShadow=r,this.styleID++)}get dropShadowAlpha(){return this._dropShadowAlpha}set dropShadowAlpha(r){this._dropShadowAlpha!==r&&(this._dropShadowAlpha=r,this.styleID++)}get dropShadowAngle(){return this._dropShadowAngle}set dropShadowAngle(r){this._dropShadowAngle!==r&&(this._dropShadowAngle=r,this.styleID++)}get dropShadowBlur(){return this._dropShadowBlur}set dropShadowBlur(r){this._dropShadowBlur!==r&&(this._dropShadowBlur=r,this.styleID++)}get dropShadowColor(){return this._dropShadowColor}set dropShadowColor(r){let e=Y2(r);this._dropShadowColor!==e&&(this._dropShadowColor=e,this.styleID++)}get dropShadowDistance(){return this._dropShadowDistance}set dropShadowDistance(r){this._dropShadowDistance!==r&&(this._dropShadowDistance=r,this.styleID++)}get fill(){return this._fill}set fill(r){let e=Y2(r);this._fill!==e&&(this._fill=e,this.styleID++)}get fillGradientType(){return this._fillGradientType}set fillGradientType(r){this._fillGradientType!==r&&(this._fillGradientType=r,this.styleID++)}get fillGradientStops(){return this._fillGradientStops}set fillGradientStops(r){MS(this._fillGradientStops,r)||(this._fillGradientStops=r,this.styleID++)}get fontFamily(){return this._fontFamily}set fontFamily(r){this.fontFamily!==r&&(this._fontFamily=r,this.styleID++)}get fontSize(){return this._fontSize}set fontSize(r){this._fontSize!==r&&(this._fontSize=r,this.styleID++)}get fontStyle(){return this._fontStyle}set fontStyle(r){this._fontStyle!==r&&(this._fontStyle=r,this.styleID++)}get fontVariant(){return this._fontVariant}set fontVariant(r){this._fontVariant!==r&&(this._fontVariant=r,this.styleID++)}get fontWeight(){return this._fontWeight}set fontWeight(r){this._fontWeight!==r&&(this._fontWeight=r,this.styleID++)}get letterSpacing(){return this._letterSpacing}set letterSpacing(r){this._letterSpacing!==r&&(this._letterSpacing=r,this.styleID++)}get lineHeight(){return this._lineHeight}set lineHeight(r){this._lineHeight!==r&&(this._lineHeight=r,this.styleID++)}get leading(){return this._leading}set leading(r){this._leading!==r&&(this._leading=r,this.styleID++)}get lineJoin(){return this._lineJoin}set lineJoin(r){this._lineJoin!==r&&(this._lineJoin=r,this.styleID++)}get miterLimit(){return this._miterLimit}set miterLimit(r){this._miterLimit!==r&&(this._miterLimit=r,this.styleID++)}get padding(){return this._padding}set padding(r){this._padding!==r&&(this._padding=r,this.styleID++)}get stroke(){return this._stroke}set stroke(r){let e=Y2(r);this._stroke!==e&&(this._stroke=e,this.styleID++)}get strokeThickness(){return this._strokeThickness}set strokeThickness(r){this._strokeThickness!==r&&(this._strokeThickness=r,this.styleID++)}get textBaseline(){return this._textBaseline}set textBaseline(r){this._textBaseline!==r&&(this._textBaseline=r,this.styleID++)}get trim(){return this._trim}set trim(r){this._trim!==r&&(this._trim=r,this.styleID++)}get whiteSpace(){return this._whiteSpace}set whiteSpace(r){this._whiteSpace!==r&&(this._whiteSpace=r,this.styleID++)}get wordWrap(){return this._wordWrap}set wordWrap(r){this._wordWrap!==r&&(this._wordWrap=r,this.styleID++)}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(r){this._wordWrapWidth!==r&&(this._wordWrapWidth=r,this.styleID++)}toFontString(){let r=typeof this.fontSize=="number"?`${this.fontSize}px`:this.fontSize,e=this.fontFamily;Array.isArray(this.fontFamily)||(e=this.fontFamily.split(","));for(let t=e.length-1;t>=0;t--){let i=e[t].trim();!/([\"\'])[^\'\"]+\1/.test(i)&&!LS.includes(i)&&(i=`"${i}"`),e[t]=i}return`${this.fontStyle} ${this.fontVariant} ${this.fontWeight} ${r} ${e.join(",")}`}},s0=_c;s0.defaultStyle={align:"left",breakWords:!1,dropShadow:!1,dropShadowAlpha:1,dropShadowAngle:Math.PI/6,dropShadowBlur:0,dropShadowColor:"black",dropShadowDistance:5,fill:"black",fillGradientType:an.LINEAR_VERTICAL,fillGradientStops:[],fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,lineJoin:"miter",miterLimit:10,padding:0,stroke:"black",strokeThickness:0,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};function Y2(r){let e=Me.shared;return Array.isArray(r)?r.map(t=>e.setValue(t).toHex()):e.setValue(r).toHex()}function MS(r,e){if(!Array.isArray(r)||!Array.isArray(e)||r.length!==e.length)return!1;for(let t=0;t0&&g>v&&(C=(v+g)/2);let w=v+d,k=t.lineHeight*(p+1),B=w;p+10}};function PS(r,e){let t=!1;if(r?._textures?.length){for(let i=0;i{this.queue&&this.prepareItems()},this.registerFindHook(US),this.registerFindHook(VS),this.registerFindHook(PS),this.registerFindHook(BS),this.registerFindHook(RS),this.registerUploadHook(OS),this.registerUploadHook(GS)}upload(r){return new Promise(e=>{r&&this.add(r),this.queue.length?(this.completes.push(e),this.ticking||(this.ticking=!0,It.system.addOnce(this.tick,this,yr.UTILITY))):e()})}tick(){setTimeout(this.delayedTick,0)}prepareItems(){for(this.limiter.beginFrame();this.queue.length&&this.limiter.allowedToUpload();){let r=this.queue[0],e=!1;if(r&&!r._destroyed){for(let t=0,i=this.uploadHooks.length;t=0;e--)this.add(r.children[e]);return this}destroy(){this.ticking&&It.system.remove(this.tick,this),this.ticking=!1,this.addHooks=null,this.uploadHooks=null,this.renderer=null,this.completes=null,this.queue=null,this.limiter=null,this.uploadHookHelper=null}},oo=vf;oo.uploadsPerFrame=4;Object.defineProperties(K,{UPLOADS_PER_FRAME:{get(){return oo.uploadsPerFrame},set(r){ae.deprecation("7.1.0","settings.UPLOADS_PER_FRAME is deprecated, use prepare.BasePrepare.uploadsPerFrame"),oo.uploadsPerFrame=r}}});function xf(r,e){return e instanceof we?(e._glTextures[r.CONTEXT_UID]||r.texture.bind(e),!0):!1}function zS(r,e){if(!(e instanceof lt))return!1;let{geometry:t}=e;e.finishPoly(),t.updateBatches();let{batches:i}=t;for(let s=0;s1?b0.from(bf,Df,t):b0.from(Z2,Ef,t)}render(e){let t=this.renderer,i=this.quad,s=i.vertices;s[0]=s[6]=e._width*-e.anchor.x,s[1]=s[3]=e._height*-e.anchor.y,s[2]=s[4]=e._width*(1-e.anchor.x),s[5]=s[7]=e._height*(1-e.anchor.y);let n=e.uvRespectAnchor?e.anchor.x:0,o=e.uvRespectAnchor?e.anchor.y:0;s=i.uvs,s[0]=s[6]=-n,s[1]=s[3]=-o,s[2]=s[4]=1-n,s[5]=s[7]=1-o,i.invalidate();let a=e._texture,l=a.baseTexture,c=l.alphaMode>0,h=e.tileTransform.localTransform,d=e.uvMatrix,p=l.isPowerOfTwo&&a.frame.width===l.width&&a.frame.height===l.height;p&&(l._glTextures[t.CONTEXT_UID]?p=l.wrapMode!==dr.CLAMP:l.wrapMode===dr.CLAMP&&(l.wrapMode=dr.REPEAT));let g=p?this.simpleShader:this.shader,v=a.width,C=a.height,w=e._width,k=e._height;Sd.set(h.a*v/w,h.b*v/k,h.c*C/w,h.d*C/k,h.tx/w,h.ty/k),Sd.invert(),p?Sd.prepend(d.mapCoord):(g.uniforms.uMapCoord=d.mapCoord.toArray(!0),g.uniforms.uClampFrame=d.uClampFrame,g.uniforms.uClampOffset=d.uClampOffset),g.uniforms.uTransform=Sd.toArray(!0),g.uniforms.uColor=Me.shared.setValue(e.tint).premultiply(e.worldAlpha,c).toArray(g.uniforms.uColor),g.uniforms.translationMatrix=e.transform.worldTransform.toArray(!0),g.uniforms.uSampler=a,t.shader.bind(g),t.geometry.bind(i),this.state.blendMode=ae.correctBlendMode(e.blendMode,c),t.state.set(this.state),t.geometry.draw(this.renderer.gl.TRIANGLES,6,0)}};kc.extension={name:"tilingSprite",type:Z.RendererPlugin};te.add(kc);var Ic=class{constructor(r,e,t=null){this.linkedSheets=[],this._texture=r instanceof Se?r:null,this.baseTexture=r instanceof we?r:this._texture.baseTexture,this.textures={},this.animations={},this.data=e;let i=this.baseTexture.resource;this.resolution=this._updateResolution(t||(i?i.url:null)),this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}_updateResolution(r=null){let{scale:e}=this.data.meta,t=ae.getResolutionOfUrl(r,null);return t===null&&(t=parseFloat(e??"1")),t!==1&&this.baseTexture.setResolution(t),t}parse(){return new Promise(r=>{this._callback=r,this._batchIndex=0,this._frameKeys.length<=Ic.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}_processFrames(r){let e=r,t=Ic.BATCH_SIZE;for(;e-r{this._batchIndex*Ic.BATCH_SIZE{i[s]=e}),Object.keys(e.textures).forEach(s=>{i[s]=e.textures[s]}),!t){let s=ae.path.dirname(r[0]);e.linkedSheets.forEach((n,o)=>{let a=Cf([`${s}/${e.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(i,a)})}return i}var wf={extension:Z.Asset,cache:{test:r=>r instanceof Lc,getCacheableAssets:(r,e)=>Cf(r,e,!1)},resolver:{test:r=>{let t=r.split("?")[0].split("."),i=t.pop(),s=t.pop();return i==="json"&&WS.includes(s)},parse:r=>{let e=r.split(".");return{resolution:parseFloat(K.RETINA_PREFIX.exec(r)?.[1]??"1"),format:e[e.length-2],src:r}}},loader:{name:"spritesheetLoader",extension:{type:Z.LoadParser,priority:jt.Normal},async testParse(r,e){return ae.path.extname(e.src).toLowerCase()===".json"&&!!r.frames},async parse(r,e,t){let i=ae.path.dirname(e.src);i&&i.lastIndexOf("/")!==i.length-1&&(i+="/");let s=i+r.meta.image;s=ro(s,e.src);let o=(await t.load([s]))[s],a=new Lc(o.baseTexture,r,e.src);await a.parse();let l=r?.meta?.related_multi_packs;if(Array.isArray(l)){let c=[];for(let d of l){if(typeof d!="string")continue;let p=i+d;e.data?.ignoreMultiPack||(p=ro(p,e.src),c.push(t.load({src:p,data:{ignoreMultiPack:!0}})))}let h=await Promise.all(c);a.linkedSheets=h,h.forEach(d=>{d.linkedSheets=[a].concat(a.linkedSheets.filter(p=>p!==d))})}return a},unload(r){r.destroy(!0)}}};te.add(wf);var Mi=class{constructor(){this.info=[],this.common=[],this.page=[],this.char=[],this.kerning=[],this.distanceField=[]}};var Ni=class{static test(e){return typeof e=="string"&&e.startsWith("info face=")}static parse(e){let t=e.match(/^[a-z]+\s+.+$/gm),i={info:[],common:[],page:[],char:[],chars:[],kerning:[],kernings:[],distanceField:[]};for(let n in t){let o=t[n].match(/^[a-z]+/gm)[0],a=t[n].match(/[a-zA-Z]+=([^\s"']+|"([^"]*)")/gm),l={};for(let c in a){let h=a[c].split("="),d=h[0],p=h[1].replace(/"/gm,""),g=parseFloat(p),v=isNaN(g)?p:g;l[d]=v}i[o].push(l)}let s=new Mi;return i.info.forEach(n=>s.info.push({face:n.face,size:parseInt(n.size,10)})),i.common.forEach(n=>s.common.push({lineHeight:parseInt(n.lineHeight,10)})),i.page.forEach(n=>s.page.push({id:parseInt(n.id,10),file:n.file})),i.char.forEach(n=>s.char.push({id:parseInt(n.id,10),page:parseInt(n.page,10),x:parseInt(n.x,10),y:parseInt(n.y,10),width:parseInt(n.width,10),height:parseInt(n.height,10),xoffset:parseInt(n.xoffset,10),yoffset:parseInt(n.yoffset,10),xadvance:parseInt(n.xadvance,10)})),i.kerning.forEach(n=>s.kerning.push({first:parseInt(n.first,10),second:parseInt(n.second,10),amount:parseInt(n.amount,10)})),i.distanceField.forEach(n=>s.distanceField.push({distanceRange:parseInt(n.distanceRange,10),fieldType:n.fieldType})),s}};var Cs=class{static test(e){let t=e;return"getElementsByTagName"in t&&t.getElementsByTagName("page").length&&t.getElementsByTagName("info")[0].getAttribute("face")!==null}static parse(e){let t=new Mi,i=e.getElementsByTagName("info"),s=e.getElementsByTagName("common"),n=e.getElementsByTagName("page"),o=e.getElementsByTagName("char"),a=e.getElementsByTagName("kerning"),l=e.getElementsByTagName("distanceField");for(let c=0;c")?Cs.test(K.ADAPTER.parseXML(e)):!1}static parse(e){return Cs.parse(K.ADAPTER.parseXML(e))}};var Q2=[Ni,Cs,ws];function J2(r){for(let e=0;e=a-U*n){if(v===0)throw new Error(`[BitmapFont] textureHeight ${a}px is too small (fontFamily: '${h.fontFamily}', fontSize: ${h.fontSize}px, char: '${I}')`);--j,C=null,w=null,k=null,v=0,g=0,B=0;continue}if(B=Math.max(U+R.fontProperties.descent,B),q*n+g>=d){if(g===0)throw new Error(`[BitmapFont] textureWidth ${o}px is too small (fontFamily: '${h.fontFamily}', fontSize: ${h.fontSize}px, char: '${I}')`);--j,v+=B*n,v=Math.ceil(v),g=0,B=0;continue}t8(C,w,R,g,v,n,h);let re=ao(R.text);p.char.push({id:re,page:T.length-1,x:g/n,y:v/n,width:q,height:U,xoffset:0,yoffset:0,xadvance:z-(h.dropShadow?h.dropShadowDistance:0)-(h.stroke?h.strokeThickness:0)}),g+=(q+2*s)*n,g=Math.ceil(g)}for(let j=0,I=c.length;j1?b0.from(bf,Df,t):b0.from(Z2,Ef,t)}render(e){let t=this.renderer,i=this.quad,s=i.vertices;s[0]=s[6]=e._width*-e.anchor.x,s[1]=s[3]=e._height*-e.anchor.y,s[2]=s[4]=e._width*(1-e.anchor.x),s[5]=s[7]=e._height*(1-e.anchor.y);let n=e.uvRespectAnchor?e.anchor.x:0,o=e.uvRespectAnchor?e.anchor.y:0;s=i.uvs,s[0]=s[6]=-n,s[1]=s[3]=-o,s[2]=s[4]=1-n,s[5]=s[7]=1-o,i.invalidate();let a=e._texture,l=a.baseTexture,c=l.alphaMode>0,h=e.tileTransform.localTransform,d=e.uvMatrix,p=l.isPowerOfTwo&&a.frame.width===l.width&&a.frame.height===l.height;p&&(l._glTextures[t.CONTEXT_UID]?p=l.wrapMode!==dr.CLAMP:l.wrapMode===dr.CLAMP&&(l.wrapMode=dr.REPEAT));let g=p?this.simpleShader:this.shader,v=a.width,C=a.height,w=e._width,k=e._height;Sd.set(h.a*v/w,h.b*v/k,h.c*C/w,h.d*C/k,h.tx/w,h.ty/k),Sd.invert(),p?Sd.prepend(d.mapCoord):(g.uniforms.uMapCoord=d.mapCoord.toArray(!0),g.uniforms.uClampFrame=d.uClampFrame,g.uniforms.uClampOffset=d.uClampOffset),g.uniforms.uTransform=Sd.toArray(!0),g.uniforms.uColor=Me.shared.setValue(e.tint).premultiply(e.worldAlpha,c).toArray(g.uniforms.uColor),g.uniforms.translationMatrix=e.transform.worldTransform.toArray(!0),g.uniforms.uSampler=a,t.shader.bind(g),t.geometry.bind(i),this.state.blendMode=ae.correctBlendMode(e.blendMode,c),t.state.set(this.state),t.geometry.draw(this.renderer.gl.TRIANGLES,6,0)}};kc.extension={name:"tilingSprite",type:Z.RendererPlugin};te.add(kc);var Ic=class{constructor(r,e,t=null){this.linkedSheets=[],this._texture=r instanceof Se?r:null,this.baseTexture=r instanceof we?r:this._texture.baseTexture,this.textures={},this.animations={},this.data=e;let i=this.baseTexture.resource;this.resolution=this._updateResolution(t||(i?i.url:null)),this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}_updateResolution(r=null){let{scale:e}=this.data.meta,t=ae.getResolutionOfUrl(r,null);return t===null&&(t=parseFloat(e??"1")),t!==1&&this.baseTexture.setResolution(t),t}parse(){return new Promise(r=>{this._callback=r,this._batchIndex=0,this._frameKeys.length<=Ic.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}_processFrames(r){let e=r,t=Ic.BATCH_SIZE;for(;e-r{this._batchIndex*Ic.BATCH_SIZE{i[s]=e}),Object.keys(e.textures).forEach(s=>{i[s]=e.textures[s]}),!t){let s=ae.path.dirname(r[0]);e.linkedSheets.forEach((n,o)=>{let a=Cf([`${s}/${e.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(i,a)})}return i}var wf={extension:Z.Asset,cache:{test:r=>r instanceof Lc,getCacheableAssets:(r,e)=>Cf(r,e,!1)},resolver:{test:r=>{let t=r.split("?")[0].split("."),i=t.pop(),s=t.pop();return i==="json"&&HS.includes(s)},parse:r=>{let e=r.split(".");return{resolution:parseFloat(K.RETINA_PREFIX.exec(r)?.[1]??"1"),format:e[e.length-2],src:r}}},loader:{name:"spritesheetLoader",extension:{type:Z.LoadParser,priority:jt.Normal},async testParse(r,e){return ae.path.extname(e.src).toLowerCase()===".json"&&!!r.frames},async parse(r,e,t){let i=ae.path.dirname(e.src);i&&i.lastIndexOf("/")!==i.length-1&&(i+="/");let s=i+r.meta.image;s=ro(s,e.src);let o=(await t.load([s]))[s],a=new Lc(o.baseTexture,r,e.src);await a.parse();let l=r?.meta?.related_multi_packs;if(Array.isArray(l)){let c=[];for(let d of l){if(typeof d!="string")continue;let p=i+d;e.data?.ignoreMultiPack||(p=ro(p,e.src),c.push(t.load({src:p,data:{ignoreMultiPack:!0}})))}let h=await Promise.all(c);a.linkedSheets=h,h.forEach(d=>{d.linkedSheets=[a].concat(a.linkedSheets.filter(p=>p!==d))})}return a},unload(r){r.destroy(!0)}}};te.add(wf);var Mi=class{constructor(){this.info=[],this.common=[],this.page=[],this.char=[],this.kerning=[],this.distanceField=[]}};var Ni=class{static test(e){return typeof e=="string"&&e.startsWith("info face=")}static parse(e){let t=e.match(/^[a-z]+\s+.+$/gm),i={info:[],common:[],page:[],char:[],chars:[],kerning:[],kernings:[],distanceField:[]};for(let n in t){let o=t[n].match(/^[a-z]+/gm)[0],a=t[n].match(/[a-zA-Z]+=([^\s"']+|"([^"]*)")/gm),l={};for(let c in a){let h=a[c].split("="),d=h[0],p=h[1].replace(/"/gm,""),g=parseFloat(p),v=isNaN(g)?p:g;l[d]=v}i[o].push(l)}let s=new Mi;return i.info.forEach(n=>s.info.push({face:n.face,size:parseInt(n.size,10)})),i.common.forEach(n=>s.common.push({lineHeight:parseInt(n.lineHeight,10)})),i.page.forEach(n=>s.page.push({id:parseInt(n.id,10),file:n.file})),i.char.forEach(n=>s.char.push({id:parseInt(n.id,10),page:parseInt(n.page,10),x:parseInt(n.x,10),y:parseInt(n.y,10),width:parseInt(n.width,10),height:parseInt(n.height,10),xoffset:parseInt(n.xoffset,10),yoffset:parseInt(n.yoffset,10),xadvance:parseInt(n.xadvance,10)})),i.kerning.forEach(n=>s.kerning.push({first:parseInt(n.first,10),second:parseInt(n.second,10),amount:parseInt(n.amount,10)})),i.distanceField.forEach(n=>s.distanceField.push({distanceRange:parseInt(n.distanceRange,10),fieldType:n.fieldType})),s}};var Cs=class{static test(e){let t=e;return"getElementsByTagName"in t&&t.getElementsByTagName("page").length&&t.getElementsByTagName("info")[0].getAttribute("face")!==null}static parse(e){let t=new Mi,i=e.getElementsByTagName("info"),s=e.getElementsByTagName("common"),n=e.getElementsByTagName("page"),o=e.getElementsByTagName("char"),a=e.getElementsByTagName("kerning"),l=e.getElementsByTagName("distanceField");for(let c=0;c")?Cs.test(K.ADAPTER.parseXML(e)):!1}static parse(e){return Cs.parse(K.ADAPTER.parseXML(e))}};var Q2=[Ni,Cs,ws];function J2(r){for(let e=0;e=a-U*n){if(v===0)throw new Error(`[BitmapFont] textureHeight ${a}px is too small (fontFamily: '${h.fontFamily}', fontSize: ${h.fontSize}px, char: '${I}')`);--j,C=null,w=null,k=null,v=0,g=0,B=0;continue}if(B=Math.max(U+R.fontProperties.descent,B),q*n+g>=d){if(g===0)throw new Error(`[BitmapFont] textureWidth ${o}px is too small (fontFamily: '${h.fontFamily}', fontSize: ${h.fontSize}px, char: '${I}')`);--j,v+=B*n,v=Math.ceil(v),g=0,B=0;continue}t8(C,w,R,g,v,n,h);let re=ao(R.text);p.char.push({id:re,page:T.length-1,x:g/n,y:v/n,width:q,height:U,xoffset:0,yoffset:0,xadvance:z-(h.dropShadow?h.dropShadowDistance:0)-(h.stroke?h.strokeThickness:0)}),g+=(q+2*s)*n,g=Math.ceil(g)}for(let j=0,I=c.length;j{this.dirty=!0},this,0,0),this._roundPixels=K.ROUND_PIXELS,this.dirty=!0,this._resolution=K.RESOLUTION,this._autoResolution=!0,this._textureCache={}}updateText(){let r=S0.available[this._fontName],e=this.fontSize,t=e/r.size,i=new Ne,s=[],n=[],o=[],a=this._text.replace(/(?:\r\n|\r)/g,` `)||" ",l=Mc(a),c=this._maxWidth*r.size/e,h=r.distanceFieldType==="none"?Ff:Af,d=null,p=0,g=0,v=0,C=-1,w=0,k=0,B=0,L=0;for(let U=0;U0&&i.x>c&&(++k,ae.removeItems(s,1+C-k,1+U-C),U=C,C=-1,n.push(w),o.push(s.length>0?s[s.length-1].prevSpaces:0),g=Math.max(g,w),v++,i.x=0,i.y+=r.lineHeight,d=null,L=0)}let T=l[l.length-1];T!=="\r"&&T!==` -`&&(/(?:\s)/.test(T)&&(p=w),n.push(p),g=Math.max(g,p),o.push(-1));let W=[];for(let U=0;U<=v;U++){let q=0;this._align==="right"?q=g-n[U]:this._align==="center"?q=(g-n[U])/2:this._align==="justify"&&(q=o[U]<0?0:(g-n[U])/o[U]),W.push(q)}let j=s.length,I={},R=[],z=this._activePagesMeshData;h.push(...z);for(let U=0;U6*re)||q.vertices.lengthe[s.mesh.texture.baseTexture.uid]).forEach(s=>{s.mesh.texture=Se.EMPTY});for(let s in e)e[s].destroy(),delete e[s];this._font=null,this._tintColor=null,this._textureCache=null,super.destroy(r)}},Lf=If;Lf.styleDefaults={align:"left",tint:16777215,maxWidth:0,letterSpacing:0};var HS=[".xml",".fnt"],Mf={extension:{type:Z.LoadParser,priority:jt.Normal},name:"loadBitmapFont",test(r){return HS.includes(ae.path.extname(r).toLowerCase())},async testParse(r){return Ni.test(r)||ws.test(r)},async parse(r,e,t){let i=Ni.test(r)?Ni.parse(r):ws.parse(r),{src:s}=e,{page:n}=i,o=[];for(let c=0;ca[c]);return S0.install(i,l,!0)},async load(r,e){return(await K.ADAPTER.fetch(r)).text()},unload(r){r.destroy()}};te.add(Mf);var Ia=class extends s0{constructor(){super(...arguments),this._fonts=[],this._overrides=[],this._stylesheet="",this.fontsDirty=!1}static from(r){return new Ia(Object.keys(Ia.defaultOptions).reduce((e,t)=>({...e,[t]:r[t]}),{}))}cleanFonts(){this._fonts.length>0&&(this._fonts.forEach(r=>{URL.revokeObjectURL(r.src),r.refs--,r.refs===0&&(r.fontFace&&document.fonts.delete(r.fontFace),delete Ia.availableFonts[r.originalUrl])}),this.fontFamily="Arial",this._fonts.length=0,this.styleID++,this.fontsDirty=!0)}loadFont(r,e={}){let{availableFonts:t}=Ia;if(t[r]){let i=t[r];return this._fonts.push(i),i.refs++,this.styleID++,this.fontsDirty=!0,Promise.resolve()}return K.ADAPTER.fetch(r).then(i=>i.blob()).then(async i=>new Promise((s,n)=>{let o=URL.createObjectURL(i),a=new FileReader;a.onload=()=>s([o,a.result]),a.onerror=n,a.readAsDataURL(i)})).then(async([i,s])=>{let n=Object.assign({family:ae.path.basename(r,ae.path.extname(r)),weight:"normal",style:"normal",src:i,dataSrc:s,refs:1,originalUrl:r,fontFace:null},e);t[r]=n,this._fonts.push(n),this.styleID++;let o=new FontFace(n.family,`url(${n.src})`,{weight:n.weight,style:n.style});n.fontFace=o,await o.load(),document.fonts.add(o),await document.fonts.ready,this.styleID++,this.fontsDirty=!0})}addOverride(...r){let e=r.filter(t=>!this._overrides.includes(t));e.length>0&&(this._overrides.push(...e),this.styleID++)}removeOverride(...r){let e=r.filter(t=>this._overrides.includes(t));e.length>0&&(this._overrides=this._overrides.filter(t=>!e.includes(t)),this.styleID++)}toCSS(r){return[`transform: scale(${r})`,"transform-origin: top left","display: inline-block",`color: ${this.normalizeColor(this.fill)}`,`font-size: ${this.fontSize}px`,`font-family: ${this.fontFamily}`,`font-weight: ${this.fontWeight}`,`font-style: ${this.fontStyle}`,`font-variant: ${this.fontVariant}`,`letter-spacing: ${this.letterSpacing}px`,`text-align: ${this.align}`,`padding: ${this.padding}px`,`white-space: ${this.whiteSpace}`,...this.lineHeight?[`line-height: ${this.lineHeight}px`]:[],...this.wordWrap?[`word-wrap: ${this.breakWords?"break-all":"break-word"}`,`max-width: ${this.wordWrapWidth}px`]:[],...this.strokeThickness?[`-webkit-text-stroke-width: ${this.strokeThickness}px`,`-webkit-text-stroke-color: ${this.normalizeColor(this.stroke)}`,`text-stroke-width: ${this.strokeThickness}px`,`text-stroke-color: ${this.normalizeColor(this.stroke)}`,"paint-order: stroke"]:[],...this.dropShadow?[this.dropShadowToCSS()]:[],...this._overrides].join(";")}toGlobalCSS(){return this._fonts.reduce((r,e)=>`${r} +`&&(/(?:\s)/.test(T)&&(p=w),n.push(p),g=Math.max(g,p),o.push(-1));let W=[];for(let U=0;U<=v;U++){let q=0;this._align==="right"?q=g-n[U]:this._align==="center"?q=(g-n[U])/2:this._align==="justify"&&(q=o[U]<0?0:(g-n[U])/o[U]),W.push(q)}let j=s.length,I={},R=[],z=this._activePagesMeshData;h.push(...z);for(let U=0;U6*re)||q.vertices.lengthe[s.mesh.texture.baseTexture.uid]).forEach(s=>{s.mesh.texture=Se.EMPTY});for(let s in e)e[s].destroy(),delete e[s];this._font=null,this._tintColor=null,this._textureCache=null,super.destroy(r)}},Lf=If;Lf.styleDefaults={align:"left",tint:16777215,maxWidth:0,letterSpacing:0};var jS=[".xml",".fnt"],Mf={extension:{type:Z.LoadParser,priority:jt.Normal},name:"loadBitmapFont",test(r){return jS.includes(ae.path.extname(r).toLowerCase())},async testParse(r){return Ni.test(r)||ws.test(r)},async parse(r,e,t){let i=Ni.test(r)?Ni.parse(r):ws.parse(r),{src:s}=e,{page:n}=i,o=[];for(let c=0;ca[c]);return S0.install(i,l,!0)},async load(r,e){return(await K.ADAPTER.fetch(r)).text()},unload(r){r.destroy()}};te.add(Mf);var Ia=class extends s0{constructor(){super(...arguments),this._fonts=[],this._overrides=[],this._stylesheet="",this.fontsDirty=!1}static from(r){return new Ia(Object.keys(Ia.defaultOptions).reduce((e,t)=>({...e,[t]:r[t]}),{}))}cleanFonts(){this._fonts.length>0&&(this._fonts.forEach(r=>{URL.revokeObjectURL(r.src),r.refs--,r.refs===0&&(r.fontFace&&document.fonts.delete(r.fontFace),delete Ia.availableFonts[r.originalUrl])}),this.fontFamily="Arial",this._fonts.length=0,this.styleID++,this.fontsDirty=!0)}loadFont(r,e={}){let{availableFonts:t}=Ia;if(t[r]){let i=t[r];return this._fonts.push(i),i.refs++,this.styleID++,this.fontsDirty=!0,Promise.resolve()}return K.ADAPTER.fetch(r).then(i=>i.blob()).then(async i=>new Promise((s,n)=>{let o=URL.createObjectURL(i),a=new FileReader;a.onload=()=>s([o,a.result]),a.onerror=n,a.readAsDataURL(i)})).then(async([i,s])=>{let n=Object.assign({family:ae.path.basename(r,ae.path.extname(r)),weight:"normal",style:"normal",src:i,dataSrc:s,refs:1,originalUrl:r,fontFace:null},e);t[r]=n,this._fonts.push(n),this.styleID++;let o=new FontFace(n.family,`url(${n.src})`,{weight:n.weight,style:n.style});n.fontFace=o,await o.load(),document.fonts.add(o),await document.fonts.ready,this.styleID++,this.fontsDirty=!0})}addOverride(...r){let e=r.filter(t=>!this._overrides.includes(t));e.length>0&&(this._overrides.push(...e),this.styleID++)}removeOverride(...r){let e=r.filter(t=>this._overrides.includes(t));e.length>0&&(this._overrides=this._overrides.filter(t=>!e.includes(t)),this.styleID++)}toCSS(r){return[`transform: scale(${r})`,"transform-origin: top left","display: inline-block",`color: ${this.normalizeColor(this.fill)}`,`font-size: ${this.fontSize}px`,`font-family: ${this.fontFamily}`,`font-weight: ${this.fontWeight}`,`font-style: ${this.fontStyle}`,`font-variant: ${this.fontVariant}`,`letter-spacing: ${this.letterSpacing}px`,`text-align: ${this.align}`,`padding: ${this.padding}px`,`white-space: ${this.whiteSpace}`,...this.lineHeight?[`line-height: ${this.lineHeight}px`]:[],...this.wordWrap?[`word-wrap: ${this.breakWords?"break-all":"break-word"}`,`max-width: ${this.wordWrapWidth}px`]:[],...this.strokeThickness?[`-webkit-text-stroke-width: ${this.strokeThickness}px`,`-webkit-text-stroke-color: ${this.normalizeColor(this.stroke)}`,`text-stroke-width: ${this.strokeThickness}px`,`text-stroke-color: ${this.normalizeColor(this.stroke)}`,"paint-order: stroke"]:[],...this.dropShadow?[this.dropShadowToCSS()]:[],...this._overrides].join(";")}toGlobalCSS(){return this._fonts.reduce((r,e)=>`${r} @font-face { font-family: "${e.family}"; src: url('${e.dataSrc}'); @@ -1261,7 +1261,7 @@ void main(void)\r opacity: ${ue.DEFAULT_FOLDER_STYLE.fillOpacity}; padding: ${ue.DEFAULT_FOLDER_STYLE.padding.top}px ${ue.DEFAULT_FOLDER_STYLE.padding.right}px ${ue.DEFAULT_FOLDER_STYLE.padding.bottom}px ${ue.DEFAULT_FOLDER_STYLE.padding.left}px; }`,t=u.settings.cssSnippetFilename;if(!u.app.customCss.enabledSnippets.has(t))return;let i=[...u.app.customCss.csscache.entries()].find(s=>fi(s[0],".css").basename===t);i&&(this.instances.extendedStyleEl.innerHTML=e+` -`+i[1])}getGraphComputedStyle(e,t={}){if(!this.instances.extendedStyleEl)return;let i=this.instances.type==="localgraph"?"graph-local":"graph-global";this.detachCSSDiv();let s=this.instances.extendedStyleEl.ownerDocument.createElement("div",{});if(this.instances.extendedStyleEl.ownerDocument.body.appendChild(s),s.classList.add("graph-view",i,e),s.id=Rf,this.instances.type==="localgraph"){let o=this.instances.view;o.file&&s.setAttribute("data-focus-file",o.file.path)}return t.path&&s.setAttribute("data-path",t.path),t.source&&s.setAttribute("data-source",t.source),t.target&&s.setAttribute("data-target",t.target),t.isCurrent&&s.classList.add("is-current"),s.style.borderStyle="solid",getComputedStyle(s)}getTextStyle(e,t={}){if(!this.instances.extendedStyleEl)return ue.DEFAULT_TEXT_STYLE;let i=this.getGraphComputedStyle(e,t);if(!i)return ue.DEFAULT_TEXT_STYLE;let s=i.fontFamily,n=this.getUnitlessValue(i.fontSize,ue.DEFAULT_TEXT_STYLE.fontSize),o=i.fontStyle.toLowerCase();["normal","italic","oblique"].contains(o)||(o=ue.DEFAULT_TEXT_STYLE.fontStyle);let a=i.fontVariant.toLowerCase();["normal","small-caps"].contains(a)||(a=ue.DEFAULT_TEXT_STYLE.fontVariant);let l=i.fontWeight.toLowerCase();["normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900"].contains(l)||(l=ue.DEFAULT_TEXT_STYLE.fontWeight);let c=this.getTextShadow(i),h=this.getTextStroke(i),d=this.getUnitlessValue(i.letterSpacing,ue.DEFAULT_TEXT_STYLE.letterSpacing),p=this.getGraphComputedStyle("color-text",t)?.color??ue.DEFAULT_TEXT_STYLE.fill,g={fontFamily:s,fontSize:n,fontStyle:o,fontVariant:a,fontWeight:l,letterSpacing:d,fill:p,dropShadow:c,stroke:h};return this.detachCSSDiv(),g}getNodeTextStyle(e){return this.getTextStyle("node-text",{path:e,isCurrent:e&&this.instances.type==="localgraph"?this.instances.nodesSet.extendedElementsMap.get(e)?.isCurrentNode:void 0})}getLinkLabelStyle(e={}){let t=this.getTextStyle("link-text",e),i=this.getGraphComputedStyle("link-text",e);if(!i)return ue.DEFAULT_LINK_LABEL_STYLE;let s=this.getUnitlessValue(i.borderRadius,ue.DEFAULT_LINK_LABEL_STYLE.radius),n=this.getUnitlessValue(i.borderWidth,ue.DEFAULT_LINK_LABEL_STYLE.borderWidth),o={left:this.getUnitlessValue(i.paddingLeft,ue.DEFAULT_LINK_LABEL_STYLE.padding.left),top:this.getUnitlessValue(i.paddingTop,ue.DEFAULT_LINK_LABEL_STYLE.padding.top),right:this.getUnitlessValue(i.paddingRight,ue.DEFAULT_LINK_LABEL_STYLE.padding.right),bottom:this.getUnitlessValue(i.paddingBottom,ue.DEFAULT_LINK_LABEL_STYLE.padding.bottom)};return{textStyle:t,borderWidth:n,padding:o,radius:s,backgroundColor:si(i.backgroundColor),borderColor:si(i.borderColor)}}getFolderStyle(e){let t=this.getTextStyle("folder",{path:e}),i=this.getGraphComputedStyle("folder",{path:e});if(!i)return ue.DEFAULT_FOLDER_STYLE;let s=i.textAlign.toLowerCase();["left","center","right"].contains(s)||(s=ue.DEFAULT_FOLDER_STYLE.textStyle.align);let n=this.getUnitlessValue(i.borderRadius,ue.DEFAULT_FOLDER_STYLE.radius),o=this.getUnitlessValue(i.borderWidth,ue.DEFAULT_FOLDER_STYLE.borderWidth),a={left:this.getUnitlessValue(i.paddingLeft,ue.DEFAULT_FOLDER_STYLE.padding.left),top:this.getUnitlessValue(i.paddingTop,ue.DEFAULT_FOLDER_STYLE.padding.top),right:this.getUnitlessValue(i.paddingRight,ue.DEFAULT_FOLDER_STYLE.padding.right),bottom:this.getUnitlessValue(i.paddingBottom,ue.DEFAULT_FOLDER_STYLE.padding.bottom)},l=i.opacity.toLowerCase(),c=ue.DEFAULT_FOLDER_STYLE.fillOpacity;c=parseFloat(l.toLowerCase()),isNaN(c)?c=ue.DEFAULT_FOLDER_STYLE.fillOpacity:c=Math.clamp(c,0,1);let h=Math.min(c*15,1),d={textStyle:{textStyle:t,align:s},radius:n,borderWidth:o,fillOpacity:c,strokeOpacity:h,padding:a};return this.detachCSSDiv(),d}detachCSSDiv(){this.instances.extendedStyleEl?.ownerDocument.getElementById(Rf)?.remove()}getUnitlessValue(e,t){e=e.toLowerCase();let i=t;return i=parseFloat(e.substring(0,e.length-2)),isNaN(i)&&(i=t),i}getTextShadow(e){let t=e.textShadow;if(!t||t==="none")return;let i=t.match(/((^rgba?\(\d+,\s?\d+,\s?\d+(?:,\s?\d+(?:\.\d+)?)?\))(.*))*/);if(!i)return;let s=si(i[2]),n=i[3].split(",")[0].trim().split(" ");if(n.length!==3)return;let o=this.getUnitlessValue(n[0],0),a=this.getUnitlessValue(n[1],0),l=e.getPropertyValue("--text-shadow-current-color");return{distance:Math.sqrt(o*o+a*a),angle:Math.atan2(a,o),blur:this.getUnitlessValue(n[2],0),color:s.rgb,alpha:s.a,offsetX:o,offsetY:a,useCurrentColor:["true","currentcolor"].contains(l.toLowerCase())}}getTextStroke(e){let t=this.getUnitlessValue(e.webkitTextStrokeWidth,0);if(!(t<=0)){if(e.webkitTextStrokeColor){let i=si(e.webkitTextStrokeColor);return{width:t,color:i.a>0?i.rgb:ue.backgroundColor}}return{width:t,color:ue.backgroundColor}}}getPrimaryColor(){return si(window.getComputedStyle(this.instances.renderer.interactiveEl).getPropertyValue("--color-base-100")).rgb}getSearchColor(){return si(window.getComputedStyle(this.instances.renderer.interactiveEl).getPropertyValue("--text-highlight-bg")).rgb}getThemeColor(e){return si(window.getComputedStyle(this.instances.renderer.interactiveEl).getPropertyValue("--color-"+e)).rgb}static isNodeTextStyleDefault(e){return e.fontStyle==="normal"&&e.fontVariant==="normal"&&e.fontWeight==="normal"&&e.letterSpacing===0}static colorAttributes2hex(e){return as(e.rgb,e.a)}static getCSSSplitRGB(e){return`${$0(e)}, ${q0(e)}, ${Y0(e)}`}static applyTextShadow(e,t,i){e.dropShadow=!0,e.dropShadowAlpha=t.alpha,e.dropShadowBlur=t.blur,e.dropShadowColor=t.useCurrentColor?i:t.color,e.dropShadowDistance=0,e.dropShadowAngle=0,e.padding=t.blur}static applyTextStroke(e,t){t.width<=0||(e.stroke=t.color,e.strokeThickness=t.width,e.lineJoin="round")}static computeBackgroundColor(e){let t=window.getComputedStyle(e.interactiveEl).backgroundColor,i=e.interactiveEl;for(;t.startsWith("rgba(")&&t.endsWith(", 0)")&&i.parentElement;)i=i.parentElement,t=window.getComputedStyle(i).backgroundColor;return ue.backgroundColor=si(t).rgb,ue.backgroundColor}};ue.DEFAULT_TEXT_STYLE={fontFamily:'ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Inter", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Microsoft YaHei Light", sans-serif',fontSize:14,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",letterSpacing:0},ue.DEFAULT_FOLDER_STYLE={textStyle:{textStyle:ue.DEFAULT_TEXT_STYLE,align:"center"},radius:50,borderWidth:2,fillOpacity:.03,strokeOpacity:.03*15,padding:{left:0,top:0,right:0,bottom:0}},ue.DEFAULT_LINK_LABEL_STYLE={textStyle:ue.DEFAULT_TEXT_STYLE,radius:0,borderWidth:0,padding:{left:0,top:0,right:0,bottom:0},borderColor:{rgb:0,a:0},backgroundColor:{rgb:0,a:0}};var $e=ue;var Gf=require("obsidian");var wd=class extends Gf.Component{constructor(e){super(),this.instances=e,this.instances.graph=this,this.initializeInteractiveManagers(),this.instances.settings.enableFeatures[this.instances.type].layers&&(this.instances.layersManager=new co(this.instances)),this.instances.nodesSet=new Ad(this.instances,this.getNodeManagers()),this.instances.linksSet=new Fd(this.instances,this.getLinkManagers()),e.settings.enableFeatures[e.type].folders&&(this.instances.foldersSet=new _d(this.instances,this.getFolderManagers())),this.overrideOnOptionsChange()}initializeInteractiveManagers(){let e=this.getInteractiveManagerKeys();for(let t of e){let i=new Td(this.instances,t);this.instances.interactiveManagers.set(t,i),this.addChild(i)}}getInteractiveManagerKeys(){let e=[];if(this.instances.settings.enableFeatures[this.instances.type].properties)for(let t in this.instances.settings.additionalProperties)this.instances.settings.additionalProperties[t][this.instances.type]&&e.push(t);return this.instances.settings.enableFeatures[this.instances.type].tags&&e.push(He),this.instances.settings.enableFeatures[this.instances.type].links&&e.push(ne),this.instances.settings.enableFeatures[this.instances.type].folders&&e.push(pe),e}getNodeManagers(){return Array.from(this.instances.interactiveManagers.values()).filter(e=>e.name!==ne&&e.name!==pe)}getLinkManagers(){let e=this.instances.interactiveManagers.get(ne);return e?[e]:[]}getFolderManagers(){let e=this.instances.interactiveManagers.get(pe);return e?[e]:[]}overrideOnOptionsChange(){this.onOptionsChangeOriginal=this.instances.view.onOptionsChange,this.instances.view.onOptionsChange=()=>{}}onload(){this.initSets().then(()=>{this.instances.graphEventsDispatcher.onGraphReady()}).catch(e=>{console.error(e)})}async initSets(){await this.delay(this.instances.settings.delay),this.instances.nodesSet.load(),this.instances.linksSet.load(),this.instances.foldersSet?.load()}delay(e){return new Promise(t=>setTimeout(t,e))}onunload(){this.restoreOriginalFunctions(),this.instances.layersManager?.unload(),this.instances.nodesSet.unload(),this.instances.linksSet.unload(),this.instances.foldersSet?.unload()}restoreOriginalFunctions(){this.instances.view.onOptionsChange=this.onOptionsChangeOriginal}disableLinkTypes(e){for(let t of e)this.instances.linksSet.disableType(ne,t)}enableLinkTypes(e){for(let t of e)this.instances.linksSet.enableType(ne,t)}disableNodeInteractiveTypes(e,t){let i=[];for(let s of t)i=i.concat(this.instances.nodesSet.disableType(e,s));if(this.instances.settings.fadeOnDisable&&i.length>0)this.fadeOutNodes(i);else if(i.length>0){let s=[...this.instances.linksSet.extendedElementsMap.values()].filter(n=>(i.includes(n.coreElement.source.id)||i.includes(n.coreElement.target.id))&&n.isEnabled);for(let n of s)n.disable()}}enableNodeInteractiveTypes(e,t){let i=[];for(let s of t)i=i.concat(this.instances.nodesSet.enableType(e,s));this.instances.settings.fadeOnDisable&&i.length>0&&this.fadeInNodes(i)}fadeOutNodes(e){for(let t of e){let i=this.instances.nodesSet.extendedElementsMap.get(t);i&&i.graphicsWrapper?.makeFaded()}return!1}fadeInNodes(e){for(let t of e){let i=this.instances.nodesSet.extendedElementsMap.get(t);i&&i.graphicsWrapper?.makeOpaque()}return!1}};var uo=require("obsidian");var Zf=St(kd()),Qf=St(Ld());var Md=class{constructor(e){this.instances=e}filterData(e){this.excludeNodes(e),this.addExternalLinks(e);let t=[],i=[],s=Object.entries(e.nodes);for(let[n,o]of s){if(this.flagAsPotentialOrphan(o,n,i))continue;let a=qe(n);if(!(a&&(this.filterLinksByFolders(o,n,i)||(this.ignoreInlineLinks(a,o),this.filterLinksByTypes(a,o,n,t),this.flagAsPotentialOrphan(o,n,i))))){for(let l of t)delete e.nodes[l];t=[]}}return e=this.filterOrphans(e,i),u.graphsManager.updateStatusBarItem(this.instances.view.leaf,Object.keys(e.nodes).length),e}excludeNodes(e){let t=[];for(let[s,n]of Object.entries(e.nodes))this.shouldRemoveNode(s,n)&&t.push(s);let i=Object.keys(e.nodes).filter(s=>!t.includes(s));for(let s of t){delete e.nodes[s];for(let n of i.filter(o=>s in e.nodes[o].links))delete e.nodes[n].links[s]}}shouldRemoveNode(e,t){for(let i of this.instances.settings.filterAbstractFiles)if(new RegExp(i.regex,i.flag).test(e))return!0;if(this.instances.settings.enableFeatures[this.instances.type].layers&&this.instances.layersManager?.isEnabled&&(this.instances.settings.nodesWithoutLayerOpacity===0&&this.instances.layersManager.notInLayers.nodeIDs.contains(e)||this.instances.layersManager.nodeLookup[e]?.group.alpha===0))return!0;if(!this.instances.settings.fadeOnDisable){let i=qe(e);if(i)for(let[s,n]of this.instances.nodesSet.managers){let o=ct(s,i,this.instances.settings);if(o.size===0&&o.add(this.instances.settings.interactiveSettings[s].noneType),o.size>0&&!n.isActiveBasedOnTypes([...o]))return!0}else if(t.type==="tag"&&this.instances.settings.enableFeatures[this.instances.type].tags){let s=this.instances.interactiveManagers.get(He);if(s&&!s.isActiveBasedOnTypes([e.replace("#","")]))return!0}}return!1}filterOrphans(e,t){if(!this.instances.engine.options.showOrphans){let n=Object.values(e.nodes);for(let o of t)n.find(a=>o in a.links)||delete e.nodes[o]}let i=Object.values(e.nodes),s=Object.entries(e.nodes).filter(([n,o])=>(o.type==="unresolved"||o.type==="tag")&&!i.find(a=>n in a.links));for(let n of s)delete e.nodes[n[0]];return e}filterLinksByFolders(e,t,i){let s=(o,a)=>Jf(a)?.test(o)??o.startsWith(a);if(this.instances.settings.enableFeatures[this.instances.type].links&&this.instances.settings.excludedSourcesFolder.find(o=>s(t,o)))return e.links={},!0;let n=Object.keys(e.links);for(let o of n)this.instances.settings.enableFeatures[this.instances.type].links&&this.instances.settings.excludedTargetsFolder.find(a=>s(o,a))&&delete e.links[o];return Object.keys(e.links).length===0?(this.instances.engine.options.showOrphans||i.push(t),!0):!1}ignoreInlineLinks(e,t){if(!this.instances.settings.ignoreInlineLinks||!t.links)return;let i=u.app.metadataCache.getFileCache(e)?.frontmatterLinks;if(!i){t.links={};return}let s=i.map(n=>u.app.metadataCache.getFirstLinkpathDest(n.link,e.path)?.path??n.link);for(let n of Object.keys(t.links))s.contains(n)||delete t.links[n]}filterLinksByTypes(e,t,i,s){for(let[n,o]of this.instances.linksSet.managers){let a=Lo(this.instances.settings,e),l=new Map([...a.entries()].reduce((c,h)=>(h[1]=new Set([...h[1]].filter(d=>o.getTypes().includes(d))),h[1].size>0&&c.push(h),c),[]));for(let[c,h]of l)c in t.links&&h.size>0&&!o.isActiveBasedOnTypes([...h])&&(delete t.links[c],this.instances.settings.disableSource&&s.push(i),this.instances.settings.disableTarget&&s.push(c));if(!o.isActiveBasedOnTypes([this.instances.settings.interactiveSettings[o.name].noneType])){let c=Object.keys(t.links).filter(h=>!l.has(h));for(let h of c)delete t.links[h]}}}flagAsPotentialOrphan(e,t,i){return Object.keys(e.links).length===0?(this.instances.engine.options.showOrphans||i.push(t),!0):!1}addExternalLinks(e){if(!this.instances.engine.options.showAttachments||this.instances.settings.ignoreInlineLinks)return;let t=[],i=Object.keys(e.nodes);for(let s of i){let n=this.instances.nodesSet.getExternalLinks(s);for(let o of n)o.href&&(e.numLinks++,e.nodes[s].links[o.href]=!0,o.href in e.nodes||(t.push(o.href),e.nodes[o.href]={color:this.instances.renderer.colors.fillAttachment,type:"attachment",links:{}})),o.domain&&(e.numLinks++,o.domain in e.nodes||(t.push(o.domain),e.nodes[o.domain]={color:this.instances.renderer.colors.fillAttachment,type:"attachment",links:{}}),o.href?e.nodes[o.href].links[o.domain]=!0:e.nodes[s].links[o.domain]=!0)}if(this.instances.type==="localgraph"&&t.length>0){let s=this.instances.view.file?.path,n=this.instances.engine.options.localJumps??1,o=new Zf.default;for(let l in e.nodes){o.hasNode(l)||o.addNode(l);for(let c in e.nodes[l].links)o.hasNode(c)||o.addNode(c),o.addDirectedEdge(l,c)}let a=(0,Qf.undirectedSingleSourceLength)(o,s);for(let l of t)a[l]>n&&(delete e.nodes[l],e.numLinks--)}}};var Wu=class extends uo.Component{constructor(t,i){super();this.isLocalResetting=!1;this.listenStage=!0;t.graphEventsDispatcher=this,this.instances=t,this.reloadStateDuringInit=i,this.instances.cssBridge=new $e(t),this.addChild(this.instances.cssBridge),this.instances.interactiveEventsDispatcher=new Nd(t),this.addChild(this.instances.interactiveEventsDispatcher),this.instances.filter=new Md(this.instances),this.initializeGraph(),this.initializeUI(),this.initializeFoldersUI()}initializeGraph(){new wd(this.instances),this.addChild(this.instances.graph)}initializeUI(){this.initializeLayersUI(),this.initializeLegendUI(),this.instances.statesUI=new Od(this.instances),this.instances.statesUI.updateStatesList(),this.addChild(this.instances.statesUI)}initializeLegendUI(){let t=this.instances.settings;(t.enableFeatures[this.instances.type].links||t.enableFeatures[this.instances.type].tags||this.hasAdditionalProperties(t))&&(this.instances.legendUI=new Rd(this.instances),this.addChild(this.instances.legendUI))}initializeFoldersUI(){if(!this.instances.settings.enableFeatures[this.instances.type].folders||!u.graphsManager.globalUIs.get(this.instances.view.leaf.id)?.control)return;let i=this.instances.foldersSet?.managers.get(pe);i&&(this.instances.foldersUI=new Gd(this.instances,i),this.instances.foldersUI.display())}initializeLayersUI(){this.instances.settings.enableFeatures[this.instances.type].layers&&(this.instances.layersUI=new Bd(this.instances),this.addChild(this.instances.layersUI))}hasAdditionalProperties(t){return t.enableFeatures[this.instances.type].properties&&Object.values(t.additionalProperties).some(i=>i[this.instances.type])}onload(){this.loadCurrentStateEngineOptions(),this.initGraphologyStats(),this.createSetDataProxy()}loadCurrentStateEngineOptions(){if(!this.reloadStateDuringInit)return;let t=u.settings.states.find(i=>i.id===this.instances.statesUI.currentStateID);if(t){this.instances.engine.setOptions(t.engineOptions);for(let i of this.instances.renderer.nodes)i.fontDirty=!0}}onGraphReady(){try{this.updateOpacityLayerColor(),this.isLocalResetting?(this.isLocalResetting=!1,this.instances.layersManager?.isEnabled&&(this.instances.layersManager.updateLayers(),this.instances.engine.render()),this.instances.stateData&&(this.instances.statePinnedNodes=structuredClone(this.instances.stateData.pinNodes)??{})):(this.bindStageEvents(),this.inputsManager=new Pd(this.instances),this.createRenderCallbackProxy(),this.createInitGraphicsProxy(),this.createDestroyGraphicsProxy(),this.changeArrowAlpha(),this.removeLineHighlight(),this.loadLastFilteringAction(),this.registerEventsForLastFilteringAction(),this.reloadStateDuringInit&&u.statesManager.changeState(this.instances,this.instances.statesUI.currentStateID),this.instances.layersManager?.isEnabled?(this.instances.layersManager.updateLayers(),this.instances.engine.render()):this.instances.stateData?.enableLayers&&this.instances.layersManager?.enable()),u.graphsManager.onPluginLoaded(this.instances.view),this.instances.settings.fadeInElements?this.instances.renderer.changed():this.instances.renderer.idleFrames>60&&(this.instances.renderer.idleFrames=60,this.instances.renderer.queueRender())}catch(t){this.listenStage=!1,typeof t=="string"?console.error(t.toUpperCase()):t instanceof Error&&console.error(t.message),u.graphsManager.disablePluginFromLeafID(this.instances.view.leaf.id);return}}updateOpacityLayerColor(){this.instances.settings.fadeOnDisable&&this.instances.nodesSet.updateOpacityLayerColor()}bindStageEvents(){this.onChildAddedToStage=this.onChildAddedToStage.bind(this),this.instances.renderer.hanger.on("childAdded",this.onChildAddedToStage),this.onChildRemovedFromStage=this.onChildRemovedFromStage.bind(this),this.instances.renderer.hanger.on("childRemoved",this.onChildRemovedFromStage)}createRenderCallbackProxy(){let t=this.beforeRenderCallback.bind(this);u.proxysManager.registerProxy(this.instances.renderer,"renderCallback",{apply(i,s,n){return t(),Reflect.apply(i,s,n)}})}initGraphologyStats(){Xe.needDynamicGraphology(this.instances)&&(this.instances.graphologyGraph=new zr(this.instances),Xe.needDynamicGraphology(this.instances,{element:"node",stat:"size"})&&(this.instances.nodesSizeCalculator=cr.getCalculator("size",this.instances),this.instances.nodesSizeCalculator?.computeStats(this.instances.settings.graphStatsDirection).catch(t=>{console.error(t),new uo.Notice(`${m("notices.nodeStatSizeFailed")} (${is[this.instances.settings.nodesSizeFunction]}). ${m("notices.functionToDefault")}`),this.instances.settings.nodesSizeFunction="default",this.instances.nodesSizeCalculator=void 0})),Xe.needDynamicGraphology(this.instances,{element:"node",stat:"color"})&&(this.instances.nodesColorCalculator=cr.getCalculator("color",this.instances),this.instances.nodesColorCalculator?.computeStats(this.instances.settings.graphStatsDirection).catch(t=>{console.error(t),new uo.Notice(`${m("notices.nodeStatColorFailed")} (${is[this.instances.settings.nodesColorFunction]}). ${m("notices.functionToDefault")}`),this.instances.settings.nodesColorFunction="default",this.instances.nodesColorCalculator=void 0})),Xe.needDynamicGraphology(this.instances,{element:"link",stat:"size"})&&(this.instances.linksSizeCalculator=Ps.getCalculator("size",this.instances),this.instances.linksSizeCalculator?.computeStats(this.instances.settings.graphStatsDirection).catch(t=>{console.error(t),new uo.Notice(`${m("notices.linkStatSizeFailed")} (${rs[this.instances.settings.linksSizeFunction]}). ${m("notices.functionToDefault")}`),this.instances.settings.linksSizeFunction="default",this.instances.linksSizeCalculator=void 0})),Xe.needDynamicGraphology(this.instances,{element:"link",stat:"color"})&&(this.instances.linksColorCalculator=Ps.getCalculator("color",this.instances),this.instances.linksColorCalculator?.computeStats(this.instances.settings.graphStatsDirection).catch(t=>{console.error(t),new uo.Notice(`${m("notices.linkStatColorFailed")} (${rs[this.instances.settings.linksColorFunction]}). ${m("notices.functionToDefault")}`),this.instances.settings.linksColorFunction="default",this.instances.linksColorCalculator=void 0})))}createSetDataProxy(){let t=this.updateData.bind(this),i=this.instances;u.proxysManager.registerProxy(this.instances.renderer,"setData",{apply(s,n,o){let a=t(o[0]);if(a){o[0]=a;let l=Reflect.apply(s,n,o);return i.graphologyGraph?.buildGraphology(),l}else return!1}})}createDestroyGraphicsProxy(){let t=this.beforeDestroyGraphics.bind(this);u.proxysManager.registerProxy(this.instances.renderer,"destroyGraphics",{apply(i,s,n){return t(),Reflect.apply(i,s,n)}})}createInitGraphicsProxy(){let t=this.afterInitGraphics.bind(this);u.proxysManager.registerProxy(this.instances.renderer,"initGraphics",{apply(i,s,n){let o=Reflect.apply(i,s,n);return t(),o}})}changeArrowAlpha(){!this.instances.settings.enableFeatures[this.instances.type].arrows||!this.instances.settings.opaqueArrowsButKeepFading||(this.coreArrowAlpha=this.instances.renderer.colors.arrow.a,this.instances.renderer.colors.arrow.a=1)}removeLineHighlight(){this.instances.settings.noLineHighlight&&(this.coreLineHighlightColor=this.instances.renderer.colors.lineHighlight,this.instances.renderer.colors.lineHighlight=this.instances.renderer.colors.line)}loadLastFilteringAction(){this.lastFilteringAction={id:void 0,searchNew:this.instances.engine.filterOptions.search.getValue()||"",searchOld:this.instances.engine.filterOptions.search.getValue()||"",showTagsNew:this.instances.engine.options.showTags||!1,showTagsOld:this.instances.engine.options.showTags||!1,showAttachmentsNew:this.instances.engine.options.showAttachments||!1,showAttachmentsOld:this.instances.engine.options.showAttachments||!1,hideUnresolvedNew:this.instances.engine.options.hideUnresolved||!1,hideUnresolvedOld:this.instances.engine.options.hideUnresolved||!1,showOrphansNew:this.instances.engine.options.showOrphans||!0,showOrphansOld:this.instances.engine.options.showOrphans||!0,localJumpsNew:this.instances.engine.options.localJumps||1,localJumpsOld:this.instances.engine.options.localJumps||1,localForelinksNew:this.instances.engine.options.localForelinks||!0,localForelinksOld:this.instances.engine.options.localForelinks||!0,localBacklinksNew:this.instances.engine.options.localBacklinks||!0,localBacklinksOld:this.instances.engine.options.localBacklinks||!0,interactives:{key:"",types:[]},stateIDNew:this.instances.statesUI.currentStateID,stateIDOld:this.instances.statesUI.currentStateID,record:!0,userChange:!1}}registerEventsForLastFilteringAction(){if(!this.lastFilteringAction)return;let t=this.lastFilteringAction;this.instances.engine.filterOptions.search.changeCallback&&u.proxysManager.registerProxy(this.instances.engine.filterOptions.search,"changeCallback",{apply(s,n,o){return t.record&&(t.id="core-search",t.userChange=!0,t.searchOld=t.searchNew,t.searchNew=o[0]),Reflect.apply(s,n,o)}}),this.updateLastCheckboxToggled=this.updateLastCheckboxToggled.bind(this);let i=this.instances.view.contentEl.querySelectorAll(".graph-control-section.mod-filter .checkbox-container");for(let s of Array.from(i))s.addEventListener("mousedown",this.updateLastCheckboxToggled);u.proxysManager.registerProxy(this.instances.engine,"options",{set(s,n,o,a){return t.record&&(n==="showTags"?(t.id="core-tags",t.userChange=!0,t.showTagsOld=t.showTagsNew,t.showTagsNew=o):n==="showAttachments"?(t.id="core-attachments",t.userChange=!0,t.showAttachmentsOld=t.showAttachmentsNew,t.showAttachmentsNew=o):n==="hideUnresolved"?(t.id="core-hide-unresolved",t.userChange=!0,t.hideUnresolvedOld=t.hideUnresolvedNew,t.hideUnresolvedNew=o):n==="showOrphans"?(t.id="core-orphans",t.userChange=!0,t.showOrphansOld=t.showOrphansNew,t.showOrphansNew=o):n==="localJumps"?(t.id="core-local-jumps",t.userChange=!0,t.localJumpsOld=t.localJumpsNew,t.localJumpsNew=o):n==="localForelinks"?(t.id="core-local-forelinks",t.userChange=!0,t.localForelinksOld=t.localForelinksNew,t.localForelinksNew=o):n==="localBacklinks"&&(t.id="core-local-backlinks",t.userChange=!0,t.localBacklinksOld=t.localBacklinksNew,t.localBacklinksNew=o)),Reflect.set(s,n,o,a)}})}setLastFilteringActionAsStateChange(t){!this.lastFilteringAction||!this.lastFilteringAction.record||(this.lastFilteringAction.id="plugin-state-change",this.lastFilteringAction.userChange=!0,this.lastFilteringAction.stateIDOld=this.lastFilteringAction.stateIDNew,this.lastFilteringAction.stateIDNew=t)}setLastFilteringActionAsInteractive(t,i){!this.lastFilteringAction||!this.lastFilteringAction.record||t!==pe&&(this.lastFilteringAction.id="plugin-interactives",this.lastFilteringAction.userChange=!0,this.lastFilteringAction.interactives={key:t,types:i})}updateLastCheckboxToggled(t){this.lastCheckboxContainerToggled=t.currentTarget}reloadLocalDispatcher(){this.instances.type==="localgraph"&&(this.isLocalResetting=!0,this.instances.graph.unload(),this.instances.graph.load())}onunload(){this.unbindStageEvents(),u.proxysManager.unregisterProxy(this.instances.renderer.renderCallback),u.proxysManager.unregisterProxy(this.instances.renderer.setData),u.proxysManager.unregisterProxy(this.instances.renderer.destroyGraphics),u.proxysManager.unregisterProxy(this.instances.renderer.initGraphics),this.instances.foldersUI?.destroy(),this.inputsManager.unload(),u.graphsManager.onPluginUnloaded(this.instances.view),this.restoreArrowAlpha(),this.restoreLineHighlight(),this.unregisterEventsForLastFilteringAction(),this.instances.engine.render()}unbindStageEvents(){this.instances.renderer.hanger.off("childAdded",this.onChildAddedToStage),this.instances.renderer.hanger.off("childRemoved",this.onChildRemovedFromStage)}restoreArrowAlpha(){this.coreArrowAlpha!==void 0&&(this.instances.renderer.colors.arrow.a=this.coreArrowAlpha,this.coreArrowAlpha=void 0)}restoreLineHighlight(){this.coreLineHighlightColor!==void 0&&(this.instances.renderer.colors.lineHighlight=this.coreLineHighlightColor,this.coreLineHighlightColor=void 0)}unregisterEventsForLastFilteringAction(){u.proxysManager.unregisterProxy(this.instances.engine.filterOptions.search.changeCallback);let t=this.instances.view.contentEl.querySelectorAll(".graph-control-section.mod-filter .checkbox-container");for(let i of Array.from(t))i.addEventListener("mousedown",this.updateLastCheckboxToggled);u.proxysManager.unregisterProxy(this.instances.engine.options)}onChildAddedToStage(t,i,s){if(!this.listenStage)return;let n=this.instances.renderer.nodes.find(a=>a.circle===t);if(n){if(u.graphsManager.isNodeLimitExceededForView(this.instances.view)){this.listenStage=!1,setTimeout(()=>{u.graphsManager.disablePluginFromLeafID(this.instances.view.leaf.id)},200);return}let a=this.instances.nodesSet.extendedElementsMap.get(n.id);a?(a.setCoreElement(n),this.instances.layersManager?.addNode(n.id)):this.instances.nodesSet.load();let l=qe(n.id),c=this.instances.foldersSet?.managers.get(pe);if(l&&c){let h=ct(pe,l);for(let d of h)c.isActive(d)&&this.instances.foldersSet?.loadFolder(pe,d)}}let o=this.instances.renderer.links.find(a=>a.px===t||a.arrow===t);if(o){let a=c=>{let h=this.instances.linksSet.extendedElementsMap.get(Wt(c));h?h.setCoreElement(c):this.instances.linksSet.load(Wt(c)),this.instances.layersManager?.addLinkToContainer(c)},l=c=>c.line&&(!this.instances.renderer.fShowArrow||!!c.arrow);l(o)?a(o):o.px===t&&t.on("childAdded",(c,h,d)=>{c instanceof Oa||l(o)&&a(o)})}if("text"in t){let a=this.instances.renderer.nodes.find(l=>l.text===t);if(a){let l=this.instances.nodesSet.extendedElementsMap.get(a.id);l&&l.extendedText.init()}}}onChildRemovedFromStage(t,i,s){if(this.listenStage&&this.instances.foldersSet)for(let[n,o]of this.instances.foldersSet.foldersMap){let a=o.nodes.filter(l=>l.circle===null);for(let l of a)o.removeNode(l);a.length>0&&o.updateGraphics(this.instances.renderer.scale)}}updateData(t){t=this.instances.filter.filterData(t);for(let s of this.instances.linksSet.extendedElementsMap.values()){let n=!(s.coreElement.source.id in t.nodes)||!(s.coreElement.target.id in t.nodes)||!(s.coreElement.target.id in t.nodes[s.coreElement.source.id].links);s.isEnabled&&n?s.disable():!s.isEnabled&&!n&&s.enable()}let i=this.lastFilteringAction?.userChange||!0;if(this.lastFilteringAction&&(this.lastFilteringAction.userChange=!1),u.graphsManager.isNodeLimitExceededForData(t,i))if(u.settings.revertAction&&this.lastFilteringAction){this.revertLastFilteringAction();return}else{this.listenStage=!1,setTimeout(()=>{u.graphsManager.disablePluginFromLeafID(this.instances.view.leaf.id)},200);return}return t}beforeDestroyGraphics(){this.instances.cssBridge.unload(),this.unbindStageEvents(),this.inputsManager.unbindStageEvents(),u.proxysManager.unregisterProxy(this.instances.renderer.renderCallback),this.instances.layersManager?.destroyContainers();for(let t of this.instances.nodesSet.extendedElementsMap.values())u.proxysManager.unregisterProxy(t.coreElement.text);for(let t of this.instances.linksSet.extendedElementsMap.values())t.restoreCoreElement()}showDestroyed(t,i=[],s=1){if("children"in t)for(let n of t.children)if(n.destroyed)console.debug(s),console.debug(i),console.debug(n);else{let o=[...i];o.push(Object.getPrototypeOf(n).constructor.name),this.showDestroyed(n,o,s+1)}}afterInitGraphics(){setTimeout(()=>{this.instances.cssBridge.load();for(let t of this.instances.linksSet.extendedElementsMap.values())t.init();for(let t of this.instances.nodesSet.extendedElementsMap.values())t.init();if(this.instances.nodesSet.onCSSChange(),this.instances.foldersSet?.initGraphics(),this.createRenderCallbackProxy(),this.instances.layersManager?.rebuildContainers(),this.instances.settings.enableFeatures[this.instances.type].focus){if(this.instances.settings.highlightOpenNodes)for(let t of u.graphsManager.openNodes)this.instances.nodesSet.extendedElementsMap.get(t)?.toggleOpenInTab(!0);if(this.instances.settings.highlightSearchResults)for(let t of u.graphsManager.getSearchResults())this.instances.nodesSet.extendedElementsMap.get(t)?.toggleIsSearchResult(!0)}this.bindStageEvents(),this.inputsManager.bindStageEvents(),this.instances.renderer.changed()},this.instances.settings.delay)}beforeRenderCallback(){if(this.instances.statePinnedNodes&&new yt(this.instances).setPinnedNodesFromState(),this.instances.foldersSet&&this.instances.foldersSet.updateGraphics(),this.instances.settings.enableFeatures[this.instances.type].links&&(this.instances.settings.interactiveSettings[ne].showOnGraph||this.instances.settings.curvedLinks||this.instances.settings.displayLinkTypeLabel))for(let t of this.instances.linksSet.connectedIDs){let i=this.instances.linksSet.extendedElementsMap.get(t);i&&(i.graphicsWrapper?.pixiElement.updateFrame(),i.updateRenderedTexts())}}revertLastFilteringAction(){if(!this.lastFilteringAction||this.lastFilteringAction.id===void 0){this.listenStage=!1,u.graphsManager.disablePluginFromLeafID(this.instances.view.leaf.id);return}switch(this.lastFilteringAction.id){case"core-search":this.instances.engine.filterOptions.search.inputEl.blur(),this.lastFilteringAction.searchNew=this.lastFilteringAction.searchOld,this.instances.engine.filterOptions.search.inputEl.value=this.lastFilteringAction.searchOld,this.instances.engine.updateSearch();break;case"core-tags":this.lastCheckboxContainerToggled?.dispatchEvent(new Event("click")),this.lastFilteringAction.showTagsNew=this.lastFilteringAction.showTagsOld;break;case"core-attachments":this.lastCheckboxContainerToggled?.dispatchEvent(new Event("click")),this.lastFilteringAction.showAttachmentsNew=this.lastFilteringAction.showAttachmentsOld;break;case"core-hide-unresolved":this.lastCheckboxContainerToggled?.dispatchEvent(new Event("click")),this.lastFilteringAction.hideUnresolvedNew=this.lastFilteringAction.hideUnresolvedOld;break;case"core-orphans":this.lastCheckboxContainerToggled?.dispatchEvent(new Event("click")),this.lastFilteringAction.showOrphansNew=this.lastFilteringAction.showOrphansOld;break;case"core-local-jumps":this.lastCheckboxContainerToggled?.dispatchEvent(new Event("click")),this.lastFilteringAction.localJumpsNew=this.lastFilteringAction.localJumpsOld;break;case"core-local-forelinks":this.lastCheckboxContainerToggled?.dispatchEvent(new Event("click")),this.lastFilteringAction.localForelinksNew=this.lastFilteringAction.localForelinksOld;break;case"core-local-backlinks":this.lastCheckboxContainerToggled?.dispatchEvent(new Event("click")),this.lastFilteringAction.localBacklinksNew=this.lastFilteringAction.localBacklinksOld;break;case"plugin-interactives":let t=this.instances.interactiveManagers.get(this.lastFilteringAction.interactives.key);if(t){t.disable(this.lastFilteringAction.interactives.types);for(let i of this.lastFilteringAction.interactives.types)this.instances.legendUI?.disableUI(this.lastFilteringAction.interactives.key,i)}break;case"plugin-state-change":this.lastFilteringAction.stateIDNew!==this.lastFilteringAction.stateIDOld&&(this.lastFilteringAction.stateIDNew=this.lastFilteringAction.stateIDOld,this.instances.statesUI.setValue(this.lastFilteringAction.stateIDOld),u.statesManager.changeState(this.instances,this.lastFilteringAction.stateIDOld));break}}changeState(t){this.setLastFilteringActionAsStateChange(t),u.statesManager.changeState(this.instances,t)}};var e5=require("obsidian");var Nd=class extends e5.Component{constructor(e){super(),this.instances=e}onInteractivesAdded(e,t){e===ne?this.onLinkTypesAdded(t):e===pe?this.onFoldersAdded(t):this.onNodeInteractiveTypesAdded(e,t)}onInteractivesRemoved(e,t){e===ne?this.onLinkTypesRemoved(t):e===pe?this.onFoldersRemoved(t):this.onNodeInteractiveTypesRemoved(e,t)}onInteractiveColorChanged(e,t,i){e===ne?this.onLinkColorChanged(t,i):e===pe?this.onFolderColorChanged(t,i):this.onNodeInteractiveColorChanged(e,t,i)}onInteractivesDisabled(e,t){e===ne?(this.instances.graph.disableLinkTypes(t),this.instances.engine.render(),this.instances.renderer.changed()):e===pe?this.disableFolders(t):(this.instances.graph.disableNodeInteractiveTypes(e,t),this.instances.settings.fadeOnDisable||this.instances.engine.render(),this.instances.renderer.changed())}onInteractivesEnabled(e,t){this.instances.graphEventsDispatcher.setLastFilteringActionAsInteractive(e,t),e===ne?(this.instances.graph.enableLinkTypes(t),this.instances.engine.render(),this.instances.renderer.changed()):e===pe?this.enableFolders(t):(this.instances.graph.enableNodeInteractiveTypes(e,t),this.instances.settings.fadeOnDisable||this.instances.engine.render(),this.instances.renderer.changed())}onInteractivesLogicChanged(e){if(e===ne)for(let[t,i]of this.instances.linksSet.extendedElementsMap){let s=i.isAnyManagerDisabled();i.isEnabled&&s?i.disable():!i.isEnabled&&!s&&i.enable()}}onNodeInteractiveTypesAdded(e,t){if(this.instances.legendUI)for(let[i,s]of t)this.instances.legendUI.add(e,i,s);this.instances.nodesSet.resetArcs(e),this.instances.renderer.changed()}onNodeInteractiveTypesRemoved(e,t){this.instances.legendUI?.remove(e,t),this.instances.nodesSet.resetArcs(e),this.instances.renderer.changed()}onNodeInteractiveColorChanged(e,t,i){this.instances.nodesSet.updateTypeColor(e,t,i),this.instances.legendUI?.update(e,t,i),this.instances.renderer.changed()}onLinkTypesAdded(e){if(this.instances.legendUI)for(let[t,i]of e)this.instances.legendUI.add(ne,t,i);this.instances.settings.interactiveSettings[ne].enableByDefault&&(e.forEach((t,i)=>{this.instances.linksSet.updateTypeColor(ne,i,t)}),this.instances.renderer.changed())}onLinkTypesRemoved(e){this.instances.legendUI?.remove(ne,e)}onLinkColorChanged(e,t){this.instances.linksSet.updateTypeColor(ne,e,t),this.instances.legendUI?.update(ne,e,t),this.instances.renderer.changed()}onFoldersAdded(e){if(this.instances.foldersUI)for(let[t,i]of e)this.instances.foldersUI.add(pe,t,i);if(this.instances.settings.interactiveSettings[pe].enableByDefault&&this.instances.foldersSet){for(let[t,i]of e)this.instances.foldersSet.loadFolder(pe,t);this.instances.renderer.changed()}}onFoldersRemoved(e){this.instances.foldersUI?.remove(pe,e);for(let t of e)this.removeBBox(t)}onFolderColorChanged(e,t){this.instances.foldersSet&&(this.instances.foldersSet.updateColor(pe,e),this.instances.foldersUI?.update(pe,e,t),this.instances.renderer.changed())}disableFolders(e){this.instances.graphEventsDispatcher.listenStage=!1;for(let t of e)this.removeBBox(t);this.instances.graphEventsDispatcher.listenStage=!0}enableFolders(e){this.instances.graphEventsDispatcher.listenStage=!1;for(let t of e)this.addBBox(t);this.instances.graphEventsDispatcher.listenStage=!0}addBBox(e){this.instances.foldersSet&&(this.instances.foldersSet.loadFolder(pe,e),this.instances.renderer.changed())}removeBBox(e){this.instances.foldersSet&&(this.instances.foldersSet.removeFolder(e),this.instances.renderer.changed())}};var t5=require("obsidian");var c8=class{constructor(e,t){this.type=e,this.color=t,this.isActive=!0}setColor(e){this.color=e}},Td=class extends t5.Component{constructor(e,t){super(),this.interactives=new Map,this.instances=e,this.name=t}disable(e){let t=[];e.forEach(i=>{let s=this.interactives.get(i);s&&(s.isActive=!1,t.push(i))}),t.length>0&&this.instances.interactiveEventsDispatcher.onInteractivesDisabled(this.name,t)}enable(e){let t=[];e.forEach(i=>{let s=this.interactives.get(i);s&&(s.isActive=!0,t.push(i))}),t.length>0&&this.instances.interactiveEventsDispatcher.onInteractivesEnabled(this.name,t)}isActive(e){let t=this.interactives.get(e);return t?t.isActive:!1}isActiveBasedOnTypes(e){this.addTypes(e.filter(i=>!this.interactives.has(i)));let t=this.getTypes().filter(i=>this.isActive(i));switch(Bn.getLogicType(this.instances,this.name)){case"AND":return t.every(i=>e.includes(i));case"OR":return t.some(i=>e.includes(i))}}setColor(e,t){let i=this.interactives.get(e);i&&(i.setColor(t),this.instances.interactiveEventsDispatcher.onInteractiveColorChanged(this.name,e,t))}removeTypes(e){e.forEach(t=>{this.interactives.delete(t)}),this.recomputeColors(),this.instances.interactiveEventsDispatcher.onInteractivesRemoved(this.name,e)}addTypes(e){if([...e].length===0)return;let t=new Map,i=new Set([...this.interactives.keys(),...e].sort()),s=new Set(i);s.delete(this.instances.settings.interactiveSettings[this.name].noneType),e.forEach(n=>{if(Xe.excludeType(this.instances.settings,this.name,n)||this.interactives.has(n))return;let o=this.tryComputeColorFromType(n);if(!o){let a=s.size,l=[...s].indexOf(n);o=this.computeColorFromIndex(l,a)}t.set(n,o),this.interactives.set(n,new c8(n,o))}),this.interactives=new Map([...this.interactives.entries()].sort()),this.recomputeColors(),t.size>0&&this.instances.interactiveEventsDispatcher.onInteractivesAdded(this.name,t)}getColor(e){let t=this.interactives.get(e);return t?t.color:0}getTypes(){return Array.from(this.interactives.keys())}getTypesWithoutNone(){let e=this.getTypes();return e.remove(this.instances.settings.interactiveSettings[this.name].noneType),e}update(e){this.interactives.clear(),this.addTypes(e)}recomputeColors(){this.interactives.forEach((e,t)=>{let i=this.tryComputeColorFromType(t);i&&this.setColor(t,i)})}recomputeColor(e){if(!this.interactives.has(e))return;let t=this.tryComputeColorFromType(e);t&&this.setColor(e,t)}tryComputeColorFromType(e){let t,i=this.instances.settings.interactiveSettings[this.name].colors.find(s=>s.type===e||s.recursive&&e.startsWith(s.type.endsWith("/")?s.type:s.type+"/"))?.color;if(i)t=Vr(i);else if(e===this.instances.settings.interactiveSettings[this.name].noneType)this.name===ne?t=this.instances.renderer.colors.line.rgb:t=V6;else{let s=[...this.interactives.keys()];s.remove(this.instances.settings.interactiveSettings[this.name].noneType);let n=s.length,o=s.indexOf(e);if(o<0)return null;t=this.computeColorFromIndex(o,n)}return t}computeColorFromIndex(e,t){let i=t===1?.5:e/(t-1);return zs(i,this.instances.settings.interactiveSettings[this.name].colormap,this.instances.settings)}};var ho=require("obsidian");var Pd=class{constructor(e){this.isListeningToUnselect=!1;this.isSelecting=!1;this.isDragging=!1;this.instances=e,this.selectionRectangle=new lt,this.selectionRectangle.eventMode="none",this.bindStageEvents(),this.changeNodeOnClick(),this.preventDraggingPinnedNodes()}bindStageEvents(){this.onPointerDownOnStage=this.onPointerDownOnStage.bind(this),this.instances.renderer.px.stage.on("pointerdown",this.onPointerDownOnStage),this.onPointerUpOnStage=this.onPointerUpOnStage.bind(this),this.instances.renderer.px.stage.on("pointerup",this.onPointerUpOnStage),this.onPointerMoveOnStage=this.onPointerMoveOnStage.bind(this),this.instances.renderer.px.stage.on("pointermove",this.onPointerMoveOnStage),this.onPointerUpOnWindow=this.onPointerUpOnWindow.bind(this),this.onInputToUnselectNodes=this.onInputToUnselectNodes.bind(this)}changeNodeOnClick(){(this.instances.settings.openInNewTab||this.instances.settings.externalLinks!=="none")&&(this.onNodeClick=this.onNodeClick.bind(this),this.coreOnNodeClick=this.instances.renderer.onNodeClick,this.instances.renderer.onNodeClick=this.onNodeClick),(this.instances.settings.useRadialMenu||this.instances.settings.pinNodeModifier)&&(this.onNodeRightClick=this.onNodeRightClick.bind(this),this.coreOnNodeRightClick=this.instances.renderer.onNodeRightClick,this.instances.renderer.onNodeRightClick=this.onNodeRightClick)}unload(){this.unbindStageEvents(),this.restoreOnNodeClick()}unbindStageEvents(){this.instances.renderer.px.stage.off("pointerdown",this.onPointerDownOnStage),this.instances.renderer.px.stage.off("pointerup",this.onPointerUpOnStage),this.instances.renderer.px.stage.off("pointermove",this.onPointerMoveOnStage),this.instances.renderer.interactiveEl.win.window.removeEventListener("mouseup",this.onPointerUpOnWindow),this.instances.renderer.interactiveEl.win.window.removeEventListener("mouseup",this.onInputToUnselectNodes),this.instances.renderer.interactiveEl.win.window.removeEventListener("keydown",this.onInputToUnselectNodes)}restoreOnNodeClick(){this.coreOnNodeClick&&(this.instances.renderer.onNodeClick=this.coreOnNodeClick,this.coreOnNodeClick=void 0),this.coreOnNodeRightClick&&(this.instances.renderer.onNodeRightClick=this.coreOnNodeRightClick,this.coreOnNodeRightClick=void 0)}onPointerDownOnStage(e){this.preventDraggingPinnedNodes(),e.button===0&&ho.Keymap.isModifier(e,u.settings.selectNodeModifier)&&!this.instances.renderer.dragNode&&(this.selectionStartPosition=e.getLocalPosition(this.instances.renderer.hanger),this.selectionRectangle.parent!==this.instances.renderer.hanger&&ze(this.instances.renderer.hanger,this.selectionRectangle),this.selectionRectangle.clear(),this.selectionRectangle.visible=!0,this.preventPan(),this.instances.renderer.interactiveEl.win.window.addEventListener("mouseup",this.onPointerUpOnWindow),this.isSelecting=!0)}onPointerUpOnStage(){this.pinDraggingPinnedNode()}onPointerUpOnWindow(e){e.button===0&&(this.selectionRectangle.visible=!1,this.allowPan(),this.instances.renderer.interactiveEl.win.window.removeEventListener("mouseup",this.onPointerUpOnWindow),this.isSelecting=!1,this.instances.nodesSet.selectNodesInRectangle(this.selectionRectangle.getLocalBounds()))}startListeningToUnselectNodes(){this.isListeningToUnselect||(this.isListeningToUnselect=!0,this.instances.renderer.px.stage.addEventListener("mouseup",this.onInputToUnselectNodes),this.instances.renderer.interactiveEl.win.window.addEventListener("keydown",this.onInputToUnselectNodes))}stopListeningToUnselectNodes(){this.instances.renderer.px.stage.removeEventListener("mouseup",this.onInputToUnselectNodes),this.instances.renderer.interactiveEl.win.window.removeEventListener("keydown",this.onInputToUnselectNodes),this.isListeningToUnselect=!1}preventPan(){let e=this.instances.renderer;u.proxysManager.registerProxy(this.instances.renderer,"setPan",{apply(t,i,s){return e.panvX=0,e.panvY=0,e.panning=!1,!1}})}allowPan(){u.proxysManager.unregisterProxy(this.instances.renderer.setPan)}onPointerMoveOnStage(e){if(this.isSelecting){let t=e.getLocalPosition(this.instances.renderer.hanger);this.selectionRectangle.clear(),this.selectionRectangle.beginFill(9990901,.1),this.selectionRectangle.lineStyle(2,9990901,.3),this.selectionRectangle.drawRect(Math.min(this.selectionStartPosition.x,t.x),Math.min(this.selectionStartPosition.y,t.y),Math.abs(t.x-this.selectionStartPosition.x),Math.abs(t.y-this.selectionStartPosition.y)),this.selectionRectangle.endFill()}else this.instances.nodesSet.moveSelectedNodes(e.getLocalPosition(this.instances.renderer.hanger))}onInputToUnselectNodes(e){if(!("instanceOf"in e&&e.instanceOf(KeyboardEvent))||e.key==="Escape"){if("target"in e&&this.instances.renderer.nodes.find(t=>t.circle===e.target)&&!this.isDragging)return;this.isDragging?(this.isDragging=!1,this.instances.nodesSet.stopMovingSelectedNodes()):(this.instances.nodesSet.unselectNodes(),this.instances.renderer.changed())}}onNodeClick(e,t,i){if(e&&u.settings.useLeftClickToSelect&&ho.Keymap.isModifier(e,u.settings.selectNodeModifier)){this.instances.nodesSet.selectNodes([this.instances.renderer.nodeLookup[t]]);return}if(this.instances.settings.externalLinks!=="none"&&i==="attachment")try{let s;for(let n of Object.values(this.instances.nodesSet.cachedExternalLinks))if(s=n.find(o=>{let a=this.instances.nodesSet.convertExternalLink(o);return a.domain===t||a.href===t||o.toString()===t}),s)break;if(s){if(u.settings.externalLinkOpenMode==="choice"||u.settings.externalLinkOpenMode==="note"){let n=this.findExternalLinkFiles(t);if(u.settings.externalLinkOpenMode==="note"&&n.length>0){this.instances.settings.openInNewTab?u.app.workspace.openLinkText(n[0].path,"","tab"):u.app.workspace.openLinkText(n[0].path,"",ho.Keymap.isModEvent(e));return}else if(n.length>0){new Vd(n,a=>{a?this.instances.settings.openInNewTab?u.app.workspace.openLinkText(a.path,"","tab"):u.app.workspace.openLinkText(a.path,"",ho.Keymap.isModEvent(e)):window.open(s.href,"")}).open();return}}window.open(s.href,"");return}}catch(s){console.error(s)}if(this.instances.settings.openInNewTab&&i!=="tag"){u.app.workspace.openLinkText(t,"","tab");return}this.coreOnNodeClick&&this.coreOnNodeClick(e,t,i)}onNodeRightClick(e,t,i){if(e&&u.settings.useRadialMenu&&ho.Keymap.isModifier(e,u.settings.radialMenuModifier)){new Ud(this.instances,t,i).open(e);return}if(e&&u.settings.pinNodeModifier&&ho.Keymap.isModifier(e,u.settings.pinNodeModifier)){let s=new yt(this.instances);this.instances.nodesSet.isNodePinned(t)?s.unpinNode(t):s.pinNode(t);return}this.coreOnNodeRightClick&&this.coreOnNodeRightClick(e,t,i)}findExternalLinkFiles(e){let t=[],i=[],s=[];for(let n of u.app.vault.getMarkdownFiles())for(let o of u.settings.externalLinksProperties){let a=ct(o,n);for(let l of a)try{let c=new URL(l);if(c.toString()===e){if(t.push(n),u.settings.externalLinkOpenMode==="note")return t}else c.origin+c.pathname===e?i.push(n):c.hostname===e&&s.push(n)}catch{continue}}return t.concat(i).concat(s)}onNodeMenuOpened(e,t){e.addSections(["extended-graph"]),e.addItem(i=>{this.instances.nodesSet.isNodePinned(t.path)?(i.iconEl.addClass("extended-graph-pin-off"),i.setIcon("pin-off"),i.setTitle(m("features.unpinNode")),i.onClick(()=>{this.unpinNode(t)})):(i.iconEl.addClass("extended-graph-pin"),i.setIcon("pin"),i.setTitle(m("features.pinNode")),i.onClick(()=>{this.pinNode(t)}))})}pinNode(e){new yt(this.instances).pinNode(e.path)}pinNodeFromId(e){new yt(this.instances).pinNode(e)}unpinNode(e){new yt(this.instances).unpinNode(e.path),this.instances.renderer.changed()}unpinNodeFromId(e){new yt(this.instances).unpinNode(e),this.instances.renderer.changed()}preventDraggingPinnedNodes(){let e=this.instances.renderer.dragNode;e&&this.instances.nodesSet.isNodePinned(e.id)&&new yt(this.instances).setLastDraggedPinnedNode(e.id)}pinDraggingPinnedNode(){new yt(this.instances).pinLastDraggedPinnedNode()}};var co=class r{constructor(e){this.layerGroups=[];this.nodeLookup={};this.graphicsArray={circles:new Set,names:new Set,arrows:new Set,links:new Set,linksPixiElements:new Set,linksContainer:new Set};this.isEnabled=!1;this.instances=e,this.currentLevel=e.stateData?.currentLayerLevel??0;let t=this.instances.settings.layersOrder==="ASC"?-1e4:1e4;this.notInLayers={nodeIDs:[],layerGroup:{level:t,alpha:0,layers:[{id:"",level:t,label:"",nodes:[],container:this.getNewContainer("",t)}]}},this.notInLayers.layerGroup.alpha=e.settings.nodesWithoutLayerOpacity,this.notInLayers.layerGroup.layers[0].container.alpha=e.settings.nodesWithoutLayerOpacity}rebuildContainers(){for(let t of this.layerGroups)for(let i of t.layers)if(i.container.destroyed){i.container=this.getNewContainer(i.id,i.level),i.container.alpha=t.alpha;for(let s of i.nodes){let n=this.instances.renderer.nodeLookup[s];n&&this.addToContainer(n)}}let e=this.notInLayers.layerGroup.layers[0];e.container=this.getNewContainer(e.id,e.level),e.container.alpha=this.notInLayers.layerGroup.alpha;for(let t of this.notInLayers.nodeIDs){let i=this.instances.renderer.nodeLookup[t];i&&this.addToContainer(i)}}addNode(e){if(this.nodeLookup[e]){if(this.isEnabled){let i=this.instances.renderer.nodeLookup[e];i&&this.addToContainer(i)}return}let t=qe(e);if(t){let i=r.getNodeLayer(t,this.instances.settings);if(i){let s=this.layerGroups.find(o=>o.level===i.level),n=s?.layers.find(o=>o.id===i.id);s&&n?n.nodes.push(e):(s||(s={level:i.level,layers:[],alpha:1},this.layerGroups.push(s)),n={id:i.id,label:i.label,level:i.level,nodes:[e],container:this.getNewContainer(i.id,i.level)},s.layers.push(n)),this.nodeLookup[e]={group:s,graphLayer:n};return}}if(this.notInLayers.nodeIDs.push(e),this.nodeLookup[e]={group:this.notInLayers.layerGroup,graphLayer:this.notInLayers.layerGroup.layers[0]},this.isEnabled){let i=this.instances.renderer.nodeLookup[e];i&&this.addToContainer(i)}}getNewContainer(e,t){let i=new tt;return i.name="layer-"+e,i.zIndex=this.instances.settings.layersOrder==="ASC"?t:-1*t,ze(this.instances.renderer.hanger,i),i}moveElementsInContainers(){for(let e in this.nodeLookup){let t=this.instances.renderer.nodeLookup[e];t&&this.addToContainer(t)}}add(e,t,i,s){if(!e.destroyed&&e.parent&&(e.parent===this.instances.renderer.hanger||e.parent.name?.startsWith("layer-")&&e.parent!==t.container)){let n=u.proxysManager.getTargetForProxy(e)??e;s!==void 0?Jt(t.container,n,s):ze(t.container,n),this.graphicsArray[i].add(n),n.on("destroyed",()=>{this.graphicsArray[i].delete(n)})}}addToContainer(e){if(!this.isEnabled)return;let t=this.nodeLookup[e.id].graphLayer;if(t){e.circle&&this.add(e.circle,t,"circles"),e.text&&this.add(e.text,t,"names");for(let i of Object.values(e.forward).concat(Object.values(e.reverse)).map(s=>s))this.addLinkToContainer(i)}}addLinkToContainer(e){if(!this.isEnabled)return;let t=this.nodeLookup[e.source.id]?.graphLayer;if(!t)return;let i=Wt(e),s=this.instances.linksSet.extendedElementsMap.get(i),n=this.nodeLookup[e.target.id]?.graphLayer,o=n&&n.levele.level),this.currentLevel)}updateLayers(){this.isEnabled&&(this.sortLayers(),this.updateOpacity(),this.updateUI())}sortLayers(){this.layerGroups.sort((e,t)=>e.level-t.level),this.instances.settings.layersOrder==="DESC"&&this.layerGroups.reverse()}updateOpacity(){let e=this.getCurrentIndex();for(let t=0;t=this.instances.settings.numberOfActiveLayers)return 0;if(!this.instances.settings.useLayerCustomOpacity)return(this.instances.settings.numberOfActiveLayers-i)/this.instances.settings.numberOfActiveLayers;let s=this.layerGroups[t].level;if(s in this.instances.settings.layersCustomOpacity)return this.instances.settings.layersCustomOpacity[s];let n=this.layerGroups.slice(e,e+this.instances.settings.numberOfActiveLayers),o={opacity:1,index:0};for(let c=i;c>=0;c--)if(n[c].level in this.instances.settings.layersCustomOpacity){o={opacity:this.instances.settings.layersCustomOpacity[n[c].level],index:c};break}let a={opacity:0,index:this.instances.settings.numberOfActiveLayers};for(let c=i;c{s.children.length===0&&(s.removeFromParent(),s.destroy())});this.notInLayers.layerGroup.layers[0].container.on("childRemoved",(e,t)=>{t.children.length===0&&(t.removeFromParent(),t.destroy())}),this.moveElementsOutOfContainers()}static parseLayerID(e){let t=e.split("_");if(t.length===0)return{label:e};let i=parseInt(t[0]),s=t.length>1?t.slice(1).join("_"):"";return isNaN(i)&&(i=void 0,s=e),{level:i,label:s}}static getNodeLayer(e,t){for(let i of t.layerProperties.filter(s=>s!=="")){let s=ct(i,e,t);for(let n of s){let o=r.parseLayerID(n);return{id:n,level:o.level??t.layersLevels[e.path]??t.defaultLevelForLayers,label:o.label,levelFromID:o.level!==void 0,levelFromDefault:o.level===void 0&&!(e.path in t.layersLevels)}}}return null}static getAllLayers(e){let t=u.app.vault.getMarkdownFiles(),i=[];for(let s of t)r.addLayerIfNeeded(e,i,s);return r.sortData(e,i),i}static sortData(e,t){t.sort((i,s)=>i.level===s.level?Ri(i.label,s.label):i.level-s.level),e.layersOrder==="DESC"&&t.reverse()}static addLayerIfNeeded(e,t,i){let s=r.getNodeLayer(i,e);s&&(t.some(n=>n.id===s.id)||t.push(s))}};var Ga=class{constructor(e,t,i,s){this.isEnabled=!0;this.instances=e,this.coreElement=t,this.id=this.getID(),this.managers=new Map,this.types=i;for(let n of s){let o=n.name;this.managers.set(o,n)}this.additionalConstruct(),this.needGraphicsWrapper()&&this.createGraphicsWrapper()}additionalConstruct(){}init(){this.graphicsWrapper?.pixiElement.destroyed&&this.graphicsWrapper.createGraphics(),this.graphicsWrapper?.connect(),this.modifyCoreElement()}unload(){this.restoreCoreElement(),this.graphicsWrapper?.disconnect(),this.graphicsWrapper?.clearGraphics(),this.graphicsWrapper?.destroyGraphics()}setCoreElement(e){e&&e!==this.coreElement&&(this.graphicsWrapper?.disconnect(),this.coreElement=e,this.init())}findCoreElement(){return this.isCoreElementUptodate()?this.coreElement:this.getCoreCollection().find(t=>this.isSameCoreElement(t))}isAnyManagerDisabled(){for(let[e,t]of this.managers){let i=this.getTypes(e);if(i.size!==0&&!t.isActiveBasedOnTypes([...i]))return!0}return!1}getActiveType(e){let t=this.managers.get(e);if(!t)return;let i=this.getTypes(e);for(let s of i)if(t.isActive(s))return s}matchesTypes(e,t){let i=this.getTypes(e),s=structuredClone(i),n=structuredClone(t);for(let o of t)i.has(o)&&(s.delete(o),n.remove(o));return{typesToRemove:[...s],typesToAdd:n}}hasType(e,t){return!!this.types.get(e)?.has(t)}getTypes(e){let t=this.types.get(e);return t||new Set}setTypes(e,t){this.types.set(e,t);let i=this.graphicsWrapper?.managerGraphicsMap?.get(e);i&&(i.types=t)}disableType(e,t){this.graphicsWrapper?.managerGraphicsMap?.get(e)?.toggleType(t,!1)}enableType(e,t){this.graphicsWrapper?.managerGraphicsMap?.get(e)?.toggleType(t,!0)}disable(){this.isEnabled=!1}enable(){this.isEnabled=!0,this.init()}};var tC=`attribute vec2 aVertexPosition; +`+i[1])}getGraphComputedStyle(e,t={}){if(!this.instances.extendedStyleEl)return;let i=this.instances.type==="localgraph"?"graph-local":"graph-global";this.detachCSSDiv();let s=this.instances.extendedStyleEl.ownerDocument.createElement("div",{});if(this.instances.extendedStyleEl.ownerDocument.body.appendChild(s),s.classList.add("graph-view",i,e),s.id=Rf,this.instances.type==="localgraph"){let o=this.instances.view;o.file&&s.setAttribute("data-focus-file",o.file.path)}return t.path&&s.setAttribute("data-path",t.path),t.source&&s.setAttribute("data-source",t.source),t.target&&s.setAttribute("data-target",t.target),t.isCurrent&&s.classList.add("is-current"),s.style.borderStyle="solid",getComputedStyle(s)}getTextStyle(e,t={}){if(!this.instances.extendedStyleEl)return ue.DEFAULT_TEXT_STYLE;let i=this.getGraphComputedStyle(e,t);if(!i)return ue.DEFAULT_TEXT_STYLE;let s=i.fontFamily,n=this.getUnitlessValue(i.fontSize,ue.DEFAULT_TEXT_STYLE.fontSize),o=i.fontStyle.toLowerCase();["normal","italic","oblique"].contains(o)||(o=ue.DEFAULT_TEXT_STYLE.fontStyle);let a=i.fontVariant.toLowerCase();["normal","small-caps"].contains(a)||(a=ue.DEFAULT_TEXT_STYLE.fontVariant);let l=i.fontWeight.toLowerCase();["normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900"].contains(l)||(l=ue.DEFAULT_TEXT_STYLE.fontWeight);let c=this.getTextShadow(i),h=this.getTextStroke(i),d=this.getUnitlessValue(i.letterSpacing,ue.DEFAULT_TEXT_STYLE.letterSpacing),p=this.getGraphComputedStyle("color-text",t)?.color??ue.DEFAULT_TEXT_STYLE.fill,g={fontFamily:s,fontSize:n,fontStyle:o,fontVariant:a,fontWeight:l,letterSpacing:d,fill:p,dropShadow:c,stroke:h};return this.detachCSSDiv(),g}getNodeTextStyle(e){return this.getTextStyle("node-text",{path:e,isCurrent:e&&this.instances.type==="localgraph"?this.instances.nodesSet.extendedElementsMap.get(e)?.isCurrentNode:void 0})}getLinkLabelStyle(e={}){let t=this.getTextStyle("link-text",e),i=this.getGraphComputedStyle("link-text",e);if(!i)return ue.DEFAULT_LINK_LABEL_STYLE;let s=this.getUnitlessValue(i.borderRadius,ue.DEFAULT_LINK_LABEL_STYLE.radius),n=this.getUnitlessValue(i.borderWidth,ue.DEFAULT_LINK_LABEL_STYLE.borderWidth),o={left:this.getUnitlessValue(i.paddingLeft,ue.DEFAULT_LINK_LABEL_STYLE.padding.left),top:this.getUnitlessValue(i.paddingTop,ue.DEFAULT_LINK_LABEL_STYLE.padding.top),right:this.getUnitlessValue(i.paddingRight,ue.DEFAULT_LINK_LABEL_STYLE.padding.right),bottom:this.getUnitlessValue(i.paddingBottom,ue.DEFAULT_LINK_LABEL_STYLE.padding.bottom)};return{textStyle:t,borderWidth:n,padding:o,radius:s,backgroundColor:si(i.backgroundColor),borderColor:si(i.borderColor)}}getFolderStyle(e){let t=this.getTextStyle("folder",{path:e}),i=this.getGraphComputedStyle("folder",{path:e});if(!i)return ue.DEFAULT_FOLDER_STYLE;let s=i.textAlign.toLowerCase();["left","center","right"].contains(s)||(s=ue.DEFAULT_FOLDER_STYLE.textStyle.align);let n=this.getUnitlessValue(i.borderRadius,ue.DEFAULT_FOLDER_STYLE.radius),o=this.getUnitlessValue(i.borderWidth,ue.DEFAULT_FOLDER_STYLE.borderWidth),a={left:this.getUnitlessValue(i.paddingLeft,ue.DEFAULT_FOLDER_STYLE.padding.left),top:this.getUnitlessValue(i.paddingTop,ue.DEFAULT_FOLDER_STYLE.padding.top),right:this.getUnitlessValue(i.paddingRight,ue.DEFAULT_FOLDER_STYLE.padding.right),bottom:this.getUnitlessValue(i.paddingBottom,ue.DEFAULT_FOLDER_STYLE.padding.bottom)},l=i.opacity.toLowerCase(),c=ue.DEFAULT_FOLDER_STYLE.fillOpacity;c=parseFloat(l.toLowerCase()),isNaN(c)?c=ue.DEFAULT_FOLDER_STYLE.fillOpacity:c=Math.clamp(c,0,1);let h=Math.min(c*15,1),d={textStyle:{textStyle:t,align:s},radius:n,borderWidth:o,fillOpacity:c,strokeOpacity:h,padding:a};return this.detachCSSDiv(),d}detachCSSDiv(){this.instances.extendedStyleEl?.ownerDocument.getElementById(Rf)?.remove()}getUnitlessValue(e,t){e=e.toLowerCase();let i=t;return i=parseFloat(e.substring(0,e.length-2)),isNaN(i)&&(i=t),i}getTextShadow(e){let t=e.textShadow;if(!t||t==="none")return;let i=t.match(/((^rgba?\(\d+,\s?\d+,\s?\d+(?:,\s?\d+(?:\.\d+)?)?\))(.*))*/);if(!i)return;let s=si(i[2]),n=i[3].split(",")[0].trim().split(" ");if(n.length!==3)return;let o=this.getUnitlessValue(n[0],0),a=this.getUnitlessValue(n[1],0),l=e.getPropertyValue("--text-shadow-current-color");return{distance:Math.sqrt(o*o+a*a),angle:Math.atan2(a,o),blur:this.getUnitlessValue(n[2],0),color:s.rgb,alpha:s.a,offsetX:o,offsetY:a,useCurrentColor:["true","currentcolor"].contains(l.toLowerCase())}}getTextStroke(e){let t=this.getUnitlessValue(e.webkitTextStrokeWidth,0);if(!(t<=0)){if(e.webkitTextStrokeColor){let i=si(e.webkitTextStrokeColor);return{width:t,color:i.a>0?i.rgb:ue.backgroundColor}}return{width:t,color:ue.backgroundColor}}}getPrimaryColor(){return si(window.getComputedStyle(this.instances.renderer.interactiveEl).getPropertyValue("--color-base-100")).rgb}getSearchColor(){return si(window.getComputedStyle(this.instances.renderer.interactiveEl).getPropertyValue("--text-highlight-bg")).rgb}getThemeColor(e){return si(window.getComputedStyle(this.instances.renderer.interactiveEl).getPropertyValue("--color-"+e)).rgb}static isNodeTextStyleDefault(e){return e.fontStyle==="normal"&&e.fontVariant==="normal"&&e.fontWeight==="normal"&&e.letterSpacing===0}static colorAttributes2hex(e){return as(e.rgb,e.a)}static getCSSSplitRGB(e){return`${$0(e)}, ${q0(e)}, ${Y0(e)}`}static applyTextShadow(e,t,i){e.dropShadow=!0,e.dropShadowAlpha=t.alpha,e.dropShadowBlur=t.blur,e.dropShadowColor=t.useCurrentColor?i:t.color,e.dropShadowDistance=0,e.dropShadowAngle=0,e.padding=t.blur}static applyTextStroke(e,t){t.width<=0||(e.stroke=t.color,e.strokeThickness=t.width,e.lineJoin="round")}static computeBackgroundColor(e){let t=window.getComputedStyle(e.interactiveEl).backgroundColor,i=e.interactiveEl;for(;t.startsWith("rgba(")&&t.endsWith(", 0)")&&i.parentElement;)i=i.parentElement,t=window.getComputedStyle(i).backgroundColor;return ue.backgroundColor=si(t).rgb,ue.backgroundColor}};ue.DEFAULT_TEXT_STYLE={fontFamily:'ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Inter", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Microsoft YaHei Light", sans-serif',fontSize:14,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",letterSpacing:0},ue.DEFAULT_FOLDER_STYLE={textStyle:{textStyle:ue.DEFAULT_TEXT_STYLE,align:"center"},radius:50,borderWidth:2,fillOpacity:.03,strokeOpacity:.03*15,padding:{left:0,top:0,right:0,bottom:0}},ue.DEFAULT_LINK_LABEL_STYLE={textStyle:ue.DEFAULT_TEXT_STYLE,radius:0,borderWidth:0,padding:{left:0,top:0,right:0,bottom:0},borderColor:{rgb:0,a:0},backgroundColor:{rgb:0,a:0}};var $e=ue;var Gf=require("obsidian");var wd=class extends Gf.Component{constructor(e){super(),this.instances=e,this.instances.graph=this,this.initializeInteractiveManagers(),this.instances.settings.enableFeatures[this.instances.type].layers&&(this.instances.layersManager=new co(this.instances)),this.instances.nodesSet=new Ad(this.instances,this.getNodeManagers()),this.instances.linksSet=new Fd(this.instances,this.getLinkManagers()),e.settings.enableFeatures[e.type].folders&&(this.instances.foldersSet=new _d(this.instances,this.getFolderManagers())),this.overrideOnOptionsChange()}initializeInteractiveManagers(){let e=this.getInteractiveManagerKeys();for(let t of e){let i=new Td(this.instances,t);this.instances.interactiveManagers.set(t,i),this.addChild(i)}}getInteractiveManagerKeys(){let e=[];if(this.instances.settings.enableFeatures[this.instances.type].properties)for(let t in this.instances.settings.additionalProperties)this.instances.settings.additionalProperties[t][this.instances.type]&&e.push(t);return this.instances.settings.enableFeatures[this.instances.type].tags&&e.push(He),this.instances.settings.enableFeatures[this.instances.type].links&&e.push(ne),this.instances.settings.enableFeatures[this.instances.type].folders&&e.push(pe),e}getNodeManagers(){return Array.from(this.instances.interactiveManagers.values()).filter(e=>e.name!==ne&&e.name!==pe)}getLinkManagers(){let e=this.instances.interactiveManagers.get(ne);return e?[e]:[]}getFolderManagers(){let e=this.instances.interactiveManagers.get(pe);return e?[e]:[]}overrideOnOptionsChange(){this.onOptionsChangeOriginal=this.instances.view.onOptionsChange,this.instances.view.onOptionsChange=()=>{}}onload(){this.initSets().then(()=>{this.instances.graphEventsDispatcher.onGraphReady()}).catch(e=>{console.error(e)})}async initSets(){await this.delay(this.instances.settings.delay),this.instances.nodesSet.load(),this.instances.linksSet.load(),this.instances.foldersSet?.load()}delay(e){return new Promise(t=>setTimeout(t,e))}onunload(){this.restoreOriginalFunctions(),this.instances.layersManager?.unload(),this.instances.nodesSet.unload(),this.instances.linksSet.unload(),this.instances.foldersSet?.unload()}restoreOriginalFunctions(){this.instances.view.onOptionsChange=this.onOptionsChangeOriginal}disableLinkTypes(e){for(let t of e)this.instances.linksSet.disableType(ne,t)}enableLinkTypes(e){for(let t of e)this.instances.linksSet.enableType(ne,t)}disableNodeInteractiveTypes(e,t){let i=[];for(let s of t)i=i.concat(this.instances.nodesSet.disableType(e,s));if(this.instances.settings.fadeOnDisable&&i.length>0)this.fadeOutNodes(i);else if(i.length>0){let s=[...this.instances.linksSet.extendedElementsMap.values()].filter(n=>(i.includes(n.coreElement.source.id)||i.includes(n.coreElement.target.id))&&n.isEnabled);for(let n of s)n.disable()}}enableNodeInteractiveTypes(e,t){let i=[];for(let s of t)i=i.concat(this.instances.nodesSet.enableType(e,s));this.instances.settings.fadeOnDisable&&i.length>0&&this.fadeInNodes(i)}fadeOutNodes(e){for(let t of e){let i=this.instances.nodesSet.extendedElementsMap.get(t);i&&i.graphicsWrapper?.makeFaded()}return!1}fadeInNodes(e){for(let t of e){let i=this.instances.nodesSet.extendedElementsMap.get(t);i&&i.graphicsWrapper?.makeOpaque()}return!1}};var uo=require("obsidian");var Zf=St(kd()),Qf=St(Ld());var Md=class{constructor(e){this.instances=e}filterData(e){this.excludeNodes(e),this.addExternalLinks(e);let t=[],i=[],s=Object.entries(e.nodes);for(let[n,o]of s){if(this.flagAsPotentialOrphan(o,n,i))continue;let a=qe(n);if(!(a&&(this.filterLinksByFolders(o,n,i)||(this.ignoreInlineLinks(a,o),this.filterLinksByTypes(a,o,n,t),this.flagAsPotentialOrphan(o,n,i))))){for(let l of t)delete e.nodes[l];t=[]}}return e=this.filterOrphans(e,i),u.graphsManager.updateStatusBarItem(this.instances.view.leaf,Object.keys(e.nodes).length),e}excludeNodes(e){let t=[];for(let[s,n]of Object.entries(e.nodes))this.shouldRemoveNode(s,n)&&t.push(s);let i=Object.keys(e.nodes).filter(s=>!t.includes(s));for(let s of t){delete e.nodes[s];for(let n of i.filter(o=>s in e.nodes[o].links))delete e.nodes[n].links[s]}}shouldRemoveNode(e,t){for(let i of this.instances.settings.filterAbstractFiles)if(new RegExp(i.regex,i.flag).test(e))return!0;if(this.instances.settings.enableFeatures[this.instances.type].layers&&this.instances.layersManager?.isEnabled&&(this.instances.settings.nodesWithoutLayerOpacity===0&&this.instances.layersManager.notInLayers.nodeIDs.contains(e)||this.instances.layersManager.nodeLookup[e]?.group.alpha===0))return!0;if(!this.instances.settings.fadeOnDisable){let i=qe(e);if(i)for(let[s,n]of this.instances.nodesSet.managers){let o=ct(s,i,this.instances.settings);if(o.size===0&&o.add(this.instances.settings.interactiveSettings[s].noneType),o.size>0&&!n.isActiveBasedOnTypes([...o]))return!0}else if(t.type==="tag"&&this.instances.settings.enableFeatures[this.instances.type].tags){let s=this.instances.interactiveManagers.get(He);if(s&&!s.isActiveBasedOnTypes([e.replace("#","")]))return!0}}return!1}filterOrphans(e,t){if(!this.instances.engine.options.showOrphans){let n=Object.values(e.nodes);for(let o of t)n.find(a=>o in a.links)||delete e.nodes[o]}let i=Object.values(e.nodes),s=Object.entries(e.nodes).filter(([n,o])=>(o.type==="unresolved"||o.type==="tag")&&!i.find(a=>n in a.links));for(let n of s)delete e.nodes[n[0]];return e}filterLinksByFolders(e,t,i){let s=(o,a)=>Jf(a)?.test(o)??o.startsWith(a);if(this.instances.settings.enableFeatures[this.instances.type].links&&this.instances.settings.excludedSourcesFolder.find(o=>s(t,o)))return e.links={},!0;let n=Object.keys(e.links);for(let o of n)this.instances.settings.enableFeatures[this.instances.type].links&&this.instances.settings.excludedTargetsFolder.find(a=>s(o,a))&&delete e.links[o];return Object.keys(e.links).length===0?(this.instances.engine.options.showOrphans||i.push(t),!0):!1}ignoreInlineLinks(e,t){if(!this.instances.settings.ignoreInlineLinks||!t.links)return;let i=u.app.metadataCache.getFileCache(e)?.frontmatterLinks;if(!i){t.links={};return}let s=i.map(n=>u.app.metadataCache.getFirstLinkpathDest(n.link,e.path)?.path??n.link);for(let n of Object.keys(t.links))s.contains(n)||delete t.links[n]}filterLinksByTypes(e,t,i,s){for(let[n,o]of this.instances.linksSet.managers){let a=Lo(this.instances.settings,e),l=new Map([...a.entries()].reduce((c,h)=>(h[1]=new Set([...h[1]].filter(d=>o.getTypes().includes(d))),h[1].size>0&&c.push(h),c),[]));for(let[c,h]of l)c in t.links&&h.size>0&&!o.isActiveBasedOnTypes([...h])&&(delete t.links[c],this.instances.settings.disableSource&&s.push(i),this.instances.settings.disableTarget&&s.push(c));if(!o.isActiveBasedOnTypes([this.instances.settings.interactiveSettings[o.name].noneType])){let c=Object.keys(t.links).filter(h=>!l.has(h));for(let h of c)delete t.links[h]}}}flagAsPotentialOrphan(e,t,i){return Object.keys(e.links).length===0?(this.instances.engine.options.showOrphans||i.push(t),!0):!1}addExternalLinks(e){if(!this.instances.engine.options.showAttachments||this.instances.settings.ignoreInlineLinks)return;let t=[],i=Object.keys(e.nodes);for(let s of i){let n=this.instances.nodesSet.getExternalLinks(s);for(let o of n)o.href&&(e.numLinks++,e.nodes[s].links[o.href]=!0,o.href in e.nodes||(t.push(o.href),e.nodes[o.href]={color:this.instances.renderer.colors.fillAttachment,type:"attachment",links:{}})),o.domain&&(e.numLinks++,o.domain in e.nodes||(t.push(o.domain),e.nodes[o.domain]={color:this.instances.renderer.colors.fillAttachment,type:"attachment",links:{}}),o.href?e.nodes[o.href].links[o.domain]=!0:e.nodes[s].links[o.domain]=!0)}if(this.instances.type==="localgraph"&&t.length>0){let s=this.instances.view.file?.path,n=this.instances.engine.options.localJumps??1,o=new Zf.default;for(let l in e.nodes){o.hasNode(l)||o.addNode(l);for(let c in e.nodes[l].links)o.hasNode(c)||o.addNode(c),o.addDirectedEdge(l,c)}let a=(0,Qf.undirectedSingleSourceLength)(o,s);for(let l of t)a[l]>n&&(delete e.nodes[l],e.numLinks--)}}};var Wu=class extends uo.Component{constructor(t,i){super();this.isLocalResetting=!1;this.listenStage=!0;t.graphEventsDispatcher=this,this.instances=t,this.reloadStateDuringInit=i,this.instances.cssBridge=new $e(t),this.addChild(this.instances.cssBridge),this.instances.interactiveEventsDispatcher=new Nd(t),this.addChild(this.instances.interactiveEventsDispatcher),this.instances.filter=new Md(this.instances),this.initializeGraph(),this.initializeUI(),this.initializeFoldersUI()}initializeGraph(){new wd(this.instances),this.addChild(this.instances.graph)}initializeUI(){this.initializeLayersUI(),this.initializeLegendUI(),this.instances.statesUI=new Od(this.instances),this.instances.statesUI.updateStatesList(),this.addChild(this.instances.statesUI)}initializeLegendUI(){let t=this.instances.settings;(t.enableFeatures[this.instances.type].links||t.enableFeatures[this.instances.type].tags||this.hasAdditionalProperties(t))&&(this.instances.legendUI=new Rd(this.instances),this.addChild(this.instances.legendUI))}initializeFoldersUI(){if(!this.instances.settings.enableFeatures[this.instances.type].folders||!u.graphsManager.globalUIs.get(this.instances.view.leaf.id)?.control)return;let i=this.instances.foldersSet?.managers.get(pe);i&&(this.instances.foldersUI=new Gd(this.instances,i),this.instances.foldersUI.display())}initializeLayersUI(){this.instances.settings.enableFeatures[this.instances.type].layers&&(this.instances.layersUI=new Bd(this.instances),this.addChild(this.instances.layersUI))}hasAdditionalProperties(t){return t.enableFeatures[this.instances.type].properties&&Object.values(t.additionalProperties).some(i=>i[this.instances.type])}onload(){this.loadCurrentStateEngineOptions(),this.initGraphologyStats(),this.createSetDataProxy()}loadCurrentStateEngineOptions(){if(!this.reloadStateDuringInit)return;let t=u.settings.states.find(i=>i.id===this.instances.statesUI.currentStateID);if(t){this.instances.engine.setOptions(t.engineOptions);for(let i of this.instances.renderer.nodes)i.fontDirty=!0}}onGraphReady(){try{this.updateOpacityLayerColor(),this.isLocalResetting?(this.isLocalResetting=!1,this.instances.layersManager?.isEnabled&&(this.instances.layersManager.updateLayers(),this.instances.engine.render()),this.instances.stateData&&(this.instances.statePinnedNodes=structuredClone(this.instances.stateData.pinNodes)??{})):(this.bindStageEvents(),this.inputsManager=new Pd(this.instances),this.createRenderCallbackProxy(),this.createInitGraphicsProxy(),this.createDestroyGraphicsProxy(),this.changeArrowAlpha(),this.removeLineHighlight(),this.loadLastFilteringAction(),this.registerEventsForLastFilteringAction(),this.reloadStateDuringInit&&u.statesManager.changeState(this.instances,this.instances.statesUI.currentStateID),this.instances.layersManager?.isEnabled?(this.instances.layersManager.updateLayers(),this.instances.engine.render()):this.instances.stateData?.enableLayers&&this.instances.layersManager?.enable()),u.graphsManager.onPluginLoaded(this.instances.view),this.instances.settings.fadeInElements?this.instances.renderer.changed():this.instances.renderer.idleFrames>60&&(this.instances.renderer.idleFrames=60,this.instances.renderer.queueRender())}catch(t){this.listenStage=!1,typeof t=="string"?console.error(t.toUpperCase()):t instanceof Error&&console.error(t.message),u.graphsManager.disablePluginFromLeafID(this.instances.view.leaf.id);return}}updateOpacityLayerColor(){this.instances.settings.fadeOnDisable&&this.instances.nodesSet.updateOpacityLayerColor()}bindStageEvents(){this.onChildAddedToStage=this.onChildAddedToStage.bind(this),this.instances.renderer.hanger.on("childAdded",this.onChildAddedToStage),this.onChildRemovedFromStage=this.onChildRemovedFromStage.bind(this),this.instances.renderer.hanger.on("childRemoved",this.onChildRemovedFromStage)}createRenderCallbackProxy(){let t=this.beforeRenderCallback.bind(this);u.proxysManager.registerProxy(this.instances.renderer,"renderCallback",{apply(i,s,n){return t(),Reflect.apply(i,s,n)}})}initGraphologyStats(){Xe.needDynamicGraphology(this.instances)&&(this.instances.graphologyGraph=new zr(this.instances),Xe.needDynamicGraphology(this.instances,{element:"node",stat:"size"})&&(this.instances.nodesSizeCalculator=cr.getCalculator("size",this.instances),this.instances.nodesSizeCalculator?.computeStats(this.instances.settings.graphStatsDirection).catch(t=>{console.error(t),new uo.Notice(`${m("notices.nodeStatSizeFailed")} (${is[this.instances.settings.nodesSizeFunction]}). ${m("notices.functionToDefault")}`),this.instances.settings.nodesSizeFunction="default",this.instances.nodesSizeCalculator=void 0})),Xe.needDynamicGraphology(this.instances,{element:"node",stat:"color"})&&(this.instances.nodesColorCalculator=cr.getCalculator("color",this.instances),this.instances.nodesColorCalculator?.computeStats(this.instances.settings.graphStatsDirection).catch(t=>{console.error(t),new uo.Notice(`${m("notices.nodeStatColorFailed")} (${is[this.instances.settings.nodesColorFunction]}). ${m("notices.functionToDefault")}`),this.instances.settings.nodesColorFunction="default",this.instances.nodesColorCalculator=void 0})),Xe.needDynamicGraphology(this.instances,{element:"link",stat:"size"})&&(this.instances.linksSizeCalculator=Ps.getCalculator("size",this.instances),this.instances.linksSizeCalculator?.computeStats(this.instances.settings.graphStatsDirection).catch(t=>{console.error(t),new uo.Notice(`${m("notices.linkStatSizeFailed")} (${rs[this.instances.settings.linksSizeFunction]}). ${m("notices.functionToDefault")}`),this.instances.settings.linksSizeFunction="default",this.instances.linksSizeCalculator=void 0})),Xe.needDynamicGraphology(this.instances,{element:"link",stat:"color"})&&(this.instances.linksColorCalculator=Ps.getCalculator("color",this.instances),this.instances.linksColorCalculator?.computeStats(this.instances.settings.graphStatsDirection).catch(t=>{console.error(t),new uo.Notice(`${m("notices.linkStatColorFailed")} (${rs[this.instances.settings.linksColorFunction]}). ${m("notices.functionToDefault")}`),this.instances.settings.linksColorFunction="default",this.instances.linksColorCalculator=void 0})))}createSetDataProxy(){let t=this.updateData.bind(this),i=this.instances;u.proxysManager.registerProxy(this.instances.renderer,"setData",{apply(s,n,o){let a=t(o[0]);if(a){o[0]=a;let l=Reflect.apply(s,n,o);return i.graphologyGraph?.buildGraphology(),l}else return!1}})}createDestroyGraphicsProxy(){let t=this.beforeDestroyGraphics.bind(this);u.proxysManager.registerProxy(this.instances.renderer,"destroyGraphics",{apply(i,s,n){return t(),Reflect.apply(i,s,n)}})}createInitGraphicsProxy(){let t=this.afterInitGraphics.bind(this);u.proxysManager.registerProxy(this.instances.renderer,"initGraphics",{apply(i,s,n){let o=Reflect.apply(i,s,n);return t(),o}})}changeArrowAlpha(){!this.instances.settings.enableFeatures[this.instances.type].arrows||!this.instances.settings.opaqueArrowsButKeepFading||(this.coreArrowAlpha=this.instances.renderer.colors.arrow.a,this.instances.renderer.colors.arrow.a=1)}removeLineHighlight(){this.instances.settings.noLineHighlight&&(this.coreLineHighlightColor=this.instances.renderer.colors.lineHighlight,this.instances.renderer.colors.lineHighlight=this.instances.renderer.colors.line)}loadLastFilteringAction(){this.lastFilteringAction={id:void 0,searchNew:this.instances.engine.filterOptions.search.getValue()||"",searchOld:this.instances.engine.filterOptions.search.getValue()||"",showTagsNew:this.instances.engine.options.showTags||!1,showTagsOld:this.instances.engine.options.showTags||!1,showAttachmentsNew:this.instances.engine.options.showAttachments||!1,showAttachmentsOld:this.instances.engine.options.showAttachments||!1,hideUnresolvedNew:this.instances.engine.options.hideUnresolved||!1,hideUnresolvedOld:this.instances.engine.options.hideUnresolved||!1,showOrphansNew:this.instances.engine.options.showOrphans||!0,showOrphansOld:this.instances.engine.options.showOrphans||!0,localJumpsNew:this.instances.engine.options.localJumps||1,localJumpsOld:this.instances.engine.options.localJumps||1,localForelinksNew:this.instances.engine.options.localForelinks||!0,localForelinksOld:this.instances.engine.options.localForelinks||!0,localBacklinksNew:this.instances.engine.options.localBacklinks||!0,localBacklinksOld:this.instances.engine.options.localBacklinks||!0,interactives:{key:"",types:[]},stateIDNew:this.instances.statesUI.currentStateID,stateIDOld:this.instances.statesUI.currentStateID,record:!0,userChange:!1}}registerEventsForLastFilteringAction(){if(!this.lastFilteringAction)return;let t=this.lastFilteringAction;this.instances.engine.filterOptions.search.changeCallback&&u.proxysManager.registerProxy(this.instances.engine.filterOptions.search,"changeCallback",{apply(s,n,o){return t.record&&(t.id="core-search",t.userChange=!0,t.searchOld=t.searchNew,t.searchNew=o[0]),Reflect.apply(s,n,o)}}),this.updateLastCheckboxToggled=this.updateLastCheckboxToggled.bind(this);let i=this.instances.view.contentEl.querySelectorAll(".graph-control-section.mod-filter .checkbox-container");for(let s of Array.from(i))s.addEventListener("mousedown",this.updateLastCheckboxToggled);u.proxysManager.registerProxy(this.instances.engine,"options",{set(s,n,o,a){return t.record&&(n==="showTags"?(t.id="core-tags",t.userChange=!0,t.showTagsOld=t.showTagsNew,t.showTagsNew=o):n==="showAttachments"?(t.id="core-attachments",t.userChange=!0,t.showAttachmentsOld=t.showAttachmentsNew,t.showAttachmentsNew=o):n==="hideUnresolved"?(t.id="core-hide-unresolved",t.userChange=!0,t.hideUnresolvedOld=t.hideUnresolvedNew,t.hideUnresolvedNew=o):n==="showOrphans"?(t.id="core-orphans",t.userChange=!0,t.showOrphansOld=t.showOrphansNew,t.showOrphansNew=o):n==="localJumps"?(t.id="core-local-jumps",t.userChange=!0,t.localJumpsOld=t.localJumpsNew,t.localJumpsNew=o):n==="localForelinks"?(t.id="core-local-forelinks",t.userChange=!0,t.localForelinksOld=t.localForelinksNew,t.localForelinksNew=o):n==="localBacklinks"&&(t.id="core-local-backlinks",t.userChange=!0,t.localBacklinksOld=t.localBacklinksNew,t.localBacklinksNew=o)),Reflect.set(s,n,o,a)}})}setLastFilteringActionAsStateChange(t){!this.lastFilteringAction||!this.lastFilteringAction.record||(this.lastFilteringAction.id="plugin-state-change",this.lastFilteringAction.userChange=!0,this.lastFilteringAction.stateIDOld=this.lastFilteringAction.stateIDNew,this.lastFilteringAction.stateIDNew=t)}setLastFilteringActionAsInteractive(t,i){!this.lastFilteringAction||!this.lastFilteringAction.record||t!==pe&&(this.lastFilteringAction.id="plugin-interactives",this.lastFilteringAction.userChange=!0,this.lastFilteringAction.interactives={key:t,types:i})}updateLastCheckboxToggled(t){this.lastCheckboxContainerToggled=t.currentTarget}reloadLocalDispatcher(){this.instances.type==="localgraph"&&(this.isLocalResetting=!0,this.instances.graph.unload(),this.instances.graph.load())}onunload(){this.unbindStageEvents(),u.proxysManager.unregisterProxy(this.instances.renderer.renderCallback),u.proxysManager.unregisterProxy(this.instances.renderer.setData),u.proxysManager.unregisterProxy(this.instances.renderer.destroyGraphics),u.proxysManager.unregisterProxy(this.instances.renderer.initGraphics),this.instances.foldersUI?.destroy(),this.inputsManager.unload(),u.graphsManager.onPluginUnloaded(this.instances.view),this.restoreArrowAlpha(),this.restoreLineHighlight(),this.unregisterEventsForLastFilteringAction(),this.instances.engine.render()}unbindStageEvents(){this.instances.renderer.hanger.off("childAdded",this.onChildAddedToStage),this.instances.renderer.hanger.off("childRemoved",this.onChildRemovedFromStage)}restoreArrowAlpha(){this.coreArrowAlpha!==void 0&&(this.instances.renderer.colors.arrow.a=this.coreArrowAlpha,this.coreArrowAlpha=void 0)}restoreLineHighlight(){this.coreLineHighlightColor!==void 0&&(this.instances.renderer.colors.lineHighlight=this.coreLineHighlightColor,this.coreLineHighlightColor=void 0)}unregisterEventsForLastFilteringAction(){u.proxysManager.unregisterProxy(this.instances.engine.filterOptions.search.changeCallback);let t=this.instances.view.contentEl.querySelectorAll(".graph-control-section.mod-filter .checkbox-container");for(let i of Array.from(t))i.addEventListener("mousedown",this.updateLastCheckboxToggled);u.proxysManager.unregisterProxy(this.instances.engine.options)}onChildAddedToStage(t,i,s){if(!this.listenStage)return;let n=this.instances.renderer.nodes.find(a=>a.circle===t);if(n){if(u.graphsManager.isNodeLimitExceededForView(this.instances.view)){this.listenStage=!1,setTimeout(()=>{u.graphsManager.disablePluginFromLeafID(this.instances.view.leaf.id)},200);return}let a=this.instances.nodesSet.extendedElementsMap.get(n.id);a?(a.setCoreElement(n),this.instances.layersManager?.addNode(n.id)):this.instances.nodesSet.load();let l=qe(n.id),c=this.instances.foldersSet?.managers.get(pe);if(l&&c){let h=ct(pe,l);for(let d of h)c.isActive(d)&&this.instances.foldersSet?.loadFolder(pe,d)}}let o=this.instances.renderer.links.find(a=>a.px===t||a.arrow===t);if(o){let a=c=>{let h=this.instances.linksSet.extendedElementsMap.get(Wt(c));h?h.setCoreElement(c):this.instances.linksSet.load(Wt(c)),this.instances.layersManager?.addLinkToContainer(c)},l=c=>c.line&&(!this.instances.renderer.fShowArrow||!!c.arrow);l(o)?a(o):o.px===t&&t.on("childAdded",(c,h,d)=>{c instanceof Oa||l(o)&&a(o)})}if("text"in t){let a=this.instances.renderer.nodes.find(l=>l.text===t);if(a){let l=this.instances.nodesSet.extendedElementsMap.get(a.id);l&&l.extendedText.init()}}}onChildRemovedFromStage(t,i,s){if(this.listenStage&&this.instances.foldersSet)for(let[n,o]of this.instances.foldersSet.foldersMap){let a=o.nodes.filter(l=>l.circle===null);for(let l of a)o.removeNode(l);a.length>0&&o.updateGraphics(this.instances.renderer.scale)}}updateData(t){t=this.instances.filter.filterData(t);for(let s of this.instances.linksSet.extendedElementsMap.values()){let n=!(s.coreElement.source.id in t.nodes)||!(s.coreElement.target.id in t.nodes)||!(s.coreElement.target.id in t.nodes[s.coreElement.source.id].links);s.isEnabled&&n?s.disable():!s.isEnabled&&!n&&s.enable()}let i=this.lastFilteringAction?.userChange||!0;if(this.lastFilteringAction&&(this.lastFilteringAction.userChange=!1),u.graphsManager.isNodeLimitExceededForData(t,i))if(u.settings.revertAction&&this.lastFilteringAction){this.revertLastFilteringAction();return}else{this.listenStage=!1,setTimeout(()=>{u.graphsManager.disablePluginFromLeafID(this.instances.view.leaf.id)},200);return}return t}beforeDestroyGraphics(){this.instances.cssBridge.unload(),this.unbindStageEvents(),this.inputsManager.unbindStageEvents(),u.proxysManager.unregisterProxy(this.instances.renderer.renderCallback),this.instances.layersManager?.destroyContainers();for(let t of this.instances.nodesSet.extendedElementsMap.values())u.proxysManager.unregisterProxy(t.coreElement.text);for(let t of this.instances.linksSet.extendedElementsMap.values())t.restoreCoreElement()}showDestroyed(t,i=[],s=1){if("children"in t)for(let n of t.children)if(n.destroyed)console.debug(s),console.debug(i),console.debug(n);else{let o=[...i];o.push(Object.getPrototypeOf(n).constructor.name),this.showDestroyed(n,o,s+1)}}afterInitGraphics(){setTimeout(()=>{this.instances.cssBridge.load();for(let t of this.instances.linksSet.extendedElementsMap.values())t.init();for(let t of this.instances.nodesSet.extendedElementsMap.values())t.init();if(this.instances.nodesSet.onCSSChange(),this.instances.foldersSet?.initGraphics(),this.createRenderCallbackProxy(),this.instances.layersManager?.rebuildContainers(),this.instances.settings.enableFeatures[this.instances.type].focus){if(this.instances.settings.highlightOpenNodes)for(let t of u.graphsManager.openNodes)this.instances.nodesSet.extendedElementsMap.get(t)?.toggleOpenInTab(!0);if(this.instances.settings.highlightSearchResults)for(let t of u.graphsManager.getSearchResults())this.instances.nodesSet.extendedElementsMap.get(t)?.toggleIsSearchResult(!0)}this.bindStageEvents(),this.inputsManager.bindStageEvents(),this.instances.renderer.changed()},this.instances.settings.delay)}beforeRenderCallback(){if(this.instances.statePinnedNodes&&new yt(this.instances).setPinnedNodesFromState(),this.instances.foldersSet&&this.instances.foldersSet.updateGraphics(),this.instances.settings.enableFeatures[this.instances.type].links){if(this.instances.settings.interactiveSettings[ne].showOnGraph||this.instances.settings.curvedLinks)for(let t of this.instances.linksSet.connectedIDs)this.instances.linksSet.extendedElementsMap.get(t)?.graphicsWrapper?.pixiElement.updateFrame();if(this.instances.settings.displayLinkTypeLabel)if(this.instances.settings.allowMultipleLinkTypes)for(let t of this.instances.linksSet.connectedIDs)this.instances.linksSet.extendedElementsMap.get(t)?.hideTextsBasedOnLength();else for(let t of this.instances.linksSet.connectedIDs)this.instances.linksSet.extendedElementsMap.get(t)?.texts?.forEach(i=>{i.isRendered&&i.updateFrame()})}}revertLastFilteringAction(){if(!this.lastFilteringAction||this.lastFilteringAction.id===void 0){this.listenStage=!1,u.graphsManager.disablePluginFromLeafID(this.instances.view.leaf.id);return}switch(this.lastFilteringAction.id){case"core-search":this.instances.engine.filterOptions.search.inputEl.blur(),this.lastFilteringAction.searchNew=this.lastFilteringAction.searchOld,this.instances.engine.filterOptions.search.inputEl.value=this.lastFilteringAction.searchOld,this.instances.engine.updateSearch();break;case"core-tags":this.lastCheckboxContainerToggled?.dispatchEvent(new Event("click")),this.lastFilteringAction.showTagsNew=this.lastFilteringAction.showTagsOld;break;case"core-attachments":this.lastCheckboxContainerToggled?.dispatchEvent(new Event("click")),this.lastFilteringAction.showAttachmentsNew=this.lastFilteringAction.showAttachmentsOld;break;case"core-hide-unresolved":this.lastCheckboxContainerToggled?.dispatchEvent(new Event("click")),this.lastFilteringAction.hideUnresolvedNew=this.lastFilteringAction.hideUnresolvedOld;break;case"core-orphans":this.lastCheckboxContainerToggled?.dispatchEvent(new Event("click")),this.lastFilteringAction.showOrphansNew=this.lastFilteringAction.showOrphansOld;break;case"core-local-jumps":this.lastCheckboxContainerToggled?.dispatchEvent(new Event("click")),this.lastFilteringAction.localJumpsNew=this.lastFilteringAction.localJumpsOld;break;case"core-local-forelinks":this.lastCheckboxContainerToggled?.dispatchEvent(new Event("click")),this.lastFilteringAction.localForelinksNew=this.lastFilteringAction.localForelinksOld;break;case"core-local-backlinks":this.lastCheckboxContainerToggled?.dispatchEvent(new Event("click")),this.lastFilteringAction.localBacklinksNew=this.lastFilteringAction.localBacklinksOld;break;case"plugin-interactives":let t=this.instances.interactiveManagers.get(this.lastFilteringAction.interactives.key);if(t){t.disable(this.lastFilteringAction.interactives.types);for(let i of this.lastFilteringAction.interactives.types)this.instances.legendUI?.disableUI(this.lastFilteringAction.interactives.key,i)}break;case"plugin-state-change":this.lastFilteringAction.stateIDNew!==this.lastFilteringAction.stateIDOld&&(this.lastFilteringAction.stateIDNew=this.lastFilteringAction.stateIDOld,this.instances.statesUI.setValue(this.lastFilteringAction.stateIDOld),u.statesManager.changeState(this.instances,this.lastFilteringAction.stateIDOld));break}}changeState(t){this.setLastFilteringActionAsStateChange(t),u.statesManager.changeState(this.instances,t)}};var e5=require("obsidian");var Nd=class extends e5.Component{constructor(e){super(),this.instances=e}onInteractivesAdded(e,t){e===ne?this.onLinkTypesAdded(t):e===pe?this.onFoldersAdded(t):this.onNodeInteractiveTypesAdded(e,t)}onInteractivesRemoved(e,t){e===ne?this.onLinkTypesRemoved(t):e===pe?this.onFoldersRemoved(t):this.onNodeInteractiveTypesRemoved(e,t)}onInteractiveColorChanged(e,t,i){e===ne?this.onLinkColorChanged(t,i):e===pe?this.onFolderColorChanged(t,i):this.onNodeInteractiveColorChanged(e,t,i)}onInteractivesDisabled(e,t){e===ne?(this.instances.graph.disableLinkTypes(t),this.instances.engine.render(),this.instances.renderer.changed()):e===pe?this.disableFolders(t):(this.instances.graph.disableNodeInteractiveTypes(e,t),this.instances.settings.fadeOnDisable||this.instances.engine.render(),this.instances.renderer.changed())}onInteractivesEnabled(e,t){this.instances.graphEventsDispatcher.setLastFilteringActionAsInteractive(e,t),e===ne?(this.instances.graph.enableLinkTypes(t),this.instances.engine.render(),this.instances.renderer.changed()):e===pe?this.enableFolders(t):(this.instances.graph.enableNodeInteractiveTypes(e,t),this.instances.settings.fadeOnDisable||this.instances.engine.render(),this.instances.renderer.changed())}onInteractivesLogicChanged(e){if(e===ne)for(let[t,i]of this.instances.linksSet.extendedElementsMap){let s=i.isAnyManagerDisabled();i.isEnabled&&s?i.disable():!i.isEnabled&&!s&&i.enable()}}onNodeInteractiveTypesAdded(e,t){if(this.instances.legendUI)for(let[i,s]of t)this.instances.legendUI.add(e,i,s);this.instances.nodesSet.resetArcs(e),this.instances.renderer.changed()}onNodeInteractiveTypesRemoved(e,t){this.instances.legendUI?.remove(e,t),this.instances.nodesSet.resetArcs(e),this.instances.renderer.changed()}onNodeInteractiveColorChanged(e,t,i){this.instances.nodesSet.updateTypeColor(e,t,i),this.instances.legendUI?.update(e,t,i),this.instances.renderer.changed()}onLinkTypesAdded(e){if(this.instances.legendUI)for(let[t,i]of e)this.instances.legendUI.add(ne,t,i);this.instances.settings.interactiveSettings[ne].enableByDefault&&(e.forEach((t,i)=>{this.instances.linksSet.updateTypeColor(ne,i,t)}),this.instances.renderer.changed())}onLinkTypesRemoved(e){this.instances.legendUI?.remove(ne,e)}onLinkColorChanged(e,t){this.instances.linksSet.updateTypeColor(ne,e,t),this.instances.legendUI?.update(ne,e,t),this.instances.renderer.changed()}onFoldersAdded(e){if(this.instances.foldersUI)for(let[t,i]of e)this.instances.foldersUI.add(pe,t,i);if(this.instances.settings.interactiveSettings[pe].enableByDefault&&this.instances.foldersSet){for(let[t,i]of e)this.instances.foldersSet.loadFolder(pe,t);this.instances.renderer.changed()}}onFoldersRemoved(e){this.instances.foldersUI?.remove(pe,e);for(let t of e)this.removeBBox(t)}onFolderColorChanged(e,t){this.instances.foldersSet&&(this.instances.foldersSet.updateColor(pe,e),this.instances.foldersUI?.update(pe,e,t),this.instances.renderer.changed())}disableFolders(e){this.instances.graphEventsDispatcher.listenStage=!1;for(let t of e)this.removeBBox(t);this.instances.graphEventsDispatcher.listenStage=!0}enableFolders(e){this.instances.graphEventsDispatcher.listenStage=!1;for(let t of e)this.addBBox(t);this.instances.graphEventsDispatcher.listenStage=!0}addBBox(e){this.instances.foldersSet&&(this.instances.foldersSet.loadFolder(pe,e),this.instances.renderer.changed())}removeBBox(e){this.instances.foldersSet&&(this.instances.foldersSet.removeFolder(e),this.instances.renderer.changed())}};var t5=require("obsidian");var c8=class{constructor(e,t){this.type=e,this.color=t,this.isActive=!0}setColor(e){this.color=e}},Td=class extends t5.Component{constructor(e,t){super(),this.interactives=new Map,this.instances=e,this.name=t}disable(e){let t=[];e.forEach(i=>{let s=this.interactives.get(i);s&&(s.isActive=!1,t.push(i))}),t.length>0&&this.instances.interactiveEventsDispatcher.onInteractivesDisabled(this.name,t)}enable(e){let t=[];e.forEach(i=>{let s=this.interactives.get(i);s&&(s.isActive=!0,t.push(i))}),t.length>0&&this.instances.interactiveEventsDispatcher.onInteractivesEnabled(this.name,t)}isActive(e){let t=this.interactives.get(e);return t?t.isActive:!1}isActiveBasedOnTypes(e){this.addTypes(e.filter(i=>!this.interactives.has(i)));let t=this.getTypes().filter(i=>this.isActive(i));switch(Bn.getLogicType(this.instances,this.name)){case"AND":return t.every(i=>e.includes(i));case"OR":return t.some(i=>e.includes(i))}}setColor(e,t){let i=this.interactives.get(e);i&&(i.setColor(t),this.instances.interactiveEventsDispatcher.onInteractiveColorChanged(this.name,e,t))}removeTypes(e){e.forEach(t=>{this.interactives.delete(t)}),this.recomputeColors(),this.instances.interactiveEventsDispatcher.onInteractivesRemoved(this.name,e)}addTypes(e){if([...e].length===0)return;let t=new Map,i=new Set([...this.interactives.keys(),...e].sort()),s=new Set(i);s.delete(this.instances.settings.interactiveSettings[this.name].noneType),e.forEach(n=>{if(Xe.excludeType(this.instances.settings,this.name,n)||this.interactives.has(n))return;let o=this.tryComputeColorFromType(n);if(!o){let a=s.size,l=[...s].indexOf(n);o=this.computeColorFromIndex(l,a)}t.set(n,o),this.interactives.set(n,new c8(n,o))}),this.interactives=new Map([...this.interactives.entries()].sort()),this.recomputeColors(),t.size>0&&this.instances.interactiveEventsDispatcher.onInteractivesAdded(this.name,t)}getColor(e){let t=this.interactives.get(e);return t?t.color:0}getTypes(){return Array.from(this.interactives.keys())}getTypesWithoutNone(){let e=this.getTypes();return e.remove(this.instances.settings.interactiveSettings[this.name].noneType),e}update(e){this.interactives.clear(),this.addTypes(e)}recomputeColors(){this.interactives.forEach((e,t)=>{let i=this.tryComputeColorFromType(t);i&&this.setColor(t,i)})}recomputeColor(e){if(!this.interactives.has(e))return;let t=this.tryComputeColorFromType(e);t&&this.setColor(e,t)}tryComputeColorFromType(e){let t,i=this.instances.settings.interactiveSettings[this.name].colors.find(s=>s.type===e||s.recursive&&e.startsWith(s.type.endsWith("/")?s.type:s.type+"/"))?.color;if(i)t=Vr(i);else if(e===this.instances.settings.interactiveSettings[this.name].noneType)this.name===ne?t=this.instances.renderer.colors.line.rgb:t=V6;else{let s=[...this.interactives.keys()];s.remove(this.instances.settings.interactiveSettings[this.name].noneType);let n=s.length,o=s.indexOf(e);if(o<0)return null;t=this.computeColorFromIndex(o,n)}return t}computeColorFromIndex(e,t){let i=t===1?.5:e/(t-1);return zs(i,this.instances.settings.interactiveSettings[this.name].colormap,this.instances.settings)}};var ho=require("obsidian");var Pd=class{constructor(e){this.isListeningToUnselect=!1;this.isSelecting=!1;this.isDragging=!1;this.instances=e,this.selectionRectangle=new lt,this.selectionRectangle.eventMode="none",this.bindStageEvents(),this.changeNodeOnClick(),this.preventDraggingPinnedNodes()}bindStageEvents(){this.onPointerDownOnStage=this.onPointerDownOnStage.bind(this),this.instances.renderer.px.stage.on("pointerdown",this.onPointerDownOnStage),this.onPointerUpOnStage=this.onPointerUpOnStage.bind(this),this.instances.renderer.px.stage.on("pointerup",this.onPointerUpOnStage),this.onPointerMoveOnStage=this.onPointerMoveOnStage.bind(this),this.instances.renderer.px.stage.on("pointermove",this.onPointerMoveOnStage),this.onPointerUpOnWindow=this.onPointerUpOnWindow.bind(this),this.onInputToUnselectNodes=this.onInputToUnselectNodes.bind(this)}changeNodeOnClick(){(this.instances.settings.openInNewTab||this.instances.settings.externalLinks!=="none")&&(this.onNodeClick=this.onNodeClick.bind(this),this.coreOnNodeClick=this.instances.renderer.onNodeClick,this.instances.renderer.onNodeClick=this.onNodeClick),(this.instances.settings.useRadialMenu||this.instances.settings.pinNodeModifier)&&(this.onNodeRightClick=this.onNodeRightClick.bind(this),this.coreOnNodeRightClick=this.instances.renderer.onNodeRightClick,this.instances.renderer.onNodeRightClick=this.onNodeRightClick)}unload(){this.unbindStageEvents(),this.restoreOnNodeClick()}unbindStageEvents(){this.instances.renderer.px.stage.off("pointerdown",this.onPointerDownOnStage),this.instances.renderer.px.stage.off("pointerup",this.onPointerUpOnStage),this.instances.renderer.px.stage.off("pointermove",this.onPointerMoveOnStage),this.instances.renderer.interactiveEl.win.window.removeEventListener("mouseup",this.onPointerUpOnWindow),this.instances.renderer.interactiveEl.win.window.removeEventListener("mouseup",this.onInputToUnselectNodes),this.instances.renderer.interactiveEl.win.window.removeEventListener("keydown",this.onInputToUnselectNodes)}restoreOnNodeClick(){this.coreOnNodeClick&&(this.instances.renderer.onNodeClick=this.coreOnNodeClick,this.coreOnNodeClick=void 0),this.coreOnNodeRightClick&&(this.instances.renderer.onNodeRightClick=this.coreOnNodeRightClick,this.coreOnNodeRightClick=void 0)}onPointerDownOnStage(e){this.preventDraggingPinnedNodes(),e.button===0&&ho.Keymap.isModifier(e,u.settings.selectNodeModifier)&&!this.instances.renderer.dragNode&&(this.selectionStartPosition=e.getLocalPosition(this.instances.renderer.hanger),this.selectionRectangle.parent!==this.instances.renderer.hanger&&ze(this.instances.renderer.hanger,this.selectionRectangle),this.selectionRectangle.clear(),this.selectionRectangle.visible=!0,this.preventPan(),this.instances.renderer.interactiveEl.win.window.addEventListener("mouseup",this.onPointerUpOnWindow),this.isSelecting=!0)}onPointerUpOnStage(){this.pinDraggingPinnedNode()}onPointerUpOnWindow(e){e.button===0&&(this.selectionRectangle.visible=!1,this.allowPan(),this.instances.renderer.interactiveEl.win.window.removeEventListener("mouseup",this.onPointerUpOnWindow),this.isSelecting=!1,this.instances.nodesSet.selectNodesInRectangle(this.selectionRectangle.getLocalBounds()))}startListeningToUnselectNodes(){this.isListeningToUnselect||(this.isListeningToUnselect=!0,this.instances.renderer.px.stage.addEventListener("mouseup",this.onInputToUnselectNodes),this.instances.renderer.interactiveEl.win.window.addEventListener("keydown",this.onInputToUnselectNodes))}stopListeningToUnselectNodes(){this.instances.renderer.px.stage.removeEventListener("mouseup",this.onInputToUnselectNodes),this.instances.renderer.interactiveEl.win.window.removeEventListener("keydown",this.onInputToUnselectNodes),this.isListeningToUnselect=!1}preventPan(){let e=this.instances.renderer;u.proxysManager.registerProxy(this.instances.renderer,"setPan",{apply(t,i,s){return e.panvX=0,e.panvY=0,e.panning=!1,!1}})}allowPan(){u.proxysManager.unregisterProxy(this.instances.renderer.setPan)}onPointerMoveOnStage(e){if(this.isSelecting){let t=e.getLocalPosition(this.instances.renderer.hanger);this.selectionRectangle.clear(),this.selectionRectangle.beginFill(9990901,.1),this.selectionRectangle.lineStyle(2,9990901,.3),this.selectionRectangle.drawRect(Math.min(this.selectionStartPosition.x,t.x),Math.min(this.selectionStartPosition.y,t.y),Math.abs(t.x-this.selectionStartPosition.x),Math.abs(t.y-this.selectionStartPosition.y)),this.selectionRectangle.endFill()}else this.instances.nodesSet.moveSelectedNodes(e.getLocalPosition(this.instances.renderer.hanger))}onInputToUnselectNodes(e){if(!("instanceOf"in e&&e.instanceOf(KeyboardEvent))||e.key==="Escape"){if("target"in e&&this.instances.renderer.nodes.find(t=>t.circle===e.target)&&!this.isDragging)return;this.isDragging?(this.isDragging=!1,this.instances.nodesSet.stopMovingSelectedNodes()):(this.instances.nodesSet.unselectNodes(),this.instances.renderer.changed())}}onNodeClick(e,t,i){if(e&&u.settings.useLeftClickToSelect&&ho.Keymap.isModifier(e,u.settings.selectNodeModifier)){this.instances.nodesSet.selectNodes([this.instances.renderer.nodeLookup[t]]);return}if(this.instances.settings.externalLinks!=="none"&&i==="attachment")try{let s;for(let n of Object.values(this.instances.nodesSet.cachedExternalLinks))if(s=n.find(o=>{let a=this.instances.nodesSet.convertExternalLink(o);return a.domain===t||a.href===t||o.toString()===t}),s)break;if(s){if(u.settings.externalLinkOpenMode==="choice"||u.settings.externalLinkOpenMode==="note"){let n=this.findExternalLinkFiles(t);if(u.settings.externalLinkOpenMode==="note"&&n.length>0){this.instances.settings.openInNewTab?u.app.workspace.openLinkText(n[0].path,"","tab"):u.app.workspace.openLinkText(n[0].path,"",ho.Keymap.isModEvent(e));return}else if(n.length>0){new Vd(n,a=>{a?this.instances.settings.openInNewTab?u.app.workspace.openLinkText(a.path,"","tab"):u.app.workspace.openLinkText(a.path,"",ho.Keymap.isModEvent(e)):window.open(s.href,"")}).open();return}}window.open(s.href,"");return}}catch(s){console.error(s)}if(this.instances.settings.openInNewTab&&i!=="tag"){u.app.workspace.openLinkText(t,"","tab");return}this.coreOnNodeClick&&this.coreOnNodeClick(e,t,i)}onNodeRightClick(e,t,i){if(e&&u.settings.useRadialMenu&&ho.Keymap.isModifier(e,u.settings.radialMenuModifier)){new Ud(this.instances,t,i).open(e);return}if(e&&u.settings.pinNodeModifier&&ho.Keymap.isModifier(e,u.settings.pinNodeModifier)){let s=new yt(this.instances);this.instances.nodesSet.isNodePinned(t)?s.unpinNode(t):s.pinNode(t);return}this.coreOnNodeRightClick&&this.coreOnNodeRightClick(e,t,i)}findExternalLinkFiles(e){let t=[],i=[],s=[];for(let n of u.app.vault.getMarkdownFiles())for(let o of u.settings.externalLinksProperties){let a=ct(o,n);for(let l of a)try{let c=new URL(l);if(c.toString()===e){if(t.push(n),u.settings.externalLinkOpenMode==="note")return t}else c.origin+c.pathname===e?i.push(n):c.hostname===e&&s.push(n)}catch{continue}}return t.concat(i).concat(s)}onNodeMenuOpened(e,t){e.addSections(["extended-graph"]),e.addItem(i=>{this.instances.nodesSet.isNodePinned(t.path)?(i.iconEl.addClass("extended-graph-pin-off"),i.setIcon("pin-off"),i.setTitle(m("features.unpinNode")),i.onClick(()=>{this.unpinNode(t)})):(i.iconEl.addClass("extended-graph-pin"),i.setIcon("pin"),i.setTitle(m("features.pinNode")),i.onClick(()=>{this.pinNode(t)}))})}pinNode(e){new yt(this.instances).pinNode(e.path)}pinNodeFromId(e){new yt(this.instances).pinNode(e)}unpinNode(e){new yt(this.instances).unpinNode(e.path),this.instances.renderer.changed()}unpinNodeFromId(e){new yt(this.instances).unpinNode(e),this.instances.renderer.changed()}preventDraggingPinnedNodes(){let e=this.instances.renderer.dragNode;e&&this.instances.nodesSet.isNodePinned(e.id)&&new yt(this.instances).setLastDraggedPinnedNode(e.id)}pinDraggingPinnedNode(){new yt(this.instances).pinLastDraggedPinnedNode()}};var co=class r{constructor(e){this.layerGroups=[];this.nodeLookup={};this.graphicsArray={circles:new Set,names:new Set,arrows:new Set,links:new Set,linksPixiElements:new Set,linksContainer:new Set};this.isEnabled=!1;this.instances=e,this.currentLevel=e.stateData?.currentLayerLevel??0;let t=this.instances.settings.layersOrder==="ASC"?-1e4:1e4;this.notInLayers={nodeIDs:[],layerGroup:{level:t,alpha:0,layers:[{id:"",level:t,label:"",nodes:[],container:this.getNewContainer("",t)}]}},this.notInLayers.layerGroup.alpha=e.settings.nodesWithoutLayerOpacity,this.notInLayers.layerGroup.layers[0].container.alpha=e.settings.nodesWithoutLayerOpacity}rebuildContainers(){for(let t of this.layerGroups)for(let i of t.layers)if(i.container.destroyed){i.container=this.getNewContainer(i.id,i.level),i.container.alpha=t.alpha;for(let s of i.nodes){let n=this.instances.renderer.nodeLookup[s];n&&this.addToContainer(n)}}let e=this.notInLayers.layerGroup.layers[0];e.container=this.getNewContainer(e.id,e.level),e.container.alpha=this.notInLayers.layerGroup.alpha;for(let t of this.notInLayers.nodeIDs){let i=this.instances.renderer.nodeLookup[t];i&&this.addToContainer(i)}}addNode(e){if(this.nodeLookup[e]){if(this.isEnabled){let i=this.instances.renderer.nodeLookup[e];i&&this.addToContainer(i)}return}let t=qe(e);if(t){let i=r.getNodeLayer(t,this.instances.settings);if(i){let s=this.layerGroups.find(o=>o.level===i.level),n=s?.layers.find(o=>o.id===i.id);s&&n?n.nodes.push(e):(s||(s={level:i.level,layers:[],alpha:1},this.layerGroups.push(s)),n={id:i.id,label:i.label,level:i.level,nodes:[e],container:this.getNewContainer(i.id,i.level)},s.layers.push(n)),this.nodeLookup[e]={group:s,graphLayer:n};return}}if(this.notInLayers.nodeIDs.push(e),this.nodeLookup[e]={group:this.notInLayers.layerGroup,graphLayer:this.notInLayers.layerGroup.layers[0]},this.isEnabled){let i=this.instances.renderer.nodeLookup[e];i&&this.addToContainer(i)}}getNewContainer(e,t){let i=new tt;return i.name="layer-"+e,i.zIndex=this.instances.settings.layersOrder==="ASC"?t:-1*t,ze(this.instances.renderer.hanger,i),i}moveElementsInContainers(){for(let e in this.nodeLookup){let t=this.instances.renderer.nodeLookup[e];t&&this.addToContainer(t)}}add(e,t,i,s){if(!e.destroyed&&e.parent&&(e.parent===this.instances.renderer.hanger||e.parent.name?.startsWith("layer-")&&e.parent!==t.container)){let n=u.proxysManager.getTargetForProxy(e)??e;s!==void 0?Jt(t.container,n,s):ze(t.container,n),this.graphicsArray[i].add(n),n.on("destroyed",()=>{this.graphicsArray[i].delete(n)})}}addToContainer(e){if(!this.isEnabled)return;let t=this.nodeLookup[e.id].graphLayer;if(t){e.circle&&this.add(e.circle,t,"circles"),e.text&&this.add(e.text,t,"names");for(let i of Object.values(e.forward).concat(Object.values(e.reverse)).map(s=>s))this.addLinkToContainer(i)}}addLinkToContainer(e){if(!this.isEnabled)return;let t=this.nodeLookup[e.source.id]?.graphLayer;if(!t)return;let i=Wt(e),s=this.instances.linksSet.extendedElementsMap.get(i),n=this.nodeLookup[e.target.id]?.graphLayer,o=n&&n.levele.level),this.currentLevel)}updateLayers(){this.isEnabled&&(this.sortLayers(),this.updateOpacity(),this.updateUI())}sortLayers(){this.layerGroups.sort((e,t)=>e.level-t.level),this.instances.settings.layersOrder==="DESC"&&this.layerGroups.reverse()}updateOpacity(){let e=this.getCurrentIndex();for(let t=0;t=this.instances.settings.numberOfActiveLayers)return 0;if(!this.instances.settings.useLayerCustomOpacity)return(this.instances.settings.numberOfActiveLayers-i)/this.instances.settings.numberOfActiveLayers;let s=this.layerGroups[t].level;if(s in this.instances.settings.layersCustomOpacity)return this.instances.settings.layersCustomOpacity[s];let n=this.layerGroups.slice(e,e+this.instances.settings.numberOfActiveLayers),o={opacity:1,index:0};for(let c=i;c>=0;c--)if(n[c].level in this.instances.settings.layersCustomOpacity){o={opacity:this.instances.settings.layersCustomOpacity[n[c].level],index:c};break}let a={opacity:0,index:this.instances.settings.numberOfActiveLayers};for(let c=i;c{s.children.length===0&&(s.removeFromParent(),s.destroy())});this.notInLayers.layerGroup.layers[0].container.on("childRemoved",(e,t)=>{t.children.length===0&&(t.removeFromParent(),t.destroy())}),this.moveElementsOutOfContainers()}static parseLayerID(e){let t=e.split("_");if(t.length===0)return{label:e};let i=parseInt(t[0]),s=t.length>1?t.slice(1).join("_"):"";return isNaN(i)&&(i=void 0,s=e),{level:i,label:s}}static getNodeLayer(e,t){for(let i of t.layerProperties.filter(s=>s!=="")){let s=ct(i,e,t);for(let n of s){let o=r.parseLayerID(n);return{id:n,level:o.level??t.layersLevels[e.path]??t.defaultLevelForLayers,label:o.label,levelFromID:o.level!==void 0,levelFromDefault:o.level===void 0&&!(e.path in t.layersLevels)}}}return null}static getAllLayers(e){let t=u.app.vault.getMarkdownFiles(),i=[];for(let s of t)r.addLayerIfNeeded(e,i,s);return r.sortData(e,i),i}static sortData(e,t){t.sort((i,s)=>i.level===s.level?Ri(i.label,s.label):i.level-s.level),e.layersOrder==="DESC"&&t.reverse()}static addLayerIfNeeded(e,t,i){let s=r.getNodeLayer(i,e);s&&(t.some(n=>n.id===s.id)||t.push(s))}};var Ga=class{constructor(e,t,i,s){this.isEnabled=!0;this.instances=e,this.coreElement=t,this.id=this.getID(),this.managers=new Map,this.types=i;for(let n of s){let o=n.name;this.managers.set(o,n)}this.additionalConstruct(),this.needGraphicsWrapper()&&this.createGraphicsWrapper()}additionalConstruct(){}init(){this.graphicsWrapper?.pixiElement.destroyed&&this.graphicsWrapper.createGraphics(),this.graphicsWrapper?.connect(),this.modifyCoreElement()}unload(){this.restoreCoreElement(),this.graphicsWrapper?.disconnect(),this.graphicsWrapper?.clearGraphics(),this.graphicsWrapper?.destroyGraphics()}setCoreElement(e){e&&e!==this.coreElement&&(this.graphicsWrapper?.disconnect(),this.coreElement=e,this.init())}findCoreElement(){return this.isCoreElementUptodate()?this.coreElement:this.getCoreCollection().find(t=>this.isSameCoreElement(t))}isAnyManagerDisabled(){for(let[e,t]of this.managers){let i=this.getTypes(e);if(i.size!==0&&!t.isActiveBasedOnTypes([...i]))return!0}return!1}getActiveType(e){let t=this.managers.get(e);if(!t)return;let i=this.getTypes(e);for(let s of i)if(t.isActive(s))return s}matchesTypes(e,t){let i=this.getTypes(e),s=structuredClone(i),n=structuredClone(t);for(let o of t)i.has(o)&&(s.delete(o),n.remove(o));return{typesToRemove:[...s],typesToAdd:n}}hasType(e,t){return!!this.types.get(e)?.has(t)}getTypes(e){let t=this.types.get(e);return t||new Set}setTypes(e,t){this.types.set(e,t);let i=this.graphicsWrapper?.managerGraphicsMap?.get(e);i&&(i.types=t)}disableType(e,t){this.graphicsWrapper?.managerGraphicsMap?.get(e)?.toggleType(t,!1)}enableType(e,t){this.graphicsWrapper?.managerGraphicsMap?.get(e)?.toggleType(t,!0)}disable(){this.isEnabled=!1}enable(){this.isEnabled=!0,this.init()}};var rC=`attribute vec2 aVertexPosition; attribute vec2 aTextureCoord; uniform mat3 projectionMatrix; @@ -1272,7 +1272,7 @@ void main(void) { gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); vTextureCoord = aTextureCoord; -}`,rC=`varying vec2 vTextureCoord; +}`,iC=`varying vec2 vTextureCoord; uniform sampler2D uSampler; uniform vec4 filterClamp; @@ -1310,12 +1310,12 @@ void main(void) { vec4 outlineColor = vec4(vec3(uColor) * outlineAlpha, outlineAlpha); gl_FragColor = contentColor + outlineColor; } -`,zd=class extends ot{constructor(r=1,e=0,t=.1,i=1,s=!1){super(tC,rC.replace(/\$\{angleStep\}/,zd.getAngleStep(t))),this._thickness=1,this._alpha=1,this._knockout=!1,this.uniforms.uThickness=new Float32Array([0,0]),this.uniforms.uColor=new Float32Array([0,0,0,1]),this.uniforms.uAlpha=i,this.uniforms.uKnockout=s,Object.assign(this,{thickness:r,color:e,quality:t,alpha:i,knockout:s})}static getAngleStep(r){let e=Math.max(r*zd.MAX_SAMPLES,zd.MIN_SAMPLES);return(Math.PI*2/e).toFixed(7)}apply(r,e,t,i){this.uniforms.uThickness[0]=this._thickness/e._frame.width,this.uniforms.uThickness[1]=this._thickness/e._frame.height,this.uniforms.uAlpha=this._alpha,this.uniforms.uKnockout=this._knockout,r.applyFilter(this,e,t,i)}get alpha(){return this._alpha}set alpha(r){this._alpha=r}get color(){return ae.rgb2hex(this.uniforms.uColor)}set color(r){ae.hex2rgb(r,this.uniforms.uColor)}get knockout(){return this._knockout}set knockout(r){this._knockout=r}get thickness(){return this._thickness}set thickness(r){this._thickness=r,this.padding=r}},un=zd;un.MIN_SAMPLES=1,un.MAX_SAMPLES=100;var Wd=class extends Ga{constructor(){super(...arguments);this.hasChangedArrowShape=!1}additionalConstruct(){Xe.needToChangeArrow(this.instances)&&(this.extendedArrow=new Hd(this.instances,this)),this.firstSibling=!0}init(){this.findSiblingLink(),super.init(),this.extendedArrow?.init(),this.displayText(),this.isEnabled&&this.isAnyManagerDisabled()&&this.disable()}findSiblingLink(){if(this.instances.settings.enableFeatures[this.instances.type].links&&this.instances.settings.curvedLinks)return;let t=Wt({source:{id:this.coreElement.target.id},target:{id:this.coreElement.source.id}});this.siblingLink=this.instances.linksSet.extendedElementsMap.get(t),this.siblingLink&&(this.firstSibling=!!this.coreElement.line?.visible,this.siblingLink.siblingLink||(this.siblingLink.siblingLink=this,this.siblingLink.updateDisplayedTexts()))}modifyCoreElement(){this.modifyClearGraphics(),this.changeCoreLinkThickness(),this.proxyLine(),this.createContainer(),(this.isCurveLine()||this.graphicsWrapper?.pixiElement instanceof po)&&this.coreElement.line&&(this.coreElement.line.renderable=!1)}modifyClearGraphics(){this.coreClearGraphics||(this.coreClearGraphics=this.coreElement.clearGraphics,this.coreElement.clearGraphics=(()=>{u.proxysManager.unregisterProxy(this.coreElement.arrow),u.proxysManager.unregisterProxy(this.coreElement.line),this.coreClearGraphics&&(this.coreElement.clearGraphics=this.coreClearGraphics,this.coreClearGraphics=void 0,this.coreElement.clearGraphics())}).bind(this))}restoreCoreElement(){this.coreClearGraphics&&(this.coreElement.clearGraphics=this.coreClearGraphics,this.coreClearGraphics=void 0),this.restoreCoreLinkThickness(),u.proxysManager.unregisterProxy(this.coreElement.line),this.extendedArrow?.unload(),this.removeContainer(),this.coreElement.line&&(this.coreElement.line.renderable=!0)}unload(){super.unload(),this.removeTexts()}needGraphicsWrapper(){return!!(this.instances.settings.enableFeatures[this.instances.type].links&&(this.instances.settings.curvedLinks||this.instances.settings.allowMultipleLinkTypes&&(this.instances.settings.allowMultipleLinkTypes||this.instances.settings.interactiveSettings[ne].showOnGraph)))}createGraphicsWrapper(){this.graphicsWrapper||(this.graphicsWrapper=this.instances.settings.curvedLinks&&this.instances.settings.curvedFactor!==0?new qd(this):new Yd(this),this.graphicsWrapper.createGraphics())}isCurveLine(){return this.graphicsWrapper?.pixiElement instanceof hn}isRendered(){return!!this.coreElement.line?.visible||this.instances.settings.enableFeatures[this.instances.type].links&&this.instances.settings.curvedLinks}changeCoreLinkThickness(){this.coreElement.px&&u.settings.enableFeatures[this.instances.type]["elements-stats"]&&u.settings.linksSizeFunction!=="default"&&(u.settings.enableFeatures[this.instances.type].links&&!this.instances.settings.curvedLinks||!u.settings.enableFeatures[this.instances.type].links)?this.coreElement.px.scale.y=this.getThicknessScale():this.restoreCoreLinkThickness()}restoreCoreLinkThickness(){this.coreElement.px&&(this.coreElement.px.scale.y=1)}getThicknessScale(){if(!u.settings.enableFeatures[this.instances.type]["elements-stats"]||u.settings.linksSizeFunction==="default")return 1;let t=this.instances.linksSizeCalculator??u.graphsManager.linksSizeCalculator;return!t||!(this.coreElement.source.id in t.linksStats)||!(this.coreElement.target.id in t.linksStats[this.coreElement.source.id])?1:t.linksStats[this.coreElement.source.id][this.coreElement.target.id].value}createContainer(){if(!this.instances.settings.enableFeatures[this.instances.type].links||!this.instances.settings.outlineLinks)return;let t;this.siblingLink?.container?t=this.siblingLink.container:(this.container=new tt,t=this.container),this.coreElement.px&&(this.coreElement.px.removeFromParent(),ze(t,this.coreElement.px),this.coreElement.px.addListener("destroyed",this.removeContainer)),this.coreElement.arrow&&(this.coreElement.arrow.removeFromParent(),ze(t,this.coreElement.arrow),this.coreElement.arrow.addListener("destroyed",this.removeContainer)),this.graphicsWrapper?.pixiElement&&(this.graphicsWrapper.pixiElement.removeFromParent(),ze(t,this.graphicsWrapper.pixiElement),this.graphicsWrapper.pixiElement.addListener("destroyed",this.removeContainer)),t.filters=[new un(1,this.instances.cssBridge.getPrimaryColor(),.1,1,!1)],ze(this.coreElement.renderer.hanger,t)}removeContainer(){if(this.coreElement&&(this.coreElement.px&&this.coreElement.px.removeEventListener("destroyed",this.removeContainer),this.coreElement.arrow&&this.coreElement.arrow.removeEventListener("destroyed",this.removeContainer),this.graphicsWrapper?.pixiElement&&this.graphicsWrapper.pixiElement.removeEventListener("destroyed",this.removeContainer),!!this.container)){for(let t of this.container.children.filter(i=>!i.destroyed))ze(this.coreElement.renderer.hanger,t);this.container.destroy(),this.container=void 0}}proxyLine(){if(!Xe.needToChangeLinkColor(this.instances))return;let t=this.coreElement;if(t.line){let i=this.getStrokeColor.bind(this);u.proxysManager.registerProxy(this.coreElement,"line",{set(s,n,o,a){return n==="tint"&&(o=i()??o),Reflect.set(s,n,o,a)}}),t.line.on("destroyed",()=>u.proxysManager.unregisterProxy(this.coreElement.line))}}isHighlighted(){return this.instances.settings.noLineHighlight?!1:this.coreElement.source===this.coreElement.renderer.getHighlightNode()||this.coreElement.target===this.coreElement.renderer.getHighlightNode()}getStrokeColor(t=!1){if(!t&&this.isHighlighted())return;let i;if(this.instances.settings.enableFeatures[this.instances.type].links&&this.instances.settings.interactiveSettings[ne].showOnGraph){let s=this.managers.get(ne),n=this.getActiveType(ne);if(!this.isCurveLine()&&(!n||n===this.instances.settings.interactiveSettings[ne].noneType)&&this.siblingLink&&(n=this.siblingLink.getActiveType(ne)),s&&n&&n!==this.instances.settings.interactiveSettings[ne].noneType)return s.getColor(n)}if(u.settings.enableFeatures[this.instances.type]["elements-stats"]&&u.settings.linksColorFunction!=="default"){let s=this.instances.linksColorCalculator??u.graphsManager.linksColorCalculator;if(s){if(this.coreElement.source.id in s.linksStats&&this.coreElement.target.id in s.linksStats[this.coreElement.source.id]){let n=s.linksStats[this.coreElement.source.id][this.coreElement.target.id]?.value;if(n)return n}if(!this.isCurveLine()&&this.siblingLink&&this.siblingLink.coreElement.source.id in s.linksStats&&this.siblingLink.coreElement.target.id in s.linksStats[this.siblingLink.coreElement.source.id]){let n=s.linksStats[this.siblingLink.coreElement.source.id][this.siblingLink.coreElement.target.id]?.value;if(n)return n}}}if(this.instances.settings.enableFeatures[this.instances.type].linksSameColorAsNode)return this.instances.settings.enableFeatures[this.instances.type].arrows&&this.instances.settings.invertArrows?i=this.coreElement.target.getFillColor().rgb:i=this.coreElement.source.getFillColor().rgb,i}initAnimation(){this.instances.renderer.dragNode&&this.animatedDot||(this.animatedDot&&(this.animatedDot.destroy(),this.animatedDot=void 0),this.isCurveLine()?this.animatedDot=new jd(this):this.animatedDot=new $d(this),ze(this.coreElement.renderer.hanger,this.animatedDot),this.animationLoop())}async animate(){if(this.coreElement.renderer.idleFrames=0,this.isCurveLine()&&this.graphicsWrapper?.pixiElement)this.animatedDot?.updateFrame(this.graphicsWrapper.pixiElement.bezier);else{let t=this.coreElement.renderer.nodeScale,i=this.coreElement.source,s=this.coreElement.target,n={x:s.x-i.x,y:s.y-i.y},o=Math.sqrt(n.x*n.x+n.y*n.y);n.x/=o,n.y/=o;let a={x:i.x+t*i.getSize()*n.x,y:i.y+t*i.getSize()*n.y},l={x:s.x-t*s.getSize()*n.x,y:s.y-t*s.getSize()*n.y};this.animatedDot?.updateFrame({P0:a,P1:{x:(a.x+l.x)*.5,y:(a.y+l.y)*.5},P2:l})}}animationLoop(){requestAnimationFrame(async()=>{await this.animate(),this.coreElement.renderer.getHighlightNode()===this.coreElement.source||this.coreElement.renderer.getHighlightNode()===this.coreElement.target?this.animationLoop():(this.animatedDot?.destroy(),this.animatedDot=void 0)})}isCoreElementUptodate(){return!!this.coreElement.line}isSameCoreElement(t){return t.source.id===this.coreElement.source.id&&t.target.id===this.coreElement.target.id}isSameCoreGraphics(t){return t.line===this.coreElement.line}getCoreCollection(){return this.coreElement.renderer.links}getCoreParentGraphics(t){return this.instances.settings.curvedLinks?t.px:t.line}canBeAddedWithEngineOptions(){let t=this.instances.nodesSet.extendedElementsMap.get(this.coreElement.source.id),i=this.instances.nodesSet.extendedElementsMap.get(this.coreElement.target.id);return!t||!i?!1:t.canBeAddedWithEngineOptions()&&i.canBeAddedWithEngineOptions()}getID(){return Wt(this.coreElement)}disableType(t,i){super.disableType(t,i),this.updateDisplayedTexts()}enableType(t,i){super.enableType(t,i),this.updateDisplayedTexts()}disable(){if(super.disable(),this.extendedArrow?.unload(),this.graphicsWrapper?.disconnect(),this.texts)for(let t of this.texts)t.isRendered=!1,t.visible=!1}displayText(){if(!this.instances.settings.displayLinkTypeLabel||!this.coreElement.px?.renderable)return;this.texts||(this.texts=[]);let t=this.getDisplayedTexts();for(let i of t){let s=this.texts.find(n=>n.text.text===i);s?.destroyed&&this.texts.remove(s),(!s||s.destroyed)&&(this.graphicsWrapper?.pixiElement instanceof Va?s=new Xd(i,this):this.graphicsWrapper?.pixiElement instanceof Ua?s=new Kd(i,this):this.graphicsWrapper?.pixiElement instanceof po?s=new Zd(i,this):s=new Qd(i,this),this.texts.push(s)),s.setDisplayedText(i),s.connect(),s.updateFrame()}}getDisplayedTexts(){if(this.instances.settings.allowMultipleLinkTypes){let t=[...this.getTypes(ne)].filter(i=>this.managers.get(ne)?.isActive(i)&&i!==this.instances.settings.interactiveSettings[ne].noneType);if(!this.isCurveLine()&&this.siblingLink){let i=[...this.siblingLink.getTypes(ne)].filter(s=>this.managers.get(ne)?.isActive(s)&&s!==this.instances.settings.interactiveSettings[ne].noneType);t=[...new Set([...t,...i])]}return t}else{let t=this.getActiveType(ne);if(!t||t===this.instances.settings.interactiveSettings[ne].noneType){if(this.isCurveLine())return[];if(t=this.siblingLink?.getActiveType(ne),!t||t===this.instances.settings.interactiveSettings[ne].noneType)return[]}return[t]}}updateDisplayedTexts(){if(!this.texts)return;let t=this.getDisplayedTexts();if(this.instances.settings.allowMultipleLinkTypes)for(let i of t){let s=this.texts.find(n=>n.text.text===i);s&&(s.setDisplayedText(i),s.updateTextColor())}else{if(t.length===0)return;this.texts[0].setDisplayedText(t[0]),this.texts[0].applyCSSChanges()}}updateRenderedTexts(){if(!this.texts||!this.isEnabled)return;let t=za(1,this.coreElement.source.circle?.position??{x:0,y:0},this.coreElement.target.circle?.position??{x:0,y:0}),i=this.texts.filter(o=>this.instances.linksSet.managers.get(ne)?.isActive(o.text.text)),s=t/i.length,n=0;for(let o of this.texts)i.contains(o)?(Math.floor((n-s)/110)!Xe.excludeType(t??u.settings,r,s)))}function i5(r,e,t,i){if(e.extension!=="md")return 0;switch(r){case He:return sC(e,t);case pe:return 1;default:return oC(r,e,t,i)}}function iC(r){let e=u.app.metadataCache.getCache(r.path);if(!e)return new Set;let t=(0,e1.getAllTags)(e)?.map(i=>i.replace("#",""));return t?new Set(t.sort()):new Set}function sC(r,e){let t=u.app.metadataCache.getCache(r.path);if(!t)return 0;let i="#"+e.replace("#",""),s=t.frontmatter?.tags?.filter(o=>o===e||o===i)||[],n=t.tags?.reduce((o,a)=>((a.tag===e||a.tag===i)&&o.push(a.tag),o),[])||[];return s.length+n.length}function Jd(r,e){if(r){if(typeof r=="string")if(r.startsWith("[[")&&r.endsWith("]]")){let t=(0,e1.getLinkpath)(r.slice(2,r.length-2)),i=t.indexOf("|"),s=i>=0?t.slice(0,i):t;e.add(fi(s).basename)}else e.add(r);else if(typeof r=="number")e.add(String(r));else if(typeof r=="boolean")e.add(String(r));else if(typeof r=="object"&&"path"in r)e.add(fi(r.path).basename);else if(Array.isArray(r))for(let t of r)Jd(t,e)}}function nC(r,e,t){let i=N0(r.ignoreInlineLinks),s=new Set;if(i){let n=i.page(t.path);if(r.canonicalizePropertiesWithDataview){let a=Object.keys(n).filter(l=>zt(l)===zt(e)).reduce((l,c)=>n[c]===null||n[c]===void 0||n[c]===""?l:l.concat([n[c]]),[]);if(a.length===0)return new Set;Jd(a,s)}else{let o=n[e];if(o==null||o==="")return new Set;Jd(o,s)}}else{let n=u.app.metadataCache.getFileCache(t)?.frontmatter;if(n?.hasOwnProperty(e)){let o=n[e];Jd(o,s)}}return s}function u8(r,e){if(typeof r=="string"||typeof r=="number"){if(e===String(r))return 1}else if(r&&typeof r=="object"&&"path"in r){let t=qe(r.path);if(t&&u.app.metadataCache.fileToLinktext(t,r.path,!0)===e)return 1;if(!t&&r.path===e)return 1}else if(Array.isArray(r)){let t=0;for(let i of r)t+=u8(i,e);return t}return 0}function oC(r,e,t,i){let s=N0(i);if(s){let o=s.page(e.path)[r];return o==null||o===""?0:u8(o,t)}else{let n=u.app.metadataCache.getFileCache(e)?.frontmatter;if(n?.hasOwnProperty(r)){let o=n[r];return u8(o,t)}}return 1}function t1(r){let e=N0(r.ignoreInlineLinks);return e?e.pages().values.reduce((t,i)=>t.concat(s5(r.canonicalizePropertiesWithDataview,i)),[]):Object.keys(u.app.metadataCache.getAllPropertyInfos())}function aC(r){let e=new Set;return r.parent&&e.add(r.parent.path),e}function Lo(r,e){let t=N0(r.ignoreInlineLinks);return t?lC(r,t,e):cC(e)}function lC(r,e,t){let i=new Map,s=e.page(t.path);for(let[n,o]of Object.entries(s))if(!(n==="file"||r.imageProperties.contains(n))&&!(o==null||o==="")&&!(!r.canonicalizePropertiesWithDataview&&n===zt(n)&&Object.keys(s).some(a=>zt(a)===zt(n)&&a!==n))){if(o&&typeof o=="object"&&"path"in o){let a=o.path,l=i.get(a);l||(l=new Set,i.set(a,l)),l.add(r.canonicalizePropertiesWithDataview?zt(n):n)}else if(Array.isArray(o)){for(let a of o)if(a&&typeof a=="object"&&"path"in a){let l=a.path,c=i.get(l);c||(c=new Set,i.set(l,c)),c.add(r.canonicalizePropertiesWithDataview?zt(n):n)}}}return i}function cC(r){let e=new Map,t=u.app.metadataCache.getFileCache(r)?.frontmatterLinks;if(t&&t.length>0)for(let i of t){let s=i.key.split(".")[0],n=u.app.metadataCache.getFirstLinkpathDest(i.link,".")?.path;n&&(e.has(n)||e.set(n,new Set),e.get(n)?.add(s))}return e}function H6(r){let e=u.app.metadataCache.getFileCache(r),t=[];if(e){if(e.links)for(let i=0;ithis.restoreCoreElement())}proxyGetSize(){if(!(this.graphicsWrapper&&this.graphicsWrapper.shape!=="circle")&&this.radius===We.RADIUS&&!(this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&this.instances.settings.nodesSizeFunction!=="default"))return;let t=this.getSize.bind(this);u.proxysManager.registerProxy(this.coreElement,"getSize",{apply(i,s,n){return t.call(this,...n)}})}needToChangeColor(){return!!(this.instances.type==="localgraph"&&(this.instances.settings.colorBasedOnDepth||this.instances.settings.currentNode.useColor&&this.isCurrentNode)||this.icon?.color&&this.instances.settings.useIconColorForBackgroud)}needToUpdateGraphicsColor(){return!1}proxyGetFillColor(){let t=this.needToUpdateGraphicsColor(),i=this.needToChangeColor();if(!(t||i))return;let s=this.onGetFillColorCalled.bind(this);u.proxysManager.registerProxy(this.coreElement,"getFillColor",{apply(n,o,a){return s(t,i,n,o,a)}})}proxyInitGraphics(){let t=this.onInitGraphicsCalled.bind(this);u.proxysManager.registerProxy(this.coreElement,"initGraphics",{apply(i,s,n){let o=Reflect.apply(i,s,n);return t(),o}})}proxyRender(){if(!(this.instances.settings.enableFeatures[this.instances.type].names&&this.instances.settings.showNamesWhenNeighborHighlighted||this.icon||this.graphicsWrapper&&this.graphicsWrapper.shape!=="circle"||this.instances.type==="graph"&&this.instances.settings.enableFeatures.graph.focus&&this.instances.settings.focusScaleFactor!==1))return;let t=this.onRenderCalled.bind(this);u.proxysManager.registerProxy(this.coreElement,"render",{apply(i,s,n){let o=Reflect.apply(i,s,n);return t(),o}})}unload(){this.removeAnimationListener(),this.isPinned&&new yt(this.instances).unpinNode(this.id),this.extendedText.unload(),this.coreElement.circle?.filters&&(this.coreElement.circle.filters.remove(this.instances.nodesSet.selectionFilter),this.coreElement.circle.filters.remove(this.instances.nodesSet.openFilter),this.coreElement.circle.filters.remove(this.instances.nodesSet.searchResultFilter)),super.unload()}restoreCoreElement(){u.proxysManager.unregisterProxy(this.coreElement.getSize),u.proxysManager.unregisterProxy(this.coreElement.getFillColor),u.proxysManager.unregisterProxy(this.coreElement.initGraphics),u.proxysManager.unregisterProxy(this.coreElement.render)}needGraphicsWrapper(){return this.needPin()||this.needOpacityLayer()||!!this.icon}needOpacityLayer(){return this.instances.settings.fadeOnDisable}needPin(){return this.instances.settings.showPinIcon}needIcon(){return this.instances.settings.enableFeatures[this.instances.type].icons}getIcon(){if(!this.needIcon())return;let t=this.instances.settings.useParentIcon?c5(this.id).reverse():[this.id],i=null;if(this.instances.settings.iconProperties.some(s=>s!=="")){let s=qe(this.id);if(s){let n=!1;for(let o of this.instances.settings.iconProperties){let a=ct(o,s,this.instances.settings);for(let l of a){if(Bc(l)){i={svg:null,color:null,emoji:l},n=!0;break}let c=(0,n5.getIcon)(l);if(c){c.setAttribute("stroke","white"),i={svg:c,color:null,emoji:null},n=!0;break}}if(n)break}}}if(!i&&this.instances.settings.usePluginForIcon){for(let s of t)if(i=o5(s),i||(i=a5(s)),i)break;i?.svg&&h8(i.svg,"white")}if(i&&!this.instances.settings.usePluginForIconColor&&(i.color=null),i?.emoji){let s=Bf(i.emoji);s&&(i.color=h0(s))}this.icon&&this.icon.svg==null&&this.icon.emoji==null?this.icon=null:this.icon=i}onInitGraphicsCalled(){this.graphicsWrapper?.connect()}onRenderCalled(){if(this.instances.settings.enableFeatures[this.instances.type].names&&this.instances.settings.showNamesWhenNeighborHighlighted&&this.extendedText.makeVisibleIfNeighborHighlighted(),this.coreElement.circle){if(this.graphicsWrapper&&this.graphicsWrapper.shape!=="circle")this.coreElement.circle.tint=$e.backgroundColor;else if(this.icon){let t=!this.graphicsWrapper||!("background"in this.graphicsWrapper)||!this.graphicsWrapper.background;this.coreElement.circle.tint=t?yh($e.backgroundColor,this.coreElement.getFillColor().rgb,this.instances.settings.backgroundOpacityWithIcon):$e.backgroundColor,this.coreElement.circle.alpha=1}this.instances.type==="graph"&&this.instances.settings.enableFeatures.graph.focus&&this.instances.settings.focusScaleFactor!==1&&this.id===u.app.workspace.getActiveFile()?.path&&(this.coreElement.circle.scale.x*=this.instances.settings.focusScaleFactor,this.coreElement.circle.scale.y*=this.instances.settings.focusScaleFactor)}}computeRadius(){let t=!1;if(this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]){let i=this.instances.settings.nodesSizeProperties.filter(s=>s!=="");if(i.length>0){let s=qe(this.id);if(s)for(let n of i){let o=ct(n,s,this.instances.settings);for(let a of o)if(l5(a)){this.radius=parseInt(a),isNaN(this.radius)&&(this.radius=We.RADIUS),t=!0;break}if(t)break}}}!t&&this.isCurrentNode&&this.instances.settings.currentNode.size!==gi.currentNode.size&&(this.radius=this.instances.settings.currentNode.size)}getSize(){return this.getSizeWithoutScaling()*this.graphicsWrapperScale}getSizeWithoutScaling(){let t=this.radius/We.RADIUS,i=this.coreElement;if(this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&this.instances.settings.nodesSizeFunction!=="default"){let s=i.renderer.fNodeSizeMult*8,n=(this.instances.nodesSizeCalculator??u.graphsManager.nodesSizeCalculator)?.filesStats.get(this.id)?.value;return s*t*(n??1)}else return i.renderer.fNodeSizeMult*Math.max(8,Math.min(3*Math.sqrt(i.weight+1),30))*t}onGetFillColorCalled(t,i,s,n,o){let a=this.coreElement.renderer.getHighlightNode()===this.coreElement,l=this.coreElement.type==="focused",c=Reflect.apply(s,n,o),h=c;return i&&(a||(h=this.getFillColor.call(this,...o)??c)),t&&this.graphicsWrapper?.updateFillColor(h.rgb,a),h}getFillColor(){if(this.isCurrentNode&&this.instances.settings.currentNode.useColor)return{rgb:Vr(this.instances.settings.currentNode.color),a:this.instances.renderer.colors.fillFocused.a>0?this.instances.renderer.colors.fillFocused.a:1};if(this.icon?.color&&this.instances.settings.useIconColorForBackgroud)return{rgb:si(this.icon.color).rgb,a:this.instances.renderer.colors.fill.a}}isCoreElementUptodate(){return!!this.coreElement.circle}isSameCoreElement(t){return t.id===this.id}isSameCoreGraphics(t){return t.circle===this.coreElement.circle}getCoreCollection(){return this.coreElement.renderer.nodes}setCoreElement(t){t&&(this.extendedText.coreElement=t),super.setCoreElement(t)}getCoreParentGraphics(t){return t.circle}canBeAddedWithEngineOptions(){return!(this.coreElement.type==="tag"&&!this.instances.engine.getOptions().showTags||this.coreElement.type==="attachment"&&!this.instances.engine.getOptions().showAttachments||this.coreElement.type==="unresolved"&&this.instances.engine.getOptions().hideUnresolved)}getID(){return this.coreElement.id}pin(){this.isPinned=!0,this.pinnedPosition={x:this.coreElement.x,y:this.coreElement.y},this.graphicsWrapper?.pin()}unpin(){this.isPinned=!1,this.pinnedPosition=void 0,this.graphicsWrapper?.unpin()}select(){return this.coreElement.circle?(this.coreElement.circle.filters?this.coreElement.circle.filters.contains(this.instances.nodesSet.selectionFilter)||this.coreElement.circle.filters.push(this.instances.nodesSet.selectionFilter):this.coreElement.circle.filters=[this.instances.nodesSet.selectionFilter],!0):!1}unselect(){this.coreElement.circle?.filters?.remove(this.instances.nodesSet.selectionFilter)}addAnimationListener(){this.instances.settings.animateDotsOnLinks&&(this.initLinksAnimation=this.initLinksAnimation.bind(this),this.coreElement.circle?.addListener("mouseenter",this.initLinksAnimation))}removeAnimationListener(){this.coreElement.circle?.removeListener("mouseenter",this.initLinksAnimation)}initLinksAnimation(){for(let t of Object.entries(this.coreElement.forward)){if(!this.instances.renderer.nodes.find(s=>s.id===t[0]))continue;let i=this.instances.linksSet.extendedElementsMap.get(Wt(t[1]));i&&i.initAnimation()}for(let t of Object.entries(this.coreElement.reverse)){if(!this.instances.renderer.nodes.find(s=>s.id===t[0]))continue;let i=this.instances.linksSet.extendedElementsMap.get(Wt(t[1]));i&&i.initAnimation()}}toggleOpenInTab(t){this.coreElement.circle&&(t?(this.coreElement.circle.filters||(this.coreElement.circle.filters=[]),this.coreElement.circle.filters.contains(this.instances.nodesSet.openFilter)||this.coreElement.circle.filters.push(this.instances.nodesSet.openFilter)):this.coreElement.circle.filters&&this.coreElement.circle.filters.remove(this.instances.nodesSet.openFilter))}toggleIsSearchResult(t){this.coreElement.circle&&(t?(this.coreElement.circle.filters||(this.coreElement.circle.filters=[]),this.coreElement.circle.filters.contains(this.instances.nodesSet.searchResultFilter)||this.coreElement.circle.filters.push(this.instances.nodesSet.searchResultFilter)):this.coreElement.circle.filters&&this.coreElement.circle.filters.remove(this.instances.nodesSet.searchResultFilter))}flicker(){let t=this.coreElement.circle;if(!t)return;let i=new We(this.graphicsWrapper?.shape??"circle");i.eventMode="none",i.drawFill(this.instances.cssBridge.getSearchColor()),i.zIndex=100,i.alpha=0,this.coreElement.renderer.hanger.addChild(i);let s=!0,n=3e3,o=Date.now(),a=()=>{if(t.destroyed||i.destroyed)return;let c=i.alpha+(s?.07:-.07);i.position.set(t.position.x,t.position.y),i.scale.set(t.scale.x*i.getDrawingResolution(),t.scale.y*i.getDrawingResolution()),c<0?(s=!0,i.alpha=0):c>1?(s=!1,i.alpha=1):i.alpha=c,this.instances.renderer.changed(),Date.now()-o{cancelAnimationFrame(l)}),t.addEventListener("destroyed",()=>{cancelAnimationFrame(l)})}};var i1=class extends Oi{needGraphicsWrapper(){return super.needGraphicsWrapper()||this.needImage()}needImage(){return this.instances.settings.enableFeatures[this.instances.type].imagesForAttachments}createGraphicsWrapper(){this.graphicsWrapper||(this.graphicsWrapper=new s1(this)),this.graphicsWrapper.createGraphics(),this.graphicsWrapperScale=We.nodeScaleFactor(this.graphicsWrapper.shape)}};var n1=class extends Oi{needGraphicsWrapper(){return super.needGraphicsWrapper()||this.needBackground()||this.needImage()||this.needArcs()}needImage(){return this.instances.settings.enableFeatures[this.instances.type].imagesFromProperty||this.instances.settings.enableFeatures[this.instances.type].imagesFromEmbeds}needBackground(){return!!(this.icon&&this.instances.settings.backgroundOpacityWithIcon>0&&this.graphicsWrapper?.shape!=="circle"||this.icon&&this.instances.settings.borderWidthWithIcon>0||this.graphicsWrapper?.shape!=="circle")}needArcs(){if(this.coreElement.type!==""&&!(this.instances.type==="localgraph"&&this.coreElement.type==="focused")||this.managers.size===0)return!1;for(let[e,t]of this.managers)if(this.instances.settings.interactiveSettings[e].showOnGraph)return!0;return!1}createGraphicsWrapper(){this.graphicsWrapper||(this.graphicsWrapper=new o1(this)),this.graphicsWrapper.createGraphics(),this.graphicsWrapperScale=We.nodeScaleFactor(this.graphicsWrapper.shape)}needToChangeColor(){return super.needToChangeColor()||this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&u.settings.nodesColorFunction!=="default"}needToUpdateGraphicsColor(){return super.needToUpdateGraphicsColor()||!!this.graphicsWrapper.background||!!this.graphicsWrapper?.iconSprite}getFillColor(){let e=super.getFillColor();if(e)return e;if(this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&u.settings.nodesColorFunction!=="default"){let t=(this.instances.nodesColorCalculator??u.graphsManager.nodesColorCalculator)?.filesStats.get(this.id);if(t)return{rgb:t.value,a:1}}if(this.instances.type==="localgraph"&&this.instances.settings.colorBasedOnDepth&&this.instances.graphologyGraph?.graphology){let i=this.instances.graphologyGraph.graphology.getNodeAttribute(this.id,"depth");if(i&&i>0){let s=(i-1)/4;return{rgb:zs(s,this.instances.settings.depthColormap,this.instances.settings),a:1}}}}};var a1=class extends Oi{createGraphicsWrapper(){this.graphicsWrapper||(this.graphicsWrapper=new l1(this)),this.graphicsWrapper.createGraphics(),this.graphicsWrapperScale=We.nodeScaleFactor(this.graphicsWrapper.shape)}needToChangeColor(){return super.needToChangeColor()||this.instances.settings.enableFeatures[this.instances.type].tags&&!Xe.excludeType(this.instances.settings,He,this.id.replace("#",""))}getFillColor(){if(this.instances.settings.enableFeatures[this.instances.type].tags&&!Xe.excludeType(this.instances.settings,He,this.id.replace("#",""))){let e=this.managers.get(He)?.getColor(this.id.replace("#",""));if(e)return{rgb:e,a:1}}return super.getFillColor()}};var c1=class extends Oi{constructor(e,t){super(e,t,new Map,[])}needGraphicsWrapper(){return super.needGraphicsWrapper()||this.needInnerCircle()}needInnerCircle(){return typeof this.instances.settings.borderUnresolved=="number"&&this.instances.settings.borderUnresolved>0&&this.instances.settings.borderUnresolved<1}createGraphicsWrapper(){this.graphicsWrapper||(this.graphicsWrapper=new u1(this)),this.graphicsWrapper.createGraphics(),this.graphicsWrapperScale=We.nodeScaleFactor(this.graphicsWrapper.shape)}};var r1=class{constructor(e,t){this.hasChangedText=!1;this.instances=e,this.coreElement=t,this.coreGetTextStyle=this.coreElement.getTextStyle.bind(this.coreElement),this.onMouseEnter=this.onMouseEnter.bind(this),this.onMouseLeave=this.onMouseLeave.bind(this),this.restoreText=this.restoreText.bind(this),this.changeText=this.changeText.bind(this)}init(){this.modifyCoreElement(),this.coreElement.text?.addListener("destroyed",()=>{this.unload()})}modifyCoreElement(){this.updateTextStyle(),this.updateText(),this.createTextPositionCallback()}unload(){this.restoreTextPositionCallback(),this.coreElement.text&&this.hasChangedText&&(this.coreElement.circle?.removeListener("mouseenter",this.onMouseEnter),this.coreElement.circle?.removeListener("mouseleave",this.onMouseLeave),this.restoreText(),this.hasChangedText=!1),this.restoreTextStyle(),this.coreElement.text&&this.coreElement.text.anchor.set(.5,0)}disable(){this.restoreTextPositionCallback()}updateTextStyle(){if(!this.coreElement.text)return;let e=!!this.instances.extendedStyleEl,t=this.instances.settings.enableFeatures[this.instances.type].names&&this.instances.settings.addBackgroundToName;if(!e&&!t)return;let i=this.instances.cssBridge.getNodeTextStyle(this.coreElement.id),s=typeof this.coreElement.text.style.fontFamily=="string"?this.coreElement.text.style.fontFamily:this.coreElement.text.style.fontFamily.join(", ");this.coreElement.getTextStyle=()=>{let n=this.coreGetTextStyle();if(e){if(n.fontFamily=i.fontFamily+", "+s,n.fontStyle=i.fontStyle,n.fontVariant=i.fontVariant,n.fontWeight=i.fontWeight,n.letterSpacing=i.letterSpacing,n.fontSize=i.fontSize+this.coreElement.getSize()/4,i.fill&&(n.fill=i.fill),i.stroke&&this.coreElement.text){$e.applyTextStroke(n,i.stroke);let{height:o}=xt.measureText(this.coreElement.text.text,n);this.coreElement.text.anchor.set(.5,i.stroke.width/o)}else this.coreElement.text&&this.coreElement.text.anchor.set(.5,0);i.dropShadow&&this.coreElement.text&&$e.applyTextShadow(n,i.dropShadow,Ma(n.fill)??this.coreElement.renderer.colors.text.rgb)}return t&&(n.stroke=$e.backgroundColor,n.strokeThickness=8,n.lineJoin="round"),n},this.coreElement.fontDirty=!0}restoreTextStyle(){this.coreElement.getTextStyle=this.coreGetTextStyle,this.coreElement.fontDirty=!0}updateText(){!this.instances.settings.enableFeatures[this.instances.type].names||!this.coreElement.text||(this.coreElement.circle?.addListener("mouseenter",this.onMouseEnter),this.coreElement.circle?.addListener("mouseleave",this.onMouseLeave),this.hasChangedText=!0,this.changeText())}onMouseEnter(){this.coreElement.text&&(this.setText(this.getPropertyName()??this.coreElement.getDisplayText()),this.coreElement.text.zIndex=10)}onMouseLeave(){this.coreElement.text&&(this.changeText(),this.coreElement.text.zIndex=2)}changeText(){if(!this.coreElement.text)return;let e=this.getPropertyName()??this.coreElement.getDisplayText();this.instances.settings.showOnlyFileName&&(e=e.split("/").last()||e),this.instances.settings.noExtension&&(e=e.replace(/\.[^/.]+$/,"")),this.instances.settings.numberOfCharacters&&this.instances.settings.numberOfCharacters>0&&e.length>this.instances.settings.numberOfCharacters&&(e=e.slice(0,this.instances.settings.numberOfCharacters)+this.instances.settings.ellipsis),this.setText(e)}getPropertyName(){if(!this.instances.settings.usePropertiesForName)return;let e=qe(this.coreElement.id);if(e)for(let t of this.instances.settings.usePropertiesForName){let i=ct(t,e,this.instances.settings);for(let s of i)if(s!=null)return s.toString()}}restoreText(){if(!this.coreElement.text)return;let e=this.coreElement.getDisplayText();this.coreElement.text.text!==e&&(this.coreElement.text.text=e)}setText(e){this.coreElement.text&&this.coreElement.text.text!==e&&(this.coreElement.text.text=e)}createTextPositionCallback(){if(!this.instances.settings.enableFeatures[this.instances.type].names||this.instances.settings.nameVerticalOffset===0&&!this.instances.settings.dynamicVerticalOffset||!this.coreElement.text)return;let e=this.coreElement.text.position,t=this.instances.settings.dynamicVerticalOffset?this.applyDynamicOffset.bind(this):this.applyStaticOffset.bind(this);this.coreTextPositionCallback=e.cb;let i=e.cb;e.cb=()=>{t(),i.call(e.scope)},this.coreElement.fontDirty=!0,this.coreElement.moveText=0}restoreTextPositionCallback(){if(!this.coreTextPositionCallback)return;let e=this.coreElement.text?.position;e&&(e.cb=this.coreTextPositionCallback,this.coreTextPositionCallback=void 0)}applyDynamicOffset(){let e=this.coreElement,t=e.text,i=e.circle;if(!t||!i)return;let s=t.position.y;this.instances.renderer.fShowArrow&&(s=Object.values(e.reverse).reduce((o,a)=>{if(a.arrow&&a.arrow.visible){let l=a.arrow.getBounds();s=Math.max(s,t.parent.toLocal({x:l.left,y:l.bottom}).y)}return s},s));let n=i.getBounds();s=Math.max(s,t.parent.toLocal({x:n.left,y:n.bottom}).y),t.position._y=s}applyStaticOffset(){let e=this.coreElement;if(!e.text||!e.circle)return;let t=this.instances.settings.nameVerticalOffset,i=this.instances.renderer,s=e.text.y,n=e.getSize();if(t<-55){let o=e.y+(n+5)*i.nodeScale,a=s-o;s=o-a}if(t<-5&&t>-105){let o=n*i.nodeScale/50+e.text.height/100,a=-5*i.nodeScale+(5+t)*o;s=s+a}else if(t<=-105){let o=n*i.nodeScale/50+e.text.height/100,a=(100+t)*i.nodeScale+-100*o;s=s+a}else s=s+t*i.nodeScale;e.text.position._y=s}makeVisibleIfNeighborHighlighted(){let e=this.coreElement.text;if(!e)return;let t=this.coreElement.renderer;if(t.scalen.some(h=>h(a,l,c))).bind(this);u.proxysManager.registerProxy(this.extendedLink.coreElement,"arrow",{set(a,l,c,h){return o(a,l,c)?!0:Reflect.set(a,l,c,h)}}),s.addEventListener("destroyed",()=>{u.proxysManager.unregisterProxy(this.extendedLink.coreElement.arrow)})}}makeArrowOpaque(e,t,i){if(t==="alpha"){let s=this.extendedLink.coreElement.renderer.getHighlightNode();return s&&this.extendedLink.coreElement.source!==s&&this.extendedLink.coreElement.target!==s?Reflect.set(e,t,i):Reflect.set(e,t,1)}return!1}colorArrow(e,t,i){if(t==="tint"){let s=this.getArrowColor();return Reflect.set(e,t,s??i)}return!1}getArrowColor(){if(this.extendedLink.instances.settings.enableFeatures[this.extendedLink.instances.type].arrows&&this.extendedLink.instances.settings.arrowColorBool&&this.extendedLink.instances.settings.arrowColor!=="")return this.extendedLink.instances.settings.arrowColor;if(this.extendedLink.coreElement.line?.worldVisible)return this.extendedLink.coreElement.line.tint;if(this.extendedLink.siblingLink?.coreElement.line?.worldVisible)return this.extendedLink.siblingLink.coreElement.line.tint}invertArrow(e,t,i){if(t==="x"||t==="y"){let l=this.extendedLink.coreElement;var s=l.target.x-l.source.x,n=l.target.y-l.source.y,o=Math.sqrt(s*s+n*n),a=l.source.getSize()*l.renderer.nodeScale;return t==="x"?i=l.source.x+s*a/o:i=l.source.y+n*a/o,Reflect.set(e,t,i)}else if(t==="rotation")return i=i+Math.PI,Reflect.set(e,t,i);return!1}createScalleArrowCallback(){if(this.coreArrowScaleCallback||!Xe.needToChangeArrowScale(this.extendedLink.instances))return;let e=this.extendedLink.coreElement.arrow?.scale;if(e){let t=this.scaleArrow.bind(this);this.coreArrowScaleCallback=e.cb;let i=e.cb;e.cb=()=>{t(),i.call(e.scope)},t()}}restoreArrowScaleCallback(){if(!this.coreArrowScaleCallback)return;let e=this.extendedLink.coreElement.arrow?.scale;e&&(e.cb=this.coreArrowScaleCallback,this.coreArrowScaleCallback=void 0)}scaleArrow(){let e=this.extendedLink.coreElement,t=e.arrow;t&&(t.scale._x=t.scale._y=(this.instances.settings.arrowFixedSize?2*Math.sqrt(e.renderer.fLineSizeMult)*e.renderer.nodeScale:t.scale._y)*this.instances.settings.arrowScale)}createFlatArrow(){if(!this.instances.settings.enableFeatures[this.instances.type].arrows||!this.instances.settings.flatArrows)return;let e=this.extendedLink.coreElement.arrow;e&&(e.clear(),e.beginFill(16777215),e.moveTo(0,0),e.lineTo(-4,-2),e.lineTo(-4,2),e.lineTo(0,0),e.endFill(),this.hasChangedArrowShape=!0)}resetArrowShape(){if(!this.hasChangedArrowShape)return;let e=this.extendedLink.coreElement.arrow;!e||e.destroyed||(e.clear(),e.beginFill(16777215),e.moveTo(0,0),e.lineTo(-4,-2),e.lineTo(-3,0),e.lineTo(-4,2),e.lineTo(0,0),e.endFill())}};var jd=class extends lt{constructor(t){super();this.t=0;this.eventMode="none",this.extendedLink=t,this.init()}init(){this.alpha=0,this.beginFill(this.extendedLink.getStrokeColor(!0)||this.extendedLink.coreElement.renderer.colors.lineHighlight.rgb),this.drawCircle(0,0,3),this.endFill()}updateFrame(t){this.alpha=1;let i=dn(this.t,t.P0,t.P1,t.P2);this.position.set(i.x,i.y),this.scale.set(this.extendedLink.coreElement.renderer.fLineSizeMult/Math.sqrt(this.extendedLink.coreElement.renderer.scale)),this.t+=.01*u.settings.animationSpeedForDots,this.t>1&&(this.t=0)}};var $d=class extends lt{constructor(t){super();this.t=0;this.eventMode="none",this.extendedLink=t,this.init()}init(){this.alpha=0,this.beginFill(this.extendedLink.getStrokeColor(!0)||this.extendedLink.coreElement.renderer.colors.lineHighlight.rgb),this.drawCircle(0,0,3),this.endFill()}updateFrame(t){this.alpha=1,this.position.set(t.P0.x*(1-this.t)+t.P2.x*this.t,t.P0.y*(1-this.t)+t.P2.y*this.t),this.scale.set(this.extendedLink.coreElement.renderer.fLineSizeMult/Math.sqrt(this.extendedLink.coreElement.renderer.scale)),this.t+=.01*u.settings.animationSpeedForDots,this.t>1&&(this.t=0)}};var Wa=class extends lt{constructor(e){super(),this.eventMode="none",this.extendedLink=e,this.init()}init(){this.destroyed||(this.beginFill("white"),this.moveTo(0,0),this.lineTo(-4,-2),(!this.extendedLink.instances.settings.enableFeatures[this.extendedLink.instances.type].arrows||!this.extendedLink.instances.settings.flatArrows)&&this.lineTo(-3,0),this.lineTo(-4,2),this.lineTo(0,0),this.endFill(),this.name="arrow",this.zIndex=1,this.pivot.set(0,0),this.alpha=this.extendedLink.coreElement.renderer.colors.arrow.a,this.extendedLink.coreElement.arrow&&(this.extendedLink.coreElement.arrow.renderable=!1))}update(e,t,i){let s=this.extendedLink.coreElement.arrow?.alpha??1;this.extendedLink.instances.settings.enableFeatures[this.extendedLink.instances.type].arrows&&this.extendedLink.instances.settings.alwaysOpaqueArrows&&(this.extendedLink.isHighlighted()||!this.extendedLink.coreElement.renderer.getHighlightNode())&&(s=1);let n=this.extendedLink.coreElement;this.tint=e,this.alpha=s,this.position.set(t.x,t.y),this.rotation=i,this.scale.set((this.extendedLink.instances.settings.arrowFixedSize?2*Math.sqrt(n.renderer.fLineSizeMult)*n.renderer.nodeScale:2*Math.sqrt(n.renderer.fLineSizeMult)/n.renderer.scale)*this.extendedLink.instances.settings.arrowScale)}};var hn=class extends lt{constructor(e,t,i,s){super(),this.eventMode="none",this.manager=e,this.types=t,this.name="curve:"+i,this.extendedLink=s,this.bezier={P0:{x:0,y:0},P1:{x:0,y:0},P2:{x:0,y:0}},this.hasFaded=!this.extendedLink.instances.settings.fadeInElements,this.additionalConstruct(),this.updateValues()}additionalConstruct(){}updateValues(){if(this.activeType=this.extendedLink.getActiveType(this.manager.name),!this.activeType)return;let e=this.extendedLink.getStrokeColor();e!==void 0?this.color=e:this.extendedLink.instances.settings.interactiveSettings[this.manager.name].showOnGraph?this.color=this.manager.getColor(this.activeType):this.extendedLink.coreElement.line?this.color=Pi(this.extendedLink.coreElement.line.tint):this.color=this.extendedLink.coreElement.renderer.colors.line.rgb,this.redraw()}initArrow(){this.destroyed||(this.arrow=new Wa(this.extendedLink),ze(this,this.arrow))}redraw(){!this.activeType&&this.arrow&&(this.arrow.clear(),this.arrow.destroy(),this.arrow=null),this.updateFrame()}computeMainBezier(){if(this.destroyed)return!1;this.clear();let e=this.extendedLink.coreElement.renderer,t=this.extendedLink.coreElement,i=this.extendedLink.instances.settings.enableFeatures[this.extendedLink.instances.type].arrows&&this.extendedLink.instances.settings.invertArrows,s=i?t.source:t.target,n=i?t.target:t.source;if(!s.circle||!n.circle)return this.destroy(),!1;let o=e.nodeScale,a=s.x-n.x,l=s.y-n.y;this.bezier.P1={x:(n.x+s.x)*.5+l*.2*this.extendedLink.instances.settings.curvedFactor,y:(n.y+s.y)*.5-a*.2*this.extendedLink.instances.settings.curvedFactor};let c=u5(1,n,this.bezier.P1,s);return this.bezier.P0=dn(.9*n.getSize()*o/c,n,this.bezier.P1,s),this.bezier.P2=dn(1-.9*s.getSize()*o/c,n,this.bezier.P1,s),!0}getMiddlePoint(){return dn(.5,this.bezier.P0,this.bezier.P1,this.bezier.P2)}updateFrame(){if(!this.computeMainBezier())return!1;let e=this.extendedLink.coreElement;return e.line&&this.hasFaded&&(this.alpha=e.line.alpha),!0}updateArrow(e,t){this.extendedLink.coreElement.arrow&&this.extendedLink.coreElement.arrow.visible?(this.arrow||this.initArrow(),this.arrow?.update(e,this.bezier.P2,t+(this.bezier.P1.x>this.bezier.P2.x?Math.PI:0))):(this.arrow?.removeFromParent(),this.arrow?.clear(),this.arrow?.destroy(),this.arrow=null)}destroy(e){this.extendedLink.coreElement.arrow&&(this.extendedLink.coreElement.arrow.renderable=!0),!this.destroyed&&super.destroy(e)}clearGraphics(){this.destroyed||(this.arrow?.clear(),this.clear(),this.destroy({children:!0}),this.removeFromParent())}clear(){return this.destroyed?this:super.clear()}toggleType(e,t){this.updateValues()}};var Ua=class extends hn{updateValues(){this.arrowColor=this.extendedLink.instances.settings.enableFeatures[this.extendedLink.instances.type].arrows&&this.extendedLink.instances.settings.arrowColorBool&&this.extendedLink.instances.settings.arrowColor!==""?Vr(this.extendedLink.instances.settings.arrowColor):void 0,super.updateValues()}updateFrame(){if(!super.updateFrame())return!1;let e=this.extendedLink.coreElement.renderer;return this.lineStyle({width:this.extendedLink.getThicknessScale()*e.fLineSizeMult/e.scale,color:"white"}),this.moveTo(this.bezier.P0.x,this.bezier.P0.y).quadraticCurveTo(this.bezier.P1.x,this.bezier.P1.y,this.bezier.P2.x,this.bezier.P2.y),this.extendedLink.isHighlighted()?this.tint=(this.extendedLink.coreElement.line?.worldVisible?this.extendedLink.coreElement.line.tint:this.extendedLink.siblingLink?.coreElement.line?.tint)??Ba(this.tint,this.extendedLink.coreElement.renderer.colors.lineHighlight.rgb):this.tint=this.color,this.updateArrow(this.arrowColor??Pi(this.tint),-Math.atan(-h1(1,this.bezier.P0,this.bezier.P1,this.bezier.P2).m)),!0}destroy(e){this.extendedLink.coreElement.arrow&&(this.extendedLink.coreElement.arrow.renderable=!0),!this.destroyed&&super.destroy(e)}clearGraphics(){this.destroyed||(this.arrow?.clear(),this.clear(),this.destroy({children:!0}),this.removeFromParent())}clear(){return this.destroyed?this:super.clear()}toggleType(e,t){this.updateValues()}};var Va=class extends hn{additionalConstruct(){this.typesPositions={}}updateFrame(){if(this.typesPositions={},!super.updateFrame())return!1;let e=this.extendedLink.coreElement.renderer,t,i=this.extendedLink.getThicknessScale()*e.fLineSizeMult/e.scale,s={x:this.bezier.P0.x,y:this.bezier.P0.y},n={x:this.bezier.P1.x,y:this.bezier.P1.y},o=[...this.types].filter(a=>this.manager.isActive(a));if(this.extendedLink.isHighlighted()){if(this.lineStyle({width:i,color:"white"}),this.moveTo(this.bezier.P0.x,this.bezier.P0.y).quadraticCurveTo(this.bezier.P1.x,this.bezier.P1.y,this.bezier.P2.x,this.bezier.P2.y),this.tint=(this.extendedLink.coreElement.line?.worldVisible?this.extendedLink.coreElement.line.tint:this.extendedLink.siblingLink?.coreElement.line?.tint)??Ba(this.tint,this.extendedLink.coreElement.renderer.colors.lineHighlight.rgb),this.extendedLink.instances.settings.displayLinkTypeLabel){if(o.length===1)this.setTypePosition(o[0],this.bezier.P0,this.bezier.P1,this.bezier.P2);else if(o.length>0){let a=0;for(let l of o){let[c,h]=this.deCasteljau([s,n,this.bezier.P2],1/(o.length-a));s=h[0],n=h[1],this.setTypePosition(l,c[0],c[1],c[2]),++a}}}}else{if(t=this.color,o.length===1)this.lineStyle({width:i,color:"white"}),this.moveTo(this.bezier.P0.x,this.bezier.P0.y).quadraticCurveTo(this.bezier.P1.x,this.bezier.P1.y,this.bezier.P2.x,this.bezier.P2.y),this.setTypePosition(o[0],this.bezier.P0,this.bezier.P1,this.bezier.P2),this.tint=this.color;else if(o.length>0){this.tint="white";let a=0;this.moveTo(this.bezier.P0.x,this.bezier.P0.y);for(let l of o){let[c,h]=this.deCasteljau([s,n,this.bezier.P2],1/(o.length-a));s=h[0],n=h[1];let d=this.extendedLink.instances.settings.interactiveSettings[ne].showOnGraph?this.manager.getColor(l):this.color;this.lineStyle({width:i,color:d}),this.quadraticCurveTo(c[1].x,c[1].y,c[2].x,c[2].y),this.setTypePosition(l,c[0],c[1],c[2]),++a}this.extendedLink.instances.settings.interactiveSettings[ne].showOnGraph&&(t=this.manager.getColor(o[o.length-1]))}this.extendedLink.instances.settings.enableFeatures[this.extendedLink.instances.type].arrows&&this.extendedLink.instances.settings.arrowColorBool&&this.extendedLink.instances.settings.arrowColor!==""&&(t=Vr(this.extendedLink.instances.settings.arrowColor))}return this.updateArrow(t??Pi(this.tint),-Math.atan(-h1(1,s,n,this.bezier.P2).m)),!0}setTypePosition(e,t,i,s){this.typesPositions[e]={position:dn(.5,t,i,s),length:za(1,t,s)}}deCasteljau(e,t){if(t===0||t===1)return[e,e];let i=[],s=[];for(i.push(e[0]),s.push(e[e.length-1]);e.length>1;){let n=[];for(let o=0;o+1this.manager.isActive(k));if(this.extendedLink.siblingLink){let k=[...this.extendedLink.siblingLink.types.get(ne)??[]].filter(B=>this.manager.isActive(B));for(let B of k)v.includes(B)||v.unshift(B)}let C,w=this.extendedLink.getThicknessScale()*t.fLineSizeMult/t.scale;if(this.extendedLink.isHighlighted()){if(this.lineStyle({width:w,color:"white"}),this.moveTo(p.x,p.y).lineTo(g.x,g.y),this.tint=(this.extendedLink.coreElement.line?.worldVisible?this.extendedLink.coreElement.line.tint:this.extendedLink.siblingLink?.coreElement.line?.tint)??Ba(this.tint,this.extendedLink.coreElement.renderer.colors.lineHighlight.rgb),this.extendedLink.instances.settings.displayLinkTypeLabel){if(v.length===1)this.setTypePosition(v[0],p,g);else if(v.length>0){let k=1/v.length,B=0,L=p;for(let T of v){let W=k*(1+B),j={x:(1-W)*p.x+W*g.x,y:(1-W)*p.y+W*g.y};this.setTypePosition(T,L,j),L=j,++B}}}}else if(C=this.color,this.extendedLink.firstSibling||!this.extendedLink.siblingLink?.getActiveType(ne)){if(v.length===1)this.lineStyle({width:w,color:"white"}),this.moveTo(p.x,p.y).lineTo(g.x,g.y),this.tint=this.color,this.setTypePosition(v[0],p,g);else if(v.length>0){this.tint="white";let k=1/v.length,B=0;this.moveTo(p.x,p.y);let L=p;for(let T of v){let W=k*(1+B),j=this.extendedLink.instances.settings.interactiveSettings[ne].showOnGraph?this.manager.getColor(T):this.color;this.lineStyle({width:w,color:j});let I={x:(1-W)*p.x+W*g.x,y:(1-W)*p.y+W*g.y};this.lineTo(I.x,I.y),this.setTypePosition(T,L,I),L=I,++B}this.extendedLink.instances.settings.interactiveSettings[ne].showOnGraph&&(C=this.manager.getColor(v[v.length-1]))}this.extendedLink.instances.settings.enableFeatures[this.extendedLink.instances.type].arrows&&this.extendedLink.instances.settings.arrowColorBool&&this.extendedLink.instances.settings.arrowColor!==""&&(C=Vr(this.extendedLink.instances.settings.arrowColor))}i.line&&this.hasFaded&&(this.alpha=i.line.alpha),i.arrow&&i.arrow.visible?(this.arrow||this.initArrow(),this.arrow&&this.arrow.update(C??this.tint,g,-Math.atan(-(g.y-p.y)/(g.x-p.x))+(l.x>g.x?Math.PI:0))):(this.arrow?.removeFromParent(),this.arrow?.clear(),this.arrow?.destroy(),this.arrow=null)}setTypePosition(t,i,s){this.typesPositions[t]={position:{x:(i.x+s.x)*.5,y:(i.y+s.y)*.5},length:za(1,i,s)}}destroy(t){this.extendedLink.coreElement.arrow&&(this.extendedLink.coreElement.arrow.renderable=!0),!this.destroyed&&super.destroy(t)}clearGraphics(){this.destroyed||(this.arrow?.clear(),this.clear(),this.destroy({children:!0}),this.removeFromParent())}clear(){return this.destroyed?this:super.clear()}toggleType(t,i){this.updateValues()}};var Yd=class{constructor(e){this.name=e.id,this.extendedElement=e,this.managerGraphicsMap=new Map}createGraphics(){let e=1,t=this.extendedElement.instances;for(let[i,s]of t.linksSet.managers){let n=this.extendedElement.getTypes(i);this.createManagerGraphics(s,n,e),e++}}createManagerGraphics(e,t,i){let s=this.managerGraphicsMap.get(e.name);if(s&&!s.destroyed)this.setManagerGraphics(e,s);else{let n=new po(e,t,this.name,this.extendedElement);this.setManagerGraphics(e,n)}}setManagerGraphics(e,t){let i=this.managerGraphicsMap.get(e.name);i&&i!==t&&(i.parent&&i.removeFromParent(),i.destroyed||i.destroy({children:!0})),this.managerGraphicsMap.set(e.name,t),this.pixiElement=t}resetManagerGraphics(e){}clearGraphics(){this.pixiElement.clear()}destroyGraphics(){this.pixiElement.destroy({children:!0})}updateGraphics(){this.pixiElement?.updateValues()}connect(){let e=this.extendedElement.coreElement.renderer.hanger;if(!e.getChildByName(this.pixiElement.name)&&this.extendedElement.coreElement.px){this.pixiElement.extendedLink=this.extendedElement,this.extendedElement.coreElement.arrow&&(this.extendedElement.coreElement.arrow.renderable=!1);let t=Rc(this.extendedElement.coreElement.renderer.hanger,this.extendedElement.coreElement.px);Jt(e,this.pixiElement,t),this.extendedElement.instances.settings.fadeInElements&&!this.pixiElement.hasFaded&&Wr(this.pixiElement)}}disconnect(){for(let e of this.managerGraphicsMap.values())e.removeFromParent()}animate(){}};var Oa=class extends tt{constructor(e,t){super(),this.extendedLink=t,this.hasFaded=!this.extendedLink.instances.settings.fadeInElements,this.zIndex=2,this.text=new di(e),this.text.eventMode="none",this.computeCSSStyle(),this.text.style=this.getTextStyle(),this.text.resolution=2,this.needsGraphicsBackground()?(this.background=new lt,this.background.eventMode="none",ze(this,this.background,this.text)):this.needsSpriteBackground()?(this.background=new Lt(Se.WHITE),this.background.eventMode="none",ze(this,this.background,this.text)):ze(this,this.text),this.applyCSSChanges()}needsGraphicsBackground(){return this.style.borderWidth>0||this.style.radius>0}needsSpriteBackground(){return!this.needsGraphicsBackground()&&this.style.backgroundColor.a>0}connect(){this.destroyed||(ze(this.extendedLink.coreElement.renderer.hanger,this),this.extendedLink.instances.settings.fadeInElements&&!this.hasFaded&&Wr(this))}updateFrame(){return this.destroyed?!1:!this.isRendered||!this.extendedLink.managers.get(ne)?.isActive(this.text.text)||!this.parent?(this.visible=!1,!1):(this.visible=!0,this.extendedLink.coreElement.source.circle&&(this.scale.x=this.scale.y=this.extendedLink.coreElement.renderer.nodeScale,this.pivot.set(.5*this.getWidth()/this.scale.x,.5*this.getHeight()/this.scale.y)),!0)}computeCSSStyle(){this.style=this.extendedLink.instances.cssBridge.getLinkLabelStyle({source:this.extendedLink.coreElement.source.id,target:this.extendedLink.coreElement.target.id})}getTextStyle(){let e=new s0({fontFamily:this.style.textStyle.fontFamily,fontStyle:this.style.textStyle.fontStyle,fontVariant:this.style.textStyle.fontVariant,fontWeight:this.style.textStyle.fontWeight,letterSpacing:this.style.textStyle.letterSpacing,fontSize:this.style.textStyle.fontSize+this.extendedLink.coreElement.source.getSize()/4,fill:this.getTextColor(),lineHeight:1});if(this.style.textStyle.stroke){$e.applyTextStroke(e,this.style.textStyle.stroke);let{height:t}=xt.measureText(this.text.text,e);this.text.anchor.set(0,this.style.textStyle.stroke.width/t)}else this.text.anchor.set(0,0);return this.style.textStyle.dropShadow&&$e.applyTextShadow(e,this.style.textStyle.dropShadow,Ma(e.fill)??this.extendedLink.coreElement.renderer.colors.text.rgb),e}getTextColor(){if(this.extendedLink.instances.settings.colorLinkTypeLabel){let e=this.extendedLink.managers.get(ne)?.getColor(this.text.text);if(e)return e}if(this.textColor===void 0){if(this.style.textStyle.fill)return this.style.textStyle.fill}else if(this.textColor!==null)return this.textColor;return this.extendedLink.coreElement.renderer.colors.text.rgb}setDisplayedText(e){this.destroyed||(this.text.text=e)}updateTextColor(){this.text.style&&(this.text.style.fill=this.getTextColor())}updateTextBackgroundColor(e){this.destroyed||(this.background instanceof Lt?this.background.tint=e:this.drawGraphics(e),this.updateTextColor())}applyCSSChanges(){this.text.style=this.getTextStyle(),this.text.position.set(this.style.padding.left,this.style.padding.top),this.text.anchor.set(0,0),this.needsGraphicsBackground()?this.drawGraphics($e.backgroundColor):this.needsSpriteBackground()?this.drawSprite():this.background&&(this.background.removeFromParent(),this.background.destroy(),this.background=void 0)}getWidth(){return xt.measureText(this.text.text,this.text.style).width+this.style.padding.left+this.style.padding.right}getHeight(){return xt.measureText(this.text.text,this.text.style).fontProperties.fontSize+(this.style.textStyle.stroke?.width??0)+this.style.padding.top+this.style.padding.bottom}drawGraphics(e){this.background instanceof Lt&&(this.background.removeFromParent(),this.background.destroy(),this.background=new lt,this.background.eventMode="none",Jt(this,this.background,0)),this.background||(this.background=new lt,this.background.eventMode="none",Jt(this,this.background,0)),this.background.clear();let t=this.style.borderColor.a>0?this.style.borderColor.rgb:this.extendedLink.managers.get(ne)?.getColor(this.text.text)??this.extendedLink.coreElement.renderer.colors.line.rgb;this.style.backgroundColor.a>0&&(e=$e.colorAttributes2hex(this.style.backgroundColor)),this.background.lineStyle(this.style.borderWidth,t,1,1).beginFill(e).drawRoundedRect(0,0,this.getWidth(),this.getHeight(),this.style.radius)}drawSprite(){this.background instanceof lt&&(this.background.removeFromParent(),this.background.destroy(),this.background=new Lt(Se.WHITE),this.background.eventMode="none",Jt(this,this.background,0)),this.background||(this.background=new Lt(Se.WHITE),this.background.eventMode="none",Jt(this,this.background,0)),this.background.tint=this.style.backgroundColor.rgb,this.background.alpha=this.style.backgroundColor.a,this.background.width=this.getWidth(),this.background.height=this.getHeight()}},d1=class extends Oa{},Xd=class extends d1{updateFrame(){if(!super.updateFrame()||!this.extendedLink.graphicsWrapper)return!1;let e=this.extendedLink.graphicsWrapper.pixiElement;if(this.text.text in e.typesPositions){let t=e.typesPositions[this.text.text].position;return this.position.set(t.x,t.y),!0}return!1}},Kd=class extends d1{updateFrame(){if(!super.updateFrame()||!this.extendedLink.graphicsWrapper)return!1;let e=this.extendedLink.graphicsWrapper.pixiElement.getMiddlePoint();return this.position.set(e.x,e.y),!0}},p1=class extends Oa{updateFrame(){return super.updateFrame()?(this.visible=this.extendedLink.coreElement.line?.visible??!1,this.visible&&(this.position=this.getPosition(),this.hasFaded&&(this.alpha=this.extendedLink.coreElement.line?.alpha??0)),!0):!1}},Zd=class extends p1{getPosition(){if(this.extendedLink.graphicsWrapper&&this.text.text in this.extendedLink.graphicsWrapper.pixiElement.typesPositions)return this.extendedLink.graphicsWrapper.pixiElement.typesPositions[this.text.text].position;if(this.extendedLink.siblingLink?.graphicsWrapper&&this.text.text in this.extendedLink.siblingLink.graphicsWrapper.pixiElement.typesPositions)return this.extendedLink.siblingLink.graphicsWrapper.pixiElement.typesPositions[this.text.text].position;{let e=this.extendedLink.coreElement.line?.getBounds();return!e||!this.parent?{x:0,y:0}:this.parent.toLocal({x:(e.left+e.right)*.5,y:(e.top+e.bottom)*.5})}}},Qd=class extends p1{getPosition(){let e=this.extendedLink.coreElement.line?.getBounds();return!e||!this.parent?{x:0,y:0}:this.parent.toLocal({x:(e.left+e.right)*.5,y:(e.top+e.bottom)*.5})}};var uC=100,hC=100,d8=class extends tt{},Gi=class{constructor(e){this.shape="circle";this.extendedElement=e,this.name=e.id,this.initShape()}initShape(){if(this.extendedElement.isCurrentNode&&this.extendedElement.instances.settings.currentNode.shape!=="circle"){this.shape=this.extendedElement.instances.settings.currentNode.shape;return}if(this.extendedElement.instances.settings.enableFeatures[this.extendedElement.instances.type].shapes){let e=Object.fromEntries(Object.entries(this.extendedElement.instances.settings.shapeQueries).sort((t,i)=>(t[1].index??0)-(i[1].index??0)));for(let t of Object.keys(e)){let i=new Hr(e[t]),s=qe(this.extendedElement.id);if(!s)return;if(i.doesMatch(s,this.extendedElement.instances.settings)){this.shape=t;return}}}}createGraphics(){this.pixiElement&&!this.pixiElement.destroyed||(this.pixiElement&&this.pixiElement.parent&&this.pixiElement.removeFromParent(),this.pixiElement=new d8,this.pixiElement.hasFaded=!this.extendedElement.instances.settings.fadeInElements,this.pixiElement.name=this.name,this.placeNode(),this.extendedElement.needOpacityLayer()&&this.initOpacityLayer())}placeNode(){this.pixiElement.x=uC,this.pixiElement.y=hC}initOpacityLayer(){this.opacityLayer=new We(this.shape),this.opacityLayer.drawFill(16711680),this.opacityLayer.scale.set(this.opacityLayer.getDrawingResolution()),this.opacityLayer.alpha=0,this.opacityLayer.name="opacity-layer",ze(this.pixiElement,this.opacityLayer)}initIcon(){if(this.extendedElement.icon&&!(!this.extendedElement.icon.svg&&!this.extendedElement.icon.emoji)&&!(this.iconSprite?.parent||this.emojiText?.parent))if(this.extendedElement.icon.svg){let e=this.extendedElement.icon.svg,t=this.extendedElement.icon.color||this.getFillColor().rgb,i=new XMLSerializer,s=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(i.serializeToString(e))}`;this.pixiElement.sortableChildren=!0;let n=a=>{this.iconSprite=new Lt(a),this.iconSprite.eventMode="none",this.iconSprite.name="icon",this.iconSprite.anchor.set(.5,.5),this.iconSprite.tint=t,this.extendedElement.instances.settings.backgroundOpacityWithIcon>0||this.extendedElement.instances.settings.borderWidthWithIcon>0?(this.iconSprite.height=160,this.iconSprite.width=160):(this.iconSprite.height=200,this.iconSprite.width=200),ze(this.pixiElement,this.iconSprite)},o=Se.from(s,{resourceOptions:{scale:40/e.width.baseVal.value}});n(o)}else this.extendedElement.icon.emoji&&(this.emojiText=new di(this.extendedElement.icon.emoji,{fontFamily:"Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji, Android Emoji, EmojiSymbols, Symbola, Twemoji Mozilla, Twemoji Mozilla Color Emoji, Twemoji Mozilla Color Emoji 13.1.0",fontSize:this.extendedElement.instances.settings.backgroundOpacityWithIcon>0?130:150,align:"center"}),this.emojiText.eventMode="none",this.emojiText.name="icon",this.emojiText.anchor.set(.5,.5),ze(this.pixiElement,this.emojiText))}updateIconBackgroundLayerColor(e){this.iconBackgroundLayer&&(this.iconBackgroundLayer.tint=e)}clearGraphics(){}destroyGraphics(){this.pixiElement.destroy({children:!0})}updateGraphics(){}updateOpacityLayerColor(e){this.opacityLayer&&(this.opacityLayer.clear(),this.opacityLayer.drawFill(e))}updateFillColor(e,t){return this.lastColor===e?!1:(this.lastColor=e,this.iconSprite&&(this.iconSprite.tint=(t?e??this.extendedElement.icon?.color:this.extendedElement.icon?.color??e)??this.getFillColor().rgb),!0)}connect(){this.extendedElement.coreElement.circle&&!this.extendedElement.coreElement.circle.getChildByName(this.name)&&(ze(this.extendedElement.coreElement.circle,this.pixiElement),this.extendedElement.instances.settings.fadeInElements&&!this.pixiElement.hasFaded&&Wr(this.pixiElement))}disconnect(){this.pixiElement.removeFromParent()}makeOpaque(){this.opacityLayer&&(this.opacityLayer.alpha=0)}makeFaded(){this.opacityLayer&&(this.opacityLayer.alpha=.8)}pin(){!this.extendedElement.instances.settings.showPinIcon||this.pixiElement.getChildByName("pin")||Ds.load(u.pinSVGDataUrl).then(t=>{let i=new Lt(t);i.eventMode="none",i.name="pin",i.anchor.set(1,0),i.height=80,i.width=80,i.position.set(100,-100),ze(this.pixiElement,i),this.pixiElement.parent||this.connect()})}unpin(){let e=this.pixiElement.getChildByName("pin");e&&(e.destroy(),this.pixiElement.removeChild(e))}getFillColor(){return this.extendedElement.coreElement.getFillColor()}};var s1=class extends Gi{createGraphics(){super.createGraphics(),this.texture&&this.initNodeImage(this.texture)}initNodeImage(e){if(this.extendedElement.needImage()&&(this.nodeImage&&(this.nodeImage.destroyed||!this.nodeImage.parent)&&(this.nodeImage.parent&&this.nodeImage.removeFromParent(),this.nodeImage.destroyed||this.nodeImage.destroy({children:!0})),e)){this.texture=e,this.nodeImage=new Ha(e,this.extendedElement.instances.settings.borderFactor,this.shape);let t=this.pixiElement.getChildByName("opacity-layer");if(t){let i=this.pixiElement.getChildIndex(t);Jt(this.pixiElement,this.nodeImage,i)}else ze(this.pixiElement,this.nodeImage);this.extendedElement.instances.settings.fadeInElements&&!this.nodeImage.hasFaded&&Wr(this.nodeImage)}}clearGraphics(){this.nodeImage?.destroy({children:!0}),super.clearGraphics()}};var o1=class extends Gi{createGraphics(){super.createGraphics(),this.extendedElement.needBackground()&&this.initBackground(),this.extendedElement.needArcs()&&this.initArcsWrapper(),this.texture&&this.initNodeImage(this.texture)}initArcsWrapper(){if(this.managerGraphicsMap&&this.managerGraphicsMap.size>0){for(let t of this.managerGraphicsMap.values()||[])t.parent&&t.removeFromParent(),t.destroyed||t.destroy({children:!0});this.managerGraphicsMap.clear()}else this.managerGraphicsMap=new Map;let e=1;for(let[t,i]of this.extendedElement.managers){if(!this.extendedElement.instances.settings.interactiveSettings[t].showOnGraph)continue;let s=this.extendedElement.getTypes(t);this.createManagerGraphics(i,s,e),e++}}initBackground(){this.background&&(this.background.parent&&this.background.removeFromParent(),this.background.destroyed||this.background.destroy({children:!0})),this.background=new We(this.shape),this.extendedElement.instances.settings.enableFeatures[this.extendedElement.instances.type].shapes&&this.updateBackgroundColor(this.getFillColor().rgb,!1),this.background.scale.set(this.background.getDrawingResolution()),Jt(this.pixiElement,this.background,0)}initNodeImage(e){if(this.extendedElement.needImage()&&(this.nodeImage&&(this.nodeImage.destroyed||!this.nodeImage.parent)&&(this.nodeImage.parent&&this.nodeImage.removeFromParent(),this.nodeImage.destroyed||this.nodeImage.destroy({children:!0})),e)){this.texture=e,this.nodeImage=new Ha(e,this.extendedElement.instances.settings.borderFactor,this.shape),this.nodeImage.hasFaded=!this.extendedElement.instances.settings.fadeInElements;let t=this.pixiElement.getChildByName("opacity-layer");if(t){let i=this.pixiElement.getChildIndex(t);Jt(this.pixiElement,this.nodeImage,i)}else ze(this.pixiElement,this.nodeImage);this.pixiElement.parent||this.connect(),this.extendedElement.instances.settings.fadeInElements&&!this.nodeImage.hasFaded&&Wr(this.nodeImage)}}createManagerGraphics(e,t,i){let s=new f1(this.extendedElement,t,e,i,this.shape);this.managerGraphicsMap?.set(e.name,s),ze(this.pixiElement,s)}resetManagerGraphics(e){if(!qe(this.extendedElement.id))return;let i=this.managerGraphicsMap?.get(e.name),s=this.extendedElement.getTypes(e.name);i?(i.clearGraphics(),i.setTypes(s),i.updateValues()):this.createManagerGraphics(e,s,this.managerGraphicsMap?.size??0)}updateFillColor(e,t){return super.updateFillColor(e,t)?(this.updateBackgroundColor(e??this.getFillColor().rgb,t),!0):!1}updateBackgroundColor(e,t){if(this.background){if(this.background.clear(),this.extendedElement.icon){if(this.extendedElement.instances.settings.borderWidthWithIcon>0){let i=t?e:this.extendedElement.icon.color??e;this.background.lineStyle({color:i,width:this.extendedElement.instances.settings.borderWidthWithIcon/this.background.getDrawingResolution()})}e=yh($e.backgroundColor,e,this.extendedElement.instances.settings.backgroundOpacityWithIcon)}this.background.drawFill(e)}}clearGraphics(){if(this.background?.destroy(),this.nodeImage?.destroy({children:!0}),this.managerGraphicsMap)for(let e of this.managerGraphicsMap.values())e.clearGraphics();super.clearGraphics()}};var l1=class extends Gi{};var u1=class extends Gi{createGraphics(){super.createGraphics(),this.extendedElement.needInnerCircle()&&this.initInnerCircle()}initInnerCircle(){typeof this.extendedElement.instances.settings.borderUnresolved=="number"&&(this.innerCircle&&(this.innerCircle.parent&&this.innerCircle.removeFromParent(),this.innerCircle.destroyed||this.innerCircle.destroy({children:!0})),this.innerCircle=new We(this.shape),this.innerCircle.alpha=5,this.innerCircle.scale.set(this.innerCircle.getDrawingResolution()*(1-this.extendedElement.instances.settings.borderUnresolved)),Jt(this.pixiElement,this.innerCircle,0))}updateOpacityLayerColor(e){super.updateOpacityLayerColor(e),this.innerCircle&&(this.innerCircle.clear(),this.innerCircle.drawFill(e))}clearGraphics(){this.innerCircle?.destroy(),super.clearGraphics()}};var p8=class{},er=class er extends lt{constructor(t,i,s,n,o){super();this.graphics=new Map;this.eventMode="none",this.name=s.name,this.extendedNode=t,this.types=i,this.manager=s,this.circleLayer=n,this.shape=o,this.updateValues()}clearGraphics(){for(let t of this.graphics.values())t.graphic.destroy();this.removeChildren(),this.graphics.clear()}updateValues(){let t=this.manager.getTypesWithoutNone(),i=t.length,s=Math.min(2*Math.PI/i,er.maxArcSize);this.radius=(.5+(er.thickness+er.inset)*this.circleLayer)*We.getSizeFactor(this.shape)*We.RADIUS*2,this.thickness=er.thickness*We.getSizeFactor(this.shape)*We.RADIUS*2;for(let n of this.types){if(n===this.manager.instances.settings.interactiveSettings[this.manager.name].noneType)continue;let o=t.findIndex(l=>l===n),a=this.graphics.get(n);if(!a){if(a=new p8,a.type=n,a.index=o,a.size=s,a.graphic=new lt,a.graphic.eventMode="none",a.graphic.name=this.getArcName(n),a.color=this.manager.getColor(n),a.weight=1,this.manager.instances.settings.spreadArcs&&this.manager.instances.settings.weightArcs){let l=qe(this.extendedNode.id);l&&(a.weight=i5(this.manager.name,l,n,this.extendedNode.instances.settings.ignoreInlineLinks))}this.graphics.set(n,a),ze(this,a.graphic)}}for(let n of this.types)this.redrawType(n)}redrawType(t,i){let s=this.graphics.get(t);if(s){if(i&&(s.color=i),this.manager.instances.settings.spreadArcs){let n=[...this.types].filter(c=>this.manager.isActive(c)),o=n.reduce((c,h)=>c+(this.graphics.get(h)?.weight||0),0),a=n.slice(0,n.indexOf(t));s.size=s.weight*2*Math.PI/o,s.index=a.reduce((c,h)=>c+(this.graphics.get(h)?.weight||0),0);let l=[...this.types].some(c=>c!==t&&this.manager.isActive(c));if(s.startAngle=2*Math.PI/o*s.index,s.endAngle=s.startAngle+s.size,l){let c=s.endAngle-s.startAngle;s.startAngle+=Math.min(c*.1,er.gap*.5),s.endAngle-=Math.min(c*.1,er.gap*.5)}}else{s.startAngle=s.size*s.index,s.endAngle=s.size*(s.index+1);let n=s.endAngle-s.startAngle;s.startAngle+=Math.min(n*.1,er.gap*.5),s.endAngle-=Math.min(n*.1,er.gap*.5)}s.graphic.clear(),s.graphic.lineStyle(this.thickness,s.color).arc(0,0,this.radius,s.startAngle,s.endAngle).endFill(),s.graphic.alpha=this.manager.isActive(t)?1:.1}}updateFrame(){}toggleType(t,i){if(this.manager.instances.settings.spreadArcs)this.updateValues();else{let s=this.graphics.get(t);s&&(s.graphic.alpha=i?1:.1)}}setTypes(t){this.types=t}getArcName(t){return"arc-"+t}};er.thickness=.09,er.inset=.03,er.gap=.2,er.maxArcSize=Math.PI/2;var f1=er;var Ha=class extends Lt{constructor(t=Se.EMPTY,i,s){super(t);this.hasFaded=!1;this.textureSize=Math.min(t.width,t.height),this.name="image",this.anchor.set(.5);let n=new We(s).drawMask();this.mask=n,ze(this,n);let o=2*100*We.getSizeFactor(s)/this.textureSize,a=o*(1-i);this.scale.set(a),n.scale.set(n.getDrawingResolution()/o)}changeImage(t){this.texture=t}};var Ts=(g=>(g.CIRCLE="circle",g.SQUARE="square",g.POLY_3="triangle",g.POLY_4="diamond",g.POLY_5="pentagon",g.POLY_6="hexagon",g.POLY_8="octagon",g.POLY_10="decagon",g.STARBURST_4="star4",g.STARBURST_5="star5",g.STARBURST_6="star6",g.STARBURST_8="star8",g.STARBURST_10="star10",g))(Ts||{});var Ge=class Ge extends lt{constructor(e){super(),this.shape=e,this.n=Ge.getN(e),this.type=Ge.getType(e)}drawMask(){return this.clear(),this.drawFill(16777215)}drawFill(e){return this.beginFill(e).drawUniqueShape().endFill()}getDrawingResolution(){switch(this.type){case"circle":case"unknown":return Ge.RESOLUTION_RADIUS;default:return 1}}drawUniqueShape(){switch(this.type){case"polygon":case"starburst":return this.drawPolygon(Ge.getVertices(this.shape));case"square":return this.drawRect(-Ge.RADIUS,-Ge.RADIUS,2*Ge.RADIUS,2*Ge.RADIUS);case"circle":case"unknown":return this.drawCircle(0,0,Ge.RESOLUTION_RADIUS)}}static randomShape(){let e=Object.keys(Ts).filter(i=>typeof i=="string"),t=e[Math.floor(Math.random()*e.length)];return Ts[t]}static nodeScaleFactor(e){let t=Ge.getType(e);if(t==="polygon"){let i=Ge.getPolygonRadius(Ge.getN(e),Ge.RADIUS),s=Ge.RADIUS;return(i+s)/2/i}if(t==="starburst"){let i=Ge.getStarburstRadius(Ge.getN(e),Ge.RADIUS),s=Ge.RADIUS;return(i+s)/2/i}return 1}static getSizeFactor(e){let t=Ge.getType(e);return t==="polygon"?this.getPolygonRadius(Ge.getN(e),Ge.RADIUS)/Ge.RADIUS:t==="starburst"?this.getStarburstRadius(Ge.getN(e),Ge.RADIUS)/Ge.RADIUS:1}static getN(e){switch(e){case"triangle":return 3;case"diamond":case"star4":return 4;case"pentagon":case"star5":return 5;case"hexagon":case"star6":return 6;case"octagon":case"star8":return 8;case"decagon":case"star10":return 10;case"circle":return 10;default:return 0}}static getType(e){switch(e){case"triangle":case"diamond":case"pentagon":case"hexagon":case"octagon":case"decagon":return"polygon";case"star4":case"star5":case"star6":case"star8":case"star10":return"starburst";case"square":return"square";case"circle":return"circle";default:return"unknown"}}static getVertices(e){switch(Ge.getType(e)){case"polygon":return Ge.getPolygonOutside(e,0,Ge.RADIUS);case"starburst":return Ge.getStarburst(e,Ge.RADIUS)}return[]}static getPolygonInside(e,t,i){let s=Ge.getN(e),n=[];for(let o=0;o!s.handled&&this.instances.nodesSet.extendedElementsMap.has(i))),t=Object.keys(e).length;for(let[i,s]of this.instances.nodesSet.extendedElementsMap)e.hasOwnProperty(i)&&(!s.isPinned||s.coreElement.x!==e[i].x||s.coreElement.y!==e[i].y)?this.pinNode(i,e[i].x,e[i].y,Math.min(.1*t,1)):!this.instances.statePinnedNodes.hasOwnProperty(i)&&s.isPinned&&this.unpinNode(i),this.instances.statePinnedNodes.hasOwnProperty(i)&&(this.instances.statePinnedNodes[i].handled=!0);Object.keys(e).length===0&&(this.instances.statePinnedNodes=null)}pinNode(e,t,i,s=.3){let n=this.instances.nodesSet.extendedElementsMap.get(e);if(!n)return;let o=n.coreElement;t!==void 0&&(o.x=t),i!==void 0&&(o.y=i),o.fx=o.x,o.fy=o.y,this.instances.nodesSet.instances.renderer.worker.postMessage({alpha:s,alphaTarget:0,run:!0,forceNode:{id:o.id,x:o.x,y:o.y}}),n.pin()}unpinNode(e){let t=this.instances.nodesSet.extendedElementsMap.get(e);if(!t)return;let i=t.coreElement;i.fx=null,i.fy=null,this.instances.nodesSet.instances.renderer.worker.postMessage({alpha:.3,alphaTarget:0,run:!0,forceNode:{id:i.id,x:null,y:null}}),r.lastDraggedPinnedNode===e&&(r.lastDraggedPinnedNode=null),t.unpin()}unpinAllNodes(){for(let[e,t]of this.instances.nodesSet.extendedElementsMap)t.isPinned&&this.unpinNode(e);this.instances.renderer.changed()}setLastDraggedPinnedNode(e){r.lastDraggedPinnedNode=e}pinLastDraggedPinnedNode(){r.lastDraggedPinnedNode&&(this.pinNode(r.lastDraggedPinnedNode),r.lastDraggedPinnedNode=null)}pinInShape(e,t){let i;switch(e.type){case"circle":i=new g1(this.instances,e);break;case"grid":i=new m1(this.instances,e);break;default:return}let n=new Hr(t).getMatches(this.instances.settings).map(a=>a.path),o=[...this.instances.nodesSet.extendedElementsMap.values()].filter(a=>n.includes(a.id));i.pinNodes(o)}};var h5={circle:m("features.shapesNames.circle"),grid:m("features.shapesNames.grid")},y1=class{constructor(e,t,i){this.type=t,this.data=i,this.pinner=new yt(e)}pinNodes(e){this.pinShape(e),this.pinner.instances.renderer.changed()}},g1=class extends y1{constructor(e,t){super(e,"circle",t)}pinShape(e){let t=e.length,i=Math.max(200,t*this.data.step/(2*Math.PI));for(let s=0;s0&&this.handleMissingElements(t),t}initializeManagers(e){for(let t of e)this.managers.has(t.name)||this.managers.set(t.name,t)}initializeTypesMap(){for(let e of this.managers.keys())this.typesMap.hasOwnProperty(e)||(this.typesMap[e]={})}addMissingInteractiveTypes(e){if(!this.managers.has(e))return;let t=new Set,i=!1;for(let s of this.coreCollection){let n=this.getID(s);if(this.extendedElementsMap.has(n))continue;let o=this.getAbstractFile(s);i=!0;let a=new Set;s.type==="tag"&&e===He?a.add(s.id.replace("#","")):o&&o instanceof d5.TFile?(a=this.getTypesFromFile(e,s,o),a.size===0&&a.add(this.instances.settings.interactiveSettings[e].noneType)):a.add(this.instances.settings.interactiveSettings[e].noneType),this.addTypes(e,a,n,t)}return this.managers.get(e)?.addTypes(t),i}addTypes(e,t,i,s){let n=!1;for(let o of t)this.isTypeValid(e,o)&&(this.managers.get(e)?.interactives.has(o)||s.add(o),this.typesMap[e].hasOwnProperty(o)||(this.typesMap[e][o]=new Set),this.typesMap[e][o].add(i),n=!0);if(!n){let o=this.instances.settings.interactiveSettings[e].noneType;this.typesMap[e].hasOwnProperty(o)||(this.typesMap[e][o]=new Set),this.typesMap[e][o].add(i),this.managers.get(e)?.interactives.has(o)||s.add(o)}}addMissingElements(e){let t=new Set;for(let i of this.coreCollection){let s=this.getID(i);if(e&&e!==s)continue;let n=this.extendedElementsMap.get(s);n?n.setCoreElement(i):(t.add(s),this.createExtendedElement(i))}return t}handleMissingElements(e){for(let t of e){let i=this.extendedElementsMap.get(t);if(!i)return;i.init(),this.handleMissingElement(i)}}unload(){this.clearExtendedElements(),this.clearMaps()}clearExtendedElements(){this.extendedElementsMap.forEach(e=>{e.unload()})}clearMaps(){this.extendedElementsMap.clear(),this.connectedIDs.clear(),this.managers.clear()}getTypes(e,t){let s=[...Object.getOwnPropertyNames(this.typesMap[e])].filter(n=>this.typesMap[e][n]?.has(this.getID(t)));return new Set(s)}getElementsByTypes(e,t){let i=new Set;for(let s of t)this.typesMap[e][s]?.forEach(n=>{i.add(n)});return i}isTypeValid(e,t){return!Xe.excludeType(this.instances.settings,e,t)}disableType(e,t){let i=[];for(let[s,n]of this.extendedElementsMap)n.getTypes(e).has(t)&&n.disableType(e,t),n.isAnyManagerDisabled()?n.isEnabled&&(n.disable(),i.push(s)):n.isEnabled||n.enable();return i}enableType(e,t){let i=[];for(let[s,n]of this.extendedElementsMap)n.getTypes(e).has(t)&&n.enableType(e,t),n.isAnyManagerDisabled()?n.isEnabled&&n.disable():n.isEnabled||(n.enable(),i.push(s));return i}disableElements(e){return new Set(e.filter(t=>this.disableElement(t)))}disableElement(e){let t=this.extendedElementsMap.get(e);return t?(this.connectedIDs.delete(e),t.isEnabled&&t.disable(),t.coreElement.clearGraphics(),this.coreCollection.remove(t.coreElement),!0):!1}enableElements(e){return new Set(e.filter(t=>this.enableElement(t)))}enableElement(e){let t=this.extendedElementsMap.get(e);return!t||(this.connectedIDs.add(e),!t.canBeAddedWithEngineOptions())?!1:(t.getCoreCollection().includes(t.coreElement)||t.getCoreCollection().push(t.coreElement),t.coreElement.initGraphics(),t.isEnabled||t.enable(),!0)}updateTypeColor(e,t,i){let s=this.getElementsByTypes(e,[t]);for(let n of s){let o=this.extendedElementsMap.get(n);if(!o)return;this.updateTypeColorForElement(o,e,t,i)}}updateTypeColorForElement(e,t,i,s){e.types.get(t)?.add(i),e.graphicsWrapper?.managerGraphicsMap?.get(t)?.updateValues()}delete(e){e.graphicsWrapper?.disconnect(),e.graphicsWrapper?.destroyGraphics(),this.extendedElementsMap.delete(e.id)}};Oc=new WeakMap;var p5=require("obsidian");var f8=class{constructor(e,t,i){this.nodes=[];this.path=e,this.folderStyle=t,this.color=i||Cd()}initGraphics(e){this.area=new lt,this.area.eventMode="none",this.initTextStyle(),this.text=new di(e?this.path:fi(this.path).basename,this.textStyle),this.text.eventMode="none",this.text.resolution=2,ze(this.area,this.text)}initTextStyle(){this.textStyle=new s0({fontSize:this.folderStyle.textStyle.textStyle.fontSize,fill:this.color,fontFamily:this.folderStyle.textStyle.textStyle.fontFamily,fontStyle:this.folderStyle.textStyle.textStyle.fontStyle,fontVariant:this.folderStyle.textStyle.textStyle.fontVariant,fontWeight:this.folderStyle.textStyle.textStyle.fontWeight,letterSpacing:this.folderStyle.textStyle.textStyle.letterSpacing,whiteSpace:"pre",wordWrap:!0,wordWrapWidth:300,align:this.folderStyle.textStyle.align}),this.folderStyle.textStyle.textStyle.dropShadow&&this.text&&$e.applyTextShadow(this.textStyle,this.folderStyle.textStyle.textStyle.dropShadow,Ma(this.textStyle.fill)??this.nodes.first()?.renderer.colors.text.rgb??0),this.folderStyle.textStyle.textStyle.stroke&&$e.applyTextStroke(this.textStyle,this.folderStyle.textStyle.textStyle.stroke),this.text&&(this.text.style=this.textStyle)}clearGraphics(){this.area.removeFromParent(),this.area.destroy(),this.text?.destroy()}updateGraphics(e){this.nodes.length>0?(this.draw(),this.placeText(e),this.text.visible=!0):(this.area.clear(),this.text.visible=!1)}addNode(e){this.nodes.includes(e)||this.nodes.push(e)}removeNode(e){this.nodes.remove(e)}draw(){this.computeBox(),this.drawBox()}drawBox(){this.area.clear(),this.area.lineStyle(this.folderStyle.borderWidth,this.color,this.folderStyle.strokeOpacity,1).beginFill(this.color,this.folderStyle.fillOpacity).drawRoundedRect(this.BBox.left,this.BBox.top,this.BBox.right-this.BBox.left,this.BBox.bottom-this.BBox.top,this.folderStyle.radius).endFill()}computeBox(){let e=this.nodes[0].x,t=this.nodes[0].x,i=this.nodes[0].y,s=this.nodes[0].y;for(let n of this.nodes)n.xt&&(t=n.x),n.ys&&(s=n.y);this.BBox={left:e-50-this.folderStyle.padding.left,right:t+50+this.folderStyle.padding.right,top:i-50-this.folderStyle.padding.top,bottom:s+50+this.folderStyle.padding.bottom}}placeText(e){let t=Math.min(e,5);switch(this.text.style.fontSize=this.folderStyle.textStyle.textStyle.fontSize*t,this.text.style.letterSpacing=this.folderStyle.textStyle.textStyle.letterSpacing*t,this.folderStyle.textStyle.align){case"center":this.textAnchor=new Ne(.5,0),this.text.x=this.BBox.left+.5*(this.BBox.right-this.BBox.left);break;case"left":this.textAnchor=new Ne(0,0),this.text.x=this.BBox.left+this.folderStyle.padding.left;break;case"right":this.textAnchor=new Ne(1,0),this.text.x=this.BBox.right-this.folderStyle.padding.right;break}this.text.anchor.set(this.textAnchor.x,this.textAnchor.y),this.text.y=this.BBox.top+this.folderStyle.padding.top,this.text.scale.set(1/t)}},_d=class{constructor(e,t){this.foldersMap=new Map;this.instances=e,this.initializeManager(t)}initializeManager(e){this.managers=new Map;for(let t of e)this.managers.set(t.name,t)}load(){this.initGraphics(),this.addMissingFolders()}initGraphics(){if(!(this.container&&!this.container.destroyed)){this.container=new tt,this.container.name="Blobs",Jt(this.instances.renderer.hanger,this.container,0);for(let e of this.foldersMap.values())e.area.destroyed&&this.loadFolder(pe,e.path)}}addMissingFolders(){for(let[e,t]of this.managers){let i=new Set;for(let s of this.instances.renderer.nodes){let n=qe(s.id);if(!n||this.foldersMap.has(n.path))continue;let o=ct(pe,n);this.addInteractivesToSet(e,o,i)}t.addTypes(i)}}addInteractivesToSet(e,t,i){let s=this.managers.get(e);if(!s)return;let n=!1;for(let o of t)s.interactives.has(o)?n=!0:this.isFolderValid(o)&&(i.add(o),n=!0);!n&&!s.interactives.has(this.instances.settings.interactiveSettings[pe].noneType)&&i.add(this.instances.settings.interactiveSettings[pe].noneType)}isFolderValid(e){return!Xe.excludeType(this.instances.settings,pe,e)}unload(){this.container.destroy({children:!0}),this.container.removeFromParent(),this.foldersMap.clear()}loadFolder(e,t){let i=this.managers.get(e),s=u.app.vault.getFolderByPath(t);if(s&&i){let n=this.foldersMap.get(t),o=!0;n?(n.area.destroyed||!n.area.parent)&&(o=!1,n.initGraphics(this.instances.settings.folderShowFullPath)):(o=!1,n=new f8(t,this.instances.stylesData?.folder??$e.DEFAULT_FOLDER_STYLE,i?i.getColor(t):void 0),n.initGraphics(this.instances.settings.folderShowFullPath));let a=this.getNodesInFolder(s);for(let l of a)n.addNode(l);n.nodes.length>0&&(this.foldersMap.set(t,n),n.updateGraphics(this.instances.renderer.scale),o||ze(this.container,n.area))}}getNodesInFolder(e){let t=[];for(let i of e.children)if(i instanceof p5.TFolder)t.push(...this.getNodesInFolder(i));else{let s=this.instances.renderer.nodes.find(n=>n.id===i.path);s&&t.push(s)}return t}removeFolder(e){this.foldersMap.get(e)?.clearGraphics(),this.foldersMap.delete(e)}updateGraphics(){for(let[e,t]of this.foldersMap)t.updateGraphics(this.instances.renderer.scale)}updateColor(e,t){let i=this.managers.get(e),s=this.foldersMap.get(t);!s||!i||(s.color=i.getColor(t),s.updateGraphics(this.instances.renderer.scale))}onCSSChange(){for(let e of this.foldersMap.values())e.folderStyle=this.instances.stylesData?.folder??$e.DEFAULT_FOLDER_STYLE,e.initTextStyle()}hasMoreThanOneNode(e,t){let i=this.foldersMap.get(t);if(i)return i.nodes.length>1;let s=u.app.vault.getFolderByPath(t);return s?this.getNodesInFolder(s).length>1:!1}enableAll(){let e=this.managers.get(pe);e&&(e.enable(e.getTypes()),this.instances.foldersUI?.enableAllUI(pe))}disableAll(){let e=this.managers.get(pe);e&&(e.disable(e.getTypes()),this.instances.foldersUI?.disableAllUI(pe))}enableAllWithAtLeastOneNode(){let e=this.managers.get(pe);if(!e)return;let t=e.getTypes(),i=[];for(let s of t)this.instances?.foldersSet?.hasMoreThanOneNode(pe,s)&&(i.push(s),this.instances.foldersUI?.enableUI(pe,s));e.enable(i)}disableAllWithAtLeastOneNode(){let e=this.managers.get(pe);if(!e)return;let t=e.getTypes(),i=[];for(let s of t)this.instances?.foldersSet?.hasMoreThanOneNode(pe,s)&&(i.push(s),this.instances.foldersUI?.disableUI(pe,s));e.disable(i)}};var Fd=class extends ja{constructor(e,t){super(e,t),this.coreCollection=this.instances.renderer.links}handleMissingElement(e){}createExtendedElement(e){let t=Wt(e),i=new Map;for(let[n,o]of this.managers)i.set(n,this.getTypes(n,e));let s=new Wd(this.instances,e,i,[...this.managers.values()]);return this.extendedElementsMap.set(t,s),this.connectedIDs.add(t),s}getID(e){return Wt(e)}getTypesFromFile(e,t,i){return Lo(this.instances.settings,i).get(t.target.id)??new Set}getAbstractFile(e){return qe(e.source.id)}onCSSChange(){this.extendedElementsMap.forEach(e=>{if(e.texts)for(let t of e.texts)t.computeCSSStyle(),t.applyCSSChanges()})}updateTypeColorForElement(e,t,i,s){if(super.updateTypeColorForElement(e,t,i,s),e.texts)for(let n of e.texts)n.updateTextColor()}delete(e){if(e.texts)for(let t of e.texts)t.destroy();super.delete(e)}};var Gc=require("obsidian");var Ad=class extends ja{constructor(t,i){super(t,i);this.selectedNodes={};this.cachedExternalLinks={};this.coreCollection=this.instances.renderer.nodes,this.selectionFilter=new un(3,this.instances.renderer.colors.fillHighlight.rgb,.1,1,!1),this.searchResultFilter=new un(2,this.instances.cssBridge.getSearchColor(),.1,1,!1),this.openFilter=new un(2,this.instances.renderer.colors.fillHighlight.rgb,.1,1,!1)}load(t){if(this.instances.settings.externalLinks!=="none")if(t)this.cacheExternalLinks(t).then(i=>{i&&this.instances.engine.render()});else{let i=new Gc.Component;i.load(),this.cacheAllExternalLinks(i).then(s=>{i.unload(),s.some(n=>n)&&this.instances.engine.render()})}return super.load(t)}handleMissingElement(t){this.instances.layersManager?.addNode(t.id),this.applyBackgroundColor(t),this.loadAsset(t),this.instances.settings.enableFeatures[this.instances.type].focus&&(this.instances.settings.highlightOpenNodes&&u.graphsManager.openNodes.contains(t.id)&&t.toggleOpenInTab(!0),this.instances.settings.highlightSearchResults&&u.graphsManager.getSearchResults().contains(t.id)&&t.toggleIsSearchResult(!0))}applyBackgroundColor(t){let i=$e.backgroundColor;t.graphicsWrapper&&t.graphicsWrapper.updateOpacityLayerColor(i)}loadAsset(t){!this.instances.settings.enableFeatures[this.instances.type].imagesFromProperty&&!this.instances.settings.enableFeatures[this.instances.type].imagesFromEmbeds&&!this.instances.settings.enableFeatures[this.instances.type].imagesForAttachments&&!this.instances.settings.enableFeatures[this.instances.type].icons||this.getImageURI(t).then(i=>{i&&(i.type==="image"?Ds.load(i.uri).then(s=>{this.initNodeImages(t,s)}):i.type==="icon"&&t.graphicsWrapper?.initIcon())})}async getImageURI(t){if(!t.graphicsWrapper)return null;let i=null;if(this.instances.settings.enableFeatures[this.instances.type].imagesFromProperty||this.instances.settings.enableFeatures[this.instances.type].imagesFromEmbeds||this.instances.settings.enableFeatures[this.instances.type].imagesForAttachments){if(this.instances.settings.enableFeatures[this.instances.type].imagesFromProperty&&(t.coreElement.type===""||t.coreElement.type==="focused")){for(let s of this.instances.settings.imageProperties)if(i=await $a.getImageUriFromProperty(s,t.id),i)break}if(!i&&this.instances.settings.enableFeatures[this.instances.type].imagesFromEmbeds&&(t.coreElement.type===""||t.coreElement.type==="focused")&&(i=await $a.getImageUriFromEmbeds(t.id)),this.instances.settings.enableFeatures[this.instances.type].imagesForAttachments&&t.coreElement.type==="attachment"&&(i=await $a.getImageUriForAttachment(t.id)),i)return{uri:i,type:"image"}}if(this.instances.settings.enableFeatures[this.instances.type].icons){let s=t.icon;if(s?.svg||s?.emoji)return{uri:"",type:"icon"}}return null}initNodeImages(t,i){if(t.graphicsWrapper&&!(t.coreElement.type==="tag"||t.coreElement.type==="unresolved"))try{switch(t.coreElement.type){case"attachment":t.graphicsWrapper.initNodeImage(i);break;case"":case"focused":"initNodeImage"in t.graphicsWrapper&&t.graphicsWrapper.initNodeImage(i);break}}catch{}}createExtendedElement(t){let i=t.id,s=new Map;for(let[o,a]of this.managers)s.set(o,this.getTypes(o,t));let n;return t.type==="tag"?n=new a1(this.instances,t,s,[...this.managers.values()]):t.type==="attachment"?n=new i1(this.instances,t,s,[...this.managers.values()]):t.type==="unresolved"?n=new c1(this.instances,t):n=new n1(this.instances,t,s,[...this.managers.values()]),this.extendedElementsMap.set(i,n),this.connectedIDs.add(i),n}getID(t){return t.id}getTypesFromFile(t,i,s){return ct(t,s,this.instances.settings)}getAbstractFile(t){return qe(t.id)}resetArcs(t){if(this.instances.settings.enableFeatures[this.instances.type].tags)for(let[i,s]of this.extendedElementsMap)try{let n=this.managers.get(t);if(!n)continue;s.graphicsWrapper.resetManagerGraphics(n)}catch{}}updateOpacityLayerColor(){let t=$e.backgroundColor;this.extendedElementsMap.forEach(i=>{i.graphicsWrapper?.updateOpacityLayerColor(t)})}onCSSChange(){let t=$e.backgroundColor;this.extendedElementsMap.forEach(i=>{i.graphicsWrapper?.updateOpacityLayerColor(t),i.graphicsWrapper?.updateIconBackgroundLayerColor(t),i.extendedText.updateTextStyle()})}isNodePinned(t){let i=this.instances.nodesSet.extendedElementsMap.get(t);if(i)return i.isPinned}pinSelectedNodes(){let t=new yt(this.instances);for(let i in this.selectedNodes)t.pinNode(i)}unpinSelectedNodes(){let t=new yt(this.instances);for(let i in this.selectedNodes)t.unpinNode(i)}selectNodesInRectangle(t){let i=this.instances.renderer.nodes.filter(s=>s.circle&&t.contains(s.circle.x,s.circle.y));this.selectNodes(i)}selectNodes(t){let i,s,n=Object.values(this.selectedNodes).map(o=>o.node);switch(this.instances.settings.selectionMode){case"add":s=[],i=t;break;case"replace":i=t.filter(o=>!(o.id in this.selectedNodes)),s=n.filter(o=>!t.contains(o));break;case"intersect":i=[],s=n.filter(o=>!t.contains(o));break;case"subtract":i=[],s=n.filter(o=>t.contains(o));break}for(let o of i)this.extendedElementsMap.get(o.id)?.select()&&(this.selectedNodes[o.id]={node:o,originX:o.circle?.x??0,originY:o.circle?.y??0});for(let o of s)this.extendedElementsMap.get(o.id)?.unselect(),delete this.selectedNodes[o.id];Object.keys(this.selectedNodes).length==0?this.instances.graphEventsDispatcher.inputsManager.stopListeningToUnselectNodes():this.instances.graphEventsDispatcher.inputsManager.startListeningToUnselectNodes(),u.graphsManager.updateStatusBarItem(this.instances.view.leaf)}unselectNodes(){for(let t in this.selectedNodes)this.extendedElementsMap.get(t)?.unselect();this.selectedNodes={},this.instances.renderer.changed(),u.graphsManager.updateStatusBarItem(this.instances.view.leaf),this.instances.graphEventsDispatcher.inputsManager.stopListeningToUnselectNodes()}invertSelection(){let t=this.instances.renderer.nodes.filter(i=>!(i.id in this.selectedNodes));this.unselectNodes(),t.length>0?this.selectNodes(t):this.instances.graphEventsDispatcher.inputsManager.stopListeningToUnselectNodes()}moveSelectedNodes(t){if(!this.instances.renderer.dragNode)return;if(!this.instances.graphEventsDispatcher.inputsManager.isDragging){this.instances.graphEventsDispatcher.inputsManager.isDragging=!0;for(let s in this.selectedNodes){let n=this.selectedNodes[s].node;n.circle&&(this.selectedNodes[s].originX=n.circle.x,this.selectedNodes[s].originY=n.circle.y)}}if(!(this.instances.renderer.dragNode.id in this.selectedNodes))return;let i={x:t.x-this.selectedNodes[this.instances.renderer.dragNode.id].originX,y:t.y-this.selectedNodes[this.instances.renderer.dragNode.id].originY};for(let s in this.selectedNodes){if(s===this.instances.renderer.dragNode.id)continue;let n=this.selectedNodes[s].node;n.circle&&(n.fx=this.selectedNodes[s].originX+i.x,n.fy=this.selectedNodes[s].originY+i.y,this.instances.renderer.worker.postMessage({alpha:.3,alphaTarget:.3,run:!0,forceNode:{id:n.id,x:n.fx,y:n.fy}}))}}stopMovingSelectedNodes(){for(let t in this.selectedNodes){let i=this.selectedNodes[t].node;(i.fx!==null||i.fy!==null)&&!this.isNodePinned(i.id)&&(this.instances.renderer.worker.postMessage({alphaTarget:0,forceNode:{id:i.id,x:null,y:null}}),i.fx=null,i.fy=null)}}async cacheAllExternalLinks(t){let i=[];for(let s in this.instances.renderer.nodeLookup)i.push(this.cacheExternalLinks(s,!1,t));return Promise.all(i)}async cacheExternalLinks(t,i=!1,s){if(!(this.instances.renderer.nodeLookup[t]?.type===""||this.instances.renderer.nodeLookup[t]?.type==="focused"&&t.endsWith(".md"))||!i&&t in this.cachedExternalLinks)return!1;let n=qe(t);if(!n)return this.cachedExternalLinks[t]=[],!1;let o=[],a=await u.app.vault.cachedRead(n),l=!1;s||(s=new Gc.Component,s.load(),l=!0);let c=createDiv();await Gc.MarkdownRenderer.render(u.app,a,c,t,s),l&&s.unload();for(let p of Array.from(c.getElementsByClassName("external-link"))){let g=p.getAttr("href");g&&o.push(new URL(g))}this.cachedExternalLinks[t]=o;let h=p=>{try{let g=new URL(p);if(g.protocol==="http:"||g.protocol==="https:")return o.push(g),!0}catch{return!1}return!1},d=u.app.metadataCache.getFileCache(n)?.frontmatter;for(let p in d)if(typeof d[p]=="string")h(d[p]);else if(Array.isArray(d[p]))for(let g of d[p])h(g);return o.length>0}convertExternalLink(t){switch(this.instances.settings.externalLinks){case"domain":return{domain:t.hostname};case"href":return{href:t.origin+t.pathname};case"domain_and_href":return{domain:t.hostname,href:t.origin+t.pathname};case"none":return{}}}getExternalLinks(t){return t in this.cachedExternalLinks?this.cachedExternalLinks[t].map(i=>this.convertExternalLink(i)).unique():[]}};var x8=St(kd()),$5=St(x5());var x1=St(Vc()),q5=St(Ld()),zr=class r{constructor(e){this.doneListeners=[];this.graphologyConnectedGraphs=new Map;this.buildGraphology=this.buildGraphology.bind(this),this.instances=e,u.app.metadataCache.isCacheClean()?this.buildGraphology():u.app.metadataCache.on("resolved",this.buildGraphology)}buildGraphology(){if(u.app.metadataCache.off("resolved",this.buildGraphology),this.graphology?this.graphology.clear():this.graphology=new x8.default,this.instances){for(let i of this.instances.renderer.nodes)this.graphology.addNode(i.id);let e=u.app.metadataCache.resolvedLinks,t=u.app.metadataCache.unresolvedLinks;for(let i of this.instances.renderer.links){let s=1;if(i.target.id.startsWith("#"))s=u.app.metadataCache.getCache(i.source.id)?.tags?.reduce((n,o)=>n+(o.tag===i.target.id?1:0),0)??1;else{let n=e[i.source.id];n&&(s=n[i.target.id]??s);let o=t[i.source.id];o&&(s+=o[i.target.id]??0)}this.graphology.addEdge(i.source.id,i.target.id,{count:s})}}else{let e=u.app.vault.getFiles();for(let s of e){this.graphology.addNode(s.path);let n=u.app.metadataCache.getFileCache(s)?.tags??[];for(let o of n)this.graphology.hasNode(o.tag)||this.graphology.addNode(o.tag),this.graphology.hasEdge(s.path,o.tag)?this.graphology.updateEdge(s.path,o.tag,a=>(a.count=(a.count??0)+1,a)):this.graphology.addEdge(s.path,o.tag,{count:1})}let t=u.app.metadataCache.resolvedLinks;for(let[s,n]of Object.entries(t))for(let[o,a]of Object.entries(n))this.graphology.addEdge(s,o,{count:a});let i=u.app.metadataCache.unresolvedLinks;for(let[s,n]of Object.entries(i))for(let[o,a]of Object.entries(n))this.graphology.hasNode(o)||this.graphology.addNode(o),this.graphology.addEdge(s,o,{count:a})}this.computeAttributes();for(let e of this.doneListeners)e(this.graphology)}computeAttributes(){if(!(!this.graphology||!this.instances)&&this.instances.type==="localgraph"&&this.instances.settings.depthColormap){let e=this.instances.view.file?.path;if(e&&this.graphology.hasNode(e)){let t=(0,q5.undirectedSingleSourceLength)(this.graphology,e);for(let i in t)this.graphology.setNodeAttribute(i,"depth",t[i])}}}registerListener(e,t=!1){this.doneListeners.push(e),t&&this.graphology&&e(this.graphology)}getGraphology(){return this.graphology}getConnectedGraphology(e,t){let i=this.graphology;if(!i)return;let s=t==="reversed"?(0,x1.reverse)(i):t==="undirected"?r.toUndirected(i):i,n=function(a,l,c){let h=a.neighbors(c);l.hasNode(c)||l.addNode(c);for(let d of h)l.hasNode(d)||l.addNode(d),l.addEdge(c,d)},o=new x8.default;return(0,$5.dfsFromNode)(s,e,function(a,l,c){o&&n(s,o,a)}.bind(this)),o}intersection(e,t){return e?.filter(i=>t.includes(i))??[]}static toUndirected(e){return(0,x1.toUndirected)(e,(t,i)=>({...t,weight:t.count+i.count}))}};var Y5=St(Vc()),rs={default:m("plugin.default"),"Adamic Adar":m("statsFunctions.AdamicAdar"),BoW:m("statsFunctions.BoW"),"Co-Citations":m("statsFunctions.coCitations"),"Clustering Coefficient":m("statsFunctions.clusteringCoefficient"),Jaccard:m("statsFunctions.Jaccard"),Ocurences:m("statsFunctions.Occurences"),"Otsuka-Ochiai":m("statsFunctions.OtsukaOchiai"),Overlap:m("statsFunctions.overlap")},Pn={default:!1,"Adamic Adar":!1,BoW:!0,"Co-Citations":!1,"Clustering Coefficient":!1,Jaccard:!1,Ocurences:!1,"Otsuka-Ochiai":!0,Overlap:!1},D1={default:!1,"Adamic Adar":!0,BoW:!1,"Co-Citations":!0,"Clustering Coefficient":!0,Jaccard:!0,Ocurences:!1,"Otsuka-Ochiai":!1,Overlap:!0},d0=class{constructor(e,t,i){this.stat=e,this.functionKey=t,this.graphologyGraph=i}async computeStats(e){this.graphologyGraph||(u.graphologyGraph||(u.graphologyGraph=new zr),this.graphologyGraph=u.graphologyGraph),this.graphologyGraph.registerListener(async t=>{await this.getStats(e),this.mapStat()},!0)}async getStats(e){if(!this.graphologyGraph?.graphology)return;this.linksStats={};let i=(e==="reversed"?(0,Y5.reverse)(this.graphologyGraph.graphology):e==="undirected"?zr.toUndirected(this.graphologyGraph.graphology):this.graphologyGraph.graphology).edgeEntries();for(let s of i)this.linksStats[s.source]||(this.linksStats[s.source]={}),this.linksStats[s.source][s.target]={measure:await this.getStat(s),value:0}}mapStat(){switch(this.stat){case"size":this.normalizeValues(.3,2),this.cleanNanAndInfiniteValues(1);break;case"color":this.normalizeValues(0,100),this.cleanNanAndInfiniteValues(50),Object.entries(this.linksStats).forEach(([e,t])=>{Object.entries(t).forEach(([i,{measure:s,value:n}])=>{this.linksStats[e][i].value=zs(n/100,u.settings.linksColorColormap,u.settings)})});break;default:break}}normalizeValues(e,t){let i=this.getMeasures(),s=Math.min(...i),n=Math.max(...i);Object.entries(this.linksStats).forEach(([o,a])=>{Object.entries(a).forEach(([l,{measure:c,value:h}])=>{this.linksStats[o][l].value=(t-e)*(c-s)/(n-s)+e})})}getMeasures(){let e=[];return Object.entries(this.linksStats).forEach(([t,i])=>{e=e.concat(Object.values(i).map(({measure:s,value:n})=>s))}),e.filter(t=>isFinite(t)&&!isNaN(t))}cleanNanAndInfiniteValues(e){Object.entries(this.linksStats).forEach(([t,i])=>{Object.entries(i).forEach(([s,{measure:n,value:o}])=>{(!isFinite(o)||isNaN(o))&&(this.linksStats[t][s].value=e)})})}getWarning(){return""}getLink(){return""}};var Ps=class{static getCalculator(e,t){let i=t?.graphologyGraph;switch(e==="size"?(t??u).settings.linksSizeFunction:(t??u).settings.linksColorFunction){case"Adamic Adar":return new b1(e,i);case"BoW":return new E1(e,i);case"Clustering Coefficient":return new S1(e,i);case"Co-Citations":return new C1(e,i);case"Jaccard":return new w1(e,i);case"Ocurences":return new T1(e,i);case"Otsuka-Ochiai":return new _1(e,i);case"Overlap":return new F1(e,i);default:return}}};var b1=class extends d0{constructor(t,i){super(t,"Adamic Adar",i);this.cache={}}async getStat(t){if(t.source in this.cache)return this.cache[t.source][t.target];let i=this.graphologyGraph,s=i?.graphology;if(!s)return NaN;let n=s.neighbors(t.source),o={};return s.forEachNode(a=>{let l=s.neighbors(a),c=i.intersection(n,l),h=1/0;c.length&&(h=c.map(p=>s.outNeighbors(p).length).reduce((p,g)=>p+1/Math.log(g),0)),o[a]=h}),this.cache[t.source]=o,o[t.target]}};var K5=St(D8()),E1=class extends d0{constructor(t,i){super(t,"BoW",i);this.cache={}}async getStat(t){if(t.source in this.cache)return this.cache[t.source][t.target];let i=y0();if(!i)return NaN;let n=this.graphologyGraph?.graphology;if(!n)return NaN;let{Docs:o}=i,a=i.getNoStopBoW(o[t.source]),l={};return n.forEachNode(c=>{o[c]||(l[c]=0);let d=i.getNoStopBoW(o[c]),p=K5.default.bow.cosine(a,d);l[c]=p}),this.cache[t.source]=l,l[t.target]}};var S1=class extends d0{constructor(t,i){super(t,"Clustering Coefficient",i);this.cache={}}async getStat(t){if(t.source in this.cache)return this.cache[t.source][t.target];let s=this.graphologyGraph?.graphology;if(!s)return NaN;let n={};return s.forEachNode(o=>{let a=[];s.neighbors(o).forEach(h=>{s.neighbors(h).forEach(d=>{s.hasEdge(o,h)&&s.hasEdge(o,d)&&s.hasEdge(h,d)&&a.push([h,d])})});let l=s.neighbors(o).length,c=l===0||l===1?0:2*a.length/(l*(l-1));n[o]=c}),this.cache[t.source]=n,n[t.target]}};var Wc=require("obsidian"),sg=St(ig()),C1=class extends d0{constructor(t,i){super(t,"Co-Citations",i);this.cache={}}async getStat(t){if(t.source in this.cache)return this.cache[t.source][t.target];let s=this.graphologyGraph?.graphology;if(!s)return NaN;let n=t.source,o=u.app.metadataCache,a={};return s.forEachInNeighbor(n,async l=>{let c=o.getFirstLinkpathDest(l,"");if(!c)return;let h=o.getFileCache(c);if(!h?.links)return;let d={},p=[...h.links];h.embeds&&p.push(...h.embeds);let g=p.filter(z=>{let U=o.getFirstLinkpathDest((0,Wc.getLinkpath)(z.link),c.path);return U?U.path===n:!1}),C=(await u.app.vault.cachedRead(c)).split(` -`),w=g.map(z=>{let U=C[z.position.end.line],q=sg.default.sentences(U,{preserve_whitespace:!0}),[re,$,Q]=this.findSentence(q,z);return{sentences:q,link:z,line:z.position.end.line,linkSentence:re,linkSentenceStart:$,linkSentenceEnd:Q}}),k=h.listItems?h.listItems.filter(z=>g.find(U=>U.position.start.line>=z.position.start.line&&U.position.end.line<=z.position.end.line)):[],B=g.map(z=>h.sections?.find(U=>U.position.start.line<=z.position.start.line&&U.position.end.line>=z.position.end.line)),L=7,T=0,W=[],j=h.headings;j&&g.forEach(z=>{h.headings&&h.headings.forEach((U,q)=>{if(L=Math.min(L,U.level),T=Math.max(T,U.level),U.position.start.line<=z.position.start.line){for(let re of Array(j.length-q-1).keys()){let $=j[re+q+1];if($.level>=U.level){if($.position.start.line<=z.position.start.line)return;W.push([U,$.position.start.line]);return}}W.push([U,1e11])}})}),L=h.headings&&h.headings.length>0?L:0,T=h.headings&&h.headings.length>0?T:0;let I=1/Math.pow(2,4+T-L),R=[...p];h.tags&&R.push(...h.tags),R.forEach(z=>{let U=null;if("link"in z){let De=o.getFirstLinkpathDest((0,Wc.getLinkpath)(z?.link??"")??"",c.path);if(!De)U=z.link;else if(U=De.path,U===n)return}else if("tag"in z)U=z.tag;else return;U in d||(d[U]=[0,[]]);let q=C[z.position.start.line],re=!1;if(w.forEach(De=>{if(z.position.start.line===De.line){let[_e,Mt,rt]=this.findSentence(De.sentences,z),et=De.link,gt=Math.min(z.position.start.col,et.position.start.col),Dt=Math.min(z.position.end.col,et.position.end.col),I0=Math.max(z.position.start.col,et.position.start.col),de=Math.max(z.position.end.col,et.position.end.col),oe=[q.slice(Math.min(Mt,De.linkSentenceStart),gt),q.slice(gt,Dt),q.slice(Dt,I0),q.slice(I0,de),q.slice(de,Math.max(rt,De.linkSentenceEnd))],ve=1/2,Yt=Math.abs(_e-De.linkSentence);Yt===0?ve=1:Yt===1?ve=.85:Yt===2?ve=.7:Yt===3&&(ve=.6),d[U][0]=Math.max(ve,d[U][0]),d[U][1].push({sentence:oe,measure:ve,source:l,line:De.line}),re=!0}}),re)return;let $=[q.slice(0,z.position.start.col),q.slice(z.position.start.col,z.position.end.col),q.slice(z.position.end.col,q.length)],Q=h?.listItems?.find(De=>z.position.start.line>=De.position.start.line&&z.position.end.line<=De.position.end.line),Te=!1;if(Q&&k.forEach(De=>{if(De.parent===Q.parent){this.addPreCocitation(d,U,.4,$,l,z.position.start.line),Te=!0;return}let _e=function(Mt,rt){let et=Mt,gt=1;for(;et&&et.parent>0;){if(et.parent===rt.position.start.line){let Dt=.3;return gt===1?Dt=.6:gt===2?Dt=.5:gt===3?Dt=.4:gt===4&&(Dt=.35),this.addPreCocitation(d,U,Dt,$,l,z.position.start.line),!0}gt+=1,et=h.listItems?.find(Dt=>et?.parent===Dt.position.start.line)}return!1};(_e(De,Q)||_e(Q,De))&&(Te=!0)}),Te)return;if(B.find(De=>De&&De.position.start.line<=z.position.start.line&&De.position.end.line>=z.position.end.line)){this.addPreCocitation(d,U,1/4,$,l,z.position.start.line);return}let xe=W.filter(([De,_e])=>De.position.start.line<=z.position.start.line&&_e>z.position.end.line);if(xe.length>0){let De=Math.max(...xe.map(([Mt,rt])=>Mt.level)),_e=1/Math.pow(2,3+T-De);this.addPreCocitation(d,U,_e,$,l,z.position.start.line);return}this.addPreCocitation(d,U,I,$,l,z.position.start.line)}),(0,Wc.getAllTags)(h)?.forEach(z=>{z in d||(d[z]=[I,[{measure:I,sentence:["","",""],source:l,line:0}]])});for(let z in d){let U=o.getFirstLinkpathDest(z,""),q=null,re=!0;U?q=U.path:z[0]==="#"?q=z:(q=z+".md",re=!1);let $=d[z];q in a?a[q]+=$[0]:a[q]=$[0]}}),a[n]=0,this.cache[t.source]=a,a[t.target]}findSentence(t,i){let s=0,n=0;for(let o of t){let a=s+o.length;if(i.position.end.col<=a)return[n,s,a];s=a,n+=1}return[-1,0,s]}addPreCocitation(t,i,s,n,o,a){t[i][0]=Math.max(t[i][0],s),t[i][1].push({sentence:n,measure:s,source:o,line:a})}};var w1=class extends d0{constructor(t,i){super(t,"Jaccard",i);this.cache={}}async getStat(t){if(t.source in this.cache)return this.cache[t.source][t.target];let i=this.graphologyGraph,s=i?.graphology;if(!s)return NaN;let n=s.neighbors(t.source),o={};return s.forEachNode(a=>{let l=s.neighbors(a),c=i.intersection(n,l),h=n.length+l.length-c.length,d=h!==0?c.length/h:1/0;o[a]=d}),this.cache[t.source]=o,o[t.target]}};var T1=class extends d0{constructor(e,t){super(e,"Ocurences",t)}async getStat(e){return this.functionKey==="default"?1:e.attributes.count}};var ng=St(D8()),_1=class extends d0{constructor(t,i){super(t,"Otsuka-Ochiai",i);this.cache={}}async getStat(t){if(t.source in this.cache)return this.cache[t.source][t.target];let i=y0();if(!i)return NaN;let n=this.graphologyGraph?.graphology;if(!n)return NaN;let{Docs:o}=i,a=i.getNoStopSet(o[t.source]),l={};return n.forEachNode(c=>{o[c]||(l[c]=0);let d=i.getNoStopSet(o[c]),p=ng.default.set.oo(a,d);l[c]=p}),this.cache[t.source]=l,l[t.target]}};var F1=class extends d0{constructor(t,i){super(t,"Overlap",i);this.cache={}}async getStat(t){if(t.source in this.cache)return this.cache[t.source][t.target];let i=this.graphologyGraph,s=i?.graphology;if(!s)return NaN;let n=s.neighbors(t.source),o={};return s.forEachNode(a=>{let l=s.neighbors(a),c=i.intersection(n,l),h=n.length!==0&&l.length!==0?c.length**2/Math.min(n.length,l.length):1/0;o[a]=h}),this.cache[t.source]=o,o[t.target]}};var is={default:m("plugin.default"),constant:m("statsFunctions.constant"),backlinksCount:m("statsFunctions.backlinksCount"),backUniquelinksCount:m("statsFunctions.backUniquelinksCount"),forwardlinksCount:m("statsFunctions.forwardlinksCount"),forwardUniquelinksCount:m("statsFunctions.forwardUniquelinksCount"),totallinksCount:m("statsFunctions.totallinksCount"),totalUniquelinksCount:m("statsFunctions.totalUniquelinksCount"),filenameLength:m("statsFunctions.filenameLength"),tagsCount:m("statsFunctions.tagsCount"),creationTime:m("statsFunctions.creationTime"),modifiedTime:m("statsFunctions.modifiedTime"),eccentricity:m("statsFunctions.eccentricity"),betweenness:m("statsFunctions.betweenness"),closeness:m("statsFunctions.closeness"),degree:m("statsFunctions.degree"),eigenvector:m("statsFunctions.eigenvector"),hub:m("statsFunctions.hub"),authority:m("statsFunctions.authority"),topological:m("statsFunctions.topological"),sentiment:m("statsFunctions.sentiment")},Hc={default:!1,constant:!1,backlinksCount:!1,backUniquelinksCount:!1,forwardlinksCount:!1,forwardUniquelinksCount:!1,totallinksCount:!1,totalUniquelinksCount:!1,filenameLength:!1,tagsCount:!1,creationTime:!1,modifiedTime:!1,eccentricity:!1,betweenness:!1,closeness:!1,degree:!1,eigenvector:!1,hub:!1,authority:!1,topological:!1,sentiment:!0},A1={default:!1,constant:!1,backlinksCount:!0,backUniquelinksCount:!0,forwardlinksCount:!0,forwardUniquelinksCount:!0,totallinksCount:!0,totalUniquelinksCount:!0,filenameLength:!1,tagsCount:!1,creationTime:!1,modifiedTime:!1,eccentricity:!0,betweenness:!0,closeness:!0,degree:!0,eigenvector:!0,hub:!0,authority:!0,topological:!0,sentiment:!1},Tt=class{constructor(e,t,i){this.stat=e,this.functionKey=t,this.graphologyGraph=i}async computeStats(e){this.graphologyGraph||(u.graphologyGraph||(u.graphologyGraph=new zr),this.graphologyGraph=u.graphologyGraph),this.graphologyGraph.registerListener(async t=>{await this.getStats(e),this.mapStat()},!0)}async getStats(e){if(!this.graphologyGraph)return;this.filesStats=new Map;let t=this.graphologyGraph.graphology?.nodes();if(t)for(let i of t)this.getStat(i,e).then(s=>this.filesStats.set(i,{measure:s,value:0}))}mapStat(){switch(this.stat){case"size":this.normalizeValues(u.settings.nodesSizeRange.min,u.settings.nodesSizeRange.max),this.cleanNanAndInfiniteValues(1);break;case"color":this.normalizeValues(0,100),this.cleanNanAndInfiniteValues(50),this.filesStats.forEach(({measure:e,value:t},i)=>{this.filesStats.set(i,{measure:e,value:zs(t/100,u.settings.nodesColorColormap,u.settings)})});break;default:break}}normalizeValues(e,t){let i=this.getMeasures(),s=Math.min(...i),n=Math.max(...i);this.filesStats.forEach(({measure:o,value:a},l)=>{this.filesStats.set(l,{measure:o,value:(t-e)*(o-s)/(n-s)+e})})}getMeasures(){return[...this.filesStats.values()].map(({measure:e,value:t})=>e).filter(e=>isFinite(e)&&!isNaN(e))}cleanNanAndInfiniteValues(e){this.filesStats.forEach(({measure:t,value:i},s)=>{(!isFinite(i)||isNaN(i))&&this.filesStats.set(s,{measure:t,value:e})})}static getWarning(){return""}static getLink(){return""}};var Qg=St(cg()),Jg=St(yg()),em=St(Fg()),tm=St($g()),B8=St(Zg());var rm=St(Vc()),mn=class extends Tt{constructor(e,t,i){super(e,t,i)}async computeStats(e){this.graphologyGraph||(u.graphologyGraph||(u.graphologyGraph=new zr),this.graphologyGraph=u.graphologyGraph);let t=this.graphologyGraph.graphology;if(t)return this.computeCentralityMap(e==="reversed"?(0,rm.reverse)(t):e==="undirected"?zr.toUndirected(t):t),super.computeStats(e)}async getStat(e){return this.cm[e]}},Zc=class extends mn{constructor(e,t){super(e,"degree",t)}computeCentralityMap(e){this.cm=(0,Qg.degreeCentrality)(e)}static getLink(){return"https://en.wikipedia.org/wiki/Degree_(graph_theory)"}},Qc=class extends mn{constructor(e,t){super(e,"eigenvector",t)}computeCentralityMap(e){this.cm=(0,Jg.default)(e)}static getLink(){return"https://en.wikipedia.org/wiki/Eigenvector_centrality"}},Jc=class extends mn{constructor(e,t){super(e,"closeness",t)}computeCentralityMap(e){this.cm=(0,em.default)(e)}static getLink(){return"https://en.wikipedia.org/wiki/Closeness_centrality"}},eu=class extends mn{constructor(e,t){super(e,"betweenness",t)}computeCentralityMap(e){this.cm=(0,tm.default)(e)}static getLink(){return"https://en.wikipedia.org/wiki/Betweenness_centrality"}},tu=class extends mn{constructor(e,t){super(e,"hub",t)}computeCentralityMap(e){let{hubs:t,authorities:i}=(0,B8.default)(e);this.cm=t}static getLink(){return"https://en.wikipedia.org/wiki/HITS_algorithm"}},ru=class extends mn{constructor(e,t){super(e,"authority",t)}computeCentralityMap(e){let{hubs:t,authorities:i}=(0,B8.default)(e);this.cm=i}static getLink(){return"https://en.wikipedia.org/wiki/HITS_algorithm"}};var cr=class{static getCalculator(e,t){let i=(t??u).settings,s=t?.graphologyGraph;switch(e==="size"?i.nodesSizeFunction:i.nodesColorFunction){case"constant":return new iu(e,s);case"backlinksCount":return i.graphStatsDirection==="reversed"?new yn(e,!0,s):new vn(e,!0,s);case"backUniquelinksCount":return i.graphStatsDirection==="reversed"?new yn(e,!1,s):new vn(e,!1,s);case"forwardlinksCount":return i.graphStatsDirection==="reversed"?new vn(e,!0,s):new yn(e,!0,s);case"forwardUniquelinksCount":return i.graphStatsDirection==="reversed"?new vn(e,!1,s):new yn(e,!1,s);case"totallinksCount":return new Xa(e,!0,s);case"totalUniquelinksCount":return new Xa(e,!1,s);case"filenameLength":return new ou(e,s);case"tagsCount":return new cu(e,s);case"creationTime":return new su(e,s);case"modifiedTime":return new au(e,s);case"eccentricity":return new nu(e,s);case"closeness":return new Jc(e,s);case"betweenness":return new eu(e,s);case"degree":return new Zc(e,s);case"eigenvector":return new Qc(e,s);case"hub":return new tu(e,s);case"authority":return new ru(e,s);case"topological":return new uu(e,s);case"sentiment":return new lu(e,s);default:return}}static getWarning(e){switch(e){case"constant":return iu.getWarning();case"backlinksCount":case"backUniquelinksCount":return yn.getWarning();case"forwardlinksCount":case"forwardUniquelinksCount":return vn.getWarning();case"totallinksCount":case"totalUniquelinksCount":return Xa.getWarning();case"filenameLength":return ou.getWarning();case"tagsCount":return cu.getWarning();case"creationTime":return su.getWarning();case"modifiedTime":return au.getWarning();case"eccentricity":return nu.getWarning();case"closeness":return Jc.getWarning();case"betweenness":return eu.getWarning();case"degree":return Zc.getWarning();case"eigenvector":return Qc.getWarning();case"hub":return tu.getWarning();case"authority":return ru.getWarning();case"topological":return uu.getWarning();case"sentiment":return lu.getWarning();default:return""}}};var yn=class extends Tt{constructor(e,t,i){super(e,"backlinksCount",i),this.countDuplicates=t}async getStat(e,t){if(this.graphologyGraph?.graphology)return this.countDuplicates?this.graphologyGraph.graphology.reduceInEdges(e,(o,a,l)=>o+(l.count??0),0):this.graphologyGraph.graphology.inDegree(e);let i=Object.values(u.app.metadataCache.resolvedLinks).reduce((o,a)=>(e in a&&o.push(a[e]),o),[]),s=Object.values(u.app.metadataCache.unresolvedLinks).reduce((o,a)=>(e in a&&o.push(a[e]),o),[]),n=i.concat(s);return n?this.countDuplicates?n.reduce((o,a)=>o+a,0):n.length:0}},vn=class extends Tt{constructor(e,t,i){super(e,t?"forwardlinksCount":"forwardUniquelinksCount",i),this.countDuplicates=t}async getStat(e){if(this.graphologyGraph?.graphology)return this.countDuplicates?this.graphologyGraph.graphology.reduceOutEdges(e,(i,s,n)=>i+(n.count??0),0):this.graphologyGraph.graphology.outDegree(e);let t=Object.fromEntries((e in u.app.metadataCache.resolvedLinks?Object.entries(u.app.metadataCache.resolvedLinks[e]):[]).concat(e in u.app.metadataCache.unresolvedLinks?Object.entries(u.app.metadataCache.unresolvedLinks[e]):[]));return t?this.countDuplicates?Object.values(t).reduce((i,s,n,o)=>i+s,0):Object.keys(t).length:0}},Xa=class extends Tt{constructor(e,t,i){super(e,t?"totallinksCount":"totalUniquelinksCount",i),this.countDuplicates=t}async getStat(e){if(this.graphologyGraph?.graphology)return this.countDuplicates?this.graphologyGraph.graphology.reduceEdges(e,(n,o,a)=>n+(a.count??0),0):this.graphologyGraph.graphology.degree(e);let t=Object.entries(u.app.metadataCache.resolvedLinks).reduce((n,o)=>(e===o[0]?n=n.concat(Object.values(o[1])):e in o[1]&&n.push(o[1][e]),n),[]),i=Object.entries(u.app.metadataCache.unresolvedLinks).reduce((n,o)=>(e===o[0]?n=n.concat(Object.values(o[1])):e in o[1]&&n.push(o[1][e]),n),[]),s=t.concat(i);return s?this.countDuplicates?s.reduce((n,o)=>n+o,0):s.length:0}};var iu=class extends Tt{constructor(e,t){super(e,"constant",t)}async getStat(e,t){return 1}};var su=class extends Tt{constructor(e,t){super(e,"creationTime",t)}async getStat(e,t){return qe(e)?.stat.ctime||NaN}static getWarning(){return m("statsFunctions.warningUnreliableOS")}};var nm=St(sm());var nu=class extends Tt{constructor(e,t){super(e,"eccentricity",t)}async getStat(e,t){if(!this.graphologyGraph)return NaN;let i=this.graphologyGraph.getConnectedGraphology(e,t);return i?(0,nm.default)(i,e):NaN}static getLink(){return"https://reference.wolfram.com/language/ref/EccentricityCentrality.html"}};var ou=class extends Tt{constructor(e,t){super(e,"filenameLength",t)}async getStat(e,t){return qe(e)?.basename.length||e.length}};var au=class extends Tt{constructor(e,t){super(e,"modifiedTime",t)}async getStat(e,t){return qe(e)?.stat.mtime||NaN}static getWarning(){return m("statsFunctions.warningUnreliableOS")}};var lu=class extends Tt{constructor(t,i){super(t,"sentiment",i);this.cache={}}async getStat(t,i){let s=y0();if(!s)return NaN;let n=s.Docs[t];return n?s.getAvgSentimentFromDoc(n):0}};var cu=class extends Tt{constructor(e,t){super(e,"tagsCount",t)}async getStat(e,t){let i=qe(e);return i?ct(He,i).size:0}};var ym=St(lm()),vm=St(kd()),xm=St(mm()),Dm=St(Vc()),uu=class extends Tt{constructor(t,i){super(t,"topological",i);this.topologicalWeights=new Map}async getStats(t){if(!this.graphologyGraph)return;let i=this.graphologyGraph.graphology;if(!i)return;let s=t==="reversed"?(0,Dm.reverse)(i):i,n=(0,ym.stronglyConnectedComponents)(s),o=new vm.DirectedGraph;for(let[l,c]of n.entries()){let h=[];for(let d of c){let g=s.outNeighbors(d).map(v=>n.findIndex(C=>C.includes(v))).filter(v=>v!==-1&&v!==l);h.push(...g)}o.addNode(l.toString());for(let d of new Set(h))o.addEdge(l.toString(),d.toString())}let a=(0,xm.topologicalSort)(o);for(let l of a){let c=n[parseInt(l)],h=0;for(let d of c){let p=s.inNeighbors(d);for(let g of p)g!==d&&(h+=this.topologicalWeights.get(g)||0)}h+=1;for(let d of c)this.topologicalWeights.set(d,h)}return super.getStats(t)}async getStat(t,i){return this.topologicalWeights.get(t)||1}static getLink(){return"https://en.wikipedia.org/wiki/Topological_sorting"}};var Hr=class{constructor(e){this.queryData=e}getMatches(e){return u.app.vault.getMarkdownFiles().filter(t=>this.doesMatch(t,e))}doesMatch(e,t){let i=this.queryData.rules.filter(s=>new Fs(s).isValid());if(i.length===0)return!1;switch(this.queryData.combinationLogic){case"AND":return i.every(s=>new Fs(s).doesMatch(e,t)??!1);case"OR":return i.some(s=>new Fs(s).doesMatch(e,t)??!1);default:break}return!1}toString(){let e="";for(let t=0;tthis.doesMatch(e))}doesMatch(e,t){if(!this.isValid())return null;let i=e.path;switch(this.source){case"all":return!0;case"tag":let s=ct(He,e);return this.checkLogic([...s]);case"link":let n=ct(ne,e,t);return this.checkLogic([...n]);case"property":if(!this.property)break;let o=ct(this.property,e,t);return this.checkLogic([...o]);case"file":return this.checkLogic(e.basename);case"folder":return this.checkLogic(i);case"folderRec":let a=[],l=e.parent;for(;l;)a.push(l.path),l=l.parent;return this.checkLogic(a);case"path":return this.checkLogic(e.path);default:break}return!1}checkLogic(e){let t=Array.isArray(e),i=typeof e=="string",s=this.value;if(s.startsWith("\\b")||(s="\\b"+s),s.endsWith("\\b")||(s=s+"\\b"),t){let n=e;switch(this.logic){case"is":return n.length===1&&e[0]===this.value;case"isNot":return n.length===1&&e[0]!==this.value||n.length!==1;case"contains":return n.contains(this.value);case"containsNot":return!n.contains(this.value);case"matchesRegex":return n.length===1&&new RegExp(s).test(n[0]);case"matchesRegexNot":return n.length===1&&!new RegExp(s).test(n[0])||n.length!==1;case"containsRegex":return n.some(o=>new RegExp(this.value).test(o));case"containsRegexNot":return n.every(o=>!new RegExp(this.value).test(o));case"isEmpty":return n.length===0;case"isEmptyNot":return n.length>0;default:break}}else if(i){let n=e;switch(this.logic){case"is":return n===this.value;case"isNot":return n!==this.value;case"contains":return n.contains(this.value);case"containsNot":return!n.contains(this.value);case"matchesRegex":return new RegExp(s).test(n);case"matchesRegexNot":return!new RegExp(s).test(n);case"containsRegex":return new RegExp(this.value).test(n);case"containsRegexNot":return!new RegExp(this.value).test(n);case"isEmpty":return n==="";case"isEmptyNot":return n!=="";default:break}}return!1}isValid(){return this.source===""?!1:this.source==="all"?!0:!(this.source==="property"&&this.property===""||this.logic===""||this.value===""&&this.logic!=="isEmpty"&&this.logic!=="isEmptyNot")}toString(){if(!this.isValid())return null;let e=G8[this.source];return this.source==="all"||(this.source==="property"&&(e+=":"+this.property),e+=" "+U8[this.logic],e+=" "+this.value),e}};var V8={id:Jr,name:m("states.defaultState"),engineOptions:new ti,toggleTypes:{},logicTypes:{},enableLayers:!1,currentLayerLevel:0},Dr=0,gi={enableFeatures:{graph:{"auto-enabled":!1,tags:!1,properties:!1,"property-key":!1,links:!1,linksSameColorAsNode:!1,folders:!1,imagesFromProperty:!1,imagesFromEmbeds:!1,imagesForAttachments:!1,focus:!1,shapes:!1,"elements-stats":!1,names:!1,icons:!1,arrows:!1,layers:!1},localgraph:{"auto-enabled":!1,tags:!1,properties:!1,"property-key":!1,links:!1,linksSameColorAsNode:!1,folders:!1,imagesFromProperty:!1,imagesFromEmbeds:!1,imagesForAttachments:!1,focus:!1,shapes:!1,"elements-stats":!1,names:!1,icons:!1,arrows:!1,layers:!1}},interactiveSettings:{},additionalProperties:{},backupGraphOptions:new ti,openInNewTab:!1,canonicalizePropertiesWithDataview:!0,states:[V8],startingStateID:Jr,syncDefaultState:!1,saveConfigsWithState:!1,customColorMaps:{},imageProperties:["image"],borderFactor:.06,allowExternalImages:!1,allowExternalLocalImages:!1,nodesSizeProperties:[""],nodesSizeFunction:"default",nodesSizeRange:{min:.5,max:1.5},nodesColorColormap:"YlOrRd",nodesColorFunction:"default",graphStatsDirection:"normal",linksSizeFunction:"default",linksColorColormap:"YlOrRd",linksColorFunction:"default",recomputeStatsOnGraphChange:!1,zoomFactor:2,focusScaleFactor:1.8,highlightOpenNodes:!1,highlightSearchResults:!1,maxNodes:20,delay:500,revertAction:!1,enableCSS:!1,cssSnippetFilename:"",shapeQueries:{circle:{combinationLogic:"AND",index:Dr++,rules:[]},square:{combinationLogic:"AND",index:Dr++,rules:[]},triangle:{combinationLogic:"AND",index:Dr++,rules:[]},diamond:{combinationLogic:"AND",index:Dr++,rules:[]},pentagon:{combinationLogic:"AND",index:Dr++,rules:[]},hexagon:{combinationLogic:"AND",index:Dr++,rules:[]},octagon:{combinationLogic:"AND",index:Dr++,rules:[]},decagon:{combinationLogic:"AND",index:Dr++,rules:[]},star4:{combinationLogic:"AND",index:Dr++,rules:[]},star5:{combinationLogic:"AND",index:Dr++,rules:[]},star6:{combinationLogic:"AND",index:Dr++,rules:[]},star8:{combinationLogic:"AND",index:Dr++,rules:[]},star10:{combinationLogic:"AND",index:Dr++,rules:[]}},colorBasedOnDepth:!1,depthColormap:"rainbow",currentNode:{useColor:!1,color:"#000000",size:100,shape:"circle"},fadeOnDisable:!1,borderUnresolved:"",spreadArcs:!1,weightArcs:!1,animateDotsOnLinks:!1,animationSpeedForDots:1,interactivesBrightness:{light:1,dark:1},fadeInElements:!1,externalLinks:"none",externalLinksProperties:["url"],externalLinkOpenMode:"note",showPinIcon:!0,allowMultipleLinkTypes:!1,disableSource:!1,disableTarget:!1,excludedSourcesFolder:[],excludedTargetsFolder:[],curvedLinks:!1,curvedFactor:1,outlineLinks:!1,displayLinkTypeLabel:!1,colorLinkTypeLabel:!1,noLineHighlight:!1,folderShowFullPath:!0,invertArrows:!1,flatArrows:!1,opaqueArrowsButKeepFading:!1,alwaysOpaqueArrows:!1,arrowScale:1,arrowFixedSize:!1,arrowColorBool:!1,arrowColor:"",numberOfCharacters:null,ellipsis:"\u2026",showOnlyFileName:!1,noExtension:!1,usePropertiesForName:[],addBackgroundToName:!1,nameVerticalOffset:0,dynamicVerticalOffset:!1,showNamesWhenNeighborHighlighted:!1,iconProperties:[""],usePluginForIcon:!0,usePluginForIconColor:!0,useParentIcon:!1,backgroundOpacityWithIcon:0,useIconColorForBackgroud:!0,borderWidthWithIcon:0,layerProperties:["layer"],numberOfActiveLayers:4,layersOrder:"ASC",displayLabelsInUI:!0,nodesWithoutLayerOpacity:0,useLayerCustomOpacity:!0,layersCustomOpacity:{},layersLevels:{},defaultLevelForLayers:0,horizontalLegend:!1,useRadialMenu:!1,radialMenuModifier:"Shift",pinNodeModifier:"Alt",useLeftClickToSelect:!0,selectNodeModifier:"Shift",filterAbstractFiles:[],ignoreInlineLinks:!1,collapseState:!0,collapseLegend:!0,resetAfterChanges:!1,collapsedSettings:{},selectionMode:"replace",exportSVGOptions:{asImage:!0,onlyVisibleArea:!1,showNodeNames:!0,useCurvedLinks:!1,useModifiedArrows:!0,useNodesShapes:!1,showArcs:!1,showFolders:!0,useModifiedNames:!0,showIcons:!1},multipleNodesData:{}},Xe=class r{static excludeType(e,t,i){if(ei.hasOwnProperty(t)&&ei[t].includes(i))return!0;if(!e.interactiveSettings.hasOwnProperty(t))return!1;if(!e.interactiveSettings[t].unselected||e.interactiveSettings[t].unselected.includes(i))return!0;if("excludeRegex"in e.interactiveSettings[t]){for(let s of e.interactiveSettings[t].excludeRegex.regex.split(` -`))if(s!==""&&new RegExp(s,e.interactiveSettings[t].excludeRegex.flags).test(i))return!0}return!1}static needToChangeLinkColor(e){return!!(e.settings.enableFeatures[e.type].links&&e.settings.interactiveSettings[ne].showOnGraph||e.settings.enableFeatures[e.type]["elements-stats"]&&e.settings.linksColorFunction!=="default"||e.settings.enableFeatures[e.type].linksSameColorAsNode)}static needToChangeArrowColor(e,t){return!!(e.settings.enableFeatures[e.type].arrows&&e.settings.arrowColorBool&&e.settings.arrowColor!=""||e.settings.enableFeatures[e.type].links&&e.settings.interactiveSettings[ne].showOnGraph&&!t.hasType(ne,e.settings.interactiveSettings[ne].noneType)||e.settings.enableFeatures[e.type]["elements-stats"]&&e.settings.linksColorFunction!=="default"||e.settings.enableFeatures[e.type].linksSameColorAsNode)}static needToChangeArrowScale(e){return!!(e.settings.enableFeatures[e.type].arrows&&(e.settings.arrowScale!==1||e.settings.arrowFixedSize))}static needToChangeArrowAlpha(e){return!!(e.settings.enableFeatures[e.type].arrows&&e.settings.alwaysOpaqueArrows)}static needToChangeArrowRotation(e){return!!(e.settings.enableFeatures[e.type].arrows&&e.settings.invertArrows)}static needToChangeArrowShape(e){return!!(e.settings.enableFeatures[e.type].arrows&&e.settings.flatArrows)}static needToChangeArrow(e){return e.settings.enableFeatures[e.type].arrows&&(e.settings.invertArrows||e.settings.arrowScale!==1||e.settings.arrowFixedSize||e.settings.arrowColorBool&&e.settings.arrowColor!=""||e.settings.alwaysOpaqueArrows||e.settings.flatArrows)||r.needToChangeLinkColor(e)}static needDynamicGraphology(e,t){if(t){if(!e.settings.enableFeatures[e.type]["elements-stats"]||!e.settings.recomputeStatsOnGraphChange)return!1;switch(t.element){case"node":return A1[t.stat==="size"?e.settings.nodesSizeFunction:e.settings.nodesColorFunction];case"link":return D1[t.stat==="size"?e.settings.linksSizeFunction:e.settings.linksColorFunction]}}else return e.type==="localgraph"&&e.settings.colorBasedOnDepth||e.settings.enableFeatures[e.type]["elements-stats"]&&e.settings.recomputeStatsOnGraphChange&&(D1[e.settings.linksSizeFunction]||D1[e.settings.linksColorFunction]||A1[e.settings.nodesSizeFunction]||A1[e.settings.nodesColorFunction])}static needReload(e,t,i){let s=e.enableFeatures[i],n=t.enableFeatures[i],o=p=>JSON.stringify(e[p])===JSON.stringify(t[p]);if(s.tags!==n.tags||n.tags&&!Ka(e.interactiveSettings[He],t.interactiveSettings[He])||s.links!==n.links||n.links&&!Ka(e.interactiveSettings[ne],t.interactiveSettings[ne])||s.folders!==n.folders||n.folders&&!Ka(e.interactiveSettings[pe],t.interactiveSettings[pe])||s.properties!==n.properties)return!0;let a=Object.keys(Object.fromEntries(Object.entries(e.additionalProperties).filter(p=>p[1][i]))),l=Object.keys(Object.fromEntries(Object.entries(t.additionalProperties).filter(p=>p[1][i])));if(!Ka(a,l))return!0;let c=a.map(p=>e.interactiveSettings[p]),h=l.map(p=>t.interactiveSettings[p]);if(!Ka(c,h)||n.links&&["excludedSourcesFolder","excludedTargetsFolder","curvedLinks","curvedFactor","disableSource","disableTarget","outlineLinks","displayLinkTypeLabel","colorLinkTypeLabel"].some(p=>!o(p)))return!0;let d=["imagesForAttachments","imagesFromEmbeds","imagesFromProperty"];return!!(d.some(p=>s[p]!==n[p])||n.imagesFromProperty&&!o("imageProperties")||d.some(p=>n[p])&&["borderFactor","allowExternalImages","allowExternalLocalImages"].some(p=>!o(p))||n["elements-stats"]!==s["elements-stats"]||n["elements-stats"]&&(["nodesSizeProperties","nodesSizeFunction","linksSizeFunction","nodesSizeRange"].some(p=>!o(p))||e.nodesColorFunction==="default"&&t.nodesColorFunction!=="default"||e.linksColorFunction==="default"&&t.linksColorFunction!=="default"||!o("graphStatsDirection")&&["nodesSizeFunction","nodesColorFunction","linksSizeFunction","linksColorFunction","recomputeStatsOnGraphChange"].some(p=>t[p]!=="default"))||n.shapes!==s.shapes||n.shapes&&["shapeQueries"].some(p=>!o(p))||n.arrows!==s.arrows||n.arrows&&["invertArrows","flatArrows","opaqueArrowsButKeepFading","alwaysOpaqueArrows","arrowScale","arrowColorBool","arrowColor","arrowFixedSize"].some(p=>!o(p))||n.names!==s.names||n.names&&(["numberOfCharacters","ellipsis","showOnlyFileName","noExtension","usePropertiesForName","addBackgroundToName","dynamicVerticalOffset","showNamesWhenNeighborHighlighted"].some(p=>!o(p))||!e.dynamicVerticalOffset&&!t.dynamicVerticalOffset&&!o("nameVerticalOffset"))||n.icons!==s.icons||n.icons&&(["iconProperties","usePluginForIcon","backgroundOpacityWithIcon","useIconColorForBackgroud","borderWidthWithIcon"].some(p=>!o(p))||e.usePluginForIcon&&t.usePluginForIcon&&["usePluginForIconColor","useParentIcon"].some(p=>!o(p)))||n.layers!==s.layers||n.layers&&["layerProperties","numberOfActiveLayers","layersOrder","displayLabelsInUI","nodesWithoutLayerOpacity","useLayerCustomOpacity","layersCustomOpacity","layersLevels","defaultLevelForLayers"].some(p=>!o(p))||["colorBasedOnDepth","currentNode"].some(p=>!o(p))&&t.colorBasedOnDepth&&!o("depthColormap")||s.linksSameColorAsNode!==n.linksSameColorAsNode||["fadeOnDisable","borderUnresolved","spreadArcs","weightArcs","animateDotsOnLinks","animationSpeedForDots","interactivesBrightness","fadeInElements","externalLinks","showPinIcon"].some(p=>!o(p))||s.focus!==n.focus||n.focus&&["focusScaleFactor","highlightOpenNodes","highlightSearchResults"].some(p=>!o(p))||["openInNewTab"].some(p=>!o(p))||["customColorMaps"].some(p=>!o(p))||["filterAbstractFiles","ignoreInlineLinks"].some(p=>!o(p))||["enableCSS","useRadialMenu","noLineHighlight","canonicalizePropertiesWithDataview"].some(p=>!o(p)))}};function Ka(r,e){let t=Object.keys,i=typeof r;return r&&e&&i==="object"&&i===typeof e?t(r).length===t(e).length&&t(r).every(n=>Ka(r[n],e[n])):r===e}async function Mo(){let r=u.configurationDirectory;return await u.app.vault.adapter.exists(r)?(await u.app.vault.adapter.list(r)).files:[]}var xn=require("obsidian");var W1=class extends xn.PluginSettingTab{constructor(t){super(u.app,t);this.sections=[];this.settingsWithPalettes=[];let i=new Za(this),s=new o9(this),n=new Qa(this),o=new a9(this),a=new Y1(this),l=new t9(this);this.settingsWithPalettes.push(i,s,n,o,a,l),this.sections.push(new j1(this)),this.sections.push(i),this.sections.push(s),this.sections.push(n),this.sections.push(new H1(this)),this.sections.push(o),this.sections.push(new Q1(this)),this.sections.push(new Z1(this)),this.sections.push(new K1(this)),this.sections.push(new s9(this)),this.sections.push(new e9(this)),this.sections.push(a),this.sections.push(new r9(this)),this.sections.push(new n9(this)),this.sections.push(l),this.sections.push(new q1(this)),this.sections.push(new X1(this)),this.sections.push(new J1(this)),this.sections.push(new i9(this)),this.sections.push(new $1(this))}display(){this.originalSettings=structuredClone(u.settings),this.containerEl.empty(),this.containerEl.addClass("extended-graph-settings"),this.addImportExport(),this.addNav(),this.addDisableNodes(),this.addCanonicalPropertiesWithDataview();for(let t of this.sections)t.display()}addImportExport(){new xn.Setting(this.containerEl).addExtraButton(t=>{t.extraSettingsEl.insertAdjacentText("beforebegin",m("controls.export")),t.setIcon("upload"),t.setTooltip(m("controls.exportSettings")),t.onClick(()=>{new l9((s,n)=>{let o=n?s:u.configurationDirectory+"/"+s+".json";return!n&&!Ku(s)?!1:(u.plugin.exportSettings(o,u.settings),!0)}).open()})}).addExtraButton(t=>{t.extraSettingsEl.insertAdjacentText("beforebegin",m("controls.import")),t.setIcon("download"),t.setTooltip(m("controls.importSettings")),t.onClick(()=>{new Ja(s=>{if(s.trim()===""){new xn.Notice("Configuration name cannot be empty");return}u.plugin.importSettings(s).then(()=>{this.display()})}).open()})})}addNav(){let i=this.containerEl.createDiv({cls:"extended-graph-nav-settings"}).createDiv({cls:"nav-label"});i.innerText=m("controls.goTo")}addDisableNodes(){new xn.Setting(this.containerEl).setName(m("features.disableNodes")).setDesc(m("features.disableNodesDesc")).addToggle(t=>{t.setValue(!u.settings.fadeOnDisable),t.onChange(i=>{u.settings.fadeOnDisable=!i,u.plugin.saveSettings()})})}addCanonicalPropertiesWithDataview(){N0(!1)&&new xn.Setting(this.containerEl).setName(m("features.canonicalizePropertiesWithDataview")).setDesc(m("features.canonicalizePropertiesWithDataviewDesc")).addToggle(t=>{t.setValue(u.settings.canonicalizePropertiesWithDataview),t.onChange(i=>{u.settings.canonicalizePropertiesWithDataview=i,u.plugin.saveSettings()})})}hide(){u.graphsManager&&u.settings.resetAfterChanges&&(Xe.needReload(this.originalSettings,u.settings,"graph")&&u.graphsManager.resetAllPlugins("graph"),Xe.needReload(this.originalSettings,u.settings,"localgraph")&&u.graphsManager.resetAllPlugins("localgraph")),super.hide()}onCustomPaletteModified(t,i){for(let s of this.settingsWithPalettes)s.onCustomPaletteModified(t,i);u.plugin.saveSettings()}};var mo=require("obsidian");var Bt=class{constructor(e,t,i,s,n,o){this.elementsBody=[];this.itemClasses=[];this.isCollapsed=!1;this.settingTab=e,this.containerEl=e.containerEl,this.id=t,this.keyword=i,this.title=s,this.icon=n,this.description=o,this.itemClasses.push(`setting-${this.id}`)}display(){this.elementsBody=[],this.addHeader(),this.addBody(),this.addToNav(),this.id!="property-key"&&(!(this.id in u.settings.collapsedSettings)||u.settings.collapsedSettings[this.id])&&this.collapse(),this.elementsBody.forEach(e=>{e.addClasses(this.itemClasses)})}addHeader(){this.settingHeader=new mo.Setting(this.containerEl).setName(this.title).setHeading(),this.icon&&this.icon!==""&&this.settingHeader.then(e=>{let t=createDiv();e.settingEl.prepend(t),this.icon&&(0,mo.setIcon)(t,this.icon)}),this.foldIcon=new mo.ExtraButtonComponent(this.settingHeader.nameEl).setIcon("chevron-right").onClick(()=>{this.isCollapsed?this.expand():this.collapse()}).then(e=>{e.extraSettingsEl.addClass("setting-header-fold-icon")}),this.settingHeader.setDesc(this.description),this.settingHeader.settingEl.addClasses(this.itemClasses)}addToNav(){if(this.icon==="")return;let e=this.settingTab.containerEl.querySelector(".extended-graph-nav-settings");if(!e)return;let t=e.createDiv();new mo.ExtraButtonComponent(t).setIcon(this.icon).onClick(()=>{this.settingHeader.settingEl.scrollIntoView()}).setTooltip(this.title),t.appendText(this.keyword)}collapse(){this.isCollapsed=!0,this.settingHeader.settingEl.addClass("is-collapsed"),u.settings.collapsedSettings[this.id]=!0,u.plugin.saveSettings(),this.onCollapse()}expand(){this.isCollapsed=!1,this.settingHeader.settingEl.removeClass("is-collapsed"),u.settings.collapsedSettings[this.id]=!1,u.plugin.saveSettings(),this.onExpand()}onCollapse(){}onExpand(){}};var bm=require("obsidian");var e0=class extends Bt{constructor(t,i,s,n,o,a,l){super(t,i,n,o,a,l);this.toggles={};this.feature=i,this.interactiveKey=s,s!==""&&this.itemClasses.push(`setting-${this.feature}-${c9(s)}`)}addHeader(){super.addHeader(),this.toggles={},this.addToggle("graph"),this.addToggle("localgraph")}addToggle(t){let i=u.settings.enableFeatures[t][this.feature];this.feature==="property-key"&&(i=u.settings.additionalProperties[this.interactiveKey][t]);let s=this.settingHeader.controlEl.createDiv();s.addClass("toggle-labelled"),s.insertAdjacentText("afterbegin",pu[t]),new bm.ToggleComponent(s).setValue(i).onChange(n=>{this.toggle(t,n)}),this.toggles[t]=s,this.toggle(t,i)}toggle(t,i){this.feature==="property-key"?u.settings.additionalProperties[this.interactiveKey][t]=i:u.settings.enableFeatures[t][this.feature]=i,u.plugin.saveSettings()}};var yo=require("obsidian");var H1=class extends e0{constructor(e){super(e,"arrows","",m("features.ids.arrows"),m("features.arrows"),"mouse-pointer-2",m("features.arrowsDesc"))}addBody(){this.addInvertArrows(),this.addFlatArrows(),this.addOpaqueArrows(),this.addScaleArrow(),this.addColorArrow()}addInvertArrows(){this.elementsBody.push(new yo.Setting(this.settingTab.containerEl).setName(m("features.arrowsInvert")).setDesc(m("features.arrowsInvertDesc")).addToggle(e=>{e.setValue(u.settings.invertArrows),e.onChange(t=>{u.settings.invertArrows=t,u.plugin.saveSettings()})}).settingEl)}addFlatArrows(){this.elementsBody.push(new yo.Setting(this.settingTab.containerEl).setName(m("features.arrowsFlat")).setDesc(m("features.arrowsFlatDesc")).addToggle(e=>{e.setValue(u.settings.flatArrows),e.onChange(t=>{u.settings.flatArrows=t,u.plugin.saveSettings()})}).settingEl)}addOpaqueArrows(){this.elementsBody.push(new yo.Setting(this.settingTab.containerEl).setName(m("features.arrowsOpaque")).setDesc(m("features.arrowsOpaqueDesc")).addToggle(e=>{e.toggleEl.insertAdjacentText("beforebegin",m("features.arrowsOpaqueKeepFading")),e.setValue(u.settings.opaqueArrowsButKeepFading),e.onChange(t=>{u.settings.opaqueArrowsButKeepFading=t,u.plugin.saveSettings()})}).addToggle(e=>{e.toggleEl.insertAdjacentText("beforebegin",m("features.arrowsOpaqueAlways")),e.setValue(u.settings.alwaysOpaqueArrows),e.onChange(t=>{u.settings.alwaysOpaqueArrows=t,u.plugin.saveSettings()})}).settingEl)}addScaleArrow(){this.elementsBody.push(new yo.Setting(this.settingTab.containerEl).setName(m("features.arrowsScale")).setDesc(m("features.arrowsScaleDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.arrowScale.toString()).onChange(async t=>{t===""&&(u.settings.arrowScale=1,await u.plugin.saveSettings());let i=parseFloat(t);isNaN(i)||(u.settings.arrowScale=Math.max(.1,i),await u.plugin.saveSettings())})}).settingEl),this.elementsBody.push(new yo.Setting(this.settingTab.containerEl).setName(m("features.arrowsFixedSize")).setDesc(m("features.arrowsFixedSizeDesc")).addToggle(e=>{e.setValue(u.settings.arrowFixedSize),e.onChange(t=>{u.settings.arrowFixedSize=t,u.plugin.saveSettings()})}).settingEl)}addColorArrow(){this.elementsBody.push(new yo.Setting(this.settingTab.containerEl).setName(m("features.arrowsColor")).setDesc(m("features.arrowsColorDesc")).addToggle(e=>{e.setValue(u.settings.arrowColorBool),e.onChange(t=>{u.settings.arrowColorBool=t,u.plugin.saveSettings()})}).addColorPicker(e=>{e.setValue(u.settings.arrowColor),e.onChange(t=>{u.settings.arrowColor=t,u.plugin.saveSettings()})}).settingEl)}};var el=require("obsidian");var j1=class extends Bt{constructor(e){super(e,"automation",m("features.ids.automation"),m("features.automation"),"workflow","")}addBody(){this.addAutoEnable(),this.addStartingState(),this.addSyncDefaultState(),this.addSaveConfigWithState(),this.addOpenInNewTab(),this.addResetAfterChanges()}addAutoEnable(){this.elementsBody.push(new Hi(this.containerEl,m("features.autoEnable"),m("features.autoEnableDesc"),"auto-enabled").settingEl)}addStartingState(){this.elementsBody.push(new el.Setting(this.containerEl).setName(m("states.startingState")).setDesc(m("states.startingStateDesc")).addDropdown(e=>{e.addOptions(Object.fromEntries(Object.values(u.settings.states).map(t=>[t.id,t.name]))),e.setValue(u.settings.startingStateID),e.onChange(t=>{u.settings.startingStateID=t,u.plugin.saveSettings()})}).settingEl)}addSyncDefaultState(){this.elementsBody.push(new el.Setting(this.containerEl).setName(m("states.syncDefaultState")).setDesc(m("states.syncDefaultStateDesc")).addToggle(e=>{e.setValue(u.settings.syncDefaultState),e.onChange(t=>{u.settings.syncDefaultState=t,u.plugin.saveSettings()})}).settingEl)}addSaveConfigWithState(){this.elementsBody.push(new el.Setting(this.containerEl).setName(m("states.saveConfigsWithState")).setDesc(m("states.saveConfigsWithStateDesc")).addToggle(e=>{e.setValue(u.settings.saveConfigsWithState),e.onChange(t=>{u.settings.saveConfigsWithState=t,u.plugin.saveSettings()})}).settingEl)}addOpenInNewTab(){this.elementsBody.push(new el.Setting(this.containerEl).setName(m("features.openInNewTab")).setDesc(m("features.openInNewTabDesc")).addToggle(e=>{e.setValue(u.settings.openInNewTab),e.onChange(t=>{u.settings.openInNewTab=t,u.plugin.saveSettings()})}).settingEl)}addResetAfterChanges(){this.elementsBody.push(new el.Setting(this.containerEl).setName(m("features.autoReset")).setDesc(m("features.autoResetDesc")).addToggle(e=>{e.setValue(u.settings.resetAfterChanges),e.onChange(t=>{u.settings.resetAfterChanges=t,u.plugin.saveSettings()})}).settingEl)}};var fu=require("obsidian");var $1=class extends Bt{constructor(e){super(e,"beta",m("features.ids.beta"),m("beta.betaFeatures"),"hourglass","")}addBody(){this.addRevertAction(),this.addExternalLinks()}addRevertAction(){let e=new fu.Setting(this.settingTab.containerEl).setName(m("beta.revertAction")).setDesc(m("beta.revertActionDesc")).addToggle(t=>t.setValue(u.settings.revertAction).onChange(async i=>{u.settings.revertAction=i,await u.plugin.saveSettings()}));this.elementsBody.push(e.settingEl)}addExternalLinks(){this.elementsBody.push(new fu.Setting(this.containerEl).setName(m("features.externalLinks")).setDesc(m("features.externalLinksDesc")).addDropdown(e=>{let t={none:m("features.externalLinksOptions.none"),domain:m("features.externalLinksOptions.domain"),href:m("features.externalLinksOptions.href"),domain_and_href:m("features.externalLinksOptions.domain_and_href")};e.addOptions(t),e.setValue(u.settings.externalLinks),e.onChange(async i=>{u.settings.externalLinks=i,await u.plugin.saveSettings()})}).settingEl),this.elementsBody.push(new fu.Setting(this.settingTab.containerEl).setName(m("features.externalLinksProperties")).setDesc(m("features.externalLinksPropertiesDesc")).addExtraButton(e=>{e.setIcon("mouse-pointer-click"),e.onClick(()=>{new rr(m("features.externalLinksProperties"),m("features.externalLinksPropertiesAdd"),u.settings.externalLinksProperties).open()})}).settingEl),this.elementsBody.push(new fu.Setting(this.containerEl).setName(m("features.externalLinksOpenMode")).setDesc(m("features.externalLinksOpenModeDesc")).addDropdown(e=>{let t={web:m("features.externalLinksModes.web"),note:m("features.externalLinksModes.note"),choice:m("features.externalLinksModes.choice")};e.addOptions(t),e.setValue(u.settings.externalLinkOpenMode),e.onChange(async i=>{u.settings.externalLinkOpenMode=i,await u.plugin.saveSettings()})}).settingEl)}};var mi=require("obsidian");var q1=class extends Bt{constructor(e){super(e,"display",m("features.ids.display"),m("features.otherDisplay"),"monitor","")}addBody(){this.addBorderUnresolved(),this.addLinkSameColorAsNodes(),this.addNoLineHighlight(),this.addSpreadArcs(),this.addWeightArcs(),this.addBrightness(),this.addFadeInElements(),this.addAnimateDotsOnLinks(),this.addAnimationSpeedForDot(),this.addHorizontalLegend(),this.addShowPinIcon()}addBorderUnresolved(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.borderUnresolved")).setDesc(m("features.borderUnresolvedDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.borderUnresolved.toString()).onChange(async t=>{t===""&&(u.settings.borderUnresolved="",await u.plugin.saveSettings());let i=parseFloat(t);isNaN(i)||(u.settings.borderUnresolved=Math.clamp(i,0,1),await u.plugin.saveSettings())})}).settingEl)}addLinkSameColorAsNodes(){this.elementsBody.push(new Hi(this.containerEl,m("features.linksSameColorAsNode"),m("features.linksSameColorAsNodeDesc"),"linksSameColorAsNode").settingEl)}addNoLineHighlight(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.noLineHighlight")).setDesc(m("features.noLineHighlightDesc")).addToggle(e=>{e.setValue(u.settings.noLineHighlight||!1),e.onChange(t=>{u.settings.noLineHighlight=t,u.plugin.saveSettings()})}).settingEl)}addSpreadArcs(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.interactives.arcsSpread")).setDesc(m("features.interactives.arcsSpreadDesc")).addToggle(e=>{e.setValue(u.settings.spreadArcs||!1),e.onChange(t=>{u.settings.spreadArcs=t,u.plugin.saveSettings()})}).settingEl)}addWeightArcs(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.interactives.arcWeight")).setDesc(m("features.interactives.arcWeightDesc")).addToggle(e=>{e.setValue(u.settings.weightArcs||!1),e.onChange(t=>{u.settings.weightArcs=t,u.plugin.saveSettings()})}).settingEl)}addBrightness(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.brightness")).setDesc(m("features.brightnessDesc")).addText(e=>{e.inputEl.addClass("number"),e.inputEl.insertAdjacentText("beforebegin",m("plugin.light")),e.setValue(u.settings.interactivesBrightness.light.toString()),e.onChange(t=>{t===""&&(u.settings.interactivesBrightness.light=1,u.plugin.saveSettings());let i=parseFloat(t);isNaN(i)||(u.settings.interactivesBrightness.light=Math.max(i,0),u.plugin.saveSettings())})}).addText(e=>{e.inputEl.addClass("number"),e.inputEl.insertAdjacentText("beforebegin",m("plugin.dark")),e.setValue(u.settings.interactivesBrightness.dark.toString()),e.onChange(t=>{t===""&&(u.settings.interactivesBrightness.dark=1,u.plugin.saveSettings());let i=parseFloat(t);isNaN(i)||(u.settings.interactivesBrightness.dark=Math.max(i,0),u.plugin.saveSettings())})}).settingEl)}addFadeInElements(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.fadeInElements")).setDesc(m("features.fadeInElementsDesc")).addToggle(e=>{e.setValue(u.settings.fadeInElements),e.onChange(t=>{u.settings.fadeInElements=t,u.plugin.saveSettings()})}).settingEl)}addAnimateDotsOnLinks(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.animateDotsOnLinks")).setDesc(m("features.animateDotsOnLinksDesc")).addToggle(e=>{e.setValue(u.settings.animateDotsOnLinks||!1),e.onChange(t=>{u.settings.animateDotsOnLinks=t,u.plugin.saveSettings()})}).settingEl)}addAnimationSpeedForDot(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.animateDotsOnLinksSpeed")).setDesc(m("features.animateDotsOnLinksSpeedDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.animationSpeedForDots.toString()).onChange(async t=>{let i=parseFloat(t);!isNaN(i)&&i>0&&(u.settings.animationSpeedForDots=i,await u.plugin.saveSettings())})}).settingEl)}addHorizontalLegend(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("UI.horizontalLegend")).setDesc(m("UI.horizontalLegendDesc")).addToggle(e=>{e.setValue(u.settings.horizontalLegend),e.onChange(t=>{u.settings.horizontalLegend=t,u.plugin.saveSettings()})}).settingEl)}addShowPinIcon(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("UI.showPinIcon")).setDesc(m("UI.showPinIconDesc")).addToggle(e=>{e.setValue(u.settings.showPinIcon),e.onChange(t=>{u.settings.showPinIcon=t,u.plugin.saveSettings()})}).settingEl)}};var o0=require("obsidian");var Dn=require("obsidian");var rr=class extends Dn.Modal{constructor(t,i,s){super(u.app);this.inputs=[];this.properties=s,this.addText=i,this.setTitle(t),this.modalEl.addClass("graph-modal-setting-properties")}onOpen(){this.addAddButton(),this.loadProperties()}addAddButton(){this.contentEl.createSpan().textContent=this.addText;let t=new Dn.ButtonComponent(this.contentEl).onClick(()=>{this.addProperty("")});Je.setupButton(t,"add")}loadProperties(){this.propertiesDiv=this.contentEl.createDiv("properties-list");for(let t of this.properties)this.addProperty(t)}addProperty(t){let i=this.propertiesDiv.createDiv("property-value"),s=t,n=new Dn.SearchComponent(i).setValue(t).onChange(a=>{this.renameProperty(s,a)&&(s=a)});new tl(n.inputEl,a=>{this.renameProperty(s,a)&&(s=a)}),this.inputs.push(n);let o=new Dn.ExtraButtonComponent(i).onClick(()=>{this.deleteProperty(i,n)});Je.setupExtraButton(o,"delete")}deleteProperty(t,i){this.inputs.remove(i),this.properties.remove(i.getValue()),t.remove(),u.plugin.saveSettings()}renameProperty(t,i){return rl(i)&&!this.properties.contains(i)&&i!==t?(this.properties.remove(t),this.properties.push(i),u.plugin.saveSettings(),!0):!1}onClose(){this.contentEl.empty()}};var Y1=class extends e0{constructor(e){super(e,"elements-stats","",m("features.ids.elementsStats"),m("features.elementsStats"),"chart-pie",m("features.elementsStatsDesc"))}addBody(){this.nodesSizeFunctionDropdown=void 0,this.nodesColorFunctionDropdown=void 0,this.linksSizeFunctionDropdown=void 0,this.linksColorFunctionDropdown=void 0,this.addNodeSizeProperties(),this.addNodeSizeFunction(),this.addNodeSizeWarning(),this.addNodeSizeRange(),this.addNodeColorFunction(),this.addNodeColorWarning(),this.addColorPaletteSettingForNodes(),this.addStatsDirection(),this.addLinkSizeFunction(),this.addLinkColorFunction(),this.addColorPaletteSettingForLinks(),this.addRecomputeStatsOnGraphChange()}addNodeSizeProperties(){let e=new o0.Setting(this.settingTab.containerEl).setName(m("features.nodeSizeProperties")).setDesc(m("features.nodeSizePropertiesDesc")).addExtraButton(t=>{t.setIcon("mouse-pointer-click"),t.onClick(()=>{new rr(m("features.nodeSizeProperties"),m("features.nodeSizePropertiesAdd"),u.settings.nodesSizeProperties).open()})});this.elementsBody.push(e.settingEl)}addNodeSizeFunction(){let e=new o0.Setting(this.settingTab.containerEl).setName(m("features.nodeSizesFunction")).setDesc(m("features.nodeSizesFunctionDesc")).addDropdown(t=>{this.nodesSizeFunctionDropdown=t,t.addOptions(Object.fromEntries(Object.entries(is).filter(i=>{let s=i[0];return!(Hc[s]&&!y0())}))),t.setValue(u.settings.nodesSizeFunction),t.onChange(i=>{let s=i;!y0()&&Hc[s]&&(new o0.Notice(`${m("notices.nlpPluginRequired")} (${s})`),s="default",this.nodesSizeFunctionDropdown?.setValue(s)),u.settings.nodesSizeFunction=s,u.plugin.saveSettings(),this.setWarning(this.warningNodeSizeSetting,cr.getWarning(s))})});this.elementsBody.push(e.settingEl)}addNodeSizeWarning(){let e=new o0.Setting(this.settingTab.containerEl).setClass("setting-warning").then(t=>{(0,o0.setIcon)(t.nameEl,"triangle-alert")});this.elementsBody.push(e.settingEl),this.warningNodeSizeSetting=e,this.setWarning(e,cr.getWarning(u.settings.nodesSizeFunction))}addNodeSizeRange(){let e=new o0.Setting(this.containerEl).setName(m("features.nodeSizesRange")).setDesc(m("features.nodeSizesRangeDesc")).addText(t=>{t.inputEl.addClass("number"),t.setValue(u.settings.nodesSizeRange.min.toString()),t.onChange(async i=>{let s=parseFloat(i);isNaN(s)||(u.settings.nodesSizeRange.min=Math.clamp(s,.1,5),await u.plugin.saveSettings())})}).addText(t=>{t.inputEl.addClass("number"),t.setValue(u.settings.nodesSizeRange.max.toString()),t.onChange(async i=>{let s=parseFloat(i);isNaN(s)||(u.settings.nodesSizeRange.max=Math.clamp(s,.1,5),await u.plugin.saveSettings())})});this.elementsBody.push(e.settingEl)}addNodeColorFunction(){let e=new o0.Setting(this.settingTab.containerEl).setName(m("features.nodeColorsFunction")).setDesc(m("features.nodeColorsFunctionDesc")).addDropdown(t=>{this.nodesColorFunctionDropdown=t,t.addOptions(Object.fromEntries(Object.entries(is).filter(i=>{let s=i[0];return!(Hc[s]&&!y0())}))),t.setValue(u.settings.nodesColorFunction),t.onChange(i=>{let s=i;!y0()&&Hc[s]&&(new o0.Notice(`${m("notices.nlpPluginRequired")} (${s})`),s="default",this.nodesColorFunctionDropdown?.setValue(s)),u.settings.nodesColorFunction=s,this.setWarning(this.warningNodeColorSetting,cr.getWarning(s)),u.plugin.saveSettings()})});this.elementsBody.push(e.settingEl)}addNodeColorWarning(){let e=new o0.Setting(this.settingTab.containerEl).setClass("setting-warning").then(t=>{(0,o0.setIcon)(t.nameEl,"triangle-alert")});this.elementsBody.push(e.settingEl),this.warningNodeColorSetting=e,this.setWarning(e,cr.getWarning(u.settings.nodesColorFunction))}addStatsDirection(){let e=new o0.Setting(this.settingTab.containerEl).setName(m("features.nodeStatsDirection")).setDesc(m("features.nodeStatsDirectionDesc")).addDropdown(t=>{let i={normal:m("features.nodeStatsDirectionNormal"),reversed:m("features.nodeStatsDirectionReversed"),undirected:m("features.nodeStatsDirectionUndirected")};t.addOptions(i),t.setValue(u.settings.graphStatsDirection),t.onChange(async s=>{u.settings.graphStatsDirection=s,await u.plugin.saveSettings()})});this.elementsBody.push(e.settingEl)}addColorPaletteSettingForNodes(){this.nodesPaletteSetting=new As(this.containerEl,this.settingTab,"stats-colors-nodes").setDesc(m("features.nodeColorsPaletteDesc")),this.nodesPaletteSetting.setValue(u.settings.nodesColorColormap),this.nodesPaletteSetting.onPaletteChange(e=>{u.settings.nodesColorColormap=e,u.plugin.saveSettings(),u.graphsManager.nodesColorCalculator?.mapStat(),u.graphsManager.updatePaletteForNodesStat()}),this.elementsBody.push(this.nodesPaletteSetting.settingEl)}addLinkSizeFunction(){let e=new o0.Setting(this.settingTab.containerEl).setName(m("features.linkSizesFunction")).setDesc(m("features.linkSizesFunctionDesc")).addDropdown(t=>{this.linksSizeFunctionDropdown=t,t.addOptions(Object.fromEntries(Object.entries(rs).filter(i=>{let s=i[0];return!(Pn[s]&&!y0())}))),t.setValue(u.settings.linksSizeFunction),t.onChange(i=>{this.recomputeLinksSizes(i)})});this.elementsBody.push(e.settingEl)}addLinkColorFunction(){let e=new o0.Setting(this.settingTab.containerEl).setName(m("features.linkColorsFunction")).setDesc(m("features.linkColorsFunctionDesc")+" \u26A0\uFE0F "+m("features.linksFeatureRequired")).addDropdown(t=>{this.linksColorFunctionDropdown=t,t.addOptions(Object.fromEntries(Object.entries(rs).filter(i=>{let s=i[0];return!(Pn[s]&&!y0())}))),t.setValue(u.settings.linksColorFunction),t.onChange(i=>{this.recomputeLinksColors(i)})});this.elementsBody.push(e.settingEl)}addColorPaletteSettingForLinks(){this.linksPaletteSetting=new As(this.containerEl,this.settingTab,"stats-colors-links").setDesc(m("features.linkColorsPaletteDesc")),this.linksPaletteSetting.setValue(u.settings.linksColorColormap),this.linksPaletteSetting.onPaletteChange(e=>{u.settings.linksColorColormap=e,u.plugin.saveSettings(),u.graphsManager.linksColorCalculator?.mapStat(),u.graphsManager.updatePaletteForLinksStat()}),this.elementsBody.push(this.linksPaletteSetting.settingEl)}addRecomputeStatsOnGraphChange(){let e=new o0.Setting(this.settingTab.containerEl).setName(m("features.nodeStatsRecomputeOnGraphChange")).setDesc(m("features.nodeStatsRecomputeOnGraphChangeDesc")).addToggle(t=>{t.setValue(u.settings.recomputeStatsOnGraphChange),t.onChange(i=>{u.settings.recomputeStatsOnGraphChange=i,u.plugin.saveSettings()})});this.elementsBody.push(e.settingEl)}onCustomPaletteModified(e,t){X0(u.settings.nodesColorColormap,u.settings)||(u.settings.nodesColorColormap===e&&X0(t,u.settings)?u.settings.nodesColorColormap=t:u.settings.nodesColorColormap="rainbow"),this.nodesPaletteSetting.populateCustomOptions(),this.nodesPaletteSetting.setValue(u.settings.nodesColorColormap),X0(u.settings.linksColorColormap,u.settings)||(u.settings.linksColorColormap===e&&X0(t,u.settings)?u.settings.linksColorColormap=t:u.settings.linksColorColormap="rainbow"),this.linksPaletteSetting.populateCustomOptions(),this.linksPaletteSetting.setValue(u.settings.linksColorColormap)}setWarning(e,t){t&&t!==""?(e.setDesc(t),e.settingEl.removeClass("is-hidden")):(e.setDesc(""),e.settingEl.addClass("is-hidden"))}recomputeLinksSizes(e){!y0()&&Pn[e]&&(new o0.Notice(`${m("notices.nlpPluginRequired")} (${e})`),e="default",this.linksSizeFunctionDropdown?.setValue(e)),u.settings.linksSizeFunction=e,u.plugin.saveSettings()}recomputeLinksColors(e){!y0()&&Pn[e]&&(new o0.Notice(`${m("notices.nlpPluginRequired")} (${e})`),e="default",this.linksColorFunctionDropdown?.setValue(e)),u.settings.linksColorFunction=e,u.plugin.saveSettings()}};var u9=require("obsidian");var X1=class extends Bt{constructor(e){super(e,"filter",m("features.ids.filter"),m("features.filters"),"file-x",m("features.filtersDesc"))}addBody(){this.addIgnoreInlineLinks(),this.addNewFilterSetting();for(let e of u.settings.filterAbstractFiles)this.addRegex(e)}addIgnoreInlineLinks(){this.elementsBody.push(new u9.Setting(this.containerEl).setName(m("features.ignoreInlineLinks")).setDesc(m("features.ignoreInlineLinksDesc")).addToggle(e=>{e.setValue(u.settings.ignoreInlineLinks),e.onChange(async t=>{u.settings.ignoreInlineLinks=t,await u.plugin.saveSettings()})}).settingEl)}addNewFilterSetting(){let e=new u9.Setting(this.settingTab.containerEl).setName(m("query.excludeRegex"));e.addExtraButton(t=>{Je.setupExtraButton(t,"add"),t.onClick(async()=>{let i=this.elementsBody.last()??e.settingEl,s={regex:"",flag:""};u.settings.filterAbstractFiles.push(s);let n=this.addRegex(s);i.insertAdjacentElement("afterend",n.settingEl),await u.plugin.saveSettings()})}),this.elementsBody.push(e.settingEl)}addRegex(e){let t=new u9.Setting(this.settingTab.containerEl).addSearch(i=>{new h9(i.inputEl,s=>{e.regex=s,u.plugin.saveSettings()}),i.setValue(e.regex),i.onChange(s=>{e.regex=s,u.plugin.saveSettings()})}).addText(i=>{i.setPlaceholder("flag").setValue(e.flag).onChange(s=>{e.flag=s,u.plugin.saveSettings()})});return t.addExtraButton(i=>{Je.setupExtraButton(i,"delete"),i.onClick(()=>{u.settings.filterAbstractFiles.remove(e),u.plugin.saveSettings(),t.settingEl.remove(),this.elementsBody.remove(t.settingEl)})}),this.elementsBody.push(t.settingEl),t.settingEl.addClasses(this.itemClasses),t}};var d9=require("obsidian");var K1=class extends e0{constructor(e){super(e,"focus","",m("features.ids.focus"),m("features.focus"),"telescope",m("features.focusDesc"))}addHeader(){super.addHeader()}addBody(){this.addFocusScale(),this.addHighlightOpenNodes(),this.addHighlightSearchResults()}addFocusScale(){this.elementsBody.push(new d9.Setting(this.settingTab.containerEl).setName(m("features.focusScale")).setDesc(m("features.focusScaleDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.focusScaleFactor.toString()).onChange(async t=>{let i=parseFloat(t);i&&(u.settings.focusScaleFactor=i,await u.plugin.saveSettings())})}).settingEl)}addHighlightOpenNodes(){this.elementsBody.push(new d9.Setting(this.settingTab.containerEl).setName(m("features.focusOpenNodes")).setDesc(m("features.focusOpenNodesDesc")).addToggle(e=>{e.setValue(u.settings.highlightOpenNodes).onChange(async t=>{u.settings.highlightOpenNodes=t,await u.plugin.saveSettings()})}).settingEl)}addHighlightSearchResults(){this.elementsBody.push(new d9.Setting(this.settingTab.containerEl).setName(m("features.focusSearchResults")).setDesc(m("features.focusSearchResultsDesc")).addToggle(e=>{e.setValue(u.settings.highlightSearchResults).onChange(async t=>{u.settings.highlightSearchResults=t,await u.plugin.saveSettings()})}).settingEl)}};var bn=require("obsidian");var Z1=class extends e0{constructor(e){super(e,"icons","",m("features.ids.icons"),m("features.icons"),"origami",m("features.iconsDesc"))}addBody(){this.colorSetting=void 0,this.parentSetting=void 0,this.addProperty(),this.addSupportForPlugins(),this.addBackgroundOpacity(),this.addBorderWidth()}addProperty(){this.elementsBody.push(new bn.Setting(this.settingTab.containerEl).setName(m("features.iconProperties")).setDesc(m("features.iconPropertiesDesc")).addExtraButton(e=>{e.setIcon("mouse-pointer-click"),e.onClick(()=>{new rr(m("features.iconProperties"),m("features.iconPropertiesAdd"),u.settings.iconProperties).open()})}).settingEl)}addSupportForPlugins(){this.elementsBody.push(new bn.Setting(this.settingTab.containerEl).setName(m("features.iconUsePlugin")).setDesc(m("features.iconUsePluginDesc")).addToggle(e=>{e.setValue(u.settings.usePluginForIcon),e.onChange(t=>{u.settings.usePluginForIcon=t,u.plugin.saveSettings(),this.colorSetting?.setVisibility(t),this.parentSetting?.setVisibility(t)})}).settingEl),this.colorSetting=new bn.Setting(this.settingTab.containerEl).setName(m("features.iconUsePluginColor")).setDesc(m("features.iconUsePluginColorDesc")).addToggle(e=>{e.setValue(u.settings.usePluginForIconColor),e.onChange(t=>{u.settings.usePluginForIconColor=t,u.plugin.saveSettings()})}),this.colorSetting?.setVisibility(u.settings.usePluginForIcon),this.elementsBody.push(this.colorSetting.settingEl),this.parentSetting=new bn.Setting(this.settingTab.containerEl).setName(m("features.iconUseParentIcon")).setDesc(m("features.iconUseParentIconDesc")).addToggle(e=>{e.setValue(u.settings.useParentIcon),e.onChange(t=>{u.settings.useParentIcon=t,u.plugin.saveSettings()})}),this.parentSetting?.setVisibility(u.settings.usePluginForIcon),this.elementsBody.push(this.parentSetting.settingEl)}addBackgroundOpacity(){this.elementsBody.push(new bn.Setting(this.settingTab.containerEl).setName(m("features.iconBackgroundOpacity")).setDesc(m("features.iconBackgroundOpacityDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.backgroundOpacityWithIcon.toString()),e.onChange(async t=>{let i=t===""?0:parseFloat(t);isNaN(i)||(u.settings.backgroundOpacityWithIcon=Math.clamp(i,0,1),await u.plugin.saveSettings())})}).settingEl),this.elementsBody.push(new bn.Setting(this.settingTab.containerEl).setName(m("features.iconBackgroundColor")).setDesc(m("features.iconBackgroundColorDesc")).addToggle(e=>{e.setValue(u.settings.useIconColorForBackgroud),e.onChange(async t=>{u.settings.useIconColorForBackgroud=t,await u.plugin.saveSettings()})}).settingEl)}addBorderWidth(){this.elementsBody.push(new bn.Setting(this.settingTab.containerEl).setName(m("features.iconBorderWidth")).setDesc(m("features.iconBorderWidthDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.borderWidthWithIcon.toString()),e.onChange(async t=>{let i=t===""?0:parseFloat(t);isNaN(i)||(u.settings.borderWidthWithIcon=Math.max(i,0),await u.plugin.saveSettings())})}).settingEl)}};var gu=require("obsidian");var Q1=class extends Bt{constructor(e){super(e,"images",m("features.ids.images"),m("features.image"),"image",m("features.imageDesc"))}addBody(){this.addImagesFromProperties(),this.addImagesFromEmbeds(),this.addImagesForAttachments(),this.addBorderFactor(),this.addAllowExternal()}addImagesFromProperties(){this.elementsBody.push(new Hi(this.settingTab.containerEl,m("features.imagesFromProperty"),m("features.imagesFromPropertyDesc"),"imagesFromProperty").settingEl),this.elementsBody.push(new gu.Setting(this.settingTab.containerEl).setName(m("features.imageProperties")).setDesc(m("features.imagePropertiesDesc")).addExtraButton(e=>{e.setIcon("mouse-pointer-click"),e.onClick(()=>{new rr(m("features.imageProperties"),m("features.imagePropertiesAdd"),u.settings.imageProperties).open()})}).settingEl)}addImagesFromEmbeds(){this.elementsBody.push(new Hi(this.settingTab.containerEl,m("features.imagesFromEmbeds"),m("features.imagesFromEmbedsDesc"),"imagesFromEmbeds").settingEl)}addImagesForAttachments(){this.elementsBody.push(new Hi(this.settingTab.containerEl,m("features.imagesForAttachments"),m("features.imagesForAttachmentsDesc"),"imagesForAttachments").settingEl)}addBorderFactor(){let e=new gu.Setting(this.settingTab.containerEl).setName(m("features.imageBorderWidth")).setDesc(m("features.imageBorderWidthDesc")).addSlider(t=>{let i=document.createTextNode(u.settings.borderFactor.toString()+"%");i&&t.sliderEl.parentElement?.insertBefore(i,t.sliderEl),t.setLimits(0,50,1).setValue(u.settings.borderFactor*100).onChange(s=>{u.settings.borderFactor=s/100,i&&(i.textContent=u.settings.borderFactor.toString()+"%"),u.plugin.saveSettings()})});e.controlEl.addClass("setting-item-description"),this.elementsBody.push(e.settingEl)}addAllowExternal(){this.elementsBody.push(new gu.Setting(this.settingTab.containerEl).setName(m("features.imagesAllowExternal")).setDesc(m("features.imagesAllowExternalDesc")).addToggle(e=>{e.setValue(u.settings.allowExternalImages),e.onChange(t=>{u.settings.allowExternalImages=t,u.plugin.saveSettings()})}).settingEl),this.elementsBody.push(new gu.Setting(this.settingTab.containerEl).setName(m("features.imagesAllowExternalLocal")).setDesc(m("features.imagesAllowExternalLocalDesc")).addToggle(e=>{e.setValue(u.settings.allowExternalLocalImages),e.onChange(t=>{u.settings.allowExternalLocalImages=t,u.plugin.saveSettings()})}).settingEl)}};var yi=require("obsidian");var J1=class extends Bt{constructor(e){super(e,"inputs",m("features.ids.inputs"),m("inputs.inputs"),"mouse","")}addBody(){this.addRadialMenu(),this.addPinHotkey(),this.addSelectHotkey(),this.checkCompatibility()}addRadialMenu(){let e=new yi.Setting(this.settingTab.containerEl).setName(m("inputs.radialMenu")).setDesc(m("inputs.radialMenuDesc")).addDropdown(t=>{t.addOptions({"":"",Mod:yi.Platform.isMacOS?"Cmd (Mod)":"Ctrl (Mod)",Ctrl:"Ctrl",Meta:yi.Platform.isMacOS?"Cmd (Meta)":"Win",Shift:"Shift",Alt:"Alt"}),t.setValue(u.settings.useRadialMenu?u.settings.radialMenuModifier:""),t.onChange(async i=>{i===""?u.settings.useRadialMenu=!1:(u.settings.useRadialMenu=!0,u.settings.radialMenuModifier=i),await u.plugin.saveSettings(),this.checkCompatibility()})});this.elementsBody.push(e.settingEl)}addPinHotkey(){let e=new yi.Setting(this.settingTab.containerEl).setName(m("inputs.pinHotkey")).setDesc(m("inputs.pinHotkeyDesc")).addDropdown(t=>{t.addOptions({"":"",Mod:yi.Platform.isMacOS?"Cmd (Mod)":"Ctrl (Mod)",Ctrl:"Ctrl",Meta:yi.Platform.isMacOS?"Cmd (Meta)":"Win",Shift:"Shift",Alt:"Alt"}),t.setValue(u.settings.pinNodeModifier?u.settings.pinNodeModifier:""),t.onChange(async i=>{i===""?u.settings.pinNodeModifier=void 0:u.settings.pinNodeModifier=i,await u.plugin.saveSettings(),this.checkCompatibility()})});this.elementsBody.push(e.settingEl)}addSelectHotkey(){let e=new yi.Setting(this.settingTab.containerEl).setName(m("inputs.selectHotkey")).setDesc(m("inputs.selectHotkeyDesc")).addDropdown(t=>{t.addOptions({Mod:yi.Platform.isMacOS?"Cmd (Mod)":"Ctrl (Mod)",Ctrl:"Ctrl",Meta:yi.Platform.isMacOS?"Cmd (Meta)":"Win",Shift:"Shift",Alt:"Alt"}),t.setValue(u.settings.selectNodeModifier),t.onChange(async i=>{u.settings.selectNodeModifier=i,await u.plugin.saveSettings(),this.checkCompatibility()})});this.elementsBody.push(e.settingEl)}checkCompatibility(){let e=[u.settings.radialMenuModifier,u.settings.pinNodeModifier],t=[u.settings.selectNodeModifier],i=e.unique().length===e.length,s=t.unique().length===t.length,n=[];i||n.push(m("inputs.rightClickIncompatibility")),s||n.push(m("inputs.leftClickIncompatibility")),this.settingHeader.setDesc(n.join(` -`)),this.settingHeader.descEl.toggleClass("error",!i&&!s)}};var ir=require("obsidian");var e9=class extends e0{constructor(t){super(t,"layers","",m("features.ids.layers"),`${m("features.layers")} (${m("beta.beta")})`,"layers",m("features.layersDesc"));this.layerInfoSettings=[]}addBody(){this.layerInfoSettings=[],this.addProperties(),this.addNumberOfActiveLayers(),this.addLayerOrder(),this.addRemoveNodesWithoutLayer(),this.addUseCustomOpacity(),this.addLayersInfo(),this.addDisplayLabelsInUI()}addProperties(){this.elementsBody.push(new ir.Setting(this.settingTab.containerEl).setName(m("features.layerProperties")).setDesc(m("features.layerPropertiesDesc")).addExtraButton(t=>{t.setIcon("mouse-pointer-click"),t.onClick(()=>{new rr(m("features.layerProperties"),m("features.layerPropertiesAdd"),u.settings.layerProperties).open()})}).settingEl)}addNumberOfActiveLayers(){this.elementsBody.push(new ir.Setting(this.containerEl).setName(m("features.layersNumber")).setDesc(m("features.layersNumberDesc")).addText(t=>{t.inputEl.addClass("number"),t.setValue(u.settings.numberOfActiveLayers.toString()).onChange(async i=>{let s=parseInt(i);!isNaN(s)&&s>0&&(u.settings.numberOfActiveLayers=s,await u.plugin.saveSettings())})}).settingEl)}addLayerOrder(){this.elementsBody.push(new ir.Setting(this.containerEl).setName(m("features.layersOrder")).setDesc(m("features.layersOrderDesc")).addDropdown(t=>{t.addOptions({ASC:"0-9",DESC:"9-0"}).setValue(u.settings.layersOrder).onChange(async i=>{(i==="ASC"||i==="DESC")&&(u.settings.layersOrder=i,await u.plugin.saveSettings())})}).settingEl)}addRemoveNodesWithoutLayer(){this.elementsBody.push(new ir.Setting(this.containerEl).setName(m("features.layersOpacityIfNoLayer")).setDesc(m("features.layersOpacityIfNoLayerDesc")).addText(t=>{t.inputEl.addClass("number"),t.setValue(u.settings.nodesWithoutLayerOpacity.toString()).onChange(async i=>{let s=parseFloat(i);isNaN(s)||(u.settings.nodesWithoutLayerOpacity=Math.clamp(s,0,1),await u.plugin.saveSettings())})}).settingEl)}addUseCustomOpacity(){let t=new ir.Setting(this.containerEl).setName(m("features.layersUseCustomOpacity")).setDesc(m("features.layersUseCustomOpacityDesc")).addToggle(i=>{i.setValue(u.settings.useLayerCustomOpacity).onChange(async s=>{u.settings.useLayerCustomOpacity=s,await u.plugin.saveSettings()})});this.elementsBody.push(t.settingEl),this.lastSettingBeforeLayerInfos=t}addLayersInfo(){let t=co.getAllLayers(u.settings);if(this.addLayersInfoFromData(t),N0(!1)){let i=new ir.Setting(this.containerEl).setClass("setting-warning").setDesc(m("features.layersInfoDataview")).then(s=>{(0,ir.setIcon)(s.nameEl,"triangle-alert")});this.elementsBody.push(i.settingEl)}if(t.some(i=>!i.levelFromID)){let i=new ir.Setting(this.containerEl).setClass("setting-additional-info").setDesc(m("features.layersInfoLevelNotFromID")).then(s=>{(0,ir.setIcon)(s.nameEl,"asterisk")});this.elementsBody.push(i.settingEl)}}addLayersInfoFromData(t){for(let i of this.layerInfoSettings)i.settingEl.detach();this.layerInfoSettings=[];for(let i of t.reverse()){let s=new z8(this.settingTab.containerEl,this,i);this.lastSettingBeforeLayerInfos.settingEl.insertAdjacentElement("afterend",s.settingEl),this.layerInfoSettings.push(s),this.elementsBody.push(s.settingEl)}this.layerInfoSettings.reverse()}addDisplayLabelsInUI(){this.elementsBody.push(new ir.Setting(this.containerEl).setName(m("features.layersDisplayLabels")).setDesc(m("features.layersDisplayLabelsDesc")).addToggle(t=>{t.setValue(u.settings.displayLabelsInUI).onChange(async i=>{u.settings.displayLabelsInUI=i,await u.plugin.saveSettings()})}).settingEl)}async updateLayerID(t){let i=t.layer.level,s=parseInt(t.levelInput.getValue());isNaN(s)&&(s=i);let n=t.layer.label,o=t.labelInput?.getValue()??n;o===""&&(o=n);let a=t.layer.id,l=t.layer.levelFromID?s.toString()+(o!==""?"_"+o:""):o,c=()=>{t.layer.id=l,t.layer.level=s,t.layer.label=o,t.levelInput.setValue(s.toString()),t.labelInput?.setValue(o)};if(i===s&&n===o){c();return}i!==s&&!t.layer.levelFromID&&(u.settings.layersLevels[l]=s),i in u.settings.layersCustomOpacity&&!(s in u.settings.layersCustomOpacity)&&(u.settings.layersCustomOpacity[s]=u.settings.layersCustomOpacity[i],await u.plugin.saveSettings());let h=u.app.vault.getMarkdownFiles();for(let p of h)await u.app.fileManager.processFrontMatter(p,g=>{for(let v of u.settings.layerProperties)v in g&&g[v]===a&&(g[v]=l)});c();let d=this.layerInfoSettings.map(p=>p.layer);co.sortData(u.settings,d),this.addLayersInfoFromData(d)}},z8=class extends ir.Setting{constructor(e,t,i){super(e),this.mainSettings=t,this.layer=i,this.settingEl.addClass("setting-layer-info"),this.addSaveButton().addLevelInput().addLabelInput().addLevelOriginIcon().addOpacityInput()}addSaveButton(){return this.addButton(e=>{this.saveButton=e,Je.setupButton(e,"save"),e.onClick(()=>{this.mainSettings.updateLayerID(this)})}),this}addLevelInput(){return this.addText(e=>{this.levelInput=e,e.inputEl.addClass("number"),this.layer.levelFromDefault?e.setPlaceholder(this.layer.level.toString()):e.setValue(this.layer.level.toString())}),this}addLabelInput(){return this.layer.label===""?this:this.addText(e=>{this.labelInput=e,this.labelInput.setValue(this.layer.label)})}addLevelOriginIcon(){if(this.layer.levelFromID)return this;let e=this.controlEl.createDiv("level-origin-icon");return(0,ir.setIcon)(e,"asterisk"),this}addOpacityInput(){return this.addText(e=>{e.inputEl.addClass("number"),e.setPlaceholder(m("features.layersOpacityPlaceholder")),e.setValue(u.settings.layersCustomOpacity[this.layer.level]?.toString()??""),e.onChange(async t=>{let i=parseFloat(t);isNaN(i)?(delete u.settings.layersCustomOpacity[this.layer.level],await u.plugin.saveSettings()):(u.settings.layersCustomOpacity[this.layer.level]=Math.clamp(i,0,1),await u.plugin.saveSettings())})}),this}};var vo=require("obsidian");var t9=class extends Bt{constructor(e){super(e,"local-graph",m("features.ids.localGraph"),m("features.localGraph"),"map-pin",m("features.localGraphDesc"))}addBody(){this.addColorBasedOnDepth(),this.addCurrentNodeColor(),this.addCurrentNodeSize(),this.addCurrentNodeShape()}addColorBasedOnDepth(){this.elementsBody.push(new vo.Setting(this.containerEl).setName(m("features.colorBasedOnDepth")).setDesc(m("features.colorBasedOnDepthDesc")).addToggle(e=>{e.setValue(u.settings.colorBasedOnDepth).onChange(async t=>{u.settings.colorBasedOnDepth=t,u.plugin.saveSettings(),this.depthColormapSetting.setVisibility(t)})}).settingEl),this.depthColormapSetting=new As(this.containerEl,this.settingTab,"depth-color").setName(m("features.depthPalette")).setDesc(m("features.depthPaletteDesc")),this.depthColormapSetting.setValue(u.settings.depthColormap),this.depthColormapSetting.onPaletteChange(e=>{u.settings.depthColormap=e,u.plugin.saveSettings()}),this.depthColormapSetting.setVisibility(u.settings.colorBasedOnDepth),this.elementsBody.push(this.depthColormapSetting.settingEl)}addCurrentNodeColor(){this.elementsBody.push(new vo.Setting(this.containerEl).setName(m("features.localGraphCurrentNodeColor")).setDesc(m("features.localGraphCurrentNodeColorDesc")).addToggle(e=>{e.setValue(u.settings.currentNode.useColor),e.onChange(async t=>{u.settings.currentNode.useColor=t,await u.plugin.saveSettings()})}).addColorPicker(e=>{e.setValue(u.settings.currentNode.color),e.onChange(async t=>{u.settings.currentNode.color=t,await u.plugin.saveSettings()})}).settingEl)}addCurrentNodeSize(){this.elementsBody.push(new vo.Setting(this.containerEl).setName(m("features.localGraphCurrentNodeSize")).setDesc(m("features.localGraphCurrentNodeSizeDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.currentNode.size.toString()),e.onChange(async t=>{let i=parseInt(t);isNaN(i)||(u.settings.currentNode.size=Math.max(10,i),await u.plugin.saveSettings())})}).settingEl)}addCurrentNodeShape(){let e=new vo.Setting(this.containerEl).setName(m("features.localGraphCurrentNodeShape")).setDesc(m("features.localGraphCurrentNodeShapeDesc"));this.elementsBody.push(e.settingEl),this.shapesSVGContainer=e.controlEl;let t=Object.values(Ts);for(let i of t){let s=We.getSVG(i);s.addClass("shape-svg");let n=new vo.ExtraButtonComponent(this.shapesSVGContainer);n.setTooltip(i),n.extraSettingsEl.addClasses(["shape-icon",i]),n.extraSettingsEl.replaceChildren(s),n.onClick(async()=>{u.settings.currentNode.shape=i,await u.plugin.saveSettings(),this.highlightSelectedShape()})}this.highlightSelectedShape()}highlightSelectedShape(){for(let e of Array.from(this.shapesSVGContainer.querySelectorAll(".shape-icon")))e.toggleClass("is-active",e.hasClass(u.settings.currentNode.shape))}onCustomPaletteModified(e,t){X0(u.settings.depthColormap,u.settings)||(u.settings.depthColormap===e&&X0(t,u.settings)?u.settings.depthColormap=t:u.settings.depthColormap="rainbow"),this.depthColormapSetting.populateCustomOptions(),this.depthColormapSetting.setValue(u.settings.depthColormap)}};var ks=require("obsidian");var r9=class extends e0{constructor(e){super(e,"names","",m("features.ids.names"),m("features.names"),"case-sensitive",m("features.namesDesc"))}addBody(){this.addShowWhenNeighborHighlighted(),this.addNumberOfCharacters(),this.addOnlyFilename(),this.addNoExtension(),this.addUseProperty(),this.addBackground(),this.addDynamicVerticalOffset(),this.addVerticalOffset()}addNumberOfCharacters(){this.elementsBody.push(new ks.Setting(this.settingTab.containerEl).setName(m("features.namesNumberOfCharacters")).setDesc(m("features.namesNumberOfCharactersDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.numberOfCharacters?.toString()||"").onChange(async t=>{let i=parseInt(t);isNaN(i)?u.settings.numberOfCharacters=null:u.settings.numberOfCharacters=i,await u.plugin.saveSettings()})}).addText(e=>{e.inputEl.addClass("number"),e.setPlaceholder(m("features.namesEllipsisPlaceholder")),e.setValue(u.settings.ellipsis.toString()).onChange(async t=>{u.settings.ellipsis=t,await u.plugin.saveSettings()})}).settingEl)}addOnlyFilename(){this.elementsBody.push(new ks.Setting(this.settingTab.containerEl).setName(m("features.namesShowOnlyFileName")).setDesc(m("features.namesShowOnlyFileNameDesc")).addToggle(e=>{e.setValue(u.settings.showOnlyFileName),e.onChange(t=>{u.settings.showOnlyFileName=t,u.plugin.saveSettings()})}).settingEl)}addNoExtension(){this.elementsBody.push(new ks.Setting(this.settingTab.containerEl).setName(m("features.namesNoExtension")).setDesc(m("features.namesNoExtensionDesc")).addToggle(e=>{e.setValue(u.settings.noExtension),e.onChange(t=>{u.settings.noExtension=t,u.plugin.saveSettings()})}).settingEl)}addUseProperty(){this.elementsBody.push(new ks.Setting(this.settingTab.containerEl).setName(m("features.namesUseProperties")).setDesc(m("features.namesUsePropertiesDesc")).addExtraButton(e=>{e.setIcon("mouse-pointer-click"),e.onClick(()=>{new rr(m("features.namesUseProperties"),m("features.namesUsePropertiesAdd"),u.settings.usePropertiesForName).open()})}).settingEl)}addBackground(){this.elementsBody.push(new ks.Setting(this.settingTab.containerEl).setName(m("features.namesBackground")).setDesc(m("features.namesBackgroundDesc")).addToggle(e=>{e.setValue(u.settings.addBackgroundToName),e.onChange(t=>{u.settings.addBackgroundToName=t,u.plugin.saveSettings()})}).settingEl)}addDynamicVerticalOffset(){this.elementsBody.push(new ks.Setting(this.settingTab.containerEl).setName(m("features.namesDynamicVerticalOffset")).setDesc(m("features.namesDynamicVerticalOffsetDesc")).addToggle(e=>{e.setValue(u.settings.dynamicVerticalOffset),e.onChange(t=>{this.verticalOffset.setDisabled(t),u.settings.dynamicVerticalOffset=t,u.plugin.saveSettings()})}).settingEl)}addVerticalOffset(){this.verticalOffset=new ks.Setting(this.settingTab.containerEl).setName(m("features.namesVerticalOffset")).setDesc(m("features.namesVerticalOffsetDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.nameVerticalOffset.toString()),e.onChange(t=>{let i=parseInt(t);u.settings.nameVerticalOffset=isNaN(i)?0:i,u.plugin.saveSettings()})}),this.verticalOffset.setDisabled(u.settings.dynamicVerticalOffset),this.elementsBody.push(this.verticalOffset.settingEl)}addShowWhenNeighborHighlighted(){this.elementsBody.push(new ks.Setting(this.settingTab.containerEl).setName(m("features.namesShowWhenNeighborHighlighted")).setDesc(m("features.namesShowWhenNeighborHighlightedDesc")).addToggle(e=>{e.setValue(u.settings.showNamesWhenNeighborHighlighted),e.onChange(t=>{u.settings.showNamesWhenNeighborHighlighted=t,u.plugin.saveSettings()})}).settingEl)}};var p9=require("obsidian");var i9=class extends Bt{constructor(e){super(e,"performances",m("features.ids.performances"),m("features.performance"),"cpu","")}addBody(){this.addDelay(),this.addNumberOfNodes(),this.addEnableCSS()}addDelay(){let e=new p9.Setting(this.settingTab.containerEl).setName(m("features.performanceDelay")).setDesc(m("features.performanceDelayDesc")).addText(t=>{t.inputEl.addClass("number"),t.setValue(u.settings.delay.toString()).onChange(async i=>{let s=parseInt(i);isNaN(s)||(u.settings.delay=s,await u.plugin.saveSettings())})});this.elementsBody.push(e.settingEl)}addNumberOfNodes(){let e=new p9.Setting(this.settingTab.containerEl).setName(m("features.performanceMaxNodes")).setDesc(m("features.performanceMaxNodesDesc")).addText(t=>{t.inputEl.addClass("number"),t.setValue(u.settings.maxNodes.toString()).onChange(async i=>{let s=parseInt(i);isNaN(s)||(u.settings.maxNodes=s,await u.plugin.saveSettings())})});this.elementsBody.push(e.settingEl)}addEnableCSS(){let e=new p9.Setting(this.settingTab.containerEl).setName(m("beta.enableCSS")).setDesc(m("beta.enableCSSDesc")).addToggle(t=>t.setValue(u.settings.enableCSS).onChange(i=>{u.settings.enableCSS=i,u.plugin.saveSettings()})).addSearch(t=>{t.setValue(u.settings.cssSnippetFilename),new f9(t.inputEl,i=>{u.settings.cssSnippetFilename=i,u.plugin.saveSettings()}),t.onChange(i=>{u.settings.cssSnippetFilename=i,u.plugin.saveSettings()})});this.elementsBody.push(e.settingEl)}};var mu=require("obsidian");var s9=class extends e0{constructor(t){super(t,"shapes","",m("features.ids.shapes"),m("features.shapes"),"shapes",m("features.shapesDesc"));this.settingsShape=[]}addBody(){this.settingsShape=[];let t=Object.fromEntries(Object.entries(u.settings.shapeQueries).sort((s,n)=>(s[1].index??0)-(n[1].index??0))),i=Object.keys(t);for(let s of i){let n=this.addShape(s);this.elementsBody.push(n.settingEl),this.settingsShape.push(n)}}addShape(t){return new W8(this.settingTab.containerEl,t,this.moveDown.bind(this),this.moveUp.bind(this))}moveDown(t){let i=this.settingsShape.indexOf(t);if(i>=this.settingsShape.length-1)return;[this.settingsShape[i],this.settingsShape[i+1]]=[this.settingsShape[i+1],this.settingsShape[i]];let s=t.settingEl.nextSibling;this.settingTab.containerEl?.insertAfter(t.settingEl,s),u.settings.shapeQueries[t.shape].index=i+1,u.settings.shapeQueries[this.settingsShape[i].shape].index=i,u.plugin.saveSettings()}moveUp(t){let i=this.settingsShape.indexOf(t);if(i===0)return;[this.settingsShape[i],this.settingsShape[i-1]]=[this.settingsShape[i-1],this.settingsShape[i]];let s=t.settingEl.previousSibling;this.settingTab.containerEl?.insertBefore(t.settingEl,s),u.settings.shapeQueries[t.shape].index=i-1,u.settings.shapeQueries[this.settingsShape[i].shape].index=i,u.plugin.saveSettings()}},W8=class extends mu.Setting{constructor(e,t,i,s){super(e),this.shape=t,this.moveDown=i,this.moveUp=s,this.setName(m(`features.shapesNames.${t}`)).addMoveButtons().addQueryStringDiv().addSVG().addEditButton()}addQueryStringDiv(){return this.queryStringDiv=this.controlEl.createDiv({cls:"query-string"}),this.setQueryText(this.shape,u.settings.shapeQueries[this.shape]),this}addSVG(){let e=We.getSVG(this.shape);return e.addClass("shape-svg"),this.controlEl.appendChild(e),this}addEditButton(){return this.addExtraButton(e=>{e.setTooltip(m("query.editShapeQuery")),e.onClick(()=>{new g9(this.shape,u.settings.shapeQueries[this.shape],this.saveShapeQuery.bind(this)).open()})}),this}addMoveButtons(){let e=this.settingEl.createDiv({cls:"move-buttons"});return new mu.ExtraButtonComponent(e).setIcon("chevron-up").setTooltip(m("controls.moveUp")).onClick(()=>{this.moveUp(this)}),new mu.ExtraButtonComponent(e).setIcon("chevron-down").setTooltip(m("controls.moveDown")).onClick(()=>{this.moveDown(this)}),this.settingEl.insertAdjacentElement("afterbegin",e),this}setQueryText(e,t){this.queryStringDiv.setText(new Hr(t).toString())}saveShapeQuery(e,t){this.setQueryText(e,t),u.settings.shapeQueries[e].combinationLogic=t.combinationLogic,u.settings.shapeQueries[e].rules=t.rules,u.plugin.saveSettings()}};var Em=require("obsidian");var n9=class extends Bt{constructor(e){super(e,"zoom",m("features.ids.zoom"),m("features.zoomOnNode"),"scan-search","")}addBody(){let e=this.settingTab.containerEl,t=new Em.Setting(e).setName(m("features.zoomScale")).setDesc(m("features.zoomScaleDesc")).addSlider(i=>{let s=document.createTextNode(u.settings.zoomFactor.toString());s&&i.sliderEl.parentElement?.insertBefore(s,i.sliderEl),i.setLimits(0,8,.5).setValue(u.settings.zoomFactor).onChange(n=>{u.settings.zoomFactor=n,s&&(s.textContent=u.settings.zoomFactor.toString()),u.plugin.saveSettings()})});t.controlEl.addClass("setting-item-description"),this.elementsBody.push(t.settingEl)}};var En=require("obsidian");var ji=class extends e0{constructor(t,i,s,n,o,a,l,c){super(t,i,s,n,o,a,l);this.noneType="";this.colors=[];this.canBeRecursive=c}addBody(){this.colors=[],this.addNoneTypeSetting(),this.addColorPaletteSetting(),this.addSpecificColorHeaderSetting();for(let t of u.settings.interactiveSettings[this.interactiveKey].colors)this.canBeRecursive&&t.recursive===void 0&&(t.recursive=!1),this.addColor(t);this.addFilterTypeSetting()}addNoneTypeSetting(){this.noneType=u.settings.interactiveSettings[this.interactiveKey].noneType;let t=new En.Setting(this.containerEl).setName(m("features.interactives.noneTypeID")).setDesc(m("features.interactives.noneTypeIDDesc")+this.interactiveKey).addText(i=>i.setValue(u.settings.interactiveSettings[this.interactiveKey].noneType).onChange(async s=>{s=s.trim(),s!=this.noneType&&(u.settings.interactiveSettings[this.interactiveKey].noneType=s,this.noneType=s,await u.plugin.saveSettings())}));this.elementsBody.push(t.settingEl)}addColorPaletteSetting(){this.settingColorPalette=new As(this.containerEl,this.settingTab,this.interactiveKey).setDesc(m("features.interactives.paletteDesc")+this.interactiveKey),this.settingColorPalette.setValue(u.settings.interactiveSettings[this.interactiveKey].colormap),this.settingColorPalette.onPaletteChange(t=>{let i=u.settings.interactiveSettings[this.interactiveKey].colormap;u.settings.interactiveSettings[this.interactiveKey].colormap=t,u.plugin.app.workspace.trigger("extended-graph:settings-colorpalette-changed",this.interactiveKey),u.plugin.saveSettings(),this.settingTab.onCustomPaletteModified(i,t)}),this.elementsBody.push(this.settingColorPalette.settingEl)}addSpecificColorHeaderSetting(){this.settingInteractiveColor=new En.Setting(this.containerEl).setName(m("features.interactives.specificColors")).setDesc(m("features.interactives.specificColorsDesc")).addButton(t=>{Je.setupButton(t,"add"),t.onClick(i=>{let s={type:"",color:h0(Cd()),recursive:this.canBeRecursive?!1:void 0};u.settings.interactiveSettings[this.interactiveKey].colors.push(s),this.addColor(s)})}),this.elementsBody.push(this.settingInteractiveColor.settingEl)}addFilterTypeSetting(){this.settingInteractiveFilter=new En.Setting(this.containerEl).setName(m("features.interactives.selection")).setDesc(m("features.interactives.selectionDesc")).addExtraButton(t=>{t.setIcon("mouse-pointer-click"),t.onClick(()=>{new y9(this.interactiveKey,this.getAllTypes()).open()})}),this.elementsBody.push(this.settingInteractiveFilter.settingEl)}getAllTypes(){let t=new Set,i=u.app.vault.getFiles();for(let s of i)t=new Set([...t,...ct(this.interactiveKey,s)]);return[...t].sort()}addColor(t){let i=new H8(this.containerEl,u.plugin,this.interactiveKey,t,this.isValueValid.bind(this));this.elementsBody.push(i.settingEl),this.colors=this.colors.filter(n=>n.settingEl.parentElement);let s=this.colors.last()??this.settingInteractiveColor;return this.containerEl.insertAfter(i.settingEl,s.settingEl),this.colors.push(i),i}onCustomPaletteModified(t,i){X0(u.settings.interactiveSettings[this.interactiveKey].colormap,u.settings)||(u.settings.interactiveSettings[this.interactiveKey].colormap===t&&X0(i,u.settings)?u.settings.interactiveSettings[this.interactiveKey].colormap=i:u.settings.interactiveSettings[this.interactiveKey].colormap="rainbow"),this.settingColorPalette.populateCustomOptions(),this.settingColorPalette.setValue(u.settings.interactiveSettings[this.interactiveKey].colormap)}},H8=class extends En.Setting{constructor(e,t,i,s,n){super(e),this.plugin=t,this.isValid=n,this.key=i,this.data=s,this.addSearch(a=>{this.textComponent=a;let l=new m9(a.inputEl,u.settings,c=>{this.toggleWarning(),this.save(),l.typeToInclude=this.data.type});switch(l.typeToInclude=this.data.type,i){case ne:l.setKey("link");break;case He:l.setKey("tag");break;case pe:l.setKey("folder");break;default:l.setKey("property",i);break}a.setPlaceholder(i),a.setValue(s.type),a.onChange(c=>{this.toggleWarning(),this.save(),l.typeToInclude=this.data.type})}),this.addColorPicker(a=>{this.colorComponent=a,a.setValue(s.color),a.onChange(l=>{this.updateCSS(),this.save()})}),this.addButton(a=>{(0,En.setIcon)(a.buttonEl,"x"),a.onClick(()=>{this.remove()})});let o=s.recursive;o!==void 0&&this.addToggle(a=>{this.recursiveComponent=a,a.toggleEl.insertAdjacentText("afterend",m("features.recursive")),a.setValue(o),a.onChange(l=>{this.save()})}),this.warningDiv=this.controlEl.createDiv("control-warning"),(0,En.setIcon)(this.warningDiv.createDiv(),"triangle-alert"),this.warningDiv.appendText(m("features.interactives.alreadyExists")),this.warningDiv.addClass("is-hidden"),this.updateCSS(),this.settingEl.addClass("setting-color")}toggleWarning(){let e=this.textComponent.getValue().trim();this.warningDiv.toggleClass("is-hidden",!u.settings.interactiveSettings[this.key].colors.find(t=>t.type===e&&t!==this.data))}save(){let e=this.textComponent.getValue().trim(),t=this.colorComponent.getValue(),i=this.recursiveComponent?.getValue();if(!this.isValid(e))return;let s=this.data.type;this.data.type=e,this.data.color=t,this.data.recursive=i,this.plugin.saveSettings().then(()=>{s!==e&&this.plugin.app.workspace.trigger("extended-graph:settings-interactive-color-changed",this.key,s),this.plugin.app.workspace.trigger("extended-graph:settings-interactive-color-changed",this.key,e)})}updateCSS(){this.settingEl.style.setProperty("--interactive-color",this.colorComponent.getValue())}remove(){u.settings.interactiveSettings[this.key].colors.remove(this.data),u.plugin.saveSettings().then(()=>{u.app.workspace.trigger("extended-graph:settings-interactive-color-changed",this.key,this.data.type)}),this.settingEl.remove()}};var Sm=require("obsidian");var Za=class r extends ji{constructor(e){super(e,"tags",He,m("features.ids.tags"),m("features.interactives.tags"),"tags",m("features.interactives.tagsDesc"),!0)}addBody(){super.addBody(),this.elementsBody.push(new Sm.Setting(this.settingTab.containerEl).setName(m("features.interactives.arcsAdd")).setDesc(m("features.interactives.arcsAddTagDesc")).addToggle(e=>{e.setValue(u.settings.interactiveSettings[this.interactiveKey].showOnGraph),e.onChange(t=>{u.settings.interactiveSettings[this.interactiveKey].showOnGraph=t,u.plugin.saveSettings()})}).settingEl)}isValueValid(e){return/^[^\u2000-\u206F\u2E00-\u2E7F'!"#$%&()*+,.:;<=>?@^`{|}~\[\]\\\s]+/.test(e)}getPlaceholder(){return"tag"}getAllTypes(){return r.getAllTypes()}static getAllTypes(){return Object.keys(u.app.metadataCache.getTags()).map(e=>e.replace("#",""))}};var xo=require("obsidian");var o9=class extends e0{constructor(t){super(t,"properties","",m("features.ids.properties"),m("features.interactives.properties"),"archive",m("features.interactives.propertiesDesc"));this.settingInteractives=[];for(let i of Object.keys(u.settings.additionalProperties))this.settingInteractives.push(new il(i,t,this))}addHeader(){super.addHeader(),this.settingHeader.addButton(t=>{this.addButton=t,Je.setupButton(t,"add"),this.elementsBody.push(t.buttonEl),t.onClick(i=>{t.buttonEl.blur(),this.openModalToAddInteractive()}),this.settingHeader.controlEl.insertAdjacentElement("afterbegin",t.buttonEl)})}addBody(){this.propertiesContainer=this.settingTab.containerEl.createDiv("setting-item settings-properties-container"),this.elementsBody.push(this.propertiesContainer);for(let t of this.settingInteractives)t.containerEl=this.propertiesContainer,t.display()}openModalToAddInteractive(){new v9("Property key",this.addProperty.bind(this)).open()}isKeyValid(t){return u.settings.additionalProperties.hasOwnProperty(t)?(new xo.Notice(m("features.interactives.propertyAlreadyExists")),!1):t===ne?(new xo.Notice(m("features.interactives.propertyReservedLinks")),!1):t===pe?(new xo.Notice(m("features.interactives.propertyReservedFolders")),!1):t===He?(new xo.Notice(m("features.interactives.propertyReservedTags")),!1):rl(t)}addProperty(t){return this.isKeyValid(t)?(u.settings.additionalProperties[t]={graph:!0,localgraph:!0},u.settings.interactiveSettings[t]={colormap:"rainbow",colors:[],unselected:[],excludeRegex:{regex:"",flags:""},noneType:"none",showOnGraph:!0,enableByDefault:!0},u.plugin.saveSettings().then(()=>{let i=new il(t,this.settingTab,this);this.settingInteractives.push(i),i.containerEl=this.propertiesContainer,i.display()}),!0):!1}onCollapse(){this.addButton?.buttonEl.hide()}onExpand(){this.addButton?.buttonEl.show()}onCustomPaletteModified(t,i){for(let s of this.settingInteractives)s.onCustomPaletteModified(t,i)}},il=class r extends ji{constructor(e,t,i){super(t,"property-key",e,"",m("features.interactives.property")+": "+e,"",m("features.interactives.propertyDesc")+e,!1),this.array=i}addHeader(){super.addHeader(),this.settingHeader.addExtraButton(e=>{Je.setupExtraButton(e,"delete"),e.onClick(()=>{this.remove()}),this.settingHeader.controlEl.insertAdjacentElement("afterbegin",e.extraSettingsEl)}),this.settingHeader.settingEl.addClass("setting-property-header"),this.foldIcon.extraSettingsEl.remove()}addBody(){super.addBody(),this.elementsBody.push(new xo.Setting(this.array.propertiesContainer).setName(m("features.interactives.arcsAdd")).setDesc(m("features.interactives.arcsAddPropertyDesc")).addToggle(e=>{e.setValue(u.settings.interactiveSettings[this.interactiveKey].showOnGraph),e.onChange(t=>{u.settings.interactiveSettings[this.interactiveKey].showOnGraph=t,u.plugin.saveSettings()})}).settingEl)}remove(){delete u.settings.additionalProperties[this.interactiveKey],delete u.settings.interactiveSettings[this.interactiveKey],this.array.settingInteractives.remove(this),u.plugin.saveSettings().then(()=>{this.settingHeader.settingEl.remove(),this.elementsBody.forEach(e=>e.remove())})}isValueValid(e){return e.length>0}getPlaceholder(){return"property-key"}getAllTypes(){return r.getAllTypes(this.interactiveKey)??super.getAllTypes()}static getAllTypes(e){if(!N0(!1))return u.app.metadataCache.getFrontmatterPropertyValuesForKey(e)}};var jr=require("obsidian");var Qa=class r extends ji{constructor(e){super(e,"links",ne,m("features.ids.linkTypes"),m("features.interactives.linkTypes"),"link",m("features.interactives.linkTypesDesc"),!1)}addBody(){super.addBody(),this.addExcludeFolders(),this.addDisableSources(),this.addDisableTargets(),this.addShowOnGraph(),this.addMultipleTypes(),this.addCurvedLinks(),this.addOutlineLinks()}addExcludeFolders(){this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.excludeSourceFolders")).setDesc(m("features.excludeSourceFoldersDesc")).addButton(e=>{this.setManageNumber(e,u.settings.excludedSourcesFolder.length),e.onClick(()=>{let t=new yu(u.settings.excludedSourcesFolder);t.open(),t.onClose=()=>this.setManageNumber(e,u.settings.excludedSourcesFolder.length)})}).settingEl),this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.excludeTargetFolders")).setDesc(m("features.excludeTargetFoldersDesc")).addButton(e=>{this.setManageNumber(e,u.settings.excludedTargetsFolder.length),e.onClick(()=>{let t=new yu(u.settings.excludedTargetsFolder);t.open(),t.onClose=()=>this.setManageNumber(e,u.settings.excludedTargetsFolder.length)})}).settingEl)}setManageNumber(e,t){e.setButtonText(`${m("controls.manage")} (${t})`)}addMultipleTypes(){this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.linksAllowMultipleTypes")).setDesc(m("features.linksAllowMultipleTypesDesc")).addToggle(e=>{e.setValue(u.settings.allowMultipleLinkTypes),e.onChange(t=>{u.settings.allowMultipleLinkTypes=t,u.plugin.saveSettings()})}).settingEl)}addDisableSources(){this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.removeSources")).setDesc(m("features.removeSourcesDesc")).addToggle(e=>{e.setValue(u.settings.disableSource),e.onChange(t=>{u.settings.disableSource=t,u.plugin.saveSettings()})}).settingEl)}addDisableTargets(){this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.removeTargets")).setDesc(m("features.removeTargetsDesc")).addToggle(e=>{e.setValue(u.settings.disableTarget),e.onChange(t=>{u.settings.disableTarget=t,u.plugin.saveSettings()})}).settingEl)}addShowOnGraph(){this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.interactives.colorLinks")).setDesc(m("features.interactives.colorLinksDesc")).addToggle(e=>{e.setValue(u.settings.interactiveSettings[this.interactiveKey].showOnGraph),e.onChange(t=>{u.settings.interactiveSettings[this.interactiveKey].showOnGraph=t,u.plugin.saveSettings()})}).settingEl),this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.interactives.displayLinkTypeLabel")).setDesc(m("features.interactives.displayLinkTypeLabelDesc")).addToggle(e=>{e.setValue(u.settings.displayLinkTypeLabel),e.onChange(t=>{u.settings.displayLinkTypeLabel=t,u.plugin.saveSettings()})}).settingEl),this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.interactives.colorLinkTypeLabel")).setDesc(m("features.interactives.colorLinkTypeLabelDesc")).addToggle(e=>{e.setValue(u.settings.colorLinkTypeLabel),e.onChange(t=>{u.settings.colorLinkTypeLabel=t,u.plugin.saveSettings()})}).settingEl)}addCurvedLinks(){this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.interactives.curvedLinks")).setDesc(m("features.interactives.curvedLinksDesc")).addToggle(e=>{e.setValue(u.settings.curvedLinks),e.onChange(t=>{u.settings.curvedLinks=t,u.plugin.saveSettings()})}).settingEl),this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.interactives.curvedFactor")).setDesc(m("features.interactives.curvedFactorDesc")).addSlider(e=>{let t=document.createTextNode(u.settings.curvedFactor.toString());t&&e.sliderEl.parentElement?.insertBefore(t,e.sliderEl),e.setLimits(-2,2,.2).setValue(u.settings.curvedFactor).onChange(i=>{u.settings.curvedFactor=i,u.plugin.saveSettings(),t&&(t.textContent=u.settings.curvedFactor.toString())})}).settingEl)}addOutlineLinks(){this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.linksOutline")).setDesc(m("features.linksOutlineDesc")).addToggle(e=>{e.setValue(u.settings.outlineLinks),e.onChange(t=>{u.settings.outlineLinks=t,u.plugin.saveSettings()})}).settingEl)}isValueValid(e){return rl(e)}getPlaceholder(){return"property-key"}getAllTypes(){return r.getAllTypes()}static getAllTypes(){let e=new Set,t=N0(!1);if(t){for(let i of t.pages())for(let[s,n]of Object.entries(i))if(!(s==="file"||u.settings.imageProperties.contains(s)||ei[ne].includes(s))&&!(n==null||n==="")&&!(!u.settings.canonicalizePropertiesWithDataview&&s===zt(s)&&Object.keys(i).some(o=>zt(o)===zt(s)&&o!==s))&&(typeof n=="object"&&"path"in n&&e.add(u.settings.canonicalizePropertiesWithDataview?zt(s):s),Array.isArray(n)))for(let o of n)o&&typeof o=="object"&&"path"in o&&e.add(u.settings.canonicalizePropertiesWithDataview?zt(s):s)}else for(let i of u.app.vault.getFiles()){let s=u.app.metadataCache.getCache(i.path)?.frontmatterLinks;if(!s)continue;let n=s.map(o=>o.key.split(".")[0]).filter(o=>!u.settings.imageProperties.contains(o)&&!ei[ne].includes(o));e=new Set([...e,...n])}return[...e].sort()}};var x9=require("obsidian");var a9=class extends ji{constructor(e){super(e,"folders",pe,m("features.ids.folders"),m("features.folders"),"folder",m("features.foldersDesc"),!0)}addBody(){super.addBody(),this.addShowFullPath()}addShowFullPath(){this.elementsBody.push(new x9.Setting(this.settingTab.containerEl).setName(m("features.folderShowFullPath")).setDesc(m("features.folderShowFullPathDesc")).addToggle(e=>{e.setValue(u.settings.folderShowFullPath).onChange(async t=>{u.settings.folderShowFullPath=t,await u.plugin.saveSettings()})}).settingEl)}isValueValid(e){return!!this.settingTab.app.vault.getFolderByPath(e)}getPlaceholder(){return"folder/path"}getAllTypes(){let e=new Set,t=this.settingTab.app.vault.getAllFolders(!0);for(let i of t)i.children.filter(n=>n instanceof x9.TFile).length>0&&e.add(i.path);return[...e].sort()}};var Cm=require("obsidian");var As=class extends Cm.Setting{constructor(e,t,i){super(e),this.settingTab=t,this.setName(m("features.interactives.palette")),this.controlEl.addClass("color-palette"),this.canvasPalette=this.controlEl.createEl("canvas"),this.canvasPalette.id=`canvas-palette-${i}`,this.canvasPalette.width=100,this.canvasPalette.height=20,this.addExtraButton(s=>{s.setIcon("pipette"),s.onClick(()=>{let n=new D9;n.onSelected(this.onSelectedFromModal.bind(this)),n.open()})}),this.addDropdown(s=>{this.dropdown=s;for(let[n,o]of Object.entries(vh)){let a=s.selectEl.createEl("optgroup");a.label=n;for(let l of o){let c=a.createEl("option");c.value=l,c.text=l;let h=a.createEl("option");h.value=l+"_r",h.text=l+"_r"}}this.populateCustomOptions(),s.onChange(async n=>{n!==""&&(Na(this.canvasPalette,n,u.settings),this.onPaletteChanged&&this.onPaletteChanged(n))})})}populateCustomOptions(){let e=this.dropdown.selectEl.querySelector(".custom-optgroup")??this.dropdown.selectEl.createEl("optgroup",{cls:"custom-optgroup"});e.label=m("plugin.custom"),e.replaceChildren();for(let t in u.settings.customColorMaps){let i=e.createEl("option");i.value="custom:"+t,i.text=t}}onSelectedFromModal(e){e!==""&&(Na(this.canvasPalette,e,u.settings),this.onPaletteChanged&&this.onPaletteChanged(e),this.dropdown.setValue(e))}setValue(e){Na(this.canvasPalette,e,u.settings),this.dropdown.setValue(e)}onPaletteChange(e){this.onPaletteChanged=e}};var wm=require("obsidian");var Hi=class extends wm.Setting{constructor(e,t,i,s){super(e),t!==""&&this.setName(t),i!==""&&this.setDesc(i),this.addToggle(n=>{n.toggleEl.insertAdjacentText("beforebegin",pu.graph),n.setValue(u.settings.enableFeatures.graph[s]),n.onChange(o=>{u.settings.enableFeatures.graph[s]=o,u.plugin.saveSettings()})}).addToggle(n=>{n.toggleEl.insertAdjacentText("beforebegin",pu.localgraph),n.setValue(u.settings.enableFeatures.localgraph[s]),n.onChange(o=>{u.settings.enableFeatures.localgraph[s]=o,u.plugin.saveSettings()})})}};var Tm=require("obsidian");var $r=class extends Tm.AbstractInputSuggest{constructor(e){super(u.app,e)}getSuggestions(e){return this.getStringSuggestions(e).sort((t,i)=>Ri(t,i)).map(t=>{let i=new RegExp(e,"i").exec(t),s=createDiv();return i&&i[0].length>0?(i.index>0&&s.appendText(t.substring(0,i.index)),s.createEl("strong",{cls:"suggestion-highlight"},n=>n.setText(i[0])),i.index+i[0].lengthnew RegExp(e,"i").exec(s));return[...new Set(i)]}selectSuggestion(e,t){this.setValue(e.innerText),this.callback(e.innerText),this.close()}};var _m=require("obsidian");var b9=class extends _m.AbstractInputSuggest{constructor(e,t,i,s){super(u.app,e),this.instances=t,this.set=i,this.callback=s}getSuggestions(e){switch(this.set){case"nodes":return[...this.instances.nodesSet.extendedElementsMap.keys()].filter(i=>new RegExp(e,"i").exec(i));case"pinned":return[...this.instances.nodesSet.extendedElementsMap.values()].reduce((i,s)=>(s.isPinned&&new RegExp(e,"i").exec(s.id)&&i.push(s.id),i),[]);case"folders":if(!this.instances.foldersSet)return[];let t=this.instances.foldersSet.managers.get(pe);return t?t.getTypesWithoutNone().filter(i=>new RegExp(e,"i").exec(i)):[]}}renderSuggestion(e,t){t.textContent=e}selectSuggestion(e,t){this.setValue(e),this.callback(e),this.close()}};var h9=class extends $r{constructor(t,i){super(t);this.files=[];this.callback=i,this.files=u.app.vault.getAllLoadedFiles()}getStringSuggestions(t){return this.files.reduce((i,s)=>(new RegExp(t,"i").exec(s.path)&&i.push(s.path),i),[])}selectSuggestion(t,i){this.setValue(t.innerText),this.callback(t.innerText),this.close()}};var E9=class extends $r{constructor(t,i){super(t);this.folders=[];this.callback=i,this.folders=u.app.vault.getAllFolders()}getStringSuggestions(t){return this.folders.reduce((i,s)=>(new RegExp(t,"i").exec(s.path)&&i.push(s.path),i),[])}selectSuggestion(t,i){this.setValue(t.innerText),this.callback(t.innerText),this.close()}};var sl=class extends $r{constructor(e,t,i){super(e),this.settings=t,this.callback=i}getStringSuggestions(e){if(!this.key)return[];let t=[];switch(this.key){case"tag":t=Za.getAllTypes();break;case"property":if(!this.propertyKey)return[];let s=il.getAllTypes(this.propertyKey);if(s)t=s;else{let n=u.app.vault.getMarkdownFiles();for(let o of n)t=t.concat([...ct(this.propertyKey,o,this.settings)])}break;case"link":t=Qa.getAllTypes();break;case"folder":case"folderRec":t=u.app.vault.getAllFolders().map(n=>n.path);break;case"file":t=u.app.vault.getFiles().map(n=>n.basename);break;case"path":t=u.app.vault.getFiles().map(n=>n.path);break;default:break}let i=t.filter(s=>new RegExp(e,"i").exec(s));return[...new Set(i)]}setKey(e,t){this.key=e,this.propertyKey=t}selectSuggestion(e,t){this.setValue(e.innerText),this.callback(e.innerText),this.close()}};var m9=class extends sl{renderSuggestion(e,t){super.renderSuggestion(e,t);let i=t.textContent??"",s=[];this.key&&this.key!=="property"?s=u.settings.interactiveSettings[this.key].colors.map(n=>n.type):this.key==="property"&&this.propertyKey&&(s=u.settings.interactiveSettings[this.propertyKey].colors.map(n=>n.type)),i!==this.typeToInclude&&s.contains(i)&&t.addClass("extended-graph-duplicate")}};var Fm=require("obsidian");var S9=class extends Fm.AbstractInputSuggest{constructor(e,t,i){super(u.app,e),this.renderer=t,this.callback=i}getSuggestions(e){return this.renderer.nodes.filter(t=>new RegExp(e,"i").exec(t.id)).map(t=>t.id)}renderSuggestion(e,t){t.textContent=e}selectSuggestion(e,t){this.setValue(e),this.callback(e),this.close()}};var tl=class extends $r{constructor(e,t){super(e),this.callback=t}getStringSuggestions(e){let i=t1(u.settings).filter(s=>new RegExp(e,"i").exec(s));return[...new Set(i)]}selectSuggestion(e,t){this.setValue(e.innerText),this.callback(e.innerText),this.close()}};var C9=class extends tl{getStringSuggestions(e){return super.getStringSuggestions(e).filter(i=>!(i in u.settings.additionalProperties))}};var Am=require("obsidian"),w9=class{constructor(e){this.fontSize=20;this.renderer=e,this.backgroundColor=$e.backgroundColor,this.backgroundColorHex=h0(this.backgroundColor)}createSVG(){this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.options.showFolders&&(this.groupFolders=Qe("g",{id:"folders"}),this.addFolders(),this.svg.appendChild(this.groupFolders)),this.groupLinks=Qe("g",{id:"links"}),this.addLinks(),this.svg.appendChild(this.groupLinks),this.groupNodes=Qe("g",{id:"nodes"}),this.addNodes(),this.svg.appendChild(this.groupNodes),this.options.showNodeNames&&(this.groupText=Qe("g",{id:"texts"}),this.addNodeNames(),this.svg.appendChild(this.groupText));let{xMin:e,xMax:t,yMin:i,yMax:s}=this.getViewBox();this.svg.setAttribute("viewBox",`${e} ${i} ${t-e} ${s-i}`);let n=t-e,o=s-i;this.svg.prepend(Qe("rect",{width:n*1.1,height:o*1.1,x:e-n*.05,y:i-o*.05,fill:this.backgroundColorHex}));let a=this.getDefs();a&&this.svg.prepend(a)}getDefs(){}addNodes(){let e=this.getVisibleNodes();for(let t of e){let i=this.getSVGForNode(t);i&&this.groupNodes.appendChild(i)}}addLinks(){let e=this.getVisibleLinks();for(let t of e){let i=this.getSVGForLink(t);i&&this.groupLinks.appendChild(i)}}addNodeNames(){if(!this.groupText)return;let e=this.getVisibleNodes();for(let t of e){let i=this.getSVGForText(t);i&&this.groupText.appendChild(i)}}addFolders(){}isNodeInVisibleArea(e){if(!this.options.onlyVisibleArea)return!0;let t=structuredClone(this.renderer.viewport),i=e.getSize();return e.x+i>=t.left&&e.x-i<=t.right&&e.y+i>=t.top&&e.y-i<=t.bottom}isLinkInVisibleArea(e){return this.options.onlyVisibleArea?this.isNodeInVisibleArea(e.source)&&this.isNodeInVisibleArea(e.target):!0}getSVGForText(e){if(!this.options.showNodeNames)return null;let t=this.getCoreNode(e),i=Qe("text",{class:"node-name",id:"text:"+e.id,x:t.x,y:t.y+t.getSize()+this.fontSize+4,style:`font-size: ${this.fontSize}px; fill: ${t.text?.style.fill??cn(this.backgroundColor)};`,"text-anchor":"middle"});return i.textContent=this.getText(t),i}getText(e){return e.getDisplayText()}getViewBox(){document.body.appendChild(this.svg);let{xMin:e,xMax:t,yMin:i,yMax:s}=Array.from(this.svg.children).reduce((n,o)=>{let{x:a,y:l,width:c,height:h}=o.getBBox();return(!n.xMin||an.xMax)&&(n.xMax=a+c),(!n.yMin||ln.yMax)&&(n.yMax=l+h),n},{});return document.body.removeChild(this.svg),{xMin:e,xMax:t,yMin:i,yMax:s}}getCoreNode(e){return"coreElement"in e?e.coreElement:e}async toClipboard(){try{let e=this.getModal();e.onClose=async function(){if(e.isCanceled)return;this.options=u.settings.exportSVGOptions,this.createSVG();let t=this.toString();if(this.options.asImage){let i=new Blob([t],{type:"image/svg+xml"});await navigator.clipboard.write([new ClipboardItem({"image/svg+xml":i})])}else await navigator.clipboard.writeText(t);new Am.Notice(m("notices.svgCopied"))}.bind(this),e.open()}catch(e){console.error(e.name,e.message)}}toString(){return new XMLSerializer().serializeToString(this.svg)}},Hu=class extends w9{constructor(e){super(e.renderer),this.instances=e}getDefs(){if(this.options.useModifiedNames&&this.instances.settings.addBackgroundToName){let e=Qe("defs"),t=Qe("filter",{x:"0",y:"0",width:"1",height:"1",id:"textBackground"}),i=Qe("feFlood",{"flood-color":this.backgroundColorHex,result:"bg"}),s=Qe("feMerge"),n=Qe("feMergeNode",{in:"bg"}),o=Qe("feMergeNode",{in:"SourceGraphic"});return s.appendChild(n),s.appendChild(o),t.appendChild(i),t.appendChild(s),e.appendChild(t),e}}getText(e){return this.options.useModifiedNames&&e.text?e.text.text:super.getText(e)}getSVGForText(e){let t=super.getSVGForText(e),i=e.coreElement.text,s=e.coreElement.getSize();if(t&&this.options.useModifiedNames){if(this.instances.settings.addBackgroundToName&&t.setAttribute("filter","url(#textBackground)"),i){let n=typeof i.style.fontFamily=="string"?i.style.fontFamily.split(",")[0].trim():i.style.fontFamily[0].split(",")[0].trim();t.style.setProperty("font-family",n)}if(this.instances.settings.nameVerticalOffset!==0&&i){let n=this.instances.settings.nameVerticalOffset,o=parseInt(t.getAttribute("y")??e.coreElement.y.toString());if(n<-5&&n>-105){let a=-5+(5+n)*s/50;o=o+a}else if(n<=-105){let a=100+n+-2*s;o=o+a}else o=o+n;t.setAttribute("y",(o-this.fontSize*1.5).toString())}}return t}addFolders(){if(!this.groupFolders||!this.instances.foldersSet?.managers.get(pe))return;let i=this.getVisibleFolders();for(let s of i){let n=this.getSVGForFolder(s);this.groupFolders.appendChild(n)}}getSVGForNode(e){let t=Qe("g",{class:"node-group",id:"node:"+e.id}),i=this.getSVGForNodeShape(e);if(t.appendChild(i),this.options.showArcs){let s=this.getSVGForArcs(e);s&&t.appendChild(s)}return t}getSVGForNodeShape(e){let t=e.coreElement,i=t.getSize();if(e.icon?.svg&&this.options.showIcons){let s=e.icon.svg;s.style.stroke=h0(t.getFillColor().rgb),s.style.fill=this.backgroundColorHex;let n=Qe("g",{class:"node-shape",transform:`translate(${t.x-i} ${t.y-i}) scale(${i/s.width.baseVal.value*2})`});return n.appendChild(s),n}else if(e.icon?.emoji&&this.options.showIcons){let s=i*2,n=Qe("text",{class:"node-name",id:"text:"+t.id,x:e.coreElement.x,y:e.coreElement.y+s*.5,style:`font-size: ${s}px;`,"text-anchor":"middle"});return n.textContent=e.icon.emoji,n}else if(this.options.useNodesShapes&&e.graphicsWrapper){let s=Qe("g",{class:"node-shape",transform:`translate(${t.x-i} ${t.y-i}) scale(${i/We.RADIUS})`,fill:h0(t.getFillColor().rgb)}),n=We.getInnerSVG(e.graphicsWrapper?.shape);return s.appendChild(n),s}else return Qe("circle",{class:"node-shape",cx:t.x,cy:t.y,r:i,fill:h0(t.getFillColor().rgb)})}getSVGForArcs(e){let t=e.coreElement;if(t.type==="tag")return null;let i=t.getSize(),s=t.x,n=t.y,o=Qe("g",{class:"arcs"});for(let[a,l]of e.managers){let c=e.graphicsWrapper?.managerGraphicsMap?.get(a);if(!c)continue;let h=Qe("g",{class:"arcs-circle"});for(let[d,p]of c.graphics){let g=p.graphic.alpha,v=c.radius/We.RADIUS*i,C=c.thickness/We.RADIUS*i,w=j8(s,n,v,p.endAngle),k=j8(s,n,v,p.startAngle);if(w.x===k.x&&w.y===k.y){let B=Qe("circle",{class:"arc arc-"+d,cx:t.x,cy:t.y,r:v,opacity:g,"stroke-width":C,stroke:h0(p.color),fill:"none"});h.appendChild(B)}else{let B=p.endAngle-p.startAngle<=Math.PI?"0":"1",L=`M ${w.x} ${w.y} A ${v} ${v} 0 ${B} 0 ${k.x} ${k.y}`,T=Qe("path",{class:"arc arc-"+d,d:L,opacity:g,"stroke-width":C,stroke:h0(p.color),fill:"none"});h.appendChild(T)}}o.appendChild(h)}return o}getSVGForFolder(e){let t=e.BBox,i=Qe("g",{class:"folder-group",id:"folder:"+e.path}),s=Qe("rect",{class:"folder-box",x:t.left,y:t.top,height:t.bottom-t.top,width:t.right-t.left,rx:e.folderStyle.radius,fill:h0(e.color),stroke:h0(e.color),"stroke-width":e.folderStyle.borderWidth,"fill-opacity":e.folderStyle.fillOpacity,"stroke-opacity":e.folderStyle.strokeOpacity}),n=14,o=Qe("text",{class:"folder-name",x:(t.left+t.right)/2,y:t.top+n+2,fill:h0(e.color),"text-anchor":"middle",style:`font-size: ${n}px;`});return o.textContent=e.path,i.appendChild(s),i.appendChild(o),i}getSVGForLink(e){let t=e.coreElement,i;if(this.options.useCurvedLinks){let c={x:t.source.x,y:t.source.y},h={x:t.target.x,y:t.target.y},d={x:-(h.y-c.y),y:h.x-c.x},p={x:(h.x+c.x)*.5,y:(h.y+c.y)*.5},g={x:p.x+.25*d.x,y:p.y+.25*d.y};i=`M ${c.x} ${c.y} C ${g.x} ${g.y}, ${h.x} ${h.y}, ${h.x} ${h.y}`}else i=`M ${t.source.x} ${t.source.y} L ${t.target.x} ${t.target.y}`;let s=e.graphicsWrapper?e.graphicsWrapper.pixiElement.color:t.line?Pi(t.line.tint):0,n=this.instances.renderer.fLineSizeMult*2,o=e.graphicsWrapper?e.graphicsWrapper.pixiElement.alpha:t.line?t.line.alpha:.6,a=Qe("path",{class:"link",id:"link:"+Wt(t),d:i,stroke:h0(s),"stroke-width":n,opacity:o,fill:"none"}),l;if(this.instances.renderer.fShowArrow){let h=this.options.useModifiedArrows&&this.instances.settings.flatArrows?"M 1 0 L -3 -2 L -3 2 Z":"M 1 0 L -3 -2 L -2 0 L -3 2 Z",d=this.options.useCurvedLinks?e.graphicsWrapper?.pixiElement.arrow:e.coreElement.arrow;d&&(l=Qe("path",{id:`arrow:${e.id}`,d:h,fill:h0(s),transform:`translate(${d.x}, ${d.y}) rotate(${d.rotation*180/Math.PI}) scale(${this.instances.engine.renderer.fLineSizeMult*2})`}))}if(l){let c=Qe("g");return c.appendChild(a),c.appendChild(l),c}return a}getVisibleNodes(){return this.instances.renderer.nodes.reduce((e,t)=>{if(t.rendered&&this.isNodeInVisibleArea(t)){let i=this.instances.nodesSet.extendedElementsMap.get(t.id);i&&e.push(i)}return e},[])}getVisibleLinks(){return this.instances.renderer.links.reduce((e,t)=>{if(t.rendered&&this.isLinkInVisibleArea(t)){let i=this.instances.linksSet.extendedElementsMap.get(Wt(t));i&&e.push(i)}return e},[])}getVisibleFolders(){let e=this.getVisibleNodes();return this.instances.foldersSet?[...this.instances.foldersSet.foldersMap.values()].filter(t=>e.some(i=>t.nodes.includes(i.coreElement))):[]}getModal(){return new vu(this.instances)}},ju=class extends w9{constructor(e){super(e.renderer),this.engine=e}getSVGForNode(e){return Qe("circle",{class:"node-shape",id:"node:"+e.id,cx:e.x,cy:e.y,r:e.getSize(),fill:h0(e.getFillColor().rgb)})}getSVGForLink(e){return Qe("path",{class:"link",id:"link:"+Wt(e),d:`M ${e.source.x} ${e.source.y} L ${e.target.x} ${e.target.y}`,stroke:Pf(e.line?.tint??0),"stroke-width":(this.engine.options.lineSizeMultiplier??1)*4,opacity:e.line?.alpha??.6})}getVisibleNodes(){return this.renderer.nodes.filter(e=>e.rendered&&this.isNodeInVisibleArea(e))}getVisibleLinks(){return this.renderer.links.filter(e=>e.rendered&&e.line?.visible&&this.isLinkInVisibleArea(e))}getModal(){return new vu}};var pu={graph:"Global",localgraph:"Local"};var km="extended-graph-delete-button",Im="extended-graph-add-button",Je=class{static setupButton(e,t){switch(t){case"add":e.setClass(Im),e.setIcon("plus"),e.setTooltip(m("controls.add"));break;case"delete":e.setClass(km),e.setIcon("trash-2"),e.setTooltip(m("controls.delete"));break;case"edit":e.setIcon("pencil"),e.setTooltip(m("controls.edit"));break;case"save":e.setIcon("save"),e.setTooltip(m("controls.save"));break;default:break}}static setupExtraButton(e,t){switch(t){case"add":e.extraSettingsEl.addClass(Im),e.setIcon("plus"),e.setTooltip(m("controls.add"));break;case"delete":e.extraSettingsEl.addClass(km),e.setIcon("trash-2"),e.setTooltip(m("controls.delete"));break;case"edit":e.setIcon("pencil"),e.setTooltip(m("controls.edit"));break;case"save":e.setIcon("save"),e.setTooltip(m("controls.save"));break;default:break}}};var T9=require("obsidian"),Bd=class extends T9.Component{constructor(e){super(),this.instances=e,this.root=this.instances.view.contentEl.createDiv(),this.root.addClass("extended-graph-layers"),this.instances.settings.displayLabelsInUI&&this.root.addClass("show-labels"),this.computePosition(),this.onLevelClicked=this.onLevelClicked.bind(this),this.onMouseWheel=this.onMouseWheel.bind(this),this.addToggleButton(),this.addLevels(),this.instances.layersManager?.isEnabled?this.open():this.close()}addToggleButton(){this.toggleButton=new T9.ExtraButtonComponent(this.root),this.toggleButton.setIcon("layers"),this.toggleButton.onClick(()=>{this.instances.layersManager?.isEnabled?this.instances.layersManager.disable():this.instances.layersManager?.enable()})}addLevels(){this.levelsArea=this.root.createDiv("layers"),this.levelsArea.addEventListener("wheel",this.onMouseWheel,{passive:!0})}updateLevels(e){this.levelsArea.innerHTML="";for(let t of e){let i=this.levelsArea.createDiv("layer"),s=i.createDiv("layer-level");if(s.innerText=t.level.toString(),s.addEventListener("click",this.onLevelClicked),this.instances.settings.displayLabelsInUI){let n=i.createDiv("layer-labels");for(let o of t.layers)o.label&&n.createDiv({text:o.label})}}}updateCurrentLevelUI(e){this.activeLayersBorder||(this.activeLayersBorder=this.root.createDiv("active-layers-border"));for(let o of Array.from(this.levelsArea.children))o.removeClass("current");let t=this.levelsArea.children[e],i=this.levelsArea.children[Math.min(this.levelsArea.children.length-1,e+this.instances.settings.numberOfActiveLayers-1)],s=t.getBoundingClientRect().top-this.root.getBoundingClientRect().top,n=this.root.getBoundingClientRect().bottom-i.getBoundingClientRect().bottom;this.activeLayersBorder.style.setProperty("top",s.toString()+"px"),this.activeLayersBorder.style.setProperty("bottom",n.toString()+"px"),t.addClass("current")}onMouseWheel(e){e.deltaY<0?this.instances.layersManager?.decreaseCurrentLevel():this.instances.layersManager?.increaseCurrentLevel()}onLevelClicked(e){e.targetNode?.textContent&&this.instances.layersManager?.setCurrentLevel(parseInt(e.targetNode.textContent))}computePosition(){this.setHeight=this.setHeight.bind(this);let e=this.root.doc.querySelector(".status-bar");e&&(this.statusBarResizeObserver=new ResizeObserver(t=>{for(let i of t)this.setHeight()}),this.statusBarResizeObserver.observe(e)),this.instances.renderer.iframeEl.addEventListener("load",this.setHeight),this.setHeight()}setHeight(){let t=this.root.doc.querySelector(".status-bar")?.getBoundingClientRect().top,i=this.instances.view.containerEl.getBoundingClientRect().bottom,s=t?Math.max(0,i-t)+12:12;this.root.style.setProperty("bottom",s+"px")}open(){this.root.removeClass("is-closed"),this.toggleButton.extraSettingsEl.addClass("is-active"),this.levelsArea.show(),this.activeLayersBorder?.show()}close(){this.root.addClass("is-closed"),this.toggleButton.extraSettingsEl.removeClass("is-active"),this.levelsArea.hide(),this.activeLayersBorder?.hide()}onunload(){this.root.detach(),this.statusBarResizeObserver?.disconnect(),this.instances.renderer.iframeEl.removeEventListener("load",this.setHeight)}};var k0=require("obsidian");var $8=class extends k0.Setting{constructor(t,i,s){super(s);this.isVisible=!0;this.isCollapsed=!1;this.name=t,this.manager=i,this.cssBGColorVariable="--legend-color-rgb",this.cssTextColorVariable="--legend-text-color",this.setName(this.name).setTooltip(this.name).addExtraButton(o=>{this.disableAllButton=o,o.setIcon("x").setTooltip(m("controls.disableAll")+": "+this.name).onClick(()=>{this.disableAll()})}).addExtraButton(o=>{this.enableAllButton=o,o.setIcon("check-check").setTooltip(m("controls.enableAll")+": "+this.name).onClick(()=>{this.enableAll()}).then(a=>{this.enableAllButton.extraSettingsEl.remove()})}).then(o=>{let a=createDiv("and-or-group");this.andButton=new k0.ButtonComponent(a).setButtonText(m("query.AND")).setTooltip(m("query.ANDFilterDesc")).onClick(()=>this.changeCombinationLogic("AND")),this.orButton=new k0.ButtonComponent(a).setButtonText(m("query.OR")).setTooltip(m("query.ORFilterDesc")).onClick(()=>this.changeCombinationLogic("OR")),Bn.getLogicType(this.manager.instances,this.name)==="AND"?this.andButton.setCta():this.orButton.setCta(),this.controlEl.insertAdjacentElement("afterbegin",a)}).setClass(`${this.getClassName(t)}s-row`),this.nameEl.addClass("mod-clickable"),this.nameEl.onclick=()=>{this.toggleCollapse()};let n=this.nameEl.createSpan();(0,k0.setIcon)(n,"chevron-down")}getClassName(t){return"graph-legend-"+c9(t)}changeCombinationLogic(t){if(this.logic===t)return;let i=this.manager.instances.stateData;i&&(i.logicTypes||(i.logicTypes={}),i.logicTypes[this.name]=t,this.manager.instances.engine.render(),this.manager.instances.interactiveEventsDispatcher.onInteractivesLogicChanged(this.name),u.statesManager.onStateNeedsSaving(i,!1)),this.changeCombinationLogicUI(t)}changeCombinationLogicUI(t){this.logic=t,t==="AND"?(this.andButton.setCta(),this.orButton.removeCta()):(this.orButton.setCta(),this.andButton.removeCta())}addLegend(t,i){if(this.controlEl.getElementsByClassName(this.getClassName(t))[0])return;this.addButton(a=>{a.setClass(this.getClassName(t)).setTooltip(t).setClass("graph-legend").setButtonText(t).onClick(()=>{this.toggle(t)}).then(l=>{l.buttonEl.style.setProperty(this.cssBGColorVariable,$e.getCSSSplitRGB(i)),l.buttonEl.style.setProperty(this.cssTextColorVariable,cn(i)),t===this.manager.instances.settings.interactiveSettings[this.name].noneType&&l.buttonEl.addClass("graph-legend-none")})});let n=function(a,l){return Ri(l.className.replace("graph-legend",""),a.className.replace("graph-legend",""))},o=Array.from(this.controlEl.getElementsByClassName("graph-legend")).sort(n);for(let a=o.length-1;a>=0;a--)this.controlEl.appendChild(o[a])}updateLegend(t,i){let s=this.controlEl.getElementsByClassName(this.getClassName(t))[0];s?(s.style.setProperty(this.cssBGColorVariable,$e.getCSSSplitRGB(i)),s.style.setProperty(this.cssTextColorVariable,cn(i))):this.addLegend(t,i)}removeLegend(t){t.forEach(i=>{let s=this.controlEl.getElementsByClassName(this.getClassName(i))[0];s?.parentNode?.removeChild(s)})}toggle(t){let i=this.manager.interactives.get(t);i&&(i.isActive?(this.disableUI(t),this.manager.disable([t]),!this.manager.getTypes().some(n=>this.manager.isActive(n))&&(this.disableAllButton.extraSettingsEl.insertAdjacentElement("afterend",this.enableAllButton.extraSettingsEl),this.disableAllButton.extraSettingsEl.remove())):(this.enableUI(t),this.manager.enable([t]),!this.manager.getTypes().some(n=>!this.manager.isActive(n))&&(this.enableAllButton.extraSettingsEl.insertAdjacentElement("afterend",this.disableAllButton.extraSettingsEl),this.enableAllButton.extraSettingsEl.remove())))}disableUI(t){let i=this.controlEl.getElementsByClassName(this.getClassName(t))[0];i&&i.addClass("is-hidden")}enableUI(t){let i=this.controlEl.getElementsByClassName(this.getClassName(t))[0];i&&i.removeClass("is-hidden")}disableAll(){for(let t of this.manager.getTypes())this.disableUI(t);this.manager.disable(this.manager.getTypes()),this.disableAllButton.extraSettingsEl.insertAdjacentElement("afterend",this.enableAllButton.extraSettingsEl),this.disableAllButton.extraSettingsEl.remove()}enableAll(){for(let t of this.manager.getTypes())this.enableUI(t);this.manager.enable(this.manager.getTypes()),this.enableAllButton.extraSettingsEl.insertAdjacentElement("afterend",this.disableAllButton.extraSettingsEl),this.enableAllButton.extraSettingsEl.remove()}toggleVisibility(){this.isVisible?this.hide():this.show()}show(){this.settingEl.removeClass("is-hidden"),this.isVisible=!0}hide(){this.settingEl.addClass("is-hidden"),this.isVisible=!1}toggleCollapse(){this.isCollapsed?this.expend():this.collapse();let t=u.statesManager.getStateDataById(this.manager.instances.settings.startingStateID);t&&(this.isCollapsed?(t.collapsedLegendRows||(t.collapsedLegendRows=[]),t.collapsedLegendRows?.push(this.name)):t.collapsedLegendRows?.remove(this.name)),t&&u.statesManager.onStateNeedsSaving(t,!1)}collapse(){this.settingEl.addClass("is-collapsed"),this.isCollapsed=!0}expend(){this.settingEl.removeClass("is-collapsed"),this.isCollapsed=!1}},Rd=class extends k0.Component{constructor(e){super(),this.instances=e,this.createToggleButton(),this.createRootPanel()}createToggleButton(){let e=this.instances.view.contentEl.querySelector(".graph-controls");this.toggleButton=new k0.ExtraButtonComponent(e).setTooltip(m("controls.openLegend")).setIcon("tags").onClick(()=>{this.isOpen?this.close():this.open()}).then(t=>{t.extraSettingsEl.addClasses(["graph-controls-button","mod-legend"])})}createRootPanel(){this.legendRows=new Map,this.root=this.instances.view.contentEl.createDiv("graph-legend-container"),this.instances.settings.horizontalLegend&&this.root.addClass("horizontal-layout"),this.rowsDiv=this.root.createDiv("graph-legend-rows");let e=createDiv("graph-legend-hide-rows-container"),t=u.statesManager.getStateDataById(this.instances.settings.startingStateID);for(let[i,s]of this.instances.interactiveManagers){if(i===pe)continue;let n=new $8(i,s,this.rowsDiv),o=createSpan();(0,k0.setIcon)(o,"eye");let a=new k0.ButtonComponent(e),l={row:n,visibilityButton:{cb:a,eyeIcon:o}};this.legendRows.set(i,l),a.setButtonText(i).setTooltip(m("controls.hideRow")+": "+i,{placement:"top"}).onClick(()=>{this.toggleVisibility(l,t)}).then(c=>{l.visibilityButton={cb:c,eyeIcon:o},c.buttonEl.prepend(o)}),t?.hiddenLegendRows?.contains(i)&&l.row.hide(),t?.collapsedLegendRows?.contains(i)&&l.row.collapse()}this.root.appendChild(e),u.settings.collapseLegend?this.close():this.open()}toggleVisibility(e,t){e.row.toggleVisibility(),e.visibilityButton.cb.buttonEl.toggleClass("is-inactive",!e.row.isVisible),(0,k0.setIcon)(e.visibilityButton.eyeIcon,e.row.isVisible?"eye":"eye-off"),t&&(e.row.isVisible?t.hiddenLegendRows?.remove(e.row.name):(t.hiddenLegendRows||(t.hiddenLegendRows=[]),t.hiddenLegendRows?.push(e.row.name)),u.statesManager.onStateNeedsSaving(t,!1))}onunload(){this.root.remove(),this.toggleButton.extraSettingsEl.remove()}update(e,t,i){this.legendRows.get(e)?.row.updateLegend(t,i)}add(e,t,i){this.legendRows.get(e)?.row.addLegend(t,i)}remove(e,t){this.legendRows.get(e)?.row.removeLegend(t)}toggle(e,t){this.legendRows.get(e)?.row.toggle(t)}disableUI(e,t){this.legendRows.get(e)?.row.disableUI(t)}enableUI(e,t){this.legendRows.get(e)?.row.enableUI(t)}enableAllUI(e){this.legendRows.get(e)?.row.manager.getTypes().forEach(t=>{this.legendRows.get(e)?.row.enableUI(t)})}disableAllUI(e){this.legendRows.get(e)?.row.manager.getTypes().forEach(t=>{this.legendRows.get(e)?.row.disableUI(t)})}updateUIFromState(){if(this.instances.stateData){if(this.instances.stateData.hiddenLegendRows)for(let[e,t]of this.legendRows)this.instances.stateData.hiddenLegendRows.includes(e)?(t.row.hide(),t.visibilityButton.cb.buttonEl.addClass("is-inactive"),(0,k0.setIcon)(t.visibilityButton.eyeIcon,"eye-off")):(t.row.show(),t.visibilityButton.cb.buttonEl.removeClass("is-inactive"),(0,k0.setIcon)(t.visibilityButton.eyeIcon,"eye"));if(this.instances.stateData.collapsedLegendRows)for(let[e,t]of this.legendRows)this.instances.stateData.collapsedLegendRows.includes(e)?t.row.collapse():t.row.expend();for(let[e,t]of this.legendRows)t.row.changeCombinationLogicUI(Bn.getLogicType(this.instances,e))}}open(){this.root.removeClass("is-closed"),this.toggleButton.extraSettingsEl.addClass("is-active"),this.isOpen=!0,u.settings.collapseLegend=!1,u.plugin.saveSettings()}close(){this.root.addClass("is-closed"),this.toggleButton.extraSettingsEl.removeClass("is-active"),this.isOpen=!1,u.settings.collapseLegend=!0,u.plugin.saveSettings()}};var Do=require("obsidian");var $u=class extends Do.Component{constructor(e){super(),this.view=e,this.graphControlsEl=this.view.contentEl.querySelector(".graph-controls"),this.graphControlsEl.addClass("graph-controls-extended-graph"),this.graphControlsEl.createEl("hr").addClass("separator-exended-graph"),this.createEnableButton(),this.createResetButton()}createEnableButton(){this.buttonEnable=new Do.ExtraButtonComponent(this.graphControlsEl).setTooltip(`${m("controls.enable")} ${m("plugin.name")}`,{placement:"top"}).onClick(()=>{this.enabled?u.graphsManager.disablePlugin(this.view):u.graphsManager.enablePlugin(this.view)}).then(e=>{(0,Do.setIcon)(e.extraSettingsEl,"git-fork-sparkles"),e.extraSettingsEl.addClasses(["graph-controls-button","mod-extended-graph-toggle"])})}createResetButton(){this.buttonReset=new Do.ExtraButtonComponent(this.graphControlsEl).setTooltip(m("controls.resetGraph")).setIcon("rotate-ccw").onClick(()=>{this.enabled&&u.graphsManager.resetPlugin(this.view)}).then(e=>{e.extraSettingsEl.addClasses(["graph-controls-button","mod-extended-graph-reset"]),e.extraSettingsEl.remove()})}setEnableUIState(){this.enabled=!0,this.buttonEnable.extraSettingsEl.addClass("is-active"),this.buttonEnable.setTooltip(`${m("controls.disable")} ${m("plugin.name")}`,{placement:"top"}),this.graphControlsEl.insertAfter(this.buttonReset.extraSettingsEl,this.buttonEnable.extraSettingsEl)}setDisableUIState(){this.enabled=!1,this.buttonEnable.extraSettingsEl.removeClass("is-active"),this.buttonEnable.setTooltip(`${m("controls.enable")} ${m("plugin.name")}`,{placement:"top"}),this.buttonReset.extraSettingsEl.remove()}enableUI(){this.buttonEnable.setDisabled(!1),this.buttonReset.setDisabled(!1)}disableUI(){this.buttonEnable.setDisabled(!0),this.buttonReset.setDisabled(!0)}};var Lm=require("obsidian");var q8=class r extends Lm.Menu{constructor(t,i,s,n){super();this.radialSubmenus=new Map;this.menuManager=t,this.level=s,this.parentMenu=n??null,this.dom.addClass("extended-graph-radial-menu"),s>0&&(this.dom.addClass("mod-submenu"),this.dom.style.setProperty("--submenu-level",s.toString())),this.setItems(i),this.setCentralItem()}showAtMouseEvent(t){return this.position={x:t.clientX,y:t.clientY},super.showAtMouseEvent(t)}showAtPosition(t,i){this.position=t;let s=super.showAtPosition(t,i);return s.dom.style.left=t.x+"px",s.dom.style.top=t.y+"px",s}onClick(t){t.items&&t.items.length>0?this.showNestedMenu(t):t.onClick&&t.onClick()}onMouseEnter(t,i){let s=t.targetNode,n=createDiv("tooltip extended-graph-tooltip");n.setText(i.title),this.dom.doc.body.appendChild(n);let o=s.getBoundingClientRect();n.style.left=`${o.left+o.width*.5+10}px`,n.style.top=`${t.clientY+10}px`,i.onMouseEnter&&i.onMouseEnter()}onMouseLeave(t,i){this.dom.doc.body.querySelectorAll(".tooltip.extended-graph-tooltip").forEach(s=>s.detach()),i.onMouseLeave&&i.onMouseLeave()}onClickCenter(){this.parentMenu?this.switchWhithMenu(this.parentMenu):this.hide()}setItems(t){let i=this.onClick.bind(this),s=this.onMouseEnter.bind(this),n=this.onMouseLeave.bind(this);for(let o=0;o{let c=cn(this.menuManager.instances.cssBridge.getThemeColor(a.color),"dark","light")==="dark"?"100%":"0%";l.dom.style.setProperty("--dark-text-interp",c),l.dom.style.setProperty("--color-rgb",`var(--color-${a.color}-rgb)`),l.dom.style.setProperty("--rotation",`${-22.5+(o-1)*45}deg`),l.setTitle(a.title.slice(0,Math.min(3,a.title.length)).toUpperCase()).setIcon(a.icon).onClick(()=>{i(a)}),l.dom.addEventListener("mouseenter",d=>s(d,a)),l.dom.addEventListener("mouseleave",d=>n(d,a));let h=a.items;h&&h.length>0&&this.radialSubmenus.set(a.id,new r(this.menuManager,h,this.level+1,this))})}this.onMenuClick=function(o){var a=o.targetNode;a&&a.instanceOf(Element)&&(a.matchParent(".menu-item")||a.hasClass(".menu-item"))||this.hide()}}setCentralItem(){let t=this.onClickCenter.bind(this);this.addItem(i=>{i.dom.addClass("back"),this.level>0?i.setIcon("undo-2"):i.setIcon("x"),i.onClick(t)})}showNestedMenu(t){let i=this.radialSubmenus.get(t.id);i&&this.switchWhithMenu(i)}switchWhithMenu(t){this.position||(this.position=this.dom.getBoundingClientRect());let i=this.parentMenu;this.close(),this.parentMenu=i,this.menuManager.setCurrentMenu(t),t.showAtPosition({x:this.position.x,y:this.position.y})}close(){this.dom.doc.body.querySelectorAll(".tooltip.extended-graph-tooltip").forEach(t=>t.detach()),super.close()}},Ud=class{constructor(e,t,i){this.instances=e,this.nodeID=t,this.nodeType=i,this.populateItems(),this.menu=new q8(this,this.allItems,0)}open(e){let t=this.instances.renderer.nodes.find(i=>i.id===this.nodeID);if(t?.circle){let i=this.instances.renderer.interactiveEl.getBoundingClientRect(),s=t.circle.getGlobalPosition();this.menu.showAtPosition({x:s.x/window.devicePixelRatio+i.left,y:s.y/window.devicePixelRatio+i.top});return}else e&&this.menu.showAtPosition({x:e.clientX,y:e.clientY})}populateItems(){if(this.allItems=[{id:"info",title:"Info",icon:"info",color:"blue",onClick:this.onShowInfo.bind(this)},{id:"pin",title:"Pin",icon:this.instances.nodesSet.isNodePinned(this.nodeID)?"pin-off":"pin",color:"red",onClick:this.onPin.bind(this)}],this.instances.settings.enableFeatures[this.instances.type].links&&(this.getInteractivesTypes(ne)?.size??0)>0&&this.allItems.push({id:"links",title:"Links",icon:"link",color:"orange",onMouseEnter:()=>this.onShowInteractive(ne),onMouseLeave:this.clearInteractivesList.bind(this)}),this.instances.settings.enableFeatures[this.instances.type].folders&&(this.getInteractivesTypes(pe)?.size??0)>0&&this.allItems.push({id:"folders",title:"Folders",icon:"folder",color:"green",onMouseEnter:()=>this.onShowInteractive(pe),onMouseLeave:this.clearInteractivesList.bind(this)}),(this.nodeType===""||this.nodeType==="focused")&&(this.instances.settings.enableFeatures[this.instances.type].tags&&(this.getInteractivesTypes(He)?.size??0)>0&&this.allItems.push({id:"tags",title:"Tags",icon:"tags",color:"pink",onMouseEnter:()=>this.onShowInteractive(He),onMouseLeave:this.clearInteractivesList.bind(this)}),this.instances.settings.enableFeatures[this.instances.type].properties)){let e={id:"properties",title:"Properties",icon:"archive",color:"purple",items:[]},t=["red","orange","yellow","green","cyan","blue","purple","pink"],i=0;for(let[s,n]of Object.entries(this.instances.settings.additionalProperties))if(n[this.instances.type]&&(this.getInteractivesTypes(s)?.size??0)>0){let o={id:s,title:s,icon:"",color:t[i%t.length],items:[],onMouseEnter:()=>this.onShowInteractive(s),onMouseLeave:this.clearInteractivesList.bind(this)};e.items?.push(o),++i}e.items&&e.items.length>0&&this.allItems.push(e)}}setCurrentMenu(e){this.clearInteractivesList(),this.menu=e}onShowInfo(){let e=new Bs(this.instances);e.setTarget("nodes",this.nodeID),e.open()}onPin(){this.instances.nodesSet.isNodePinned(this.nodeID)?this.instances.graphEventsDispatcher.inputsManager.unpinNodeFromId(this.nodeID):this.instances.graphEventsDispatcher.inputsManager.pinNodeFromId(this.nodeID),this.menu.close()}onShowInteractive(e){let t=this.instances.interactiveManagers.get(e);if(!t)return;let i=this.getInteractivesTypes(e);if(!i||i.size===0)return;this.clearInteractivesList();let s=this.menu.dom.createDiv("interactives-list");for(let n of i){let o=t.getColor(n.id??n.text),a=s.createDiv("interactive-item");a.textContent=n.text,a.style.setProperty("--bg-color",$e.getCSSSplitRGB(o)),a.style.setProperty("--text-color",cn(o)),a.toggleClass("is-hidden",!!n.id&&!t.isActive(n.id))}}getInteractivesTypes(e){return e===pe?this.getFoldersInteractivesTypes():e===ne?this.getLinksInteractivesTypes():this.getNodesInteractivesTypes(e)}getNodesInteractivesTypes(e){let t=this.instances.nodesSet.extendedElementsMap.get(this.nodeID);if(!t||!this.instances.nodesSet.managers.get(e))return;let s=[...t.getTypes(e)].reduce((n,o)=>(o!==this.instances.settings.interactiveSettings[e].noneType&&n.push({text:o}),n),[]);return new Set(s)}getFoldersInteractivesTypes(){if(!this.instances.foldersSet||!this.instances.foldersSet.managers.get(pe))return;let i=[...this.instances.foldersSet.foldersMap.values()].filter(s=>s.nodes.find(n=>n.id===this.nodeID)).reduce((s,n)=>(n.path!==this.instances.settings.interactiveSettings[pe].noneType&&s.push({text:n.path}),s),[]);return new Set(i)}getLinksInteractivesTypes(){if(!this.instances.linksSet.managers.get(ne))return;let t=[...this.instances.linksSet.extendedElementsMap.values()].filter(n=>n.coreElement.source.id===this.nodeID||n.coreElement.target.id===this.nodeID),i={};for(let n of t){let o=n.getTypes(ne);for(let a of o)a in i||(i[a]={forward:0,reverse:0}),this.nodeID===n.coreElement.source.id&&i[a].forward++,this.nodeID===n.coreElement.target.id&&i[a].reverse++}let s=Object.entries(i).map(([n,o])=>({text:`${n} (${o.forward} \u2192, ${o.reverse} \u2190)`,id:n}));return new Set(s)}clearInteractivesList(){this.menu.dom.querySelector(".interactives-list")?.detach()}};var nl=require("obsidian");var Od=class extends nl.Component{constructor(e){super(),this.instances=e,this.root=this.instances.view.contentEl.createDiv(),this.root.addClass("graph-states-container");let t=this.instances.view.contentEl.querySelector(".graph-controls");this.toggleButton=new nl.ExtraButtonComponent(t).setTooltip(m("states.openSettings")).setIcon("eye").onClick(()=>{this.isOpen?this.close():this.open()}).then(i=>{i.extraSettingsEl.addClasses(["graph-controls-button","mod-states"])}),this.addStateSetting(),this.currentStateID=this.selectState.getValue(),this.instances.stateData=u.statesManager.getStateDataById(this.currentStateID),u.settings.collapseState?this.close():this.open()}addStateSetting(){this.stateSetting=new nl.Setting(this.root).setName(m("states.states")).addDropdown(e=>{this.selectState=e,e.onChange(t=>{this.currentStateID=t,this.instances.stateData=u.statesManager.getStateDataById(this.currentStateID),this.displaySaveDeleteButton(),this.instances.graphEventsDispatcher.changeState(t)})}).addExtraButton(e=>{this.editButton=e,Je.setupExtraButton(e,"edit"),e.onClick(()=>{this.editButton.extraSettingsEl.blur(),this.openModalToRenameState()})}).addExtraButton(e=>{this.addButton=e,Je.setupExtraButton(e,"add"),e.onClick(()=>{this.addButton.extraSettingsEl.blur(),this.openModalToAddState()})}).addExtraButton(e=>{this.saveButton=e,Je.setupExtraButton(e,"save"),e.onClick(()=>{u.statesManager.saveState(this.instances,this.selectState.getValue())})}).addExtraButton(e=>{this.deleteButton=e,Je.setupExtraButton(e,"delete"),e.onClick(()=>{u.statesManager.deleteState(this.selectState.getValue())})})}onunload(){this.root.remove(),this.toggleButton.extraSettingsEl.remove()}openModalToAddState(){new xu(m("states.newStateName"),this.newState.bind(this)).open()}openModalToRenameState(){let e=this.instances.stateData;e&&new xu(m("states.editStateName"),this.renameState.bind(this),e.name).open()}addOption(e,t){for(let i=0;i{this.addOption(e.id,e.name)}),u.settings.states.find(e=>e.id===this.currentStateID)?this.setValue(this.currentStateID):(this.currentStateID=this.selectState.getValue(),this.instances.stateData=u.statesManager.getStateDataById(this.currentStateID),this.displaySaveDeleteButton())}setValue(e){this.currentStateID=e,this.instances.stateData=u.statesManager.getStateDataById(this.currentStateID),this.selectState.setValue(e),this.displaySaveDeleteButton()}clear(){for(let e=this.selectState.selectEl.length;e>=0;e--)this.selectState.selectEl.remove(e)}displaySaveDeleteButton(){this.selectState.getValue()!==Jr?(this.stateSetting.settingEl.append(this.editButton.extraSettingsEl),this.stateSetting.settingEl.append(this.saveButton.extraSettingsEl),this.stateSetting.settingEl.append(this.deleteButton.extraSettingsEl)):(this.editButton.extraSettingsEl.remove(),this.saveButton.extraSettingsEl.remove(),this.deleteButton.extraSettingsEl.remove())}open(){this.root.removeClass("is-closed"),this.toggleButton.extraSettingsEl.addClass("is-active"),this.isOpen=!0,u.settings.collapseState=!1,u.plugin.saveSettings()}close(){this.root.addClass("is-closed"),this.toggleButton.extraSettingsEl.removeClass("is-active"),this.isOpen=!1,u.settings.collapseState=!0,u.plugin.saveSettings()}};var Mm=require("obsidian");var qu=class extends Mm.Component{constructor(e){super(),this.view=e,this.graphControls=e.contentEl.querySelector(".graph-controls"),this.sectionSettings=new _9(e)}onPluginEnabled(e){this.instances=e,this.sectionSettings.onPluginEnabled(e)}onPluginDisabled(){this.sectionSettings.onPluginDisabled()}};var Du=require("obsidian"),ol=class extends Du.Component{constructor(e,t,i){super(),this.view=e,this.graphControls=e.contentEl.querySelector(".graph-controls"),this.root=this.graphControls.createDiv(`tree-item graph-control-section mod-extended-graph-${t}`);let s=this.root.createDiv("tree-item-self mod-collapsible");this.collapseIcon=s.createDiv("tree-item-icon collapse-icon is-collapsed"),(0,Du.setIcon)(this.collapseIcon,"right-triangle");let n=s.createDiv("tree-item-header-icon");(0,Du.setIcon)(n,"git-fork-sparkles");let a=s.createDiv("tree-item-inner").createEl("header",{cls:"graph-control-section-header",text:i});s.onClickEvent(()=>{this.isCollapsed?this.openGraphControlSection():this.collapseGraphControlSection()})}onPluginEnabled(e){this.instances=e,this.display(!0)}onPluginDisabled(){this.instances=void 0,this.display(!1)}onunload(){this.root.parentNode?.removeChild(this.root)}openGraphControlSection(){this.root.removeClass("is-collapsed"),this.root.appendChild(this.treeItemChildren),this.collapseIcon.removeClass("is-collapsed"),this.isCollapsed=!1}collapseGraphControlSection(){this.root.addClass("is-collapsed"),this.treeItemChildren&&this.root.removeChild(this.treeItemChildren),this.collapseIcon.addClass("is-collapsed"),this.isCollapsed=!0}};var sr=require("obsidian");var _9=class extends ol{constructor(t){super(t,"options",m("plugin.options"));this.selectionModeButtons={};this.treeItemChildren=this.root.createDiv("tree-item-children"),this.display(!0),this.collapseGraphControlSection()}display(t){this.treeItemChildren.replaceChildren(),t&&this.createImportConfig(),this.createSaveForDefaultState(),t&&this.createSaveForNormalState(),this.createZoomOnNode(),this.createScreenshot(),t&&this.createButtonViewState(),t&&this.createPinMultipleNodes(),t&&this.createUnpinAllNodes(),t&&this.createSelectionModes()}createImportConfig(){return new sr.Setting(this.treeItemChildren).setName(m("controls.importSettingsAndReload")).addExtraButton(t=>{t.setIcon("settings"),t.setTooltip(m("controls.importSettings")),t.onClick(()=>{new Ja(s=>{s.trim()!==""&&u.plugin.importSettings(s).then(()=>{u.graphsManager.resetPlugin(this.view,!1)})}).open()})})}createSaveForDefaultState(){return new sr.Setting(this.treeItemChildren).setName(m("states.saveForDefaultState")).setTooltip(m("states.saveForDefaultStateDesc")).addExtraButton(t=>{t.extraSettingsEl.addClass("save-button"),(0,sr.setIcon)(t.extraSettingsEl,"arrow-up-to-line"),t.onClick(()=>{u.statesManager.saveForDefaultState(this.view)})})}createSaveForNormalState(){return new sr.Setting(this.treeItemChildren).setName(m("states.saveForNormalState")).setDesc(m("states.saveForNormalStateDesc")).setTooltip(m("states.saveForNormalStateTooltip")).addExtraButton(t=>{t.extraSettingsEl.addClass("save-button"),(0,sr.setIcon)(t.extraSettingsEl,"arrow-down-to-line"),t.onClick(()=>{u.statesManager.saveForNormalState(this.view)})})}createScreenshot(){return new sr.Setting(this.treeItemChildren).setName(m("features.svgScreenshotCopy")).addExtraButton(t=>{t.extraSettingsEl.addClass("screenshot-button"),(0,sr.setIcon)(t.extraSettingsEl,"image"),t.onClick(()=>{u.graphsManager.getSVGScreenshot(this.view)})})}createZoomOnNode(){return new sr.Setting(this.treeItemChildren).setName(m("features.zoomOnNode")).addSearch(t=>{let i=s=>{u.graphsManager.zoomOnNode(this.view,s)};this.suggester=new S9(t.inputEl,this.view.renderer,i)})}createButtonViewState(){return new sr.Setting(this.treeItemChildren).setName(m("states.showGraphState")).addExtraButton(t=>{t.setIcon("info"),t.onClick(()=>{u.statesManager.showGraphState(this.view)})})}createPinMultipleNodes(){return new sr.Setting(this.treeItemChildren).setName(m("features.pinMultipleNodes")).addExtraButton(t=>{t.extraSettingsEl.addClass("extended-graph-pin"),t.setIcon("pin"),t.onClick(()=>{let i=u.graphsManager.allInstances.get(this.view.leaf.id);if(!i)return;let s=new yt(i);new F9(this.instances?.settings??u.settings,(o,a)=>{s.pinInShape(o,a)}).open()})})}createUnpinAllNodes(){return new sr.Setting(this.treeItemChildren).setName(m("features.unpinAllNodes")).addExtraButton(t=>{t.extraSettingsEl.addClass("extended-graph-pin-off"),t.setIcon("pin-off"),t.onClick(()=>{let i=u.graphsManager.allInstances.get(this.view.leaf.id);if(!i)return;new yt(i).unpinAllNodes()})})}createSelectionModes(){if(!this.instances)return;let t=[{mode:"replace",tooltip:m("inputs.selectionModeReplaceTooltip"),icon:"square"},{mode:"add",tooltip:m("inputs.selectionModeAddTooltip"),icon:"squares-unite"},{mode:"subtract",tooltip:m("inputs.selectionModeSubtractTooltip"),icon:"squares-subtract"},{mode:"intersect",tooltip:m("inputs.selectionModeIntersectTooltip"),icon:"squares-intersect"}],i=new sr.Setting(this.treeItemChildren).setName(m("inputs.selectionMode"));for(let s of t)i.addExtraButton(n=>{this.selectionModeButtons[s.mode]=n,n.setIcon(s.icon),n.setTooltip(s.tooltip),n.onClick(()=>{this.instances&&(this.instances.settings.selectionMode=s.mode,Object.entries(this.selectionModeButtons).forEach(o=>{o[0]===s.mode?o[1].extraSettingsEl.addClass("is-active"):o[1].extraSettingsEl.removeClass("is-active")}))})});return this.selectionModeButtons[this.instances.settings.selectionMode]?.extraSettingsEl.addClass("is-active"),i}};var A9=require("obsidian");var Gd=class extends ol{constructor(t,i){super(t.view,"folders",m("features.folders"));this.settingsMap=new Map;this.foldersManager=i,this.instances=t,this.treeItemChildren=this.root.createDiv("tree-item-children"),this.collapseGraphControlSection()}destroy(){this.root.remove()}display(){this.treeItemChildren.replaceChildren(),this.addToggleAllButton(),this.addToggleAllWithAtLeastOneNodeButton(),this.createFolders()}addToggleAllButton(){new A9.Setting(this.treeItemChildren).setName(m("controls.toggleAll")).addExtraButton(t=>{t.setIcon("x").setTooltip(m("controls.disableAll")+": "+m("plugin.folder")).onClick(()=>{this.instances?.foldersSet?.disableAll()})}).addExtraButton(t=>{t.setIcon("check-check").setTooltip(m("controls.enableAll")+": "+m("plugin.folder")).onClick(()=>{this.instances?.foldersSet?.enableAll()})})}addToggleAllWithAtLeastOneNodeButton(){new A9.Setting(this.treeItemChildren).setName(m("controls.toggleAll")).setDesc(m("controls.toggleAllWithMoreThanOneNode")).addExtraButton(t=>{t.setIcon("x").setTooltip(m("controls.disableAll")+": "+m("plugin.folder")).onClick(()=>{this.instances?.foldersSet?.disableAllWithAtLeastOneNode()})}).addExtraButton(t=>{t.setIcon("check-check").setTooltip(m("controls.enableAll")+": "+m("plugin.folder")).onClick(()=>{this.instances?.foldersSet?.enableAllWithAtLeastOneNode()})})}createFolders(){let t=this.foldersManager?.getTypesWithoutNone();if(t)for(let i of t)this.add(pe,i,this.foldersManager.getColor(i))}update(t,i,s){this.settingsMap.get(i)?.setting.settingEl.style.setProperty("--folder-color-rgb",$e.getCSSSplitRGB(s))}add(t,i,s){let n=new A9.Setting(this.treeItemChildren);n.setName(i).addToggle(o=>{o.setValue(this.foldersManager.isActive(i)),o.onChange(a=>{a!==this.foldersManager.isActive(i)&&this.toggle(t,i)}),this.settingsMap.set(i,{setting:n,toggle:o})}),this.update(t,i,s)}remove(t,i){for(let s of i){let n=this.settingsMap.get(s);s&&(n?.setting.settingEl.remove(),this.settingsMap.delete(s))}}toggle(t,i){this.foldersManager.isActive(i)?this.foldersManager.disable([i]):this.foldersManager.enable([i])}enableUI(t,i){this.settingsMap.get(i)?.toggle.setValue(!0)}disableUI(t,i){this.settingsMap.get(i)?.toggle.setValue(!1)}enableAllUI(t){for(let[i,s]of this.settingsMap)s.toggle.setValue(!0)}disableAllUI(t){for(let[i,s]of this.settingsMap)s.toggle.setValue(!1)}};var k9=require("obsidian");var v9=class extends k9.Modal{constructor(e,t){super(u.app),this.setTitle(e),this.modalEl.addClass("graph-modal-new"),this.callback=t,this.scope.register(null,"Enter",i=>{this.callback(this.input.getValue())&&this.close()})}onOpen(){new k9.Setting(this.contentEl).addSearch(e=>{this.input=e,new C9(e.inputEl,t=>{})}).addButton(e=>{Je.setupButton(e,"add"),e.buttonEl.addEventListener("click",t=>{this.callback(this.input.getValue())&&this.close()})})}onClose(){this.contentEl.empty()}};var Is=require("obsidian");var yu=class extends Is.Modal{constructor(e){super(u.app),this.initialFolders=e,this.folders=structuredClone(e),this.setTitle(m("features.excludedFolders")),this.modalEl.addClass("graph-modal-exclude-folders")}onOpen(){this.messageP=this.contentEl.createEl("p"),this.filtersDiv=this.contentEl.createDiv(),this.addNewFilterSetting(),this.addButtonContainer(),this.updateMessage(),this.addFilters()}updateMessage(){this.messageP.textContent=this.folders.length===0?m("features.noExclusionFilter"):m("features.withExclusionFilter")}addFilters(){this.filtersDiv.replaceChildren();for(let e of this.folders)this.addFilter(e)}addFilter(e){this.filtersDiv.createDiv("mobile-option-setting-item",t=>{t.createSpan({cls:"mobile-option-setting-item-name",text:e},s=>{Nm(e)&&s.createSpan({text:"Regex",cls:"flair mod-flat"})});let i=new Is.ExtraButtonComponent(t);i.extraSettingsEl.addClass("mobile-option-setting-item-option-icon"),i.setIcon("lucide-x"),i.setTooltip(m("controls.delete")),i.onClick(()=>{this.folders.remove(e),this.addFilters(),this.updateMessage()})})}addNewFilterSetting(){new Is.Setting(this.contentEl).then(e=>{e.setDesc(m("plugin.filter")).addSearch(t=>{t.setPlaceholder(m("controls.pathRegexPlaceholder")),new E9(t.inputEl,i=>{this.add(t)}),e.addButton(i=>{Je.setupButton(i,"add"),i.onClick(()=>{this.add(t)})})})})}add(e){e.getValue()!==""&&(this.folders.push(e.getValue()),this.addFilter(e.getValue()),this.updateMessage(),e.setValue(""))}addButtonContainer(){this.contentEl.createDiv("modal-button-container",e=>{new Is.ButtonComponent(e).setCta().setButtonText(m("controls.save")).onClick(async()=>{this.initialFolders.length=0;for(let t of this.folders)this.initialFolders.push(t);await u.plugin.saveSettings(),this.close()}),new Is.ButtonComponent(e).setClass("mod-cancel").setButtonText(m("controls.cancel")).onClick(()=>{this.close()})})}onClose(){this.contentEl.empty()}};var bu=require("obsidian");var l9=class extends bu.Modal{constructor(e){super(u.app),this.setTitle(m("controls.setConfigName")),this.modalEl.addClass("graph-modal-export-config"),this.callback=e,this.scope.register(null,"Enter",t=>{this.validate(this.input.getValue())})}onOpen(){new bu.Setting(this.contentEl).setName(m("controls.overrideConfig")).addDropdown(async e=>{this.dropdown=e,e.addOption("","");let t=await Mo();e.addOptions(Object.fromEntries(t.map(i=>[i,fi(i,".json").basename+(u.statesManager.getStateFromConfig(i)?" (\u{1F517} state)":"")])))}).addButton(e=>{e.setIcon("upload"),e.setCta(),e.buttonEl.addEventListener("click",t=>{this.callback(this.dropdown.getValue(),!0)&&this.close()})}),new bu.Setting(this.contentEl).setName(m("controls.orCreateConfig")).addText(e=>{this.input=e}).addButton(e=>{e.setIcon("upload"),e.setCta(),e.buttonEl.addEventListener("click",t=>{this.validate(this.input.getValue())})})}onClose(){this.contentEl.empty()}validate(e){this.callback(e,!1)&&this.close()}};var br=require("obsidian");var vu=class extends br.Modal{constructor(t){super(u.app);this.isCanceled=!0;this.instances=t,this.setTitle(m("features.svgScreenshotOptions"))}onOpen(){this.addCoreOptions(),this.addExtendedOptions(),this.addApply()}addCoreOptions(){this.addOnlyVisibleArea(),this.addShowNodeNames()}addOnlyVisibleArea(){new br.Setting(this.contentEl).setName(m("features.svgScreenshotVisibleArea")).addToggle(t=>{t.setValue(u.settings.exportSVGOptions.onlyVisibleArea),t.onChange(i=>{u.settings.exportSVGOptions.onlyVisibleArea=i,this.saveSettings()})})}addShowNodeNames(){new br.Setting(this.contentEl).setName(m("features.svgScreenshotNodeNames")).addToggle(t=>{t.setValue(u.settings.exportSVGOptions.showNodeNames),t.onChange(i=>{u.settings.exportSVGOptions.showNodeNames=i,this.saveSettings()})})}addExtendedOptions(){this.instances&&(this.addUseCurvedLinks(),this.addUseModifiedArrows(),this.addUseNodeShapes(),this.addShowArcs(),this.addShowFolders(),this.addShowModifiedNames(),this.addShowIcons())}addUseCurvedLinks(){let t=this.canUseCurvedLinks();u.settings.exportSVGOptions.useCurvedLinks=t,t&&new br.Setting(this.contentEl).setName(m("features.svgScreenshotCurvedLinks")).addToggle(i=>{i.setValue(u.settings.exportSVGOptions.useCurvedLinks),i.onChange(s=>{u.settings.exportSVGOptions.useCurvedLinks=s,this.saveSettings()})})}canUseCurvedLinks(){return!this.instances||!this.instances?!1:this.instances.settings.enableFeatures[this.instances.type].links&&this.instances.settings.curvedLinks}addUseModifiedArrows(){let t=this.canUseModifiedArrows();u.settings.exportSVGOptions.useModifiedArrows=t,t&&new br.Setting(this.contentEl).setName("Show modified arrows").addToggle(i=>{i.setValue(u.settings.exportSVGOptions.useModifiedArrows),i.onChange(s=>{u.settings.exportSVGOptions.useModifiedArrows=s,this.saveSettings()})})}canUseModifiedArrows(){return!this.instances||!this.instances?!1:this.instances.settings.enableFeatures[this.instances.type].arrows}addUseNodeShapes(){let t=this.canUseNodeShapes();u.settings.exportSVGOptions.useNodesShapes=t,t&&new br.Setting(this.contentEl).setName(m("features.svgScreenshotNodeShapes")).addToggle(i=>{i.setValue(u.settings.exportSVGOptions.useNodesShapes),i.onChange(s=>{u.settings.exportSVGOptions.useNodesShapes=s,this.saveSettings()})})}canUseNodeShapes(){return!this.instances||!this.instances?!1:this.instances.settings.enableFeatures[this.instances.type].shapes??!1}addShowArcs(){let t=this.canShowArcs();u.settings.exportSVGOptions.showArcs=t,t&&new br.Setting(this.contentEl).setName(m("features.svgScreenshotArcs")).addToggle(i=>{i.setValue(u.settings.exportSVGOptions.showArcs),i.onChange(s=>{u.settings.exportSVGOptions.showArcs=s,this.saveSettings()})})}canShowArcs(){if(!this.instances||!this.instances)return!1;let t=this.instances.type;return this.instances.settings.enableFeatures[t].tags?!0:this.instances.settings.enableFeatures[t].properties?Object.values(this.instances.settings.additionalProperties).some(i=>i[t]):!1}addShowFolders(){let t=this.canShowFolders();u.settings.exportSVGOptions.showFolders=t,t&&new br.Setting(this.contentEl).setName("Show folder boxes").addToggle(i=>{i.setValue(u.settings.exportSVGOptions.showFolders),i.onChange(s=>{u.settings.exportSVGOptions.showFolders=s,this.saveSettings()})})}canShowFolders(){return!this.instances||!this.instances?!1:this.instances.settings.enableFeatures[this.instances.type].folders}addShowModifiedNames(){let t=this.canShowModifiedNames();u.settings.exportSVGOptions.useModifiedNames=t,t&&new br.Setting(this.contentEl).setName("Show modified names").addToggle(i=>{i.setValue(u.settings.exportSVGOptions.useModifiedNames),i.onChange(s=>{u.settings.exportSVGOptions.useModifiedNames=s,this.saveSettings()})})}canShowModifiedNames(){return!this.instances||!this.instances?!1:this.instances.settings.enableFeatures[this.instances.type].names}addShowIcons(){let t=this.canShowIcons();u.settings.exportSVGOptions.showIcons=t,t&&new br.Setting(this.contentEl).setName("Show icons").addToggle(i=>{i.setValue(u.settings.exportSVGOptions.showIcons),i.onChange(s=>{u.settings.exportSVGOptions.showIcons=s,this.saveSettings()})})}canShowIcons(){return!this.instances||!this.instances?!1:this.instances.settings.enableFeatures[this.instances.type].icons}addApply(){let t=new br.Setting(this.contentEl).addButton(i=>{i.setButtonText(m("features.svgScreenshotCopyCode")),i.onClick(()=>{this.isCanceled=!1,u.settings.exportSVGOptions.asImage=!1,this.applyAndClose()})});ClipboardItem.supports("image/svg+xml")&&t.addButton(i=>{i.setButtonText(m("features.svgScreenshotCopyImage")),i.setCta(),i.onClick(()=>{this.isCanceled=!1,u.settings.exportSVGOptions.asImage=!0,this.applyAndClose()})})}async saveSettings(){this.instances&&(this.instances.settings.exportSVGOptions=u.settings.exportSVGOptions),await u.plugin.saveSettings()}applyAndClose(){this.saveSettings().then(()=>{this.close()})}};var qr=require("obsidian");var Eu=class extends qr.Modal{constructor(t){super(u.app);this.cmapData=[];this.interpolate=!0;this.reverse=!1;this.name=t??"",this.modalEl.addClass("graph-modal-palette-maker")}onOpen(){this.addCanvas(),this.addHandles(),this.addControls(),this.addInfo(),this.addListeners(),this.updateCanvas()}addCanvas(){this.canvasContainer=this.contentEl.createDiv("canvas-gradient-maker-container"),this.canvasGradient=this.canvasContainer.createEl("canvas"),this.canvasGradient.id="canvas-gradient-maker"}addHandles(){if(this.name in u.settings.customColorMaps){let t=u.settings.customColorMaps[this.name];this.reverse=t.reverse,this.interpolate=t.interpolate;let i=t.colors.map((s,n)=>({col:Ti(s).rgb,stop:t.stops[n]}));for(let{col:s,stop:n}of i)this.addHandle(s,n)}else this.addHandle(16711680,0),this.addHandle(65280,.5),this.addHandle(255,1)}addHandle(t,i){let s=new qr.ColorComponent(this.canvasContainer);this.cmapData.push({handle:s,color:t,stop:i}),s.setValue(as(t)),s.onChange(n=>{let o=this.cmapData.find(a=>a.handle===s);o&&(o.color=Ti(n).rgb,this.updateCanvas())}),s.colorPickerEl.style.left=100*i+"%",s.colorPickerEl.addEventListener("mousedown",n=>this.onDragStart(n,s)),s.colorPickerEl.addEventListener("mouseenter",()=>this.targetHandle=s),s.colorPickerEl.addEventListener("mouseleave",()=>this.targetHandle=void 0)}addListeners(){this.canvasContainer.addEventListener("dblclick",this.onAddHandle.bind(this)),this.scope.register(null,"Backspace",this.onDeleteHandle.bind(this)),this.scope.register(null,"Clear",this.onDeleteHandle.bind(this)),this.scope.register(null,"Delete",this.onDeleteHandle.bind(this))}onAddHandle(t){if(t.button!==0||t.targetNode?.nodeName!=="CANVAS")return;let i=this.canvasContainer.getBoundingClientRect(),s=Math.clamp((t.clientX-i.left)/i.width,0,1),n=this.canvasGradient.getContext("2d",{willReadFrequently:!0})?.getImageData(s*this.canvasGradient.width,.5,1,1);if(!n)return;let o=n.data;this.addHandle(Vn([o[0],o[1],o[2]]),s)}onDeleteHandle(t,i){if(!this.targetHandle||this.cmapData.length<=2)return;let s=this.cmapData.find(n=>n.handle===this.targetHandle);s&&(this.cmapData.remove(s),s.handle.colorPickerEl.detach(),this.targetHandle=void 0,this.updateCanvas())}onDragStart(t,i){if(t.button!==0)return;let s=this.cmapData.findIndex(c=>c.handle===i);if(s===-1)return;let n=i.colorPickerEl;t.preventDefault(),t.stopPropagation();let o=this.canvasContainer.getBoundingClientRect(),a=c=>{c.preventDefault();let h=c.clientX,d=Math.clamp((h-o.left)/o.width,0,1);n.style.left=100*d+"%",this.cmapData[s].stop=d,this.updateCanvas()},l=c=>{c.preventDefault(),n.win.removeEventListener("mousemove",a),n.win.removeEventListener("mouseup",l)};n.win.addEventListener("mousemove",a),n.win.addEventListener("mouseup",l)}addControls(){new qr.Setting(this.contentEl).setName(m("controls.interpolate")).addToggle(t=>{t.setValue(this.interpolate),t.onChange(i=>{this.interpolate=i,this.updateCanvas()})}),new qr.Setting(this.contentEl).setName(m("controls.reverse")).addToggle(t=>{t.setValue(this.reverse),t.onChange(i=>{this.reverse=i})}),this.nameSetting=new qr.Setting(this.contentEl).setName(m("UI.name")).addText(t=>{t.setValue(this.name),t.onChange(i=>{this.name=i,this.onNameChanged()})}),new qr.Setting(this.contentEl).addButton(t=>{this.saveButton=t,t.setButtonText(m("controls.save")),t.setCta(),t.onClick(this.save.bind(this))}),this.onNameChanged()}addInfo(){let t=new qr.Setting(this.contentEl).setName(m("UI.howToUse")).setHeading();t.descEl.innerHTML=m("UI.howToUseGradientMaker");let i=createDiv();t.nameEl.prepend(i),(0,qr.setIcon)(i,"info")}onNameChanged(){this.name===""?(this.nameSetting.setDesc(m("errors.paletteNameRequired")),this.nameSetting.descEl.toggleClass("error",!0)):(this.nameSetting.setDesc(""),this.nameSetting.descEl.toggleClass("error",!0)),this.name in u.settings.customColorMaps?this.saveButton.setButtonText(m("controls.override")):this.saveButton.setButtonText(m("controls.save"))}updateCanvas(){Pa(this.canvasGradient,!1,this.interpolate,this.cmapData.map(t=>t.color),this.cmapData.map(t=>t.stop))}save(){this.name!==""&&(u.settings.customColorMaps[this.name]={colors:this.cmapData.map(t=>as(t.color)),stops:this.cmapData.map(t=>t.stop),interpolate:this.interpolate,reverse:this.reverse},u.plugin.saveSettings().then(()=>{this.saveCallback&&this.saveCallback(this.name),this.close()}))}onSave(t){this.saveCallback=t}};var H0=require("obsidian");var D9=class extends H0.Modal{constructor(){super(u.app);this.selectedPalette="";this.customPalettes={};this.setTitle(m("features.interactives.palettePickGradient")),this.modalEl.addClass("graph-modal-palette-picker")}onOpen(){for(let[t,i]of Object.entries(vh))this.addPalettesGroup(t,i);this.addCustomPalettesGroup(),this.addInfo()}addPalettesGroup(t,i){let s=new H0.Setting(this.contentEl).setName(t).setHeading();s.controlEl.addClass("palette-group");for(let n of i)this.addPalette(n,s.controlEl),this.addPalette(n+"_r",s.controlEl)}addPalette(t,i){let n=new H0.Setting(i).setName(t).controlEl.createEl("canvas");n.id=`picker-canvas-palette-${t}`,n.width=100,n.height=20,Na(n,t,u.settings),n.onclick=()=>{this.selectedPalette=t,this.close()}}addCustomPalettesGroup(){let t=new H0.Setting(this.contentEl).setName(m("plugin.custom")).setHeading();new H0.ButtonComponent(t.infoEl).then(i=>{Je.setupButton(i,"add"),i.onClick(()=>{let s=new Eu;s.onSave(n=>{this.addCustomPalette(n,t.controlEl),this.selectedPalette="custom:"+n,this.callback(this.selectedPalette)}),s.open()})}),t.controlEl.addClass("palette-group");for(let i in u.settings.customColorMaps)this.addCustomPalette(i,t.controlEl)}addCustomPalette(t,i){let s=u.settings.customColorMaps[t];if(!s)return;let n=Object.entries(this.customPalettes).find(([a,l])=>l.name===t),o;if(n)o=n[0];else{o=crypto.randomUUID();let a=new H0.Setting(i).setName(t);a.settingEl.addClass("custom-palette");let l=a.controlEl.createEl("canvas");l.id=`picker-canvas-custom-palette-${o}`,l.width=100,l.height=20,new H0.ExtraButtonComponent(a.infoEl).then(c=>{Je.setupExtraButton(c,"edit"),c.onClick(()=>this.editCustomPalette(o))}),new H0.ExtraButtonComponent(a.infoEl).then(c=>{Je.setupExtraButton(c,"delete"),c.onClick(()=>this.deleteCustomPalette(o))}),l.onclick=()=>this.selectCustomPalette(o),this.customPalettes[o]={name:t,setting:a,canvas:l}}Pa(this.customPalettes[o].canvas,s.reverse,s.interpolate,s.colors.map(a=>Ti(a).rgb),s.stops)}editCustomPalette(t){let i=this.customPalettes[t].name,s=new Eu(i);s.onSave(n=>{this.onCustomPaletteEdited(t,i,n),i=n}),s.open()}async onCustomPaletteEdited(t,i,s){let n="custom:"+s,o=u.settings.customColorMaps[n];if(o){if(i!==n){delete u.settings.customColorMaps[i];for(let a in u.settings.interactiveSettings)u.settings.interactiveSettings[a].colormap===i&&(u.settings.interactiveSettings[a].colormap=n);u.settings.nodesColorColormap===i&&(u.settings.nodesColorColormap=n),u.settings.linksColorColormap===i&&(u.settings.linksColorColormap=n),await u.plugin.saveSettings()}this.selectedPalette=n,this.callback(this.selectedPalette),this.customPalettes[t].name=s,this.customPalettes[t].setting.setName(s),Pa(this.customPalettes[t].canvas,o.reverse,o.interpolate,o.colors.map(a=>Ti(a).rgb),o.stops)}}deleteCustomPalette(t){let i=this.customPalettes[t].name;delete u.settings.customColorMaps[i];for(let s in u.settings.interactiveSettings)u.settings.interactiveSettings[s].colormap===i&&(u.settings.interactiveSettings[s].colormap="rainbow");u.settings.nodesColorColormap===i&&(u.settings.nodesColorColormap="rainbow"),u.settings.linksColorColormap===i&&(u.settings.linksColorColormap="rainbow"),u.plugin.saveSettings(),this.selectedPalette="rainbow",this.callback(this.selectedPalette),this.customPalettes[t].setting.settingEl.detach(),delete this.customPalettes[t]}selectCustomPalette(t){this.selectedPalette="custom:"+this.customPalettes[t].name,this.close()}addInfo(){new H0.Setting(this.contentEl).setName(m("plugin.info")).setHeading().setDesc(m("features.interactives.paletteMatplotlibDesc")).then(t=>{let i=createDiv();t.nameEl.prepend(i),(0,H0.setIcon)(i,"info");let s=t.descEl.createEl("a");s.href="https://matplotlib.org/stable/users/explain/colors/colormaps.html",s.setText("https://matplotlib.org/stable/users/explain/colors/colormaps.html")})}onClose(){this.contentEl.empty(),this.selectedPalette!==""&&this.callback(this.selectedPalette)}onSelected(t){this.callback=t}};var I9=require("obsidian");var Ja=class extends I9.Modal{constructor(e){super(u.app),this.setTitle(m("controls.selectConfigToImport")),this.modalEl.addClass("graph-modal-import-config"),this.callback=e}onOpen(){new I9.Setting(this.contentEl).addDropdown(async e=>{this.dropdown=e,e.addOption("","");let t=await Mo();e.addOptions(Object.fromEntries(t.map(i=>[i,fi(i,".json").basename+(u.statesManager.getStateFromConfig(i)?" (\u{1F517} state)":"")])))}).addButton(e=>{e.setIcon("download"),e.setCta(),e.buttonEl.addEventListener("click",t=>{let i=this.dropdown.getValue();i!==""&&this.callback(i),this.close()})})}onClose(){this.contentEl.empty()}};var L9=require("obsidian");var y9=class extends L9.Modal{constructor(t,i){super(u.app);this.labels={};this.key=t,this.types=i,this.setTitle(m("features.interactives.selectionFor")+": "+this.key),this.modalEl.addClass("graph-modal-interactives-selection")}onOpen(){this.addRegexArea(),this.addLabels(),this.filterOutLabels()}addRegexArea(){"excludeRegex"in u.settings.interactiveSettings[this.key]||(u.settings.interactiveSettings[this.key].excludeRegex={regex:"",flags:""}),this.regexSetting=new L9.Setting(this.contentEl).setName(m("query.excludeRegex")).addTextArea(t=>{t.setValue(u.settings.interactiveSettings[this.key].excludeRegex.regex),t.onChange(i=>this.changeExcludeRegex(i,u.settings.interactiveSettings[this.key].excludeRegex.flags))}).addText(t=>{t.setPlaceholder("flags").setValue(u.settings.interactiveSettings[this.key].excludeRegex.flags).onChange(i=>this.changeExcludeRegex(u.settings.interactiveSettings[this.key].excludeRegex.regex,i))}),this.updateRegexDesc()}addLabels(){let t=this.contentEl.createDiv("items-container");for(let i of this.types){let s=!u.settings.interactiveSettings[this.key].unselected.includes(i),n=t.createEl("label"),o=n.createSpan({text:i}),a=n.createEl("input",{type:"checkbox"});s?this.selectInteractive(n,a):this.deselectInteractive(n,a),a.addEventListener("change",l=>{a.checked?this.selectInteractive(n,a):this.deselectInteractive(n,a)}),this.labels[i]=n}}filterOutLabels(){let t=u.settings.interactiveSettings[this.key].excludeRegex,i=0;for(let[s,n]of Object.entries(this.labels)){let o=!1;for(let a of t.regex.split(` +`,zd=class extends ot{constructor(r=1,e=0,t=.1,i=1,s=!1){super(rC,iC.replace(/\$\{angleStep\}/,zd.getAngleStep(t))),this._thickness=1,this._alpha=1,this._knockout=!1,this.uniforms.uThickness=new Float32Array([0,0]),this.uniforms.uColor=new Float32Array([0,0,0,1]),this.uniforms.uAlpha=i,this.uniforms.uKnockout=s,Object.assign(this,{thickness:r,color:e,quality:t,alpha:i,knockout:s})}static getAngleStep(r){let e=Math.max(r*zd.MAX_SAMPLES,zd.MIN_SAMPLES);return(Math.PI*2/e).toFixed(7)}apply(r,e,t,i){this.uniforms.uThickness[0]=this._thickness/e._frame.width,this.uniforms.uThickness[1]=this._thickness/e._frame.height,this.uniforms.uAlpha=this._alpha,this.uniforms.uKnockout=this._knockout,r.applyFilter(this,e,t,i)}get alpha(){return this._alpha}set alpha(r){this._alpha=r}get color(){return ae.rgb2hex(this.uniforms.uColor)}set color(r){ae.hex2rgb(r,this.uniforms.uColor)}get knockout(){return this._knockout}set knockout(r){this._knockout=r}get thickness(){return this._thickness}set thickness(r){this._thickness=r,this.padding=r}},un=zd;un.MIN_SAMPLES=1,un.MAX_SAMPLES=100;var Wd=class extends Ga{constructor(){super(...arguments);this.hasChangedArrowShape=!1}additionalConstruct(){Xe.needToChangeArrow(this.instances)&&(this.extendedArrow=new Hd(this.instances,this)),this.firstSibling=!0}init(){this.findSiblingLink(),super.init(),this.extendedArrow?.init(),this.displayText(),this.isEnabled&&this.isAnyManagerDisabled()&&this.disable()}findSiblingLink(){if(this.instances.settings.enableFeatures[this.instances.type].links&&this.instances.settings.curvedLinks)return;let t=Wt({source:{id:this.coreElement.target.id},target:{id:this.coreElement.source.id}});this.siblingLink=this.instances.linksSet.extendedElementsMap.get(t),this.siblingLink&&(this.firstSibling=!!this.coreElement.line?.visible,this.siblingLink.siblingLink||(this.siblingLink.siblingLink=this,this.siblingLink.updateDisplayedTexts()))}modifyCoreElement(){this.modifyClearGraphics(),this.changeCoreLinkThickness(),this.proxyLine(),this.createContainer(),(this.isCurveLine()||this.graphicsWrapper?.pixiElement instanceof po)&&this.coreElement.line&&(this.coreElement.line.renderable=!1)}modifyClearGraphics(){this.coreClearGraphics||(this.coreClearGraphics=this.coreElement.clearGraphics,this.coreElement.clearGraphics=(()=>{u.proxysManager.unregisterProxy(this.coreElement.arrow),u.proxysManager.unregisterProxy(this.coreElement.line),this.coreClearGraphics&&(this.coreElement.clearGraphics=this.coreClearGraphics,this.coreClearGraphics=void 0,this.coreElement.clearGraphics())}).bind(this))}restoreCoreElement(){this.coreClearGraphics&&(this.coreElement.clearGraphics=this.coreClearGraphics,this.coreClearGraphics=void 0),this.restoreCoreLinkThickness(),u.proxysManager.unregisterProxy(this.coreElement.line),this.extendedArrow?.unload(),this.removeContainer(),this.coreElement.line&&(this.coreElement.line.renderable=!0)}unload(){super.unload(),this.removeTexts()}needGraphicsWrapper(){return!!(this.instances.settings.enableFeatures[this.instances.type].links&&(this.instances.settings.curvedLinks||this.instances.settings.allowMultipleLinkTypes&&(this.instances.settings.allowMultipleLinkTypes||this.instances.settings.interactiveSettings[ne].showOnGraph)))}createGraphicsWrapper(){this.graphicsWrapper||(this.graphicsWrapper=this.instances.settings.curvedLinks&&this.instances.settings.curvedFactor!==0?new qd(this):new Yd(this),this.graphicsWrapper.createGraphics())}isCurveLine(){return this.graphicsWrapper?.pixiElement instanceof hn}isRendered(){return!!this.coreElement.line?.visible||this.instances.settings.enableFeatures[this.instances.type].links&&this.instances.settings.curvedLinks}changeCoreLinkThickness(){this.coreElement.px&&u.settings.enableFeatures[this.instances.type]["elements-stats"]&&u.settings.linksSizeFunction!=="default"&&(u.settings.enableFeatures[this.instances.type].links&&!this.instances.settings.curvedLinks||!u.settings.enableFeatures[this.instances.type].links)?this.coreElement.px.scale.y=this.getThicknessScale():this.restoreCoreLinkThickness()}restoreCoreLinkThickness(){this.coreElement.px&&(this.coreElement.px.scale.y=1)}getThicknessScale(){if(!u.settings.enableFeatures[this.instances.type]["elements-stats"]||u.settings.linksSizeFunction==="default")return 1;let t=this.instances.linksSizeCalculator??u.graphsManager.linksSizeCalculator;return!t||!(this.coreElement.source.id in t.linksStats)||!(this.coreElement.target.id in t.linksStats[this.coreElement.source.id])?1:t.linksStats[this.coreElement.source.id][this.coreElement.target.id].value}createContainer(){if(!this.instances.settings.enableFeatures[this.instances.type].links||!this.instances.settings.outlineLinks)return;let t;this.siblingLink?.container?t=this.siblingLink.container:(this.container=new tt,t=this.container),this.coreElement.px&&(this.coreElement.px.removeFromParent(),ze(t,this.coreElement.px),this.coreElement.px.addListener("destroyed",this.removeContainer)),this.coreElement.arrow&&(this.coreElement.arrow.removeFromParent(),ze(t,this.coreElement.arrow),this.coreElement.arrow.addListener("destroyed",this.removeContainer)),this.graphicsWrapper?.pixiElement&&(this.graphicsWrapper.pixiElement.removeFromParent(),ze(t,this.graphicsWrapper.pixiElement),this.graphicsWrapper.pixiElement.addListener("destroyed",this.removeContainer)),t.filters=[new un(1,this.instances.cssBridge.getPrimaryColor(),.1,1,!1)],ze(this.coreElement.renderer.hanger,t)}removeContainer(){if(this.coreElement&&(this.coreElement.px&&this.coreElement.px.removeEventListener("destroyed",this.removeContainer),this.coreElement.arrow&&this.coreElement.arrow.removeEventListener("destroyed",this.removeContainer),this.graphicsWrapper?.pixiElement&&this.graphicsWrapper.pixiElement.removeEventListener("destroyed",this.removeContainer),!!this.container)){for(let t of this.container.children.filter(i=>!i.destroyed))ze(this.coreElement.renderer.hanger,t);this.container.destroy(),this.container=void 0}}proxyLine(){if(!Xe.needToChangeLinkColor(this.instances))return;let t=this.coreElement;if(t.line){let i=this.getStrokeColor.bind(this);u.proxysManager.registerProxy(this.coreElement,"line",{set(s,n,o,a){return n==="tint"&&(o=i()??o),Reflect.set(s,n,o,a)}}),t.line.on("destroyed",()=>u.proxysManager.unregisterProxy(this.coreElement.line))}}isHighlighted(){return this.instances.settings.noLineHighlight?!1:this.coreElement.source===this.coreElement.renderer.getHighlightNode()||this.coreElement.target===this.coreElement.renderer.getHighlightNode()}getStrokeColor(t=!1){if(!t&&this.isHighlighted())return;let i;if(this.instances.settings.enableFeatures[this.instances.type].links&&this.instances.settings.interactiveSettings[ne].showOnGraph){let s=this.managers.get(ne),n=this.getActiveType(ne);if(!this.isCurveLine()&&(!n||n===this.instances.settings.interactiveSettings[ne].noneType)&&this.siblingLink&&(n=this.siblingLink.getActiveType(ne)),s&&n&&n!==this.instances.settings.interactiveSettings[ne].noneType)return s.getColor(n)}if(u.settings.enableFeatures[this.instances.type]["elements-stats"]&&u.settings.linksColorFunction!=="default"){let s=this.instances.linksColorCalculator??u.graphsManager.linksColorCalculator;if(s){if(this.coreElement.source.id in s.linksStats&&this.coreElement.target.id in s.linksStats[this.coreElement.source.id]){let n=s.linksStats[this.coreElement.source.id][this.coreElement.target.id]?.value;if(n)return n}if(!this.isCurveLine()&&this.siblingLink&&this.siblingLink.coreElement.source.id in s.linksStats&&this.siblingLink.coreElement.target.id in s.linksStats[this.siblingLink.coreElement.source.id]){let n=s.linksStats[this.siblingLink.coreElement.source.id][this.siblingLink.coreElement.target.id]?.value;if(n)return n}}}if(this.instances.settings.enableFeatures[this.instances.type].linksSameColorAsNode)return this.instances.settings.enableFeatures[this.instances.type].arrows&&this.instances.settings.invertArrows?i=this.coreElement.target.getFillColor().rgb:i=this.coreElement.source.getFillColor().rgb,i}initAnimation(){this.instances.renderer.dragNode&&this.animatedDot||(this.animatedDot&&(this.animatedDot.destroy(),this.animatedDot=void 0),this.isCurveLine()?this.animatedDot=new jd(this):this.animatedDot=new $d(this),ze(this.coreElement.renderer.hanger,this.animatedDot),this.animationLoop())}async animate(){if(this.coreElement.renderer.idleFrames=0,this.isCurveLine()&&this.graphicsWrapper?.pixiElement)this.animatedDot?.updateFrame(this.graphicsWrapper.pixiElement.bezier);else{let t=this.coreElement.renderer.nodeScale,i=this.coreElement.source,s=this.coreElement.target,n={x:s.x-i.x,y:s.y-i.y},o=Math.sqrt(n.x*n.x+n.y*n.y);n.x/=o,n.y/=o;let a={x:i.x+t*i.getSize()*n.x,y:i.y+t*i.getSize()*n.y},l={x:s.x-t*s.getSize()*n.x,y:s.y-t*s.getSize()*n.y};this.animatedDot?.updateFrame({P0:a,P1:{x:(a.x+l.x)*.5,y:(a.y+l.y)*.5},P2:l})}}animationLoop(){requestAnimationFrame(async()=>{await this.animate(),this.coreElement.renderer.getHighlightNode()===this.coreElement.source||this.coreElement.renderer.getHighlightNode()===this.coreElement.target?this.animationLoop():(this.animatedDot?.destroy(),this.animatedDot=void 0)})}isCoreElementUptodate(){return!!this.coreElement.line}isSameCoreElement(t){return t.source.id===this.coreElement.source.id&&t.target.id===this.coreElement.target.id}isSameCoreGraphics(t){return t.line===this.coreElement.line}getCoreCollection(){return this.coreElement.renderer.links}getCoreParentGraphics(t){return this.instances.settings.curvedLinks?t.px:t.line}canBeAddedWithEngineOptions(){let t=this.instances.nodesSet.extendedElementsMap.get(this.coreElement.source.id),i=this.instances.nodesSet.extendedElementsMap.get(this.coreElement.target.id);return!t||!i?!1:t.canBeAddedWithEngineOptions()&&i.canBeAddedWithEngineOptions()}getID(){return Wt(this.coreElement)}disableType(t,i){super.disableType(t,i),this.updateDisplayedTexts()}enableType(t,i){super.enableType(t,i),this.updateDisplayedTexts()}disable(){if(super.disable(),this.extendedArrow?.unload(),this.graphicsWrapper?.disconnect(),this.texts)for(let t of this.texts)t.isRendered=!1,t.visible=!1}displayText(){if(!this.instances.settings.displayLinkTypeLabel||!this.coreElement.px?.renderable)return;this.texts||(this.texts=[]);let t=this.getDisplayedTexts();for(let i of t){let s=this.texts.find(n=>n.text.text===i);s?.destroyed&&this.texts.remove(s),(!s||s.destroyed)&&(this.graphicsWrapper?.pixiElement instanceof Va?s=new Xd(i,this):this.graphicsWrapper?.pixiElement instanceof Ua?s=new Kd(i,this):this.graphicsWrapper?.pixiElement instanceof po?s=new Zd(i,this):s=new Qd(i,this),this.texts.push(s)),s.isRendered=!0,s.setDisplayedText(i),s.connect(),s.updateFrame()}}getDisplayedTexts(){if(this.instances.settings.allowMultipleLinkTypes){let t=[...this.getTypes(ne)].filter(i=>this.managers.get(ne)?.isActive(i)&&i!==this.instances.settings.interactiveSettings[ne].noneType);if(!this.isCurveLine()&&this.siblingLink){let i=[...this.siblingLink.getTypes(ne)].filter(s=>this.managers.get(ne)?.isActive(s)&&s!==this.instances.settings.interactiveSettings[ne].noneType);t=[...new Set([...t,...i])]}return t}else{let t=this.getActiveType(ne);if(!t||t===this.instances.settings.interactiveSettings[ne].noneType){if(this.isCurveLine())return[];if(t=this.siblingLink?.getActiveType(ne),!t||t===this.instances.settings.interactiveSettings[ne].noneType)return[]}return[t]}}updateDisplayedTexts(){if(!this.texts)return;let t=this.getDisplayedTexts();if(this.instances.settings.allowMultipleLinkTypes)for(let i of t){let s=this.texts.find(n=>n.text.text===i);s&&(s.setDisplayedText(i),s.updateTextColor())}else{if(t.length===0)return;this.texts[0].setDisplayedText(t[0]),this.texts[0].applyCSSChanges()}}hideTextsBasedOnLength(){if(!this.texts||!this.isEnabled||!this.instances.settings.allowMultipleLinkTypes)return;let t=za(1,this.coreElement.source.circle?.position??{x:0,y:0},this.coreElement.target.circle?.position??{x:0,y:0}),i=this.texts.filter(o=>this.instances.linksSet.managers.get(ne)?.isActive(o.text.text)),s=t/i.length,n=0;for(let o of this.texts)i.contains(o)?(Math.floor((n-s)/110)this.restoreCoreElement())}proxyGetSize(){if(!(this.graphicsWrapper&&this.graphicsWrapper.shape!=="circle")&&this.radius===We.RADIUS&&!(this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&this.instances.settings.nodesSizeFunction!=="default"))return;let t=this.getSize.bind(this);u.proxysManager.registerProxy(this.coreElement,"getSize",{apply(i,s,n){return t.call(this,...n)}})}needToChangeColor(){return!!(this.instances.type==="localgraph"&&(this.instances.settings.colorBasedOnDepth||this.instances.settings.currentNode.useColor&&this.isCurrentNode)||this.icon?.color&&this.instances.settings.useIconColorForBackgroud)}needToUpdateGraphicsColor(){return!1}proxyGetFillColor(){let t=this.needToUpdateGraphicsColor(),i=this.needToChangeColor();if(!(t||i))return;let s=this.onGetFillColorCalled.bind(this);u.proxysManager.registerProxy(this.coreElement,"getFillColor",{apply(n,o,a){return s(t,i,n,o,a)}})}proxyInitGraphics(){let t=this.onInitGraphicsCalled.bind(this);u.proxysManager.registerProxy(this.coreElement,"initGraphics",{apply(i,s,n){let o=Reflect.apply(i,s,n);return t(),o}})}proxyRender(){if(!(this.instances.settings.enableFeatures[this.instances.type].names&&this.instances.settings.showNamesWhenNeighborHighlighted||this.icon||this.graphicsWrapper&&this.graphicsWrapper.shape!=="circle"||this.instances.type==="graph"&&this.instances.settings.enableFeatures.graph.focus&&this.instances.settings.focusScaleFactor!==1))return;let t=this.onRenderCalled.bind(this);u.proxysManager.registerProxy(this.coreElement,"render",{apply(i,s,n){let o=Reflect.apply(i,s,n);return t(),o}})}unload(){this.removeAnimationListener(),this.isPinned&&new yt(this.instances).unpinNode(this.id),this.extendedText.unload(),this.coreElement.circle?.filters&&(this.coreElement.circle.filters.remove(this.instances.nodesSet.selectionFilter),this.coreElement.circle.filters.remove(this.instances.nodesSet.openFilter),this.coreElement.circle.filters.remove(this.instances.nodesSet.searchResultFilter)),super.unload()}restoreCoreElement(){u.proxysManager.unregisterProxy(this.coreElement.getSize),u.proxysManager.unregisterProxy(this.coreElement.getFillColor),u.proxysManager.unregisterProxy(this.coreElement.initGraphics),u.proxysManager.unregisterProxy(this.coreElement.render)}needGraphicsWrapper(){return this.needPin()||this.needOpacityLayer()||!!this.icon}needOpacityLayer(){return this.instances.settings.fadeOnDisable}needPin(){return this.instances.settings.showPinIcon}needIcon(){return this.instances.settings.enableFeatures[this.instances.type].icons}getIcon(){if(!this.needIcon())return;let t=this.instances.settings.useParentIcon?a5(this.id).reverse():[this.id],i=null;if(this.instances.settings.iconProperties.some(s=>s!=="")){let s=qe(this.id);if(s){let n=!1;for(let o of this.instances.settings.iconProperties){let a=ct(o,s,this.instances.settings);for(let l of a){if(Bc(l)){i={svg:null,color:null,emoji:l},n=!0;break}let c=(0,i5.getIcon)(l);if(c){c.setAttribute("stroke","white"),i={svg:c,color:null,emoji:null},n=!0;break}}if(n)break}}}if(!i&&this.instances.settings.usePluginForIcon){for(let s of t)if(i=s5(s),i||(i=n5(s)),i)break;i?.svg&&u8(i.svg,"white")}if(i&&!this.instances.settings.usePluginForIconColor&&(i.color=null),i?.emoji){let s=Bf(i.emoji);s&&(i.color=h0(s))}this.icon&&this.icon.svg==null&&this.icon.emoji==null?this.icon=null:this.icon=i}onInitGraphicsCalled(){this.graphicsWrapper?.connect()}onRenderCalled(){if(this.instances.settings.enableFeatures[this.instances.type].names&&this.instances.settings.showNamesWhenNeighborHighlighted&&this.extendedText.makeVisibleIfNeighborHighlighted(),this.coreElement.circle){if(this.graphicsWrapper&&this.graphicsWrapper.shape!=="circle")this.coreElement.circle.tint=$e.backgroundColor;else if(this.icon){let t=!this.graphicsWrapper||!("background"in this.graphicsWrapper)||!this.graphicsWrapper.background;this.coreElement.circle.tint=t?yh($e.backgroundColor,this.coreElement.getFillColor().rgb,this.instances.settings.backgroundOpacityWithIcon):$e.backgroundColor,this.coreElement.circle.alpha=1}this.instances.type==="graph"&&this.instances.settings.enableFeatures.graph.focus&&this.instances.settings.focusScaleFactor!==1&&this.id===u.app.workspace.getActiveFile()?.path&&(this.coreElement.circle.scale.x*=this.instances.settings.focusScaleFactor,this.coreElement.circle.scale.y*=this.instances.settings.focusScaleFactor)}}computeRadius(){let t=!1;if(this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]){let i=this.instances.settings.nodesSizeProperties.filter(s=>s!=="");if(i.length>0){let s=qe(this.id);if(s)for(let n of i){let o=ct(n,s,this.instances.settings);for(let a of o)if(o5(a)){this.radius=parseInt(a),isNaN(this.radius)&&(this.radius=We.RADIUS),t=!0;break}if(t)break}}}!t&&this.isCurrentNode&&this.instances.settings.currentNode.size!==gi.currentNode.size&&(this.radius=this.instances.settings.currentNode.size)}getSize(){return this.getSizeWithoutScaling()*this.graphicsWrapperScale}getSizeWithoutScaling(){let t=this.radius/We.RADIUS,i=this.coreElement;if(this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&this.instances.settings.nodesSizeFunction!=="default"){let s=i.renderer.fNodeSizeMult*8,n=(this.instances.nodesSizeCalculator??u.graphsManager.nodesSizeCalculator)?.filesStats.get(this.id)?.value;return s*t*(n??1)}else return i.renderer.fNodeSizeMult*Math.max(8,Math.min(3*Math.sqrt(i.weight+1),30))*t}onGetFillColorCalled(t,i,s,n,o){let a=this.coreElement.renderer.getHighlightNode()===this.coreElement,l=this.coreElement.type==="focused",c=Reflect.apply(s,n,o),h=c;return i&&(a||(h=this.getFillColor.call(this,...o)??c)),t&&this.graphicsWrapper?.updateFillColor(h.rgb,a),h}getFillColor(){if(this.isCurrentNode&&this.instances.settings.currentNode.useColor)return{rgb:Vr(this.instances.settings.currentNode.color),a:this.instances.renderer.colors.fillFocused.a>0?this.instances.renderer.colors.fillFocused.a:1};if(this.icon?.color&&this.instances.settings.useIconColorForBackgroud)return{rgb:si(this.icon.color).rgb,a:this.instances.renderer.colors.fill.a}}isCoreElementUptodate(){return!!this.coreElement.circle}isSameCoreElement(t){return t.id===this.id}isSameCoreGraphics(t){return t.circle===this.coreElement.circle}getCoreCollection(){return this.coreElement.renderer.nodes}setCoreElement(t){t&&(this.extendedText.coreElement=t),super.setCoreElement(t)}getCoreParentGraphics(t){return t.circle}canBeAddedWithEngineOptions(){return!(this.coreElement.type==="tag"&&!this.instances.engine.getOptions().showTags||this.coreElement.type==="attachment"&&!this.instances.engine.getOptions().showAttachments||this.coreElement.type==="unresolved"&&this.instances.engine.getOptions().hideUnresolved)}getID(){return this.coreElement.id}pin(){this.isPinned=!0,this.pinnedPosition={x:this.coreElement.x,y:this.coreElement.y},this.graphicsWrapper?.pin()}unpin(){this.isPinned=!1,this.pinnedPosition=void 0,this.graphicsWrapper?.unpin()}select(){return this.coreElement.circle?(this.coreElement.circle.filters?this.coreElement.circle.filters.contains(this.instances.nodesSet.selectionFilter)||this.coreElement.circle.filters.push(this.instances.nodesSet.selectionFilter):this.coreElement.circle.filters=[this.instances.nodesSet.selectionFilter],!0):!1}unselect(){this.coreElement.circle?.filters?.remove(this.instances.nodesSet.selectionFilter)}addAnimationListener(){this.instances.settings.animateDotsOnLinks&&(this.initLinksAnimation=this.initLinksAnimation.bind(this),this.coreElement.circle?.addListener("mouseenter",this.initLinksAnimation))}removeAnimationListener(){this.coreElement.circle?.removeListener("mouseenter",this.initLinksAnimation)}initLinksAnimation(){for(let t of Object.entries(this.coreElement.forward)){if(!this.instances.renderer.nodes.find(s=>s.id===t[0]))continue;let i=this.instances.linksSet.extendedElementsMap.get(Wt(t[1]));i&&i.initAnimation()}for(let t of Object.entries(this.coreElement.reverse)){if(!this.instances.renderer.nodes.find(s=>s.id===t[0]))continue;let i=this.instances.linksSet.extendedElementsMap.get(Wt(t[1]));i&&i.initAnimation()}}toggleOpenInTab(t){this.coreElement.circle&&(t?(this.coreElement.circle.filters||(this.coreElement.circle.filters=[]),this.coreElement.circle.filters.contains(this.instances.nodesSet.openFilter)||this.coreElement.circle.filters.push(this.instances.nodesSet.openFilter)):this.coreElement.circle.filters&&this.coreElement.circle.filters.remove(this.instances.nodesSet.openFilter))}toggleIsSearchResult(t){this.coreElement.circle&&(t?(this.coreElement.circle.filters||(this.coreElement.circle.filters=[]),this.coreElement.circle.filters.contains(this.instances.nodesSet.searchResultFilter)||this.coreElement.circle.filters.push(this.instances.nodesSet.searchResultFilter)):this.coreElement.circle.filters&&this.coreElement.circle.filters.remove(this.instances.nodesSet.searchResultFilter))}flicker(){let t=this.coreElement.circle;if(!t)return;let i=new We(this.graphicsWrapper?.shape??"circle");i.eventMode="none",i.drawFill(this.instances.cssBridge.getSearchColor()),i.zIndex=100,i.alpha=0,this.coreElement.renderer.hanger.addChild(i);let s=!0,n=3e3,o=Date.now(),a=()=>{if(t.destroyed||i.destroyed)return;let c=i.alpha+(s?.07:-.07);i.position.set(t.position.x,t.position.y),i.scale.set(t.scale.x*i.getDrawingResolution(),t.scale.y*i.getDrawingResolution()),c<0?(s=!0,i.alpha=0):c>1?(s=!1,i.alpha=1):i.alpha=c,this.instances.renderer.changed(),Date.now()-o{cancelAnimationFrame(l)}),t.addEventListener("destroyed",()=>{cancelAnimationFrame(l)})}};var e1=class extends Oi{needGraphicsWrapper(){return super.needGraphicsWrapper()||this.needImage()}needImage(){return this.instances.settings.enableFeatures[this.instances.type].imagesForAttachments}createGraphicsWrapper(){this.graphicsWrapper||(this.graphicsWrapper=new t1(this)),this.graphicsWrapper.createGraphics(),this.graphicsWrapperScale=We.nodeScaleFactor(this.graphicsWrapper.shape)}};var r1=class extends Oi{needGraphicsWrapper(){return super.needGraphicsWrapper()||this.needBackground()||this.needImage()||this.needArcs()}needImage(){return this.instances.settings.enableFeatures[this.instances.type].imagesFromProperty||this.instances.settings.enableFeatures[this.instances.type].imagesFromEmbeds}needBackground(){return!!(this.icon&&this.instances.settings.backgroundOpacityWithIcon>0&&this.graphicsWrapper?.shape!=="circle"||this.icon&&this.instances.settings.borderWidthWithIcon>0||this.graphicsWrapper?.shape!=="circle")}needArcs(){if(this.coreElement.type!==""&&!(this.instances.type==="localgraph"&&this.coreElement.type==="focused")||this.managers.size===0)return!1;for(let[e,t]of this.managers)if(this.instances.settings.interactiveSettings[e].showOnGraph)return!0;return!1}createGraphicsWrapper(){this.graphicsWrapper||(this.graphicsWrapper=new i1(this)),this.graphicsWrapper.createGraphics(),this.graphicsWrapperScale=We.nodeScaleFactor(this.graphicsWrapper.shape)}needToChangeColor(){return super.needToChangeColor()||this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&u.settings.nodesColorFunction!=="default"}needToUpdateGraphicsColor(){return super.needToUpdateGraphicsColor()||!!this.graphicsWrapper.background||!!this.graphicsWrapper?.iconSprite}getFillColor(){let e=super.getFillColor();if(e)return e;if(this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&u.settings.nodesColorFunction!=="default"){let t=(this.instances.nodesColorCalculator??u.graphsManager.nodesColorCalculator)?.filesStats.get(this.id);if(t)return{rgb:t.value,a:1}}if(this.instances.type==="localgraph"&&this.instances.settings.colorBasedOnDepth&&this.instances.graphologyGraph?.graphology){let i=this.instances.graphologyGraph.graphology.getNodeAttribute(this.id,"depth");if(i&&i>0){let s=(i-1)/4;return{rgb:zs(s,this.instances.settings.depthColormap,this.instances.settings),a:1}}}}};var s1=class extends Oi{createGraphicsWrapper(){this.graphicsWrapper||(this.graphicsWrapper=new n1(this)),this.graphicsWrapper.createGraphics(),this.graphicsWrapperScale=We.nodeScaleFactor(this.graphicsWrapper.shape)}needToChangeColor(){return super.needToChangeColor()||this.instances.settings.enableFeatures[this.instances.type].tags&&!Xe.excludeType(this.instances.settings,He,this.id.replace("#",""))}getFillColor(){if(this.instances.settings.enableFeatures[this.instances.type].tags&&!Xe.excludeType(this.instances.settings,He,this.id.replace("#",""))){let e=this.managers.get(He)?.getColor(this.id.replace("#",""));if(e)return{rgb:e,a:1}}return super.getFillColor()}};var o1=class extends Oi{constructor(e,t){super(e,t,new Map,[])}needGraphicsWrapper(){return super.needGraphicsWrapper()||this.needInnerCircle()}needInnerCircle(){return typeof this.instances.settings.borderUnresolved=="number"&&this.instances.settings.borderUnresolved>0&&this.instances.settings.borderUnresolved<1}createGraphicsWrapper(){this.graphicsWrapper||(this.graphicsWrapper=new a1(this)),this.graphicsWrapper.createGraphics(),this.graphicsWrapperScale=We.nodeScaleFactor(this.graphicsWrapper.shape)}};var Jd=class{constructor(e,t){this.hasChangedText=!1;this.instances=e,this.coreElement=t,this.coreGetTextStyle=this.coreElement.getTextStyle.bind(this.coreElement),this.onMouseEnter=this.onMouseEnter.bind(this),this.onMouseLeave=this.onMouseLeave.bind(this),this.restoreText=this.restoreText.bind(this),this.changeText=this.changeText.bind(this)}init(){this.modifyCoreElement(),this.coreElement.text?.addListener("destroyed",()=>{this.unload()})}modifyCoreElement(){this.updateTextStyle(),this.updateText(),this.createTextPositionCallback()}unload(){this.restoreTextPositionCallback(),this.coreElement.text&&this.hasChangedText&&(this.coreElement.circle?.removeListener("mouseenter",this.onMouseEnter),this.coreElement.circle?.removeListener("mouseleave",this.onMouseLeave),this.restoreText(),this.hasChangedText=!1),this.restoreTextStyle(),this.coreElement.text&&this.coreElement.text.anchor.set(.5,0)}disable(){this.restoreTextPositionCallback()}updateTextStyle(){if(!this.coreElement.text)return;let e=!!this.instances.extendedStyleEl,t=this.instances.settings.enableFeatures[this.instances.type].names&&this.instances.settings.addBackgroundToName;if(!e&&!t)return;let i=this.instances.cssBridge.getNodeTextStyle(this.coreElement.id),s=typeof this.coreElement.text.style.fontFamily=="string"?this.coreElement.text.style.fontFamily:this.coreElement.text.style.fontFamily.join(", ");this.coreElement.getTextStyle=()=>{let n=this.coreGetTextStyle();if(e){if(n.fontFamily=i.fontFamily+", "+s,n.fontStyle=i.fontStyle,n.fontVariant=i.fontVariant,n.fontWeight=i.fontWeight,n.letterSpacing=i.letterSpacing,n.fontSize=i.fontSize+this.coreElement.getSize()/4,i.fill&&(n.fill=i.fill),i.stroke&&this.coreElement.text){$e.applyTextStroke(n,i.stroke);let{height:o}=xt.measureText(this.coreElement.text.text,n);this.coreElement.text.anchor.set(.5,i.stroke.width/o)}else this.coreElement.text&&this.coreElement.text.anchor.set(.5,0);i.dropShadow&&this.coreElement.text&&$e.applyTextShadow(n,i.dropShadow,Ma(n.fill)??this.coreElement.renderer.colors.text.rgb)}return t&&(n.stroke=$e.backgroundColor,n.strokeThickness=8,n.lineJoin="round"),n},this.coreElement.fontDirty=!0}restoreTextStyle(){this.coreElement.getTextStyle=this.coreGetTextStyle,this.coreElement.fontDirty=!0}updateText(){!this.instances.settings.enableFeatures[this.instances.type].names||!this.coreElement.text||(this.coreElement.circle?.addListener("mouseenter",this.onMouseEnter),this.coreElement.circle?.addListener("mouseleave",this.onMouseLeave),this.hasChangedText=!0,this.changeText())}onMouseEnter(){this.coreElement.text&&(this.setText(this.getPropertyName()??this.coreElement.getDisplayText()),this.coreElement.text.zIndex=10)}onMouseLeave(){this.coreElement.text&&(this.changeText(),this.coreElement.text.zIndex=2)}changeText(){if(!this.coreElement.text)return;let e=this.getPropertyName()??this.coreElement.getDisplayText();this.instances.settings.showOnlyFileName&&(e=e.split("/").last()||e),this.instances.settings.noExtension&&(e=e.replace(/\.[^/.]+$/,"")),this.instances.settings.numberOfCharacters&&this.instances.settings.numberOfCharacters>0&&e.length>this.instances.settings.numberOfCharacters&&(e=e.slice(0,this.instances.settings.numberOfCharacters)+this.instances.settings.ellipsis),this.setText(e)}getPropertyName(){if(!this.instances.settings.usePropertiesForName)return;let e=qe(this.coreElement.id);if(e)for(let t of this.instances.settings.usePropertiesForName){let i=ct(t,e,this.instances.settings);for(let s of i)if(s!=null)return s.toString()}}restoreText(){if(!this.coreElement.text)return;let e=this.coreElement.getDisplayText();this.coreElement.text.text!==e&&(this.coreElement.text.text=e)}setText(e){this.coreElement.text&&this.coreElement.text.text!==e&&(this.coreElement.text.text=e)}createTextPositionCallback(){if(!this.instances.settings.enableFeatures[this.instances.type].names||this.instances.settings.nameVerticalOffset===0&&!this.instances.settings.dynamicVerticalOffset||!this.coreElement.text)return;let e=this.coreElement.text.position,t=this.instances.settings.dynamicVerticalOffset?this.applyDynamicOffset.bind(this):this.applyStaticOffset.bind(this);this.coreTextPositionCallback=e.cb;let i=e.cb;e.cb=()=>{t(),i.call(e.scope)},this.coreElement.fontDirty=!0,this.coreElement.moveText=0}restoreTextPositionCallback(){if(!this.coreTextPositionCallback)return;let e=this.coreElement.text?.position;e&&(e.cb=this.coreTextPositionCallback,this.coreTextPositionCallback=void 0)}applyDynamicOffset(){let e=this.coreElement,t=e.text,i=e.circle;if(!t||!i)return;let s=t.position.y;this.instances.renderer.fShowArrow&&(s=Object.values(e.reverse).reduce((o,a)=>{if(a.arrow&&a.arrow.visible){let l=a.arrow.getBounds();s=Math.max(s,t.parent.toLocal({x:l.left,y:l.bottom}).y)}return s},s));let n=i.getBounds();s=Math.max(s,t.parent.toLocal({x:n.left,y:n.bottom}).y),t.position._y=s}applyStaticOffset(){let e=this.coreElement;if(!e.text||!e.circle)return;let t=this.instances.settings.nameVerticalOffset,i=this.instances.renderer,s=e.text.y,n=e.getSize();if(t<-55){let o=e.y+(n+5)*i.nodeScale,a=s-o;s=o-a}if(t<-5&&t>-105){let o=n*i.nodeScale/50+e.text.height/100,a=-5*i.nodeScale+(5+t)*o;s=s+a}else if(t<=-105){let o=n*i.nodeScale/50+e.text.height/100,a=(100+t)*i.nodeScale+-100*o;s=s+a}else s=s+t*i.nodeScale;e.text.position._y=s}makeVisibleIfNeighborHighlighted(){let e=this.coreElement.text;if(!e)return;let t=this.coreElement.renderer;if(t.scalen.some(h=>h(a,l,c))).bind(this);u.proxysManager.registerProxy(this.extendedLink.coreElement,"arrow",{set(a,l,c,h){return o(a,l,c)?!0:Reflect.set(a,l,c,h)}}),s.addEventListener("destroyed",()=>{u.proxysManager.unregisterProxy(this.extendedLink.coreElement.arrow)})}}makeArrowOpaque(e,t,i){if(t==="alpha"){let s=this.extendedLink.coreElement.renderer.getHighlightNode();return s&&this.extendedLink.coreElement.source!==s&&this.extendedLink.coreElement.target!==s?Reflect.set(e,t,i):Reflect.set(e,t,1)}return!1}colorArrow(e,t,i){if(t==="tint"){let s=this.getArrowColor();return Reflect.set(e,t,s??i)}return!1}getArrowColor(){if(this.extendedLink.instances.settings.enableFeatures[this.extendedLink.instances.type].arrows&&this.extendedLink.instances.settings.arrowColorBool&&this.extendedLink.instances.settings.arrowColor!=="")return this.extendedLink.instances.settings.arrowColor;if(this.extendedLink.coreElement.line?.worldVisible)return this.extendedLink.coreElement.line.tint;if(this.extendedLink.siblingLink?.coreElement.line?.worldVisible)return this.extendedLink.siblingLink.coreElement.line.tint}invertArrow(e,t,i){if(t==="x"||t==="y"){let l=this.extendedLink.coreElement;var s=l.target.x-l.source.x,n=l.target.y-l.source.y,o=Math.sqrt(s*s+n*n),a=l.source.getSize()*l.renderer.nodeScale;return t==="x"?i=l.source.x+s*a/o:i=l.source.y+n*a/o,Reflect.set(e,t,i)}else if(t==="rotation")return i=i+Math.PI,Reflect.set(e,t,i);return!1}createScalleArrowCallback(){if(this.coreArrowScaleCallback||!Xe.needToChangeArrowScale(this.extendedLink.instances))return;let e=this.extendedLink.coreElement.arrow?.scale;if(e){let t=this.scaleArrow.bind(this);this.coreArrowScaleCallback=e.cb;let i=e.cb;e.cb=()=>{t(),i.call(e.scope)},t()}}restoreArrowScaleCallback(){if(!this.coreArrowScaleCallback)return;let e=this.extendedLink.coreElement.arrow?.scale;e&&(e.cb=this.coreArrowScaleCallback,this.coreArrowScaleCallback=void 0)}scaleArrow(){let e=this.extendedLink.coreElement,t=e.arrow;t&&(t.scale._x=t.scale._y=(this.instances.settings.arrowFixedSize?2*Math.sqrt(e.renderer.fLineSizeMult)*e.renderer.nodeScale:t.scale._y)*this.instances.settings.arrowScale)}createFlatArrow(){if(!this.instances.settings.enableFeatures[this.instances.type].arrows||!this.instances.settings.flatArrows)return;let e=this.extendedLink.coreElement.arrow;e&&(e.clear(),e.beginFill(16777215),e.moveTo(0,0),e.lineTo(-4,-2),e.lineTo(-4,2),e.lineTo(0,0),e.endFill(),this.hasChangedArrowShape=!0)}resetArrowShape(){if(!this.hasChangedArrowShape)return;let e=this.extendedLink.coreElement.arrow;!e||e.destroyed||(e.clear(),e.beginFill(16777215),e.moveTo(0,0),e.lineTo(-4,-2),e.lineTo(-3,0),e.lineTo(-4,2),e.lineTo(0,0),e.endFill())}};var jd=class extends lt{constructor(t){super();this.t=0;this.eventMode="none",this.extendedLink=t,this.init()}init(){this.alpha=0,this.beginFill(this.extendedLink.getStrokeColor(!0)||this.extendedLink.coreElement.renderer.colors.lineHighlight.rgb),this.drawCircle(0,0,3),this.endFill()}updateFrame(t){this.alpha=1;let i=dn(this.t,t.P0,t.P1,t.P2);this.position.set(i.x,i.y),this.scale.set(this.extendedLink.coreElement.renderer.fLineSizeMult/Math.sqrt(this.extendedLink.coreElement.renderer.scale)),this.t+=.01*u.settings.animationSpeedForDots,this.t>1&&(this.t=0)}};var $d=class extends lt{constructor(t){super();this.t=0;this.eventMode="none",this.extendedLink=t,this.init()}init(){this.alpha=0,this.beginFill(this.extendedLink.getStrokeColor(!0)||this.extendedLink.coreElement.renderer.colors.lineHighlight.rgb),this.drawCircle(0,0,3),this.endFill()}updateFrame(t){this.alpha=1,this.position.set(t.P0.x*(1-this.t)+t.P2.x*this.t,t.P0.y*(1-this.t)+t.P2.y*this.t),this.scale.set(this.extendedLink.coreElement.renderer.fLineSizeMult/Math.sqrt(this.extendedLink.coreElement.renderer.scale)),this.t+=.01*u.settings.animationSpeedForDots,this.t>1&&(this.t=0)}};var Wa=class extends lt{constructor(e){super(),this.eventMode="none",this.extendedLink=e,this.init()}init(){this.destroyed||(this.beginFill("white"),this.moveTo(0,0),this.lineTo(-4,-2),(!this.extendedLink.instances.settings.enableFeatures[this.extendedLink.instances.type].arrows||!this.extendedLink.instances.settings.flatArrows)&&this.lineTo(-3,0),this.lineTo(-4,2),this.lineTo(0,0),this.endFill(),this.name="arrow",this.zIndex=1,this.pivot.set(0,0),this.alpha=this.extendedLink.coreElement.renderer.colors.arrow.a,this.extendedLink.coreElement.arrow&&(this.extendedLink.coreElement.arrow.renderable=!1))}update(e,t,i){let s=this.extendedLink.coreElement.arrow?.alpha??1;this.extendedLink.instances.settings.enableFeatures[this.extendedLink.instances.type].arrows&&this.extendedLink.instances.settings.alwaysOpaqueArrows&&(this.extendedLink.isHighlighted()||!this.extendedLink.coreElement.renderer.getHighlightNode())&&(s=1);let n=this.extendedLink.coreElement;this.tint=e,this.alpha=s,this.position.set(t.x,t.y),this.rotation=i,this.scale.set((this.extendedLink.instances.settings.arrowFixedSize?2*Math.sqrt(n.renderer.fLineSizeMult)*n.renderer.nodeScale:2*Math.sqrt(n.renderer.fLineSizeMult)/n.renderer.scale)*this.extendedLink.instances.settings.arrowScale)}};var hn=class extends lt{constructor(e,t,i,s){super(),this.eventMode="none",this.manager=e,this.types=t,this.name="curve:"+i,this.extendedLink=s,this.bezier={P0:{x:0,y:0},P1:{x:0,y:0},P2:{x:0,y:0}},this.hasFaded=!this.extendedLink.instances.settings.fadeInElements,this.additionalConstruct(),this.updateValues()}additionalConstruct(){}updateValues(){if(this.activeType=this.extendedLink.getActiveType(this.manager.name),!this.activeType)return;let e=this.extendedLink.getStrokeColor();e!==void 0?this.color=e:this.extendedLink.instances.settings.interactiveSettings[this.manager.name].showOnGraph?this.color=this.manager.getColor(this.activeType):this.extendedLink.coreElement.line?this.color=Pi(this.extendedLink.coreElement.line.tint):this.color=this.extendedLink.coreElement.renderer.colors.line.rgb,this.redraw()}initArrow(){this.destroyed||(this.arrow=new Wa(this.extendedLink),ze(this,this.arrow))}redraw(){!this.activeType&&this.arrow&&(this.arrow.clear(),this.arrow.destroy(),this.arrow=null),this.updateFrame()}computeMainBezier(){if(this.destroyed)return!1;this.clear();let e=this.extendedLink.coreElement.renderer,t=this.extendedLink.coreElement,i=this.extendedLink.instances.settings.enableFeatures[this.extendedLink.instances.type].arrows&&this.extendedLink.instances.settings.invertArrows,s=i?t.source:t.target,n=i?t.target:t.source;if(!s.circle||!n.circle)return this.destroy(),!1;let o=e.nodeScale,a=s.x-n.x,l=s.y-n.y;this.bezier.P1={x:(n.x+s.x)*.5+l*.2*this.extendedLink.instances.settings.curvedFactor,y:(n.y+s.y)*.5-a*.2*this.extendedLink.instances.settings.curvedFactor};let c=l5(1,n,this.bezier.P1,s);return this.bezier.P0=dn(.9*n.getSize()*o/c,n,this.bezier.P1,s),this.bezier.P2=dn(1-.9*s.getSize()*o/c,n,this.bezier.P1,s),!0}getMiddlePoint(){return dn(.5,this.bezier.P0,this.bezier.P1,this.bezier.P2)}updateFrame(){if(!this.computeMainBezier())return!1;let e=this.extendedLink.coreElement;return e.line&&this.hasFaded&&(this.alpha=e.line.alpha),!0}updateArrow(e,t){this.extendedLink.coreElement.arrow&&this.extendedLink.coreElement.arrow.visible?(this.arrow||this.initArrow(),this.arrow?.update(e,this.bezier.P2,t+(this.bezier.P1.x>this.bezier.P2.x?Math.PI:0))):(this.arrow?.removeFromParent(),this.arrow?.clear(),this.arrow?.destroy(),this.arrow=null)}destroy(e){this.extendedLink.coreElement.arrow&&(this.extendedLink.coreElement.arrow.renderable=!0),!this.destroyed&&super.destroy(e)}clearGraphics(){this.destroyed||(this.arrow?.clear(),this.clear(),this.destroy({children:!0}),this.removeFromParent())}clear(){return this.destroyed?this:super.clear()}toggleType(e,t){this.updateValues()}};var Ua=class extends hn{updateValues(){this.arrowColor=this.extendedLink.instances.settings.enableFeatures[this.extendedLink.instances.type].arrows&&this.extendedLink.instances.settings.arrowColorBool&&this.extendedLink.instances.settings.arrowColor!==""?Vr(this.extendedLink.instances.settings.arrowColor):void 0,super.updateValues()}updateFrame(){if(!super.updateFrame())return!1;let e=this.extendedLink.coreElement.renderer;return this.lineStyle({width:this.extendedLink.getThicknessScale()*e.fLineSizeMult/e.scale,color:"white"}),this.moveTo(this.bezier.P0.x,this.bezier.P0.y).quadraticCurveTo(this.bezier.P1.x,this.bezier.P1.y,this.bezier.P2.x,this.bezier.P2.y),this.extendedLink.isHighlighted()?this.tint=(this.extendedLink.coreElement.line?.worldVisible?this.extendedLink.coreElement.line.tint:this.extendedLink.siblingLink?.coreElement.line?.tint)??Ba(this.tint,this.extendedLink.coreElement.renderer.colors.lineHighlight.rgb):this.tint=this.color,this.updateArrow(this.arrowColor??Pi(this.tint),-Math.atan(-l1(1,this.bezier.P0,this.bezier.P1,this.bezier.P2).m)),!0}destroy(e){this.extendedLink.coreElement.arrow&&(this.extendedLink.coreElement.arrow.renderable=!0),!this.destroyed&&super.destroy(e)}clearGraphics(){this.destroyed||(this.arrow?.clear(),this.clear(),this.destroy({children:!0}),this.removeFromParent())}clear(){return this.destroyed?this:super.clear()}toggleType(e,t){this.updateValues()}};var Va=class extends hn{additionalConstruct(){this.typesPositions={}}updateFrame(){if(this.typesPositions={},!super.updateFrame())return!1;let e=this.extendedLink.coreElement.renderer,t,i=this.extendedLink.getThicknessScale()*e.fLineSizeMult/e.scale,s={x:this.bezier.P0.x,y:this.bezier.P0.y},n={x:this.bezier.P1.x,y:this.bezier.P1.y},o=[...this.types].filter(a=>this.manager.isActive(a));if(this.extendedLink.isHighlighted()){if(this.lineStyle({width:i,color:"white"}),this.moveTo(this.bezier.P0.x,this.bezier.P0.y).quadraticCurveTo(this.bezier.P1.x,this.bezier.P1.y,this.bezier.P2.x,this.bezier.P2.y),this.tint=(this.extendedLink.coreElement.line?.worldVisible?this.extendedLink.coreElement.line.tint:this.extendedLink.siblingLink?.coreElement.line?.tint)??Ba(this.tint,this.extendedLink.coreElement.renderer.colors.lineHighlight.rgb),this.extendedLink.instances.settings.displayLinkTypeLabel){if(o.length===1)this.setTypePosition(o[0],this.bezier.P0,this.bezier.P1,this.bezier.P2);else if(o.length>0){let a=0;for(let l of o){let[c,h]=this.deCasteljau([s,n,this.bezier.P2],1/(o.length-a));s=h[0],n=h[1],this.setTypePosition(l,c[0],c[1],c[2]),++a}}}}else{if(t=this.color,o.length===1)this.lineStyle({width:i,color:"white"}),this.moveTo(this.bezier.P0.x,this.bezier.P0.y).quadraticCurveTo(this.bezier.P1.x,this.bezier.P1.y,this.bezier.P2.x,this.bezier.P2.y),this.setTypePosition(o[0],this.bezier.P0,this.bezier.P1,this.bezier.P2),this.tint=this.color;else if(o.length>0){this.tint="white";let a=0;this.moveTo(this.bezier.P0.x,this.bezier.P0.y);for(let l of o){let[c,h]=this.deCasteljau([s,n,this.bezier.P2],1/(o.length-a));s=h[0],n=h[1];let d=this.extendedLink.instances.settings.interactiveSettings[ne].showOnGraph?this.manager.getColor(l):this.color;this.lineStyle({width:i,color:d}),this.quadraticCurveTo(c[1].x,c[1].y,c[2].x,c[2].y),this.setTypePosition(l,c[0],c[1],c[2]),++a}this.extendedLink.instances.settings.interactiveSettings[ne].showOnGraph&&(t=this.manager.getColor(o[o.length-1]))}this.extendedLink.instances.settings.enableFeatures[this.extendedLink.instances.type].arrows&&this.extendedLink.instances.settings.arrowColorBool&&this.extendedLink.instances.settings.arrowColor!==""&&(t=Vr(this.extendedLink.instances.settings.arrowColor))}return this.updateArrow(t??Pi(this.tint),-Math.atan(-l1(1,s,n,this.bezier.P2).m)),!0}setTypePosition(e,t,i,s){this.typesPositions[e]={position:dn(.5,t,i,s),length:za(1,t,s)}}deCasteljau(e,t){if(t===0||t===1)return[e,e];let i=[],s=[];for(i.push(e[0]),s.push(e[e.length-1]);e.length>1;){let n=[];for(let o=0;o+1this.manager.isActive(k));if(this.extendedLink.siblingLink){let k=[...this.extendedLink.siblingLink.types.get(ne)??[]].filter(B=>this.manager.isActive(B));for(let B of k)v.includes(B)||v.unshift(B)}let C,w=this.extendedLink.getThicknessScale()*t.fLineSizeMult/t.scale;if(this.extendedLink.isHighlighted()){if(this.lineStyle({width:w,color:"white"}),this.moveTo(p.x,p.y).lineTo(g.x,g.y),this.tint=(this.extendedLink.coreElement.line?.worldVisible?this.extendedLink.coreElement.line.tint:this.extendedLink.siblingLink?.coreElement.line?.tint)??Ba(this.tint,this.extendedLink.coreElement.renderer.colors.lineHighlight.rgb),this.extendedLink.instances.settings.displayLinkTypeLabel){if(v.length===1)this.setTypePosition(v[0],p,g);else if(v.length>0){let k=1/v.length,B=0,L=p;for(let T of v){let W=k*(1+B),j={x:(1-W)*p.x+W*g.x,y:(1-W)*p.y+W*g.y};this.setTypePosition(T,L,j),L=j,++B}}}}else if(C=this.color,this.extendedLink.firstSibling||!this.extendedLink.siblingLink?.getActiveType(ne)){if(v.length===1)this.lineStyle({width:w,color:"white"}),this.moveTo(p.x,p.y).lineTo(g.x,g.y),this.tint=this.color,this.setTypePosition(v[0],p,g);else if(v.length>0){this.tint="white";let k=1/v.length,B=0;this.moveTo(p.x,p.y);let L=p;for(let T of v){let W=k*(1+B),j=this.extendedLink.instances.settings.interactiveSettings[ne].showOnGraph?this.manager.getColor(T):this.color;this.lineStyle({width:w,color:j});let I={x:(1-W)*p.x+W*g.x,y:(1-W)*p.y+W*g.y};this.lineTo(I.x,I.y),this.setTypePosition(T,L,I),L=I,++B}this.extendedLink.instances.settings.interactiveSettings[ne].showOnGraph&&(C=this.manager.getColor(v[v.length-1]))}this.extendedLink.instances.settings.enableFeatures[this.extendedLink.instances.type].arrows&&this.extendedLink.instances.settings.arrowColorBool&&this.extendedLink.instances.settings.arrowColor!==""&&(C=Vr(this.extendedLink.instances.settings.arrowColor))}i.line&&this.hasFaded&&(this.alpha=i.line.alpha),i.arrow&&i.arrow.visible?(this.arrow||this.initArrow(),this.arrow&&this.arrow.update(C??this.tint,g,-Math.atan(-(g.y-p.y)/(g.x-p.x))+(l.x>g.x?Math.PI:0))):(this.arrow?.removeFromParent(),this.arrow?.clear(),this.arrow?.destroy(),this.arrow=null)}setTypePosition(t,i,s){this.typesPositions[t]={position:{x:(i.x+s.x)*.5,y:(i.y+s.y)*.5},length:za(1,i,s)}}destroy(t){this.extendedLink.coreElement.arrow&&(this.extendedLink.coreElement.arrow.renderable=!0),!this.destroyed&&super.destroy(t)}clearGraphics(){this.destroyed||(this.arrow?.clear(),this.clear(),this.destroy({children:!0}),this.removeFromParent())}clear(){return this.destroyed?this:super.clear()}toggleType(t,i){this.updateValues()}};var Yd=class{constructor(e){this.name=e.id,this.extendedElement=e,this.managerGraphicsMap=new Map}createGraphics(){let e=1,t=this.extendedElement.instances;for(let[i,s]of t.linksSet.managers){let n=this.extendedElement.getTypes(i);this.createManagerGraphics(s,n,e),e++}}createManagerGraphics(e,t,i){let s=this.managerGraphicsMap.get(e.name);if(s&&!s.destroyed)this.setManagerGraphics(e,s);else{let n=new po(e,t,this.name,this.extendedElement);this.setManagerGraphics(e,n)}}setManagerGraphics(e,t){let i=this.managerGraphicsMap.get(e.name);i&&i!==t&&(i.parent&&i.removeFromParent(),i.destroyed||i.destroy({children:!0})),this.managerGraphicsMap.set(e.name,t),this.pixiElement=t}resetManagerGraphics(e){}clearGraphics(){this.pixiElement.clear()}destroyGraphics(){this.pixiElement.destroy({children:!0})}updateGraphics(){this.pixiElement?.updateValues()}connect(){let e=this.extendedElement.coreElement.renderer.hanger;if(!e.getChildByName(this.pixiElement.name)&&this.extendedElement.coreElement.px){this.pixiElement.extendedLink=this.extendedElement,this.extendedElement.coreElement.arrow&&(this.extendedElement.coreElement.arrow.renderable=!1);let t=Rc(this.extendedElement.coreElement.renderer.hanger,this.extendedElement.coreElement.px);Jt(e,this.pixiElement,t),this.extendedElement.instances.settings.fadeInElements&&!this.pixiElement.hasFaded&&Wr(this.pixiElement)}}disconnect(){for(let e of this.managerGraphicsMap.values())e.removeFromParent()}animate(){}};var Oa=class extends tt{constructor(e,t){super(),this.extendedLink=t,this.hasFaded=!this.extendedLink.instances.settings.fadeInElements,this.zIndex=2,this.text=new di(e),this.text.eventMode="none",this.computeCSSStyle(),this.text.style=this.getTextStyle(),this.text.resolution=2,this.needsGraphicsBackground()?(this.background=new lt,this.background.eventMode="none",ze(this,this.background,this.text)):this.needsSpriteBackground()?(this.background=new Lt(Se.WHITE),this.background.eventMode="none",ze(this,this.background,this.text)):ze(this,this.text),this.applyCSSChanges()}needsGraphicsBackground(){return this.style.borderWidth>0||this.style.radius>0}needsSpriteBackground(){return!this.needsGraphicsBackground()&&this.style.backgroundColor.a>0}connect(){this.destroyed||(ze(this.extendedLink.coreElement.renderer.hanger,this),this.extendedLink.instances.settings.fadeInElements&&!this.hasFaded&&Wr(this))}updateFrame(){return this.destroyed?!1:!this.isRendered||!this.extendedLink.managers.get(ne)?.isActive(this.text.text)||!this.parent||this.extendedLink.coreElement.renderer.textAlpha<=.001?(this.visible=!1,!1):(this.alpha=this.extendedLink.coreElement.renderer.textAlpha,this.visible=!0,this.extendedLink.coreElement.source.circle&&(this.scale.x=this.scale.y=this.extendedLink.coreElement.renderer.nodeScale,this.pivot.set(.5*this.getWidth()/this.scale.x,.5*this.getHeight()/this.scale.y)),!0)}computeCSSStyle(){this.style=this.extendedLink.instances.cssBridge.getLinkLabelStyle({source:this.extendedLink.coreElement.source.id,target:this.extendedLink.coreElement.target.id})}getTextStyle(){let e=new s0({fontFamily:this.style.textStyle.fontFamily,fontStyle:this.style.textStyle.fontStyle,fontVariant:this.style.textStyle.fontVariant,fontWeight:this.style.textStyle.fontWeight,letterSpacing:this.style.textStyle.letterSpacing,fontSize:this.style.textStyle.fontSize+this.extendedLink.coreElement.source.getSize()/4,fill:this.getTextColor(),lineHeight:1});if(this.style.textStyle.stroke){$e.applyTextStroke(e,this.style.textStyle.stroke);let{height:t}=xt.measureText(this.text.text,e);this.text.anchor.set(0,this.style.textStyle.stroke.width/t)}else this.text.anchor.set(0,0);return this.style.textStyle.dropShadow&&$e.applyTextShadow(e,this.style.textStyle.dropShadow,Ma(e.fill)??this.extendedLink.coreElement.renderer.colors.text.rgb),e}getTextColor(){if(this.extendedLink.instances.settings.colorLinkTypeLabel){let e=this.extendedLink.managers.get(ne)?.getColor(this.text.text);if(e)return e}if(this.textColor===void 0){if(this.style.textStyle.fill)return this.style.textStyle.fill}else if(this.textColor!==null)return this.textColor;return this.extendedLink.coreElement.renderer.colors.text.rgb}setDisplayedText(e){this.destroyed||(this.text.text=e)}updateTextColor(){this.text.style&&(this.text.style.fill=this.getTextColor())}updateTextBackgroundColor(e){this.destroyed||(this.background instanceof Lt?this.background.tint=e:this.drawGraphics(e),this.updateTextColor())}applyCSSChanges(){this.text.style=this.getTextStyle(),this.text.position.set(this.style.padding.left,this.style.padding.top),this.text.anchor.set(0,0),this.needsGraphicsBackground()?this.drawGraphics($e.backgroundColor):this.needsSpriteBackground()?this.drawSprite():this.background&&(this.background.removeFromParent(),this.background.destroy(),this.background=void 0)}getWidth(){return xt.measureText(this.text.text,this.text.style).width+this.style.padding.left+this.style.padding.right}getHeight(){return xt.measureText(this.text.text,this.text.style).fontProperties.fontSize+(this.style.textStyle.stroke?.width??0)+this.style.padding.top+this.style.padding.bottom}drawGraphics(e){this.background instanceof Lt&&(this.background.removeFromParent(),this.background.destroy(),this.background=new lt,this.background.eventMode="none",Jt(this,this.background,0)),this.background||(this.background=new lt,this.background.eventMode="none",Jt(this,this.background,0)),this.background.clear();let t=this.style.borderColor.a>0?this.style.borderColor.rgb:this.extendedLink.managers.get(ne)?.getColor(this.text.text)??this.extendedLink.coreElement.renderer.colors.line.rgb;this.style.backgroundColor.a>0&&(e=$e.colorAttributes2hex(this.style.backgroundColor)),this.background.lineStyle(this.style.borderWidth,t,1,1).beginFill(e).drawRoundedRect(0,0,this.getWidth(),this.getHeight(),this.style.radius)}drawSprite(){this.background instanceof lt&&(this.background.removeFromParent(),this.background.destroy(),this.background=new Lt(Se.WHITE),this.background.eventMode="none",Jt(this,this.background,0)),this.background||(this.background=new Lt(Se.WHITE),this.background.eventMode="none",Jt(this,this.background,0)),this.background.tint=this.style.backgroundColor.rgb,this.background.alpha=this.style.backgroundColor.a,this.background.width=this.getWidth(),this.background.height=this.getHeight()}},c1=class extends Oa{},Xd=class extends c1{updateFrame(){if(!super.updateFrame()||!this.extendedLink.graphicsWrapper)return!1;let e=this.extendedLink.graphicsWrapper.pixiElement;if(this.text.text in e.typesPositions){let t=e.typesPositions[this.text.text].position;return this.position.set(t.x,t.y),!0}return!1}},Kd=class extends c1{updateFrame(){if(!super.updateFrame()||!this.extendedLink.graphicsWrapper)return!1;let e=this.extendedLink.graphicsWrapper.pixiElement.getMiddlePoint();return this.position.set(e.x,e.y),!0}},u1=class extends Oa{updateFrame(){return super.updateFrame()?(this.visible=this.extendedLink.coreElement.line?.visible??!1,this.visible&&(this.position=this.getPosition(),this.hasFaded&&(this.alpha=this.extendedLink.coreElement.renderer.textAlpha??0)),!0):!1}},Zd=class extends u1{getPosition(){if(this.extendedLink.graphicsWrapper&&this.text.text in this.extendedLink.graphicsWrapper.pixiElement.typesPositions)return this.extendedLink.graphicsWrapper.pixiElement.typesPositions[this.text.text].position;if(this.extendedLink.siblingLink?.graphicsWrapper&&this.text.text in this.extendedLink.siblingLink.graphicsWrapper.pixiElement.typesPositions)return this.extendedLink.siblingLink.graphicsWrapper.pixiElement.typesPositions[this.text.text].position;{let e=this.extendedLink.coreElement.line?.getBounds();return!e||!this.parent?{x:0,y:0}:this.parent.toLocal({x:(e.left+e.right)*.5,y:(e.top+e.bottom)*.5})}}},Qd=class extends u1{getPosition(){let e=this.extendedLink.coreElement.line?.getBounds();return!e||!this.parent?{x:0,y:0}:this.parent.toLocal({x:(e.left+e.right)*.5,y:(e.top+e.bottom)*.5})}};var sC=100,nC=100,h8=class extends tt{},Gi=class{constructor(e){this.shape="circle";this.extendedElement=e,this.name=e.id,this.initShape()}initShape(){if(this.extendedElement.isCurrentNode&&this.extendedElement.instances.settings.currentNode.shape!=="circle"){this.shape=this.extendedElement.instances.settings.currentNode.shape;return}if(this.extendedElement.instances.settings.enableFeatures[this.extendedElement.instances.type].shapes){let e=Object.fromEntries(Object.entries(this.extendedElement.instances.settings.shapeQueries).sort((t,i)=>(t[1].index??0)-(i[1].index??0)));for(let t of Object.keys(e)){let i=new Hr(e[t]),s=qe(this.extendedElement.id);if(!s)return;if(i.doesMatch(s,this.extendedElement.instances.settings)){this.shape=t;return}}}}createGraphics(){this.pixiElement&&!this.pixiElement.destroyed||(this.pixiElement&&this.pixiElement.parent&&this.pixiElement.removeFromParent(),this.pixiElement=new h8,this.pixiElement.hasFaded=!this.extendedElement.instances.settings.fadeInElements,this.pixiElement.name=this.name,this.placeNode(),this.extendedElement.needOpacityLayer()&&this.initOpacityLayer())}placeNode(){this.pixiElement.x=sC,this.pixiElement.y=nC}initOpacityLayer(){this.opacityLayer=new We(this.shape),this.opacityLayer.drawFill(16711680),this.opacityLayer.scale.set(this.opacityLayer.getDrawingResolution()),this.opacityLayer.alpha=0,this.opacityLayer.name="opacity-layer",ze(this.pixiElement,this.opacityLayer)}initIcon(){if(this.extendedElement.icon&&!(!this.extendedElement.icon.svg&&!this.extendedElement.icon.emoji)&&!(this.iconSprite?.parent||this.emojiText?.parent))if(this.extendedElement.icon.svg){let e=this.extendedElement.icon.svg,t=this.extendedElement.icon.color||this.getFillColor().rgb,i=new XMLSerializer,s=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(i.serializeToString(e))}`;this.pixiElement.sortableChildren=!0;let n=a=>{this.iconSprite=new Lt(a),this.iconSprite.eventMode="none",this.iconSprite.name="icon",this.iconSprite.anchor.set(.5,.5),this.iconSprite.tint=t,this.extendedElement.instances.settings.backgroundOpacityWithIcon>0||this.extendedElement.instances.settings.borderWidthWithIcon>0?(this.iconSprite.height=160,this.iconSprite.width=160):(this.iconSprite.height=200,this.iconSprite.width=200),ze(this.pixiElement,this.iconSprite)},o=Se.from(s,{resourceOptions:{scale:40/e.width.baseVal.value}});n(o)}else this.extendedElement.icon.emoji&&(this.emojiText=new di(this.extendedElement.icon.emoji,{fontFamily:"Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji, Android Emoji, EmojiSymbols, Symbola, Twemoji Mozilla, Twemoji Mozilla Color Emoji, Twemoji Mozilla Color Emoji 13.1.0",fontSize:this.extendedElement.instances.settings.backgroundOpacityWithIcon>0?130:150,align:"center"}),this.emojiText.eventMode="none",this.emojiText.name="icon",this.emojiText.anchor.set(.5,.5),ze(this.pixiElement,this.emojiText))}updateIconBackgroundLayerColor(e){this.iconBackgroundLayer&&(this.iconBackgroundLayer.tint=e)}clearGraphics(){}destroyGraphics(){this.pixiElement.destroy({children:!0})}updateGraphics(){}updateOpacityLayerColor(e){this.opacityLayer&&(this.opacityLayer.clear(),this.opacityLayer.drawFill(e))}updateFillColor(e,t){return this.lastColor===e?!1:(this.lastColor=e,this.iconSprite&&(this.iconSprite.tint=(t?e??this.extendedElement.icon?.color:this.extendedElement.icon?.color??e)??this.getFillColor().rgb),!0)}connect(){this.extendedElement.coreElement.circle&&!this.extendedElement.coreElement.circle.getChildByName(this.name)&&(ze(this.extendedElement.coreElement.circle,this.pixiElement),this.extendedElement.instances.settings.fadeInElements&&!this.pixiElement.hasFaded&&Wr(this.pixiElement))}disconnect(){this.pixiElement.removeFromParent()}makeOpaque(){this.opacityLayer&&(this.opacityLayer.alpha=0)}makeFaded(){this.opacityLayer&&(this.opacityLayer.alpha=.8)}pin(){!this.extendedElement.instances.settings.showPinIcon||this.pixiElement.getChildByName("pin")||Ds.load(u.pinSVGDataUrl).then(t=>{let i=new Lt(t);i.eventMode="none",i.name="pin",i.anchor.set(1,0),i.height=80,i.width=80,i.position.set(100,-100),ze(this.pixiElement,i),this.pixiElement.parent||this.connect()})}unpin(){let e=this.pixiElement.getChildByName("pin");e&&(e.destroy(),this.pixiElement.removeChild(e))}getFillColor(){return this.extendedElement.coreElement.getFillColor()}};var t1=class extends Gi{createGraphics(){super.createGraphics(),this.texture&&this.initNodeImage(this.texture)}initNodeImage(e){if(this.extendedElement.needImage()&&(this.nodeImage&&(this.nodeImage.destroyed||!this.nodeImage.parent)&&(this.nodeImage.parent&&this.nodeImage.removeFromParent(),this.nodeImage.destroyed||this.nodeImage.destroy({children:!0})),e)){this.texture=e,this.nodeImage=new Ha(e,this.extendedElement.instances.settings.borderFactor,this.shape);let t=this.pixiElement.getChildByName("opacity-layer");if(t){let i=this.pixiElement.getChildIndex(t);Jt(this.pixiElement,this.nodeImage,i)}else ze(this.pixiElement,this.nodeImage);this.extendedElement.instances.settings.fadeInElements&&!this.nodeImage.hasFaded&&Wr(this.nodeImage)}}clearGraphics(){this.nodeImage?.destroy({children:!0}),super.clearGraphics()}};var i1=class extends Gi{createGraphics(){super.createGraphics(),this.extendedElement.needBackground()&&this.initBackground(),this.extendedElement.needArcs()&&this.initArcsWrapper(),this.texture&&this.initNodeImage(this.texture)}initArcsWrapper(){if(this.managerGraphicsMap&&this.managerGraphicsMap.size>0){for(let t of this.managerGraphicsMap.values()||[])t.parent&&t.removeFromParent(),t.destroyed||t.destroy({children:!0});this.managerGraphicsMap.clear()}else this.managerGraphicsMap=new Map;let e=1;for(let[t,i]of this.extendedElement.managers){if(!this.extendedElement.instances.settings.interactiveSettings[t].showOnGraph)continue;let s=this.extendedElement.getTypes(t);this.createManagerGraphics(i,s,e),e++}}initBackground(){this.background&&(this.background.parent&&this.background.removeFromParent(),this.background.destroyed||this.background.destroy({children:!0})),this.background=new We(this.shape),this.extendedElement.instances.settings.enableFeatures[this.extendedElement.instances.type].shapes&&this.updateBackgroundColor(this.getFillColor().rgb,!1),this.background.scale.set(this.background.getDrawingResolution()),Jt(this.pixiElement,this.background,0)}initNodeImage(e){if(this.extendedElement.needImage()&&(this.nodeImage&&(this.nodeImage.destroyed||!this.nodeImage.parent)&&(this.nodeImage.parent&&this.nodeImage.removeFromParent(),this.nodeImage.destroyed||this.nodeImage.destroy({children:!0})),e)){this.texture=e,this.nodeImage=new Ha(e,this.extendedElement.instances.settings.borderFactor,this.shape),this.nodeImage.hasFaded=!this.extendedElement.instances.settings.fadeInElements;let t=this.pixiElement.getChildByName("opacity-layer");if(t){let i=this.pixiElement.getChildIndex(t);Jt(this.pixiElement,this.nodeImage,i)}else ze(this.pixiElement,this.nodeImage);this.pixiElement.parent||this.connect(),this.extendedElement.instances.settings.fadeInElements&&!this.nodeImage.hasFaded&&Wr(this.nodeImage)}}createManagerGraphics(e,t,i){let s=new h1(this.extendedElement,t,e,i,this.shape);this.managerGraphicsMap?.set(e.name,s),ze(this.pixiElement,s)}resetManagerGraphics(e){if(!qe(this.extendedElement.id))return;let i=this.managerGraphicsMap?.get(e.name),s=this.extendedElement.getTypes(e.name);i?(i.clearGraphics(),i.setTypes(s),i.updateValues()):this.createManagerGraphics(e,s,this.managerGraphicsMap?.size??0)}updateFillColor(e,t){return super.updateFillColor(e,t)?(this.updateBackgroundColor(e??this.getFillColor().rgb,t),!0):!1}updateBackgroundColor(e,t){if(this.background){if(this.background.clear(),this.extendedElement.icon){if(this.extendedElement.instances.settings.borderWidthWithIcon>0){let i=t?e:this.extendedElement.icon.color??e;this.background.lineStyle({color:i,width:this.extendedElement.instances.settings.borderWidthWithIcon/this.background.getDrawingResolution()})}e=yh($e.backgroundColor,e,this.extendedElement.instances.settings.backgroundOpacityWithIcon)}this.background.drawFill(e)}}clearGraphics(){if(this.background?.destroy(),this.nodeImage?.destroy({children:!0}),this.managerGraphicsMap)for(let e of this.managerGraphicsMap.values())e.clearGraphics();super.clearGraphics()}};var n1=class extends Gi{};var a1=class extends Gi{createGraphics(){super.createGraphics(),this.extendedElement.needInnerCircle()&&this.initInnerCircle()}initInnerCircle(){typeof this.extendedElement.instances.settings.borderUnresolved=="number"&&(this.innerCircle&&(this.innerCircle.parent&&this.innerCircle.removeFromParent(),this.innerCircle.destroyed||this.innerCircle.destroy({children:!0})),this.innerCircle=new We(this.shape),this.innerCircle.alpha=5,this.innerCircle.scale.set(this.innerCircle.getDrawingResolution()*(1-this.extendedElement.instances.settings.borderUnresolved)),Jt(this.pixiElement,this.innerCircle,0))}updateOpacityLayerColor(e){super.updateOpacityLayerColor(e),this.innerCircle&&(this.innerCircle.clear(),this.innerCircle.drawFill(e))}clearGraphics(){this.innerCircle?.destroy(),super.clearGraphics()}};var d8=class{},er=class er extends lt{constructor(t,i,s,n,o){super();this.graphics=new Map;this.eventMode="none",this.name=s.name,this.extendedNode=t,this.types=i,this.manager=s,this.circleLayer=n,this.shape=o,this.updateValues()}clearGraphics(){for(let t of this.graphics.values())t.graphic.destroy();this.removeChildren(),this.graphics.clear()}updateValues(){let t=this.manager.getTypesWithoutNone(),i=t.length,s=Math.min(2*Math.PI/i,er.maxArcSize);this.radius=(.5+(er.thickness+er.inset)*this.circleLayer)*We.getSizeFactor(this.shape)*We.RADIUS*2,this.thickness=er.thickness*We.getSizeFactor(this.shape)*We.RADIUS*2;for(let n of this.types){if(n===this.manager.instances.settings.interactiveSettings[this.manager.name].noneType)continue;let o=t.findIndex(l=>l===n),a=this.graphics.get(n);if(!a){if(a=new d8,a.type=n,a.index=o,a.size=s,a.graphic=new lt,a.graphic.eventMode="none",a.graphic.name=this.getArcName(n),a.color=this.manager.getColor(n),a.weight=1,this.manager.instances.settings.spreadArcs&&this.manager.instances.settings.weightArcs){let l=qe(this.extendedNode.id);l&&(a.weight=c5(this.manager.name,l,n,this.extendedNode.instances.settings.ignoreInlineLinks))}this.graphics.set(n,a),ze(this,a.graphic)}}for(let n of this.types)this.redrawType(n)}redrawType(t,i){let s=this.graphics.get(t);if(s){if(i&&(s.color=i),this.manager.instances.settings.spreadArcs){let n=[...this.types].filter(c=>this.manager.isActive(c)),o=n.reduce((c,h)=>c+(this.graphics.get(h)?.weight||0),0),a=n.slice(0,n.indexOf(t));s.size=s.weight*2*Math.PI/o,s.index=a.reduce((c,h)=>c+(this.graphics.get(h)?.weight||0),0);let l=[...this.types].some(c=>c!==t&&this.manager.isActive(c));if(s.startAngle=2*Math.PI/o*s.index,s.endAngle=s.startAngle+s.size,l){let c=s.endAngle-s.startAngle;s.startAngle+=Math.min(c*.1,er.gap*.5),s.endAngle-=Math.min(c*.1,er.gap*.5)}}else{s.startAngle=s.size*s.index,s.endAngle=s.size*(s.index+1);let n=s.endAngle-s.startAngle;s.startAngle+=Math.min(n*.1,er.gap*.5),s.endAngle-=Math.min(n*.1,er.gap*.5)}s.graphic.clear(),s.graphic.lineStyle(this.thickness,s.color).arc(0,0,this.radius,s.startAngle,s.endAngle).endFill(),s.graphic.alpha=this.manager.isActive(t)?1:.1}}updateFrame(){}toggleType(t,i){if(this.manager.instances.settings.spreadArcs)this.updateValues();else{let s=this.graphics.get(t);s&&(s.graphic.alpha=i?1:.1)}}setTypes(t){this.types=t}getArcName(t){return"arc-"+t}};er.thickness=.09,er.inset=.03,er.gap=.2,er.maxArcSize=Math.PI/2;var h1=er;var Ha=class extends Lt{constructor(t=Se.EMPTY,i,s){super(t);this.hasFaded=!1;this.textureSize=Math.min(t.width,t.height),this.name="image",this.anchor.set(.5);let n=new We(s).drawMask();this.mask=n,ze(this,n);let o=2*100*We.getSizeFactor(s)/this.textureSize,a=o*(1-i);this.scale.set(a),n.scale.set(n.getDrawingResolution()/o)}changeImage(t){this.texture=t}};var Ts=(g=>(g.CIRCLE="circle",g.SQUARE="square",g.POLY_3="triangle",g.POLY_4="diamond",g.POLY_5="pentagon",g.POLY_6="hexagon",g.POLY_8="octagon",g.POLY_10="decagon",g.STARBURST_4="star4",g.STARBURST_5="star5",g.STARBURST_6="star6",g.STARBURST_8="star8",g.STARBURST_10="star10",g))(Ts||{});var Ge=class Ge extends lt{constructor(e){super(),this.shape=e,this.n=Ge.getN(e),this.type=Ge.getType(e)}drawMask(){return this.clear(),this.drawFill(16777215)}drawFill(e){return this.beginFill(e).drawUniqueShape().endFill()}getDrawingResolution(){switch(this.type){case"circle":case"unknown":return Ge.RESOLUTION_RADIUS;default:return 1}}drawUniqueShape(){switch(this.type){case"polygon":case"starburst":return this.drawPolygon(Ge.getVertices(this.shape));case"square":return this.drawRect(-Ge.RADIUS,-Ge.RADIUS,2*Ge.RADIUS,2*Ge.RADIUS);case"circle":case"unknown":return this.drawCircle(0,0,Ge.RESOLUTION_RADIUS)}}static randomShape(){let e=Object.keys(Ts).filter(i=>typeof i=="string"),t=e[Math.floor(Math.random()*e.length)];return Ts[t]}static nodeScaleFactor(e){let t=Ge.getType(e);if(t==="polygon"){let i=Ge.getPolygonRadius(Ge.getN(e),Ge.RADIUS),s=Ge.RADIUS;return(i+s)/2/i}if(t==="starburst"){let i=Ge.getStarburstRadius(Ge.getN(e),Ge.RADIUS),s=Ge.RADIUS;return(i+s)/2/i}return 1}static getSizeFactor(e){let t=Ge.getType(e);return t==="polygon"?this.getPolygonRadius(Ge.getN(e),Ge.RADIUS)/Ge.RADIUS:t==="starburst"?this.getStarburstRadius(Ge.getN(e),Ge.RADIUS)/Ge.RADIUS:1}static getN(e){switch(e){case"triangle":return 3;case"diamond":case"star4":return 4;case"pentagon":case"star5":return 5;case"hexagon":case"star6":return 6;case"octagon":case"star8":return 8;case"decagon":case"star10":return 10;case"circle":return 10;default:return 0}}static getType(e){switch(e){case"triangle":case"diamond":case"pentagon":case"hexagon":case"octagon":case"decagon":return"polygon";case"star4":case"star5":case"star6":case"star8":case"star10":return"starburst";case"square":return"square";case"circle":return"circle";default:return"unknown"}}static getVertices(e){switch(Ge.getType(e)){case"polygon":return Ge.getPolygonOutside(e,0,Ge.RADIUS);case"starburst":return Ge.getStarburst(e,Ge.RADIUS)}return[]}static getPolygonInside(e,t,i){let s=Ge.getN(e),n=[];for(let o=0;o!s.handled&&this.instances.nodesSet.extendedElementsMap.has(i))),t=Object.keys(e).length;for(let[i,s]of this.instances.nodesSet.extendedElementsMap)e.hasOwnProperty(i)&&(!s.isPinned||s.coreElement.x!==e[i].x||s.coreElement.y!==e[i].y)?this.pinNode(i,e[i].x,e[i].y,Math.min(.1*t,1)):!this.instances.statePinnedNodes.hasOwnProperty(i)&&s.isPinned&&this.unpinNode(i),this.instances.statePinnedNodes.hasOwnProperty(i)&&(this.instances.statePinnedNodes[i].handled=!0);Object.keys(e).length===0&&(this.instances.statePinnedNodes=null)}pinNode(e,t,i,s=.3){let n=this.instances.nodesSet.extendedElementsMap.get(e);if(!n)return;let o=n.coreElement;t!==void 0&&(o.x=t),i!==void 0&&(o.y=i),o.fx=o.x,o.fy=o.y,this.instances.nodesSet.instances.renderer.worker.postMessage({alpha:s,alphaTarget:0,run:!0,forceNode:{id:o.id,x:o.x,y:o.y}}),n.pin()}unpinNode(e){let t=this.instances.nodesSet.extendedElementsMap.get(e);if(!t)return;let i=t.coreElement;i.fx=null,i.fy=null,this.instances.nodesSet.instances.renderer.worker.postMessage({alpha:.3,alphaTarget:0,run:!0,forceNode:{id:i.id,x:null,y:null}}),r.lastDraggedPinnedNode===e&&(r.lastDraggedPinnedNode=null),t.unpin()}unpinAllNodes(){for(let[e,t]of this.instances.nodesSet.extendedElementsMap)t.isPinned&&this.unpinNode(e);this.instances.renderer.changed()}setLastDraggedPinnedNode(e){r.lastDraggedPinnedNode=e}pinLastDraggedPinnedNode(){r.lastDraggedPinnedNode&&(this.pinNode(r.lastDraggedPinnedNode),r.lastDraggedPinnedNode=null)}pinInShape(e,t){let i;switch(e.type){case"circle":i=new d1(this.instances,e);break;case"grid":i=new p1(this.instances,e);break;default:return}let n=new Hr(t).getMatches(this.instances.settings).map(a=>a.path),o=[...this.instances.nodesSet.extendedElementsMap.values()].filter(a=>n.includes(a.id));i.pinNodes(o)}};var u5={circle:m("features.shapesNames.circle"),grid:m("features.shapesNames.grid")},f1=class{constructor(e,t,i){this.type=t,this.data=i,this.pinner=new yt(e)}pinNodes(e){this.pinShape(e),this.pinner.instances.renderer.changed()}},d1=class extends f1{constructor(e,t){super(e,"circle",t)}pinShape(e){let t=e.length,i=Math.max(200,t*this.data.step/(2*Math.PI));for(let s=0;s0&&this.handleMissingElements(t),t}initializeManagers(e){for(let t of e)this.managers.has(t.name)||this.managers.set(t.name,t)}initializeTypesMap(){for(let e of this.managers.keys())this.typesMap.hasOwnProperty(e)||(this.typesMap[e]={})}addMissingInteractiveTypes(e){if(!this.managers.has(e))return;let t=new Set,i=!1;for(let s of this.coreCollection){let n=this.getID(s);if(this.extendedElementsMap.has(n))continue;let o=this.getAbstractFile(s);i=!0;let a=new Set;s.type==="tag"&&e===He?a.add(s.id.replace("#","")):o&&o instanceof h5.TFile?(a=this.getTypesFromFile(e,s,o),a.size===0&&a.add(this.instances.settings.interactiveSettings[e].noneType)):a.add(this.instances.settings.interactiveSettings[e].noneType),this.addTypes(e,a,n,t)}return this.managers.get(e)?.addTypes(t),i}addTypes(e,t,i,s){let n=!1;for(let o of t)this.isTypeValid(e,o)&&(this.managers.get(e)?.interactives.has(o)||s.add(o),this.typesMap[e].hasOwnProperty(o)||(this.typesMap[e][o]=new Set),this.typesMap[e][o].add(i),n=!0);if(!n){let o=this.instances.settings.interactiveSettings[e].noneType;this.typesMap[e].hasOwnProperty(o)||(this.typesMap[e][o]=new Set),this.typesMap[e][o].add(i),this.managers.get(e)?.interactives.has(o)||s.add(o)}}addMissingElements(e){let t=new Set;for(let i of this.coreCollection){let s=this.getID(i);if(e&&e!==s)continue;let n=this.extendedElementsMap.get(s);n?n.setCoreElement(i):(t.add(s),this.createExtendedElement(i))}return t}handleMissingElements(e){for(let t of e){let i=this.extendedElementsMap.get(t);if(!i)return;i.init(),this.handleMissingElement(i)}}unload(){this.clearExtendedElements(),this.clearMaps()}clearExtendedElements(){this.extendedElementsMap.forEach(e=>{e.unload()})}clearMaps(){this.extendedElementsMap.clear(),this.connectedIDs.clear(),this.managers.clear()}getTypes(e,t){let s=[...Object.getOwnPropertyNames(this.typesMap[e])].filter(n=>this.typesMap[e][n]?.has(this.getID(t)));return new Set(s)}getElementsByTypes(e,t){let i=new Set;for(let s of t)this.typesMap[e][s]?.forEach(n=>{i.add(n)});return i}isTypeValid(e,t){return!Xe.excludeType(this.instances.settings,e,t)}disableType(e,t){let i=[];for(let[s,n]of this.extendedElementsMap)n.getTypes(e).has(t)&&n.disableType(e,t),n.isAnyManagerDisabled()?n.isEnabled&&(n.disable(),i.push(s)):n.isEnabled||n.enable();return i}enableType(e,t){let i=[];for(let[s,n]of this.extendedElementsMap)n.getTypes(e).has(t)&&n.enableType(e,t),n.isAnyManagerDisabled()?n.isEnabled&&n.disable():n.isEnabled||(n.enable(),i.push(s));return i}disableElements(e){return new Set(e.filter(t=>this.disableElement(t)))}disableElement(e){let t=this.extendedElementsMap.get(e);return t?(this.connectedIDs.delete(e),t.isEnabled&&t.disable(),t.coreElement.clearGraphics(),this.coreCollection.remove(t.coreElement),!0):!1}enableElements(e){return new Set(e.filter(t=>this.enableElement(t)))}enableElement(e){let t=this.extendedElementsMap.get(e);return!t||(this.connectedIDs.add(e),!t.canBeAddedWithEngineOptions())?!1:(t.getCoreCollection().includes(t.coreElement)||t.getCoreCollection().push(t.coreElement),t.coreElement.initGraphics(),t.isEnabled||t.enable(),!0)}updateTypeColor(e,t,i){let s=this.getElementsByTypes(e,[t]);for(let n of s){let o=this.extendedElementsMap.get(n);if(!o)return;this.updateTypeColorForElement(o,e,t,i)}}updateTypeColorForElement(e,t,i,s){e.types.get(t)?.add(i),e.graphicsWrapper?.managerGraphicsMap?.get(t)?.updateValues()}delete(e){e.graphicsWrapper?.disconnect(),e.graphicsWrapper?.destroyGraphics(),this.extendedElementsMap.delete(e.id)}};Oc=new WeakMap;var d5=require("obsidian");var p8=class{constructor(e,t,i){this.nodes=[];this.path=e,this.folderStyle=t,this.color=i||Cd()}initGraphics(e){this.area=new lt,this.area.eventMode="none",this.initTextStyle(),this.text=new di(e?this.path:fi(this.path).basename,this.textStyle),this.text.eventMode="none",this.text.resolution=2,ze(this.area,this.text)}initTextStyle(){this.textStyle=new s0({fontSize:this.folderStyle.textStyle.textStyle.fontSize,fill:this.color,fontFamily:this.folderStyle.textStyle.textStyle.fontFamily,fontStyle:this.folderStyle.textStyle.textStyle.fontStyle,fontVariant:this.folderStyle.textStyle.textStyle.fontVariant,fontWeight:this.folderStyle.textStyle.textStyle.fontWeight,letterSpacing:this.folderStyle.textStyle.textStyle.letterSpacing,whiteSpace:"pre",wordWrap:!0,wordWrapWidth:300,align:this.folderStyle.textStyle.align}),this.folderStyle.textStyle.textStyle.dropShadow&&this.text&&$e.applyTextShadow(this.textStyle,this.folderStyle.textStyle.textStyle.dropShadow,Ma(this.textStyle.fill)??this.nodes.first()?.renderer.colors.text.rgb??0),this.folderStyle.textStyle.textStyle.stroke&&$e.applyTextStroke(this.textStyle,this.folderStyle.textStyle.textStyle.stroke),this.text&&(this.text.style=this.textStyle)}clearGraphics(){this.area.removeFromParent(),this.area.destroy(),this.text?.destroy()}updateGraphics(e){this.nodes.length>0?(this.draw(),this.placeText(e),this.text.visible=!0):(this.area.clear(),this.text.visible=!1)}addNode(e){this.nodes.includes(e)||this.nodes.push(e)}removeNode(e){this.nodes.remove(e)}draw(){this.computeBox(),this.drawBox()}drawBox(){this.area.clear(),this.area.lineStyle(this.folderStyle.borderWidth,this.color,this.folderStyle.strokeOpacity,1).beginFill(this.color,this.folderStyle.fillOpacity).drawRoundedRect(this.BBox.left,this.BBox.top,this.BBox.right-this.BBox.left,this.BBox.bottom-this.BBox.top,this.folderStyle.radius).endFill()}computeBox(){let e=this.nodes[0].x,t=this.nodes[0].x,i=this.nodes[0].y,s=this.nodes[0].y;for(let n of this.nodes)n.xt&&(t=n.x),n.ys&&(s=n.y);this.BBox={left:e-50-this.folderStyle.padding.left,right:t+50+this.folderStyle.padding.right,top:i-50-this.folderStyle.padding.top,bottom:s+50+this.folderStyle.padding.bottom}}placeText(e){let t=Math.min(e,5);switch(this.text.style.fontSize=this.folderStyle.textStyle.textStyle.fontSize*t,this.text.style.letterSpacing=this.folderStyle.textStyle.textStyle.letterSpacing*t,this.folderStyle.textStyle.align){case"center":this.textAnchor=new Ne(.5,0),this.text.x=this.BBox.left+.5*(this.BBox.right-this.BBox.left);break;case"left":this.textAnchor=new Ne(0,0),this.text.x=this.BBox.left+this.folderStyle.padding.left;break;case"right":this.textAnchor=new Ne(1,0),this.text.x=this.BBox.right-this.folderStyle.padding.right;break}this.text.anchor.set(this.textAnchor.x,this.textAnchor.y),this.text.y=this.BBox.top+this.folderStyle.padding.top,this.text.scale.set(1/t)}},_d=class{constructor(e,t){this.foldersMap=new Map;this.instances=e,this.initializeManager(t)}initializeManager(e){this.managers=new Map;for(let t of e)this.managers.set(t.name,t)}load(){this.initGraphics(),this.addMissingFolders()}initGraphics(){if(!(this.container&&!this.container.destroyed)){this.container=new tt,this.container.name="Blobs",Jt(this.instances.renderer.hanger,this.container,0);for(let e of this.foldersMap.values())e.area.destroyed&&this.loadFolder(pe,e.path)}}addMissingFolders(){for(let[e,t]of this.managers){let i=new Set;for(let s of this.instances.renderer.nodes){let n=qe(s.id);if(!n||this.foldersMap.has(n.path))continue;let o=ct(pe,n);this.addInteractivesToSet(e,o,i)}t.addTypes(i)}}addInteractivesToSet(e,t,i){let s=this.managers.get(e);if(!s)return;let n=!1;for(let o of t)s.interactives.has(o)?n=!0:this.isFolderValid(o)&&(i.add(o),n=!0);!n&&!s.interactives.has(this.instances.settings.interactiveSettings[pe].noneType)&&i.add(this.instances.settings.interactiveSettings[pe].noneType)}isFolderValid(e){return!Xe.excludeType(this.instances.settings,pe,e)}unload(){this.container.destroy({children:!0}),this.container.removeFromParent(),this.foldersMap.clear()}loadFolder(e,t){let i=this.managers.get(e),s=u.app.vault.getFolderByPath(t);if(s&&i){let n=this.foldersMap.get(t),o=!0;n?(n.area.destroyed||!n.area.parent)&&(o=!1,n.initGraphics(this.instances.settings.folderShowFullPath)):(o=!1,n=new p8(t,this.instances.stylesData?.folder??$e.DEFAULT_FOLDER_STYLE,i?i.getColor(t):void 0),n.initGraphics(this.instances.settings.folderShowFullPath));let a=this.getNodesInFolder(s);for(let l of a)n.addNode(l);n.nodes.length>0&&(this.foldersMap.set(t,n),n.updateGraphics(this.instances.renderer.scale),o||ze(this.container,n.area))}}getNodesInFolder(e){let t=[];for(let i of e.children)if(i instanceof d5.TFolder)t.push(...this.getNodesInFolder(i));else{let s=this.instances.renderer.nodes.find(n=>n.id===i.path);s&&t.push(s)}return t}removeFolder(e){this.foldersMap.get(e)?.clearGraphics(),this.foldersMap.delete(e)}updateGraphics(){for(let[e,t]of this.foldersMap)t.updateGraphics(this.instances.renderer.scale)}updateColor(e,t){let i=this.managers.get(e),s=this.foldersMap.get(t);!s||!i||(s.color=i.getColor(t),s.updateGraphics(this.instances.renderer.scale))}onCSSChange(){for(let e of this.foldersMap.values())e.folderStyle=this.instances.stylesData?.folder??$e.DEFAULT_FOLDER_STYLE,e.initTextStyle()}hasMoreThanOneNode(e,t){let i=this.foldersMap.get(t);if(i)return i.nodes.length>1;let s=u.app.vault.getFolderByPath(t);return s?this.getNodesInFolder(s).length>1:!1}enableAll(){let e=this.managers.get(pe);e&&(e.enable(e.getTypes()),this.instances.foldersUI?.enableAllUI(pe))}disableAll(){let e=this.managers.get(pe);e&&(e.disable(e.getTypes()),this.instances.foldersUI?.disableAllUI(pe))}enableAllWithAtLeastOneNode(){let e=this.managers.get(pe);if(!e)return;let t=e.getTypes(),i=[];for(let s of t)this.instances?.foldersSet?.hasMoreThanOneNode(pe,s)&&(i.push(s),this.instances.foldersUI?.enableUI(pe,s));e.enable(i)}disableAllWithAtLeastOneNode(){let e=this.managers.get(pe);if(!e)return;let t=e.getTypes(),i=[];for(let s of t)this.instances?.foldersSet?.hasMoreThanOneNode(pe,s)&&(i.push(s),this.instances.foldersUI?.disableUI(pe,s));e.disable(i)}};var Fd=class extends ja{constructor(e,t){super(e,t),this.coreCollection=this.instances.renderer.links}handleMissingElement(e){}createExtendedElement(e){let t=Wt(e),i=new Map;for(let[n,o]of this.managers)i.set(n,this.getTypes(n,e));let s=new Wd(this.instances,e,i,[...this.managers.values()]);return this.extendedElementsMap.set(t,s),this.connectedIDs.add(t),s}getID(e){return Wt(e)}getTypesFromFile(e,t,i){return Lo(this.instances.settings,i).get(t.target.id)??new Set}getAbstractFile(e){return qe(e.source.id)}onCSSChange(){this.extendedElementsMap.forEach(e=>{if(e.texts)for(let t of e.texts)t.computeCSSStyle(),t.applyCSSChanges()})}updateTypeColorForElement(e,t,i,s){if(super.updateTypeColorForElement(e,t,i,s),e.texts)for(let n of e.texts)n.updateTextColor()}delete(e){if(e.texts)for(let t of e.texts)t.destroy();super.delete(e)}};var Gc=require("obsidian");var Ad=class extends ja{constructor(t,i){super(t,i);this.selectedNodes={};this.cachedExternalLinks={};this.coreCollection=this.instances.renderer.nodes,this.selectionFilter=new un(3,this.instances.renderer.colors.fillHighlight.rgb,.1,1,!1),this.searchResultFilter=new un(2,this.instances.cssBridge.getSearchColor(),.1,1,!1),this.openFilter=new un(2,this.instances.renderer.colors.fillHighlight.rgb,.1,1,!1)}load(t){if(this.instances.settings.externalLinks!=="none")if(t)this.cacheExternalLinks(t).then(i=>{i&&this.instances.engine.render()});else{let i=new Gc.Component;i.load(),this.cacheAllExternalLinks(i).then(s=>{i.unload(),s.some(n=>n)&&this.instances.engine.render()})}return super.load(t)}handleMissingElement(t){this.instances.layersManager?.addNode(t.id),this.applyBackgroundColor(t),this.loadAsset(t),this.instances.settings.enableFeatures[this.instances.type].focus&&(this.instances.settings.highlightOpenNodes&&u.graphsManager.openNodes.contains(t.id)&&t.toggleOpenInTab(!0),this.instances.settings.highlightSearchResults&&u.graphsManager.getSearchResults().contains(t.id)&&t.toggleIsSearchResult(!0))}applyBackgroundColor(t){let i=$e.backgroundColor;t.graphicsWrapper&&t.graphicsWrapper.updateOpacityLayerColor(i)}loadAsset(t){!this.instances.settings.enableFeatures[this.instances.type].imagesFromProperty&&!this.instances.settings.enableFeatures[this.instances.type].imagesFromEmbeds&&!this.instances.settings.enableFeatures[this.instances.type].imagesForAttachments&&!this.instances.settings.enableFeatures[this.instances.type].icons||this.getImageURI(t).then(i=>{i&&(i.type==="image"?Ds.load(i.uri).then(s=>{this.initNodeImages(t,s)}):i.type==="icon"&&t.graphicsWrapper?.initIcon())})}async getImageURI(t){if(!t.graphicsWrapper)return null;let i=null;if(this.instances.settings.enableFeatures[this.instances.type].imagesFromProperty||this.instances.settings.enableFeatures[this.instances.type].imagesFromEmbeds||this.instances.settings.enableFeatures[this.instances.type].imagesForAttachments){if(this.instances.settings.enableFeatures[this.instances.type].imagesFromProperty&&(t.coreElement.type===""||t.coreElement.type==="focused")){for(let s of this.instances.settings.imageProperties)if(i=await $a.getImageUriFromProperty(s,t.id),i)break}if(!i&&this.instances.settings.enableFeatures[this.instances.type].imagesFromEmbeds&&(t.coreElement.type===""||t.coreElement.type==="focused")&&(i=await $a.getImageUriFromEmbeds(t.id)),this.instances.settings.enableFeatures[this.instances.type].imagesForAttachments&&t.coreElement.type==="attachment"&&(i=await $a.getImageUriForAttachment(t.id)),i)return{uri:i,type:"image"}}if(this.instances.settings.enableFeatures[this.instances.type].icons){let s=t.icon;if(s?.svg||s?.emoji)return{uri:"",type:"icon"}}return null}initNodeImages(t,i){if(t.graphicsWrapper&&!(t.coreElement.type==="tag"||t.coreElement.type==="unresolved"))try{switch(t.coreElement.type){case"attachment":t.graphicsWrapper.initNodeImage(i);break;case"":case"focused":"initNodeImage"in t.graphicsWrapper&&t.graphicsWrapper.initNodeImage(i);break}}catch{}}createExtendedElement(t){let i=t.id,s=new Map;for(let[o,a]of this.managers)s.set(o,this.getTypes(o,t));let n;return t.type==="tag"?n=new s1(this.instances,t,s,[...this.managers.values()]):t.type==="attachment"?n=new e1(this.instances,t,s,[...this.managers.values()]):t.type==="unresolved"?n=new o1(this.instances,t):n=new r1(this.instances,t,s,[...this.managers.values()]),this.extendedElementsMap.set(i,n),this.connectedIDs.add(i),n}getID(t){return t.id}getTypesFromFile(t,i,s){return ct(t,s,this.instances.settings)}getAbstractFile(t){return qe(t.id)}resetArcs(t){if(this.instances.settings.enableFeatures[this.instances.type].tags)for(let[i,s]of this.extendedElementsMap)try{let n=this.managers.get(t);if(!n)continue;s.graphicsWrapper.resetManagerGraphics(n)}catch{}}updateOpacityLayerColor(){let t=$e.backgroundColor;this.extendedElementsMap.forEach(i=>{i.graphicsWrapper?.updateOpacityLayerColor(t)})}onCSSChange(){let t=$e.backgroundColor;this.extendedElementsMap.forEach(i=>{i.graphicsWrapper?.updateOpacityLayerColor(t),i.graphicsWrapper?.updateIconBackgroundLayerColor(t),i.extendedText.updateTextStyle()})}isNodePinned(t){let i=this.instances.nodesSet.extendedElementsMap.get(t);if(i)return i.isPinned}pinSelectedNodes(){let t=new yt(this.instances);for(let i in this.selectedNodes)t.pinNode(i)}unpinSelectedNodes(){let t=new yt(this.instances);for(let i in this.selectedNodes)t.unpinNode(i)}selectNodesInRectangle(t){let i=this.instances.renderer.nodes.filter(s=>s.circle&&t.contains(s.circle.x,s.circle.y));this.selectNodes(i)}selectNodes(t){let i,s,n=Object.values(this.selectedNodes).map(o=>o.node);switch(this.instances.settings.selectionMode){case"add":s=[],i=t;break;case"replace":i=t.filter(o=>!(o.id in this.selectedNodes)),s=n.filter(o=>!t.contains(o));break;case"intersect":i=[],s=n.filter(o=>!t.contains(o));break;case"subtract":i=[],s=n.filter(o=>t.contains(o));break}for(let o of i)this.extendedElementsMap.get(o.id)?.select()&&(this.selectedNodes[o.id]={node:o,originX:o.circle?.x??0,originY:o.circle?.y??0});for(let o of s)this.extendedElementsMap.get(o.id)?.unselect(),delete this.selectedNodes[o.id];Object.keys(this.selectedNodes).length==0?this.instances.graphEventsDispatcher.inputsManager.stopListeningToUnselectNodes():this.instances.graphEventsDispatcher.inputsManager.startListeningToUnselectNodes(),u.graphsManager.updateStatusBarItem(this.instances.view.leaf)}unselectNodes(){for(let t in this.selectedNodes)this.extendedElementsMap.get(t)?.unselect();this.selectedNodes={},this.instances.renderer.changed(),u.graphsManager.updateStatusBarItem(this.instances.view.leaf),this.instances.graphEventsDispatcher.inputsManager.stopListeningToUnselectNodes()}invertSelection(){let t=this.instances.renderer.nodes.filter(i=>!(i.id in this.selectedNodes));this.unselectNodes(),t.length>0?this.selectNodes(t):this.instances.graphEventsDispatcher.inputsManager.stopListeningToUnselectNodes()}moveSelectedNodes(t){if(!this.instances.renderer.dragNode)return;if(!this.instances.graphEventsDispatcher.inputsManager.isDragging){this.instances.graphEventsDispatcher.inputsManager.isDragging=!0;for(let s in this.selectedNodes){let n=this.selectedNodes[s].node;n.circle&&(this.selectedNodes[s].originX=n.circle.x,this.selectedNodes[s].originY=n.circle.y)}}if(!(this.instances.renderer.dragNode.id in this.selectedNodes))return;let i={x:t.x-this.selectedNodes[this.instances.renderer.dragNode.id].originX,y:t.y-this.selectedNodes[this.instances.renderer.dragNode.id].originY};for(let s in this.selectedNodes){if(s===this.instances.renderer.dragNode.id)continue;let n=this.selectedNodes[s].node;n.circle&&(n.fx=this.selectedNodes[s].originX+i.x,n.fy=this.selectedNodes[s].originY+i.y,this.instances.renderer.worker.postMessage({alpha:.3,alphaTarget:.3,run:!0,forceNode:{id:n.id,x:n.fx,y:n.fy}}))}}stopMovingSelectedNodes(){for(let t in this.selectedNodes){let i=this.selectedNodes[t].node;(i.fx!==null||i.fy!==null)&&!this.isNodePinned(i.id)&&(this.instances.renderer.worker.postMessage({alphaTarget:0,forceNode:{id:i.id,x:null,y:null}}),i.fx=null,i.fy=null)}}async cacheAllExternalLinks(t){let i=[];for(let s in this.instances.renderer.nodeLookup)i.push(this.cacheExternalLinks(s,!1,t));return Promise.all(i)}async cacheExternalLinks(t,i=!1,s){if(!(this.instances.renderer.nodeLookup[t]?.type===""||this.instances.renderer.nodeLookup[t]?.type==="focused"&&t.endsWith(".md"))||!i&&t in this.cachedExternalLinks)return!1;let n=qe(t);if(!n)return this.cachedExternalLinks[t]=[],!1;let o=[],a=await u.app.vault.cachedRead(n),l=!1;s||(s=new Gc.Component,s.load(),l=!0);let c=createDiv();await Gc.MarkdownRenderer.render(u.app,a,c,t,s),l&&s.unload();for(let p of Array.from(c.getElementsByClassName("external-link"))){let g=p.getAttr("href");g&&o.push(new URL(g))}this.cachedExternalLinks[t]=o;let h=p=>{try{let g=new URL(p);if(g.protocol==="http:"||g.protocol==="https:")return o.push(g),!0}catch{return!1}return!1},d=u.app.metadataCache.getFileCache(n)?.frontmatter;for(let p in d)if(typeof d[p]=="string")h(d[p]);else if(Array.isArray(d[p]))for(let g of d[p])h(g);return o.length>0}convertExternalLink(t){switch(this.instances.settings.externalLinks){case"domain":return{domain:t.hostname};case"href":return{href:t.origin+t.pathname};case"domain_and_href":return{domain:t.hostname,href:t.origin+t.pathname};case"none":return{}}}getExternalLinks(t){return t in this.cachedExternalLinks?this.cachedExternalLinks[t].map(i=>this.convertExternalLink(i)).unique():[]}};var v8=St(kd()),j5=St(v5());var m1=St(Vc()),$5=St(Ld()),zr=class r{constructor(e){this.doneListeners=[];this.graphologyConnectedGraphs=new Map;this.buildGraphology=this.buildGraphology.bind(this),this.instances=e,u.app.metadataCache.isCacheClean()?this.buildGraphology():u.app.metadataCache.on("resolved",this.buildGraphology)}buildGraphology(){if(u.app.metadataCache.off("resolved",this.buildGraphology),this.graphology?this.graphology.clear():this.graphology=new v8.default,this.instances){for(let i of this.instances.renderer.nodes)this.graphology.addNode(i.id);let e=u.app.metadataCache.resolvedLinks,t=u.app.metadataCache.unresolvedLinks;for(let i of this.instances.renderer.links){let s=1;if(i.target.id.startsWith("#"))s=u.app.metadataCache.getCache(i.source.id)?.tags?.reduce((n,o)=>n+(o.tag===i.target.id?1:0),0)??1;else{let n=e[i.source.id];n&&(s=n[i.target.id]??s);let o=t[i.source.id];o&&(s+=o[i.target.id]??0)}this.graphology.addEdge(i.source.id,i.target.id,{count:s})}}else{let e=u.app.vault.getFiles();for(let s of e){this.graphology.addNode(s.path);let n=u.app.metadataCache.getFileCache(s)?.tags??[];for(let o of n)this.graphology.hasNode(o.tag)||this.graphology.addNode(o.tag),this.graphology.hasEdge(s.path,o.tag)?this.graphology.updateEdge(s.path,o.tag,a=>(a.count=(a.count??0)+1,a)):this.graphology.addEdge(s.path,o.tag,{count:1})}let t=u.app.metadataCache.resolvedLinks;for(let[s,n]of Object.entries(t))for(let[o,a]of Object.entries(n))this.graphology.addEdge(s,o,{count:a});let i=u.app.metadataCache.unresolvedLinks;for(let[s,n]of Object.entries(i))for(let[o,a]of Object.entries(n))this.graphology.hasNode(o)||this.graphology.addNode(o),this.graphology.addEdge(s,o,{count:a})}this.computeAttributes();for(let e of this.doneListeners)e(this.graphology)}computeAttributes(){if(!(!this.graphology||!this.instances)&&this.instances.type==="localgraph"&&this.instances.settings.depthColormap){let e=this.instances.view.file?.path;if(e&&this.graphology.hasNode(e)){let t=(0,$5.undirectedSingleSourceLength)(this.graphology,e);for(let i in t)this.graphology.setNodeAttribute(i,"depth",t[i])}}}registerListener(e,t=!1){this.doneListeners.push(e),t&&this.graphology&&e(this.graphology)}getGraphology(){return this.graphology}getConnectedGraphology(e,t){let i=this.graphology;if(!i)return;let s=t==="reversed"?(0,m1.reverse)(i):t==="undirected"?r.toUndirected(i):i,n=function(a,l,c){let h=a.neighbors(c);l.hasNode(c)||l.addNode(c);for(let d of h)l.hasNode(d)||l.addNode(d),l.addEdge(c,d)},o=new v8.default;return(0,j5.dfsFromNode)(s,e,function(a,l,c){o&&n(s,o,a)}.bind(this)),o}intersection(e,t){return e?.filter(i=>t.includes(i))??[]}static toUndirected(e){return(0,m1.toUndirected)(e,(t,i)=>({...t,weight:t.count+i.count}))}};var q5=St(Vc()),rs={default:m("plugin.default"),"Adamic Adar":m("statsFunctions.AdamicAdar"),BoW:m("statsFunctions.BoW"),"Co-Citations":m("statsFunctions.coCitations"),"Clustering Coefficient":m("statsFunctions.clusteringCoefficient"),Jaccard:m("statsFunctions.Jaccard"),Ocurences:m("statsFunctions.Occurences"),"Otsuka-Ochiai":m("statsFunctions.OtsukaOchiai"),Overlap:m("statsFunctions.overlap")},Pn={default:!1,"Adamic Adar":!1,BoW:!0,"Co-Citations":!1,"Clustering Coefficient":!1,Jaccard:!1,Ocurences:!1,"Otsuka-Ochiai":!0,Overlap:!1},y1={default:!1,"Adamic Adar":!0,BoW:!1,"Co-Citations":!0,"Clustering Coefficient":!0,Jaccard:!0,Ocurences:!1,"Otsuka-Ochiai":!1,Overlap:!0},d0=class{constructor(e,t,i){this.stat=e,this.functionKey=t,this.graphologyGraph=i}async computeStats(e){this.graphologyGraph||(u.graphologyGraph||(u.graphologyGraph=new zr),this.graphologyGraph=u.graphologyGraph),this.graphologyGraph.registerListener(async t=>{await this.getStats(e),this.mapStat()},!0)}async getStats(e){if(!this.graphologyGraph?.graphology)return;this.linksStats={};let i=(e==="reversed"?(0,q5.reverse)(this.graphologyGraph.graphology):e==="undirected"?zr.toUndirected(this.graphologyGraph.graphology):this.graphologyGraph.graphology).edgeEntries();for(let s of i)this.linksStats[s.source]||(this.linksStats[s.source]={}),this.linksStats[s.source][s.target]={measure:await this.getStat(s),value:0}}mapStat(){switch(this.stat){case"size":this.normalizeValues(.3,2),this.cleanNanAndInfiniteValues(1);break;case"color":this.normalizeValues(0,100),this.cleanNanAndInfiniteValues(50),Object.entries(this.linksStats).forEach(([e,t])=>{Object.entries(t).forEach(([i,{measure:s,value:n}])=>{this.linksStats[e][i].value=zs(n/100,u.settings.linksColorColormap,u.settings)})});break;default:break}}normalizeValues(e,t){let i=this.getMeasures(),s=Math.min(...i),n=Math.max(...i);Object.entries(this.linksStats).forEach(([o,a])=>{Object.entries(a).forEach(([l,{measure:c,value:h}])=>{this.linksStats[o][l].value=(t-e)*(c-s)/(n-s)+e})})}getMeasures(){let e=[];return Object.entries(this.linksStats).forEach(([t,i])=>{e=e.concat(Object.values(i).map(({measure:s,value:n})=>s))}),e.filter(t=>isFinite(t)&&!isNaN(t))}cleanNanAndInfiniteValues(e){Object.entries(this.linksStats).forEach(([t,i])=>{Object.entries(i).forEach(([s,{measure:n,value:o}])=>{(!isFinite(o)||isNaN(o))&&(this.linksStats[t][s].value=e)})})}getWarning(){return""}getLink(){return""}};var Ps=class{static getCalculator(e,t){let i=t?.graphologyGraph;switch(e==="size"?(t??u).settings.linksSizeFunction:(t??u).settings.linksColorFunction){case"Adamic Adar":return new v1(e,i);case"BoW":return new x1(e,i);case"Clustering Coefficient":return new D1(e,i);case"Co-Citations":return new b1(e,i);case"Jaccard":return new E1(e,i);case"Ocurences":return new S1(e,i);case"Otsuka-Ochiai":return new C1(e,i);case"Overlap":return new w1(e,i);default:return}}};var v1=class extends d0{constructor(t,i){super(t,"Adamic Adar",i);this.cache={}}async getStat(t){if(t.source in this.cache)return this.cache[t.source][t.target];let i=this.graphologyGraph,s=i?.graphology;if(!s)return NaN;let n=s.neighbors(t.source),o={};return s.forEachNode(a=>{let l=s.neighbors(a),c=i.intersection(n,l),h=1/0;c.length&&(h=c.map(p=>s.outNeighbors(p).length).reduce((p,g)=>p+1/Math.log(g),0)),o[a]=h}),this.cache[t.source]=o,o[t.target]}};var X5=St(x8()),x1=class extends d0{constructor(t,i){super(t,"BoW",i);this.cache={}}async getStat(t){if(t.source in this.cache)return this.cache[t.source][t.target];let i=y0();if(!i)return NaN;let n=this.graphologyGraph?.graphology;if(!n)return NaN;let{Docs:o}=i,a=i.getNoStopBoW(o[t.source]),l={};return n.forEachNode(c=>{o[c]||(l[c]=0);let d=i.getNoStopBoW(o[c]),p=X5.default.bow.cosine(a,d);l[c]=p}),this.cache[t.source]=l,l[t.target]}};var D1=class extends d0{constructor(t,i){super(t,"Clustering Coefficient",i);this.cache={}}async getStat(t){if(t.source in this.cache)return this.cache[t.source][t.target];let s=this.graphologyGraph?.graphology;if(!s)return NaN;let n={};return s.forEachNode(o=>{let a=[];s.neighbors(o).forEach(h=>{s.neighbors(h).forEach(d=>{s.hasEdge(o,h)&&s.hasEdge(o,d)&&s.hasEdge(h,d)&&a.push([h,d])})});let l=s.neighbors(o).length,c=l===0||l===1?0:2*a.length/(l*(l-1));n[o]=c}),this.cache[t.source]=n,n[t.target]}};var Wc=require("obsidian"),ig=St(rg()),b1=class extends d0{constructor(t,i){super(t,"Co-Citations",i);this.cache={}}async getStat(t){if(t.source in this.cache)return this.cache[t.source][t.target];let s=this.graphologyGraph?.graphology;if(!s)return NaN;let n=t.source,o=u.app.metadataCache,a={};return s.forEachInNeighbor(n,async l=>{let c=o.getFirstLinkpathDest(l,"");if(!c)return;let h=o.getFileCache(c);if(!h?.links)return;let d={},p=[...h.links];h.embeds&&p.push(...h.embeds);let g=p.filter(z=>{let U=o.getFirstLinkpathDest((0,Wc.getLinkpath)(z.link),c.path);return U?U.path===n:!1}),C=(await u.app.vault.cachedRead(c)).split(` +`),w=g.map(z=>{let U=C[z.position.end.line],q=ig.default.sentences(U,{preserve_whitespace:!0}),[re,$,Q]=this.findSentence(q,z);return{sentences:q,link:z,line:z.position.end.line,linkSentence:re,linkSentenceStart:$,linkSentenceEnd:Q}}),k=h.listItems?h.listItems.filter(z=>g.find(U=>U.position.start.line>=z.position.start.line&&U.position.end.line<=z.position.end.line)):[],B=g.map(z=>h.sections?.find(U=>U.position.start.line<=z.position.start.line&&U.position.end.line>=z.position.end.line)),L=7,T=0,W=[],j=h.headings;j&&g.forEach(z=>{h.headings&&h.headings.forEach((U,q)=>{if(L=Math.min(L,U.level),T=Math.max(T,U.level),U.position.start.line<=z.position.start.line){for(let re of Array(j.length-q-1).keys()){let $=j[re+q+1];if($.level>=U.level){if($.position.start.line<=z.position.start.line)return;W.push([U,$.position.start.line]);return}}W.push([U,1e11])}})}),L=h.headings&&h.headings.length>0?L:0,T=h.headings&&h.headings.length>0?T:0;let I=1/Math.pow(2,4+T-L),R=[...p];h.tags&&R.push(...h.tags),R.forEach(z=>{let U=null;if("link"in z){let De=o.getFirstLinkpathDest((0,Wc.getLinkpath)(z?.link??"")??"",c.path);if(!De)U=z.link;else if(U=De.path,U===n)return}else if("tag"in z)U=z.tag;else return;U in d||(d[U]=[0,[]]);let q=C[z.position.start.line],re=!1;if(w.forEach(De=>{if(z.position.start.line===De.line){let[_e,Mt,rt]=this.findSentence(De.sentences,z),et=De.link,gt=Math.min(z.position.start.col,et.position.start.col),Dt=Math.min(z.position.end.col,et.position.end.col),I0=Math.max(z.position.start.col,et.position.start.col),de=Math.max(z.position.end.col,et.position.end.col),oe=[q.slice(Math.min(Mt,De.linkSentenceStart),gt),q.slice(gt,Dt),q.slice(Dt,I0),q.slice(I0,de),q.slice(de,Math.max(rt,De.linkSentenceEnd))],ve=1/2,Yt=Math.abs(_e-De.linkSentence);Yt===0?ve=1:Yt===1?ve=.85:Yt===2?ve=.7:Yt===3&&(ve=.6),d[U][0]=Math.max(ve,d[U][0]),d[U][1].push({sentence:oe,measure:ve,source:l,line:De.line}),re=!0}}),re)return;let $=[q.slice(0,z.position.start.col),q.slice(z.position.start.col,z.position.end.col),q.slice(z.position.end.col,q.length)],Q=h?.listItems?.find(De=>z.position.start.line>=De.position.start.line&&z.position.end.line<=De.position.end.line),Te=!1;if(Q&&k.forEach(De=>{if(De.parent===Q.parent){this.addPreCocitation(d,U,.4,$,l,z.position.start.line),Te=!0;return}let _e=function(Mt,rt){let et=Mt,gt=1;for(;et&&et.parent>0;){if(et.parent===rt.position.start.line){let Dt=.3;return gt===1?Dt=.6:gt===2?Dt=.5:gt===3?Dt=.4:gt===4&&(Dt=.35),this.addPreCocitation(d,U,Dt,$,l,z.position.start.line),!0}gt+=1,et=h.listItems?.find(Dt=>et?.parent===Dt.position.start.line)}return!1};(_e(De,Q)||_e(Q,De))&&(Te=!0)}),Te)return;if(B.find(De=>De&&De.position.start.line<=z.position.start.line&&De.position.end.line>=z.position.end.line)){this.addPreCocitation(d,U,1/4,$,l,z.position.start.line);return}let xe=W.filter(([De,_e])=>De.position.start.line<=z.position.start.line&&_e>z.position.end.line);if(xe.length>0){let De=Math.max(...xe.map(([Mt,rt])=>Mt.level)),_e=1/Math.pow(2,3+T-De);this.addPreCocitation(d,U,_e,$,l,z.position.start.line);return}this.addPreCocitation(d,U,I,$,l,z.position.start.line)}),(0,Wc.getAllTags)(h)?.forEach(z=>{z in d||(d[z]=[I,[{measure:I,sentence:["","",""],source:l,line:0}]])});for(let z in d){let U=o.getFirstLinkpathDest(z,""),q=null,re=!0;U?q=U.path:z[0]==="#"?q=z:(q=z+".md",re=!1);let $=d[z];q in a?a[q]+=$[0]:a[q]=$[0]}}),a[n]=0,this.cache[t.source]=a,a[t.target]}findSentence(t,i){let s=0,n=0;for(let o of t){let a=s+o.length;if(i.position.end.col<=a)return[n,s,a];s=a,n+=1}return[-1,0,s]}addPreCocitation(t,i,s,n,o,a){t[i][0]=Math.max(t[i][0],s),t[i][1].push({sentence:n,measure:s,source:o,line:a})}};var E1=class extends d0{constructor(t,i){super(t,"Jaccard",i);this.cache={}}async getStat(t){if(t.source in this.cache)return this.cache[t.source][t.target];let i=this.graphologyGraph,s=i?.graphology;if(!s)return NaN;let n=s.neighbors(t.source),o={};return s.forEachNode(a=>{let l=s.neighbors(a),c=i.intersection(n,l),h=n.length+l.length-c.length,d=h!==0?c.length/h:1/0;o[a]=d}),this.cache[t.source]=o,o[t.target]}};var S1=class extends d0{constructor(e,t){super(e,"Ocurences",t)}async getStat(e){return this.functionKey==="default"?1:e.attributes.count}};var sg=St(x8()),C1=class extends d0{constructor(t,i){super(t,"Otsuka-Ochiai",i);this.cache={}}async getStat(t){if(t.source in this.cache)return this.cache[t.source][t.target];let i=y0();if(!i)return NaN;let n=this.graphologyGraph?.graphology;if(!n)return NaN;let{Docs:o}=i,a=i.getNoStopSet(o[t.source]),l={};return n.forEachNode(c=>{o[c]||(l[c]=0);let d=i.getNoStopSet(o[c]),p=sg.default.set.oo(a,d);l[c]=p}),this.cache[t.source]=l,l[t.target]}};var w1=class extends d0{constructor(t,i){super(t,"Overlap",i);this.cache={}}async getStat(t){if(t.source in this.cache)return this.cache[t.source][t.target];let i=this.graphologyGraph,s=i?.graphology;if(!s)return NaN;let n=s.neighbors(t.source),o={};return s.forEachNode(a=>{let l=s.neighbors(a),c=i.intersection(n,l),h=n.length!==0&&l.length!==0?c.length**2/Math.min(n.length,l.length):1/0;o[a]=h}),this.cache[t.source]=o,o[t.target]}};var is={default:m("plugin.default"),constant:m("statsFunctions.constant"),backlinksCount:m("statsFunctions.backlinksCount"),backUniquelinksCount:m("statsFunctions.backUniquelinksCount"),forwardlinksCount:m("statsFunctions.forwardlinksCount"),forwardUniquelinksCount:m("statsFunctions.forwardUniquelinksCount"),totallinksCount:m("statsFunctions.totallinksCount"),totalUniquelinksCount:m("statsFunctions.totalUniquelinksCount"),filenameLength:m("statsFunctions.filenameLength"),tagsCount:m("statsFunctions.tagsCount"),creationTime:m("statsFunctions.creationTime"),modifiedTime:m("statsFunctions.modifiedTime"),eccentricity:m("statsFunctions.eccentricity"),betweenness:m("statsFunctions.betweenness"),closeness:m("statsFunctions.closeness"),degree:m("statsFunctions.degree"),eigenvector:m("statsFunctions.eigenvector"),hub:m("statsFunctions.hub"),authority:m("statsFunctions.authority"),topological:m("statsFunctions.topological"),sentiment:m("statsFunctions.sentiment")},Hc={default:!1,constant:!1,backlinksCount:!1,backUniquelinksCount:!1,forwardlinksCount:!1,forwardUniquelinksCount:!1,totallinksCount:!1,totalUniquelinksCount:!1,filenameLength:!1,tagsCount:!1,creationTime:!1,modifiedTime:!1,eccentricity:!1,betweenness:!1,closeness:!1,degree:!1,eigenvector:!1,hub:!1,authority:!1,topological:!1,sentiment:!0},T1={default:!1,constant:!1,backlinksCount:!0,backUniquelinksCount:!0,forwardlinksCount:!0,forwardUniquelinksCount:!0,totallinksCount:!0,totalUniquelinksCount:!0,filenameLength:!1,tagsCount:!1,creationTime:!1,modifiedTime:!1,eccentricity:!0,betweenness:!0,closeness:!0,degree:!0,eigenvector:!0,hub:!0,authority:!0,topological:!0,sentiment:!1},Tt=class{constructor(e,t,i){this.stat=e,this.functionKey=t,this.graphologyGraph=i}async computeStats(e){this.graphologyGraph||(u.graphologyGraph||(u.graphologyGraph=new zr),this.graphologyGraph=u.graphologyGraph),this.graphologyGraph.registerListener(async t=>{await this.getStats(e),this.mapStat()},!0)}async getStats(e){if(!this.graphologyGraph)return;this.filesStats=new Map;let t=this.graphologyGraph.graphology?.nodes();if(t)for(let i of t)this.getStat(i,e).then(s=>this.filesStats.set(i,{measure:s,value:0}))}mapStat(){switch(this.stat){case"size":this.normalizeValues(u.settings.nodesSizeRange.min,u.settings.nodesSizeRange.max),this.cleanNanAndInfiniteValues(1);break;case"color":this.normalizeValues(0,100),this.cleanNanAndInfiniteValues(50),this.filesStats.forEach(({measure:e,value:t},i)=>{this.filesStats.set(i,{measure:e,value:zs(t/100,u.settings.nodesColorColormap,u.settings)})});break;default:break}}normalizeValues(e,t){let i=this.getMeasures(),s=Math.min(...i),n=Math.max(...i);this.filesStats.forEach(({measure:o,value:a},l)=>{this.filesStats.set(l,{measure:o,value:(t-e)*(o-s)/(n-s)+e})})}getMeasures(){return[...this.filesStats.values()].map(({measure:e,value:t})=>e).filter(e=>isFinite(e)&&!isNaN(e))}cleanNanAndInfiniteValues(e){this.filesStats.forEach(({measure:t,value:i},s)=>{(!isFinite(i)||isNaN(i))&&this.filesStats.set(s,{measure:t,value:e})})}static getWarning(){return""}static getLink(){return""}};var Zg=St(lg()),Qg=St(mg()),Jg=St(_g()),em=St(jg()),P8=St(Kg());var tm=St(Vc()),mn=class extends Tt{constructor(e,t,i){super(e,t,i)}async computeStats(e){this.graphologyGraph||(u.graphologyGraph||(u.graphologyGraph=new zr),this.graphologyGraph=u.graphologyGraph);let t=this.graphologyGraph.graphology;if(t)return this.computeCentralityMap(e==="reversed"?(0,tm.reverse)(t):e==="undirected"?zr.toUndirected(t):t),super.computeStats(e)}async getStat(e){return this.cm[e]}},Zc=class extends mn{constructor(e,t){super(e,"degree",t)}computeCentralityMap(e){this.cm=(0,Zg.degreeCentrality)(e)}static getLink(){return"https://en.wikipedia.org/wiki/Degree_(graph_theory)"}},Qc=class extends mn{constructor(e,t){super(e,"eigenvector",t)}computeCentralityMap(e){this.cm=(0,Qg.default)(e)}static getLink(){return"https://en.wikipedia.org/wiki/Eigenvector_centrality"}},Jc=class extends mn{constructor(e,t){super(e,"closeness",t)}computeCentralityMap(e){this.cm=(0,Jg.default)(e)}static getLink(){return"https://en.wikipedia.org/wiki/Closeness_centrality"}},eu=class extends mn{constructor(e,t){super(e,"betweenness",t)}computeCentralityMap(e){this.cm=(0,em.default)(e)}static getLink(){return"https://en.wikipedia.org/wiki/Betweenness_centrality"}},tu=class extends mn{constructor(e,t){super(e,"hub",t)}computeCentralityMap(e){let{hubs:t,authorities:i}=(0,P8.default)(e);this.cm=t}static getLink(){return"https://en.wikipedia.org/wiki/HITS_algorithm"}},ru=class extends mn{constructor(e,t){super(e,"authority",t)}computeCentralityMap(e){let{hubs:t,authorities:i}=(0,P8.default)(e);this.cm=i}static getLink(){return"https://en.wikipedia.org/wiki/HITS_algorithm"}};var cr=class{static getCalculator(e,t){let i=(t??u).settings,s=t?.graphologyGraph;switch(e==="size"?i.nodesSizeFunction:i.nodesColorFunction){case"constant":return new iu(e,s);case"backlinksCount":return i.graphStatsDirection==="reversed"?new yn(e,!0,s):new vn(e,!0,s);case"backUniquelinksCount":return i.graphStatsDirection==="reversed"?new yn(e,!1,s):new vn(e,!1,s);case"forwardlinksCount":return i.graphStatsDirection==="reversed"?new vn(e,!0,s):new yn(e,!0,s);case"forwardUniquelinksCount":return i.graphStatsDirection==="reversed"?new vn(e,!1,s):new yn(e,!1,s);case"totallinksCount":return new Xa(e,!0,s);case"totalUniquelinksCount":return new Xa(e,!1,s);case"filenameLength":return new ou(e,s);case"tagsCount":return new cu(e,s);case"creationTime":return new su(e,s);case"modifiedTime":return new au(e,s);case"eccentricity":return new nu(e,s);case"closeness":return new Jc(e,s);case"betweenness":return new eu(e,s);case"degree":return new Zc(e,s);case"eigenvector":return new Qc(e,s);case"hub":return new tu(e,s);case"authority":return new ru(e,s);case"topological":return new uu(e,s);case"sentiment":return new lu(e,s);default:return}}static getWarning(e){switch(e){case"constant":return iu.getWarning();case"backlinksCount":case"backUniquelinksCount":return yn.getWarning();case"forwardlinksCount":case"forwardUniquelinksCount":return vn.getWarning();case"totallinksCount":case"totalUniquelinksCount":return Xa.getWarning();case"filenameLength":return ou.getWarning();case"tagsCount":return cu.getWarning();case"creationTime":return su.getWarning();case"modifiedTime":return au.getWarning();case"eccentricity":return nu.getWarning();case"closeness":return Jc.getWarning();case"betweenness":return eu.getWarning();case"degree":return Zc.getWarning();case"eigenvector":return Qc.getWarning();case"hub":return tu.getWarning();case"authority":return ru.getWarning();case"topological":return uu.getWarning();case"sentiment":return lu.getWarning();default:return""}}};var yn=class extends Tt{constructor(e,t,i){super(e,"backlinksCount",i),this.countDuplicates=t}async getStat(e,t){if(this.graphologyGraph?.graphology)return this.countDuplicates?this.graphologyGraph.graphology.reduceInEdges(e,(o,a,l)=>o+(l.count??0),0):this.graphologyGraph.graphology.inDegree(e);let i=Object.values(u.app.metadataCache.resolvedLinks).reduce((o,a)=>(e in a&&o.push(a[e]),o),[]),s=Object.values(u.app.metadataCache.unresolvedLinks).reduce((o,a)=>(e in a&&o.push(a[e]),o),[]),n=i.concat(s);return n?this.countDuplicates?n.reduce((o,a)=>o+a,0):n.length:0}},vn=class extends Tt{constructor(e,t,i){super(e,t?"forwardlinksCount":"forwardUniquelinksCount",i),this.countDuplicates=t}async getStat(e){if(this.graphologyGraph?.graphology)return this.countDuplicates?this.graphologyGraph.graphology.reduceOutEdges(e,(i,s,n)=>i+(n.count??0),0):this.graphologyGraph.graphology.outDegree(e);let t=Object.fromEntries((e in u.app.metadataCache.resolvedLinks?Object.entries(u.app.metadataCache.resolvedLinks[e]):[]).concat(e in u.app.metadataCache.unresolvedLinks?Object.entries(u.app.metadataCache.unresolvedLinks[e]):[]));return t?this.countDuplicates?Object.values(t).reduce((i,s,n,o)=>i+s,0):Object.keys(t).length:0}},Xa=class extends Tt{constructor(e,t,i){super(e,t?"totallinksCount":"totalUniquelinksCount",i),this.countDuplicates=t}async getStat(e){if(this.graphologyGraph?.graphology)return this.countDuplicates?this.graphologyGraph.graphology.reduceEdges(e,(n,o,a)=>n+(a.count??0),0):this.graphologyGraph.graphology.degree(e);let t=Object.entries(u.app.metadataCache.resolvedLinks).reduce((n,o)=>(e===o[0]?n=n.concat(Object.values(o[1])):e in o[1]&&n.push(o[1][e]),n),[]),i=Object.entries(u.app.metadataCache.unresolvedLinks).reduce((n,o)=>(e===o[0]?n=n.concat(Object.values(o[1])):e in o[1]&&n.push(o[1][e]),n),[]),s=t.concat(i);return s?this.countDuplicates?s.reduce((n,o)=>n+o,0):s.length:0}};var iu=class extends Tt{constructor(e,t){super(e,"constant",t)}async getStat(e,t){return 1}};var su=class extends Tt{constructor(e,t){super(e,"creationTime",t)}async getStat(e,t){return qe(e)?.stat.ctime||NaN}static getWarning(){return m("statsFunctions.warningUnreliableOS")}};var sm=St(im());var nu=class extends Tt{constructor(e,t){super(e,"eccentricity",t)}async getStat(e,t){if(!this.graphologyGraph)return NaN;let i=this.graphologyGraph.getConnectedGraphology(e,t);return i?(0,sm.default)(i,e):NaN}static getLink(){return"https://reference.wolfram.com/language/ref/EccentricityCentrality.html"}};var ou=class extends Tt{constructor(e,t){super(e,"filenameLength",t)}async getStat(e,t){return qe(e)?.basename.length||e.length}};var au=class extends Tt{constructor(e,t){super(e,"modifiedTime",t)}async getStat(e,t){return qe(e)?.stat.mtime||NaN}static getWarning(){return m("statsFunctions.warningUnreliableOS")}};var lu=class extends Tt{constructor(t,i){super(t,"sentiment",i);this.cache={}}async getStat(t,i){let s=y0();if(!s)return NaN;let n=s.Docs[t];return n?s.getAvgSentimentFromDoc(n):0}};var cu=class extends Tt{constructor(e,t){super(e,"tagsCount",t)}async getStat(e,t){let i=qe(e);return i?ct(He,i).size:0}};var mm=St(am()),ym=St(kd()),vm=St(gm()),xm=St(Vc()),uu=class extends Tt{constructor(t,i){super(t,"topological",i);this.topologicalWeights=new Map}async getStats(t){if(!this.graphologyGraph)return;let i=this.graphologyGraph.graphology;if(!i)return;let s=t==="reversed"?(0,xm.reverse)(i):i,n=(0,mm.stronglyConnectedComponents)(s),o=new ym.DirectedGraph;for(let[l,c]of n.entries()){let h=[];for(let d of c){let g=s.outNeighbors(d).map(v=>n.findIndex(C=>C.includes(v))).filter(v=>v!==-1&&v!==l);h.push(...g)}o.addNode(l.toString());for(let d of new Set(h))o.addEdge(l.toString(),d.toString())}let a=(0,vm.topologicalSort)(o);for(let l of a){let c=n[parseInt(l)],h=0;for(let d of c){let p=s.inNeighbors(d);for(let g of p)g!==d&&(h+=this.topologicalWeights.get(g)||0)}h+=1;for(let d of c)this.topologicalWeights.set(d,h)}return super.getStats(t)}async getStat(t,i){return this.topologicalWeights.get(t)||1}static getLink(){return"https://en.wikipedia.org/wiki/Topological_sorting"}};var Hr=class{constructor(e){this.queryData=e}getMatches(e){return u.app.vault.getMarkdownFiles().filter(t=>this.doesMatch(t,e))}doesMatch(e,t){let i=this.queryData.rules.filter(s=>new Fs(s).isValid());if(i.length===0)return!1;switch(this.queryData.combinationLogic){case"AND":return i.every(s=>new Fs(s).doesMatch(e,t)??!1);case"OR":return i.some(s=>new Fs(s).doesMatch(e,t)??!1);default:break}return!1}toString(){let e="";for(let t=0;tthis.doesMatch(e))}doesMatch(e,t){if(!this.isValid())return null;let i=e.path;switch(this.source){case"all":return!0;case"tag":let s=ct(He,e);return this.checkLogic([...s]);case"link":let n=ct(ne,e,t);return this.checkLogic([...n]);case"property":if(!this.property)break;let o=ct(this.property,e,t);return this.checkLogic([...o]);case"file":return this.checkLogic(e.basename);case"folder":return this.checkLogic(i);case"folderRec":let a=[],l=e.parent;for(;l;)a.push(l.path),l=l.parent;return this.checkLogic(a);case"path":return this.checkLogic(e.path);default:break}return!1}checkLogic(e){let t=Array.isArray(e),i=typeof e=="string",s=this.value;if(s.startsWith("\\b")||(s="\\b"+s),s.endsWith("\\b")||(s=s+"\\b"),t){let n=e;switch(this.logic){case"is":return n.length===1&&e[0]===this.value;case"isNot":return n.length===1&&e[0]!==this.value||n.length!==1;case"contains":return n.contains(this.value);case"containsNot":return!n.contains(this.value);case"matchesRegex":return n.length===1&&new RegExp(s).test(n[0]);case"matchesRegexNot":return n.length===1&&!new RegExp(s).test(n[0])||n.length!==1;case"containsRegex":return n.some(o=>new RegExp(this.value).test(o));case"containsRegexNot":return n.every(o=>!new RegExp(this.value).test(o));case"isEmpty":return n.length===0;case"isEmptyNot":return n.length>0;default:break}}else if(i){let n=e;switch(this.logic){case"is":return n===this.value;case"isNot":return n!==this.value;case"contains":return n.contains(this.value);case"containsNot":return!n.contains(this.value);case"matchesRegex":return new RegExp(s).test(n);case"matchesRegexNot":return!new RegExp(s).test(n);case"containsRegex":return new RegExp(this.value).test(n);case"containsRegexNot":return!new RegExp(this.value).test(n);case"isEmpty":return n==="";case"isEmptyNot":return n!=="";default:break}}return!1}isValid(){return this.source===""?!1:this.source==="all"?!0:!(this.source==="property"&&this.property===""||this.logic===""||this.value===""&&this.logic!=="isEmpty"&&this.logic!=="isEmptyNot")}toString(){if(!this.isValid())return null;let e=O8[this.source];return this.source==="all"||(this.source==="property"&&(e+=":"+this.property),e+=" "+G8[this.logic],e+=" "+this.value),e}};var U8={id:Jr,name:m("states.defaultState"),engineOptions:new ti,toggleTypes:{},logicTypes:{},enableLayers:!1,currentLayerLevel:0},Dr=0,gi={enableFeatures:{graph:{"auto-enabled":!1,tags:!1,properties:!1,"property-key":!1,links:!1,linksSameColorAsNode:!1,folders:!1,imagesFromProperty:!1,imagesFromEmbeds:!1,imagesForAttachments:!1,focus:!1,shapes:!1,"elements-stats":!1,names:!1,icons:!1,arrows:!1,layers:!1},localgraph:{"auto-enabled":!1,tags:!1,properties:!1,"property-key":!1,links:!1,linksSameColorAsNode:!1,folders:!1,imagesFromProperty:!1,imagesFromEmbeds:!1,imagesForAttachments:!1,focus:!1,shapes:!1,"elements-stats":!1,names:!1,icons:!1,arrows:!1,layers:!1}},interactiveSettings:{},additionalProperties:{},backupGraphOptions:new ti,openInNewTab:!1,canonicalizePropertiesWithDataview:!0,states:[U8],startingStateID:Jr,syncDefaultState:!1,saveConfigsWithState:!1,customColorMaps:{},imageProperties:["image"],borderFactor:.06,allowExternalImages:!1,allowExternalLocalImages:!1,nodesSizeProperties:[""],nodesSizeFunction:"default",nodesSizeRange:{min:.5,max:1.5},nodesColorColormap:"YlOrRd",nodesColorFunction:"default",graphStatsDirection:"normal",linksSizeFunction:"default",linksColorColormap:"YlOrRd",linksColorFunction:"default",recomputeStatsOnGraphChange:!1,zoomFactor:2,focusScaleFactor:1.8,highlightOpenNodes:!1,highlightSearchResults:!1,maxNodes:20,delay:500,revertAction:!1,enableCSS:!1,cssSnippetFilename:"",shapeQueries:{circle:{combinationLogic:"AND",index:Dr++,rules:[]},square:{combinationLogic:"AND",index:Dr++,rules:[]},triangle:{combinationLogic:"AND",index:Dr++,rules:[]},diamond:{combinationLogic:"AND",index:Dr++,rules:[]},pentagon:{combinationLogic:"AND",index:Dr++,rules:[]},hexagon:{combinationLogic:"AND",index:Dr++,rules:[]},octagon:{combinationLogic:"AND",index:Dr++,rules:[]},decagon:{combinationLogic:"AND",index:Dr++,rules:[]},star4:{combinationLogic:"AND",index:Dr++,rules:[]},star5:{combinationLogic:"AND",index:Dr++,rules:[]},star6:{combinationLogic:"AND",index:Dr++,rules:[]},star8:{combinationLogic:"AND",index:Dr++,rules:[]},star10:{combinationLogic:"AND",index:Dr++,rules:[]}},colorBasedOnDepth:!1,depthColormap:"rainbow",currentNode:{useColor:!1,color:"#000000",size:100,shape:"circle"},fadeOnDisable:!1,borderUnresolved:"",spreadArcs:!1,weightArcs:!1,animateDotsOnLinks:!1,animationSpeedForDots:1,interactivesBrightness:{light:1,dark:1},fadeInElements:!1,externalLinks:"none",externalLinksProperties:["url"],externalLinkOpenMode:"note",showPinIcon:!0,allowMultipleLinkTypes:!1,disableSource:!1,disableTarget:!1,excludedSourcesFolder:[],excludedTargetsFolder:[],curvedLinks:!1,curvedFactor:1,outlineLinks:!1,displayLinkTypeLabel:!1,colorLinkTypeLabel:!1,noLineHighlight:!1,folderShowFullPath:!0,invertArrows:!1,flatArrows:!1,opaqueArrowsButKeepFading:!1,alwaysOpaqueArrows:!1,arrowScale:1,arrowFixedSize:!1,arrowColorBool:!1,arrowColor:"",numberOfCharacters:null,ellipsis:"\u2026",showOnlyFileName:!1,noExtension:!1,usePropertiesForName:[],addBackgroundToName:!1,nameVerticalOffset:0,dynamicVerticalOffset:!1,showNamesWhenNeighborHighlighted:!1,iconProperties:[""],usePluginForIcon:!0,usePluginForIconColor:!0,useParentIcon:!1,backgroundOpacityWithIcon:0,useIconColorForBackgroud:!0,borderWidthWithIcon:0,layerProperties:["layer"],numberOfActiveLayers:4,layersOrder:"ASC",displayLabelsInUI:!0,nodesWithoutLayerOpacity:0,useLayerCustomOpacity:!0,layersCustomOpacity:{},layersLevels:{},defaultLevelForLayers:0,horizontalLegend:!1,useRadialMenu:!1,radialMenuModifier:"Shift",pinNodeModifier:"Alt",useLeftClickToSelect:!0,selectNodeModifier:"Shift",filterAbstractFiles:[],ignoreInlineLinks:!1,collapseState:!0,collapseLegend:!0,resetAfterChanges:!1,collapsedSettings:{},selectionMode:"replace",exportSVGOptions:{asImage:!0,onlyVisibleArea:!1,showNodeNames:!0,useCurvedLinks:!1,useModifiedArrows:!0,useNodesShapes:!1,showArcs:!1,showFolders:!0,useModifiedNames:!0,showIcons:!1},multipleNodesData:{}},Xe=class r{static excludeType(e,t,i){if(ei.hasOwnProperty(t)&&ei[t].includes(i))return!0;if(!e.interactiveSettings.hasOwnProperty(t))return!1;if(!e.interactiveSettings[t].unselected||e.interactiveSettings[t].unselected.includes(i))return!0;if("excludeRegex"in e.interactiveSettings[t]){for(let s of e.interactiveSettings[t].excludeRegex.regex.split(` +`))if(s!==""&&new RegExp(s,e.interactiveSettings[t].excludeRegex.flags).test(i))return!0}return!1}static needToChangeLinkColor(e){return!!(e.settings.enableFeatures[e.type].links&&e.settings.interactiveSettings[ne].showOnGraph||e.settings.enableFeatures[e.type]["elements-stats"]&&e.settings.linksColorFunction!=="default"||e.settings.enableFeatures[e.type].linksSameColorAsNode)}static needToChangeArrowColor(e,t){return!!(e.settings.enableFeatures[e.type].arrows&&e.settings.arrowColorBool&&e.settings.arrowColor!=""||e.settings.enableFeatures[e.type].links&&e.settings.interactiveSettings[ne].showOnGraph&&!t.hasType(ne,e.settings.interactiveSettings[ne].noneType)||e.settings.enableFeatures[e.type]["elements-stats"]&&e.settings.linksColorFunction!=="default"||e.settings.enableFeatures[e.type].linksSameColorAsNode)}static needToChangeArrowScale(e){return!!(e.settings.enableFeatures[e.type].arrows&&(e.settings.arrowScale!==1||e.settings.arrowFixedSize))}static needToChangeArrowAlpha(e){return!!(e.settings.enableFeatures[e.type].arrows&&e.settings.alwaysOpaqueArrows)}static needToChangeArrowRotation(e){return!!(e.settings.enableFeatures[e.type].arrows&&e.settings.invertArrows)}static needToChangeArrowShape(e){return!!(e.settings.enableFeatures[e.type].arrows&&e.settings.flatArrows)}static needToChangeArrow(e){return e.settings.enableFeatures[e.type].arrows&&(e.settings.invertArrows||e.settings.arrowScale!==1||e.settings.arrowFixedSize||e.settings.arrowColorBool&&e.settings.arrowColor!=""||e.settings.alwaysOpaqueArrows||e.settings.flatArrows)||r.needToChangeLinkColor(e)}static needDynamicGraphology(e,t){if(t){if(!e.settings.enableFeatures[e.type]["elements-stats"]||!e.settings.recomputeStatsOnGraphChange)return!1;switch(t.element){case"node":return T1[t.stat==="size"?e.settings.nodesSizeFunction:e.settings.nodesColorFunction];case"link":return y1[t.stat==="size"?e.settings.linksSizeFunction:e.settings.linksColorFunction]}}else return e.type==="localgraph"&&e.settings.colorBasedOnDepth||e.settings.enableFeatures[e.type]["elements-stats"]&&e.settings.recomputeStatsOnGraphChange&&(y1[e.settings.linksSizeFunction]||y1[e.settings.linksColorFunction]||T1[e.settings.nodesSizeFunction]||T1[e.settings.nodesColorFunction])}static needReload(e,t,i){let s=e.enableFeatures[i],n=t.enableFeatures[i],o=p=>JSON.stringify(e[p])===JSON.stringify(t[p]);if(s.tags!==n.tags||n.tags&&!Ka(e.interactiveSettings[He],t.interactiveSettings[He])||s.links!==n.links||n.links&&!Ka(e.interactiveSettings[ne],t.interactiveSettings[ne])||s.folders!==n.folders||n.folders&&!Ka(e.interactiveSettings[pe],t.interactiveSettings[pe])||s.properties!==n.properties)return!0;let a=Object.keys(Object.fromEntries(Object.entries(e.additionalProperties).filter(p=>p[1][i]))),l=Object.keys(Object.fromEntries(Object.entries(t.additionalProperties).filter(p=>p[1][i])));if(!Ka(a,l))return!0;let c=a.map(p=>e.interactiveSettings[p]),h=l.map(p=>t.interactiveSettings[p]);if(!Ka(c,h)||n.links&&["excludedSourcesFolder","excludedTargetsFolder","curvedLinks","curvedFactor","disableSource","disableTarget","outlineLinks","displayLinkTypeLabel","colorLinkTypeLabel"].some(p=>!o(p)))return!0;let d=["imagesForAttachments","imagesFromEmbeds","imagesFromProperty"];return!!(d.some(p=>s[p]!==n[p])||n.imagesFromProperty&&!o("imageProperties")||d.some(p=>n[p])&&["borderFactor","allowExternalImages","allowExternalLocalImages"].some(p=>!o(p))||n["elements-stats"]!==s["elements-stats"]||n["elements-stats"]&&(["nodesSizeProperties","nodesSizeFunction","linksSizeFunction","nodesSizeRange"].some(p=>!o(p))||e.nodesColorFunction==="default"&&t.nodesColorFunction!=="default"||e.linksColorFunction==="default"&&t.linksColorFunction!=="default"||!o("graphStatsDirection")&&["nodesSizeFunction","nodesColorFunction","linksSizeFunction","linksColorFunction","recomputeStatsOnGraphChange"].some(p=>t[p]!=="default"))||n.shapes!==s.shapes||n.shapes&&["shapeQueries"].some(p=>!o(p))||n.arrows!==s.arrows||n.arrows&&["invertArrows","flatArrows","opaqueArrowsButKeepFading","alwaysOpaqueArrows","arrowScale","arrowColorBool","arrowColor","arrowFixedSize"].some(p=>!o(p))||n.names!==s.names||n.names&&(["numberOfCharacters","ellipsis","showOnlyFileName","noExtension","usePropertiesForName","addBackgroundToName","dynamicVerticalOffset","showNamesWhenNeighborHighlighted"].some(p=>!o(p))||!e.dynamicVerticalOffset&&!t.dynamicVerticalOffset&&!o("nameVerticalOffset"))||n.icons!==s.icons||n.icons&&(["iconProperties","usePluginForIcon","backgroundOpacityWithIcon","useIconColorForBackgroud","borderWidthWithIcon"].some(p=>!o(p))||e.usePluginForIcon&&t.usePluginForIcon&&["usePluginForIconColor","useParentIcon"].some(p=>!o(p)))||n.layers!==s.layers||n.layers&&["layerProperties","numberOfActiveLayers","layersOrder","displayLabelsInUI","nodesWithoutLayerOpacity","useLayerCustomOpacity","layersCustomOpacity","layersLevels","defaultLevelForLayers"].some(p=>!o(p))||["colorBasedOnDepth","currentNode"].some(p=>!o(p))&&t.colorBasedOnDepth&&!o("depthColormap")||s.linksSameColorAsNode!==n.linksSameColorAsNode||["fadeOnDisable","borderUnresolved","spreadArcs","weightArcs","animateDotsOnLinks","animationSpeedForDots","interactivesBrightness","fadeInElements","externalLinks","showPinIcon"].some(p=>!o(p))||s.focus!==n.focus||n.focus&&["focusScaleFactor","highlightOpenNodes","highlightSearchResults"].some(p=>!o(p))||["openInNewTab"].some(p=>!o(p))||["customColorMaps"].some(p=>!o(p))||["filterAbstractFiles","ignoreInlineLinks"].some(p=>!o(p))||["enableCSS","useRadialMenu","noLineHighlight","canonicalizePropertiesWithDataview"].some(p=>!o(p)))}};function Ka(r,e){let t=Object.keys,i=typeof r;return r&&e&&i==="object"&&i===typeof e?t(r).length===t(e).length&&t(r).every(n=>Ka(r[n],e[n])):r===e}async function Mo(){let r=u.configurationDirectory;return await u.app.vault.adapter.exists(r)?(await u.app.vault.adapter.list(r)).files:[]}var xn=require("obsidian");var U1=class extends xn.PluginSettingTab{constructor(t){super(u.app,t);this.sections=[];this.settingsWithPalettes=[];let i=new Za(this),s=new i9(this),n=new Qa(this),o=new s9(this),a=new j1(this),l=new Q1(this);this.settingsWithPalettes.push(i,s,n,o,a,l),this.sections.push(new z1(this)),this.sections.push(i),this.sections.push(s),this.sections.push(n),this.sections.push(new V1(this)),this.sections.push(o),this.sections.push(new X1(this)),this.sections.push(new Y1(this)),this.sections.push(new q1(this)),this.sections.push(new t9(this)),this.sections.push(new Z1(this)),this.sections.push(a),this.sections.push(new J1(this)),this.sections.push(new r9(this)),this.sections.push(l),this.sections.push(new H1(this)),this.sections.push(new $1(this)),this.sections.push(new K1(this)),this.sections.push(new e9(this)),this.sections.push(new W1(this))}display(){this.originalSettings=structuredClone(u.settings),this.containerEl.empty(),this.containerEl.addClass("extended-graph-settings"),this.addImportExport(),this.addNav(),this.addDisableNodes(),this.addCanonicalPropertiesWithDataview();for(let t of this.sections)t.display()}addImportExport(){new xn.Setting(this.containerEl).addExtraButton(t=>{t.extraSettingsEl.insertAdjacentText("beforebegin",m("controls.export")),t.setIcon("upload"),t.setTooltip(m("controls.exportSettings")),t.onClick(()=>{new n9((s,n)=>{let o=n?s:u.configurationDirectory+"/"+s+".json";return!n&&!Ku(s)?!1:(u.plugin.exportSettings(o,u.settings),!0)}).open()})}).addExtraButton(t=>{t.extraSettingsEl.insertAdjacentText("beforebegin",m("controls.import")),t.setIcon("download"),t.setTooltip(m("controls.importSettings")),t.onClick(()=>{new Ja(s=>{if(s.trim()===""){new xn.Notice("Configuration name cannot be empty");return}u.plugin.importSettings(s).then(()=>{this.display()})}).open()})})}addNav(){let i=this.containerEl.createDiv({cls:"extended-graph-nav-settings"}).createDiv({cls:"nav-label"});i.innerText=m("controls.goTo")}addDisableNodes(){new xn.Setting(this.containerEl).setName(m("features.disableNodes")).setDesc(m("features.disableNodesDesc")).addToggle(t=>{t.setValue(!u.settings.fadeOnDisable),t.onChange(i=>{u.settings.fadeOnDisable=!i,u.plugin.saveSettings()})})}addCanonicalPropertiesWithDataview(){N0(!1)&&new xn.Setting(this.containerEl).setName(m("features.canonicalizePropertiesWithDataview")).setDesc(m("features.canonicalizePropertiesWithDataviewDesc")).addToggle(t=>{t.setValue(u.settings.canonicalizePropertiesWithDataview),t.onChange(i=>{u.settings.canonicalizePropertiesWithDataview=i,u.plugin.saveSettings()})})}hide(){u.graphsManager&&u.settings.resetAfterChanges&&(Xe.needReload(this.originalSettings,u.settings,"graph")&&u.graphsManager.resetAllPlugins("graph"),Xe.needReload(this.originalSettings,u.settings,"localgraph")&&u.graphsManager.resetAllPlugins("localgraph")),super.hide()}onCustomPaletteModified(t,i){for(let s of this.settingsWithPalettes)s.onCustomPaletteModified(t,i);u.plugin.saveSettings()}};var mo=require("obsidian");var Bt=class{constructor(e,t,i,s,n,o){this.elementsBody=[];this.itemClasses=[];this.isCollapsed=!1;this.settingTab=e,this.containerEl=e.containerEl,this.id=t,this.keyword=i,this.title=s,this.icon=n,this.description=o,this.itemClasses.push(`setting-${this.id}`)}display(){this.elementsBody=[],this.addHeader(),this.addBody(),this.addToNav(),this.id!="property-key"&&(!(this.id in u.settings.collapsedSettings)||u.settings.collapsedSettings[this.id])&&this.collapse(),this.elementsBody.forEach(e=>{e.addClasses(this.itemClasses)})}addHeader(){this.settingHeader=new mo.Setting(this.containerEl).setName(this.title).setHeading(),this.icon&&this.icon!==""&&this.settingHeader.then(e=>{let t=createDiv();e.settingEl.prepend(t),this.icon&&(0,mo.setIcon)(t,this.icon)}),this.foldIcon=new mo.ExtraButtonComponent(this.settingHeader.nameEl).setIcon("chevron-right").onClick(()=>{this.isCollapsed?this.expand():this.collapse()}).then(e=>{e.extraSettingsEl.addClass("setting-header-fold-icon")}),this.settingHeader.setDesc(this.description),this.settingHeader.settingEl.addClasses(this.itemClasses)}addToNav(){if(this.icon==="")return;let e=this.settingTab.containerEl.querySelector(".extended-graph-nav-settings");if(!e)return;let t=e.createDiv();new mo.ExtraButtonComponent(t).setIcon(this.icon).onClick(()=>{this.settingHeader.settingEl.scrollIntoView()}).setTooltip(this.title),t.appendText(this.keyword)}collapse(){this.isCollapsed=!0,this.settingHeader.settingEl.addClass("is-collapsed"),u.settings.collapsedSettings[this.id]=!0,u.plugin.saveSettings(),this.onCollapse()}expand(){this.isCollapsed=!1,this.settingHeader.settingEl.removeClass("is-collapsed"),u.settings.collapsedSettings[this.id]=!1,u.plugin.saveSettings(),this.onExpand()}onCollapse(){}onExpand(){}};var Dm=require("obsidian");var e0=class extends Bt{constructor(t,i,s,n,o,a,l){super(t,i,n,o,a,l);this.toggles={};this.feature=i,this.interactiveKey=s,s!==""&&this.itemClasses.push(`setting-${this.feature}-${o9(s)}`)}addHeader(){super.addHeader(),this.toggles={},this.addToggle("graph"),this.addToggle("localgraph")}addToggle(t){let i=u.settings.enableFeatures[t][this.feature];this.feature==="property-key"&&(i=u.settings.additionalProperties[this.interactiveKey][t]);let s=this.settingHeader.controlEl.createDiv();s.addClass("toggle-labelled"),s.insertAdjacentText("afterbegin",pu[t]),new Dm.ToggleComponent(s).setValue(i).onChange(n=>{this.toggle(t,n)}),this.toggles[t]=s,this.toggle(t,i)}toggle(t,i){this.feature==="property-key"?u.settings.additionalProperties[this.interactiveKey][t]=i:u.settings.enableFeatures[t][this.feature]=i,u.plugin.saveSettings()}};var yo=require("obsidian");var V1=class extends e0{constructor(e){super(e,"arrows","",m("features.ids.arrows"),m("features.arrows"),"mouse-pointer-2",m("features.arrowsDesc"))}addBody(){this.addInvertArrows(),this.addFlatArrows(),this.addOpaqueArrows(),this.addScaleArrow(),this.addColorArrow()}addInvertArrows(){this.elementsBody.push(new yo.Setting(this.settingTab.containerEl).setName(m("features.arrowsInvert")).setDesc(m("features.arrowsInvertDesc")).addToggle(e=>{e.setValue(u.settings.invertArrows),e.onChange(t=>{u.settings.invertArrows=t,u.plugin.saveSettings()})}).settingEl)}addFlatArrows(){this.elementsBody.push(new yo.Setting(this.settingTab.containerEl).setName(m("features.arrowsFlat")).setDesc(m("features.arrowsFlatDesc")).addToggle(e=>{e.setValue(u.settings.flatArrows),e.onChange(t=>{u.settings.flatArrows=t,u.plugin.saveSettings()})}).settingEl)}addOpaqueArrows(){this.elementsBody.push(new yo.Setting(this.settingTab.containerEl).setName(m("features.arrowsOpaque")).setDesc(m("features.arrowsOpaqueDesc")).addToggle(e=>{e.toggleEl.insertAdjacentText("beforebegin",m("features.arrowsOpaqueKeepFading")),e.setValue(u.settings.opaqueArrowsButKeepFading),e.onChange(t=>{u.settings.opaqueArrowsButKeepFading=t,u.plugin.saveSettings()})}).addToggle(e=>{e.toggleEl.insertAdjacentText("beforebegin",m("features.arrowsOpaqueAlways")),e.setValue(u.settings.alwaysOpaqueArrows),e.onChange(t=>{u.settings.alwaysOpaqueArrows=t,u.plugin.saveSettings()})}).settingEl)}addScaleArrow(){this.elementsBody.push(new yo.Setting(this.settingTab.containerEl).setName(m("features.arrowsScale")).setDesc(m("features.arrowsScaleDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.arrowScale.toString()).onChange(async t=>{t===""&&(u.settings.arrowScale=1,await u.plugin.saveSettings());let i=parseFloat(t);isNaN(i)||(u.settings.arrowScale=Math.max(.1,i),await u.plugin.saveSettings())})}).settingEl),this.elementsBody.push(new yo.Setting(this.settingTab.containerEl).setName(m("features.arrowsFixedSize")).setDesc(m("features.arrowsFixedSizeDesc")).addToggle(e=>{e.setValue(u.settings.arrowFixedSize),e.onChange(t=>{u.settings.arrowFixedSize=t,u.plugin.saveSettings()})}).settingEl)}addColorArrow(){this.elementsBody.push(new yo.Setting(this.settingTab.containerEl).setName(m("features.arrowsColor")).setDesc(m("features.arrowsColorDesc")).addToggle(e=>{e.setValue(u.settings.arrowColorBool),e.onChange(t=>{u.settings.arrowColorBool=t,u.plugin.saveSettings()})}).addColorPicker(e=>{e.setValue(u.settings.arrowColor),e.onChange(t=>{u.settings.arrowColor=t,u.plugin.saveSettings()})}).settingEl)}};var el=require("obsidian");var z1=class extends Bt{constructor(e){super(e,"automation",m("features.ids.automation"),m("features.automation"),"workflow","")}addBody(){this.addAutoEnable(),this.addStartingState(),this.addSyncDefaultState(),this.addSaveConfigWithState(),this.addOpenInNewTab(),this.addResetAfterChanges()}addAutoEnable(){this.elementsBody.push(new Hi(this.containerEl,m("features.autoEnable"),m("features.autoEnableDesc"),"auto-enabled").settingEl)}addStartingState(){this.elementsBody.push(new el.Setting(this.containerEl).setName(m("states.startingState")).setDesc(m("states.startingStateDesc")).addDropdown(e=>{e.addOptions(Object.fromEntries(Object.values(u.settings.states).map(t=>[t.id,t.name]))),e.setValue(u.settings.startingStateID),e.onChange(t=>{u.settings.startingStateID=t,u.plugin.saveSettings()})}).settingEl)}addSyncDefaultState(){this.elementsBody.push(new el.Setting(this.containerEl).setName(m("states.syncDefaultState")).setDesc(m("states.syncDefaultStateDesc")).addToggle(e=>{e.setValue(u.settings.syncDefaultState),e.onChange(t=>{u.settings.syncDefaultState=t,u.plugin.saveSettings()})}).settingEl)}addSaveConfigWithState(){this.elementsBody.push(new el.Setting(this.containerEl).setName(m("states.saveConfigsWithState")).setDesc(m("states.saveConfigsWithStateDesc")).addToggle(e=>{e.setValue(u.settings.saveConfigsWithState),e.onChange(t=>{u.settings.saveConfigsWithState=t,u.plugin.saveSettings()})}).settingEl)}addOpenInNewTab(){this.elementsBody.push(new el.Setting(this.containerEl).setName(m("features.openInNewTab")).setDesc(m("features.openInNewTabDesc")).addToggle(e=>{e.setValue(u.settings.openInNewTab),e.onChange(t=>{u.settings.openInNewTab=t,u.plugin.saveSettings()})}).settingEl)}addResetAfterChanges(){this.elementsBody.push(new el.Setting(this.containerEl).setName(m("features.autoReset")).setDesc(m("features.autoResetDesc")).addToggle(e=>{e.setValue(u.settings.resetAfterChanges),e.onChange(t=>{u.settings.resetAfterChanges=t,u.plugin.saveSettings()})}).settingEl)}};var fu=require("obsidian");var W1=class extends Bt{constructor(e){super(e,"beta",m("features.ids.beta"),m("beta.betaFeatures"),"hourglass","")}addBody(){this.addRevertAction(),this.addExternalLinks()}addRevertAction(){let e=new fu.Setting(this.settingTab.containerEl).setName(m("beta.revertAction")).setDesc(m("beta.revertActionDesc")).addToggle(t=>t.setValue(u.settings.revertAction).onChange(async i=>{u.settings.revertAction=i,await u.plugin.saveSettings()}));this.elementsBody.push(e.settingEl)}addExternalLinks(){this.elementsBody.push(new fu.Setting(this.containerEl).setName(m("features.externalLinks")).setDesc(m("features.externalLinksDesc")).addDropdown(e=>{let t={none:m("features.externalLinksOptions.none"),domain:m("features.externalLinksOptions.domain"),href:m("features.externalLinksOptions.href"),domain_and_href:m("features.externalLinksOptions.domain_and_href")};e.addOptions(t),e.setValue(u.settings.externalLinks),e.onChange(async i=>{u.settings.externalLinks=i,await u.plugin.saveSettings()})}).settingEl),this.elementsBody.push(new fu.Setting(this.settingTab.containerEl).setName(m("features.externalLinksProperties")).setDesc(m("features.externalLinksPropertiesDesc")).addExtraButton(e=>{e.setIcon("mouse-pointer-click"),e.onClick(()=>{new rr(m("features.externalLinksProperties"),m("features.externalLinksPropertiesAdd"),u.settings.externalLinksProperties).open()})}).settingEl),this.elementsBody.push(new fu.Setting(this.containerEl).setName(m("features.externalLinksOpenMode")).setDesc(m("features.externalLinksOpenModeDesc")).addDropdown(e=>{let t={web:m("features.externalLinksModes.web"),note:m("features.externalLinksModes.note"),choice:m("features.externalLinksModes.choice")};e.addOptions(t),e.setValue(u.settings.externalLinkOpenMode),e.onChange(async i=>{u.settings.externalLinkOpenMode=i,await u.plugin.saveSettings()})}).settingEl)}};var mi=require("obsidian");var H1=class extends Bt{constructor(e){super(e,"display",m("features.ids.display"),m("features.otherDisplay"),"monitor","")}addBody(){this.addBorderUnresolved(),this.addLinkSameColorAsNodes(),this.addNoLineHighlight(),this.addSpreadArcs(),this.addWeightArcs(),this.addBrightness(),this.addFadeInElements(),this.addAnimateDotsOnLinks(),this.addAnimationSpeedForDot(),this.addHorizontalLegend(),this.addShowPinIcon()}addBorderUnresolved(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.borderUnresolved")).setDesc(m("features.borderUnresolvedDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.borderUnresolved.toString()).onChange(async t=>{t===""&&(u.settings.borderUnresolved="",await u.plugin.saveSettings());let i=parseFloat(t);isNaN(i)||(u.settings.borderUnresolved=Math.clamp(i,0,1),await u.plugin.saveSettings())})}).settingEl)}addLinkSameColorAsNodes(){this.elementsBody.push(new Hi(this.containerEl,m("features.linksSameColorAsNode"),m("features.linksSameColorAsNodeDesc"),"linksSameColorAsNode").settingEl)}addNoLineHighlight(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.noLineHighlight")).setDesc(m("features.noLineHighlightDesc")).addToggle(e=>{e.setValue(u.settings.noLineHighlight||!1),e.onChange(t=>{u.settings.noLineHighlight=t,u.plugin.saveSettings()})}).settingEl)}addSpreadArcs(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.interactives.arcsSpread")).setDesc(m("features.interactives.arcsSpreadDesc")).addToggle(e=>{e.setValue(u.settings.spreadArcs||!1),e.onChange(t=>{u.settings.spreadArcs=t,u.plugin.saveSettings()})}).settingEl)}addWeightArcs(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.interactives.arcWeight")).setDesc(m("features.interactives.arcWeightDesc")).addToggle(e=>{e.setValue(u.settings.weightArcs||!1),e.onChange(t=>{u.settings.weightArcs=t,u.plugin.saveSettings()})}).settingEl)}addBrightness(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.brightness")).setDesc(m("features.brightnessDesc")).addText(e=>{e.inputEl.addClass("number"),e.inputEl.insertAdjacentText("beforebegin",m("plugin.light")),e.setValue(u.settings.interactivesBrightness.light.toString()),e.onChange(t=>{t===""&&(u.settings.interactivesBrightness.light=1,u.plugin.saveSettings());let i=parseFloat(t);isNaN(i)||(u.settings.interactivesBrightness.light=Math.max(i,0),u.plugin.saveSettings())})}).addText(e=>{e.inputEl.addClass("number"),e.inputEl.insertAdjacentText("beforebegin",m("plugin.dark")),e.setValue(u.settings.interactivesBrightness.dark.toString()),e.onChange(t=>{t===""&&(u.settings.interactivesBrightness.dark=1,u.plugin.saveSettings());let i=parseFloat(t);isNaN(i)||(u.settings.interactivesBrightness.dark=Math.max(i,0),u.plugin.saveSettings())})}).settingEl)}addFadeInElements(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.fadeInElements")).setDesc(m("features.fadeInElementsDesc")).addToggle(e=>{e.setValue(u.settings.fadeInElements),e.onChange(t=>{u.settings.fadeInElements=t,u.plugin.saveSettings()})}).settingEl)}addAnimateDotsOnLinks(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.animateDotsOnLinks")).setDesc(m("features.animateDotsOnLinksDesc")).addToggle(e=>{e.setValue(u.settings.animateDotsOnLinks||!1),e.onChange(t=>{u.settings.animateDotsOnLinks=t,u.plugin.saveSettings()})}).settingEl)}addAnimationSpeedForDot(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("features.animateDotsOnLinksSpeed")).setDesc(m("features.animateDotsOnLinksSpeedDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.animationSpeedForDots.toString()).onChange(async t=>{let i=parseFloat(t);!isNaN(i)&&i>0&&(u.settings.animationSpeedForDots=i,await u.plugin.saveSettings())})}).settingEl)}addHorizontalLegend(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("UI.horizontalLegend")).setDesc(m("UI.horizontalLegendDesc")).addToggle(e=>{e.setValue(u.settings.horizontalLegend),e.onChange(t=>{u.settings.horizontalLegend=t,u.plugin.saveSettings()})}).settingEl)}addShowPinIcon(){this.elementsBody.push(new mi.Setting(this.containerEl).setName(m("UI.showPinIcon")).setDesc(m("UI.showPinIconDesc")).addToggle(e=>{e.setValue(u.settings.showPinIcon),e.onChange(t=>{u.settings.showPinIcon=t,u.plugin.saveSettings()})}).settingEl)}};var o0=require("obsidian");var Dn=require("obsidian");var rr=class extends Dn.Modal{constructor(t,i,s){super(u.app);this.inputs=[];this.properties=s,this.addText=i,this.setTitle(t),this.modalEl.addClass("graph-modal-setting-properties")}onOpen(){this.addAddButton(),this.loadProperties()}addAddButton(){this.contentEl.createSpan().textContent=this.addText;let t=new Dn.ButtonComponent(this.contentEl).onClick(()=>{this.addProperty("")});Je.setupButton(t,"add")}loadProperties(){this.propertiesDiv=this.contentEl.createDiv("properties-list");for(let t of this.properties)this.addProperty(t)}addProperty(t){let i=this.propertiesDiv.createDiv("property-value"),s=t,n=new Dn.SearchComponent(i).setValue(t).onChange(a=>{this.renameProperty(s,a)&&(s=a)});new tl(n.inputEl,a=>{this.renameProperty(s,a)&&(s=a)}),this.inputs.push(n);let o=new Dn.ExtraButtonComponent(i).onClick(()=>{this.deleteProperty(i,n)});Je.setupExtraButton(o,"delete")}deleteProperty(t,i){this.inputs.remove(i),this.properties.remove(i.getValue()),t.remove(),u.plugin.saveSettings()}renameProperty(t,i){return rl(i)&&!this.properties.contains(i)&&i!==t?(this.properties.remove(t),this.properties.push(i),u.plugin.saveSettings(),!0):!1}onClose(){this.contentEl.empty()}};var j1=class extends e0{constructor(e){super(e,"elements-stats","",m("features.ids.elementsStats"),m("features.elementsStats"),"chart-pie",m("features.elementsStatsDesc"))}addBody(){this.nodesSizeFunctionDropdown=void 0,this.nodesColorFunctionDropdown=void 0,this.linksSizeFunctionDropdown=void 0,this.linksColorFunctionDropdown=void 0,this.addNodeSizeProperties(),this.addNodeSizeFunction(),this.addNodeSizeWarning(),this.addNodeSizeRange(),this.addNodeColorFunction(),this.addNodeColorWarning(),this.addColorPaletteSettingForNodes(),this.addStatsDirection(),this.addLinkSizeFunction(),this.addLinkColorFunction(),this.addColorPaletteSettingForLinks(),this.addRecomputeStatsOnGraphChange()}addNodeSizeProperties(){let e=new o0.Setting(this.settingTab.containerEl).setName(m("features.nodeSizeProperties")).setDesc(m("features.nodeSizePropertiesDesc")).addExtraButton(t=>{t.setIcon("mouse-pointer-click"),t.onClick(()=>{new rr(m("features.nodeSizeProperties"),m("features.nodeSizePropertiesAdd"),u.settings.nodesSizeProperties).open()})});this.elementsBody.push(e.settingEl)}addNodeSizeFunction(){let e=new o0.Setting(this.settingTab.containerEl).setName(m("features.nodeSizesFunction")).setDesc(m("features.nodeSizesFunctionDesc")).addDropdown(t=>{this.nodesSizeFunctionDropdown=t,t.addOptions(Object.fromEntries(Object.entries(is).filter(i=>{let s=i[0];return!(Hc[s]&&!y0())}))),t.setValue(u.settings.nodesSizeFunction),t.onChange(i=>{let s=i;!y0()&&Hc[s]&&(new o0.Notice(`${m("notices.nlpPluginRequired")} (${s})`),s="default",this.nodesSizeFunctionDropdown?.setValue(s)),u.settings.nodesSizeFunction=s,u.plugin.saveSettings(),this.setWarning(this.warningNodeSizeSetting,cr.getWarning(s))})});this.elementsBody.push(e.settingEl)}addNodeSizeWarning(){let e=new o0.Setting(this.settingTab.containerEl).setClass("setting-warning").then(t=>{(0,o0.setIcon)(t.nameEl,"triangle-alert")});this.elementsBody.push(e.settingEl),this.warningNodeSizeSetting=e,this.setWarning(e,cr.getWarning(u.settings.nodesSizeFunction))}addNodeSizeRange(){let e=new o0.Setting(this.containerEl).setName(m("features.nodeSizesRange")).setDesc(m("features.nodeSizesRangeDesc")).addText(t=>{t.inputEl.addClass("number"),t.setValue(u.settings.nodesSizeRange.min.toString()),t.onChange(async i=>{let s=parseFloat(i);isNaN(s)||(u.settings.nodesSizeRange.min=Math.clamp(s,.1,5),await u.plugin.saveSettings())})}).addText(t=>{t.inputEl.addClass("number"),t.setValue(u.settings.nodesSizeRange.max.toString()),t.onChange(async i=>{let s=parseFloat(i);isNaN(s)||(u.settings.nodesSizeRange.max=Math.clamp(s,.1,5),await u.plugin.saveSettings())})});this.elementsBody.push(e.settingEl)}addNodeColorFunction(){let e=new o0.Setting(this.settingTab.containerEl).setName(m("features.nodeColorsFunction")).setDesc(m("features.nodeColorsFunctionDesc")).addDropdown(t=>{this.nodesColorFunctionDropdown=t,t.addOptions(Object.fromEntries(Object.entries(is).filter(i=>{let s=i[0];return!(Hc[s]&&!y0())}))),t.setValue(u.settings.nodesColorFunction),t.onChange(i=>{let s=i;!y0()&&Hc[s]&&(new o0.Notice(`${m("notices.nlpPluginRequired")} (${s})`),s="default",this.nodesColorFunctionDropdown?.setValue(s)),u.settings.nodesColorFunction=s,this.setWarning(this.warningNodeColorSetting,cr.getWarning(s)),u.plugin.saveSettings()})});this.elementsBody.push(e.settingEl)}addNodeColorWarning(){let e=new o0.Setting(this.settingTab.containerEl).setClass("setting-warning").then(t=>{(0,o0.setIcon)(t.nameEl,"triangle-alert")});this.elementsBody.push(e.settingEl),this.warningNodeColorSetting=e,this.setWarning(e,cr.getWarning(u.settings.nodesColorFunction))}addStatsDirection(){let e=new o0.Setting(this.settingTab.containerEl).setName(m("features.nodeStatsDirection")).setDesc(m("features.nodeStatsDirectionDesc")).addDropdown(t=>{let i={normal:m("features.nodeStatsDirectionNormal"),reversed:m("features.nodeStatsDirectionReversed"),undirected:m("features.nodeStatsDirectionUndirected")};t.addOptions(i),t.setValue(u.settings.graphStatsDirection),t.onChange(async s=>{u.settings.graphStatsDirection=s,await u.plugin.saveSettings()})});this.elementsBody.push(e.settingEl)}addColorPaletteSettingForNodes(){this.nodesPaletteSetting=new As(this.containerEl,this.settingTab,"stats-colors-nodes").setDesc(m("features.nodeColorsPaletteDesc")),this.nodesPaletteSetting.setValue(u.settings.nodesColorColormap),this.nodesPaletteSetting.onPaletteChange(e=>{u.settings.nodesColorColormap=e,u.plugin.saveSettings(),u.graphsManager.nodesColorCalculator?.mapStat(),u.graphsManager.updatePaletteForNodesStat()}),this.elementsBody.push(this.nodesPaletteSetting.settingEl)}addLinkSizeFunction(){let e=new o0.Setting(this.settingTab.containerEl).setName(m("features.linkSizesFunction")).setDesc(m("features.linkSizesFunctionDesc")).addDropdown(t=>{this.linksSizeFunctionDropdown=t,t.addOptions(Object.fromEntries(Object.entries(rs).filter(i=>{let s=i[0];return!(Pn[s]&&!y0())}))),t.setValue(u.settings.linksSizeFunction),t.onChange(i=>{this.recomputeLinksSizes(i)})});this.elementsBody.push(e.settingEl)}addLinkColorFunction(){let e=new o0.Setting(this.settingTab.containerEl).setName(m("features.linkColorsFunction")).setDesc(m("features.linkColorsFunctionDesc")+" \u26A0\uFE0F "+m("features.linksFeatureRequired")).addDropdown(t=>{this.linksColorFunctionDropdown=t,t.addOptions(Object.fromEntries(Object.entries(rs).filter(i=>{let s=i[0];return!(Pn[s]&&!y0())}))),t.setValue(u.settings.linksColorFunction),t.onChange(i=>{this.recomputeLinksColors(i)})});this.elementsBody.push(e.settingEl)}addColorPaletteSettingForLinks(){this.linksPaletteSetting=new As(this.containerEl,this.settingTab,"stats-colors-links").setDesc(m("features.linkColorsPaletteDesc")),this.linksPaletteSetting.setValue(u.settings.linksColorColormap),this.linksPaletteSetting.onPaletteChange(e=>{u.settings.linksColorColormap=e,u.plugin.saveSettings(),u.graphsManager.linksColorCalculator?.mapStat(),u.graphsManager.updatePaletteForLinksStat()}),this.elementsBody.push(this.linksPaletteSetting.settingEl)}addRecomputeStatsOnGraphChange(){let e=new o0.Setting(this.settingTab.containerEl).setName(m("features.nodeStatsRecomputeOnGraphChange")).setDesc(m("features.nodeStatsRecomputeOnGraphChangeDesc")).addToggle(t=>{t.setValue(u.settings.recomputeStatsOnGraphChange),t.onChange(i=>{u.settings.recomputeStatsOnGraphChange=i,u.plugin.saveSettings()})});this.elementsBody.push(e.settingEl)}onCustomPaletteModified(e,t){X0(u.settings.nodesColorColormap,u.settings)||(u.settings.nodesColorColormap===e&&X0(t,u.settings)?u.settings.nodesColorColormap=t:u.settings.nodesColorColormap="rainbow"),this.nodesPaletteSetting.populateCustomOptions(),this.nodesPaletteSetting.setValue(u.settings.nodesColorColormap),X0(u.settings.linksColorColormap,u.settings)||(u.settings.linksColorColormap===e&&X0(t,u.settings)?u.settings.linksColorColormap=t:u.settings.linksColorColormap="rainbow"),this.linksPaletteSetting.populateCustomOptions(),this.linksPaletteSetting.setValue(u.settings.linksColorColormap)}setWarning(e,t){t&&t!==""?(e.setDesc(t),e.settingEl.removeClass("is-hidden")):(e.setDesc(""),e.settingEl.addClass("is-hidden"))}recomputeLinksSizes(e){!y0()&&Pn[e]&&(new o0.Notice(`${m("notices.nlpPluginRequired")} (${e})`),e="default",this.linksSizeFunctionDropdown?.setValue(e)),u.settings.linksSizeFunction=e,u.plugin.saveSettings()}recomputeLinksColors(e){!y0()&&Pn[e]&&(new o0.Notice(`${m("notices.nlpPluginRequired")} (${e})`),e="default",this.linksColorFunctionDropdown?.setValue(e)),u.settings.linksColorFunction=e,u.plugin.saveSettings()}};var a9=require("obsidian");var $1=class extends Bt{constructor(e){super(e,"filter",m("features.ids.filter"),m("features.filters"),"file-x",m("features.filtersDesc"))}addBody(){this.addIgnoreInlineLinks(),this.addNewFilterSetting();for(let e of u.settings.filterAbstractFiles)this.addRegex(e)}addIgnoreInlineLinks(){this.elementsBody.push(new a9.Setting(this.containerEl).setName(m("features.ignoreInlineLinks")).setDesc(m("features.ignoreInlineLinksDesc")).addToggle(e=>{e.setValue(u.settings.ignoreInlineLinks),e.onChange(async t=>{u.settings.ignoreInlineLinks=t,await u.plugin.saveSettings()})}).settingEl)}addNewFilterSetting(){let e=new a9.Setting(this.settingTab.containerEl).setName(m("query.excludeRegex"));e.addExtraButton(t=>{Je.setupExtraButton(t,"add"),t.onClick(async()=>{let i=this.elementsBody.last()??e.settingEl,s={regex:"",flag:""};u.settings.filterAbstractFiles.push(s);let n=this.addRegex(s);i.insertAdjacentElement("afterend",n.settingEl),await u.plugin.saveSettings()})}),this.elementsBody.push(e.settingEl)}addRegex(e){let t=new a9.Setting(this.settingTab.containerEl).addSearch(i=>{new l9(i.inputEl,s=>{e.regex=s,u.plugin.saveSettings()}),i.setValue(e.regex),i.onChange(s=>{e.regex=s,u.plugin.saveSettings()})}).addText(i=>{i.setPlaceholder("flag").setValue(e.flag).onChange(s=>{e.flag=s,u.plugin.saveSettings()})});return t.addExtraButton(i=>{Je.setupExtraButton(i,"delete"),i.onClick(()=>{u.settings.filterAbstractFiles.remove(e),u.plugin.saveSettings(),t.settingEl.remove(),this.elementsBody.remove(t.settingEl)})}),this.elementsBody.push(t.settingEl),t.settingEl.addClasses(this.itemClasses),t}};var c9=require("obsidian");var q1=class extends e0{constructor(e){super(e,"focus","",m("features.ids.focus"),m("features.focus"),"telescope",m("features.focusDesc"))}addHeader(){super.addHeader()}addBody(){this.addFocusScale(),this.addHighlightOpenNodes(),this.addHighlightSearchResults()}addFocusScale(){this.elementsBody.push(new c9.Setting(this.settingTab.containerEl).setName(m("features.focusScale")).setDesc(m("features.focusScaleDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.focusScaleFactor.toString()).onChange(async t=>{let i=parseFloat(t);i&&(u.settings.focusScaleFactor=i,await u.plugin.saveSettings())})}).settingEl)}addHighlightOpenNodes(){this.elementsBody.push(new c9.Setting(this.settingTab.containerEl).setName(m("features.focusOpenNodes")).setDesc(m("features.focusOpenNodesDesc")).addToggle(e=>{e.setValue(u.settings.highlightOpenNodes).onChange(async t=>{u.settings.highlightOpenNodes=t,await u.plugin.saveSettings()})}).settingEl)}addHighlightSearchResults(){this.elementsBody.push(new c9.Setting(this.settingTab.containerEl).setName(m("features.focusSearchResults")).setDesc(m("features.focusSearchResultsDesc")).addToggle(e=>{e.setValue(u.settings.highlightSearchResults).onChange(async t=>{u.settings.highlightSearchResults=t,await u.plugin.saveSettings()})}).settingEl)}};var bn=require("obsidian");var Y1=class extends e0{constructor(e){super(e,"icons","",m("features.ids.icons"),m("features.icons"),"origami",m("features.iconsDesc"))}addBody(){this.colorSetting=void 0,this.parentSetting=void 0,this.addProperty(),this.addSupportForPlugins(),this.addBackgroundOpacity(),this.addBorderWidth()}addProperty(){this.elementsBody.push(new bn.Setting(this.settingTab.containerEl).setName(m("features.iconProperties")).setDesc(m("features.iconPropertiesDesc")).addExtraButton(e=>{e.setIcon("mouse-pointer-click"),e.onClick(()=>{new rr(m("features.iconProperties"),m("features.iconPropertiesAdd"),u.settings.iconProperties).open()})}).settingEl)}addSupportForPlugins(){this.elementsBody.push(new bn.Setting(this.settingTab.containerEl).setName(m("features.iconUsePlugin")).setDesc(m("features.iconUsePluginDesc")).addToggle(e=>{e.setValue(u.settings.usePluginForIcon),e.onChange(t=>{u.settings.usePluginForIcon=t,u.plugin.saveSettings(),this.colorSetting?.setVisibility(t),this.parentSetting?.setVisibility(t)})}).settingEl),this.colorSetting=new bn.Setting(this.settingTab.containerEl).setName(m("features.iconUsePluginColor")).setDesc(m("features.iconUsePluginColorDesc")).addToggle(e=>{e.setValue(u.settings.usePluginForIconColor),e.onChange(t=>{u.settings.usePluginForIconColor=t,u.plugin.saveSettings()})}),this.colorSetting?.setVisibility(u.settings.usePluginForIcon),this.elementsBody.push(this.colorSetting.settingEl),this.parentSetting=new bn.Setting(this.settingTab.containerEl).setName(m("features.iconUseParentIcon")).setDesc(m("features.iconUseParentIconDesc")).addToggle(e=>{e.setValue(u.settings.useParentIcon),e.onChange(t=>{u.settings.useParentIcon=t,u.plugin.saveSettings()})}),this.parentSetting?.setVisibility(u.settings.usePluginForIcon),this.elementsBody.push(this.parentSetting.settingEl)}addBackgroundOpacity(){this.elementsBody.push(new bn.Setting(this.settingTab.containerEl).setName(m("features.iconBackgroundOpacity")).setDesc(m("features.iconBackgroundOpacityDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.backgroundOpacityWithIcon.toString()),e.onChange(async t=>{let i=t===""?0:parseFloat(t);isNaN(i)||(u.settings.backgroundOpacityWithIcon=Math.clamp(i,0,1),await u.plugin.saveSettings())})}).settingEl),this.elementsBody.push(new bn.Setting(this.settingTab.containerEl).setName(m("features.iconBackgroundColor")).setDesc(m("features.iconBackgroundColorDesc")).addToggle(e=>{e.setValue(u.settings.useIconColorForBackgroud),e.onChange(async t=>{u.settings.useIconColorForBackgroud=t,await u.plugin.saveSettings()})}).settingEl)}addBorderWidth(){this.elementsBody.push(new bn.Setting(this.settingTab.containerEl).setName(m("features.iconBorderWidth")).setDesc(m("features.iconBorderWidthDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.borderWidthWithIcon.toString()),e.onChange(async t=>{let i=t===""?0:parseFloat(t);isNaN(i)||(u.settings.borderWidthWithIcon=Math.max(i,0),await u.plugin.saveSettings())})}).settingEl)}};var gu=require("obsidian");var X1=class extends Bt{constructor(e){super(e,"images",m("features.ids.images"),m("features.image"),"image",m("features.imageDesc"))}addBody(){this.addImagesFromProperties(),this.addImagesFromEmbeds(),this.addImagesForAttachments(),this.addBorderFactor(),this.addAllowExternal()}addImagesFromProperties(){this.elementsBody.push(new Hi(this.settingTab.containerEl,m("features.imagesFromProperty"),m("features.imagesFromPropertyDesc"),"imagesFromProperty").settingEl),this.elementsBody.push(new gu.Setting(this.settingTab.containerEl).setName(m("features.imageProperties")).setDesc(m("features.imagePropertiesDesc")).addExtraButton(e=>{e.setIcon("mouse-pointer-click"),e.onClick(()=>{new rr(m("features.imageProperties"),m("features.imagePropertiesAdd"),u.settings.imageProperties).open()})}).settingEl)}addImagesFromEmbeds(){this.elementsBody.push(new Hi(this.settingTab.containerEl,m("features.imagesFromEmbeds"),m("features.imagesFromEmbedsDesc"),"imagesFromEmbeds").settingEl)}addImagesForAttachments(){this.elementsBody.push(new Hi(this.settingTab.containerEl,m("features.imagesForAttachments"),m("features.imagesForAttachmentsDesc"),"imagesForAttachments").settingEl)}addBorderFactor(){let e=new gu.Setting(this.settingTab.containerEl).setName(m("features.imageBorderWidth")).setDesc(m("features.imageBorderWidthDesc")).addSlider(t=>{let i=document.createTextNode(u.settings.borderFactor.toString()+"%");i&&t.sliderEl.parentElement?.insertBefore(i,t.sliderEl),t.setLimits(0,50,1).setValue(u.settings.borderFactor*100).onChange(s=>{u.settings.borderFactor=s/100,i&&(i.textContent=u.settings.borderFactor.toString()+"%"),u.plugin.saveSettings()})});e.controlEl.addClass("setting-item-description"),this.elementsBody.push(e.settingEl)}addAllowExternal(){this.elementsBody.push(new gu.Setting(this.settingTab.containerEl).setName(m("features.imagesAllowExternal")).setDesc(m("features.imagesAllowExternalDesc")).addToggle(e=>{e.setValue(u.settings.allowExternalImages),e.onChange(t=>{u.settings.allowExternalImages=t,u.plugin.saveSettings()})}).settingEl),this.elementsBody.push(new gu.Setting(this.settingTab.containerEl).setName(m("features.imagesAllowExternalLocal")).setDesc(m("features.imagesAllowExternalLocalDesc")).addToggle(e=>{e.setValue(u.settings.allowExternalLocalImages),e.onChange(t=>{u.settings.allowExternalLocalImages=t,u.plugin.saveSettings()})}).settingEl)}};var yi=require("obsidian");var K1=class extends Bt{constructor(e){super(e,"inputs",m("features.ids.inputs"),m("inputs.inputs"),"mouse","")}addBody(){this.addRadialMenu(),this.addPinHotkey(),this.addSelectHotkey(),this.checkCompatibility()}addRadialMenu(){let e=new yi.Setting(this.settingTab.containerEl).setName(m("inputs.radialMenu")).setDesc(m("inputs.radialMenuDesc")).addDropdown(t=>{t.addOptions({"":"",Mod:yi.Platform.isMacOS?"Cmd (Mod)":"Ctrl (Mod)",Ctrl:"Ctrl",Meta:yi.Platform.isMacOS?"Cmd (Meta)":"Win",Shift:"Shift",Alt:"Alt"}),t.setValue(u.settings.useRadialMenu?u.settings.radialMenuModifier:""),t.onChange(async i=>{i===""?u.settings.useRadialMenu=!1:(u.settings.useRadialMenu=!0,u.settings.radialMenuModifier=i),await u.plugin.saveSettings(),this.checkCompatibility()})});this.elementsBody.push(e.settingEl)}addPinHotkey(){let e=new yi.Setting(this.settingTab.containerEl).setName(m("inputs.pinHotkey")).setDesc(m("inputs.pinHotkeyDesc")).addDropdown(t=>{t.addOptions({"":"",Mod:yi.Platform.isMacOS?"Cmd (Mod)":"Ctrl (Mod)",Ctrl:"Ctrl",Meta:yi.Platform.isMacOS?"Cmd (Meta)":"Win",Shift:"Shift",Alt:"Alt"}),t.setValue(u.settings.pinNodeModifier?u.settings.pinNodeModifier:""),t.onChange(async i=>{i===""?u.settings.pinNodeModifier=void 0:u.settings.pinNodeModifier=i,await u.plugin.saveSettings(),this.checkCompatibility()})});this.elementsBody.push(e.settingEl)}addSelectHotkey(){let e=new yi.Setting(this.settingTab.containerEl).setName(m("inputs.selectHotkey")).setDesc(m("inputs.selectHotkeyDesc")).addDropdown(t=>{t.addOptions({Mod:yi.Platform.isMacOS?"Cmd (Mod)":"Ctrl (Mod)",Ctrl:"Ctrl",Meta:yi.Platform.isMacOS?"Cmd (Meta)":"Win",Shift:"Shift",Alt:"Alt"}),t.setValue(u.settings.selectNodeModifier),t.onChange(async i=>{u.settings.selectNodeModifier=i,await u.plugin.saveSettings(),this.checkCompatibility()})});this.elementsBody.push(e.settingEl)}checkCompatibility(){let e=[u.settings.radialMenuModifier,u.settings.pinNodeModifier],t=[u.settings.selectNodeModifier],i=e.unique().length===e.length,s=t.unique().length===t.length,n=[];i||n.push(m("inputs.rightClickIncompatibility")),s||n.push(m("inputs.leftClickIncompatibility")),this.settingHeader.setDesc(n.join(` +`)),this.settingHeader.descEl.toggleClass("error",!i&&!s)}};var ir=require("obsidian");var Z1=class extends e0{constructor(t){super(t,"layers","",m("features.ids.layers"),`${m("features.layers")} (${m("beta.beta")})`,"layers",m("features.layersDesc"));this.layerInfoSettings=[]}addBody(){this.layerInfoSettings=[],this.addProperties(),this.addNumberOfActiveLayers(),this.addLayerOrder(),this.addRemoveNodesWithoutLayer(),this.addUseCustomOpacity(),this.addLayersInfo(),this.addDisplayLabelsInUI()}addProperties(){this.elementsBody.push(new ir.Setting(this.settingTab.containerEl).setName(m("features.layerProperties")).setDesc(m("features.layerPropertiesDesc")).addExtraButton(t=>{t.setIcon("mouse-pointer-click"),t.onClick(()=>{new rr(m("features.layerProperties"),m("features.layerPropertiesAdd"),u.settings.layerProperties).open()})}).settingEl)}addNumberOfActiveLayers(){this.elementsBody.push(new ir.Setting(this.containerEl).setName(m("features.layersNumber")).setDesc(m("features.layersNumberDesc")).addText(t=>{t.inputEl.addClass("number"),t.setValue(u.settings.numberOfActiveLayers.toString()).onChange(async i=>{let s=parseInt(i);!isNaN(s)&&s>0&&(u.settings.numberOfActiveLayers=s,await u.plugin.saveSettings())})}).settingEl)}addLayerOrder(){this.elementsBody.push(new ir.Setting(this.containerEl).setName(m("features.layersOrder")).setDesc(m("features.layersOrderDesc")).addDropdown(t=>{t.addOptions({ASC:"0-9",DESC:"9-0"}).setValue(u.settings.layersOrder).onChange(async i=>{(i==="ASC"||i==="DESC")&&(u.settings.layersOrder=i,await u.plugin.saveSettings())})}).settingEl)}addRemoveNodesWithoutLayer(){this.elementsBody.push(new ir.Setting(this.containerEl).setName(m("features.layersOpacityIfNoLayer")).setDesc(m("features.layersOpacityIfNoLayerDesc")).addText(t=>{t.inputEl.addClass("number"),t.setValue(u.settings.nodesWithoutLayerOpacity.toString()).onChange(async i=>{let s=parseFloat(i);isNaN(s)||(u.settings.nodesWithoutLayerOpacity=Math.clamp(s,0,1),await u.plugin.saveSettings())})}).settingEl)}addUseCustomOpacity(){let t=new ir.Setting(this.containerEl).setName(m("features.layersUseCustomOpacity")).setDesc(m("features.layersUseCustomOpacityDesc")).addToggle(i=>{i.setValue(u.settings.useLayerCustomOpacity).onChange(async s=>{u.settings.useLayerCustomOpacity=s,await u.plugin.saveSettings()})});this.elementsBody.push(t.settingEl),this.lastSettingBeforeLayerInfos=t}addLayersInfo(){let t=co.getAllLayers(u.settings);if(this.addLayersInfoFromData(t),N0(!1)){let i=new ir.Setting(this.containerEl).setClass("setting-warning").setDesc(m("features.layersInfoDataview")).then(s=>{(0,ir.setIcon)(s.nameEl,"triangle-alert")});this.elementsBody.push(i.settingEl)}if(t.some(i=>!i.levelFromID)){let i=new ir.Setting(this.containerEl).setClass("setting-additional-info").setDesc(m("features.layersInfoLevelNotFromID")).then(s=>{(0,ir.setIcon)(s.nameEl,"asterisk")});this.elementsBody.push(i.settingEl)}}addLayersInfoFromData(t){for(let i of this.layerInfoSettings)i.settingEl.detach();this.layerInfoSettings=[];for(let i of t.reverse()){let s=new V8(this.settingTab.containerEl,this,i);this.lastSettingBeforeLayerInfos.settingEl.insertAdjacentElement("afterend",s.settingEl),this.layerInfoSettings.push(s),this.elementsBody.push(s.settingEl)}this.layerInfoSettings.reverse()}addDisplayLabelsInUI(){this.elementsBody.push(new ir.Setting(this.containerEl).setName(m("features.layersDisplayLabels")).setDesc(m("features.layersDisplayLabelsDesc")).addToggle(t=>{t.setValue(u.settings.displayLabelsInUI).onChange(async i=>{u.settings.displayLabelsInUI=i,await u.plugin.saveSettings()})}).settingEl)}async updateLayerID(t){let i=t.layer.level,s=parseInt(t.levelInput.getValue());isNaN(s)&&(s=i);let n=t.layer.label,o=t.labelInput?.getValue()??n;o===""&&(o=n);let a=t.layer.id,l=t.layer.levelFromID?s.toString()+(o!==""?"_"+o:""):o,c=()=>{t.layer.id=l,t.layer.level=s,t.layer.label=o,t.levelInput.setValue(s.toString()),t.labelInput?.setValue(o)};if(i===s&&n===o){c();return}i!==s&&!t.layer.levelFromID&&(u.settings.layersLevels[l]=s),i in u.settings.layersCustomOpacity&&!(s in u.settings.layersCustomOpacity)&&(u.settings.layersCustomOpacity[s]=u.settings.layersCustomOpacity[i],await u.plugin.saveSettings());let h=u.app.vault.getMarkdownFiles();for(let p of h)await u.app.fileManager.processFrontMatter(p,g=>{for(let v of u.settings.layerProperties)v in g&&g[v]===a&&(g[v]=l)});c();let d=this.layerInfoSettings.map(p=>p.layer);co.sortData(u.settings,d),this.addLayersInfoFromData(d)}},V8=class extends ir.Setting{constructor(e,t,i){super(e),this.mainSettings=t,this.layer=i,this.settingEl.addClass("setting-layer-info"),this.addSaveButton().addLevelInput().addLabelInput().addLevelOriginIcon().addOpacityInput()}addSaveButton(){return this.addButton(e=>{this.saveButton=e,Je.setupButton(e,"save"),e.onClick(()=>{this.mainSettings.updateLayerID(this)})}),this}addLevelInput(){return this.addText(e=>{this.levelInput=e,e.inputEl.addClass("number"),this.layer.levelFromDefault?e.setPlaceholder(this.layer.level.toString()):e.setValue(this.layer.level.toString())}),this}addLabelInput(){return this.layer.label===""?this:this.addText(e=>{this.labelInput=e,this.labelInput.setValue(this.layer.label)})}addLevelOriginIcon(){if(this.layer.levelFromID)return this;let e=this.controlEl.createDiv("level-origin-icon");return(0,ir.setIcon)(e,"asterisk"),this}addOpacityInput(){return this.addText(e=>{e.inputEl.addClass("number"),e.setPlaceholder(m("features.layersOpacityPlaceholder")),e.setValue(u.settings.layersCustomOpacity[this.layer.level]?.toString()??""),e.onChange(async t=>{let i=parseFloat(t);isNaN(i)?(delete u.settings.layersCustomOpacity[this.layer.level],await u.plugin.saveSettings()):(u.settings.layersCustomOpacity[this.layer.level]=Math.clamp(i,0,1),await u.plugin.saveSettings())})}),this}};var vo=require("obsidian");var Q1=class extends Bt{constructor(e){super(e,"local-graph",m("features.ids.localGraph"),m("features.localGraph"),"map-pin",m("features.localGraphDesc"))}addBody(){this.addColorBasedOnDepth(),this.addCurrentNodeColor(),this.addCurrentNodeSize(),this.addCurrentNodeShape()}addColorBasedOnDepth(){this.elementsBody.push(new vo.Setting(this.containerEl).setName(m("features.colorBasedOnDepth")).setDesc(m("features.colorBasedOnDepthDesc")).addToggle(e=>{e.setValue(u.settings.colorBasedOnDepth).onChange(async t=>{u.settings.colorBasedOnDepth=t,u.plugin.saveSettings(),this.depthColormapSetting.setVisibility(t)})}).settingEl),this.depthColormapSetting=new As(this.containerEl,this.settingTab,"depth-color").setName(m("features.depthPalette")).setDesc(m("features.depthPaletteDesc")),this.depthColormapSetting.setValue(u.settings.depthColormap),this.depthColormapSetting.onPaletteChange(e=>{u.settings.depthColormap=e,u.plugin.saveSettings()}),this.depthColormapSetting.setVisibility(u.settings.colorBasedOnDepth),this.elementsBody.push(this.depthColormapSetting.settingEl)}addCurrentNodeColor(){this.elementsBody.push(new vo.Setting(this.containerEl).setName(m("features.localGraphCurrentNodeColor")).setDesc(m("features.localGraphCurrentNodeColorDesc")).addToggle(e=>{e.setValue(u.settings.currentNode.useColor),e.onChange(async t=>{u.settings.currentNode.useColor=t,await u.plugin.saveSettings()})}).addColorPicker(e=>{e.setValue(u.settings.currentNode.color),e.onChange(async t=>{u.settings.currentNode.color=t,await u.plugin.saveSettings()})}).settingEl)}addCurrentNodeSize(){this.elementsBody.push(new vo.Setting(this.containerEl).setName(m("features.localGraphCurrentNodeSize")).setDesc(m("features.localGraphCurrentNodeSizeDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.currentNode.size.toString()),e.onChange(async t=>{let i=parseInt(t);isNaN(i)||(u.settings.currentNode.size=Math.max(10,i),await u.plugin.saveSettings())})}).settingEl)}addCurrentNodeShape(){let e=new vo.Setting(this.containerEl).setName(m("features.localGraphCurrentNodeShape")).setDesc(m("features.localGraphCurrentNodeShapeDesc"));this.elementsBody.push(e.settingEl),this.shapesSVGContainer=e.controlEl;let t=Object.values(Ts);for(let i of t){let s=We.getSVG(i);s.addClass("shape-svg");let n=new vo.ExtraButtonComponent(this.shapesSVGContainer);n.setTooltip(i),n.extraSettingsEl.addClasses(["shape-icon",i]),n.extraSettingsEl.replaceChildren(s),n.onClick(async()=>{u.settings.currentNode.shape=i,await u.plugin.saveSettings(),this.highlightSelectedShape()})}this.highlightSelectedShape()}highlightSelectedShape(){for(let e of Array.from(this.shapesSVGContainer.querySelectorAll(".shape-icon")))e.toggleClass("is-active",e.hasClass(u.settings.currentNode.shape))}onCustomPaletteModified(e,t){X0(u.settings.depthColormap,u.settings)||(u.settings.depthColormap===e&&X0(t,u.settings)?u.settings.depthColormap=t:u.settings.depthColormap="rainbow"),this.depthColormapSetting.populateCustomOptions(),this.depthColormapSetting.setValue(u.settings.depthColormap)}};var ks=require("obsidian");var J1=class extends e0{constructor(e){super(e,"names","",m("features.ids.names"),m("features.names"),"case-sensitive",m("features.namesDesc"))}addBody(){this.addShowWhenNeighborHighlighted(),this.addNumberOfCharacters(),this.addOnlyFilename(),this.addNoExtension(),this.addUseProperty(),this.addBackground(),this.addDynamicVerticalOffset(),this.addVerticalOffset()}addNumberOfCharacters(){this.elementsBody.push(new ks.Setting(this.settingTab.containerEl).setName(m("features.namesNumberOfCharacters")).setDesc(m("features.namesNumberOfCharactersDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.numberOfCharacters?.toString()||"").onChange(async t=>{let i=parseInt(t);isNaN(i)?u.settings.numberOfCharacters=null:u.settings.numberOfCharacters=i,await u.plugin.saveSettings()})}).addText(e=>{e.inputEl.addClass("number"),e.setPlaceholder(m("features.namesEllipsisPlaceholder")),e.setValue(u.settings.ellipsis.toString()).onChange(async t=>{u.settings.ellipsis=t,await u.plugin.saveSettings()})}).settingEl)}addOnlyFilename(){this.elementsBody.push(new ks.Setting(this.settingTab.containerEl).setName(m("features.namesShowOnlyFileName")).setDesc(m("features.namesShowOnlyFileNameDesc")).addToggle(e=>{e.setValue(u.settings.showOnlyFileName),e.onChange(t=>{u.settings.showOnlyFileName=t,u.plugin.saveSettings()})}).settingEl)}addNoExtension(){this.elementsBody.push(new ks.Setting(this.settingTab.containerEl).setName(m("features.namesNoExtension")).setDesc(m("features.namesNoExtensionDesc")).addToggle(e=>{e.setValue(u.settings.noExtension),e.onChange(t=>{u.settings.noExtension=t,u.plugin.saveSettings()})}).settingEl)}addUseProperty(){this.elementsBody.push(new ks.Setting(this.settingTab.containerEl).setName(m("features.namesUseProperties")).setDesc(m("features.namesUsePropertiesDesc")).addExtraButton(e=>{e.setIcon("mouse-pointer-click"),e.onClick(()=>{new rr(m("features.namesUseProperties"),m("features.namesUsePropertiesAdd"),u.settings.usePropertiesForName).open()})}).settingEl)}addBackground(){this.elementsBody.push(new ks.Setting(this.settingTab.containerEl).setName(m("features.namesBackground")).setDesc(m("features.namesBackgroundDesc")).addToggle(e=>{e.setValue(u.settings.addBackgroundToName),e.onChange(t=>{u.settings.addBackgroundToName=t,u.plugin.saveSettings()})}).settingEl)}addDynamicVerticalOffset(){this.elementsBody.push(new ks.Setting(this.settingTab.containerEl).setName(m("features.namesDynamicVerticalOffset")).setDesc(m("features.namesDynamicVerticalOffsetDesc")).addToggle(e=>{e.setValue(u.settings.dynamicVerticalOffset),e.onChange(t=>{this.verticalOffset.setDisabled(t),u.settings.dynamicVerticalOffset=t,u.plugin.saveSettings()})}).settingEl)}addVerticalOffset(){this.verticalOffset=new ks.Setting(this.settingTab.containerEl).setName(m("features.namesVerticalOffset")).setDesc(m("features.namesVerticalOffsetDesc")).addText(e=>{e.inputEl.addClass("number"),e.setValue(u.settings.nameVerticalOffset.toString()),e.onChange(t=>{let i=parseInt(t);u.settings.nameVerticalOffset=isNaN(i)?0:i,u.plugin.saveSettings()})}),this.verticalOffset.setDisabled(u.settings.dynamicVerticalOffset),this.elementsBody.push(this.verticalOffset.settingEl)}addShowWhenNeighborHighlighted(){this.elementsBody.push(new ks.Setting(this.settingTab.containerEl).setName(m("features.namesShowWhenNeighborHighlighted")).setDesc(m("features.namesShowWhenNeighborHighlightedDesc")).addToggle(e=>{e.setValue(u.settings.showNamesWhenNeighborHighlighted),e.onChange(t=>{u.settings.showNamesWhenNeighborHighlighted=t,u.plugin.saveSettings()})}).settingEl)}};var u9=require("obsidian");var e9=class extends Bt{constructor(e){super(e,"performances",m("features.ids.performances"),m("features.performance"),"cpu","")}addBody(){this.addDelay(),this.addNumberOfNodes(),this.addEnableCSS()}addDelay(){let e=new u9.Setting(this.settingTab.containerEl).setName(m("features.performanceDelay")).setDesc(m("features.performanceDelayDesc")).addText(t=>{t.inputEl.addClass("number"),t.setValue(u.settings.delay.toString()).onChange(async i=>{let s=parseInt(i);isNaN(s)||(u.settings.delay=s,await u.plugin.saveSettings())})});this.elementsBody.push(e.settingEl)}addNumberOfNodes(){let e=new u9.Setting(this.settingTab.containerEl).setName(m("features.performanceMaxNodes")).setDesc(m("features.performanceMaxNodesDesc")).addText(t=>{t.inputEl.addClass("number"),t.setValue(u.settings.maxNodes.toString()).onChange(async i=>{let s=parseInt(i);isNaN(s)||(u.settings.maxNodes=s,await u.plugin.saveSettings())})});this.elementsBody.push(e.settingEl)}addEnableCSS(){let e=new u9.Setting(this.settingTab.containerEl).setName(m("beta.enableCSS")).setDesc(m("beta.enableCSSDesc")).addToggle(t=>t.setValue(u.settings.enableCSS).onChange(i=>{u.settings.enableCSS=i,u.plugin.saveSettings()})).addSearch(t=>{t.setValue(u.settings.cssSnippetFilename),new h9(t.inputEl,i=>{u.settings.cssSnippetFilename=i,u.plugin.saveSettings()}),t.onChange(i=>{u.settings.cssSnippetFilename=i,u.plugin.saveSettings()})});this.elementsBody.push(e.settingEl)}};var mu=require("obsidian");var t9=class extends e0{constructor(t){super(t,"shapes","",m("features.ids.shapes"),m("features.shapes"),"shapes",m("features.shapesDesc"));this.settingsShape=[]}addBody(){this.settingsShape=[];let t=Object.fromEntries(Object.entries(u.settings.shapeQueries).sort((s,n)=>(s[1].index??0)-(n[1].index??0))),i=Object.keys(t);for(let s of i){let n=this.addShape(s);this.elementsBody.push(n.settingEl),this.settingsShape.push(n)}}addShape(t){return new z8(this.settingTab.containerEl,t,this.moveDown.bind(this),this.moveUp.bind(this))}moveDown(t){let i=this.settingsShape.indexOf(t);if(i>=this.settingsShape.length-1)return;[this.settingsShape[i],this.settingsShape[i+1]]=[this.settingsShape[i+1],this.settingsShape[i]];let s=t.settingEl.nextSibling;this.settingTab.containerEl?.insertAfter(t.settingEl,s),u.settings.shapeQueries[t.shape].index=i+1,u.settings.shapeQueries[this.settingsShape[i].shape].index=i,u.plugin.saveSettings()}moveUp(t){let i=this.settingsShape.indexOf(t);if(i===0)return;[this.settingsShape[i],this.settingsShape[i-1]]=[this.settingsShape[i-1],this.settingsShape[i]];let s=t.settingEl.previousSibling;this.settingTab.containerEl?.insertBefore(t.settingEl,s),u.settings.shapeQueries[t.shape].index=i-1,u.settings.shapeQueries[this.settingsShape[i].shape].index=i,u.plugin.saveSettings()}},z8=class extends mu.Setting{constructor(e,t,i,s){super(e),this.shape=t,this.moveDown=i,this.moveUp=s,this.setName(m(`features.shapesNames.${t}`)).addMoveButtons().addQueryStringDiv().addSVG().addEditButton()}addQueryStringDiv(){return this.queryStringDiv=this.controlEl.createDiv({cls:"query-string"}),this.setQueryText(this.shape,u.settings.shapeQueries[this.shape]),this}addSVG(){let e=We.getSVG(this.shape);return e.addClass("shape-svg"),this.controlEl.appendChild(e),this}addEditButton(){return this.addExtraButton(e=>{e.setTooltip(m("query.editShapeQuery")),e.onClick(()=>{new d9(this.shape,u.settings.shapeQueries[this.shape],this.saveShapeQuery.bind(this)).open()})}),this}addMoveButtons(){let e=this.settingEl.createDiv({cls:"move-buttons"});return new mu.ExtraButtonComponent(e).setIcon("chevron-up").setTooltip(m("controls.moveUp")).onClick(()=>{this.moveUp(this)}),new mu.ExtraButtonComponent(e).setIcon("chevron-down").setTooltip(m("controls.moveDown")).onClick(()=>{this.moveDown(this)}),this.settingEl.insertAdjacentElement("afterbegin",e),this}setQueryText(e,t){this.queryStringDiv.setText(new Hr(t).toString())}saveShapeQuery(e,t){this.setQueryText(e,t),u.settings.shapeQueries[e].combinationLogic=t.combinationLogic,u.settings.shapeQueries[e].rules=t.rules,u.plugin.saveSettings()}};var bm=require("obsidian");var r9=class extends Bt{constructor(e){super(e,"zoom",m("features.ids.zoom"),m("features.zoomOnNode"),"scan-search","")}addBody(){let e=this.settingTab.containerEl,t=new bm.Setting(e).setName(m("features.zoomScale")).setDesc(m("features.zoomScaleDesc")).addSlider(i=>{let s=document.createTextNode(u.settings.zoomFactor.toString());s&&i.sliderEl.parentElement?.insertBefore(s,i.sliderEl),i.setLimits(0,8,.5).setValue(u.settings.zoomFactor).onChange(n=>{u.settings.zoomFactor=n,s&&(s.textContent=u.settings.zoomFactor.toString()),u.plugin.saveSettings()})});t.controlEl.addClass("setting-item-description"),this.elementsBody.push(t.settingEl)}};var En=require("obsidian");var ji=class extends e0{constructor(t,i,s,n,o,a,l,c){super(t,i,s,n,o,a,l);this.noneType="";this.colors=[];this.canBeRecursive=c}addBody(){this.colors=[],this.addNoneTypeSetting(),this.addColorPaletteSetting(),this.addSpecificColorHeaderSetting();for(let t of u.settings.interactiveSettings[this.interactiveKey].colors)this.canBeRecursive&&t.recursive===void 0&&(t.recursive=!1),this.addColor(t);this.addFilterTypeSetting()}addNoneTypeSetting(){this.noneType=u.settings.interactiveSettings[this.interactiveKey].noneType;let t=new En.Setting(this.containerEl).setName(m("features.interactives.noneTypeID")).setDesc(m("features.interactives.noneTypeIDDesc")+this.interactiveKey).addText(i=>i.setValue(u.settings.interactiveSettings[this.interactiveKey].noneType).onChange(async s=>{s=s.trim(),s!=this.noneType&&(u.settings.interactiveSettings[this.interactiveKey].noneType=s,this.noneType=s,await u.plugin.saveSettings())}));this.elementsBody.push(t.settingEl)}addColorPaletteSetting(){this.settingColorPalette=new As(this.containerEl,this.settingTab,this.interactiveKey).setDesc(m("features.interactives.paletteDesc")+this.interactiveKey),this.settingColorPalette.setValue(u.settings.interactiveSettings[this.interactiveKey].colormap),this.settingColorPalette.onPaletteChange(t=>{let i=u.settings.interactiveSettings[this.interactiveKey].colormap;u.settings.interactiveSettings[this.interactiveKey].colormap=t,u.plugin.app.workspace.trigger("extended-graph:settings-colorpalette-changed",this.interactiveKey),u.plugin.saveSettings(),this.settingTab.onCustomPaletteModified(i,t)}),this.elementsBody.push(this.settingColorPalette.settingEl)}addSpecificColorHeaderSetting(){this.settingInteractiveColor=new En.Setting(this.containerEl).setName(m("features.interactives.specificColors")).setDesc(m("features.interactives.specificColorsDesc")).addButton(t=>{Je.setupButton(t,"add"),t.onClick(i=>{let s={type:"",color:h0(Cd()),recursive:this.canBeRecursive?!1:void 0};u.settings.interactiveSettings[this.interactiveKey].colors.push(s),this.addColor(s)})}),this.elementsBody.push(this.settingInteractiveColor.settingEl)}addFilterTypeSetting(){this.settingInteractiveFilter=new En.Setting(this.containerEl).setName(m("features.interactives.selection")).setDesc(m("features.interactives.selectionDesc")).addExtraButton(t=>{t.setIcon("mouse-pointer-click"),t.onClick(()=>{new f9(this.interactiveKey,this.getAllTypes()).open()})}),this.elementsBody.push(this.settingInteractiveFilter.settingEl)}getAllTypes(){let t=new Set,i=u.app.vault.getFiles();for(let s of i)t=new Set([...t,...ct(this.interactiveKey,s)]);return[...t].sort()}addColor(t){let i=new W8(this.containerEl,u.plugin,this.interactiveKey,t,this.isValueValid.bind(this));this.elementsBody.push(i.settingEl),this.colors=this.colors.filter(n=>n.settingEl.parentElement);let s=this.colors.last()??this.settingInteractiveColor;return this.containerEl.insertAfter(i.settingEl,s.settingEl),this.colors.push(i),i}onCustomPaletteModified(t,i){X0(u.settings.interactiveSettings[this.interactiveKey].colormap,u.settings)||(u.settings.interactiveSettings[this.interactiveKey].colormap===t&&X0(i,u.settings)?u.settings.interactiveSettings[this.interactiveKey].colormap=i:u.settings.interactiveSettings[this.interactiveKey].colormap="rainbow"),this.settingColorPalette.populateCustomOptions(),this.settingColorPalette.setValue(u.settings.interactiveSettings[this.interactiveKey].colormap)}},W8=class extends En.Setting{constructor(e,t,i,s,n){super(e),this.plugin=t,this.isValid=n,this.key=i,this.data=s,this.addSearch(a=>{this.textComponent=a;let l=new p9(a.inputEl,u.settings,c=>{this.toggleWarning(),this.save(),l.typeToInclude=this.data.type});switch(l.typeToInclude=this.data.type,i){case ne:l.setKey("link");break;case He:l.setKey("tag");break;case pe:l.setKey("folder");break;default:l.setKey("property",i);break}a.setPlaceholder(i),a.setValue(s.type),a.onChange(c=>{this.toggleWarning(),this.save(),l.typeToInclude=this.data.type})}),this.addColorPicker(a=>{this.colorComponent=a,a.setValue(s.color),a.onChange(l=>{this.updateCSS(),this.save()})}),this.addButton(a=>{(0,En.setIcon)(a.buttonEl,"x"),a.onClick(()=>{this.remove()})});let o=s.recursive;o!==void 0&&this.addToggle(a=>{this.recursiveComponent=a,a.toggleEl.insertAdjacentText("afterend",m("features.recursive")),a.setValue(o),a.onChange(l=>{this.save()})}),this.warningDiv=this.controlEl.createDiv("control-warning"),(0,En.setIcon)(this.warningDiv.createDiv(),"triangle-alert"),this.warningDiv.appendText(m("features.interactives.alreadyExists")),this.warningDiv.addClass("is-hidden"),this.updateCSS(),this.settingEl.addClass("setting-color")}toggleWarning(){let e=this.textComponent.getValue().trim();this.warningDiv.toggleClass("is-hidden",!u.settings.interactiveSettings[this.key].colors.find(t=>t.type===e&&t!==this.data))}save(){let e=this.textComponent.getValue().trim(),t=this.colorComponent.getValue(),i=this.recursiveComponent?.getValue();if(!this.isValid(e))return;let s=this.data.type;this.data.type=e,this.data.color=t,this.data.recursive=i,this.plugin.saveSettings().then(()=>{s!==e&&this.plugin.app.workspace.trigger("extended-graph:settings-interactive-color-changed",this.key,s),this.plugin.app.workspace.trigger("extended-graph:settings-interactive-color-changed",this.key,e)})}updateCSS(){this.settingEl.style.setProperty("--interactive-color",this.colorComponent.getValue())}remove(){u.settings.interactiveSettings[this.key].colors.remove(this.data),u.plugin.saveSettings().then(()=>{u.app.workspace.trigger("extended-graph:settings-interactive-color-changed",this.key,this.data.type)}),this.settingEl.remove()}};var Em=require("obsidian");var Za=class r extends ji{constructor(e){super(e,"tags",He,m("features.ids.tags"),m("features.interactives.tags"),"tags",m("features.interactives.tagsDesc"),!0)}addBody(){super.addBody(),this.elementsBody.push(new Em.Setting(this.settingTab.containerEl).setName(m("features.interactives.arcsAdd")).setDesc(m("features.interactives.arcsAddTagDesc")).addToggle(e=>{e.setValue(u.settings.interactiveSettings[this.interactiveKey].showOnGraph),e.onChange(t=>{u.settings.interactiveSettings[this.interactiveKey].showOnGraph=t,u.plugin.saveSettings()})}).settingEl)}isValueValid(e){return/^[^\u2000-\u206F\u2E00-\u2E7F'!"#$%&()*+,.:;<=>?@^`{|}~\[\]\\\s]+/.test(e)}getPlaceholder(){return"tag"}getAllTypes(){return r.getAllTypes()}static getAllTypes(){return Object.keys(u.app.metadataCache.getTags()).map(e=>e.replace("#",""))}};var xo=require("obsidian");var i9=class extends e0{constructor(t){super(t,"properties","",m("features.ids.properties"),m("features.interactives.properties"),"archive",m("features.interactives.propertiesDesc"));this.settingInteractives=[];for(let i of Object.keys(u.settings.additionalProperties))this.settingInteractives.push(new il(i,t,this))}addHeader(){super.addHeader(),this.settingHeader.addButton(t=>{this.addButton=t,Je.setupButton(t,"add"),this.elementsBody.push(t.buttonEl),t.onClick(i=>{t.buttonEl.blur(),this.openModalToAddInteractive()}),this.settingHeader.controlEl.insertAdjacentElement("afterbegin",t.buttonEl)})}addBody(){this.propertiesContainer=this.settingTab.containerEl.createDiv("setting-item settings-properties-container"),this.elementsBody.push(this.propertiesContainer);for(let t of this.settingInteractives)t.containerEl=this.propertiesContainer,t.display()}openModalToAddInteractive(){new g9("Property key",this.addProperty.bind(this)).open()}isKeyValid(t){return u.settings.additionalProperties.hasOwnProperty(t)?(new xo.Notice(m("features.interactives.propertyAlreadyExists")),!1):t===ne?(new xo.Notice(m("features.interactives.propertyReservedLinks")),!1):t===pe?(new xo.Notice(m("features.interactives.propertyReservedFolders")),!1):t===He?(new xo.Notice(m("features.interactives.propertyReservedTags")),!1):rl(t)}addProperty(t){return this.isKeyValid(t)?(u.settings.additionalProperties[t]={graph:!0,localgraph:!0},u.settings.interactiveSettings[t]={colormap:"rainbow",colors:[],unselected:[],excludeRegex:{regex:"",flags:""},noneType:"none",showOnGraph:!0,enableByDefault:!0},u.plugin.saveSettings().then(()=>{let i=new il(t,this.settingTab,this);this.settingInteractives.push(i),i.containerEl=this.propertiesContainer,i.display()}),!0):!1}onCollapse(){this.addButton?.buttonEl.hide()}onExpand(){this.addButton?.buttonEl.show()}onCustomPaletteModified(t,i){for(let s of this.settingInteractives)s.onCustomPaletteModified(t,i)}},il=class r extends ji{constructor(e,t,i){super(t,"property-key",e,"",m("features.interactives.property")+": "+e,"",m("features.interactives.propertyDesc")+e,!1),this.array=i}addHeader(){super.addHeader(),this.settingHeader.addExtraButton(e=>{Je.setupExtraButton(e,"delete"),e.onClick(()=>{this.remove()}),this.settingHeader.controlEl.insertAdjacentElement("afterbegin",e.extraSettingsEl)}),this.settingHeader.settingEl.addClass("setting-property-header"),this.foldIcon.extraSettingsEl.remove()}addBody(){super.addBody(),this.elementsBody.push(new xo.Setting(this.array.propertiesContainer).setName(m("features.interactives.arcsAdd")).setDesc(m("features.interactives.arcsAddPropertyDesc")).addToggle(e=>{e.setValue(u.settings.interactiveSettings[this.interactiveKey].showOnGraph),e.onChange(t=>{u.settings.interactiveSettings[this.interactiveKey].showOnGraph=t,u.plugin.saveSettings()})}).settingEl)}remove(){delete u.settings.additionalProperties[this.interactiveKey],delete u.settings.interactiveSettings[this.interactiveKey],this.array.settingInteractives.remove(this),u.plugin.saveSettings().then(()=>{this.settingHeader.settingEl.remove(),this.elementsBody.forEach(e=>e.remove())})}isValueValid(e){return e.length>0}getPlaceholder(){return"property-key"}getAllTypes(){return r.getAllTypes(this.interactiveKey)??super.getAllTypes()}static getAllTypes(e){if(!N0(!1))return u.app.metadataCache.getFrontmatterPropertyValuesForKey(e)}};var jr=require("obsidian");var Qa=class r extends ji{constructor(e){super(e,"links",ne,m("features.ids.linkTypes"),m("features.interactives.linkTypes"),"link",m("features.interactives.linkTypesDesc"),!1)}addBody(){super.addBody(),this.addExcludeFolders(),this.addDisableSources(),this.addDisableTargets(),this.addShowOnGraph(),this.addMultipleTypes(),this.addCurvedLinks(),this.addOutlineLinks()}addExcludeFolders(){this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.excludeSourceFolders")).setDesc(m("features.excludeSourceFoldersDesc")).addButton(e=>{this.setManageNumber(e,u.settings.excludedSourcesFolder.length),e.onClick(()=>{let t=new yu(u.settings.excludedSourcesFolder);t.open(),t.onClose=()=>this.setManageNumber(e,u.settings.excludedSourcesFolder.length)})}).settingEl),this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.excludeTargetFolders")).setDesc(m("features.excludeTargetFoldersDesc")).addButton(e=>{this.setManageNumber(e,u.settings.excludedTargetsFolder.length),e.onClick(()=>{let t=new yu(u.settings.excludedTargetsFolder);t.open(),t.onClose=()=>this.setManageNumber(e,u.settings.excludedTargetsFolder.length)})}).settingEl)}setManageNumber(e,t){e.setButtonText(`${m("controls.manage")} (${t})`)}addMultipleTypes(){this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.linksAllowMultipleTypes")).setDesc(m("features.linksAllowMultipleTypesDesc")).addToggle(e=>{e.setValue(u.settings.allowMultipleLinkTypes),e.onChange(t=>{u.settings.allowMultipleLinkTypes=t,u.plugin.saveSettings()})}).settingEl)}addDisableSources(){this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.removeSources")).setDesc(m("features.removeSourcesDesc")).addToggle(e=>{e.setValue(u.settings.disableSource),e.onChange(t=>{u.settings.disableSource=t,u.plugin.saveSettings()})}).settingEl)}addDisableTargets(){this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.removeTargets")).setDesc(m("features.removeTargetsDesc")).addToggle(e=>{e.setValue(u.settings.disableTarget),e.onChange(t=>{u.settings.disableTarget=t,u.plugin.saveSettings()})}).settingEl)}addShowOnGraph(){this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.interactives.colorLinks")).setDesc(m("features.interactives.colorLinksDesc")).addToggle(e=>{e.setValue(u.settings.interactiveSettings[this.interactiveKey].showOnGraph),e.onChange(t=>{u.settings.interactiveSettings[this.interactiveKey].showOnGraph=t,u.plugin.saveSettings()})}).settingEl),this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.interactives.displayLinkTypeLabel")).setDesc(m("features.interactives.displayLinkTypeLabelDesc")).addToggle(e=>{e.setValue(u.settings.displayLinkTypeLabel),e.onChange(t=>{u.settings.displayLinkTypeLabel=t,u.plugin.saveSettings()})}).settingEl),this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.interactives.colorLinkTypeLabel")).setDesc(m("features.interactives.colorLinkTypeLabelDesc")).addToggle(e=>{e.setValue(u.settings.colorLinkTypeLabel),e.onChange(t=>{u.settings.colorLinkTypeLabel=t,u.plugin.saveSettings()})}).settingEl)}addCurvedLinks(){this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.interactives.curvedLinks")).setDesc(m("features.interactives.curvedLinksDesc")).addToggle(e=>{e.setValue(u.settings.curvedLinks),e.onChange(t=>{u.settings.curvedLinks=t,u.plugin.saveSettings()})}).settingEl),this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.interactives.curvedFactor")).setDesc(m("features.interactives.curvedFactorDesc")).addSlider(e=>{let t=document.createTextNode(u.settings.curvedFactor.toString());t&&e.sliderEl.parentElement?.insertBefore(t,e.sliderEl),e.setLimits(-2,2,.2).setValue(u.settings.curvedFactor).onChange(i=>{u.settings.curvedFactor=i,u.plugin.saveSettings(),t&&(t.textContent=u.settings.curvedFactor.toString())})}).settingEl)}addOutlineLinks(){this.elementsBody.push(new jr.Setting(this.settingTab.containerEl).setName(m("features.linksOutline")).setDesc(m("features.linksOutlineDesc")).addToggle(e=>{e.setValue(u.settings.outlineLinks),e.onChange(t=>{u.settings.outlineLinks=t,u.plugin.saveSettings()})}).settingEl)}isValueValid(e){return rl(e)}getPlaceholder(){return"property-key"}getAllTypes(){return r.getAllTypes()}static getAllTypes(){let e=new Set,t=N0(!1);if(t){for(let i of t.pages())for(let[s,n]of Object.entries(i))if(!(s==="file"||u.settings.imageProperties.contains(s)||ei[ne].includes(s))&&!(n==null||n==="")&&!(!u.settings.canonicalizePropertiesWithDataview&&s===zt(s)&&Object.keys(i).some(o=>zt(o)===zt(s)&&o!==s))&&(typeof n=="object"&&"path"in n&&e.add(u.settings.canonicalizePropertiesWithDataview?zt(s):s),Array.isArray(n)))for(let o of n)o&&typeof o=="object"&&"path"in o&&e.add(u.settings.canonicalizePropertiesWithDataview?zt(s):s)}else for(let i of u.app.vault.getFiles()){let s=u.app.metadataCache.getCache(i.path)?.frontmatterLinks;if(!s)continue;let n=s.map(o=>o.key.split(".")[0]).filter(o=>!u.settings.imageProperties.contains(o)&&!ei[ne].includes(o));e=new Set([...e,...n])}return[...e].sort()}};var m9=require("obsidian");var s9=class extends ji{constructor(e){super(e,"folders",pe,m("features.ids.folders"),m("features.folders"),"folder",m("features.foldersDesc"),!0)}addBody(){super.addBody(),this.addShowFullPath()}addShowFullPath(){this.elementsBody.push(new m9.Setting(this.settingTab.containerEl).setName(m("features.folderShowFullPath")).setDesc(m("features.folderShowFullPathDesc")).addToggle(e=>{e.setValue(u.settings.folderShowFullPath).onChange(async t=>{u.settings.folderShowFullPath=t,await u.plugin.saveSettings()})}).settingEl)}isValueValid(e){return!!this.settingTab.app.vault.getFolderByPath(e)}getPlaceholder(){return"folder/path"}getAllTypes(){let e=new Set,t=this.settingTab.app.vault.getAllFolders(!0);for(let i of t)i.children.filter(n=>n instanceof m9.TFile).length>0&&e.add(i.path);return[...e].sort()}};var Sm=require("obsidian");var As=class extends Sm.Setting{constructor(e,t,i){super(e),this.settingTab=t,this.setName(m("features.interactives.palette")),this.controlEl.addClass("color-palette"),this.canvasPalette=this.controlEl.createEl("canvas"),this.canvasPalette.id=`canvas-palette-${i}`,this.canvasPalette.width=100,this.canvasPalette.height=20,this.addExtraButton(s=>{s.setIcon("pipette"),s.onClick(()=>{let n=new y9;n.onSelected(this.onSelectedFromModal.bind(this)),n.open()})}),this.addDropdown(s=>{this.dropdown=s;for(let[n,o]of Object.entries(vh)){let a=s.selectEl.createEl("optgroup");a.label=n;for(let l of o){let c=a.createEl("option");c.value=l,c.text=l;let h=a.createEl("option");h.value=l+"_r",h.text=l+"_r"}}this.populateCustomOptions(),s.onChange(async n=>{n!==""&&(Na(this.canvasPalette,n,u.settings),this.onPaletteChanged&&this.onPaletteChanged(n))})})}populateCustomOptions(){let e=this.dropdown.selectEl.querySelector(".custom-optgroup")??this.dropdown.selectEl.createEl("optgroup",{cls:"custom-optgroup"});e.label=m("plugin.custom"),e.replaceChildren();for(let t in u.settings.customColorMaps){let i=e.createEl("option");i.value="custom:"+t,i.text=t}}onSelectedFromModal(e){e!==""&&(Na(this.canvasPalette,e,u.settings),this.onPaletteChanged&&this.onPaletteChanged(e),this.dropdown.setValue(e))}setValue(e){Na(this.canvasPalette,e,u.settings),this.dropdown.setValue(e)}onPaletteChange(e){this.onPaletteChanged=e}};var Cm=require("obsidian");var Hi=class extends Cm.Setting{constructor(e,t,i,s){super(e),t!==""&&this.setName(t),i!==""&&this.setDesc(i),this.addToggle(n=>{n.toggleEl.insertAdjacentText("beforebegin",pu.graph),n.setValue(u.settings.enableFeatures.graph[s]),n.onChange(o=>{u.settings.enableFeatures.graph[s]=o,u.plugin.saveSettings()})}).addToggle(n=>{n.toggleEl.insertAdjacentText("beforebegin",pu.localgraph),n.setValue(u.settings.enableFeatures.localgraph[s]),n.onChange(o=>{u.settings.enableFeatures.localgraph[s]=o,u.plugin.saveSettings()})})}};var wm=require("obsidian");var $r=class extends wm.AbstractInputSuggest{constructor(e){super(u.app,e)}getSuggestions(e){return this.getStringSuggestions(e).sort((t,i)=>Ri(t,i)).map(t=>{let i=new RegExp(e,"i").exec(t),s=createDiv();return i&&i[0].length>0?(i.index>0&&s.appendText(t.substring(0,i.index)),s.createEl("strong",{cls:"suggestion-highlight"},n=>n.setText(i[0])),i.index+i[0].lengthnew RegExp(e,"i").exec(s));return[...new Set(i)]}selectSuggestion(e,t){this.setValue(e.innerText),this.callback(e.innerText),this.close()}};var Tm=require("obsidian");var v9=class extends Tm.AbstractInputSuggest{constructor(e,t,i,s){super(u.app,e),this.instances=t,this.set=i,this.callback=s}getSuggestions(e){switch(this.set){case"nodes":return[...this.instances.nodesSet.extendedElementsMap.keys()].filter(i=>new RegExp(e,"i").exec(i));case"pinned":return[...this.instances.nodesSet.extendedElementsMap.values()].reduce((i,s)=>(s.isPinned&&new RegExp(e,"i").exec(s.id)&&i.push(s.id),i),[]);case"folders":if(!this.instances.foldersSet)return[];let t=this.instances.foldersSet.managers.get(pe);return t?t.getTypesWithoutNone().filter(i=>new RegExp(e,"i").exec(i)):[]}}renderSuggestion(e,t){t.textContent=e}selectSuggestion(e,t){this.setValue(e),this.callback(e),this.close()}};var l9=class extends $r{constructor(t,i){super(t);this.files=[];this.callback=i,this.files=u.app.vault.getAllLoadedFiles()}getStringSuggestions(t){return this.files.reduce((i,s)=>(new RegExp(t,"i").exec(s.path)&&i.push(s.path),i),[])}selectSuggestion(t,i){this.setValue(t.innerText),this.callback(t.innerText),this.close()}};var x9=class extends $r{constructor(t,i){super(t);this.folders=[];this.callback=i,this.folders=u.app.vault.getAllFolders()}getStringSuggestions(t){return this.folders.reduce((i,s)=>(new RegExp(t,"i").exec(s.path)&&i.push(s.path),i),[])}selectSuggestion(t,i){this.setValue(t.innerText),this.callback(t.innerText),this.close()}};var sl=class extends $r{constructor(e,t,i){super(e),this.settings=t,this.callback=i}getStringSuggestions(e){if(!this.key)return[];let t=[];switch(this.key){case"tag":t=Za.getAllTypes();break;case"property":if(!this.propertyKey)return[];let s=il.getAllTypes(this.propertyKey);if(s)t=s;else{let n=u.app.vault.getMarkdownFiles();for(let o of n)t=t.concat([...ct(this.propertyKey,o,this.settings)])}break;case"link":t=Qa.getAllTypes();break;case"folder":case"folderRec":t=u.app.vault.getAllFolders().map(n=>n.path);break;case"file":t=u.app.vault.getFiles().map(n=>n.basename);break;case"path":t=u.app.vault.getFiles().map(n=>n.path);break;default:break}let i=t.filter(s=>new RegExp(e,"i").exec(s));return[...new Set(i)]}setKey(e,t){this.key=e,this.propertyKey=t}selectSuggestion(e,t){this.setValue(e.innerText),this.callback(e.innerText),this.close()}};var p9=class extends sl{renderSuggestion(e,t){super.renderSuggestion(e,t);let i=t.textContent??"",s=[];this.key&&this.key!=="property"?s=u.settings.interactiveSettings[this.key].colors.map(n=>n.type):this.key==="property"&&this.propertyKey&&(s=u.settings.interactiveSettings[this.propertyKey].colors.map(n=>n.type)),i!==this.typeToInclude&&s.contains(i)&&t.addClass("extended-graph-duplicate")}};var _m=require("obsidian");var D9=class extends _m.AbstractInputSuggest{constructor(e,t,i){super(u.app,e),this.renderer=t,this.callback=i}getSuggestions(e){return this.renderer.nodes.filter(t=>new RegExp(e,"i").exec(t.id)).map(t=>t.id)}renderSuggestion(e,t){t.textContent=e}selectSuggestion(e,t){this.setValue(e),this.callback(e),this.close()}};var tl=class extends $r{constructor(e,t){super(e),this.callback=t}getStringSuggestions(e){let i=b9(u.settings).filter(s=>new RegExp(e,"i").exec(s));return[...new Set(i)]}selectSuggestion(e,t){this.setValue(e.innerText),this.callback(e.innerText),this.close()}};var E9=class extends tl{getStringSuggestions(e){return super.getStringSuggestions(e).filter(i=>!(i in u.settings.additionalProperties))}};var Fm=require("obsidian"),S9=class{constructor(e){this.fontSize=20;this.renderer=e,this.backgroundColor=$e.backgroundColor,this.backgroundColorHex=h0(this.backgroundColor)}createSVG(){this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.options.showFolders&&(this.groupFolders=Qe("g",{id:"folders"}),this.addFolders(),this.svg.appendChild(this.groupFolders)),this.groupLinks=Qe("g",{id:"links"}),this.addLinks(),this.svg.appendChild(this.groupLinks),this.groupNodes=Qe("g",{id:"nodes"}),this.addNodes(),this.svg.appendChild(this.groupNodes),this.options.showNodeNames&&(this.groupText=Qe("g",{id:"texts"}),this.addNodeNames(),this.svg.appendChild(this.groupText));let{xMin:e,xMax:t,yMin:i,yMax:s}=this.getViewBox();this.svg.setAttribute("viewBox",`${e} ${i} ${t-e} ${s-i}`);let n=t-e,o=s-i;this.svg.prepend(Qe("rect",{width:n*1.1,height:o*1.1,x:e-n*.05,y:i-o*.05,fill:this.backgroundColorHex}));let a=this.getDefs();a&&this.svg.prepend(a)}getDefs(){}addNodes(){let e=this.getVisibleNodes();for(let t of e){let i=this.getSVGForNode(t);i&&this.groupNodes.appendChild(i)}}addLinks(){let e=this.getVisibleLinks();for(let t of e){let i=this.getSVGForLink(t);i&&this.groupLinks.appendChild(i)}}addNodeNames(){if(!this.groupText)return;let e=this.getVisibleNodes();for(let t of e){let i=this.getSVGForText(t);i&&this.groupText.appendChild(i)}}addFolders(){}isNodeInVisibleArea(e){if(!this.options.onlyVisibleArea)return!0;let t=structuredClone(this.renderer.viewport),i=e.getSize();return e.x+i>=t.left&&e.x-i<=t.right&&e.y+i>=t.top&&e.y-i<=t.bottom}isLinkInVisibleArea(e){return this.options.onlyVisibleArea?this.isNodeInVisibleArea(e.source)&&this.isNodeInVisibleArea(e.target):!0}getSVGForText(e){if(!this.options.showNodeNames)return null;let t=this.getCoreNode(e),i=Qe("text",{class:"node-name",id:"text:"+e.id,x:t.x,y:t.y+t.getSize()+this.fontSize+4,style:`font-size: ${this.fontSize}px; fill: ${t.text?.style.fill??cn(this.backgroundColor)};`,"text-anchor":"middle"});return i.textContent=this.getText(t),i}getText(e){return e.getDisplayText()}getViewBox(){document.body.appendChild(this.svg);let{xMin:e,xMax:t,yMin:i,yMax:s}=Array.from(this.svg.children).reduce((n,o)=>{let{x:a,y:l,width:c,height:h}=o.getBBox();return(!n.xMin||an.xMax)&&(n.xMax=a+c),(!n.yMin||ln.yMax)&&(n.yMax=l+h),n},{});return document.body.removeChild(this.svg),{xMin:e,xMax:t,yMin:i,yMax:s}}getCoreNode(e){return"coreElement"in e?e.coreElement:e}async toClipboard(){try{let e=this.getModal();e.onClose=async function(){if(e.isCanceled)return;this.options=u.settings.exportSVGOptions,this.createSVG();let t=this.toString();if(this.options.asImage){let i=new Blob([t],{type:"image/svg+xml"});await navigator.clipboard.write([new ClipboardItem({"image/svg+xml":i})])}else await navigator.clipboard.writeText(t);new Fm.Notice(m("notices.svgCopied"))}.bind(this),e.open()}catch(e){console.error(e.name,e.message)}}toString(){return new XMLSerializer().serializeToString(this.svg)}},Hu=class extends S9{constructor(e){super(e.renderer),this.instances=e}getDefs(){if(this.options.useModifiedNames&&this.instances.settings.addBackgroundToName){let e=Qe("defs"),t=Qe("filter",{x:"0",y:"0",width:"1",height:"1",id:"textBackground"}),i=Qe("feFlood",{"flood-color":this.backgroundColorHex,result:"bg"}),s=Qe("feMerge"),n=Qe("feMergeNode",{in:"bg"}),o=Qe("feMergeNode",{in:"SourceGraphic"});return s.appendChild(n),s.appendChild(o),t.appendChild(i),t.appendChild(s),e.appendChild(t),e}}getText(e){return this.options.useModifiedNames&&e.text?e.text.text:super.getText(e)}getSVGForText(e){let t=super.getSVGForText(e),i=e.coreElement.text,s=e.coreElement.getSize();if(t&&this.options.useModifiedNames){if(this.instances.settings.addBackgroundToName&&t.setAttribute("filter","url(#textBackground)"),i){let n=typeof i.style.fontFamily=="string"?i.style.fontFamily.split(",")[0].trim():i.style.fontFamily[0].split(",")[0].trim();t.style.setProperty("font-family",n)}if(this.instances.settings.nameVerticalOffset!==0&&i){let n=this.instances.settings.nameVerticalOffset,o=parseInt(t.getAttribute("y")??e.coreElement.y.toString());if(n<-5&&n>-105){let a=-5+(5+n)*s/50;o=o+a}else if(n<=-105){let a=100+n+-2*s;o=o+a}else o=o+n;t.setAttribute("y",(o-this.fontSize*1.5).toString())}}return t}addFolders(){if(!this.groupFolders||!this.instances.foldersSet?.managers.get(pe))return;let i=this.getVisibleFolders();for(let s of i){let n=this.getSVGForFolder(s);this.groupFolders.appendChild(n)}}getSVGForNode(e){let t=Qe("g",{class:"node-group",id:"node:"+e.id}),i=this.getSVGForNodeShape(e);if(t.appendChild(i),this.options.showArcs){let s=this.getSVGForArcs(e);s&&t.appendChild(s)}return t}getSVGForNodeShape(e){let t=e.coreElement,i=t.getSize();if(e.icon?.svg&&this.options.showIcons){let s=e.icon.svg;s.style.stroke=h0(t.getFillColor().rgb),s.style.fill=this.backgroundColorHex;let n=Qe("g",{class:"node-shape",transform:`translate(${t.x-i} ${t.y-i}) scale(${i/s.width.baseVal.value*2})`});return n.appendChild(s),n}else if(e.icon?.emoji&&this.options.showIcons){let s=i*2,n=Qe("text",{class:"node-name",id:"text:"+t.id,x:e.coreElement.x,y:e.coreElement.y+s*.5,style:`font-size: ${s}px;`,"text-anchor":"middle"});return n.textContent=e.icon.emoji,n}else if(this.options.useNodesShapes&&e.graphicsWrapper){let s=Qe("g",{class:"node-shape",transform:`translate(${t.x-i} ${t.y-i}) scale(${i/We.RADIUS})`,fill:h0(t.getFillColor().rgb)}),n=We.getInnerSVG(e.graphicsWrapper?.shape);return s.appendChild(n),s}else return Qe("circle",{class:"node-shape",cx:t.x,cy:t.y,r:i,fill:h0(t.getFillColor().rgb)})}getSVGForArcs(e){let t=e.coreElement;if(t.type==="tag")return null;let i=t.getSize(),s=t.x,n=t.y,o=Qe("g",{class:"arcs"});for(let[a,l]of e.managers){let c=e.graphicsWrapper?.managerGraphicsMap?.get(a);if(!c)continue;let h=Qe("g",{class:"arcs-circle"});for(let[d,p]of c.graphics){let g=p.graphic.alpha,v=c.radius/We.RADIUS*i,C=c.thickness/We.RADIUS*i,w=H8(s,n,v,p.endAngle),k=H8(s,n,v,p.startAngle);if(w.x===k.x&&w.y===k.y){let B=Qe("circle",{class:"arc arc-"+d,cx:t.x,cy:t.y,r:v,opacity:g,"stroke-width":C,stroke:h0(p.color),fill:"none"});h.appendChild(B)}else{let B=p.endAngle-p.startAngle<=Math.PI?"0":"1",L=`M ${w.x} ${w.y} A ${v} ${v} 0 ${B} 0 ${k.x} ${k.y}`,T=Qe("path",{class:"arc arc-"+d,d:L,opacity:g,"stroke-width":C,stroke:h0(p.color),fill:"none"});h.appendChild(T)}}o.appendChild(h)}return o}getSVGForFolder(e){let t=e.BBox,i=Qe("g",{class:"folder-group",id:"folder:"+e.path}),s=Qe("rect",{class:"folder-box",x:t.left,y:t.top,height:t.bottom-t.top,width:t.right-t.left,rx:e.folderStyle.radius,fill:h0(e.color),stroke:h0(e.color),"stroke-width":e.folderStyle.borderWidth,"fill-opacity":e.folderStyle.fillOpacity,"stroke-opacity":e.folderStyle.strokeOpacity}),n=14,o=Qe("text",{class:"folder-name",x:(t.left+t.right)/2,y:t.top+n+2,fill:h0(e.color),"text-anchor":"middle",style:`font-size: ${n}px;`});return o.textContent=e.path,i.appendChild(s),i.appendChild(o),i}getSVGForLink(e){let t=e.coreElement,i;if(this.options.useCurvedLinks){let c={x:t.source.x,y:t.source.y},h={x:t.target.x,y:t.target.y},d={x:-(h.y-c.y),y:h.x-c.x},p={x:(h.x+c.x)*.5,y:(h.y+c.y)*.5},g={x:p.x+.25*d.x,y:p.y+.25*d.y};i=`M ${c.x} ${c.y} C ${g.x} ${g.y}, ${h.x} ${h.y}, ${h.x} ${h.y}`}else i=`M ${t.source.x} ${t.source.y} L ${t.target.x} ${t.target.y}`;let s=e.graphicsWrapper?e.graphicsWrapper.pixiElement.color:t.line?Pi(t.line.tint):0,n=this.instances.renderer.fLineSizeMult*2,o=e.graphicsWrapper?e.graphicsWrapper.pixiElement.alpha:t.line?t.line.alpha:.6,a=Qe("path",{class:"link",id:"link:"+Wt(t),d:i,stroke:h0(s),"stroke-width":n,opacity:o,fill:"none"}),l;if(this.instances.renderer.fShowArrow){let h=this.options.useModifiedArrows&&this.instances.settings.flatArrows?"M 1 0 L -3 -2 L -3 2 Z":"M 1 0 L -3 -2 L -2 0 L -3 2 Z",d=this.options.useCurvedLinks?e.graphicsWrapper?.pixiElement.arrow:e.coreElement.arrow;d&&(l=Qe("path",{id:`arrow:${e.id}`,d:h,fill:h0(s),transform:`translate(${d.x}, ${d.y}) rotate(${d.rotation*180/Math.PI}) scale(${this.instances.engine.renderer.fLineSizeMult*2})`}))}if(l){let c=Qe("g");return c.appendChild(a),c.appendChild(l),c}return a}getVisibleNodes(){return this.instances.renderer.nodes.reduce((e,t)=>{if(t.rendered&&this.isNodeInVisibleArea(t)){let i=this.instances.nodesSet.extendedElementsMap.get(t.id);i&&e.push(i)}return e},[])}getVisibleLinks(){return this.instances.renderer.links.reduce((e,t)=>{if(t.rendered&&this.isLinkInVisibleArea(t)){let i=this.instances.linksSet.extendedElementsMap.get(Wt(t));i&&e.push(i)}return e},[])}getVisibleFolders(){let e=this.getVisibleNodes();return this.instances.foldersSet?[...this.instances.foldersSet.foldersMap.values()].filter(t=>e.some(i=>t.nodes.includes(i.coreElement))):[]}getModal(){return new vu(this.instances)}},ju=class extends S9{constructor(e){super(e.renderer),this.engine=e}getSVGForNode(e){return Qe("circle",{class:"node-shape",id:"node:"+e.id,cx:e.x,cy:e.y,r:e.getSize(),fill:h0(e.getFillColor().rgb)})}getSVGForLink(e){return Qe("path",{class:"link",id:"link:"+Wt(e),d:`M ${e.source.x} ${e.source.y} L ${e.target.x} ${e.target.y}`,stroke:Pf(e.line?.tint??0),"stroke-width":(this.engine.options.lineSizeMultiplier??1)*4,opacity:e.line?.alpha??.6})}getVisibleNodes(){return this.renderer.nodes.filter(e=>e.rendered&&this.isNodeInVisibleArea(e))}getVisibleLinks(){return this.renderer.links.filter(e=>e.rendered&&e.line?.visible&&this.isLinkInVisibleArea(e))}getModal(){return new vu}};var pu={graph:"Global",localgraph:"Local"};var Am="extended-graph-delete-button",km="extended-graph-add-button",Je=class{static setupButton(e,t){switch(t){case"add":e.setClass(km),e.setIcon("plus"),e.setTooltip(m("controls.add"));break;case"delete":e.setClass(Am),e.setIcon("trash-2"),e.setTooltip(m("controls.delete"));break;case"edit":e.setIcon("pencil"),e.setTooltip(m("controls.edit"));break;case"save":e.setIcon("save"),e.setTooltip(m("controls.save"));break;default:break}}static setupExtraButton(e,t){switch(t){case"add":e.extraSettingsEl.addClass(km),e.setIcon("plus"),e.setTooltip(m("controls.add"));break;case"delete":e.extraSettingsEl.addClass(Am),e.setIcon("trash-2"),e.setTooltip(m("controls.delete"));break;case"edit":e.setIcon("pencil"),e.setTooltip(m("controls.edit"));break;case"save":e.setIcon("save"),e.setTooltip(m("controls.save"));break;default:break}}};var C9=require("obsidian"),Bd=class extends C9.Component{constructor(e){super(),this.instances=e,this.root=this.instances.view.contentEl.createDiv(),this.root.addClass("extended-graph-layers"),this.instances.settings.displayLabelsInUI&&this.root.addClass("show-labels"),this.computePosition(),this.onLevelClicked=this.onLevelClicked.bind(this),this.onMouseWheel=this.onMouseWheel.bind(this),this.addToggleButton(),this.addLevels(),this.instances.layersManager?.isEnabled?this.open():this.close()}addToggleButton(){this.toggleButton=new C9.ExtraButtonComponent(this.root),this.toggleButton.setIcon("layers"),this.toggleButton.onClick(()=>{this.instances.layersManager?.isEnabled?this.instances.layersManager.disable():this.instances.layersManager?.enable()})}addLevels(){this.levelsArea=this.root.createDiv("layers"),this.levelsArea.addEventListener("wheel",this.onMouseWheel,{passive:!0})}updateLevels(e){this.levelsArea.innerHTML="";for(let t of e){let i=this.levelsArea.createDiv("layer"),s=i.createDiv("layer-level");if(s.innerText=t.level.toString(),s.addEventListener("click",this.onLevelClicked),this.instances.settings.displayLabelsInUI){let n=i.createDiv("layer-labels");for(let o of t.layers)o.label&&n.createDiv({text:o.label})}}}updateCurrentLevelUI(e){this.activeLayersBorder||(this.activeLayersBorder=this.root.createDiv("active-layers-border"));for(let o of Array.from(this.levelsArea.children))o.removeClass("current");let t=this.levelsArea.children[e],i=this.levelsArea.children[Math.min(this.levelsArea.children.length-1,e+this.instances.settings.numberOfActiveLayers-1)],s=t.getBoundingClientRect().top-this.root.getBoundingClientRect().top,n=this.root.getBoundingClientRect().bottom-i.getBoundingClientRect().bottom;this.activeLayersBorder.style.setProperty("top",s.toString()+"px"),this.activeLayersBorder.style.setProperty("bottom",n.toString()+"px"),t.addClass("current")}onMouseWheel(e){e.deltaY<0?this.instances.layersManager?.decreaseCurrentLevel():this.instances.layersManager?.increaseCurrentLevel()}onLevelClicked(e){e.targetNode?.textContent&&this.instances.layersManager?.setCurrentLevel(parseInt(e.targetNode.textContent))}computePosition(){this.setHeight=this.setHeight.bind(this);let e=this.root.doc.querySelector(".status-bar");e&&(this.statusBarResizeObserver=new ResizeObserver(t=>{for(let i of t)this.setHeight()}),this.statusBarResizeObserver.observe(e)),this.instances.renderer.iframeEl.addEventListener("load",this.setHeight),this.setHeight()}setHeight(){let t=this.root.doc.querySelector(".status-bar")?.getBoundingClientRect().top,i=this.instances.view.containerEl.getBoundingClientRect().bottom,s=t?Math.max(0,i-t)+12:12;this.root.style.setProperty("bottom",s+"px")}open(){this.root.removeClass("is-closed"),this.toggleButton.extraSettingsEl.addClass("is-active"),this.levelsArea.show(),this.activeLayersBorder?.show()}close(){this.root.addClass("is-closed"),this.toggleButton.extraSettingsEl.removeClass("is-active"),this.levelsArea.hide(),this.activeLayersBorder?.hide()}onunload(){this.root.detach(),this.statusBarResizeObserver?.disconnect(),this.instances.renderer.iframeEl.removeEventListener("load",this.setHeight)}};var k0=require("obsidian");var j8=class extends k0.Setting{constructor(t,i,s){super(s);this.isVisible=!0;this.isCollapsed=!1;this.name=t,this.manager=i,this.cssBGColorVariable="--legend-color-rgb",this.cssTextColorVariable="--legend-text-color",this.setName(this.name).setTooltip(this.name).addExtraButton(o=>{this.disableAllButton=o,o.setIcon("x").setTooltip(m("controls.disableAll")+": "+this.name).onClick(()=>{this.disableAll()})}).addExtraButton(o=>{this.enableAllButton=o,o.setIcon("check-check").setTooltip(m("controls.enableAll")+": "+this.name).onClick(()=>{this.enableAll()}).then(a=>{this.enableAllButton.extraSettingsEl.remove()})}).then(o=>{let a=createDiv("and-or-group");this.andButton=new k0.ButtonComponent(a).setButtonText(m("query.AND")).setTooltip(m("query.ANDFilterDesc")).onClick(()=>this.changeCombinationLogic("AND")),this.orButton=new k0.ButtonComponent(a).setButtonText(m("query.OR")).setTooltip(m("query.ORFilterDesc")).onClick(()=>this.changeCombinationLogic("OR")),Bn.getLogicType(this.manager.instances,this.name)==="AND"?this.andButton.setCta():this.orButton.setCta(),this.controlEl.insertAdjacentElement("afterbegin",a)}).setClass(`${this.getClassName(t)}s-row`),this.nameEl.addClass("mod-clickable"),this.nameEl.onclick=()=>{this.toggleCollapse()};let n=this.nameEl.createSpan();(0,k0.setIcon)(n,"chevron-down")}getClassName(t){return"graph-legend-"+o9(t)}changeCombinationLogic(t){if(this.logic===t)return;let i=this.manager.instances.stateData;i&&(i.logicTypes||(i.logicTypes={}),i.logicTypes[this.name]=t,this.manager.instances.engine.render(),this.manager.instances.interactiveEventsDispatcher.onInteractivesLogicChanged(this.name),u.statesManager.onStateNeedsSaving(i,!1)),this.changeCombinationLogicUI(t)}changeCombinationLogicUI(t){this.logic=t,t==="AND"?(this.andButton.setCta(),this.orButton.removeCta()):(this.orButton.setCta(),this.andButton.removeCta())}addLegend(t,i){if(this.controlEl.getElementsByClassName(this.getClassName(t))[0])return;this.addButton(a=>{a.setClass(this.getClassName(t)).setTooltip(t).setClass("graph-legend").setButtonText(t).onClick(()=>{this.toggle(t)}).then(l=>{l.buttonEl.style.setProperty(this.cssBGColorVariable,$e.getCSSSplitRGB(i)),l.buttonEl.style.setProperty(this.cssTextColorVariable,cn(i)),t===this.manager.instances.settings.interactiveSettings[this.name].noneType&&l.buttonEl.addClass("graph-legend-none")})});let n=function(a,l){return Ri(l.className.replace("graph-legend",""),a.className.replace("graph-legend",""))},o=Array.from(this.controlEl.getElementsByClassName("graph-legend")).sort(n);for(let a=o.length-1;a>=0;a--)this.controlEl.appendChild(o[a])}updateLegend(t,i){let s=this.controlEl.getElementsByClassName(this.getClassName(t))[0];s?(s.style.setProperty(this.cssBGColorVariable,$e.getCSSSplitRGB(i)),s.style.setProperty(this.cssTextColorVariable,cn(i))):this.addLegend(t,i)}removeLegend(t){t.forEach(i=>{let s=this.controlEl.getElementsByClassName(this.getClassName(i))[0];s?.parentNode?.removeChild(s)})}toggle(t){let i=this.manager.interactives.get(t);i&&(i.isActive?(this.disableUI(t),this.manager.disable([t]),!this.manager.getTypes().some(n=>this.manager.isActive(n))&&(this.disableAllButton.extraSettingsEl.insertAdjacentElement("afterend",this.enableAllButton.extraSettingsEl),this.disableAllButton.extraSettingsEl.remove())):(this.enableUI(t),this.manager.enable([t]),!this.manager.getTypes().some(n=>!this.manager.isActive(n))&&(this.enableAllButton.extraSettingsEl.insertAdjacentElement("afterend",this.disableAllButton.extraSettingsEl),this.enableAllButton.extraSettingsEl.remove())))}disableUI(t){let i=this.controlEl.getElementsByClassName(this.getClassName(t))[0];i&&i.addClass("is-hidden")}enableUI(t){let i=this.controlEl.getElementsByClassName(this.getClassName(t))[0];i&&i.removeClass("is-hidden")}disableAll(){for(let t of this.manager.getTypes())this.disableUI(t);this.manager.disable(this.manager.getTypes()),this.disableAllButton.extraSettingsEl.insertAdjacentElement("afterend",this.enableAllButton.extraSettingsEl),this.disableAllButton.extraSettingsEl.remove()}enableAll(){for(let t of this.manager.getTypes())this.enableUI(t);this.manager.enable(this.manager.getTypes()),this.enableAllButton.extraSettingsEl.insertAdjacentElement("afterend",this.disableAllButton.extraSettingsEl),this.enableAllButton.extraSettingsEl.remove()}toggleVisibility(){this.isVisible?this.hide():this.show()}show(){this.settingEl.removeClass("is-hidden"),this.isVisible=!0}hide(){this.settingEl.addClass("is-hidden"),this.isVisible=!1}toggleCollapse(){this.isCollapsed?this.expend():this.collapse();let t=u.statesManager.getStateDataById(this.manager.instances.settings.startingStateID);t&&(this.isCollapsed?(t.collapsedLegendRows||(t.collapsedLegendRows=[]),t.collapsedLegendRows?.push(this.name)):t.collapsedLegendRows?.remove(this.name)),t&&u.statesManager.onStateNeedsSaving(t,!1)}collapse(){this.settingEl.addClass("is-collapsed"),this.isCollapsed=!0}expend(){this.settingEl.removeClass("is-collapsed"),this.isCollapsed=!1}},Rd=class extends k0.Component{constructor(e){super(),this.instances=e,this.createToggleButton(),this.createRootPanel()}createToggleButton(){let e=this.instances.view.contentEl.querySelector(".graph-controls");this.toggleButton=new k0.ExtraButtonComponent(e).setTooltip(m("controls.openLegend")).setIcon("tags").onClick(()=>{this.isOpen?this.close():this.open()}).then(t=>{t.extraSettingsEl.addClasses(["graph-controls-button","mod-legend"])})}createRootPanel(){this.legendRows=new Map,this.root=this.instances.view.contentEl.createDiv("graph-legend-container"),this.instances.settings.horizontalLegend&&this.root.addClass("horizontal-layout"),this.rowsDiv=this.root.createDiv("graph-legend-rows");let e=createDiv("graph-legend-hide-rows-container"),t=u.statesManager.getStateDataById(this.instances.settings.startingStateID);for(let[i,s]of this.instances.interactiveManagers){if(i===pe)continue;let n=new j8(i,s,this.rowsDiv),o=createSpan();(0,k0.setIcon)(o,"eye");let a=new k0.ButtonComponent(e),l={row:n,visibilityButton:{cb:a,eyeIcon:o}};this.legendRows.set(i,l),a.setButtonText(i).setTooltip(m("controls.hideRow")+": "+i,{placement:"top"}).onClick(()=>{this.toggleVisibility(l,t)}).then(c=>{l.visibilityButton={cb:c,eyeIcon:o},c.buttonEl.prepend(o)}),t?.hiddenLegendRows?.contains(i)&&l.row.hide(),t?.collapsedLegendRows?.contains(i)&&l.row.collapse()}this.root.appendChild(e),u.settings.collapseLegend?this.close():this.open()}toggleVisibility(e,t){e.row.toggleVisibility(),e.visibilityButton.cb.buttonEl.toggleClass("is-inactive",!e.row.isVisible),(0,k0.setIcon)(e.visibilityButton.eyeIcon,e.row.isVisible?"eye":"eye-off"),t&&(e.row.isVisible?t.hiddenLegendRows?.remove(e.row.name):(t.hiddenLegendRows||(t.hiddenLegendRows=[]),t.hiddenLegendRows?.push(e.row.name)),u.statesManager.onStateNeedsSaving(t,!1))}onunload(){this.root.remove(),this.toggleButton.extraSettingsEl.remove()}update(e,t,i){this.legendRows.get(e)?.row.updateLegend(t,i)}add(e,t,i){this.legendRows.get(e)?.row.addLegend(t,i)}remove(e,t){this.legendRows.get(e)?.row.removeLegend(t)}toggle(e,t){this.legendRows.get(e)?.row.toggle(t)}disableUI(e,t){this.legendRows.get(e)?.row.disableUI(t)}enableUI(e,t){this.legendRows.get(e)?.row.enableUI(t)}enableAllUI(e){this.legendRows.get(e)?.row.manager.getTypes().forEach(t=>{this.legendRows.get(e)?.row.enableUI(t)})}disableAllUI(e){this.legendRows.get(e)?.row.manager.getTypes().forEach(t=>{this.legendRows.get(e)?.row.disableUI(t)})}updateUIFromState(){if(this.instances.stateData){if(this.instances.stateData.hiddenLegendRows)for(let[e,t]of this.legendRows)this.instances.stateData.hiddenLegendRows.includes(e)?(t.row.hide(),t.visibilityButton.cb.buttonEl.addClass("is-inactive"),(0,k0.setIcon)(t.visibilityButton.eyeIcon,"eye-off")):(t.row.show(),t.visibilityButton.cb.buttonEl.removeClass("is-inactive"),(0,k0.setIcon)(t.visibilityButton.eyeIcon,"eye"));if(this.instances.stateData.collapsedLegendRows)for(let[e,t]of this.legendRows)this.instances.stateData.collapsedLegendRows.includes(e)?t.row.collapse():t.row.expend();for(let[e,t]of this.legendRows)t.row.changeCombinationLogicUI(Bn.getLogicType(this.instances,e))}}open(){this.root.removeClass("is-closed"),this.toggleButton.extraSettingsEl.addClass("is-active"),this.isOpen=!0,u.settings.collapseLegend=!1,u.plugin.saveSettings()}close(){this.root.addClass("is-closed"),this.toggleButton.extraSettingsEl.removeClass("is-active"),this.isOpen=!1,u.settings.collapseLegend=!0,u.plugin.saveSettings()}};var Do=require("obsidian");var $u=class extends Do.Component{constructor(e){super(),this.view=e,this.graphControlsEl=this.view.contentEl.querySelector(".graph-controls"),this.graphControlsEl.addClass("graph-controls-extended-graph"),this.graphControlsEl.createEl("hr").addClass("separator-exended-graph"),this.createEnableButton(),this.createResetButton()}createEnableButton(){this.buttonEnable=new Do.ExtraButtonComponent(this.graphControlsEl).setTooltip(`${m("controls.enable")} ${m("plugin.name")}`,{placement:"top"}).onClick(()=>{this.enabled?u.graphsManager.disablePlugin(this.view):u.graphsManager.enablePlugin(this.view)}).then(e=>{(0,Do.setIcon)(e.extraSettingsEl,"git-fork-sparkles"),e.extraSettingsEl.addClasses(["graph-controls-button","mod-extended-graph-toggle"])})}createResetButton(){this.buttonReset=new Do.ExtraButtonComponent(this.graphControlsEl).setTooltip(m("controls.resetGraph")).setIcon("rotate-ccw").onClick(()=>{this.enabled&&u.graphsManager.resetPlugin(this.view)}).then(e=>{e.extraSettingsEl.addClasses(["graph-controls-button","mod-extended-graph-reset"]),e.extraSettingsEl.remove()})}setEnableUIState(){this.enabled=!0,this.buttonEnable.extraSettingsEl.addClass("is-active"),this.buttonEnable.setTooltip(`${m("controls.disable")} ${m("plugin.name")}`,{placement:"top"}),this.graphControlsEl.insertAfter(this.buttonReset.extraSettingsEl,this.buttonEnable.extraSettingsEl)}setDisableUIState(){this.enabled=!1,this.buttonEnable.extraSettingsEl.removeClass("is-active"),this.buttonEnable.setTooltip(`${m("controls.enable")} ${m("plugin.name")}`,{placement:"top"}),this.buttonReset.extraSettingsEl.remove()}enableUI(){this.buttonEnable.setDisabled(!1),this.buttonReset.setDisabled(!1)}disableUI(){this.buttonEnable.setDisabled(!0),this.buttonReset.setDisabled(!0)}};var Im=require("obsidian");var $8=class r extends Im.Menu{constructor(t,i,s,n){super();this.radialSubmenus=new Map;this.menuManager=t,this.level=s,this.parentMenu=n??null,this.dom.addClass("extended-graph-radial-menu"),s>0&&(this.dom.addClass("mod-submenu"),this.dom.style.setProperty("--submenu-level",s.toString())),this.setItems(i),this.setCentralItem()}showAtMouseEvent(t){return this.position={x:t.clientX,y:t.clientY},super.showAtMouseEvent(t)}showAtPosition(t,i){this.position=t;let s=super.showAtPosition(t,i);return s.dom.style.left=t.x+"px",s.dom.style.top=t.y+"px",s}onClick(t){t.items&&t.items.length>0?this.showNestedMenu(t):t.onClick&&t.onClick()}onMouseEnter(t,i){let s=t.targetNode,n=createDiv("tooltip extended-graph-tooltip");n.setText(i.title),this.dom.doc.body.appendChild(n);let o=s.getBoundingClientRect();n.style.left=`${o.left+o.width*.5+10}px`,n.style.top=`${t.clientY+10}px`,i.onMouseEnter&&i.onMouseEnter()}onMouseLeave(t,i){this.dom.doc.body.querySelectorAll(".tooltip.extended-graph-tooltip").forEach(s=>s.detach()),i.onMouseLeave&&i.onMouseLeave()}onClickCenter(){this.parentMenu?this.switchWhithMenu(this.parentMenu):this.hide()}setItems(t){let i=this.onClick.bind(this),s=this.onMouseEnter.bind(this),n=this.onMouseLeave.bind(this);for(let o=0;o{let c=cn(this.menuManager.instances.cssBridge.getThemeColor(a.color),"dark","light")==="dark"?"100%":"0%";l.dom.style.setProperty("--dark-text-interp",c),l.dom.style.setProperty("--color-rgb",`var(--color-${a.color}-rgb)`),l.dom.style.setProperty("--rotation",`${-22.5+(o-1)*45}deg`),l.setTitle(a.title.slice(0,Math.min(3,a.title.length)).toUpperCase()).setIcon(a.icon).onClick(()=>{i(a)}),l.dom.addEventListener("mouseenter",d=>s(d,a)),l.dom.addEventListener("mouseleave",d=>n(d,a));let h=a.items;h&&h.length>0&&this.radialSubmenus.set(a.id,new r(this.menuManager,h,this.level+1,this))})}this.onMenuClick=function(o){var a=o.targetNode;a&&a.instanceOf(Element)&&(a.matchParent(".menu-item")||a.hasClass(".menu-item"))||this.hide()}}setCentralItem(){let t=this.onClickCenter.bind(this);this.addItem(i=>{i.dom.addClass("back"),this.level>0?i.setIcon("undo-2"):i.setIcon("x"),i.onClick(t)})}showNestedMenu(t){let i=this.radialSubmenus.get(t.id);i&&this.switchWhithMenu(i)}switchWhithMenu(t){this.position||(this.position=this.dom.getBoundingClientRect());let i=this.parentMenu;this.close(),this.parentMenu=i,this.menuManager.setCurrentMenu(t),t.showAtPosition({x:this.position.x,y:this.position.y})}close(){this.dom.doc.body.querySelectorAll(".tooltip.extended-graph-tooltip").forEach(t=>t.detach()),super.close()}},Ud=class{constructor(e,t,i){this.instances=e,this.nodeID=t,this.nodeType=i,this.populateItems(),this.menu=new $8(this,this.allItems,0)}open(e){let t=this.instances.renderer.nodes.find(i=>i.id===this.nodeID);if(t?.circle){let i=this.instances.renderer.interactiveEl.getBoundingClientRect(),s=t.circle.getGlobalPosition();this.menu.showAtPosition({x:s.x/window.devicePixelRatio+i.left,y:s.y/window.devicePixelRatio+i.top});return}else e&&this.menu.showAtPosition({x:e.clientX,y:e.clientY})}populateItems(){if(this.allItems=[{id:"info",title:"Info",icon:"info",color:"blue",onClick:this.onShowInfo.bind(this)},{id:"pin",title:"Pin",icon:this.instances.nodesSet.isNodePinned(this.nodeID)?"pin-off":"pin",color:"red",onClick:this.onPin.bind(this)}],this.instances.settings.enableFeatures[this.instances.type].links&&(this.getInteractivesTypes(ne)?.size??0)>0&&this.allItems.push({id:"links",title:"Links",icon:"link",color:"orange",onMouseEnter:()=>this.onShowInteractive(ne),onMouseLeave:this.clearInteractivesList.bind(this)}),this.instances.settings.enableFeatures[this.instances.type].folders&&(this.getInteractivesTypes(pe)?.size??0)>0&&this.allItems.push({id:"folders",title:"Folders",icon:"folder",color:"green",onMouseEnter:()=>this.onShowInteractive(pe),onMouseLeave:this.clearInteractivesList.bind(this)}),(this.nodeType===""||this.nodeType==="focused")&&(this.instances.settings.enableFeatures[this.instances.type].tags&&(this.getInteractivesTypes(He)?.size??0)>0&&this.allItems.push({id:"tags",title:"Tags",icon:"tags",color:"pink",onMouseEnter:()=>this.onShowInteractive(He),onMouseLeave:this.clearInteractivesList.bind(this)}),this.instances.settings.enableFeatures[this.instances.type].properties)){let e={id:"properties",title:"Properties",icon:"archive",color:"purple",items:[]},t=["red","orange","yellow","green","cyan","blue","purple","pink"],i=0;for(let[s,n]of Object.entries(this.instances.settings.additionalProperties))if(n[this.instances.type]&&(this.getInteractivesTypes(s)?.size??0)>0){let o={id:s,title:s,icon:"",color:t[i%t.length],items:[],onMouseEnter:()=>this.onShowInteractive(s),onMouseLeave:this.clearInteractivesList.bind(this)};e.items?.push(o),++i}e.items&&e.items.length>0&&this.allItems.push(e)}}setCurrentMenu(e){this.clearInteractivesList(),this.menu=e}onShowInfo(){let e=new Bs(this.instances);e.setTarget("nodes",this.nodeID),e.open()}onPin(){this.instances.nodesSet.isNodePinned(this.nodeID)?this.instances.graphEventsDispatcher.inputsManager.unpinNodeFromId(this.nodeID):this.instances.graphEventsDispatcher.inputsManager.pinNodeFromId(this.nodeID),this.menu.close()}onShowInteractive(e){let t=this.instances.interactiveManagers.get(e);if(!t)return;let i=this.getInteractivesTypes(e);if(!i||i.size===0)return;this.clearInteractivesList();let s=this.menu.dom.createDiv("interactives-list");for(let n of i){let o=t.getColor(n.id??n.text),a=s.createDiv("interactive-item");a.textContent=n.text,a.style.setProperty("--bg-color",$e.getCSSSplitRGB(o)),a.style.setProperty("--text-color",cn(o)),a.toggleClass("is-hidden",!!n.id&&!t.isActive(n.id))}}getInteractivesTypes(e){return e===pe?this.getFoldersInteractivesTypes():e===ne?this.getLinksInteractivesTypes():this.getNodesInteractivesTypes(e)}getNodesInteractivesTypes(e){let t=this.instances.nodesSet.extendedElementsMap.get(this.nodeID);if(!t||!this.instances.nodesSet.managers.get(e))return;let s=[...t.getTypes(e)].reduce((n,o)=>(o!==this.instances.settings.interactiveSettings[e].noneType&&n.push({text:o}),n),[]);return new Set(s)}getFoldersInteractivesTypes(){if(!this.instances.foldersSet||!this.instances.foldersSet.managers.get(pe))return;let i=[...this.instances.foldersSet.foldersMap.values()].filter(s=>s.nodes.find(n=>n.id===this.nodeID)).reduce((s,n)=>(n.path!==this.instances.settings.interactiveSettings[pe].noneType&&s.push({text:n.path}),s),[]);return new Set(i)}getLinksInteractivesTypes(){if(!this.instances.linksSet.managers.get(ne))return;let t=[...this.instances.linksSet.extendedElementsMap.values()].filter(n=>n.coreElement.source.id===this.nodeID||n.coreElement.target.id===this.nodeID),i={};for(let n of t){let o=n.getTypes(ne);for(let a of o)a in i||(i[a]={forward:0,reverse:0}),this.nodeID===n.coreElement.source.id&&i[a].forward++,this.nodeID===n.coreElement.target.id&&i[a].reverse++}let s=Object.entries(i).map(([n,o])=>({text:`${n} (${o.forward} \u2192, ${o.reverse} \u2190)`,id:n}));return new Set(s)}clearInteractivesList(){this.menu.dom.querySelector(".interactives-list")?.detach()}};var nl=require("obsidian");var Od=class extends nl.Component{constructor(e){super(),this.instances=e,this.root=this.instances.view.contentEl.createDiv(),this.root.addClass("graph-states-container");let t=this.instances.view.contentEl.querySelector(".graph-controls");this.toggleButton=new nl.ExtraButtonComponent(t).setTooltip(m("states.openSettings")).setIcon("eye").onClick(()=>{this.isOpen?this.close():this.open()}).then(i=>{i.extraSettingsEl.addClasses(["graph-controls-button","mod-states"])}),this.addStateSetting(),this.currentStateID=this.selectState.getValue(),this.instances.stateData=u.statesManager.getStateDataById(this.currentStateID),u.settings.collapseState?this.close():this.open()}addStateSetting(){this.stateSetting=new nl.Setting(this.root).setName(m("states.states")).addDropdown(e=>{this.selectState=e,e.onChange(t=>{this.currentStateID=t,this.instances.stateData=u.statesManager.getStateDataById(this.currentStateID),this.displaySaveDeleteButton(),this.instances.graphEventsDispatcher.changeState(t)})}).addExtraButton(e=>{this.editButton=e,Je.setupExtraButton(e,"edit"),e.onClick(()=>{this.editButton.extraSettingsEl.blur(),this.openModalToRenameState()})}).addExtraButton(e=>{this.addButton=e,Je.setupExtraButton(e,"add"),e.onClick(()=>{this.addButton.extraSettingsEl.blur(),this.openModalToAddState()})}).addExtraButton(e=>{this.saveButton=e,Je.setupExtraButton(e,"save"),e.onClick(()=>{u.statesManager.saveState(this.instances,this.selectState.getValue())})}).addExtraButton(e=>{this.deleteButton=e,Je.setupExtraButton(e,"delete"),e.onClick(()=>{u.statesManager.deleteState(this.selectState.getValue())})})}onunload(){this.root.remove(),this.toggleButton.extraSettingsEl.remove()}openModalToAddState(){new xu(m("states.newStateName"),this.newState.bind(this)).open()}openModalToRenameState(){let e=this.instances.stateData;e&&new xu(m("states.editStateName"),this.renameState.bind(this),e.name).open()}addOption(e,t){for(let i=0;i{this.addOption(e.id,e.name)}),u.settings.states.find(e=>e.id===this.currentStateID)?this.setValue(this.currentStateID):(this.currentStateID=this.selectState.getValue(),this.instances.stateData=u.statesManager.getStateDataById(this.currentStateID),this.displaySaveDeleteButton())}setValue(e){this.currentStateID=e,this.instances.stateData=u.statesManager.getStateDataById(this.currentStateID),this.selectState.setValue(e),this.displaySaveDeleteButton()}clear(){for(let e=this.selectState.selectEl.length;e>=0;e--)this.selectState.selectEl.remove(e)}displaySaveDeleteButton(){this.selectState.getValue()!==Jr?(this.stateSetting.settingEl.append(this.editButton.extraSettingsEl),this.stateSetting.settingEl.append(this.saveButton.extraSettingsEl),this.stateSetting.settingEl.append(this.deleteButton.extraSettingsEl)):(this.editButton.extraSettingsEl.remove(),this.saveButton.extraSettingsEl.remove(),this.deleteButton.extraSettingsEl.remove())}open(){this.root.removeClass("is-closed"),this.toggleButton.extraSettingsEl.addClass("is-active"),this.isOpen=!0,u.settings.collapseState=!1,u.plugin.saveSettings()}close(){this.root.addClass("is-closed"),this.toggleButton.extraSettingsEl.removeClass("is-active"),this.isOpen=!1,u.settings.collapseState=!0,u.plugin.saveSettings()}};var Lm=require("obsidian");var qu=class extends Lm.Component{constructor(e){super(),this.view=e,this.graphControls=e.contentEl.querySelector(".graph-controls"),this.sectionSettings=new w9(e)}onPluginEnabled(e){this.instances=e,this.sectionSettings.onPluginEnabled(e)}onPluginDisabled(){this.sectionSettings.onPluginDisabled()}};var Du=require("obsidian"),ol=class extends Du.Component{constructor(e,t,i){super(),this.view=e,this.graphControls=e.contentEl.querySelector(".graph-controls"),this.root=this.graphControls.createDiv(`tree-item graph-control-section mod-extended-graph-${t}`);let s=this.root.createDiv("tree-item-self mod-collapsible");this.collapseIcon=s.createDiv("tree-item-icon collapse-icon is-collapsed"),(0,Du.setIcon)(this.collapseIcon,"right-triangle");let n=s.createDiv("tree-item-header-icon");(0,Du.setIcon)(n,"git-fork-sparkles");let a=s.createDiv("tree-item-inner").createEl("header",{cls:"graph-control-section-header",text:i});s.onClickEvent(()=>{this.isCollapsed?this.openGraphControlSection():this.collapseGraphControlSection()})}onPluginEnabled(e){this.instances=e,this.display(!0)}onPluginDisabled(){this.instances=void 0,this.display(!1)}onunload(){this.root.parentNode?.removeChild(this.root)}openGraphControlSection(){this.root.removeClass("is-collapsed"),this.root.appendChild(this.treeItemChildren),this.collapseIcon.removeClass("is-collapsed"),this.isCollapsed=!1}collapseGraphControlSection(){this.root.addClass("is-collapsed"),this.treeItemChildren&&this.root.removeChild(this.treeItemChildren),this.collapseIcon.addClass("is-collapsed"),this.isCollapsed=!0}};var sr=require("obsidian");var w9=class extends ol{constructor(t){super(t,"options",m("plugin.options"));this.selectionModeButtons={};this.treeItemChildren=this.root.createDiv("tree-item-children"),this.display(!0),this.collapseGraphControlSection()}display(t){this.treeItemChildren.replaceChildren(),t&&this.createImportConfig(),this.createSaveForDefaultState(),t&&this.createSaveForNormalState(),this.createZoomOnNode(),this.createScreenshot(),t&&this.createButtonViewState(),t&&this.createPinMultipleNodes(),t&&this.createUnpinAllNodes(),t&&this.createSelectionModes()}createImportConfig(){return new sr.Setting(this.treeItemChildren).setName(m("controls.importSettingsAndReload")).addExtraButton(t=>{t.setIcon("settings"),t.setTooltip(m("controls.importSettings")),t.onClick(()=>{new Ja(s=>{s.trim()!==""&&u.plugin.importSettings(s).then(()=>{u.graphsManager.resetPlugin(this.view,!1)})}).open()})})}createSaveForDefaultState(){return new sr.Setting(this.treeItemChildren).setName(m("states.saveForDefaultState")).setTooltip(m("states.saveForDefaultStateDesc")).addExtraButton(t=>{t.extraSettingsEl.addClass("save-button"),(0,sr.setIcon)(t.extraSettingsEl,"arrow-up-to-line"),t.onClick(()=>{u.statesManager.saveForDefaultState(this.view)})})}createSaveForNormalState(){return new sr.Setting(this.treeItemChildren).setName(m("states.saveForNormalState")).setDesc(m("states.saveForNormalStateDesc")).setTooltip(m("states.saveForNormalStateTooltip")).addExtraButton(t=>{t.extraSettingsEl.addClass("save-button"),(0,sr.setIcon)(t.extraSettingsEl,"arrow-down-to-line"),t.onClick(()=>{u.statesManager.saveForNormalState(this.view)})})}createScreenshot(){return new sr.Setting(this.treeItemChildren).setName(m("features.svgScreenshotCopy")).addExtraButton(t=>{t.extraSettingsEl.addClass("screenshot-button"),(0,sr.setIcon)(t.extraSettingsEl,"image"),t.onClick(()=>{u.graphsManager.getSVGScreenshot(this.view)})})}createZoomOnNode(){return new sr.Setting(this.treeItemChildren).setName(m("features.zoomOnNode")).addSearch(t=>{let i=s=>{u.graphsManager.zoomOnNode(this.view,s)};this.suggester=new D9(t.inputEl,this.view.renderer,i)})}createButtonViewState(){return new sr.Setting(this.treeItemChildren).setName(m("states.showGraphState")).addExtraButton(t=>{t.setIcon("info"),t.onClick(()=>{u.statesManager.showGraphState(this.view)})})}createPinMultipleNodes(){return new sr.Setting(this.treeItemChildren).setName(m("features.pinMultipleNodes")).addExtraButton(t=>{t.extraSettingsEl.addClass("extended-graph-pin"),t.setIcon("pin"),t.onClick(()=>{let i=u.graphsManager.allInstances.get(this.view.leaf.id);if(!i)return;let s=new yt(i);new T9(this.instances?.settings??u.settings,(o,a)=>{s.pinInShape(o,a)}).open()})})}createUnpinAllNodes(){return new sr.Setting(this.treeItemChildren).setName(m("features.unpinAllNodes")).addExtraButton(t=>{t.extraSettingsEl.addClass("extended-graph-pin-off"),t.setIcon("pin-off"),t.onClick(()=>{let i=u.graphsManager.allInstances.get(this.view.leaf.id);if(!i)return;new yt(i).unpinAllNodes()})})}createSelectionModes(){if(!this.instances)return;let t=[{mode:"replace",tooltip:m("inputs.selectionModeReplaceTooltip"),icon:"square"},{mode:"add",tooltip:m("inputs.selectionModeAddTooltip"),icon:"squares-unite"},{mode:"subtract",tooltip:m("inputs.selectionModeSubtractTooltip"),icon:"squares-subtract"},{mode:"intersect",tooltip:m("inputs.selectionModeIntersectTooltip"),icon:"squares-intersect"}],i=new sr.Setting(this.treeItemChildren).setName(m("inputs.selectionMode"));for(let s of t)i.addExtraButton(n=>{this.selectionModeButtons[s.mode]=n,n.setIcon(s.icon),n.setTooltip(s.tooltip),n.onClick(()=>{this.instances&&(this.instances.settings.selectionMode=s.mode,Object.entries(this.selectionModeButtons).forEach(o=>{o[0]===s.mode?o[1].extraSettingsEl.addClass("is-active"):o[1].extraSettingsEl.removeClass("is-active")}))})});return this.selectionModeButtons[this.instances.settings.selectionMode]?.extraSettingsEl.addClass("is-active"),i}};var _9=require("obsidian");var Gd=class extends ol{constructor(t,i){super(t.view,"folders",m("features.folders"));this.settingsMap=new Map;this.foldersManager=i,this.instances=t,this.treeItemChildren=this.root.createDiv("tree-item-children"),this.collapseGraphControlSection()}destroy(){this.root.remove()}display(){this.treeItemChildren.replaceChildren(),this.addToggleAllButton(),this.addToggleAllWithAtLeastOneNodeButton(),this.createFolders()}addToggleAllButton(){new _9.Setting(this.treeItemChildren).setName(m("controls.toggleAll")).addExtraButton(t=>{t.setIcon("x").setTooltip(m("controls.disableAll")+": "+m("plugin.folder")).onClick(()=>{this.instances?.foldersSet?.disableAll()})}).addExtraButton(t=>{t.setIcon("check-check").setTooltip(m("controls.enableAll")+": "+m("plugin.folder")).onClick(()=>{this.instances?.foldersSet?.enableAll()})})}addToggleAllWithAtLeastOneNodeButton(){new _9.Setting(this.treeItemChildren).setName(m("controls.toggleAll")).setDesc(m("controls.toggleAllWithMoreThanOneNode")).addExtraButton(t=>{t.setIcon("x").setTooltip(m("controls.disableAll")+": "+m("plugin.folder")).onClick(()=>{this.instances?.foldersSet?.disableAllWithAtLeastOneNode()})}).addExtraButton(t=>{t.setIcon("check-check").setTooltip(m("controls.enableAll")+": "+m("plugin.folder")).onClick(()=>{this.instances?.foldersSet?.enableAllWithAtLeastOneNode()})})}createFolders(){let t=this.foldersManager?.getTypesWithoutNone();if(t)for(let i of t)this.add(pe,i,this.foldersManager.getColor(i))}update(t,i,s){this.settingsMap.get(i)?.setting.settingEl.style.setProperty("--folder-color-rgb",$e.getCSSSplitRGB(s))}add(t,i,s){let n=new _9.Setting(this.treeItemChildren);n.setName(i).addToggle(o=>{o.setValue(this.foldersManager.isActive(i)),o.onChange(a=>{a!==this.foldersManager.isActive(i)&&this.toggle(t,i)}),this.settingsMap.set(i,{setting:n,toggle:o})}),this.update(t,i,s)}remove(t,i){for(let s of i){let n=this.settingsMap.get(s);s&&(n?.setting.settingEl.remove(),this.settingsMap.delete(s))}}toggle(t,i){this.foldersManager.isActive(i)?this.foldersManager.disable([i]):this.foldersManager.enable([i])}enableUI(t,i){this.settingsMap.get(i)?.toggle.setValue(!0)}disableUI(t,i){this.settingsMap.get(i)?.toggle.setValue(!1)}enableAllUI(t){for(let[i,s]of this.settingsMap)s.toggle.setValue(!0)}disableAllUI(t){for(let[i,s]of this.settingsMap)s.toggle.setValue(!1)}};var F9=require("obsidian");var g9=class extends F9.Modal{constructor(e,t){super(u.app),this.setTitle(e),this.modalEl.addClass("graph-modal-new"),this.callback=t,this.scope.register(null,"Enter",i=>{this.callback(this.input.getValue())&&this.close()})}onOpen(){new F9.Setting(this.contentEl).addSearch(e=>{this.input=e,new E9(e.inputEl,t=>{})}).addButton(e=>{Je.setupButton(e,"add"),e.buttonEl.addEventListener("click",t=>{this.callback(this.input.getValue())&&this.close()})})}onClose(){this.contentEl.empty()}};var Is=require("obsidian");var yu=class extends Is.Modal{constructor(e){super(u.app),this.initialFolders=e,this.folders=structuredClone(e),this.setTitle(m("features.excludedFolders")),this.modalEl.addClass("graph-modal-exclude-folders")}onOpen(){this.messageP=this.contentEl.createEl("p"),this.filtersDiv=this.contentEl.createDiv(),this.addNewFilterSetting(),this.addButtonContainer(),this.updateMessage(),this.addFilters()}updateMessage(){this.messageP.textContent=this.folders.length===0?m("features.noExclusionFilter"):m("features.withExclusionFilter")}addFilters(){this.filtersDiv.replaceChildren();for(let e of this.folders)this.addFilter(e)}addFilter(e){this.filtersDiv.createDiv("mobile-option-setting-item",t=>{t.createSpan({cls:"mobile-option-setting-item-name",text:e},s=>{Mm(e)&&s.createSpan({text:"Regex",cls:"flair mod-flat"})});let i=new Is.ExtraButtonComponent(t);i.extraSettingsEl.addClass("mobile-option-setting-item-option-icon"),i.setIcon("lucide-x"),i.setTooltip(m("controls.delete")),i.onClick(()=>{this.folders.remove(e),this.addFilters(),this.updateMessage()})})}addNewFilterSetting(){new Is.Setting(this.contentEl).then(e=>{e.setDesc(m("plugin.filter")).addSearch(t=>{t.setPlaceholder(m("controls.pathRegexPlaceholder")),new x9(t.inputEl,i=>{this.add(t)}),e.addButton(i=>{Je.setupButton(i,"add"),i.onClick(()=>{this.add(t)})})})})}add(e){e.getValue()!==""&&(this.folders.push(e.getValue()),this.addFilter(e.getValue()),this.updateMessage(),e.setValue(""))}addButtonContainer(){this.contentEl.createDiv("modal-button-container",e=>{new Is.ButtonComponent(e).setCta().setButtonText(m("controls.save")).onClick(async()=>{this.initialFolders.length=0;for(let t of this.folders)this.initialFolders.push(t);await u.plugin.saveSettings(),this.close()}),new Is.ButtonComponent(e).setClass("mod-cancel").setButtonText(m("controls.cancel")).onClick(()=>{this.close()})})}onClose(){this.contentEl.empty()}};var bu=require("obsidian");var n9=class extends bu.Modal{constructor(e){super(u.app),this.setTitle(m("controls.setConfigName")),this.modalEl.addClass("graph-modal-export-config"),this.callback=e,this.scope.register(null,"Enter",t=>{this.validate(this.input.getValue())})}onOpen(){new bu.Setting(this.contentEl).setName(m("controls.overrideConfig")).addDropdown(async e=>{this.dropdown=e,e.addOption("","");let t=await Mo();e.addOptions(Object.fromEntries(t.map(i=>[i,fi(i,".json").basename+(u.statesManager.getStateFromConfig(i)?" (\u{1F517} state)":"")])))}).addButton(e=>{e.setIcon("upload"),e.setCta(),e.buttonEl.addEventListener("click",t=>{this.callback(this.dropdown.getValue(),!0)&&this.close()})}),new bu.Setting(this.contentEl).setName(m("controls.orCreateConfig")).addText(e=>{this.input=e}).addButton(e=>{e.setIcon("upload"),e.setCta(),e.buttonEl.addEventListener("click",t=>{this.validate(this.input.getValue())})})}onClose(){this.contentEl.empty()}validate(e){this.callback(e,!1)&&this.close()}};var br=require("obsidian");var vu=class extends br.Modal{constructor(t){super(u.app);this.isCanceled=!0;this.instances=t,this.setTitle(m("features.svgScreenshotOptions"))}onOpen(){this.addCoreOptions(),this.addExtendedOptions(),this.addApply()}addCoreOptions(){this.addOnlyVisibleArea(),this.addShowNodeNames()}addOnlyVisibleArea(){new br.Setting(this.contentEl).setName(m("features.svgScreenshotVisibleArea")).addToggle(t=>{t.setValue(u.settings.exportSVGOptions.onlyVisibleArea),t.onChange(i=>{u.settings.exportSVGOptions.onlyVisibleArea=i,this.saveSettings()})})}addShowNodeNames(){new br.Setting(this.contentEl).setName(m("features.svgScreenshotNodeNames")).addToggle(t=>{t.setValue(u.settings.exportSVGOptions.showNodeNames),t.onChange(i=>{u.settings.exportSVGOptions.showNodeNames=i,this.saveSettings()})})}addExtendedOptions(){this.instances&&(this.addUseCurvedLinks(),this.addUseModifiedArrows(),this.addUseNodeShapes(),this.addShowArcs(),this.addShowFolders(),this.addShowModifiedNames(),this.addShowIcons())}addUseCurvedLinks(){let t=this.canUseCurvedLinks();u.settings.exportSVGOptions.useCurvedLinks=t,t&&new br.Setting(this.contentEl).setName(m("features.svgScreenshotCurvedLinks")).addToggle(i=>{i.setValue(u.settings.exportSVGOptions.useCurvedLinks),i.onChange(s=>{u.settings.exportSVGOptions.useCurvedLinks=s,this.saveSettings()})})}canUseCurvedLinks(){return!this.instances||!this.instances?!1:this.instances.settings.enableFeatures[this.instances.type].links&&this.instances.settings.curvedLinks}addUseModifiedArrows(){let t=this.canUseModifiedArrows();u.settings.exportSVGOptions.useModifiedArrows=t,t&&new br.Setting(this.contentEl).setName("Show modified arrows").addToggle(i=>{i.setValue(u.settings.exportSVGOptions.useModifiedArrows),i.onChange(s=>{u.settings.exportSVGOptions.useModifiedArrows=s,this.saveSettings()})})}canUseModifiedArrows(){return!this.instances||!this.instances?!1:this.instances.settings.enableFeatures[this.instances.type].arrows}addUseNodeShapes(){let t=this.canUseNodeShapes();u.settings.exportSVGOptions.useNodesShapes=t,t&&new br.Setting(this.contentEl).setName(m("features.svgScreenshotNodeShapes")).addToggle(i=>{i.setValue(u.settings.exportSVGOptions.useNodesShapes),i.onChange(s=>{u.settings.exportSVGOptions.useNodesShapes=s,this.saveSettings()})})}canUseNodeShapes(){return!this.instances||!this.instances?!1:this.instances.settings.enableFeatures[this.instances.type].shapes??!1}addShowArcs(){let t=this.canShowArcs();u.settings.exportSVGOptions.showArcs=t,t&&new br.Setting(this.contentEl).setName(m("features.svgScreenshotArcs")).addToggle(i=>{i.setValue(u.settings.exportSVGOptions.showArcs),i.onChange(s=>{u.settings.exportSVGOptions.showArcs=s,this.saveSettings()})})}canShowArcs(){if(!this.instances||!this.instances)return!1;let t=this.instances.type;return this.instances.settings.enableFeatures[t].tags?!0:this.instances.settings.enableFeatures[t].properties?Object.values(this.instances.settings.additionalProperties).some(i=>i[t]):!1}addShowFolders(){let t=this.canShowFolders();u.settings.exportSVGOptions.showFolders=t,t&&new br.Setting(this.contentEl).setName("Show folder boxes").addToggle(i=>{i.setValue(u.settings.exportSVGOptions.showFolders),i.onChange(s=>{u.settings.exportSVGOptions.showFolders=s,this.saveSettings()})})}canShowFolders(){return!this.instances||!this.instances?!1:this.instances.settings.enableFeatures[this.instances.type].folders}addShowModifiedNames(){let t=this.canShowModifiedNames();u.settings.exportSVGOptions.useModifiedNames=t,t&&new br.Setting(this.contentEl).setName("Show modified names").addToggle(i=>{i.setValue(u.settings.exportSVGOptions.useModifiedNames),i.onChange(s=>{u.settings.exportSVGOptions.useModifiedNames=s,this.saveSettings()})})}canShowModifiedNames(){return!this.instances||!this.instances?!1:this.instances.settings.enableFeatures[this.instances.type].names}addShowIcons(){let t=this.canShowIcons();u.settings.exportSVGOptions.showIcons=t,t&&new br.Setting(this.contentEl).setName("Show icons").addToggle(i=>{i.setValue(u.settings.exportSVGOptions.showIcons),i.onChange(s=>{u.settings.exportSVGOptions.showIcons=s,this.saveSettings()})})}canShowIcons(){return!this.instances||!this.instances?!1:this.instances.settings.enableFeatures[this.instances.type].icons}addApply(){let t=new br.Setting(this.contentEl).addButton(i=>{i.setButtonText(m("features.svgScreenshotCopyCode")),i.onClick(()=>{this.isCanceled=!1,u.settings.exportSVGOptions.asImage=!1,this.applyAndClose()})});ClipboardItem.supports("image/svg+xml")&&t.addButton(i=>{i.setButtonText(m("features.svgScreenshotCopyImage")),i.setCta(),i.onClick(()=>{this.isCanceled=!1,u.settings.exportSVGOptions.asImage=!0,this.applyAndClose()})})}async saveSettings(){this.instances&&(this.instances.settings.exportSVGOptions=u.settings.exportSVGOptions),await u.plugin.saveSettings()}applyAndClose(){this.saveSettings().then(()=>{this.close()})}};var qr=require("obsidian");var Eu=class extends qr.Modal{constructor(t){super(u.app);this.cmapData=[];this.interpolate=!0;this.reverse=!1;this.name=t??"",this.modalEl.addClass("graph-modal-palette-maker")}onOpen(){this.addCanvas(),this.addHandles(),this.addControls(),this.addInfo(),this.addListeners(),this.updateCanvas()}addCanvas(){this.canvasContainer=this.contentEl.createDiv("canvas-gradient-maker-container"),this.canvasGradient=this.canvasContainer.createEl("canvas"),this.canvasGradient.id="canvas-gradient-maker"}addHandles(){if(this.name in u.settings.customColorMaps){let t=u.settings.customColorMaps[this.name];this.reverse=t.reverse,this.interpolate=t.interpolate;let i=t.colors.map((s,n)=>({col:Ti(s).rgb,stop:t.stops[n]}));for(let{col:s,stop:n}of i)this.addHandle(s,n)}else this.addHandle(16711680,0),this.addHandle(65280,.5),this.addHandle(255,1)}addHandle(t,i){let s=new qr.ColorComponent(this.canvasContainer);this.cmapData.push({handle:s,color:t,stop:i}),s.setValue(as(t)),s.onChange(n=>{let o=this.cmapData.find(a=>a.handle===s);o&&(o.color=Ti(n).rgb,this.updateCanvas())}),s.colorPickerEl.style.left=100*i+"%",s.colorPickerEl.addEventListener("mousedown",n=>this.onDragStart(n,s)),s.colorPickerEl.addEventListener("mouseenter",()=>this.targetHandle=s),s.colorPickerEl.addEventListener("mouseleave",()=>this.targetHandle=void 0)}addListeners(){this.canvasContainer.addEventListener("dblclick",this.onAddHandle.bind(this)),this.scope.register(null,"Backspace",this.onDeleteHandle.bind(this)),this.scope.register(null,"Clear",this.onDeleteHandle.bind(this)),this.scope.register(null,"Delete",this.onDeleteHandle.bind(this))}onAddHandle(t){if(t.button!==0||t.targetNode?.nodeName!=="CANVAS")return;let i=this.canvasContainer.getBoundingClientRect(),s=Math.clamp((t.clientX-i.left)/i.width,0,1),n=this.canvasGradient.getContext("2d",{willReadFrequently:!0})?.getImageData(s*this.canvasGradient.width,.5,1,1);if(!n)return;let o=n.data;this.addHandle(Vn([o[0],o[1],o[2]]),s)}onDeleteHandle(t,i){if(!this.targetHandle||this.cmapData.length<=2)return;let s=this.cmapData.find(n=>n.handle===this.targetHandle);s&&(this.cmapData.remove(s),s.handle.colorPickerEl.detach(),this.targetHandle=void 0,this.updateCanvas())}onDragStart(t,i){if(t.button!==0)return;let s=this.cmapData.findIndex(c=>c.handle===i);if(s===-1)return;let n=i.colorPickerEl;t.preventDefault(),t.stopPropagation();let o=this.canvasContainer.getBoundingClientRect(),a=c=>{c.preventDefault();let h=c.clientX,d=Math.clamp((h-o.left)/o.width,0,1);n.style.left=100*d+"%",this.cmapData[s].stop=d,this.updateCanvas()},l=c=>{c.preventDefault(),n.win.removeEventListener("mousemove",a),n.win.removeEventListener("mouseup",l)};n.win.addEventListener("mousemove",a),n.win.addEventListener("mouseup",l)}addControls(){new qr.Setting(this.contentEl).setName(m("controls.interpolate")).addToggle(t=>{t.setValue(this.interpolate),t.onChange(i=>{this.interpolate=i,this.updateCanvas()})}),new qr.Setting(this.contentEl).setName(m("controls.reverse")).addToggle(t=>{t.setValue(this.reverse),t.onChange(i=>{this.reverse=i})}),this.nameSetting=new qr.Setting(this.contentEl).setName(m("UI.name")).addText(t=>{t.setValue(this.name),t.onChange(i=>{this.name=i,this.onNameChanged()})}),new qr.Setting(this.contentEl).addButton(t=>{this.saveButton=t,t.setButtonText(m("controls.save")),t.setCta(),t.onClick(this.save.bind(this))}),this.onNameChanged()}addInfo(){let t=new qr.Setting(this.contentEl).setName(m("UI.howToUse")).setHeading();t.descEl.innerHTML=m("UI.howToUseGradientMaker");let i=createDiv();t.nameEl.prepend(i),(0,qr.setIcon)(i,"info")}onNameChanged(){this.name===""?(this.nameSetting.setDesc(m("errors.paletteNameRequired")),this.nameSetting.descEl.toggleClass("error",!0)):(this.nameSetting.setDesc(""),this.nameSetting.descEl.toggleClass("error",!0)),this.name in u.settings.customColorMaps?this.saveButton.setButtonText(m("controls.override")):this.saveButton.setButtonText(m("controls.save"))}updateCanvas(){Pa(this.canvasGradient,!1,this.interpolate,this.cmapData.map(t=>t.color),this.cmapData.map(t=>t.stop))}save(){this.name!==""&&(u.settings.customColorMaps[this.name]={colors:this.cmapData.map(t=>as(t.color)),stops:this.cmapData.map(t=>t.stop),interpolate:this.interpolate,reverse:this.reverse},u.plugin.saveSettings().then(()=>{this.saveCallback&&this.saveCallback(this.name),this.close()}))}onSave(t){this.saveCallback=t}};var H0=require("obsidian");var y9=class extends H0.Modal{constructor(){super(u.app);this.selectedPalette="";this.customPalettes={};this.setTitle(m("features.interactives.palettePickGradient")),this.modalEl.addClass("graph-modal-palette-picker")}onOpen(){for(let[t,i]of Object.entries(vh))this.addPalettesGroup(t,i);this.addCustomPalettesGroup(),this.addInfo()}addPalettesGroup(t,i){let s=new H0.Setting(this.contentEl).setName(t).setHeading();s.controlEl.addClass("palette-group");for(let n of i)this.addPalette(n,s.controlEl),this.addPalette(n+"_r",s.controlEl)}addPalette(t,i){let n=new H0.Setting(i).setName(t).controlEl.createEl("canvas");n.id=`picker-canvas-palette-${t}`,n.width=100,n.height=20,Na(n,t,u.settings),n.onclick=()=>{this.selectedPalette=t,this.close()}}addCustomPalettesGroup(){let t=new H0.Setting(this.contentEl).setName(m("plugin.custom")).setHeading();new H0.ButtonComponent(t.infoEl).then(i=>{Je.setupButton(i,"add"),i.onClick(()=>{let s=new Eu;s.onSave(n=>{this.addCustomPalette(n,t.controlEl),this.selectedPalette="custom:"+n,this.callback(this.selectedPalette)}),s.open()})}),t.controlEl.addClass("palette-group");for(let i in u.settings.customColorMaps)this.addCustomPalette(i,t.controlEl)}addCustomPalette(t,i){let s=u.settings.customColorMaps[t];if(!s)return;let n=Object.entries(this.customPalettes).find(([a,l])=>l.name===t),o;if(n)o=n[0];else{o=crypto.randomUUID();let a=new H0.Setting(i).setName(t);a.settingEl.addClass("custom-palette");let l=a.controlEl.createEl("canvas");l.id=`picker-canvas-custom-palette-${o}`,l.width=100,l.height=20,new H0.ExtraButtonComponent(a.infoEl).then(c=>{Je.setupExtraButton(c,"edit"),c.onClick(()=>this.editCustomPalette(o))}),new H0.ExtraButtonComponent(a.infoEl).then(c=>{Je.setupExtraButton(c,"delete"),c.onClick(()=>this.deleteCustomPalette(o))}),l.onclick=()=>this.selectCustomPalette(o),this.customPalettes[o]={name:t,setting:a,canvas:l}}Pa(this.customPalettes[o].canvas,s.reverse,s.interpolate,s.colors.map(a=>Ti(a).rgb),s.stops)}editCustomPalette(t){let i=this.customPalettes[t].name,s=new Eu(i);s.onSave(n=>{this.onCustomPaletteEdited(t,i,n),i=n}),s.open()}async onCustomPaletteEdited(t,i,s){let n="custom:"+s,o=u.settings.customColorMaps[n];if(o){if(i!==n){delete u.settings.customColorMaps[i];for(let a in u.settings.interactiveSettings)u.settings.interactiveSettings[a].colormap===i&&(u.settings.interactiveSettings[a].colormap=n);u.settings.nodesColorColormap===i&&(u.settings.nodesColorColormap=n),u.settings.linksColorColormap===i&&(u.settings.linksColorColormap=n),await u.plugin.saveSettings()}this.selectedPalette=n,this.callback(this.selectedPalette),this.customPalettes[t].name=s,this.customPalettes[t].setting.setName(s),Pa(this.customPalettes[t].canvas,o.reverse,o.interpolate,o.colors.map(a=>Ti(a).rgb),o.stops)}}deleteCustomPalette(t){let i=this.customPalettes[t].name;delete u.settings.customColorMaps[i];for(let s in u.settings.interactiveSettings)u.settings.interactiveSettings[s].colormap===i&&(u.settings.interactiveSettings[s].colormap="rainbow");u.settings.nodesColorColormap===i&&(u.settings.nodesColorColormap="rainbow"),u.settings.linksColorColormap===i&&(u.settings.linksColorColormap="rainbow"),u.plugin.saveSettings(),this.selectedPalette="rainbow",this.callback(this.selectedPalette),this.customPalettes[t].setting.settingEl.detach(),delete this.customPalettes[t]}selectCustomPalette(t){this.selectedPalette="custom:"+this.customPalettes[t].name,this.close()}addInfo(){new H0.Setting(this.contentEl).setName(m("plugin.info")).setHeading().setDesc(m("features.interactives.paletteMatplotlibDesc")).then(t=>{let i=createDiv();t.nameEl.prepend(i),(0,H0.setIcon)(i,"info");let s=t.descEl.createEl("a");s.href="https://matplotlib.org/stable/users/explain/colors/colormaps.html",s.setText("https://matplotlib.org/stable/users/explain/colors/colormaps.html")})}onClose(){this.contentEl.empty(),this.selectedPalette!==""&&this.callback(this.selectedPalette)}onSelected(t){this.callback=t}};var A9=require("obsidian");var Ja=class extends A9.Modal{constructor(e){super(u.app),this.setTitle(m("controls.selectConfigToImport")),this.modalEl.addClass("graph-modal-import-config"),this.callback=e}onOpen(){new A9.Setting(this.contentEl).addDropdown(async e=>{this.dropdown=e,e.addOption("","");let t=await Mo();e.addOptions(Object.fromEntries(t.map(i=>[i,fi(i,".json").basename+(u.statesManager.getStateFromConfig(i)?" (\u{1F517} state)":"")])))}).addButton(e=>{e.setIcon("download"),e.setCta(),e.buttonEl.addEventListener("click",t=>{let i=this.dropdown.getValue();i!==""&&this.callback(i),this.close()})})}onClose(){this.contentEl.empty()}};var k9=require("obsidian");var f9=class extends k9.Modal{constructor(t,i){super(u.app);this.labels={};this.key=t,this.types=i,this.setTitle(m("features.interactives.selectionFor")+": "+this.key),this.modalEl.addClass("graph-modal-interactives-selection")}onOpen(){this.addRegexArea(),this.addLabels(),this.filterOutLabels()}addRegexArea(){"excludeRegex"in u.settings.interactiveSettings[this.key]||(u.settings.interactiveSettings[this.key].excludeRegex={regex:"",flags:""}),this.regexSetting=new k9.Setting(this.contentEl).setName(m("query.excludeRegex")).addTextArea(t=>{t.setValue(u.settings.interactiveSettings[this.key].excludeRegex.regex),t.onChange(i=>this.changeExcludeRegex(i,u.settings.interactiveSettings[this.key].excludeRegex.flags))}).addText(t=>{t.setPlaceholder("flags").setValue(u.settings.interactiveSettings[this.key].excludeRegex.flags).onChange(i=>this.changeExcludeRegex(u.settings.interactiveSettings[this.key].excludeRegex.regex,i))}),this.updateRegexDesc()}addLabels(){let t=this.contentEl.createDiv("items-container");for(let i of this.types){let s=!u.settings.interactiveSettings[this.key].unselected.includes(i),n=t.createEl("label"),o=n.createSpan({text:i}),a=n.createEl("input",{type:"checkbox"});s?this.selectInteractive(n,a):this.deselectInteractive(n,a),a.addEventListener("change",l=>{a.checked?this.selectInteractive(n,a):this.deselectInteractive(n,a)}),this.labels[i]=n}}filterOutLabels(){let t=u.settings.interactiveSettings[this.key].excludeRegex,i=0;for(let[s,n]of Object.entries(this.labels)){let o=!1;for(let a of t.regex.split(` `))if(a!==""&&new RegExp(a,t.flags).test(s)){n.hide(),o=!0,i++;break}o||n.show()}this.regexSetting.setName(`${m("query.excludeRegex")} (${i} ${i>1?m("query.matches"):m("query.match")})`)}changeExcludeRegex(t,i){t===u.settings.interactiveSettings[this.key].excludeRegex.regex&&i===u.settings.interactiveSettings[this.key].excludeRegex.flags||(u.settings.interactiveSettings[this.key].excludeRegex={regex:t,flags:i},u.plugin.saveSettings(),this.filterOutLabels(),this.updateRegexDesc())}updateRegexDesc(){let t=u.settings.interactiveSettings[this.key].excludeRegex.regex,i=u.settings.interactiveSettings[this.key].excludeRegex.flags;this.regexSetting.descEl.innerHTML=m("query.excludeRegexDesc")+"
    "+t.split(` -`).map(s=>`
  • /${s}/${i}
  • `).join("")+"
"}selectInteractive(t,i){t.addClass("is-active"),i.checked=!0,u.settings.interactiveSettings[this.key].unselected.includes(t.innerText)&&(u.settings.interactiveSettings[this.key].unselected.remove(t.innerText),u.plugin.saveSettings())}deselectInteractive(t,i){t.removeClass("is-active"),i.checked=!1,u.settings.interactiveSettings[this.key].unselected.includes(t.innerText)||(u.settings.interactiveSettings[this.key].unselected.push(t.innerText),u.plugin.saveSettings())}onClose(){this.contentEl.empty()}};var M9=require("obsidian");var xu=class extends M9.Modal{constructor(e,t,i){super(u.app),this.setTitle(e),this.modalEl.addClass("graph-modal-new"),this.callback=t,this.name=i,this.scope.register(null,"Enter",s=>{this.callback(this.input.getValue())&&this.close()})}onOpen(){new M9.Setting(this.contentEl).addText(e=>{this.input=e,this.name&&this.input.setValue(this.name)}).addButton(e=>{Je.setupButton(e,this.name?"edit":"add"),e.buttonEl.addEventListener("click",t=>{this.callback(this.input.getValue())&&this.close()})})}onClose(){this.contentEl.empty()}};var $i=require("obsidian");var al=class extends $i.Modal{constructor(t,i,s,n){super(u.app);this.rulesSettings=[];this.combinationLogicButtons={AND:null,OR:null};this.setTitle(t),this.modalEl.addClass("graph-modal-nodes-query"),this.callback=s,this.queryData=i,this.settings=n}onOpen(){this.addCombinationLogic(),this.addRulesHeader(),this.addButtons();for(let t of this.queryData.rules)this.addRule(t);this.onChange()}addCombinationLogic(){new $i.Setting(this.contentEl).setName(m("query.combinationLogic")).addButton(t=>{this.combinationLogicButtons.AND=t,t.setButtonText(m("query.AND")),t.onClick(i=>{this.queryData.combinationLogic="AND",this.combinationLogicButtons.AND?.setCta(),this.combinationLogicButtons.OR?.removeCta()})}).addButton(t=>{this.combinationLogicButtons.OR=t,t.setButtonText(m("query.OR")),t.onClick(i=>{this.queryData.combinationLogic="OR",this.combinationLogicButtons.AND?.removeCta(),this.combinationLogicButtons.OR?.setCta()})}).then(t=>{this.combinationLogicButtons[this.queryData.combinationLogic]?.setCta()})}addRulesHeader(){this.ruleHeader=new $i.Setting(this.contentEl).setName(m("query.rules")).setHeading().addButton(t=>{Je.setupButton(t,"add"),t.onClick(i=>{this.addRule()})})}addRule(t){let i=new Y8(this.contentEl,this.settings??u.settings,this.removeRule.bind(this),this.onChange.bind(this),t);(this.rulesSettings.last()?.settingEl??this.ruleHeader.settingEl).insertAdjacentElement("afterend",i.settingEl),this.rulesSettings.push(i)}removeRule(t){this.rulesSettings.remove(t),t.settingEl.remove()}addButtons(){let t=this.modalEl.createDiv({cls:"buttons-container"});new $i.ButtonComponent(t).setButtonText(m("controls.cancel")).onClick(()=>this.close()),this.viewMatchesButton=new $i.ButtonComponent(t).setButtonText(m("query.viewMatches")).onClick(()=>this.viewMatches()),this.applyButton=new $i.ButtonComponent(t).setButtonText(m("controls.save")).setIcon("save").onClick(()=>this.save()).setCta()}onChange(t){let s=this.getMatcher().getMatches(this.settings);this.viewMatchesButton.setButtonText(`${m("query.viewMatches")} (${s.length})`),this.viewMatchesButton.setDisabled(s.length===0)}viewMatches(){new N9(this.queryData).open()}onClose(){this.contentEl.empty()}save(){this.setQueryData(),this.callback(this.queryData),this.close()}setQueryData(){let t=[];for(let i of this.rulesSettings)t.push(i.getRuleQuery());this.queryData.rules=t.map(i=>i.getRecord())}getMatcher(){return this.setQueryData(),new Hr(this.queryData)}},Y8=class extends $i.Setting{constructor(e,t,i,s,n){super(e),this.settings=t,this.onRemoveCallback=i,this.setClass("rule-setting"),this.addRemoveButton(),this.addSourceDropdown(),n&&n.source&&this.sourceDropdown.setValue(n.source),this.sourceDropdown.getValue()!=="all"&&(this.addLogicDropdown(),n&&n.logic&&this.logicDropdown?.setValue(n.logic),this.sourceDropdown.getValue()==="property"&&(this.addPropertyDropdown(),n&&n.property&&this.propertyDropdown?.setValue(n.property)),this.addValueText(),n&&n.value&&this.valueText?.setValue(n.value)),this.onChangeCallback=s,this.onChange()}addRemoveButton(){return this.addExtraButton(e=>{Je.setupExtraButton(e,"delete"),e.onClick(()=>{this.onRemoveCallback(this)})})}addSourceDropdown(){return this.addDropdown(e=>{this.sourceDropdown=e,e.addOptions(G8),e.setValue("tag"),e.onChange(t=>{t==="all"?(this.logicDropdown?.selectEl.parentNode?.removeChild(this.logicDropdown.selectEl),this.logicDropdown=null,this.propertyDropdown?.selectEl.parentNode?.removeChild(this.propertyDropdown.selectEl),this.propertyDropdown=null,this.valueText?.containerEl.parentNode?.removeChild(this.valueText.containerEl),this.valueText=null):(!this.propertyDropdown&&t==="property"?this.addPropertyDropdown():t!=="property"&&(this.propertyDropdown?.selectEl.parentNode?.removeChild(this.propertyDropdown.selectEl),this.propertyDropdown=null),this.logicDropdown||this.addLogicDropdown(),this.valueText||this.addValueText()),this.onChange()})})}addPropertyDropdown(){return this.addDropdown(e=>{this.propertyDropdown=e,this.controlEl.insertAfter(e.selectEl,this.sourceDropdown.selectEl);let t=t1(this.settings);e.addOptions(t.sort((i,s)=>Ri(i,s)).reduce((i,s)=>(i[s]=s,i),{})),e.onChange(i=>{this.onChange()})})}addLogicDropdown(){return this.addDropdown(e=>{this.logicDropdown=e,e.addOptions(U8),e.onChange(t=>{t!=="isEmpty"&&t!=="isEmptyNot"?this.valueText||this.addValueText():this.valueText&&(this.valueText.containerEl.parentNode?.removeChild(this.valueText.containerEl),this.valueText=null),this.onChange()})})}addValueText(){return this.addSearch(e=>{this.valueText=e,e.setPlaceholder(m("plugin.valuePlaceholder")),e.inputEl.setAttr("required",!0),this.suggester=new sl(this.valueText.inputEl,this.settings,t=>{this.onChange()}),e.onChange(t=>{this.onChange()})})}onChange(){switch(this.logicDropdown?.getValue()){case"containsRegex":case"containsRegexNot":case"matchesRegex":case"matchesRegexNot":this.suggester?.setKey();break;default:this.suggester?.setKey(this.sourceDropdown.getValue(),this.propertyDropdown?.getValue());break}let t=this.getRuleQuery();this.setValidity(t),this.onChangeCallback(t)}setValidity(e){e.isValid()?this.settingEl.removeClass("query-invalid"):this.settingEl.addClass("query-invalid")}getRuleQuery(){return new Fs({source:this.sourceDropdown.getValue(),property:this.propertyDropdown?.getValue()??"",value:this.valueText?.getValue()??"",logic:this.logicDropdown?.getValue()??""})}};var Su=require("obsidian");var Vd=class extends Su.Modal{constructor(t,i){super(u.app);this.items=[];this.setTitle(m("features.externalLinkOpen")),this.modalEl.addClass("graph-modal-open-external-link");let s={};t.forEach(o=>s[o.basename]=s[o.basename]?s[o.basename]+1:1),this.items=t.map(o=>({file:o,display:s[o.basename]>1?o.path:o.basename}));for(let o of this.items){let a=new Su.ButtonComponent(this.contentEl);a.setButtonText(o.display),a.onClick(()=>{i(o.file)})}let n=new Su.ButtonComponent(this.contentEl);n.setButtonText("Open on web"),n.setCta(),n.onClick(()=>{i(null)})}};var Cu=require("obsidian");var F9=class extends al{constructor(e,t){super(m("features.pinMultipleNodes"),u.settings.multipleNodesData.queryData??{combinationLogic:"AND",rules:[]},i=>{this.pinCallback(this.shapeData,i)},e),this.pinCallback=t,this.shapeData=u.settings.multipleNodesData.shapeData??{type:"grid",center:{x:0,y:0},step:100}}onOpen(){super.onOpen(),this.addShapeType(),this.addStep(),this.addCenter(),this.changeType(this.shapeData.type),this.applyButton.setButtonText(m("controls.apply")).setIcon("check"),this.rulesSettings.length===0&&(this.addRule({source:"all"}),this.onChange())}addShapeType(){new Cu.Setting(this.contentEl).setName(m("features.pinMultipleShape")).addDropdown(e=>{e.addOptions(h5),e.setValue(this.shapeData.type),e.onChange(t=>{this.changeType(t),this.saveSettings()})})}addStep(){new Cu.Setting(this.contentEl).setName(m("features.pinMultipleGap")).addText(e=>{e.setValue(this.shapeData.step.toString()),e.onChange(t=>{let i=parseInt(t);isNaN(i)||(this.shapeData.step=i,this.saveSettings())})})}addCenter(){new Cu.Setting(this.contentEl).setName(m("features.pinMultipleCenter")).addText(e=>{e.inputEl.insertAdjacentText("beforebegin","X"),e.setValue(this.shapeData.center.x.toString()),e.onChange(t=>{let i=parseInt(t);isNaN(i)||(this.shapeData.center.x=i,this.saveSettings())})}).addText(e=>{e.inputEl.insertAdjacentText("beforebegin","Y"),e.setValue(this.shapeData.center.y.toString()),e.onChange(t=>{let i=parseInt(t);isNaN(i)||(this.shapeData.center.y=i,this.saveSettings())})})}addGridSettings(){this.gridSetting||(this.gridSetting=new Cu.Setting(this.contentEl).setName(m("features.pinMultipleGridSize")).setDesc(m("features.pinMultipleGridSizeDesc")).addText(e=>{e.setValue(this.shapeData.columns?.toString()??""),e.onChange(t=>{if(t==="")this.shapeData.columns=void 0,this.saveSettings();else if(t==="N"||t==="auto")this.shapeData.columns=t,this.saveSettings();else{let i=parseInt(t);!isNaN(i)&&i>=1&&(this.shapeData.columns=i,this.saveSettings())}})}))}removeGridSettings(){this.gridSetting&&(this.gridSetting.settingEl.parentNode?.removeChild(this.gridSetting.settingEl),this.gridSetting=null)}changeType(e){this.shapeData.type=e,this.shapeData.type==="grid"?this.addGridSettings():this.removeGridSettings(),this.saveSettings()}onChange(e){super.onChange(e),this.saveSettings()}saveSettings(){u.settings.multipleNodesData={shapeData:this.shapeData,queryData:this.queryData},u.plugin.saveSettings()}};var bo=require("obsidian");var N9=class extends bo.Modal{constructor(e){super(u.app),this.matcher=new Hr(e);let t=this.matcher.getMatches();this.setTitle(m("query.matchingFiles")),this.addQueryStringHeader(),this.addQueryString(),this.addFilesHeader(t.length);for(let i of t)this.addFile(i)}addQueryStringHeader(){new bo.Setting(this.contentEl).setName(m("query.query")).setHeading()}addQueryString(){new bo.Setting(this.contentEl).setName(this.matcher.toString())}addFilesHeader(e){new bo.Setting(this.contentEl).setName(`${m("query.files")} (${e})`).setHeading()}addFile(e){new bo.Setting(this.contentEl).setName(e.path)}};var g9=class extends al{constructor(e,t,i){super(m("query.setShapeQueryFor")+": "+m(`features.shapesNames.${e}`),t,s=>{this.saveShapeQueryCallback(this.shape,s)}),this.saveShapeQueryCallback=i,this.shape=e}onOpen(){this.addShapeIcon(),super.onOpen()}addShapeIcon(){let e=We.getSVG(this.shape);e.addClass("shape-svg"),this.titleEl.insertAdjacentElement("afterbegin",e)}};var nr=require("obsidian");var Bs=class extends nr.Modal{constructor(t){super(u.app);this.sortableTables={};this.defaultMaxRows=10;this.instances=t,this.state=new Rs(""),this.state.saveGraph(t),this.setTitle(m("states.graphState")),this.modalEl.addClass("graph-modal-graph-state")}setTarget(t,i){this.target={tableID:t,elementID:i}}open(){super.open(),this.modalEl.querySelectorAll("input").forEach(t=>t.blur())}onOpen(){this.addNodes(),this.addLinks(),this.addPinnedNodes(),this.focusOnTarget()}addNodes(){let t=this.instances.nodesSet.extendedElementsMap.size>0,i=Object.keys(this.instances.nodesSet.selectedNodes).length>0;this.createHeading(m("plugin.nodes"),"nodes",t);let s=this.contentEl.createEl("table"),n=s.createEl("colgroup"),a=s.createTHead().insertRow(),l;l=a.insertCell(),l.setText(m("plugin.folder")),n.createEl("col").addClass("col-folder"),l=a.insertCell(),l.setText(m("plugin.nodeName")),n.createEl("col").addClass("col-filename"),l=a.insertCell(),l.setText(m("controls.enabled")),n.createEl("col").addClass("col-enabled"),i&&(l=a.insertCell(),l.setText(m("inputs.selected")),n.createEl("col").addClass("col-selected"));for(let[d,p]of this.instances.nodesSet.managers)l=a.insertCell(),l.setText(d),n.createEl("col").addClass("col-key-"+d);if(this.instances.settings.enableFeatures[this.instances.type].shapes&&(l=a.insertCell(),l.setText(m("features.shape")),n.createEl("col").addClass("col-shape")),this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&(l=a.insertCell(),l.setText(m("features.size")),n.createEl("col").addClass("col-size")),!t)return;let c=s.createTBody(),h=[];for(let[d,p]of this.instances.nodesSet.extendedElementsMap){let g=this.getNodeData(d),v=c.insertRow();h.push(d);let C;C=v.insertCell(),C.setText(g.path),C=v.insertCell(),g.link?C.appendChild(g.link):C.setText(d),C=v.insertCell(),p.isAnyManagerDisabled()||C.setText("\u2713"),i&&(C=v.insertCell(),d in this.instances.nodesSet.selectedNodes&&C.setText("\u2713"));for(let[w,k]of this.instances.nodesSet.managers){C=v.insertCell(),C.addClass("column-interactives");let B=p.types.get(w);if(B)for(let L of B){let T=C.createEl("span");T.addClass("tag"),k.isActive(L)||T.addClass("is-disabled"),T.style.setProperty("--interactive-color",$e.getCSSSplitRGB(k.getColor(L))),T.setText(L)}}this.instances.settings.enableFeatures[this.instances.type].shapes&&p.graphicsWrapper&&(C=v.insertCell(),C.createDiv().appendChild(We.getSVG(p.graphicsWrapper.shape)).addClass("shape-svg")),this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&(C=v.insertCell(),C.setText(p.getSizeWithoutScaling().toFixed(2)))}this.prepareTable("nodes",s,h)}addLinks(){let t=this.instances.linksSet.extendedElementsMap.size>0;this.createHeading("Links","links",t);let i=this.contentEl.createEl("table"),s=i.createEl("colgroup"),o=i.createTHead().insertRow(),a;a=o.insertCell(),a.setText(`${m("plugin.folder")} (${m("plugin.source")})`),s.createEl("col").addClasses(["col-folder","col-folder-source"]),a=o.insertCell(),a.setText(`${m("plugin.nodeName")} (${m("plugin.source")})`),s.createEl("col").addClasses(["col-filename","col-filename-source"]),a=o.insertCell(),a.setText(`${m("plugin.folder")} (${m("plugin.target")})`),s.createEl("col").addClasses(["col-folder","col-folder-target"]),a=o.insertCell(),a.setText(`${m("plugin.nodeName")} (${m("plugin.target")})`),s.createEl("col").addClasses(["col-filename","col-filename-target"]),a=o.insertCell(),a.setText(m("controls.enabled")),s.createEl("col").addClass("col-enabled");for(let[h,d]of this.instances.linksSet.managers)a=o.insertCell(),a.setText(h),s.createEl("col").addClass("col-key-"+h);if(this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&(a=o.insertCell(),a.setText(m("features.size")),s.createEl("col").addClass("col-size")),!t)return;let l=i.createTBody(),c=[];for(let[h,d]of this.instances.linksSet.extendedElementsMap){let p=this.getNodeData(d.coreElement.source.id),g=this.getNodeData(d.coreElement.target.id),v=l.insertRow();c.push(h);let C;C=v.insertCell(),C.setText(p.path),C=v.insertCell(),p.link?C.appendChild(p.link):C.setText(d.coreElement.source.id),C=v.insertCell(),C.setText(g.path),C=v.insertCell(),g.link?C.appendChild(g.link):C.setText(d.coreElement.target.id),C=v.insertCell(),d.isAnyManagerDisabled()||C.setText("\u2713");for(let[w,k]of this.instances.linksSet.managers){C=v.insertCell(),C.addClass("column-interactives");let B=d.types.get(w);if(B)for(let L of B){let T=C.createEl("span");T.addClass("tag"),k.isActive(L)||T.addClass("is-disabled"),T.style.setProperty("--interactive-color",$e.getCSSSplitRGB(k.getColor(L))),T.setText(L)}}this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&(C=v.insertCell(),C.setText(d.getThicknessScale().toFixed(2)))}this.prepareTable("links",i,c)}addPinnedNodes(){let t=this.state.data.pinNodes&&Object.entries(this.state.data.pinNodes).length>0;this.createHeading(m("features.pinnedNodes"),"pinned",t);let i=this.contentEl.createEl("table"),s=i.createEl("colgroup"),o=i.createTHead().insertRow(),a;if(a=o.insertCell(),a.setText(m("plugin.folder")),s.createEl("col").addClass("col-folder"),a=o.insertCell(),a.setText(m("plugin.nodeName")),s.createEl("col").addClass("col-filename"),a=o.insertCell(),a.setText("X"),s.createEl("col").addClass("col-pos-x"),a=o.insertCell(),a.setText("Y"),s.createEl("col").addClass("col-pos-y"),!this.state.data.pinNodes||!t)return;let l=i.createTBody(),c=[];for(let[h,d]of Object.entries(this.state.data.pinNodes)){let p=this.getNodeData(h),g=l.insertRow();c.push(h);let v;v=g.insertCell(),v.setText(p.path),v=g.insertCell(),p.link?v.appendChild(p.link):v.setText(h),v=g.insertCell(),v.setText(d.x.toFixed(2)),v=g.insertCell(),v.setText(d.y.toFixed(2))}this.prepareTable("pinned",i,c)}createHeading(t,i,s){let n=new nr.Setting(this.contentEl).setName(t).setHeading();if(s){if(n.addText(o=>{o.inputEl.insertAdjacentText("beforebegin",m("controls.show")),o.setValue(this.defaultMaxRows.toString()).onChange(a=>{let l=this.sortableTables[i];if(!l)return;let c=parseInt(a);if(!isNaN(c)&&c>0){let h=l.maxRows/c;l.maxRows=c,l.page=Math.round(l.page*h),l.page=Math.clamp(l.page,0,this.numberOfPages(i)),this.mountPagination(i),this.showPageRows(i)}}),o.inputEl.insertAdjacentText("afterend",m("controls.rows"))}),i==="nodes"||i==="pinned"){let o=new nr.SearchComponent(n.settingEl).then(a=>{let l=c=>{this.setTarget(i,c),this.focusOnTarget()};new b9(a.inputEl,this.instances,i,l),a.onChange(l)});n.infoEl.insertAdjacentElement("afterend",o.containerEl)}n.controlEl.addClass("number-of-rows")}}getNodeData(t){let i=qe(t),s=this.getPath(i),n=this.getLink(i);return{file:i??void 0,path:s,link:n}}getPath(t){let i="";return t&&(i=t.parent?.path??""),i}getLink(t){if(t){let i=createEl("a");i.setText(t.basename),i.onclick=o=>{this.close(),this.app.workspace.getLeaf(!0).openFile(t)};let s=createEl("code");s.setText(t.extension);let n=createEl("span");return n.appendChild(i),n.insertAdjacentText("beforeend"," "),n.appendChild(s),n}}prepareTable(t,i,s,n=1){i.tHead&&(this.sortableTables[t]={table:i,rows:Array.from(i.tBodies[0].rows).map((o,a)=>({id:s[a],el:o})),sortIndex:n,asc:Array.from(i.tHead.rows[0].cells).map(o=>{}),page:0,pagination:createDiv(),maxRows:this.defaultMaxRows},i.insertAdjacentElement("afterend",this.sortableTables[t].pagination),this.sortableTables[t].pagination.addClass("pagination"),this.mountPagination(t),this.makeSortable(t))}mountPagination(t){let i=this.sortableTables[t];if(!i)return;let s=i.pagination;if(s.replaceChildren(),i.rows.length{this.showFirstPage(t)});let o=s.createDiv("pagination-inner");i.page>n&&o.createSpan().setText("...");for(let a=Math.max(0,i.page-n);a{this.showPreviousPage(t,i.page-a)});new nr.ButtonComponent(o).setButtonText(i.page.toString()).setCta().setTooltip(m("controls.pageCurrent"));for(let a=i.page+1;a{this.showNextPage(t,a-i.page)});i.page{this.showLastPage(t)})}makeSortable(t){let i=this.sortableTables[t],s=this.sortableTables[t]?.table;if(!i||!s?.tHead)return;let n=0;Array.from(s.tHead.rows[0].cells).forEach(o=>{new nr.ExtraButtonComponent(o).setIcon("chevron-down").onClick(()=>{s.tHead&&(i.sortIndex=Array.from(s.tHead.rows[0].cells).indexOf(o),this.sortTable(t))}),n++}),this.sortTable(t)}sortTable(t){let i=this.sortableTables[t];if(!i)return;let s=!i.asc[i.sortIndex];i.asc[i.sortIndex]=s,i.rows.sort((n,o)=>{let a=n.el.cells[i.sortIndex].textContent??"",l=o.el.cells[i.sortIndex].textContent??"";return Ri(a,l)}),s||i.rows.reverse(),this.showPageRows(t);for(let n=0,o=i.asc.length;n=this.numberOfPages(t)?this.showLastPage(t):this.showPageRows(t))}showLastPage(t){let i=this.sortableTables[t];i&&(i.page=this.numberOfPages(t)-1,this.showPageRows(t))}numberOfPages(t){let i=this.sortableTables[t];return i?Math.ceil(i.rows.length/i.maxRows):0}focusOnTarget(){if(!this.target)return;let t=this.sortableTables[this.target.tableID];if(!t)return;let i=t.rows.findIndex(n=>n.id===this.target?.elementID);if(i===-1)return;t.page=Math.floor(i/t.maxRows),this.showPageRows(this.target.tableID);let s=t.rows[i].el;s.addClass("is-flashing"),s.win.setTimeout(function(){return s.removeClass("is-flashing")},1500)}onClose(){this.contentEl.empty()}};function r5(r,e){let t=0;for(let i=1;i{r.alpha<(r.maxAlpha??1)?(r.alpha+=.04,requestAnimationFrame(t)):(r.hasFaded=!0,e&&e())};r.alpha=0,r.hasFaded=!1,requestAnimationFrame(t)}function Rc(r,e){return r.children.contains(e)?r.getChildIndex(e):e.parent?Rc(r,e.parent):0}function ze(r,...e){return(u.proxysManager.getTargetForProxy(r)??r).addChild(...e.map(t=>u.proxysManager.getTargetForProxy(t)??t))}function Jt(r,e,t){return(u.proxysManager.getTargetForProxy(r)??r).addChildAt(u.proxysManager.getTargetForProxy(e)??e,t)}function Qe(r,e){let t=document.createElementNS("http://www.w3.org/2000/svg",r);for(let i in e)t.setAttributeNS(null,i.replace(/[A-Z]/g,function(s,n,o,a){return"-"+s.toLowerCase()}),e[i]);return t}function j8(r,e,t,i){return{x:r+t*Math.cos(i),y:e+t*Math.sin(i)}}function dn(r,e,t,i){let s=(1-r)*((1-r)*e.x+r*t.x),n=(1-r)*((1-r)*e.y+r*t.y),o=r*((1-r)*t.x+r*i.x),a=r*((1-r)*t.y+r*i.y),l=s+o,c=n+a;return{x:l,y:c}}function h1(r,e,t,i){let s={x:(1-r)*e.x+r*t.x,y:(1-r)*e.y+r*t.y},n={x:(1-r)*t.x+r*i.x,y:(1-r)*t.y+r*i.y},o=(n.y-s.y)/(n.x-s.x);return{m:o,c:s.y-o*s.x}}function u5(r,e,t,i){let s=e.x-t.x-t.x+i.x,n=e.y-t.y-t.y+i.y,o=t.x+t.x-e.x-e.x,a=t.y+t.y-e.y-e.y,l=4*(s*s+n*n),c=4*(s*o+n*a),h=o*o+a*a,d=c/(2*l),p=h/l,g=r+d,v=p-d*d,C=Math.sqrt(d*d+v),w=Math.sqrt(g*g+v);return .5*Math.sqrt(l)*(g*w-d*C+v*Math.log(Math.abs((g+w)/(d+C))))}function za(r,e,t){let i=t.x-e.x,s=t.y-e.y;return Math.sqrt(i*i+s*s)*r}var Sn=require("obsidian");var $a=class r{static async getImageUriFromProperty(e,t){let i=u.app.metadataCache.getCache(t);if(!i)return null;let s=i.frontmatter;if(!s)return null;let n=s[e];if(typeof n=="string"){let o=await r.getImageUriFromLink(X8(n));if(o)return o}else if(Array.isArray(n)){for(let o of n)if(typeof o=="string"){let a=await r.getImageUriFromLink(X8(o));if(a)return a}}return null}static async getImageUriFromEmbeds(e){let t=u.app.metadataCache.getCache(e);if(!t)return null;let i=t.embeds?.map(s=>s.link)??[];if(i.length===0){let s=qe(e);if(!s)return null;let n=await u.app.vault.cachedRead(s),o=createDiv();await Sn.MarkdownRenderer.render(u.app,n,o,e,u.plugin);let a=Array.from(o.querySelectorAll("img")).map(c=>c.src),l=Array.from(o.querySelectorAll("video")).map(c=>c.src);i=i.concat(a.concat(l))}for(let s of i){let n=await r.getImageUriFromLink(s);if(n)return n}return null}static async getImageUriForAttachment(e){let t=qe(e);return t?r.getStaticImageUri(u.app.vault.getResourcePath(t)):null}static async getImageUriFromLink(e){let t=u.app.metadataCache.getFirstLinkpathDest(e,".");if(t){let i=u.app.vault.getResourcePath(t);return r.getStaticImageUri(i)}if(u.settings.allowExternalImages)try{let i=new URL(e);if(i.protocol==="http:"||i.protocol==="https:"){let s=await(0,Sn.requestUrl)(e),n=s.headers["content-type"];return["image/avif","image/webp","image/png","image/svg+xml","image/jpeg"].includes(n)?"data:"+n+";base64,"+(0,Sn.arrayBufferToBase64)(s.arrayBuffer):null}}catch{return null}if(u.settings.allowExternalLocalImages)try{let i=new URL(e);if(i.protocol==="file:")return e.startsWith("file:///")&&(e=e.replace("file:///","")),e=Sn.Platform.resourcePathPrefix+e,r.getStaticImageUri(e);if(i.protocol==="app:")return r.getStaticImageUri(e)}catch{return null}return null}static async getStaticImageUri(e){let t=await r.getMediaType(e);return t?["image/avif","image/webp","image/png","image/svg+xml","image/jpeg"].includes(t)?e:["image/gif"].includes(t)?r.getUriForGif(e):["video/mp4","video/webm","video/ogg","video/quicktime","video/x-matroska"].includes(t)?r.getUriForVideo(e):null:null}static async getUriForGif(e){let t=createEl("canvas"),i=t.getContext("2d");if(i){let s,n=new Image;n.onload=()=>{t.width=n.width,t.height=n.height,i.drawImage(n,0,0),s=t.toDataURL()},n.src=e;let o=0;return await(async()=>{for(;s===void 0&&o<5;)o+=1,await new Promise(a=>setTimeout(a,100))})(),s??null}return null}static async getUriForVideo(e){let t=createEl("canvas"),i=t.getContext("2d");if(i){let s,n=createEl("video");n.src=e,n.addEventListener("seeked",function(){i.drawImage(n,0,0,t.width,t.height),s=t.toDataURL()}),n.onloadedmetadata=function(){n.duration&&(n.currentTime=n.duration/2)};let o=0;return await(async()=>{for(;s===void 0&&o<5;)o+=1,await new Promise(a=>setTimeout(a,100))})(),s??null}return null}static async getMediaType(e){let t,i=new XMLHttpRequest;i.open("HEAD",e,!1),i.onload=function(){t=i.getResponseHeader("Content-Type")},i.onerror=function(n){console.warn(n),t=null},i.onreadystatechange=function(){i.status===401&&console.warn(m("errors.uri401"))};try{i.send()}catch(n){console.warn(n),t=null}let s=0;return await(async()=>{for(;t===void 0&&s<5;)s+=1,await new Promise(n=>setTimeout(n,100))})(),t??null}};function fi(r,e){if(!r)return{path:r,basename:"",ext:""};r=r.replace(/\/+$/,"");let t=Math.max(r.lastIndexOf("/"),r.lastIndexOf("\\")),i=t===-1?r:r.substring(t+1);if(e){if(!i.contains(e))throw new Error(`The path "${r}" is not of extension "${e}".`)}else{let n=i.lastIndexOf(".");e=n===-1?"":i.substring(n)}!e.startsWith(".")&&e&&(e="."+e);let s;if(e.length>1){let n=i.lastIndexOf(e);s=n===-1?i:i.substring(0,n)}else s=i;return{path:r,basename:s,ext:e}}var pv=require("obsidian"),fv=St(dv());function $_(){return u.app.plugins.getPlugin("iconic")}function o5(r){let e=$_();if(!e||!e.hasOwnProperty("ruleManager")||typeof e.ruleManager.checkRuling!="function"||typeof e.getFileItem!="function")return null;let t=u.app.vault.getFolderByPath(r)?"folder":"file",i=e.ruleManager.checkRuling(t,r)??e.getFileItem(r);if(i.icon?.startsWith("lucide-")){let s=(0,pv.getIcon)(i.icon);if(s){let n=getComputedStyle(document.body),o=null;return i.hasOwnProperty("color")&&(o=n.getPropertyValue(`--color-${i.color}`)||null),{svg:s,color:o,emoji:null}}}else if(i.icon&&Bc(i.icon))return{svg:null,color:null,emoji:i.icon};return null}function a5(r){let e=u.app.plugins.getPlugin("obsidian-icon-folder");if(!e||!e.hasOwnProperty("api")||!e.api.hasOwnProperty("getIconByName")||!e.hasOwnProperty("data")||!(r in e.data))return null;let t=e.data[r],i,s=null;if(typeof t=="string"?i=t:(i=t.iconName,s=t.iconColor),!i)return null;let n=e.api.getIconByName(i);if(n){let o=n.svgElement;return{svg:new DOMParser().parseFromString(o,"text/html").querySelector("svg"),color:s,emoji:null}}return typeof i=="string"&&i!==""&&Bc(i)?{svg:null,color:null,emoji:i}:null}function gv(){return this.app.plugins.getPlugin("graph-banner")?._loaded}function Cl(){return"graph-banner-content"}function ap(r){return r.contentEl.classList.contains(Cl())}function Sl(){return u.app.plugins.getPlugin("graph-banner")}function N0(r){return r?void 0:(0,fv.getAPI)(u.app)}function s5(r,e){let t=[];for(let[i,s]of Object.entries(e))i!=="file"&&(s==null||s===""||!r&&i===zt(i)&&Object.keys(e).some(n=>zt(n)===zt(i)&&n!==i)||t.push(r?zt(i):i));return t}function y0(){let r=u.app.plugins.getPlugin("nlp");if(r)return r?.settings?.refreshDocsOnLoad?r:void 0}var vl=St(mv());var M6=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;var Ki=require("obsidian");function l5(r){return/^\d+(\.\d+)?$/.test(r)}function rl(r){return r.contains(":")?(new Ki.Notice(m("notices.invalidCharacter")+" ':'"),!1):r.length>0}function X8(r){return r.replace("[[","").replace("]]","")}function c9(r){return r.replaceAll(" ","-").replaceAll(/[~!@$%^&*()+=,.\\\/';:"?><[\]{}|`#]/g,"")}function c5(r){return r.split("/").reduce((e,t,i)=>{if(t==="")return e;let s=e.last();return s&&s!==""?e.push(s+"/"+t):e.push(t),e},[])}function Bc(r){return M6().test(r)}function yv(){return/(\/)(.+)\1([a-z]*)/i}function Nm(r){return yv().test(r)}function Jf(r){let e=r.match(yv());return e===null?null:new RegExp(e[2],e[3])}function Ri(r,e){return r.localeCompare(e,(0,Ki.getLanguage)(),{sensitivity:"base"})}function vv(){return Ki.Platform.isWin?'*"\\/<>:|?':"\\/:"+(Ki.Platform.isAndroidApp?'*?<>"':"")}function xv(){return new RegExp("["+vv().replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")+"]")}function Ku(r,e=!0){return r.trim()===""?(e&&new Ki.Notice(Gu("plugins.file-explorer.msg-empty-file-name")),!1):r.startsWith(".")?(e&&new Ki.Notice(Gu("plugins.file-explorer.msg-bad-dotfile")),!1):xv().test(r)?(e&&new Ki.Notice(Gu("plugins.file-explorer.msg-invalid-characters")+vv().split("").join("\xA0")),!1):!0}function $6(r){return r=r.replace(xv(),""),r.startsWith(".")&&(r=r.slice(1)),r===""&&(r="_"),r}var q_=vl.default.alt(vl.default.regex(new RegExp(M6(),"")),vl.default.regex(/[0-9\p{Letter}_-]+/u).map(r=>r.toLocaleLowerCase()),vl.default.whitespace.map(r=>"-"),vl.default.any.map(r=>"")).many().map(r=>r.join(""));function zt(r){return q_.tryParse(r)}function h8(r,e){r.getAttr("fill")&&r.getAttr("fill")!=="none"&&r.setAttr("fill",e),r.getAttr("stroke")&&r.getAttr("stroke")!=="none"&&r.setAttr("stroke",e);for(let t of Array.from(r.children))t instanceof SVGElement&&h8(t,e)}var ip=class extends _t.Plugin{async onload(){await this.checkDataValidity(),u.plugin=this,u.app=this.app,u.configurationDirectory=(0,_t.normalizePath)(this.manifest.dir+"/configs/"),u.proxysManager=new Vu,await this.loadSettings(),this.addIcons(),this.initializeInvalidKeys(),this.addSettingTab(new W1(this)),u.graphsManager=new zu,u.statesManager=new Xu,this.app.workspace.onLayoutReady(()=>{this.loadGraphsManager(),this.onLayoutChange()}),this.registerEvent(this.app.workspace.on("file-open",async e=>{if(!gv()||!e||e.extension!=="md")return;let t=this.app.workspace.getActiveViewOfType(_t.MarkdownView);!t||t.file!==e||this.onMarkdownViewOpen(t)})),W6(this)}addIcons(){let e=4.166666666666667;(0,_t.addIcon)("git-fork-sparkles",''),(0,_t.getIcon)("squares-unite")||(0,_t.addIcon)("squares-unite",``),(0,_t.getIcon)("squares-subtract")||(0,_t.addIcon)("squares-subtract",``),(0,_t.getIcon)("squares-intersect")||(0,_t.addIcon)("squares-intersect",``),this.createPinIconUrl()}initializeInvalidKeys(){for(let e of Object.keys(u.settings.additionalProperties))ei[e]=[]}loadGraphsManager(){this.addChild(u.graphsManager),u.graphsManager.load()}createPinIconUrl(){let t=getComputedStyle(document.body).getPropertyValue("--color-base-00"),i=u.app.getAccentColor(),s=this.app.vault.getConfig("cssTheme")==="Velocity";s&&((0,_t.getIcon)("pin-safety")||(0,_t.addIcon)("pin-safety",``));let n=s?(0,_t.getIcon)("pin-safety"):(0,_t.getIcon)("pin");if(n){if(s)n.getElementsByTagName("g")[0].setAttribute("stroke",i);else{let a=n.getElementsByTagName("path")[0],l=n.getElementsByTagName("path")[1];l.setAttribute("fill",i),l.setAttribute("stroke",t),a.setAttribute("stroke",i)}let o=new XMLSerializer;u.pinSVGDataUrl=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(o.serializeToString(n))}`}}onunload(){}async checkDataValidity(){let e=(0,_t.normalizePath)((this.manifest.dir??"")+"/data.json");try{await this.app.vault.adapter.exists(e)&&JSON.parse(await this.app.vault.adapter.read(e))}catch(t){let i=`There is an error in the settings file ${e}, the json file can not be parsed. Please, make a copy of your file and report it on the GitHub repo, with the copy attached. Then, you can try to fix the file by hand, or fully delete the content of ${e} and start using the plugin again (but you will lose your settings). I apologize for the inconvenience.`;throw new _t.Notice(i,0),console.warn(i),t}}async loadSettings(){let e=await this.loadData();this.completeDefaultSettings(),e?e=this.migrateSettings(e):e=gi,this.loadSettingsRec(gi,e),u.settings=e}migrateSettings(e){if(!e)return gi;if(typeof e!="object")return gi;for(let t in e)gi.hasOwnProperty(t)||delete e[t];if("additionalProperties"in e&&typeof e.additionalProperties=="object"){for(let t of Object.keys(e.additionalProperties))if(typeof e.additionalProperties[t]=="boolean"){let i=e.additionalProperties[t];e.additionalProperties[t]={graph:i,localgraph:i}}}if("enableFeatures"in e||(e.enableFeatures={graph:{},localgraph:{}}),"linksSameColorAsNode"in e&&(e.enableFeatures.graph.linksSameColorAsNode=e.linksSameColorAsNode,e.enableFeatures.localgraph.linksSameColorAsNode=e.linksSameColorAsNode,delete e.linksSameColorAsNode),"enableFeatures"in e&&("curvedLinks"in e.enableFeatures.graph&&(e.curvedLinks=e.enableFeatures.graph.curvedLinks),delete e.enableFeatures.graph.curvedLinks,delete e.enableFeatures.localgraph.curvedLinks),"source"in e.enableFeatures.graph&&(e.disableSource=e.enableFeatures.graph.source,delete e.enableFeatures.graph.source,delete e.enableFeatures.localgraph.source),"target"in e.enableFeatures.graph&&(e.disableTarget=e.enableFeatures.graph.target,delete e.enableFeatures.graph.target,delete e.enableFeatures.localgraph.target),"collapsedSettings"in e&&"property-key"in e.collapsedSettings&&delete e.collapsedSettings["property-key"],"iconProperty"in e&&("iconProperties"in e||(e.iconProperties=[]),e.iconProperties.contains(e.iconProperty)||e.iconProperties.push(e.iconProperty),delete e.iconProperty),"nodesSizeProperty"in e&&("nodesSizeProperties"in e||(e.nodesSizeProperties=[]),e.nodesSizeProperties.contains(e.nodesSizeProperty)||e.nodesSizeProperties.push(e.nodesSizeProperty),delete e.nodesSizeProperty),"imageProperty"in e&&("imageProperties"in e||(e.imageProperties=[]),e.imageProperties.contains(e.imageProperty)||e.imageProperties.push(e.imageProperty),delete e.imageProperty),"usePropertyForName"in e&&("usePropertiesForName"in e||(e.usePropertiesForName=[]),e.usePropertyForName&&!e.usePropertiesForName.contains(e.usePropertyForName)&&e.usePropertiesForName.push(e.usePropertyForName),delete e.usePropertyForName),"interactiveSettings"in e)if(typeof e.interactiveSettings=="object")for(let t of Object.keys(e.interactiveSettings))(!("excludeRegex"in e.interactiveSettings[t])||typeof e.interactiveSettings[t].excludeRegex!="object")&&(e.interactiveSettings[t].excludeRegex={regex:"",flags:""});else e.interactiveSettings={};if(typeof e.customColorMaps=="object"){for(let t in e.customColorMaps)if(Array.isArray(e.customColorMaps[t].colors))for(let i in e.customColorMaps[t].colors){let s=e.customColorMaps[t].colors[i];Array.isArray(s)&&(s.every(n=>typeof n=="number")?e.customColorMaps[t].colors[i]=Nf(s.map(n=>Math.round(n*255))):e.customColorMaps[t].colors[i]="#000000")}}if("removeNodesWithoutLayers"in e&&(typeof e.removeNodesWithoutLayers=="boolean"&&(e.nodesWithoutLayerOpacity=e.removeNodesWithoutLayers?0:1),delete e.removeNodesWithoutLayers),"states"in e&&Array.isArray(e.states)){let t=e.states.find(i=>i.id===Jr);t.name==="Vault (default)"&&(t.name=V8.name)}return"invertNodeStats"in e&&typeof e.invertNodeStats=="boolean"&&(e.graphStatsDirection=e.invertNodeStats?"reversed":"normal",delete e.invertNodeStats),e}completeDefaultSettings(){gi.interactiveSettings[He]={colormap:"hsv",colors:[],unselected:[],excludeRegex:{regex:"",flags:""},noneType:"none",showOnGraph:!0,enableByDefault:!0},gi.interactiveSettings[ne]={colormap:"rainbow",colors:[],unselected:[],excludeRegex:{regex:"",flags:""},noneType:"none",showOnGraph:!0,enableByDefault:!0},gi.interactiveSettings[pe]={colormap:"winter",colors:[],unselected:[],excludeRegex:{regex:"",flags:""},noneType:"/",showOnGraph:!0,enableByDefault:!1}}loadSettingsRec(e,t){if(!(!e||typeof e!="object"||Array.isArray(e))&&!(!t||typeof t!="object"||Array.isArray(t)))for(let i in e)t.hasOwnProperty(i)?this.loadSettingsRec(e[i],t[i]):t[i]=e[i]}async saveSettings(){await this.saveData(u.settings)}async loadConfigFile(e){e=(0,_t.normalizePath)(e);let t=await this.app.vault.adapter.read(e),i=JSON.parse(t),s=i.stateID;return i=this.migrateSettings(i),delete i.states,delete i.backupGraphOptions,delete i.customColorMaps,delete i.collapseState,delete i.collapseLegend,delete i.resetAfterChanges,delete i.collapsedSettings,delete i.multipleNodesData,this.loadSettingsRec(u.settings,i),s&&(i.stateID=s),i}async importSettings(e){let t=await this.loadConfigFile(e);delete t.stateID,u.settings=t,await this.saveSettings(),this.exportSettings(e,u.settings)}async exportSettings(e,t,i){this.app.vault.adapter.mkdir(u.configurationDirectory),e=(0,_t.normalizePath)(e);let s=structuredClone(t);if(delete s.states,delete s.backupGraphOptions,delete s.customColorMaps,delete s.collapseState,delete s.collapseLegend,delete s.resetAfterChanges,delete s.collapsedSettings,delete s.multipleNodesData,i)s.stateID=i.data.id;else{let o=u.statesManager.getStateFromConfig(e);o&&(s.stateID=o)}let n=JSON.stringify(s,null,2);await this.app.vault.adapter.write(e,n),s.stateID&&u.statesManager.cacheConfig(e)}async onLayoutChange(){if(!this.app.internalPlugins.getPluginById("graph")?._loaded)return;let e=this.getGraphLeaves();u.graphsManager.syncWithLeaves(e),e.forEach(t=>{u.graphsManager.initLeaf(t)})}getGraphLeaves(){let e=[];return e=e.concat(this.app.workspace.getLeavesOfType("graph")),e=e.concat(this.app.workspace.getLeavesOfType("localgraph")),e=e.concat(Sl()?.graphViews.map(t=>t.leaf)||[]),[...new Set(e)]}onMarkdownViewOpen(e){let t=e.contentEl,i={attributes:!0,childList:!0,subtree:!0},s=(o,a)=>{for(let l of o)l.type==="childList"&&l.addedNodes.length>0&&l.addedNodes[0].classList?.contains(Cl())&&this.onLayoutChange()},n=new MutationObserver(s);n.observe(t,i),setTimeout(()=>{n.disconnect()},2e3)}}; +`).map(s=>`
  • /${s}/${i}
  • `).join("")+""}selectInteractive(t,i){t.addClass("is-active"),i.checked=!0,u.settings.interactiveSettings[this.key].unselected.includes(t.innerText)&&(u.settings.interactiveSettings[this.key].unselected.remove(t.innerText),u.plugin.saveSettings())}deselectInteractive(t,i){t.removeClass("is-active"),i.checked=!1,u.settings.interactiveSettings[this.key].unselected.includes(t.innerText)||(u.settings.interactiveSettings[this.key].unselected.push(t.innerText),u.plugin.saveSettings())}onClose(){this.contentEl.empty()}};var I9=require("obsidian");var xu=class extends I9.Modal{constructor(e,t,i){super(u.app),this.setTitle(e),this.modalEl.addClass("graph-modal-new"),this.callback=t,this.name=i,this.scope.register(null,"Enter",s=>{this.callback(this.input.getValue())&&this.close()})}onOpen(){new I9.Setting(this.contentEl).addText(e=>{this.input=e,this.name&&this.input.setValue(this.name)}).addButton(e=>{Je.setupButton(e,this.name?"edit":"add"),e.buttonEl.addEventListener("click",t=>{this.callback(this.input.getValue())&&this.close()})})}onClose(){this.contentEl.empty()}};var $i=require("obsidian");var al=class extends $i.Modal{constructor(t,i,s,n){super(u.app);this.rulesSettings=[];this.combinationLogicButtons={AND:null,OR:null};this.setTitle(t),this.modalEl.addClass("graph-modal-nodes-query"),this.callback=s,this.queryData=i,this.settings=n}onOpen(){this.addCombinationLogic(),this.addRulesHeader(),this.addButtons();for(let t of this.queryData.rules)this.addRule(t);this.onChange()}addCombinationLogic(){new $i.Setting(this.contentEl).setName(m("query.combinationLogic")).addButton(t=>{this.combinationLogicButtons.AND=t,t.setButtonText(m("query.AND")),t.onClick(i=>{this.queryData.combinationLogic="AND",this.combinationLogicButtons.AND?.setCta(),this.combinationLogicButtons.OR?.removeCta()})}).addButton(t=>{this.combinationLogicButtons.OR=t,t.setButtonText(m("query.OR")),t.onClick(i=>{this.queryData.combinationLogic="OR",this.combinationLogicButtons.AND?.removeCta(),this.combinationLogicButtons.OR?.setCta()})}).then(t=>{this.combinationLogicButtons[this.queryData.combinationLogic]?.setCta()})}addRulesHeader(){this.ruleHeader=new $i.Setting(this.contentEl).setName(m("query.rules")).setHeading().addButton(t=>{Je.setupButton(t,"add"),t.onClick(i=>{this.addRule()})})}addRule(t){let i=new q8(this.contentEl,this.settings??u.settings,this.removeRule.bind(this),this.onChange.bind(this),t);(this.rulesSettings.last()?.settingEl??this.ruleHeader.settingEl).insertAdjacentElement("afterend",i.settingEl),this.rulesSettings.push(i)}removeRule(t){this.rulesSettings.remove(t),t.settingEl.remove()}addButtons(){let t=this.modalEl.createDiv({cls:"buttons-container"});new $i.ButtonComponent(t).setButtonText(m("controls.cancel")).onClick(()=>this.close()),this.viewMatchesButton=new $i.ButtonComponent(t).setButtonText(m("query.viewMatches")).onClick(()=>this.viewMatches()),this.applyButton=new $i.ButtonComponent(t).setButtonText(m("controls.save")).setIcon("save").onClick(()=>this.save()).setCta()}onChange(t){let s=this.getMatcher().getMatches(this.settings);this.viewMatchesButton.setButtonText(`${m("query.viewMatches")} (${s.length})`),this.viewMatchesButton.setDisabled(s.length===0)}viewMatches(){new L9(this.queryData).open()}onClose(){this.contentEl.empty()}save(){this.setQueryData(),this.callback(this.queryData),this.close()}setQueryData(){let t=[];for(let i of this.rulesSettings)t.push(i.getRuleQuery());this.queryData.rules=t.map(i=>i.getRecord())}getMatcher(){return this.setQueryData(),new Hr(this.queryData)}},q8=class extends $i.Setting{constructor(e,t,i,s,n){super(e),this.settings=t,this.onRemoveCallback=i,this.setClass("rule-setting"),this.addRemoveButton(),this.addSourceDropdown(),n&&n.source&&this.sourceDropdown.setValue(n.source),this.sourceDropdown.getValue()!=="all"&&(this.addLogicDropdown(),n&&n.logic&&this.logicDropdown?.setValue(n.logic),this.sourceDropdown.getValue()==="property"&&(this.addPropertyDropdown(),n&&n.property&&this.propertyDropdown?.setValue(n.property)),this.addValueText(),n&&n.value&&this.valueText?.setValue(n.value)),this.onChangeCallback=s,this.onChange()}addRemoveButton(){return this.addExtraButton(e=>{Je.setupExtraButton(e,"delete"),e.onClick(()=>{this.onRemoveCallback(this)})})}addSourceDropdown(){return this.addDropdown(e=>{this.sourceDropdown=e,e.addOptions(O8),e.setValue("tag"),e.onChange(t=>{t==="all"?(this.logicDropdown?.selectEl.parentNode?.removeChild(this.logicDropdown.selectEl),this.logicDropdown=null,this.propertyDropdown?.selectEl.parentNode?.removeChild(this.propertyDropdown.selectEl),this.propertyDropdown=null,this.valueText?.containerEl.parentNode?.removeChild(this.valueText.containerEl),this.valueText=null):(!this.propertyDropdown&&t==="property"?this.addPropertyDropdown():t!=="property"&&(this.propertyDropdown?.selectEl.parentNode?.removeChild(this.propertyDropdown.selectEl),this.propertyDropdown=null),this.logicDropdown||this.addLogicDropdown(),this.valueText||this.addValueText()),this.onChange()})})}addPropertyDropdown(){return this.addDropdown(e=>{this.propertyDropdown=e,this.controlEl.insertAfter(e.selectEl,this.sourceDropdown.selectEl);let t=b9(this.settings);e.addOptions(t.sort((i,s)=>Ri(i,s)).reduce((i,s)=>(i[s]=s,i),{})),e.onChange(i=>{this.onChange()})})}addLogicDropdown(){return this.addDropdown(e=>{this.logicDropdown=e,e.addOptions(G8),e.onChange(t=>{t!=="isEmpty"&&t!=="isEmptyNot"?this.valueText||this.addValueText():this.valueText&&(this.valueText.containerEl.parentNode?.removeChild(this.valueText.containerEl),this.valueText=null),this.onChange()})})}addValueText(){return this.addSearch(e=>{this.valueText=e,e.setPlaceholder(m("plugin.valuePlaceholder")),e.inputEl.setAttr("required",!0),this.suggester=new sl(this.valueText.inputEl,this.settings,t=>{this.onChange()}),e.onChange(t=>{this.onChange()})})}onChange(){switch(this.logicDropdown?.getValue()){case"containsRegex":case"containsRegexNot":case"matchesRegex":case"matchesRegexNot":this.suggester?.setKey();break;default:this.suggester?.setKey(this.sourceDropdown.getValue(),this.propertyDropdown?.getValue());break}let t=this.getRuleQuery();this.setValidity(t),this.onChangeCallback(t)}setValidity(e){e.isValid()?this.settingEl.removeClass("query-invalid"):this.settingEl.addClass("query-invalid")}getRuleQuery(){return new Fs({source:this.sourceDropdown.getValue(),property:this.propertyDropdown?.getValue()??"",value:this.valueText?.getValue()??"",logic:this.logicDropdown?.getValue()??""})}};var Su=require("obsidian");var Vd=class extends Su.Modal{constructor(t,i){super(u.app);this.items=[];this.setTitle(m("features.externalLinkOpen")),this.modalEl.addClass("graph-modal-open-external-link");let s={};t.forEach(o=>s[o.basename]=s[o.basename]?s[o.basename]+1:1),this.items=t.map(o=>({file:o,display:s[o.basename]>1?o.path:o.basename}));for(let o of this.items){let a=new Su.ButtonComponent(this.contentEl);a.setButtonText(o.display),a.onClick(()=>{i(o.file)})}let n=new Su.ButtonComponent(this.contentEl);n.setButtonText("Open on web"),n.setCta(),n.onClick(()=>{i(null)})}};var Cu=require("obsidian");var T9=class extends al{constructor(e,t){super(m("features.pinMultipleNodes"),u.settings.multipleNodesData.queryData??{combinationLogic:"AND",rules:[]},i=>{this.pinCallback(this.shapeData,i)},e),this.pinCallback=t,this.shapeData=u.settings.multipleNodesData.shapeData??{type:"grid",center:{x:0,y:0},step:100}}onOpen(){super.onOpen(),this.addShapeType(),this.addStep(),this.addCenter(),this.changeType(this.shapeData.type),this.applyButton.setButtonText(m("controls.apply")).setIcon("check"),this.rulesSettings.length===0&&(this.addRule({source:"all"}),this.onChange())}addShapeType(){new Cu.Setting(this.contentEl).setName(m("features.pinMultipleShape")).addDropdown(e=>{e.addOptions(u5),e.setValue(this.shapeData.type),e.onChange(t=>{this.changeType(t),this.saveSettings()})})}addStep(){new Cu.Setting(this.contentEl).setName(m("features.pinMultipleGap")).addText(e=>{e.setValue(this.shapeData.step.toString()),e.onChange(t=>{let i=parseInt(t);isNaN(i)||(this.shapeData.step=i,this.saveSettings())})})}addCenter(){new Cu.Setting(this.contentEl).setName(m("features.pinMultipleCenter")).addText(e=>{e.inputEl.insertAdjacentText("beforebegin","X"),e.setValue(this.shapeData.center.x.toString()),e.onChange(t=>{let i=parseInt(t);isNaN(i)||(this.shapeData.center.x=i,this.saveSettings())})}).addText(e=>{e.inputEl.insertAdjacentText("beforebegin","Y"),e.setValue(this.shapeData.center.y.toString()),e.onChange(t=>{let i=parseInt(t);isNaN(i)||(this.shapeData.center.y=i,this.saveSettings())})})}addGridSettings(){this.gridSetting||(this.gridSetting=new Cu.Setting(this.contentEl).setName(m("features.pinMultipleGridSize")).setDesc(m("features.pinMultipleGridSizeDesc")).addText(e=>{e.setValue(this.shapeData.columns?.toString()??""),e.onChange(t=>{if(t==="")this.shapeData.columns=void 0,this.saveSettings();else if(t==="N"||t==="auto")this.shapeData.columns=t,this.saveSettings();else{let i=parseInt(t);!isNaN(i)&&i>=1&&(this.shapeData.columns=i,this.saveSettings())}})}))}removeGridSettings(){this.gridSetting&&(this.gridSetting.settingEl.parentNode?.removeChild(this.gridSetting.settingEl),this.gridSetting=null)}changeType(e){this.shapeData.type=e,this.shapeData.type==="grid"?this.addGridSettings():this.removeGridSettings(),this.saveSettings()}onChange(e){super.onChange(e),this.saveSettings()}saveSettings(){u.settings.multipleNodesData={shapeData:this.shapeData,queryData:this.queryData},u.plugin.saveSettings()}};var bo=require("obsidian");var L9=class extends bo.Modal{constructor(e){super(u.app),this.matcher=new Hr(e);let t=this.matcher.getMatches();this.setTitle(m("query.matchingFiles")),this.addQueryStringHeader(),this.addQueryString(),this.addFilesHeader(t.length);for(let i of t)this.addFile(i)}addQueryStringHeader(){new bo.Setting(this.contentEl).setName(m("query.query")).setHeading()}addQueryString(){new bo.Setting(this.contentEl).setName(this.matcher.toString())}addFilesHeader(e){new bo.Setting(this.contentEl).setName(`${m("query.files")} (${e})`).setHeading()}addFile(e){new bo.Setting(this.contentEl).setName(e.path)}};var d9=class extends al{constructor(e,t,i){super(m("query.setShapeQueryFor")+": "+m(`features.shapesNames.${e}`),t,s=>{this.saveShapeQueryCallback(this.shape,s)}),this.saveShapeQueryCallback=i,this.shape=e}onOpen(){this.addShapeIcon(),super.onOpen()}addShapeIcon(){let e=We.getSVG(this.shape);e.addClass("shape-svg"),this.titleEl.insertAdjacentElement("afterbegin",e)}};var nr=require("obsidian");var Bs=class extends nr.Modal{constructor(t){super(u.app);this.sortableTables={};this.defaultMaxRows=10;this.instances=t,this.state=new Rs(""),this.state.saveGraph(t),this.setTitle(m("states.graphState")),this.modalEl.addClass("graph-modal-graph-state")}setTarget(t,i){this.target={tableID:t,elementID:i}}open(){super.open(),this.modalEl.querySelectorAll("input").forEach(t=>t.blur())}onOpen(){this.addNodes(),this.addLinks(),this.addPinnedNodes(),this.focusOnTarget()}addNodes(){let t=this.instances.nodesSet.extendedElementsMap.size>0,i=Object.keys(this.instances.nodesSet.selectedNodes).length>0;this.createHeading(m("plugin.nodes"),"nodes",t);let s=this.contentEl.createEl("table"),n=s.createEl("colgroup"),a=s.createTHead().insertRow(),l;l=a.insertCell(),l.setText(m("plugin.folder")),n.createEl("col").addClass("col-folder"),l=a.insertCell(),l.setText(m("plugin.nodeName")),n.createEl("col").addClass("col-filename"),l=a.insertCell(),l.setText(m("controls.enabled")),n.createEl("col").addClass("col-enabled"),i&&(l=a.insertCell(),l.setText(m("inputs.selected")),n.createEl("col").addClass("col-selected"));for(let[d,p]of this.instances.nodesSet.managers)l=a.insertCell(),l.setText(d),n.createEl("col").addClass("col-key-"+d);if(this.instances.settings.enableFeatures[this.instances.type].shapes&&(l=a.insertCell(),l.setText(m("features.shape")),n.createEl("col").addClass("col-shape")),this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&(l=a.insertCell(),l.setText(m("features.size")),n.createEl("col").addClass("col-size")),!t)return;let c=s.createTBody(),h=[];for(let[d,p]of this.instances.nodesSet.extendedElementsMap){let g=this.getNodeData(d),v=c.insertRow();h.push(d);let C;C=v.insertCell(),C.setText(g.path),C=v.insertCell(),g.link?C.appendChild(g.link):C.setText(d),C=v.insertCell(),p.isAnyManagerDisabled()||C.setText("\u2713"),i&&(C=v.insertCell(),d in this.instances.nodesSet.selectedNodes&&C.setText("\u2713"));for(let[w,k]of this.instances.nodesSet.managers){C=v.insertCell(),C.addClass("column-interactives");let B=p.types.get(w);if(B)for(let L of B){let T=C.createEl("span");T.addClass("tag"),k.isActive(L)||T.addClass("is-disabled"),T.style.setProperty("--interactive-color",$e.getCSSSplitRGB(k.getColor(L))),T.setText(L)}}this.instances.settings.enableFeatures[this.instances.type].shapes&&p.graphicsWrapper&&(C=v.insertCell(),C.createDiv().appendChild(We.getSVG(p.graphicsWrapper.shape)).addClass("shape-svg")),this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&(C=v.insertCell(),C.setText(p.getSizeWithoutScaling().toFixed(2)))}this.prepareTable("nodes",s,h)}addLinks(){let t=this.instances.linksSet.extendedElementsMap.size>0;this.createHeading("Links","links",t);let i=this.contentEl.createEl("table"),s=i.createEl("colgroup"),o=i.createTHead().insertRow(),a;a=o.insertCell(),a.setText(`${m("plugin.folder")} (${m("plugin.source")})`),s.createEl("col").addClasses(["col-folder","col-folder-source"]),a=o.insertCell(),a.setText(`${m("plugin.nodeName")} (${m("plugin.source")})`),s.createEl("col").addClasses(["col-filename","col-filename-source"]),a=o.insertCell(),a.setText(`${m("plugin.folder")} (${m("plugin.target")})`),s.createEl("col").addClasses(["col-folder","col-folder-target"]),a=o.insertCell(),a.setText(`${m("plugin.nodeName")} (${m("plugin.target")})`),s.createEl("col").addClasses(["col-filename","col-filename-target"]),a=o.insertCell(),a.setText(m("controls.enabled")),s.createEl("col").addClass("col-enabled");for(let[h,d]of this.instances.linksSet.managers)a=o.insertCell(),a.setText(h),s.createEl("col").addClass("col-key-"+h);if(this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&(a=o.insertCell(),a.setText(m("features.size")),s.createEl("col").addClass("col-size")),!t)return;let l=i.createTBody(),c=[];for(let[h,d]of this.instances.linksSet.extendedElementsMap){let p=this.getNodeData(d.coreElement.source.id),g=this.getNodeData(d.coreElement.target.id),v=l.insertRow();c.push(h);let C;C=v.insertCell(),C.setText(p.path),C=v.insertCell(),p.link?C.appendChild(p.link):C.setText(d.coreElement.source.id),C=v.insertCell(),C.setText(g.path),C=v.insertCell(),g.link?C.appendChild(g.link):C.setText(d.coreElement.target.id),C=v.insertCell(),d.isAnyManagerDisabled()||C.setText("\u2713");for(let[w,k]of this.instances.linksSet.managers){C=v.insertCell(),C.addClass("column-interactives");let B=d.types.get(w);if(B)for(let L of B){let T=C.createEl("span");T.addClass("tag"),k.isActive(L)||T.addClass("is-disabled"),T.style.setProperty("--interactive-color",$e.getCSSSplitRGB(k.getColor(L))),T.setText(L)}}this.instances.settings.enableFeatures[this.instances.type]["elements-stats"]&&(C=v.insertCell(),C.setText(d.getThicknessScale().toFixed(2)))}this.prepareTable("links",i,c)}addPinnedNodes(){let t=this.state.data.pinNodes&&Object.entries(this.state.data.pinNodes).length>0;this.createHeading(m("features.pinnedNodes"),"pinned",t);let i=this.contentEl.createEl("table"),s=i.createEl("colgroup"),o=i.createTHead().insertRow(),a;if(a=o.insertCell(),a.setText(m("plugin.folder")),s.createEl("col").addClass("col-folder"),a=o.insertCell(),a.setText(m("plugin.nodeName")),s.createEl("col").addClass("col-filename"),a=o.insertCell(),a.setText("X"),s.createEl("col").addClass("col-pos-x"),a=o.insertCell(),a.setText("Y"),s.createEl("col").addClass("col-pos-y"),!this.state.data.pinNodes||!t)return;let l=i.createTBody(),c=[];for(let[h,d]of Object.entries(this.state.data.pinNodes)){let p=this.getNodeData(h),g=l.insertRow();c.push(h);let v;v=g.insertCell(),v.setText(p.path),v=g.insertCell(),p.link?v.appendChild(p.link):v.setText(h),v=g.insertCell(),v.setText(d.x.toFixed(2)),v=g.insertCell(),v.setText(d.y.toFixed(2))}this.prepareTable("pinned",i,c)}createHeading(t,i,s){let n=new nr.Setting(this.contentEl).setName(t).setHeading();if(s){if(n.addText(o=>{o.inputEl.insertAdjacentText("beforebegin",m("controls.show")),o.setValue(this.defaultMaxRows.toString()).onChange(a=>{let l=this.sortableTables[i];if(!l)return;let c=parseInt(a);if(!isNaN(c)&&c>0){let h=l.maxRows/c;l.maxRows=c,l.page=Math.round(l.page*h),l.page=Math.clamp(l.page,0,this.numberOfPages(i)),this.mountPagination(i),this.showPageRows(i)}}),o.inputEl.insertAdjacentText("afterend",m("controls.rows"))}),i==="nodes"||i==="pinned"){let o=new nr.SearchComponent(n.settingEl).then(a=>{let l=c=>{this.setTarget(i,c),this.focusOnTarget()};new v9(a.inputEl,this.instances,i,l),a.onChange(l)});n.infoEl.insertAdjacentElement("afterend",o.containerEl)}n.controlEl.addClass("number-of-rows")}}getNodeData(t){let i=qe(t),s=this.getPath(i),n=this.getLink(i);return{file:i??void 0,path:s,link:n}}getPath(t){let i="";return t&&(i=t.parent?.path??""),i}getLink(t){if(t){let i=createEl("a");i.setText(t.basename),i.onclick=o=>{this.close(),this.app.workspace.getLeaf(!0).openFile(t)};let s=createEl("code");s.setText(t.extension);let n=createEl("span");return n.appendChild(i),n.insertAdjacentText("beforeend"," "),n.appendChild(s),n}}prepareTable(t,i,s,n=1){i.tHead&&(this.sortableTables[t]={table:i,rows:Array.from(i.tBodies[0].rows).map((o,a)=>({id:s[a],el:o})),sortIndex:n,asc:Array.from(i.tHead.rows[0].cells).map(o=>{}),page:0,pagination:createDiv(),maxRows:this.defaultMaxRows},i.insertAdjacentElement("afterend",this.sortableTables[t].pagination),this.sortableTables[t].pagination.addClass("pagination"),this.mountPagination(t),this.makeSortable(t))}mountPagination(t){let i=this.sortableTables[t];if(!i)return;let s=i.pagination;if(s.replaceChildren(),i.rows.length{this.showFirstPage(t)});let o=s.createDiv("pagination-inner");i.page>n&&o.createSpan().setText("...");for(let a=Math.max(0,i.page-n);a{this.showPreviousPage(t,i.page-a)});new nr.ButtonComponent(o).setButtonText(i.page.toString()).setCta().setTooltip(m("controls.pageCurrent"));for(let a=i.page+1;a{this.showNextPage(t,a-i.page)});i.page{this.showLastPage(t)})}makeSortable(t){let i=this.sortableTables[t],s=this.sortableTables[t]?.table;if(!i||!s?.tHead)return;let n=0;Array.from(s.tHead.rows[0].cells).forEach(o=>{new nr.ExtraButtonComponent(o).setIcon("chevron-down").onClick(()=>{s.tHead&&(i.sortIndex=Array.from(s.tHead.rows[0].cells).indexOf(o),this.sortTable(t))}),n++}),this.sortTable(t)}sortTable(t){let i=this.sortableTables[t];if(!i)return;let s=!i.asc[i.sortIndex];i.asc[i.sortIndex]=s,i.rows.sort((n,o)=>{let a=n.el.cells[i.sortIndex].textContent??"",l=o.el.cells[i.sortIndex].textContent??"";return Ri(a,l)}),s||i.rows.reverse(),this.showPageRows(t);for(let n=0,o=i.asc.length;n=this.numberOfPages(t)?this.showLastPage(t):this.showPageRows(t))}showLastPage(t){let i=this.sortableTables[t];i&&(i.page=this.numberOfPages(t)-1,this.showPageRows(t))}numberOfPages(t){let i=this.sortableTables[t];return i?Math.ceil(i.rows.length/i.maxRows):0}focusOnTarget(){if(!this.target)return;let t=this.sortableTables[this.target.tableID];if(!t)return;let i=t.rows.findIndex(n=>n.id===this.target?.elementID);if(i===-1)return;t.page=Math.floor(i/t.maxRows),this.showPageRows(this.target.tableID);let s=t.rows[i].el;s.addClass("is-flashing"),s.win.setTimeout(function(){return s.removeClass("is-flashing")},1500)}onClose(){this.contentEl.empty()}};function r5(r,e){let t=0;for(let i=1;i{r.alpha<(r.maxAlpha??1)?(r.alpha+=.04,requestAnimationFrame(t)):(r.hasFaded=!0,e&&e())};r.alpha=0,r.hasFaded=!1,requestAnimationFrame(t)}function Rc(r,e){return r.children.contains(e)?r.getChildIndex(e):e.parent?Rc(r,e.parent):0}function ze(r,...e){return(u.proxysManager.getTargetForProxy(r)??r).addChild(...e.map(t=>u.proxysManager.getTargetForProxy(t)??t))}function Jt(r,e,t){return(u.proxysManager.getTargetForProxy(r)??r).addChildAt(u.proxysManager.getTargetForProxy(e)??e,t)}function Qe(r,e){let t=document.createElementNS("http://www.w3.org/2000/svg",r);for(let i in e)t.setAttributeNS(null,i.replace(/[A-Z]/g,function(s,n,o,a){return"-"+s.toLowerCase()}),e[i]);return t}function H8(r,e,t,i){return{x:r+t*Math.cos(i),y:e+t*Math.sin(i)}}function dn(r,e,t,i){let s=(1-r)*((1-r)*e.x+r*t.x),n=(1-r)*((1-r)*e.y+r*t.y),o=r*((1-r)*t.x+r*i.x),a=r*((1-r)*t.y+r*i.y),l=s+o,c=n+a;return{x:l,y:c}}function l1(r,e,t,i){let s={x:(1-r)*e.x+r*t.x,y:(1-r)*e.y+r*t.y},n={x:(1-r)*t.x+r*i.x,y:(1-r)*t.y+r*i.y},o=(n.y-s.y)/(n.x-s.x);return{m:o,c:s.y-o*s.x}}function l5(r,e,t,i){let s=e.x-t.x-t.x+i.x,n=e.y-t.y-t.y+i.y,o=t.x+t.x-e.x-e.x,a=t.y+t.y-e.y-e.y,l=4*(s*s+n*n),c=4*(s*o+n*a),h=o*o+a*a,d=c/(2*l),p=h/l,g=r+d,v=p-d*d,C=Math.sqrt(d*d+v),w=Math.sqrt(g*g+v);return .5*Math.sqrt(l)*(g*w-d*C+v*Math.log(Math.abs((g+w)/(d+C))))}function za(r,e,t){let i=t.x-e.x,s=t.y-e.y;return Math.sqrt(i*i+s*s)*r}var Sn=require("obsidian");var $a=class r{static async getImageUriFromProperty(e,t){let i=u.app.metadataCache.getCache(t);if(!i)return null;let s=i.frontmatter;if(!s)return null;let n=s[e];if(typeof n=="string"){let o=await r.getImageUriFromLink(Y8(n));if(o)return o}else if(Array.isArray(n)){for(let o of n)if(typeof o=="string"){let a=await r.getImageUriFromLink(Y8(o));if(a)return a}}return null}static async getImageUriFromEmbeds(e){let t=u.app.metadataCache.getCache(e);if(!t)return null;let i=t.embeds?.map(s=>s.link)??[];if(i.length===0){let s=qe(e);if(!s)return null;let n=await u.app.vault.cachedRead(s),o=createDiv();await Sn.MarkdownRenderer.render(u.app,n,o,e,u.plugin);let a=Array.from(o.querySelectorAll("img")).map(c=>c.src),l=Array.from(o.querySelectorAll("video")).map(c=>c.src);i=i.concat(a.concat(l))}for(let s of i){let n=await r.getImageUriFromLink(s);if(n)return n}return null}static async getImageUriForAttachment(e){let t=qe(e);return t?r.getStaticImageUri(u.app.vault.getResourcePath(t)):null}static async getImageUriFromLink(e){let t=u.app.metadataCache.getFirstLinkpathDest(e,".");if(t){let i=u.app.vault.getResourcePath(t);return r.getStaticImageUri(i)}if(u.settings.allowExternalImages)try{let i=new URL(e);if(i.protocol==="http:"||i.protocol==="https:"){let s=await(0,Sn.requestUrl)(e),n=s.headers["content-type"];return["image/avif","image/webp","image/png","image/svg+xml","image/jpeg"].includes(n)?"data:"+n+";base64,"+(0,Sn.arrayBufferToBase64)(s.arrayBuffer):null}}catch{return null}if(u.settings.allowExternalLocalImages)try{let i=new URL(e);if(i.protocol==="file:")return e.startsWith("file:///")&&(e=e.replace("file:///","")),e=Sn.Platform.resourcePathPrefix+e,r.getStaticImageUri(e);if(i.protocol==="app:")return r.getStaticImageUri(e)}catch{return null}return null}static async getStaticImageUri(e){let t=await r.getMediaType(e);return t?["image/avif","image/webp","image/png","image/svg+xml","image/jpeg"].includes(t)?e:["image/gif"].includes(t)?r.getUriForGif(e):["video/mp4","video/webm","video/ogg","video/quicktime","video/x-matroska"].includes(t)?r.getUriForVideo(e):null:null}static async getUriForGif(e){let t=createEl("canvas"),i=t.getContext("2d");if(i){let s,n=new Image;n.onload=()=>{t.width=n.width,t.height=n.height,i.drawImage(n,0,0),s=t.toDataURL()},n.src=e;let o=0;return await(async()=>{for(;s===void 0&&o<5;)o+=1,await new Promise(a=>setTimeout(a,100))})(),s??null}return null}static async getUriForVideo(e){let t=createEl("canvas"),i=t.getContext("2d");if(i){let s,n=createEl("video");n.src=e,n.addEventListener("seeked",function(){i.drawImage(n,0,0,t.width,t.height),s=t.toDataURL()}),n.onloadedmetadata=function(){n.duration&&(n.currentTime=n.duration/2)};let o=0;return await(async()=>{for(;s===void 0&&o<5;)o+=1,await new Promise(a=>setTimeout(a,100))})(),s??null}return null}static async getMediaType(e){let t,i=new XMLHttpRequest;i.open("HEAD",e,!1),i.onload=function(){t=i.getResponseHeader("Content-Type")},i.onerror=function(n){console.warn(n),t=null},i.onreadystatechange=function(){i.status===401&&console.warn(m("errors.uri401"))};try{i.send()}catch(n){console.warn(n),t=null}let s=0;return await(async()=>{for(;t===void 0&&s<5;)s+=1,await new Promise(n=>setTimeout(n,100))})(),t??null}};function fi(r,e){if(!r)return{path:r,basename:"",ext:""};r=r.replace(/\/+$/,"");let t=Math.max(r.lastIndexOf("/"),r.lastIndexOf("\\")),i=t===-1?r:r.substring(t+1);if(e){if(!i.contains(e))throw new Error(`The path "${r}" is not of extension "${e}".`)}else{let n=i.lastIndexOf(".");e=n===-1?"":i.substring(n)}!e.startsWith(".")&&e&&(e="."+e);let s;if(e.length>1){let n=i.lastIndexOf(e);s=n===-1?i:i.substring(0,n)}else s=i;return{path:r,basename:s,ext:e}}var dv=require("obsidian"),pv=St(hv());function U_(){return u.app.plugins.getPlugin("iconic")}function s5(r){let e=U_();if(!e||!e.hasOwnProperty("ruleManager")||typeof e.ruleManager.checkRuling!="function"||typeof e.getFileItem!="function")return null;let t=u.app.vault.getFolderByPath(r)?"folder":"file",i=e.ruleManager.checkRuling(t,r)??e.getFileItem(r);if(i.icon?.startsWith("lucide-")){let s=(0,dv.getIcon)(i.icon);if(s){let n=getComputedStyle(document.body),o=null;return i.hasOwnProperty("color")&&(o=n.getPropertyValue(`--color-${i.color}`)||null),{svg:s,color:o,emoji:null}}}else if(i.icon&&Bc(i.icon))return{svg:null,color:null,emoji:i.icon};return null}function n5(r){let e=u.app.plugins.getPlugin("obsidian-icon-folder");if(!e||!e.hasOwnProperty("api")||!e.api.hasOwnProperty("getIconByName")||!e.hasOwnProperty("data")||!(r in e.data))return null;let t=e.data[r],i,s=null;if(typeof t=="string"?i=t:(i=t.iconName,s=t.iconColor),!i)return null;let n=e.api.getIconByName(i);if(n){let o=n.svgElement;return{svg:new DOMParser().parseFromString(o,"text/html").querySelector("svg"),color:s,emoji:null}}return typeof i=="string"&&i!==""&&Bc(i)?{svg:null,color:null,emoji:i}:null}function fv(){return this.app.plugins.getPlugin("graph-banner")?._loaded}function Cl(){return"graph-banner-content"}function ap(r){return r.contentEl.classList.contains(Cl())}function Sl(){return u.app.plugins.getPlugin("graph-banner")}function N0(r){return r?void 0:(0,pv.getAPI)(u.app)}function gv(r,e){let t=[];for(let[i,s]of Object.entries(e))i!=="file"&&(s==null||s===""||!r&&i===zt(i)&&Object.keys(e).some(n=>zt(n)===zt(i)&&n!==i)||t.push(r?zt(i):i));return t}function y0(){let r=u.app.plugins.getPlugin("nlp");if(r)return r?.settings?.refreshDocsOnLoad?r:void 0}var vl=St(mv());var L6=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;var Ki=require("obsidian");function o5(r){return/^\d+(\.\d+)?$/.test(r)}function rl(r){return r.contains(":")?(new Ki.Notice(m("notices.invalidCharacter")+" ':'"),!1):r.length>0}function Y8(r){return r.replace("[[","").replace("]]","")}function o9(r){return r.replaceAll(" ","-").replaceAll(/[~!@$%^&*()+=,.\\\/';:"?><[\]{}|`#]/g,"")}function a5(r){return r.split("/").reduce((e,t,i)=>{if(t==="")return e;let s=e.last();return s&&s!==""?e.push(s+"/"+t):e.push(t),e},[])}function Bc(r){return L6().test(r)}function yv(){return/(\/)(.+)\1([a-z]*)/i}function Mm(r){return yv().test(r)}function Jf(r){let e=r.match(yv());return e===null?null:new RegExp(e[2],e[3])}function Ri(r,e){return r.localeCompare(e,(0,Ki.getLanguage)(),{sensitivity:"base"})}function vv(){return Ki.Platform.isWin?'*"\\/<>:|?':"\\/:"+(Ki.Platform.isAndroidApp?'*?<>"':"")}function xv(){return new RegExp("["+vv().replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")+"]")}function Ku(r,e=!0){return r.trim()===""?(e&&new Ki.Notice(Gu("plugins.file-explorer.msg-empty-file-name")),!1):r.startsWith(".")?(e&&new Ki.Notice(Gu("plugins.file-explorer.msg-bad-dotfile")),!1):xv().test(r)?(e&&new Ki.Notice(Gu("plugins.file-explorer.msg-invalid-characters")+vv().split("").join("\xA0")),!1):!0}function $6(r){return r=r.replace(xv(),""),r.startsWith(".")&&(r=r.slice(1)),r===""&&(r="_"),r}var V_=vl.default.alt(vl.default.regex(new RegExp(L6(),"")),vl.default.regex(/[0-9\p{Letter}_-]+/u).map(r=>r.toLocaleLowerCase()),vl.default.whitespace.map(r=>"-"),vl.default.any.map(r=>"")).many().map(r=>r.join(""));function zt(r){return V_.tryParse(r)}function u8(r,e){r.getAttr("fill")&&r.getAttr("fill")!=="none"&&r.setAttr("fill",e),r.getAttr("stroke")&&r.getAttr("stroke")!=="none"&&r.setAttr("stroke",e);for(let t of Array.from(r.children))t instanceof SVGElement&&u8(t,e)}var rp=require("obsidian");function qe(r){return u.app.vault.getFileByPath(r)}function ct(r,e,t){if(u.app.metadataCache.isUserIgnored(e.path))return new Set;if(e.extension!=="md"||e.deleted)return new Set;let i;switch(r){case He:i=z_(e);break;case pe:i=$_(e);break;default:i=H_(t??u.settings,r,e);break}return new Set([...i].filter(s=>!Xe.excludeType(t??u.settings,r,s)))}function c5(r,e,t,i){if(e.extension!=="md"||e.deleted)return 0;switch(r){case He:return W_(e,t);case pe:return 1;default:return j_(r,e,t,i)}}function z_(r){let e=u.app.metadataCache.getCache(r.path);if(!e)return new Set;let t=(0,rp.getAllTags)(e)?.map(i=>i.replace("#",""));return t?new Set(t.sort()):new Set}function W_(r,e){let t=u.app.metadataCache.getCache(r.path);if(!t)return 0;let i="#"+e.replace("#",""),s=t.frontmatter?.tags?.filter(o=>o===e||o===i)||[],n=t.tags?.reduce((o,a)=>((a.tag===e||a.tag===i)&&o.push(a.tag),o),[])||[];return s.length+n.length}function tp(r,e){if(r){if(typeof r=="string")if(r.startsWith("[[")&&r.endsWith("]]")){let t=(0,rp.getLinkpath)(r.slice(2,r.length-2)),i=t.indexOf("|"),s=i>=0?t.slice(0,i):t;e.add(fi(s).basename)}else e.add(r);else if(typeof r=="number")e.add(String(r));else if(typeof r=="boolean")e.add(String(r));else if(typeof r=="object"&&"path"in r)e.add(fi(r.path).basename);else if(Array.isArray(r))for(let t of r)tp(t,e)}}function H_(r,e,t){let i=N0(r.ignoreInlineLinks),s=new Set;if(i){let n=i.page(t.path);if(n)if(r.canonicalizePropertiesWithDataview){let a=Object.keys(n).filter(l=>zt(l)===zt(e)).reduce((l,c)=>n[c]===null||n[c]===void 0||n[c]===""?l:l.concat([n[c]]),[]);if(a.length===0)return new Set;tp(a,s)}else{let o=n[e];if(o==null||o==="")return new Set;tp(o,s)}}else{let n=u.app.metadataCache.getFileCache(t)?.frontmatter;if(n?.hasOwnProperty(e)){let o=n[e];tp(o,s)}}return s}function M6(r,e){if(typeof r=="string"||typeof r=="number"){if(e===String(r))return 1}else if(r&&typeof r=="object"&&"path"in r){let t=qe(r.path);if(t&&u.app.metadataCache.fileToLinktext(t,r.path,!0)===e)return 1;if(!t&&r.path===e)return 1}else if(Array.isArray(r)){let t=0;for(let i of r)t+=M6(i,e);return t}return 0}function j_(r,e,t,i){let s=N0(i);if(s){let o=s.page(e.path);if(o){let a=o[r];return a==null||a===""?0:M6(a,t)}}let n=u.app.metadataCache.getFileCache(e)?.frontmatter;if(n?.hasOwnProperty(r)){let o=n[r];return M6(o,t)}return 1}function b9(r){let e=N0(r.ignoreInlineLinks);return e?e.pages().values.reduce((t,i)=>t.concat(gv(r.canonicalizePropertiesWithDataview,i)),[]):Object.keys(u.app.metadataCache.getAllPropertyInfos())}function $_(r){let e=new Set;return r.parent&&e.add(r.parent.path),e}function Lo(r,e){if(e.extension!=="md"||e.deleted)return new Map;let t=N0(r.ignoreInlineLinks);return t?q_(r,t,e):Dv(e)}function q_(r,e,t){let i=new Map,s=e.page(t.path);if(!s)return Dv(t);for(let[n,o]of Object.entries(s))if(!(n==="file"||r.imageProperties.contains(n))&&!(o==null||o==="")&&!(!r.canonicalizePropertiesWithDataview&&n===zt(n)&&Object.keys(s).some(a=>zt(a)===zt(n)&&a!==n))){if(o&&typeof o=="object"&&"path"in o){let a=o.path,l=i.get(a);l||(l=new Set,i.set(a,l)),l.add(r.canonicalizePropertiesWithDataview?zt(n):n)}else if(Array.isArray(o)){for(let a of o)if(a&&typeof a=="object"&&"path"in a){let l=a.path,c=i.get(l);c||(c=new Set,i.set(l,c)),c.add(r.canonicalizePropertiesWithDataview?zt(n):n)}}}return i}function Dv(r){let e=new Map,t=u.app.metadataCache.getFileCache(r)?.frontmatterLinks;if(t&&t.length>0)for(let i of t){let s=i.key.split(".")[0],n=u.app.metadataCache.getFirstLinkpathDest(i.link,".")?.path;n&&(e.has(n)||e.set(n,new Set),e.get(n)?.add(s))}return e}function j6(r){if(r.extension!=="md"||r.deleted)return[];let e=u.app.metadataCache.getFileCache(r),t=[];if(e){if(e.links)for(let i=0;i{this.loadGraphsManager(),this.onLayoutChange()}),this.registerEvent(this.app.workspace.on("file-open",async e=>{if(!fv()||!e||e.extension!=="md")return;let t=this.app.workspace.getActiveViewOfType(_t.MarkdownView);!t||t.file!==e||this.onMarkdownViewOpen(t)})),W6(this)}addIcons(){let e=4.166666666666667;(0,_t.addIcon)("git-fork-sparkles",''),(0,_t.getIcon)("squares-unite")||(0,_t.addIcon)("squares-unite",``),(0,_t.getIcon)("squares-subtract")||(0,_t.addIcon)("squares-subtract",``),(0,_t.getIcon)("squares-intersect")||(0,_t.addIcon)("squares-intersect",``),this.createPinIconUrl()}initializeInvalidKeys(){for(let e of Object.keys(u.settings.additionalProperties))ei[e]=[]}loadGraphsManager(){this.addChild(u.graphsManager),u.graphsManager.load()}createPinIconUrl(){let t=getComputedStyle(document.body).getPropertyValue("--color-base-00"),i=u.app.getAccentColor(),s=this.app.vault.getConfig("cssTheme")==="Velocity";s&&((0,_t.getIcon)("pin-safety")||(0,_t.addIcon)("pin-safety",``));let n=s?(0,_t.getIcon)("pin-safety"):(0,_t.getIcon)("pin");if(n){if(s)n.getElementsByTagName("g")[0].setAttribute("stroke",i);else{let a=n.getElementsByTagName("path")[0],l=n.getElementsByTagName("path")[1];l.setAttribute("fill",i),l.setAttribute("stroke",t),a.setAttribute("stroke",i)}let o=new XMLSerializer;u.pinSVGDataUrl=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(o.serializeToString(n))}`}}onunload(){}async checkDataValidity(){let e=(0,_t.normalizePath)((this.manifest.dir??"")+"/data.json");try{await this.app.vault.adapter.exists(e)&&JSON.parse(await this.app.vault.adapter.read(e))}catch(t){let i=`There is an error in the settings file ${e}, the json file can not be parsed. Please, make a copy of your file and report it on the GitHub repo, with the copy attached. Then, you can try to fix the file by hand, or fully delete the content of ${e} and start using the plugin again (but you will lose your settings). I apologize for the inconvenience.`;throw new _t.Notice(i,0),console.warn(i),t}}async loadSettings(){let e=await this.loadData();this.completeDefaultSettings(),e?e=this.migrateSettings(e):e=gi,this.loadSettingsRec(gi,e),u.settings=e}migrateSettings(e){if(!e)return gi;if(typeof e!="object")return gi;for(let t in e)gi.hasOwnProperty(t)||delete e[t];if("additionalProperties"in e&&typeof e.additionalProperties=="object"){for(let t of Object.keys(e.additionalProperties))if(typeof e.additionalProperties[t]=="boolean"){let i=e.additionalProperties[t];e.additionalProperties[t]={graph:i,localgraph:i}}}if("enableFeatures"in e||(e.enableFeatures={graph:{},localgraph:{}}),"linksSameColorAsNode"in e&&(e.enableFeatures.graph.linksSameColorAsNode=e.linksSameColorAsNode,e.enableFeatures.localgraph.linksSameColorAsNode=e.linksSameColorAsNode,delete e.linksSameColorAsNode),"enableFeatures"in e&&("curvedLinks"in e.enableFeatures.graph&&(e.curvedLinks=e.enableFeatures.graph.curvedLinks),delete e.enableFeatures.graph.curvedLinks,delete e.enableFeatures.localgraph.curvedLinks),"source"in e.enableFeatures.graph&&(e.disableSource=e.enableFeatures.graph.source,delete e.enableFeatures.graph.source,delete e.enableFeatures.localgraph.source),"target"in e.enableFeatures.graph&&(e.disableTarget=e.enableFeatures.graph.target,delete e.enableFeatures.graph.target,delete e.enableFeatures.localgraph.target),"collapsedSettings"in e&&"property-key"in e.collapsedSettings&&delete e.collapsedSettings["property-key"],"iconProperty"in e&&("iconProperties"in e||(e.iconProperties=[]),e.iconProperties.contains(e.iconProperty)||e.iconProperties.push(e.iconProperty),delete e.iconProperty),"nodesSizeProperty"in e&&("nodesSizeProperties"in e||(e.nodesSizeProperties=[]),e.nodesSizeProperties.contains(e.nodesSizeProperty)||e.nodesSizeProperties.push(e.nodesSizeProperty),delete e.nodesSizeProperty),"imageProperty"in e&&("imageProperties"in e||(e.imageProperties=[]),e.imageProperties.contains(e.imageProperty)||e.imageProperties.push(e.imageProperty),delete e.imageProperty),"usePropertyForName"in e&&("usePropertiesForName"in e||(e.usePropertiesForName=[]),e.usePropertyForName&&!e.usePropertiesForName.contains(e.usePropertyForName)&&e.usePropertiesForName.push(e.usePropertyForName),delete e.usePropertyForName),"interactiveSettings"in e)if(typeof e.interactiveSettings=="object")for(let t of Object.keys(e.interactiveSettings))(!("excludeRegex"in e.interactiveSettings[t])||typeof e.interactiveSettings[t].excludeRegex!="object")&&(e.interactiveSettings[t].excludeRegex={regex:"",flags:""});else e.interactiveSettings={};if(typeof e.customColorMaps=="object"){for(let t in e.customColorMaps)if(Array.isArray(e.customColorMaps[t].colors))for(let i in e.customColorMaps[t].colors){let s=e.customColorMaps[t].colors[i];Array.isArray(s)&&(s.every(n=>typeof n=="number")?e.customColorMaps[t].colors[i]=Nf(s.map(n=>Math.round(n*255))):e.customColorMaps[t].colors[i]="#000000")}}if("removeNodesWithoutLayers"in e&&(typeof e.removeNodesWithoutLayers=="boolean"&&(e.nodesWithoutLayerOpacity=e.removeNodesWithoutLayers?0:1),delete e.removeNodesWithoutLayers),"states"in e&&Array.isArray(e.states)){let t=e.states.find(i=>i.id===Jr);t.name==="Vault (default)"&&(t.name=U8.name)}return"invertNodeStats"in e&&typeof e.invertNodeStats=="boolean"&&(e.graphStatsDirection=e.invertNodeStats?"reversed":"normal",delete e.invertNodeStats),e}completeDefaultSettings(){gi.interactiveSettings[He]={colormap:"hsv",colors:[],unselected:[],excludeRegex:{regex:"",flags:""},noneType:"none",showOnGraph:!0,enableByDefault:!0},gi.interactiveSettings[ne]={colormap:"rainbow",colors:[],unselected:[],excludeRegex:{regex:"",flags:""},noneType:"none",showOnGraph:!0,enableByDefault:!0},gi.interactiveSettings[pe]={colormap:"winter",colors:[],unselected:[],excludeRegex:{regex:"",flags:""},noneType:"/",showOnGraph:!0,enableByDefault:!1}}loadSettingsRec(e,t){if(!(!e||typeof e!="object"||Array.isArray(e))&&!(!t||typeof t!="object"||Array.isArray(t)))for(let i in e)t.hasOwnProperty(i)?this.loadSettingsRec(e[i],t[i]):t[i]=e[i]}async saveSettings(){await this.saveData(u.settings)}async loadConfigFile(e){e=(0,_t.normalizePath)(e);let t=await this.app.vault.adapter.read(e),i=JSON.parse(t),s=i.stateID;return i=this.migrateSettings(i),delete i.states,delete i.backupGraphOptions,delete i.customColorMaps,delete i.collapseState,delete i.collapseLegend,delete i.resetAfterChanges,delete i.collapsedSettings,delete i.multipleNodesData,this.loadSettingsRec(u.settings,i),s&&(i.stateID=s),i}async importSettings(e){let t=await this.loadConfigFile(e);delete t.stateID,u.settings=t,await this.saveSettings(),this.exportSettings(e,u.settings)}async exportSettings(e,t,i){this.app.vault.adapter.mkdir(u.configurationDirectory),e=(0,_t.normalizePath)(e);let s=structuredClone(t);if(delete s.states,delete s.backupGraphOptions,delete s.customColorMaps,delete s.collapseState,delete s.collapseLegend,delete s.resetAfterChanges,delete s.collapsedSettings,delete s.multipleNodesData,i)s.stateID=i.data.id;else{let o=u.statesManager.getStateFromConfig(e);o&&(s.stateID=o)}let n=JSON.stringify(s,null,2);await this.app.vault.adapter.write(e,n),s.stateID&&u.statesManager.cacheConfig(e)}async onLayoutChange(){if(!this.app.internalPlugins.getPluginById("graph")?._loaded)return;let e=this.getGraphLeaves();u.graphsManager.syncWithLeaves(e),e.forEach(t=>{u.graphsManager.initLeaf(t)})}getGraphLeaves(){let e=[];return e=e.concat(this.app.workspace.getLeavesOfType("graph")),e=e.concat(this.app.workspace.getLeavesOfType("localgraph")),e=e.concat(Sl()?.graphViews.map(t=>t.leaf)||[]),[...new Set(e)]}onMarkdownViewOpen(e){let t=e.contentEl,i={attributes:!0,childList:!0,subtree:!0},s=(o,a)=>{for(let l of o)l.type==="childList"&&l.addedNodes.length>0&&l.addedNodes[0].classList?.contains(Cl())&&this.onLayoutChange()},n=new MutationObserver(s);n.observe(t,i),setTimeout(()=>{n.disconnect()},2e3)}}; /*! Bundled license information: chroma-js/src/utils/contrastAPCA.js: diff --git a/.obsidian/plugins/extended-graph/manifest.json b/.obsidian/plugins/extended-graph/manifest.json index 46203a43..a82be455 100644 --- a/.obsidian/plugins/extended-graph/manifest.json +++ b/.obsidian/plugins/extended-graph/manifest.json @@ -1,7 +1,7 @@ { "id": "extended-graph", "name": "Extended Graph", - "version": "2.7.5", + "version": "2.7.6", "minAppVersion": "1.7.0", "description": "Extends the features of the core Graph view, display images, manage states, remove links, change node shapes, and more.", "author": "Kapirklaa", diff --git a/.obsidian/plugins/obsidian-asciimath/main.js b/.obsidian/plugins/obsidian-asciimath/main.js index ef431091..ef98a93d 100644 --- a/.obsidian/plugins/obsidian-asciimath/main.js +++ b/.obsidian/plugins/obsidian-asciimath/main.js @@ -644,178 +644,9 @@ var F = class { } }; -// node_modules/.pnpm/ts-dedent@2.2.0/node_modules/ts-dedent/esm/index.js -function dedent(templ) { - var values = []; - for (var _i = 1; _i < arguments.length; _i++) { - values[_i - 1] = arguments[_i]; - } - var strings = Array.from(typeof templ === "string" ? [templ] : templ); - strings[strings.length - 1] = strings[strings.length - 1].replace(/\r?\n([\t ]*)$/, ""); - var indentLengths = strings.reduce(function(arr, str) { - var matches = str.match(/\n([\t ]+|(?!\s).)/g); - if (matches) { - return arr.concat(matches.map(function(match) { - var _a, _b; - return (_b = (_a = match.match(/[\t ]/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0; - })); - } - return arr; - }, []); - if (indentLengths.length) { - var pattern_1 = new RegExp("\n[ ]{" + Math.min.apply(Math, indentLengths) + "}", "g"); - strings = strings.map(function(str) { - return str.replace(pattern_1, "\n"); - }); - } - strings[0] = strings[0].replace(/^\r?\n/, ""); - var string = strings[0]; - values.forEach(function(value, i) { - var endentations = string.match(/(?:^|\n)( *)$/); - var endentation = endentations ? endentations[1] : ""; - var indentedValue = value; - if (typeof value === "string" && value.includes("\n")) { - indentedValue = String(value).split("\n").map(function(str, i2) { - return i2 === 0 ? str : "" + endentation + str; - }).join("\n"); - } - string += indentedValue + strings[i + 1]; - }); - return string; -} -var esm_default = dedent; - -// src/confirm-modal.ts -var import_obsidian = require("obsidian"); -var ConfirmModal = class extends import_obsidian.Modal { - constructor(app) { - super(app); - } - setMessage(message) { - this.message = message; - return this; - } - onConfirm(f2) { - this.confirmHandler = f2; - return this; - } - onOpen() { - const { contentEl, titleEl } = this; - titleEl.setText("Are you sure?"); - new import_obsidian.Setting(contentEl).setDesc(this.message); - new import_obsidian.Setting(contentEl).addButton((btn) => btn.setButtonText("Cancel").onClick(() => { - this.close(); - })).addButton((btn) => btn.setButtonText("Continue").setCta().onClick(() => { - this.close(); - this.confirmHandler(); - })); - } - onClose() { - const { contentEl } = this; - contentEl.empty(); - } -}; - -// src/inline.ts -var import_language = require("@codemirror/language"); -var import_view = require("@codemirror/view"); -var import_obsidian2 = require("obsidian"); - -// src/utils.ts -function normalizeEscape(escape_) { - return escape_.replace(/([$^\\.()[\]{}*?|])/g, "\\$1"); -} -function isLatexCode(code) { - const latexRegex = /\\([A-Za-z0-9]){2,}/gm; - const texEmbedRegex = /tex".*"/; - return latexRegex.test(code) && !texEmbedRegex.test(code); -} - -// src/inline.ts -var AM = new F(); -function selectionAndRangeOverlap(selection, rangeFrom, rangeTo) { - for (const range of selection.ranges) { - if (range.from <= rangeTo && range.to >= rangeFrom) - return true; - } - return false; -} -function inlineRender(view, plugin) { - const currentFile = plugin.app.workspace.getActiveFile(); - if (!currentFile) - return; - const widgets = []; - const selection = view.state.selection; - const regex = /.*?_?inline-code_?.*/; - for (const { from, to } of view.visibleRanges) { - (0, import_language.syntaxTree)(view.state).iterate({ - from, - to, - enter: (node) => { - const type = node.type; - if (type.name.includes("formatting")) - return; - if (!regex.test(type.name)) - return; - const start = node.from; - const end = node.to; - const { open, close } = plugin.settings.inline; - if (selectionAndRangeOverlap(selection, start - open.length + 1, end + close.length - 1)) - return; - const original = view.state.doc.sliceString(start - open.length + 1, end + close.length - 1).trim(); - const regex2 = new RegExp(`^${normalizeEscape(open)}(.*?)${normalizeEscape(close)}$`); - const matches = original.match(regex2); - if (!matches) - return; - widgets.push(import_view.Decoration.replace({ - widget: new InlineWidget(matches[1], view), - inclusive: false, - block: false - }).range(start - 1, end + 1)); - } - }); - } - return import_view.Decoration.set(widgets, true); -} -var InlineWidget = class extends import_view.WidgetType { - constructor(rawQuery, view) { - super(); - this.rawQuery = rawQuery; - this.view = view; - } - eq(other) { - if (other.rawQuery === this.rawQuery) - return true; - return false; - } - toDOM(_view) { - const tex = AM.toTex(this.rawQuery); - const mathEl = (0, import_obsidian2.renderMath)(tex, false); - (0, import_obsidian2.finishRenderMath)(); - return mathEl; - } -}; -function inlinePlugin(plugin) { - return import_view.ViewPlugin.fromClass(class { - constructor(view) { - var _a; - this.decorations = (_a = inlineRender(view, plugin)) != null ? _a : import_view.Decoration.none; - } - update(update) { - var _a; - if (!update.state.field(import_obsidian2.editorLivePreviewField)) { - this.decorations = import_view.Decoration.none; - return; - } - if (update.docChanged || update.viewportChanged || update.selectionSet) - this.decorations = (_a = inlineRender(update.view, plugin)) != null ? _a : import_view.Decoration.none; - } - }, { decorations: (v2) => v2.decorations }); -} - // src/settings.ts -var import_obsidian3 = require("obsidian"); -var AsciiMathSettingTab = class extends import_obsidian3.PluginSettingTab { +var import_obsidian = require("obsidian"); +var AsciiMathSettingTab = class extends import_obsidian.PluginSettingTab { constructor(app, plugin) { super(app, plugin); this.plugin = plugin; @@ -824,37 +655,25 @@ var AsciiMathSettingTab = class extends import_obsidian3.PluginSettingTab { const { containerEl } = this; containerEl.empty(); containerEl.createEl("h2", { text: "Settings for asciimath" }); - new import_obsidian3.Setting(containerEl).setName("Code block prefix aliases").setDesc("Seperate different aliases with comma.").addText((text) => text.setPlaceholder("asciimath, am").setValue(this.plugin.settings.blockPrefix.join(", ")).onChange((0, import_obsidian3.debounce)((value) => { + new import_obsidian.Setting(containerEl).setName("Code block prefix aliases").setDesc("Seperate different aliases with comma.").addText((text) => text.setPlaceholder("asciimath, am").setValue(this.plugin.settings.blockPrefix.join(", ")).onChange((0, import_obsidian.debounce)((value) => { this.plugin.settings.blockPrefix = value.split(",").map((s) => s.trim()).filter(Boolean); }, 1e3))); - new import_obsidian3.Setting(containerEl).setName("Replace math blocks").setDesc("Enable this if you want to use AsciiMath but keep using default math blocks (dollar-sign blocks). This will not affect your previous notes that are written in LaTeX because the plugin will check which syntax to use before drawing the math.").addToggle((toggle) => { + new import_obsidian.Setting(containerEl).setName("Replace math blocks").setDesc("Enable this if you want to use AsciiMath but keep using default math blocks (dollar-sign blocks). This will not affect your previous notes that are written in LaTeX because the plugin will check which syntax to use before drawing the math.").addToggle((toggle) => { toggle.setValue(this.plugin.settings.replaceMathBlock).onChange((v2) => { this.plugin.settings.replaceMathBlock = v2; this.plugin.setupMathBlockRendering(); }); }); - new import_obsidian3.Setting(containerEl).setName("Custom symbols").setDesc("Transforms custom symbols into LaTeX symbols. One row for each rule.").addTextArea((text) => { - const el = text.setPlaceholder("symbol1, \\LaTeXSymbol1\nsymbol2, \\LaTeXSymbol2\n...").setValue(this.plugin.settings.customSymbols.map((r) => r.join(", ")).join("\n")).onChange((0, import_obsidian3.debounce)((value) => { + new import_obsidian.Setting(containerEl).setName("Custom symbols").setDesc("Transforms custom symbols into LaTeX symbols. One row for each rule.").addTextArea((text) => { + const el = text.setPlaceholder("symbol1, \\LaTeXSymbol1\nsymbol2, \\LaTeXSymbol2\n...").setValue(this.plugin.settings.customSymbols.map((r) => r.join(", ")).join("\n")).onChange((0, import_obsidian.debounce)((value) => { this.plugin.settings.customSymbols = value.split("\n").map((r) => r.split(",").map((s) => s.trim()).filter(Boolean)).filter((l) => l.length); }, 1e3)); el.inputEl.addClass("__asciimath_settings_custom-symbols"); }); - new import_obsidian3.Setting(containerEl).setHeading().setName("Inline code math (deprecated)").setDesc("These settings will be removed in the next version of the plugin"); - new import_obsidian3.Setting(containerEl).setName("Disable deprecation warning").setDesc("Note: ignoring deprecation issues may make the plugin unusable with existing notes in the future.").addToggle((toggle) => { - toggle.setValue(this.plugin.settings.disableDeprecationWarning).onChange((v2) => { - this.plugin.settings.disableDeprecationWarning = v2; - }); - }); - new import_obsidian3.Setting(containerEl).setName("Inline asciimath start").setDesc("The leading escape of the inline asciimath formula. It should starts with **only one backtick**.").addText((text) => text.setPlaceholder("`$").setValue(this.plugin.settings.inline.open).onChange((0, import_obsidian3.debounce)((value) => { - this.plugin.settings.inline.open = value; - }, 1e3))); - new import_obsidian3.Setting(containerEl).setName("Inline asciimath end").setDesc("The trailing escape of the inline asciimath formula. It should ends with **only one backtick**.").addText((text) => text.setPlaceholder("$`").setValue(this.plugin.settings.inline.close).onChange((0, import_obsidian3.debounce)((value) => { - this.plugin.settings.inline.close = value; - }, 1e3))); - new import_obsidian3.Setting(containerEl).setName("Don't forget to save and reload settings \u2192").addButton((btn) => btn.setButtonText("Save").onClick(async () => { + new import_obsidian.Setting(containerEl).setName("Don't forget to save and reload settings \u2192").addButton((btn) => btn.setButtonText("Save").onClick(async () => { const valid = validateSettings(this.plugin.settings); if (!valid.isValid) { - new import_obsidian3.Notice(valid.message); + new import_obsidian.Notice(valid.message); return; } await this.plugin.saveSettings(); @@ -866,7 +685,7 @@ var AsciiMathSettingTab = class extends import_obsidian3.PluginSettingTab { this.plugin.AM = new F({ symbols: this.plugin.calcSymbols() }); - new import_obsidian3.Notice("Asciimath settings reloaded successfully!"); + new import_obsidian.Notice("Asciimath settings reloaded successfully!"); })); } }; @@ -877,19 +696,6 @@ function validateSettings(settings) { message: "You should add at least 1 block prefix!" }; } - const { open, close } = settings.inline; - if (!open.startsWith("`") || open.length <= 1 || open.startsWith("``")) { - return { - isValid: false, - message: "Invalid inline leading escape!" - }; - } - if (!close.endsWith("`") || close.length <= 1 || close.endsWith("``")) { - return { - isValid: false, - message: "Invalid inline trailing escape!" - }; - } const { customSymbols } = settings; if (customSymbols.find((pair) => pair.length !== 2)) { return { @@ -903,8 +709,23 @@ function validateSettings(settings) { }; } +// src/utils.ts +function isLatexCode(code) { + const latexRegex = /\\([A-Za-z0-9]){2,}/gm; + const simpleLatexSupSubRegex = /[\^_]\{\s*[a-zA-Z0-9 ]+\s*\}/g; + const texEmbedRegex = /tex".*"/; + const hasTrueLatex = latexRegex.test(code); + const hasSimpleLatexSupSub = simpleLatexSupSubRegex.test(code); + const hasTexEmbed = texEmbedRegex.test(code); + return (hasTrueLatex || hasSimpleLatexSupSub && !hasTrueLatex) && !hasTexEmbed; +} +function toTex(am, content, displayMode) { + const tex = am.toTex(content, { display: displayMode }); + return tex.replace(/(\{|\})(\1+)/g, (...args) => Array(args[2].length + 1).fill(args[1]).join(" ")); +} + // src/symbol-search/modal.ts -var import_obsidian4 = require("obsidian"); +var import_obsidian2 = require("obsidian"); // src/symbol-search/symbols.json var symbols_default = [ @@ -1429,7 +1250,7 @@ var symbols_default = [ ]; // src/symbol-search/modal.ts -var SymbolSearchModal = class extends import_obsidian4.SuggestModal { +var SymbolSearchModal = class extends import_obsidian2.SuggestModal { constructor(app, sel, am) { super(app); this.sel = sel; @@ -1477,11 +1298,11 @@ var SymbolSearchModal = class extends import_obsidian4.SuggestModal { toBeRendered = `tex"${toBeRendered}"`; el2.innerHTML = ` - ${(0, import_obsidian4.renderMath)(toBeRendered, true).innerHTML} + ${(0, import_obsidian2.renderMath)(toBeRendered, true).innerHTML} `; if (this.renderCount >= this.renderMax) - (0, import_obsidian4.finishRenderMath)(); + (0, import_obsidian2.finishRenderMath)(); }); } onSelected(cb) { @@ -1492,21 +1313,388 @@ var SymbolSearchModal = class extends import_obsidian4.SuggestModal { } }; +// src/symbol-search/modal-instance.ts +function createModalInstance(editor) { + const sel = editor.getSelection(); + const modal = new SymbolSearchModal(this.app, sel, this.AM); + modal.setPlaceholder("Start typing AsciiMath or LaTeX symbol name"); + modal.onSelected((sym) => { + var _a; + const { am } = sym; + if ("placeholder" in sym) { + const { placeholder, fill } = sym; + let tempExceptFirst = placeholder; + for (let i = 2; i <= fill.length; i++) + tempExceptFirst = tempExceptFirst.replace(`$${i}`, ""); + const temp = tempExceptFirst.replace("$1", ""); + if (!sel) { + const cur = editor.getCursor(); + const placeholder_a_pos = placeholder.indexOf("$1"); + const spacesBefore$1 = ((_a = placeholder.substring(0, placeholder_a_pos).match(/(\$\d+?)/g)) == null ? void 0 : _a.join("").length) || 0; + editor.replaceSelection(am + temp); + editor.setCursor({ + line: cur.line, + ch: cur.ch + am.length + placeholder_a_pos - spacesBefore$1 + }); + } else { + const placeholder_b_pos = placeholder.indexOf("$2"); + const cur = editor.getCursor("to"); + editor.replaceSelection(am + tempExceptFirst.replace("$1", sel)); + if (placeholder_b_pos !== -1) { + const $before$2 = placeholder.substring(0, placeholder_b_pos).match(/(\$\d+?)/g); + const $spacesBefore$2 = ($before$2 == null ? void 0 : $before$2.join("").length) || 0; + const $2before$1 = !$before$2 || !$before$2.includes("$1") ? sel.length : 0; + editor.setCursor({ + line: cur.line, + ch: cur.ch + am.length + placeholder_b_pos - $spacesBefore$2 - $2before$1 + }); + } else { + editor.setCursor({ + line: cur.line, + ch: cur.ch + am.length + placeholder.length - 2 + }); + } + } + } else { + editor.replaceSelection(am); + } + }); + modal.open(); +} + +// src/confirm-modal.ts +var import_obsidian3 = require("obsidian"); +var ConfirmModal = class extends import_obsidian3.Modal { + constructor(app) { + super(app); + } + setMessage(message) { + this.message = message; + return this; + } + setEnableDisplayMode(enableDisplayMode) { + this.enableDisplayMode = enableDisplayMode; + return this; + } + onConfirm(f2) { + this.confirmHandler = () => f2(this.enableDisplayMode); + return this; + } + onOpen() { + const { contentEl, titleEl } = this; + titleEl.setText("Are you sure?"); + new import_obsidian3.Setting(contentEl).setDesc(this.message); + new import_obsidian3.Setting(contentEl).setName("Enable display mode for each formula").setDesc("This option will insert \\display{ ... } for each formula.").addToggle((toggle) => toggle.setValue(this.enableDisplayMode).onChange((value) => { + this.enableDisplayMode = value; + })); + new import_obsidian3.Setting(contentEl).addButton((btn) => btn.setButtonText("Cancel").onClick(() => { + this.close(); + })).addButton((btn) => btn.setButtonText("Continue").setCta().onClick(() => { + this.close(); + this.confirmHandler(); + })); + } + onClose() { + const { contentEl } = this; + contentEl.empty(); + } +}; + +// node_modules/.pnpm/ts-dedent@2.2.0/node_modules/ts-dedent/esm/index.js +function dedent(templ) { + var values = []; + for (var _i = 1; _i < arguments.length; _i++) { + values[_i - 1] = arguments[_i]; + } + var strings = Array.from(typeof templ === "string" ? [templ] : templ); + strings[strings.length - 1] = strings[strings.length - 1].replace(/\r?\n([\t ]*)$/, ""); + var indentLengths = strings.reduce(function(arr, str) { + var matches = str.match(/\n([\t ]+|(?!\s).)/g); + if (matches) { + return arr.concat(matches.map(function(match) { + var _a, _b; + return (_b = (_a = match.match(/[\t ]/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0; + })); + } + return arr; + }, []); + if (indentLengths.length) { + var pattern_1 = new RegExp("\n[ ]{" + Math.min.apply(Math, indentLengths) + "}", "g"); + strings = strings.map(function(str) { + return str.replace(pattern_1, "\n"); + }); + } + strings[0] = strings[0].replace(/^\r?\n/, ""); + var string = strings[0]; + values.forEach(function(value, i) { + var endentations = string.match(/(?:^|\n)( *)$/); + var endentation = endentations ? endentations[1] : ""; + var indentedValue = value; + if (typeof value === "string" && value.includes("\n")) { + indentedValue = String(value).split("\n").map(function(str, i2) { + return i2 === 0 ? str : "" + endentation + str; + }).join("\n"); + } + string += indentedValue + strings[i + 1]; + }); + return string; +} +var esm_default = dedent; + +// src/convertion.ts +var import_obsidian4 = require("obsidian"); +async function convertAsciiMathInFile(plugin, file, display) { + const view = plugin.app.workspace.getActiveViewOfType(import_obsidian4.MarkdownView); + if (!view) + return { block: 0, inline: 0 }; + const { editor } = view; + const cache = plugin.app.metadataCache.getFileCache(file); + if (!cache || !cache.sections) + return { block: 0, inline: 0 }; + const formulaBlocks = []; + if (cache.sections) { + for (const section of cache.sections) { + const { start, end } = section.position; + if (section.type === "math" || section.type === "code") { + let content = editor.getRange({ line: start.line, ch: start.col }, { line: end.line, ch: end.col }); + if (section.type === "math") { + content = content.replace(/^\$\$\s*/, "").replace(/\s*\$\$$/, ""); + } + if (section.type === "code") { + const blockReg = new RegExp(`((\`|~){3,})(${plugin.settings.blockPrefix.join("|")})([\\s\\S]*?)\\n\\1`, "m"); + const match = content.match(blockReg); + if (match) + content = match[4].trim(); + else + continue; + } + formulaBlocks.push({ + content, + position: section.position, + isBlock: true + }); + } else { + let content = editor.getRange({ line: start.line, ch: start.col }, { line: end.line, ch: end.col }); + const inlineMathRegex = /(? { + const { start, end } = block.position; + const res = toTex(plugin.AM, block.content, display); + const replacement = block.isBlock ? `$$ +${res} +$$` : `$${res}$`; + changes.push({ + from: { line: start.line, ch: start.col }, + to: { line: end.line, ch: end.col }, + text: replacement + }); + }); + editor.transaction({ changes }); + new import_obsidian4.Notice(`Conversion completed: ${formulaBlocks.length} formulas processed`); + } + return { + block: formulaBlocks.filter((x) => x.isBlock).length, + inline: formulaBlocks.filter((x) => !x.isBlock).length + }; +} +async function extractFormulasInFile(plugin, file) { + const content = await plugin.app.vault.read(file); + const formulas = []; + const codeRanges = []; + const codeBlockRegex = /(^|\n)(```|~~~)[\s\S]*?\2/g; + const amCodeBlockRegex = new RegExp(`([\`~]{3,})(${plugin.settings.blockPrefix.join("|")})([\\s\\S]*?)\\n\\1`, "m"); + const inlineCodeRegex = /`[^`\n]*`/g; + for (const match of content.matchAll(codeBlockRegex)) { + const am = match[0].match(amCodeBlockRegex); + codeRanges.push({ + start: match.index, + end: match.index + match[0].length, + isAm: am !== null + }); + if (am) { + const amCode = am[3]; + let start = match.index; + if (match[1] === "\n") { + start += 1; + } + formulas.push({ + type: "block", + start, + end: match.index + match[0].length, + content: amCode + }); + } + } + for (const match of content.matchAll(inlineCodeRegex)) { + codeRanges.push({ + start: match.index, + end: match.index + match[0].length, + isAm: false + }); + } + const inlineRegex = /(? { + return !codeRanges.some((range) => formula.start >= range.start && formula.end <= range.end && !range.isAm); + }); +} +async function replaceFormulasInFile(plugin, file, enableDisplayMode) { + const content = await plugin.app.vault.read(file); + const formulas = await extractFormulasInFile(plugin, file); + console.log({ formulas }); + formulas.sort((a, b2) => b2.start - a.start); + let newContent = content; + const convertedCnt = { block: 0, inline: 0 }; + for (const formula of formulas) { + if (isLatexCode(formula.content)) { + continue; + } + const converted = toTex(plugin.AM, formula.content.trim(), enableDisplayMode); + const replacement = formula.type === "inline" ? `$${converted}$` : `$$${converted}$$`; + newContent = newContent.substring(0, formula.start) + replacement + newContent.substring(formula.end); + convertedCnt[formula.type] += 1; + } + await plugin.app.vault.modify(file, newContent); + return convertedCnt; +} +function actionConvertActiveFile(plugin, message) { + return async () => new ConfirmModal(plugin.app).setMessage(message).setEnableDisplayMode(false).onConfirm(async (displayMode) => { + const file = plugin.app.workspace.getActiveFile(); + if (!file) { + new import_obsidian4.Notice("No active file found."); + return; + } + await convertAsciiMathInFile(plugin, file, displayMode); + }).open(); +} +function actionConvertEntireVault(plugin, message) { + return async () => new ConfirmModal(plugin.app).setMessage(message).setEnableDisplayMode(false).onConfirm(async (displayMode) => { + const allConvertionRes = await Promise.all(plugin.app.vault.getMarkdownFiles().map(async (f2) => { + const convertionRes = await replaceFormulasInFile(plugin, f2, displayMode); + return { + ...convertionRes, + hasAsciimath: convertionRes.block || convertionRes.inline + }; + })); + const lo = { block: 0, inline: 0, fileNum: 0 }; + allConvertionRes.forEach((res) => { + if (res.hasAsciimath) { + lo.block += res.block; + lo.inline += res.inline; + lo.fileNum += 1; + } + }); + new import_obsidian4.Notice(`Converted ${lo.block} blocks and ${lo.inline} inline formulas in ${lo.fileNum} file${lo.fileNum > 1 ? "s" : ""}.`); + }).open(); +} + +// src/commands.ts +function initCommands(plugin) { + const commands = [ + { + id: "asciimath-insert-symbol", + icon: "sigma", + name: "View AsciiMath symbols", + editorCallback: (editor) => { + createModalInstance(editor); + } + }, + { + id: "insert-asciimath-block", + name: "Insert asciimath block", + editorCallback: (editor, _view) => { + editor.replaceSelection(`\`\`\`${plugin.settings.blockPrefix[0] || "asciimath"} +${editor.getDoc().getSelection()} +\`\`\``); + const cursor = editor.getCursor(); + editor.setCursor(cursor.line - 1); + } + }, + { + id: "convert-selected-to-latex", + name: "Convert exact selection into LaTeX", + editorCallback: (editor, _view) => { + const cursorStart = editor.getCursor("from"); + const cursorEnd = editor.getCursor("to"); + const amCode = editor.getSelection(); + const doConvert = () => editor.replaceRange(plugin.AM.toTex(amCode), cursorStart, cursorEnd); + if (amCode.length > 1e3) { + new ConfirmModal(plugin.app).setMessage(esm_default`The selection is over 1000 chars. + Please confirm that you have selected the exact AsciiMath expression. + Click the Continue button to convert though.`).onConfirm(doConvert).open(); + } else if (isLatexCode(amCode)) { + new ConfirmModal(plugin.app).setMessage(esm_default`The selection may be already LaTeX. + Click the Continue buttom to convert though.`).onConfirm(doConvert).open(); + } else { + doConvert(); + } + } + }, + { + id: "convert-am-block-into-mathjax-in-current-file", + name: "Convert AsciiMath to LaTeX (active file)", + callback: actionConvertActiveFile(plugin, "This will replace all AsciiMath blocks with LaTeX math blocks in the active file. THIS ACTION CANNOT BE UNDONE.") + }, + { + id: "convert-am-block-into-mathjax-in-vault", + name: "Convert AsciiMath to LaTeX (entire vault)", + callback: actionConvertEntireVault(plugin, "This will replace all AsciiMath formulas with LaTeX math blocks in the entire vault. THIS ACTION CANNOT BE UNDONE.") + } + ]; + commands.forEach((command) => { + plugin.addCommand(command); + }); +} + // src/main.ts var DEFAULT_SETTINGS = { blockPrefix: ["asciimath", "am"], disableDeprecationWarning: false, replaceMathBlock: true, - inline: { - open: "`$", - close: "$`" - }, customSymbols: [] }; -function toTex(am, content) { - const tex = am.toTex(content); - return tex.replace(/(\{|\})(\1+)/g, (...args) => Array(args[2].length + 1).fill(args[1]).join(" ")); -} var AsciiMathPlugin = class extends import_obsidian5.Plugin { constructor() { super(...arguments); @@ -1566,86 +1754,7 @@ var AsciiMathPlugin = class extends import_obsidian5.Plugin { new import_obsidian5.Notice("Error: MathJax was not defined despite loading it!"); return; } - this.app.workspace.on("file-open", async (file) => { - if (!file || this.settings.disableDeprecationWarning) - return; - const content = await this.app.vault.read(file); - const [open, close] = Object.values(this.settings.inline).map(normalizeEscape); - const inlineReg = new RegExp(`${open}(.*?)${close}`, "g"); - if (inlineReg.test(content)) { - new import_obsidian5.Notice(esm_default` - Obsidian AsciiMath: - - Inline math with single backticks is deprecated. Refer to the plugin description to fix this issue. - You also can disable this warning in the plugin settings. - - Click here to dismiss this message. - `, 0); - } - }); - this.addCommand({ - id: "asciimath-insert-symbol", - icon: "sigma", - name: "View AsciiMath symbols", - editorCallback: this.modalCallback() - }); - this.addCommand({ - id: "insert-asciimath-block", - name: "Insert asciimath block", - editorCallback: (editor, _view) => { - editor.replaceSelection(`\`\`\`${this.settings.blockPrefix[0] || "asciimath"} -${editor.getDoc().getSelection()} -\`\`\``); - const cursor = editor.getCursor(); - editor.setCursor(cursor.line - 1); - } - }); - this.addCommand({ - id: "convert-selected-to-latex", - name: "Convert exact selection into LaTeX", - editorCallback: (editor, _view) => { - const cursorStart = editor.getCursor("from"); - const cursorEnd = editor.getCursor("to"); - const amCode = editor.getSelection(); - const doConvert = () => editor.replaceRange(this.AM.toTex(amCode), cursorStart, cursorEnd); - if (amCode.length > 500) { - new ConfirmModal(this.app).setMessage(esm_default`The selection is over 500 chars. - Please confirm that you have selected the exact AsciiMath expression. - Click the Continue button to convert though.`).onConfirm(doConvert).open(); - } else if (isLatexCode(amCode)) { - new ConfirmModal(this.app).setMessage(esm_default`The selection may be already LaTeX. - Click the Continue buttom to convert though.`).onConfirm(doConvert).open(); - } else { - doConvert(); - } - } - }); - this.addCommand({ - id: "convert-am-block-into-mathjax-in-current-file", - name: "Convert AsciiMath to LaTeX (active file)", - callback: this.actionConvertActiveFile("Tex" /* Tex */, "This will replace all AsciiMath blocks with LaTeX math blocks in the active file. THIS ACTION CANNOT BE UNDONE.") - }); - this.addCommand({ - id: "convert-am-inline-into-new-syntax-in-current-file", - name: "Update old AsciiMath (active file)", - callback: this.actionConvertActiveFile("Asciimath" /* Asciimath */, esm_default` - This will replace all Asciimath formulas of old syntax (like \`\$ and \$\`) with new syntax (wrapped with dollar signs), - which is more convenient to use. - THIS ACTION CANNOT BE UNDONE.`) - }); - this.addCommand({ - id: "convert-am-block-into-mathjax-in-vault", - name: "Convert AsciiMath to LaTeX (entire vault)", - callback: this.actionConvertEntireVault("Tex" /* Tex */, "This will replace all AsciiMath formulas with LaTeX math blocks in the entire vault. THIS ACTION CANNOT BE UNDONE.") - }); - this.addCommand({ - id: "convert-am-inline-into-new-syntax-in-vault", - name: "Update old AsciiMath (entire vault)", - callback: this.actionConvertEntireVault("Asciimath" /* Asciimath */, esm_default` - This will replace all Asciimath formulas of old syntax (like \`\$ and \$\`) with new syntax (wrapped with dollar signs), - which is more convenient to use. - THIS ACTION CANNOT BE UNDONE.`) - }); + initCommands(this); this.postProcessors = /* @__PURE__ */ new Map(); this.app.workspace.onLayoutReady(async () => { this.settings.blockPrefix.forEach((prefix) => { @@ -1653,139 +1762,10 @@ ${editor.getDoc().getSelection()} this.existPrefixes.push(prefix); }); }); - this.registerEditorExtension([inlinePlugin(this)]); - this.registerMarkdownPostProcessor(this.postProcessorInline.bind(this)); this.setupMathBlockRendering(); this.addSettingTab(new AsciiMathSettingTab(this.app, this)); console.log("Obsidian asciimath loaded"); } - modalCallback() { - return (editor) => { - const sel = editor.getSelection(); - const modal = new SymbolSearchModal(this.app, sel, this.AM); - modal.setPlaceholder("Start typing AsciiMath or LaTeX symbol name"); - modal.onSelected((sym) => { - var _a; - const { am } = sym; - if ("placeholder" in sym) { - const { placeholder, fill } = sym; - let tempExceptFirst = placeholder; - for (let i = 2; i <= fill.length; i++) - tempExceptFirst = tempExceptFirst.replace(`$${i}`, ""); - const temp = tempExceptFirst.replace("$1", ""); - if (!sel) { - const cur = editor.getCursor(); - const placeholder_a_pos = placeholder.indexOf("$1"); - const spacesBefore$1 = ((_a = placeholder.substring(0, placeholder_a_pos).match(/(\$\d+?)/g)) == null ? void 0 : _a.join("").length) || 0; - editor.replaceSelection(am + temp); - editor.setCursor({ - line: cur.line, - ch: cur.ch + am.length + placeholder_a_pos - spacesBefore$1 - }); - } else { - const placeholder_b_pos = placeholder.indexOf("$2"); - const cur = editor.getCursor("to"); - editor.replaceSelection(am + tempExceptFirst.replace("$1", sel)); - if (placeholder_b_pos !== -1) { - const $before$2 = placeholder.substring(0, placeholder_b_pos).match(/(\$\d+?)/g); - const $spacesBefore$2 = ($before$2 == null ? void 0 : $before$2.join("").length) || 0; - const $2before$1 = !$before$2 || !$before$2.includes("$1") ? sel.length : 0; - editor.setCursor({ - line: cur.line, - ch: cur.ch + am.length + placeholder_b_pos - $spacesBefore$2 - $2before$1 - }); - } else { - editor.setCursor({ - line: cur.line, - ch: cur.ch + am.length + placeholder.length - 2 - }); - } - } - } else { - editor.replaceSelection(am); - } - }); - modal.open(); - }; - } - actionConvertActiveFile(target, message) { - return async () => new ConfirmModal(this.app).setMessage(message).onConfirm(async () => { - const file = this.app.workspace.getActiveFile(); - const { block, inline } = await this.convertAsciiMathInFile(file, target); - new import_obsidian5.Notice(`Converted ${block} blocks and ${inline} inline formulas.`); - }).open(); - } - actionConvertEntireVault(target, message) { - return async () => new ConfirmModal(this.app).setMessage(message).onConfirm(async () => { - const allConvertionRes = await Promise.all(this.app.vault.getMarkdownFiles().map(async (f2) => { - const convertionRes = await this.convertAsciiMathInFile(f2, target); - return { - ...convertionRes, - hasAsciimath: convertionRes.block || convertionRes.inline - }; - })); - const { block, inline, fileNum } = allConvertionRes.reduce((x, y) => { - return { - block: x.block + y.block, - inline: x.inline + y.inline, - fileNum: x.fileNum + y.hasAsciimath - }; - }, { block: 0, inline: 0, fileNum: 0 }); - new import_obsidian5.Notice(`Converted ${block} blocks and ${inline} inline formulas in ${fileNum} file${fileNum > 1 ? "s" : ""}.`); - }).open(); - } - async convertAsciiMathInFile(file, target) { - const convertionRes = { block: 0, inline: 0 }; - let content = await this.app.vault.read(file); - const blockReg = new RegExp(`((\`|~){3,})(${this.settings.blockPrefix.join("|")})([\\s\\S]*?)\\n\\1`, "gm"); - const [open, close] = Object.values(this.settings.inline).map(normalizeEscape); - const inlineReg = new RegExp(`${open}(.*?)${close}`, "g"); - try { - const blockIterator = content.matchAll(blockReg); - let match; - while (!(match = blockIterator.next()).done) { - const block = match.value[0]; - const blockContent = match.value[4]; - const innerContent = target === "Tex" /* Tex */ ? toTex(this.AM, blockContent) : blockContent.trim(); - content = content.replace(block, `$$$$ -${innerContent} -$$$$`); - convertionRes.block++; - } - const inlineBlockIterator = content.matchAll(inlineReg); - while (!(match = inlineBlockIterator.next()).done) { - const block = match.value[0]; - const blockContent = match.value[1]; - const innerContent = target === "Tex" /* Tex */ ? toTex(this.AM, blockContent) : blockContent; - content = content.replace(block, `$$${innerContent.trim()}$$`); - convertionRes.inline++; - } - await this.app.vault.modify(file, content); - } catch (e) { - new import_obsidian5.Notice(String(e)); - } - return convertionRes; - } - async postProcessorInline(el, _ctx) { - const nodeList = el.querySelectorAll("code"); - if (!nodeList.length) - return; - for (let i = 0; i < nodeList.length; i++) { - const node = nodeList.item(i); - if (node.className.trim()) - continue; - let { open, close } = this.settings.inline; - open = open.slice(1); - close = close.substring(0, close.length - 1); - const regex = new RegExp(`^${normalizeEscape(open)}(.*?)${normalizeEscape(close)}$`); - const matches = node.innerText.match(regex); - if (!matches) - continue; - const mathEl = (0, import_obsidian5.renderMath)(matches[1], false); - (0, import_obsidian5.finishRenderMath)(); - node.replaceWith(mathEl); - } - } }; /* nosourcemap */ \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-asciimath/manifest.json b/.obsidian/plugins/obsidian-asciimath/manifest.json index 65a90d5a..6c0b9f85 100644 --- a/.obsidian/plugins/obsidian-asciimath/manifest.json +++ b/.obsidian/plugins/obsidian-asciimath/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-asciimath", "name": "asciimath", - "version": "0.7.8", + "version": "0.8.0", "minAppVersion": "0.15.0", "description": "Add asciimath support for Obsidian.", "author": "widcardw", diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/data.json b/.obsidian/plugins/obsidian-excalidraw-plugin/data.json index 4dc8f47c..2beb56ed 100644 --- a/.obsidian/plugins/obsidian-excalidraw-plugin/data.json +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/data.json @@ -119,7 +119,7 @@ "mdCSS": "", "scriptEngineSettings": {}, "defaultTrayMode": true, - "previousRelease": "2.15.1", + "previousRelease": "2.15.2", "showReleaseNotes": true, "showNewVersionNotification": true, "latexBoilerplate": "\\color{blue}", diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/main.js b/.obsidian/plugins/obsidian-excalidraw-plugin/main.js index ebe82199..677d9e44 100644 --- a/.obsidian/plugins/obsidian-excalidraw-plugin/main.js +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/main.js @@ -4,7 +4,7 @@ const unpackExcalidraw = () => LZString.decompressFromBase64("BTCCBoFMEoF4D4DeAi let {react, reactDOM } = new Function(`${REACT_PACKAGES}; return {react: React, reactDOM: ReactDOM};`)(); let excalidrawLib = {}; const loadMathjaxToSVG = () => new Function(`${LZString.decompressFromBase64("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gAOJETM4AASREzOAAkkRMzgAFJETM4ADSREzOAAMkRMzgALJETM4AByRK0uJLW42w2AA8kRMzXSx0vJjq4zMCAACkRMzgAIpETM4ABKREzOAAykRMzgACpETM4ACqREzOAAakRMzgAOpETM4AAaREzOAAmkRMzgAFpETM4ADaREzOAAOkRMzgALpETM4AB6REzOAA+kRMzgAAZETM4ACGREzOAARkRMzgAMZETM4AAmREzOAApkRMzgAGZEoK/0v1t0dYADmREzOAAFkRMzgAJZETM4ABWRCisQr3bdHWAA1kRMzmK+iuDLbAIAA2REzOAAtkRMzgAHZETM4AD2REzOAADkRMzgAI5ETM4ABOREzOAAzkRMzgAC5ETM4ACuREzOAAbkRMzgAO5ETM4AAeREzOAAnkRMzgAF5ETM4ADeREzOAAPkRMzgAL5ETM4AB+REzOAA/kRareK9HWAAAURMzgAIFETM4ABBRKauAASwRMzgAMFE1q5atJLbDYAAhREzOAAoURMzgAGFETM4ADhREzOAAEURMzgAJFETM4ABRREzOAA0URMzgADFEow4ACxRKMOAAcUSjDgAPFETM4mu6rbDYAAJREzPpraa652AAiURMzgAElETM4ADJRKMOAAKUSjDgAKlEow4ABpRKMOAA6USjDgABlEow4ACZRKMOAAWUSjDgANlEow4AA5RKMOAAuUSjDgAHlEow4AD5RKMOAABUSjDgAIVEow4ABFREzOAAxURMzgACVEjHXo1sAgAKVETM4ABlREzOAA5URMzgABVETM4ACVREzOAAVURMzgANVETM4AA1REzOAAtURMzgAHVETM4AD1REzOAADURMzgAI1ETM4ABNREzOAAzURMzgAC1ETM4ACtREzOAAbURMzgAO1ETM4AAdREzOAAnURMzgAF1Eow4ADdRKMOAAPUSjDgAL1Eow4AB9RJUOAA/USVDgACNEow4ACjRKMOAAY0SjDgAONEow4AATREzOAAk0SjDgAFNEow4ADTRKMOAAM0SjDgALNETM4ABzRKMOAA80SjDgAAtETM4ACLREzOAAS0SjDgAMtEow4AArREzOAAq0RMzgAGtETM4ADrREzOAAG0RMzgAJtETM4ABbREzOAA20RMzgADtETM4AC7REzOAAe0RMzgAPtETM4AAHREzOAAh0RMzgAEdETM4ADHRE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=")}; return MathjaxToSVG;`)(); -const PLUGIN_LANGUAGES = {"ru": "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","zh-cn": "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","zh-tw": "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","es": "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"}; -const PLUGIN_VERSION="2.15.1";;function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var i=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,i.get?i:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}var obsidian_module__namespace=_interopNamespace(obsidian_module),React__namespace=_interopNamespace(React);let random$3=e=>crypto.getRandomValues(new Uint8Array(e)),customRandom=(e,t,a)=>{let i=(2<{let s="";for(;;){let t=a(n),o=n;for(;o--;)if(s+=e[t[o]&i]||"",s.length===r)return s}}},customAlphabet=(e,t=21)=>customRandom(e,t,random$3),nanoid$1=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce(((e,t)=>e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_")),"");const durationTreshold=0;function setDebugging(e){DEBUGGING=!1}let DEBUGGING=!1;const log$2=console.log.bind(window.console),debug=(e,t,...a)=>{console.log(t,...a)};class CustomMutationObserver{originalCallback;observer;name;constructor(e,t){this.originalCallback=e,this.observer=null,this.name=t}observe(e,t){this.observer=new MutationObserver((async(e,t)=>{const a=performance.now();await this.originalCallback(e,t);const i=performance.now()-a;i>durationTreshold&&console.log(`Excalidraw ${this.name} MutationObserver callback took ${i}ms to execute`,t)})),this.observer.observe(e,t)}disconnect(){this.observer&&(this.observer.disconnect(),this.observer=null)}}class ErrorHandler{static instance;errorLog=[];errorNoticeTimeout=1e4;maxLogEntries=100;constructor(){}static getInstance(){return ErrorHandler.instance||(ErrorHandler.instance=new ErrorHandler),ErrorHandler.instance}handleError(e,t,a=!0,i){const n="string"==typeof e?new Error(e):e;if(console.error(`[Excalidraw Error] in ${t}:`,n),this.errorLog.push({error:n,context:t,timestamp:Date.now()}),this.errorLog.length>this.maxLogEntries&&(this.errorLog=this.errorLog.slice(this.errorLog.length-this.maxLogEntries)),a){const e=this.formatErrorForUser(n,t);new obsidian_module.Notice(e,i||this.errorNoticeTimeout)}}safeEval(e,t,a,i){try{return a.eval.call(a,e)}catch(e){if(this.handleError(e,`SafeEval in ${t}`),void 0!==i)return i;throw e}}wrapWithTryCatch(e,t,a){try{return e()}catch(e){if(this.handleError(e,t),void 0!==a)return a;throw e}}formatErrorForUser(e,t){let a=e.message;return a.includes("Cannot read properties of undefined")?a="A required object was not available. This might be due to a plugin loading issue.":a.includes("is not a function")?a="A required function was not available. This might be due to a plugin version mismatch.":a.length>100&&(a=a.substring(0,100)+"..."),`Excalidraw Error: ${a} (in ${t})`}getErrorLog(){return[...this.errorLog]}clearErrorLog(){this.errorLog=[]}}const errorHandler=ErrorHandler.getInstance();let EXCALIDRAW_PLUGIN=null;const setExcalidrawPlugin=e=>{EXCALIDRAW_PLUGIN=e},THEME={LIGHT:"light",DARK:"dark"},MD_EXCALIDRAW="# Excalidraw Data",MD_TEXTELEMENTS="## Text Elements",MD_ELEMENTLINKS="## Element Links",MD_EMBEDFILES="## Embedded Files",MD_DRAWING="## Drawing",MD_EX_SECTIONS=[MD_EXCALIDRAW,MD_TEXTELEMENTS,MD_ELEMENTLINKS,MD_EMBEDFILES,MD_DRAWING],ERROR_IFRAME_CONVERSION_CANCELED="iframe conversion canceled",LOCALE=localStorage.getItem("language")?.toLowerCase()||"en",CJK_FONTS="CJK Fonts",obsidianToExcalidrawMap={en:"en-US",af:"af-ZA",am:"am-ET",ar:"ar-SA",eu:"eu-ES",be:"be-BY",bg:"bg-BG",bn:"bn-BD",ca:"ca-ES",cs:"cs-CZ",da:"da-DK",de:"de-DE",el:"el-GR",eo:"eo-EO",es:"es-ES",fa:"fa-IR","fi-fi":"fi-FI",fr:"fr-FR",gl:"gl-ES",he:"he-IL",hi:"hi-IN",hu:"hu-HU",id:"id-ID",it:"it-IT",ja:"ja-JP",ko:"ko-KR",lv:"lv-LV",ml:"ml-IN",ms:"ms-MY",nl:"nl-NL",no:"nb-NO",oc:"oc-FR",pl:"pl-PL",pt:"pt-PT","pt-BR":"pt-BR",ro:"ro-RO",ru:"ru-RU",sr:"sr-RS",se:"sv-SE",sk:"sk-SK",sq:"sq-AL",ta:"ta-IN",te:"te-IN",th:"th-TH",tr:"tr-TR",uk:"uk-UA",ur:"ur-PK",vi:"vi-VN",zh:"zh-CN","zh-tw":"zh-TW"};let{sceneCoordsToViewportCoords:sceneCoordsToViewportCoords,viewportCoordsToSceneCoords:viewportCoordsToSceneCoords,determineFocusDistance:determineFocusDistance,intersectElementWithLine:intersectElementWithLine,getCommonBoundingBox:getCommonBoundingBox,getMaximumGroups:getMaximumGroups,measureText:measureText,getLineHeight:getLineHeight,wrapText:wrapText,getFontString:getFontString,getBoundTextMaxWidth:getBoundTextMaxWidth,exportToSvg:exportToSvg,exportToBlob:exportToBlob,mutateElement:mutateElement,restore:restore,mermaidToExcalidraw:mermaidToExcalidraw,getFontFamilyString:getFontFamilyString,getContainerElement:getContainerElement,refreshTextDimensions:refreshTextDimensions,getCSSFontDefinition:getCSSFontDefinition,loadSceneFonts:loadSceneFonts,loadMermaid:loadMermaid,syncInvalidIndices:syncInvalidIndices}=excalidrawLib;function updateExcalidrawLib(){try{if(!excalidrawLib)throw new Error("excalidrawLib is undefined");const e=["sceneCoordsToViewportCoords","viewportCoordsToSceneCoords","determineFocusDistance","intersectElementWithLine","getCommonBoundingBox","measureText","getLineHeight","restore"];for(const t of e)if(!(t in excalidrawLib)||"function"!=typeof excalidrawLib[t])throw new Error(`Required function ${t} is missing from excalidrawLib`);({sceneCoordsToViewportCoords:sceneCoordsToViewportCoords,viewportCoordsToSceneCoords:viewportCoordsToSceneCoords,determineFocusDistance:determineFocusDistance,intersectElementWithLine:intersectElementWithLine,getCommonBoundingBox:getCommonBoundingBox,getMaximumGroups:getMaximumGroups,measureText:measureText,getLineHeight:getLineHeight,wrapText:wrapText,getFontString:getFontString,getBoundTextMaxWidth:getBoundTextMaxWidth,exportToSvg:exportToSvg,exportToBlob:exportToBlob,mutateElement:mutateElement,restore:restore,mermaidToExcalidraw:mermaidToExcalidraw,getFontFamilyString:getFontFamilyString,getContainerElement:getContainerElement,refreshTextDimensions:refreshTextDimensions,getCSSFontDefinition:getCSSFontDefinition,loadSceneFonts:loadSceneFonts,loadMermaid:loadMermaid,syncInvalidIndices:syncInvalidIndices}=excalidrawLib)}catch(e){errorHandler.handleError(e,"updateExcalidrawLib",!0)}}const FONTS_STYLE_ID="excalidraw-custom-fonts",CJK_STYLE_ID="excalidraw-cjk-fonts";function JSON_parse(e){return JSON.parse(e.replaceAll("[","["))}/Mac|iPod|iPhone|iPad/.test(window.navigator.platform);const DEVICE={isDesktop:!document.body.hasClass("is-tablet")&&!document.body.hasClass("is-mobile"),isPhone:document.body.hasClass("is-phone"),isTablet:document.body.hasClass("is-tablet"),isMobile:document.body.hasClass("is-mobile"),isLinux:document.body.hasClass("mod-linux")&&!document.body.hasClass("is-android"),isMacOS:document.body.hasClass("mod-macos")&&!document.body.hasClass("is-ios"),isWindows:document.body.hasClass("mod-windows"),isIOS:document.body.hasClass("is-ios"),isAndroid:document.body.hasClass("is-android")};let ROOTELEMENTSIZE=16;function setRootElementSize(e){if(e)return void(ROOTELEMENTSIZE=e);const t=document.createElement("div");t.style.fontSize="1rem",t.style.display="none",document.body.appendChild(t);const a=getComputedStyle(t),i=parseFloat(a.fontSize);return document.body.removeChild(t),i}const nanoid=customAlphabet("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",8),KEYCODE={ESC:27},ROUNDNESS={LEGACY:1,PROPORTIONAL_RADIUS:2,ADAPTIVE_RADIUS:3},THEME_FILTER="invert(100%) hue-rotate(180deg) saturate(1.25)",GITHUB_RELEASES="https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/",URLFETCHTIMEOUT=3e3,PLUGIN_ID="obsidian-excalidraw-plugin",SCRIPT_INSTALL_CODEBLOCK="excalidraw-script-install",SCRIPT_INSTALL_FOLDER="Downloaded",fileid=customAlphabet("1234567890abcdef",40),REG_LINKINDEX_INVALIDCHARS=/[<>:"\\|?*#]/g,REG_SECTION_REF_CLEAN=/([:#|^\\\r\n]|%%|\[\[|]])/g,REG_BLOCK_REF_CLEAN=/[!"#$%&()*+,.:;<=>?@^`{|}~\/\[\]\\\r\n]/g,IMAGE_TYPES=["jpeg","jpg","png","gif","svg","webp","bmp","ico","jtif","tif","jfif","avif"],ANIMATED_IMAGE_TYPES=["gif","webp","apng","svg"],EXPORT_TYPES=["svg","dark.svg","light.svg","png","dark.png","light.png"],MAX_IMAGE_SIZE=500,CARD_WIDTH=400,CARD_HEIGHT=500,VIDEO_TYPES=["mp4","webm","ogv","mov","mkv"],AUDIO_TYPES=["mp3","wav","m4a","3gp","flac","ogg","oga","opus"],CODE_TYPES=["json","css","js"],FRONTMATTER_KEYS={plugin:{name:"excalidraw-plugin",type:"text"},"export-transparent":{name:"excalidraw-export-transparent",type:"checkbox"},mask:{name:"excalidraw-mask",type:"checkbox"},"export-dark":{name:"excalidraw-export-dark",type:"checkbox"},"export-svgpadding":{name:"excalidraw-export-svgpadding",type:"number",depricated:!0},"export-padding":{name:"excalidraw-export-padding",type:"number"},"export-pngscale":{name:"excalidraw-export-pngscale",type:"number"},"export-embed-scene":{name:"excalidraw-export-embed-scene",type:"checkbox"},"link-prefix":{name:"excalidraw-link-prefix",type:"text"},"url-prefix":{name:"excalidraw-url-prefix",type:"text"},"link-brackets":{name:"excalidraw-link-brackets",type:"checkbox"},"onload-script":{name:"excalidraw-onload-script",type:"text"},"linkbutton-opacity":{name:"excalidraw-linkbutton-opacity",type:"number"},"default-mode":{name:"excalidraw-default-mode",type:"text"},font:{name:"excalidraw-font",type:"text"},"font-color":{name:"excalidraw-font-color",type:"text"},"border-color":{name:"excalidraw-border-color",type:"text"},"md-css":{name:"excalidraw-css",type:"text"},autoexport:{name:"excalidraw-autoexport",type:"text"},"iframe-theme":{name:"excalidraw-iframe-theme",type:"text",depricated:!0},"embeddable-theme":{name:"excalidraw-embeddable-theme",type:"text"},"open-as-markdown":{name:"excalidraw-open-md",type:"checkbox"},"embed-as-markdown":{name:"excalidraw-embed-md",type:"checkbox"}},CaptureUpdateAction={IMMEDIATELY:"IMMEDIATELY",NEVER:"NEVER",EVENTUALLY:"EVENTUALLY"},EMBEDDABLE_THEME_FRONTMATTER_VALUES=["light","dark","auto","dafault"],VIEW_TYPE_EXCALIDRAW="excalidraw",VIEW_TYPE_EXCALIDRAW_LOADING="excalidraw-loading",ICON_NAME="excalidraw-icon",RERENDER_EVENT="excalidraw-embed-rerender",BLANK_DRAWING=`{"type":"excalidraw","version":2,"source":"${GITHUB_RELEASES+PLUGIN_VERSION}","elements":[],"appState":{"gridSize":null,"viewBackgroundColor":"#ffffff"}}`,DARK_BLANK_DRAWING=`{"type":"excalidraw","version":2,"source":"${GITHUB_RELEASES+PLUGIN_VERSION}","elements":[],"appState":{"theme":"dark","gridSize":null,"viewBackgroundColor":"#ffffff"}}`,FRONTMATTER=["---","",`${FRONTMATTER_KEYS.plugin.name}: parsed`,"tags: [excalidraw]","","---","==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'","",""].join("\n"),EMPTY_MESSAGE="Hit enter to create a new drawing",TEXT_DISPLAY_RAW_ICON_NAME="presentation",SCRIPTENGINE_ICON_NAME="ScriptEngine",KEYBOARD_EVENT_TYPES=["keydown","keyup","keypress"],EXTENDED_EVENT_TYPES=["copy","cut","paste"],COLOR_NAMES=new Map;COLOR_NAMES.set("aliceblue","#f0f8ff"),COLOR_NAMES.set("antiquewhite","#faebd7"),COLOR_NAMES.set("aqua","#00ffff"),COLOR_NAMES.set("aquamarine","#7fffd4"),COLOR_NAMES.set("azure","#f0ffff"),COLOR_NAMES.set("beige","#f5f5dc"),COLOR_NAMES.set("bisque","#ffe4c4"),COLOR_NAMES.set("black","#000000"),COLOR_NAMES.set("blanchedalmond","#ffebcd"),COLOR_NAMES.set("blue","#0000ff"),COLOR_NAMES.set("blueviolet","#8a2be2"),COLOR_NAMES.set("brown","#a52a2a"),COLOR_NAMES.set("burlywood","#deb887"),COLOR_NAMES.set("cadetblue","#5f9ea0"),COLOR_NAMES.set("chartreuse","#7fff00"),COLOR_NAMES.set("chocolate","#d2691e"),COLOR_NAMES.set("coral","#ff7f50"),COLOR_NAMES.set("cornflowerblue","#6495ed"),COLOR_NAMES.set("cornsilk","#fff8dc"),COLOR_NAMES.set("crimson","#dc143c"),COLOR_NAMES.set("cyan","#00ffff"),COLOR_NAMES.set("darkblue","#00008b"),COLOR_NAMES.set("darkcyan","#008b8b"),COLOR_NAMES.set("darkgoldenrod","#b8860b"),COLOR_NAMES.set("darkgray","#a9a9a9"),COLOR_NAMES.set("darkgreen","#006400"),COLOR_NAMES.set("darkkhaki","#bdb76b"),COLOR_NAMES.set("darkmagenta","#8b008b"),COLOR_NAMES.set("darkolivegreen","#556b2f"),COLOR_NAMES.set("darkorange","#ff8c00"),COLOR_NAMES.set("darkorchid","#9932cc"),COLOR_NAMES.set("darkred","#8b0000"),COLOR_NAMES.set("darksalmon","#e9967a"),COLOR_NAMES.set("darkseagreen","#8fbc8f"),COLOR_NAMES.set("darkslateblue","#483d8b"),COLOR_NAMES.set("darkslategray","#2f4f4f"),COLOR_NAMES.set("darkturquoise","#00ced1"),COLOR_NAMES.set("darkviolet","#9400d3"),COLOR_NAMES.set("deeppink","#ff1493"),COLOR_NAMES.set("deepskyblue","#00bfff"),COLOR_NAMES.set("dimgray","#696969"),COLOR_NAMES.set("dodgerblue","#1e90ff"),COLOR_NAMES.set("firebrick","#b22222"),COLOR_NAMES.set("floralwhite","#fffaf0"),COLOR_NAMES.set("forestgreen","#228b22"),COLOR_NAMES.set("fuchsia","#ff00ff"),COLOR_NAMES.set("gainsboro","#dcdcdc"),COLOR_NAMES.set("ghostwhite","#f8f8ff"),COLOR_NAMES.set("gold","#ffd700"),COLOR_NAMES.set("goldenrod","#daa520"),COLOR_NAMES.set("gray","#808080"),COLOR_NAMES.set("green","#008000"),COLOR_NAMES.set("greenyellow","#adff2f"),COLOR_NAMES.set("honeydew","#f0fff0"),COLOR_NAMES.set("hotpink","#ff69b4"),COLOR_NAMES.set("indianred","#cd5c5c"),COLOR_NAMES.set("indigo","#4b0082"),COLOR_NAMES.set("ivory","#fffff0"),COLOR_NAMES.set("khaki","#f0e68c"),COLOR_NAMES.set("lavender","#e6e6fa"),COLOR_NAMES.set("lavenderblush","#fff0f5"),COLOR_NAMES.set("lawngreen","#7cfc00"),COLOR_NAMES.set("lemonchiffon","#fffacd"),COLOR_NAMES.set("lightblue","#add8e6"),COLOR_NAMES.set("lightcoral","#f08080"),COLOR_NAMES.set("lightcyan","#e0ffff"),COLOR_NAMES.set("lightgoldenrodyellow","#fafad2"),COLOR_NAMES.set("lightgrey","#d3d3d3"),COLOR_NAMES.set("lightgreen","#90ee90"),COLOR_NAMES.set("lightpink","#ffb6c1"),COLOR_NAMES.set("lightsalmon","#ffa07a"),COLOR_NAMES.set("lightseagreen","#20b2aa"),COLOR_NAMES.set("lightskyblue","#87cefa"),COLOR_NAMES.set("lightslategray","#778899"),COLOR_NAMES.set("lightsteelblue","#b0c4de"),COLOR_NAMES.set("lightyellow","#ffffe0"),COLOR_NAMES.set("lime","#00ff00"),COLOR_NAMES.set("limegreen","#32cd32"),COLOR_NAMES.set("linen","#faf0e6"),COLOR_NAMES.set("magenta","#ff00ff"),COLOR_NAMES.set("maroon","#800000"),COLOR_NAMES.set("mediumaquamarine","#66cdaa"),COLOR_NAMES.set("mediumblue","#0000cd"),COLOR_NAMES.set("mediumorchid","#ba55d3"),COLOR_NAMES.set("mediumpurple","#9370d8"),COLOR_NAMES.set("mediumseagreen","#3cb371"),COLOR_NAMES.set("mediumslateblue","#7b68ee"),COLOR_NAMES.set("mediumspringgreen","#00fa9a"),COLOR_NAMES.set("mediumturquoise","#48d1cc"),COLOR_NAMES.set("mediumvioletred","#c71585"),COLOR_NAMES.set("midnightblue","#191970"),COLOR_NAMES.set("mintcream","#f5fffa"),COLOR_NAMES.set("mistyrose","#ffe4e1"),COLOR_NAMES.set("moccasin","#ffe4b5"),COLOR_NAMES.set("navajowhite","#ffdead"),COLOR_NAMES.set("navy","#000080"),COLOR_NAMES.set("oldlace","#fdf5e6"),COLOR_NAMES.set("olive","#808000"),COLOR_NAMES.set("olivedrab","#6b8e23"),COLOR_NAMES.set("orange","#ffa500"),COLOR_NAMES.set("orangered","#ff4500"),COLOR_NAMES.set("orchid","#da70d6"),COLOR_NAMES.set("palegoldenrod","#eee8aa"),COLOR_NAMES.set("palegreen","#98fb98"),COLOR_NAMES.set("paleturquoise","#afeeee"),COLOR_NAMES.set("palevioletred","#d87093"),COLOR_NAMES.set("papayawhip","#ffefd5"),COLOR_NAMES.set("peachpuff","#ffdab9"),COLOR_NAMES.set("peru","#cd853f"),COLOR_NAMES.set("pink","#ffc0cb"),COLOR_NAMES.set("plum","#dda0dd"),COLOR_NAMES.set("powderblue","#b0e0e6"),COLOR_NAMES.set("purple","#800080"),COLOR_NAMES.set("rebeccapurple","#663399"),COLOR_NAMES.set("red","#ff0000"),COLOR_NAMES.set("rosybrown","#bc8f8f"),COLOR_NAMES.set("royalblue","#4169e1"),COLOR_NAMES.set("saddlebrown","#8b4513"),COLOR_NAMES.set("salmon","#fa8072"),COLOR_NAMES.set("sandybrown","#f4a460"),COLOR_NAMES.set("seagreen","#2e8b57"),COLOR_NAMES.set("seashell","#fff5ee"),COLOR_NAMES.set("sienna","#a0522d"),COLOR_NAMES.set("silver","#c0c0c0"),COLOR_NAMES.set("skyblue","#87ceeb"),COLOR_NAMES.set("slateblue","#6a5acd"),COLOR_NAMES.set("slategray","#708090"),COLOR_NAMES.set("snow","#fffafa"),COLOR_NAMES.set("springgreen","#00ff7f"),COLOR_NAMES.set("steelblue","#4682b4"),COLOR_NAMES.set("tan","#d2b48c"),COLOR_NAMES.set("teal","#008080"),COLOR_NAMES.set("thistle","#d8bfd8"),COLOR_NAMES.set("tomato","#ff6347"),COLOR_NAMES.set("turquoise","#40e0d0"),COLOR_NAMES.set("violet","#ee82ee"),COLOR_NAMES.set("wheat","#f5deb3"),COLOR_NAMES.set("white","#ffffff"),COLOR_NAMES.set("whitesmoke","#f5f5f5"),COLOR_NAMES.set("yellow","#ffff00"),COLOR_NAMES.set("yellowgreen","#9acd32");const DEFAULT_MD_EMBED_CSS='.snw-reference{display: none;}.excalidraw-md-host{padding:0px 10px}.excalidraw-md-footer{height:5px}foreignObject{background-color:transparent}p{display:block;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0px;margin-inline-end:0px;color:inherit}table,tr,th,td{color:inherit;border:1px solid;border-collapse:collapse;padding:3px}th{font-weight:bold;border-bottom:double;background-color:silver}.copy-code-button{display:none}code[class*=language-],pre[class*=language-]{color:#393a34;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;font-size:.9em;line-height:1.2em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre>code[class*=language-]{font-size:1em}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{background:#C1DEF1}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{background:#C1DEF1}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;background-color:#0000001a}:not(pre)>code[class*=language-]{padding:.2em;padding-top:1px;padding-bottom:1px;background:#f8f8f8;border:1px solid #dddddd}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:green;font-style:italic}.token.namespace{opacity:.7}.token.string{color:#a31515}.token.punctuation,.token.operator{color:#393a34}.token.url,.token.symbol,.token.number,.token.boolean,.token.variable,.token.constant,.token.inserted{color:#36acaa}.token.atrule,.token.keyword,.token.attr-value,.language-autohotkey .token.selector,.language-json .token.boolean,.language-json .token.number,code[class*=language-css]{color:#00f}.token.function{color:#393a34}.token.deleted,.language-autohotkey .token.tag{color:#9a050f}.token.selector,.language-autohotkey .token.keyword{color:#00009f}.token.important{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.class-name,.language-json .token.property{color:#2b91af}.token.tag,.token.selector{color:maroon}.token.attr-name,.token.property,.token.regex,.token.entity{color:red}.token.directive.tag .tag{background:#ffff00;color:#393a34}.line-numbers.line-numbers .line-numbers-rows{border-right-color:#a5a5a5}.line-numbers .line-numbers-rows>span:before{color:#2b91af}.line-highlight.line-highlight{background:rgba(193,222,241,.2);background:-webkit-linear-gradient(left,rgba(193,222,241,.2) 70%,rgba(221,222,241,0));background:linear-gradient(to right,rgba(193,222,241,.2) 70%,rgba(221,222,241,0))}blockquote{ font-style:italic;background-color:rgb(46,43,42,0.1);margin:0;margin-left:1em;border-radius:0 4px 4px 0;border:1px solid hsl(0,80%,32%);border-left-width:8px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;padding:10px 20px;margin-inline-start:30px;margin-inline-end:30px;}',SCRIPTENGINE_ICON='',DISK_ICON_NAME="save",EXPORT_IMG_ICON=' ',EXPORT_IMG_ICON_NAME="export-img",EXCALIDRAW_ICON='',TAG_PDFEXPORT="PDFExport",TAG_MDREADINGMODE="MDReadingMode",TAG_AUTOEXPORT="Autoexport",modifierKeyTooltipMessages=()=>({WebBrowserDragAction:{"image-import":t$d("WEB_DRAG_IMPORT_IMAGE"),"image-url":t$d("WEB_DRAG_IMAGE_URL"),link:t$d("WEB_DRAG_LINK"),embeddable:t$d("WEB_DRAG_EMBEDDABLE")},LocalFileDragAction:{"image-import":t$d("LOCAL_DRAG_IMPORT"),"image-url":t$d("LOCAL_DRAG_IMAGE"),link:t$d("LOCAL_DRAG_LINK"),embeddable:t$d("LOCAL_DRAG_EMBEDDABLE")},InternalDragAction:{image:t$d("INTERNAL_DRAG_IMAGE"),"image-fullsize":t$d("INTERNAL_DRAG_IMAGE_FULL"),link:t$d("INTERNAL_DRAG_LINK"),embeddable:t$d("INTERNAL_DRAG_EMBEDDABLE")},LinkClickAction:{"active-pane":t$d("LINK_CLICK_ACTIVE"),"new-pane":t$d("LINK_CLICK_NEW_PANE"),"popout-window":t$d("LINK_CLICK_POPOUT"),"new-tab":t$d("LINK_CLICK_NEW_TAB"),"md-properties":t$d("LINK_CLICK_MD_PROPS")}}),processModifiers=(e,t)=>{const a=window.ExcalidrawAutomate.plugin.settings,i=(DEVICE.isMacOS||DEVICE.isIOS?a.modifierKeyConfig.Mac:a.modifierKeyConfig.Win)[t];for(const t of i.rules){const{shift:a,ctrl_cmd:i,alt_opt:n,meta_ctrl:r,result:s}=t;if(isSHIFT(e)===a&&isWinCTRLorMacCMD(e)===i&&isWinALTorMacOPT(e)===n&&isWinMETAorMacCTRL(e)===r)return s}return i.defaultAction},labelCTRL=()=>DEVICE.isIOS||DEVICE.isMacOS?"CMD":"CTRL",labelALT=()=>DEVICE.isIOS||DEVICE.isMacOS?"OPT":"ALT",labelMETA=()=>DEVICE.isIOS||DEVICE.isMacOS?"CTRL":DEVICE.isWindows?"WIN":"META",labelSHIFT=()=>"SHIFT",isWinCTRLorMacCMD=e=>DEVICE.isIOS||DEVICE.isMacOS?e.metaKey:e.ctrlKey,isWinALTorMacOPT=e=>e.altKey,isWinMETAorMacCTRL=e=>DEVICE.isIOS||DEVICE.isMacOS?e.ctrlKey:e.metaKey,isSHIFT=e=>e.shiftKey,setCTRL=(e,t)=>(DEVICE.isIOS||DEVICE.isMacOS?e.metaKey=t:e.ctrlKey=t,e),setALT=(e,t)=>(e.altKey=t,e),setMETA=(e,t)=>(DEVICE.isIOS||DEVICE.isMacOS?e.ctrlKey=t:e.metaKey=t,e),setSHIFT=(e,t)=>(e.shiftKey=t,e),scaleToFullsizeModifier=e=>{const t=window.ExcalidrawAutomate.plugin.settings,a=(DEVICE.isMacOS||DEVICE.isIOS?t.modifierKeyConfig.Mac:t.modifierKeyConfig.Win).InternalDragAction.rules.find((e=>"image-fullsize"===e.result));if(!a)return!1;const{shift:i,ctrl_cmd:n,alt_opt:r,meta_ctrl:s,result:o}=a;return isSHIFT(e)===i&&isWinCTRLorMacCMD(e)===n&&isWinALTorMacOPT(e)===r&&isWinMETAorMacCTRL(e)===s},linkClickModifierType=e=>{const t=processModifiers(e,"LinkClickAction");return DEVICE.isDesktop||"popout-window"!==t?t:"active-pane"},webbrowserDragModifierType=e=>processModifiers(e,"WebBrowserDragAction"),localFileDragModifierType=e=>processModifiers(e,"LocalFileDragAction"),internalDragModifierType=e=>processModifiers(e,"InternalDragAction"),emulateCTRLClickForLinks=e=>({shiftKey:e.shiftKey,ctrlKey:e.ctrlKey||!(DEVICE.isIOS||DEVICE.isMacOS),metaKey:e.metaKey||DEVICE.isIOS||DEVICE.isMacOS,altKey:e.altKey}),emulateKeysForLinkClick=e=>{const t={shiftKey:!1,ctrlKey:!1,metaKey:!1,altKey:!1};if(!e)return t;const a=DEVICE.isMacOS||DEVICE.isIOS?"Mac":"Win",i=window.ExcalidrawAutomate.plugin.settings.modifierKeyConfig,n=i[a]?.LinkClickAction;if(n){const a=n.rules.find((t=>t.result===e));if(!a){const e=n.defaultAction;return emulateKeysForLinkClick(e)}setCTRL(t,a.ctrl_cmd),setALT(t,a.alt_opt),setMETA(t,a.meta_ctrl),setSHIFT(t,a.shift)}return t},anyModifierKeysPressed=e=>e.shiftKey||e.ctrlKey||e.metaKey||e.altKey;function modifierLabel(e,t){const a="Mac"===t||void 0===t&&(DEVICE.isIOS||DEVICE.isMacOS);return e.map((e=>{switch(e){case"Mod":return a?"CMD":"CTRL";case"Ctrl":return"CTRL";case"Meta":return a?"CMD":"WIN";case"Shift":return"SHIFT";case"Alt":return a?"OPTION":"ALT";default:return e}})).join("+")}var en={SELECT_FILE_TO_INSERT:"Select a file to insert",CONVERT_URL_TO_FILE:"Save image from URL to local file",UNZIP_CURRENT_FILE:"Decompress current Excalidraw file",ZIP_CURRENT_FILE:"Compress current Excalidraw file",PUBLISH_SVG_CHECK:"Obsidian Publish: Find SVG and PNG exports that are out of date",EMBEDDABLE_PROPERTIES:"Embeddable Properties",EMBEDDABLE_RELATIVE_ZOOM:"Scale selected embeddable elements to 100% relative to the current canvas zoom",OPEN_IMAGE_SOURCE:"Open Excalidraw drawing",INSTALL_SCRIPT:"Install the script",UPDATE_SCRIPT:"Update available - Click to install",CHECKING_SCRIPT:"Checking for newer version - Click to reinstall",UNABLETOCHECK_SCRIPT:"Update check failed - Click to reinstall",UPTODATE_SCRIPT:"Script is up to date - Click to reinstall",OPEN_AS_EXCALIDRAW:"Open as Excalidraw Drawing",TOGGLE_MODE:"Toggle between Excalidraw and Markdown mode",DUPLICATE_IMAGE:"Duplicate selected image with a different image ID",CONVERT_NOTE_TO_EXCALIDRAW:"Convert markdown note to Excalidraw Drawing",CONVERT_EXCALIDRAW:"Convert *.excalidraw to *.md files",CREATE_NEW:"New drawing",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (Logseq compatibility)",DOWNLOAD_LIBRARY:"Export stencil library as an *.excalidrawlib file",OPEN_EXISTING_NEW_PANE:"Open existing drawing - IN A NEW PANE",OPEN_EXISTING_ACTIVE_PANE:"Open existing drawing - IN THE CURRENT ACTIVE PANE",TRANSCLUDE:"Embed a drawing",TRANSCLUDE_MOST_RECENT:"Embed the most recently edited drawing",TOGGLE_LEFTHANDED_MODE:"Toggle left-handed mode",TOGGLE_SPLASHSCREEN:"Show splash screen in new drawings",FLIP_IMAGE:"Open the back-of-the-note for the selected image in a popout window",NEW_IN_NEW_PANE:"Create new drawing - IN AN ADJACENT WINDOW",NEW_IN_NEW_TAB:"Create new drawing - IN A NEW TAB",NEW_IN_ACTIVE_PANE:"Create new drawing - IN THE CURRENT ACTIVE WINDOW",NEW_IN_POPOUT_WINDOW:"Create new drawing - IN A POPOUT WINDOW",NEW_IN_NEW_PANE_EMBED:"Create new drawing - IN AN ADJACENT WINDOW - and embed into active document",NEW_IN_NEW_TAB_EMBED:"Create new drawing - IN A NEW TAB - and embed into active document",NEW_IN_ACTIVE_PANE_EMBED:"Create new drawing - IN THE CURRENT ACTIVE WINDOW - and embed into active document",NEW_IN_POPOUT_WINDOW_EMBED:"Create new drawing - IN A POPOUT WINDOW - and embed into active document",TOGGLE_LOCK:"Toggle Text Element between edit RAW and PREVIEW",DELETE_FILE:"Delete selected image or Markdown file from Obsidian Vault",MARKER_FRAME_SHOW:"Show Marker Frames",MARKER_FRAME_HIDE:"Hide Marker Frames",MARKER_FRAME_TITLE_SHOW:"Show Marker Frame Titles",MARKER_FRAME_TITLE_HIDE:"Hide Marker Frame Titles",COPY_ELEMENT_LINK:"Copy [[link]] for selected element(s)",COPY_DRAWING_LINK:"Copy ![[embed link]] for this drawing",INSERT_LINK_TO_ELEMENT:`Copy [[link]] for selected element to clipboard. ${labelCTRL()}+CLICK to copy 'group=' link. ${labelSHIFT()}+CLICK to copy an 'area=' link.`,INSERT_LINK_TO_ELEMENT_GROUP:"Copy 'group=' ![[link]] for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_AREA:"Copy 'area=' ![[link]] for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_FRAME:"Copy 'frame=' ![[link]] for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_FRAME_CLIPPED:"Copy 'clippedframe=' ![[link]] for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_NORMAL:"Copy [[link]] for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_ERROR:"Select a single element in the scene",INSERT_LINK_TO_ELEMENT_READY:"Link is READY and available on the clipboard",INSERT_LINK:"Insert link to file",INSERT_COMMAND:"Insert Obsidian Command as a link",INSERT_IMAGE:"Insert image or Excalidraw drawing from your vault",IMPORT_SVG:"Import an SVG file as Excalidraw strokes (limited SVG support, TEXT currently not supported)",IMPORT_SVG_CONTEXTMENU:"Convert SVG to strokes - with limitations",INSERT_MD:"Insert markdown file from vault",INSERT_PDF:"Insert PDF file from vault",INSERT_LAST_ACTIVE_PDF_PAGE_AS_IMAGE:"Insert last active PDF page as image",UNIVERSAL_ADD_FILE:"Insert ANY file",INSERT_CARD:"Add back-of-note card",CONVERT_CARD_TO_FILE:"Move back-of-note card to File",ERROR_TRY_AGAIN:"Please try again.",PASTE_CODEBLOCK:"Paste code block",INSERT_LATEX:"Insert LaTeX formula (e.g. \\binom{n}{k} = \\frac{n!}{k!(n-k)!}).",ENTER_LATEX:"Enter a valid LaTeX expression",READ_RELEASE_NOTES:"Read latest release notes",RUN_OCR:"OCR full drawing: Grab text from freedraw + images to clipboard and doc.props",RERUN_OCR:"OCR full drawing re-run: Grab text from freedraw + images to clipboard and doc.props",RUN_OCR_ELEMENTS:"OCR selected elements: Grab text from freedraw + images to clipboard",TRAY_MODE:"Toggle property-panel tray-mode",SEARCH:"Search for text in drawing",CROP_PAGE:"Crop and mask selected page",CROP_IMAGE:"Crop and mask image",ANNOTATE_IMAGE:"Annotate image in Excalidraw",INSERT_ACTIVE_PDF_PAGE_AS_IMAGE:"Insert active PDF page as image",RESET_IMG_TO_100:"Set selected image element size to 100% of original",RESET_IMG_ASPECT_RATIO:"Reset selected image element aspect ratio",TEMPORARY_DISABLE_AUTOSAVE:"Disable autosave until next time Obsidian starts (only set this if you know what you are doing)",TEMPORARY_ENABLE_AUTOSAVE:"Enable autosave",FONTS_LOADED:"Excalidraw: CJK Fonts loaded",FONTS_LOAD_ERROR:"Excalidraw: Could not find CJK Fonts in the assets folder\n",SELECT_LINK_TO_OPEN:"Select a link to open",ERROR_CANT_READ_FILEPATH:"Error, can't read file path. Importing file instead",NO_SEARCH_RESULT:"Didn't find a matching element in the drawing",FORCE_SAVE_ABORTED:"Force Save aborted because saving is in progress",LINKLIST_SECOND_ORDER_LINK:"Second Order Link",MARKDOWN_EMBED_CUSTOMIZE_LINK_PROMPT_TITLE:"Customize the Embedded File link",MARKDOWN_EMBED_CUSTOMIZE_LINK_PROMPT:"Do not add [[square brackets]] around the filename!
    For markdown-page images follow this format when editing your link: filename#^blockref|WIDTHxMAXHEIGHT
    You can anchor Excalidraw images to 100% of their size by adding |100% to the end of the link.
    You can change the PDF page by changing #page=1 to #page=2 etc.
    PDF rect crop values are: left, bottom, right, top. Eg.: #rect=0,0,500,500
    ",FRAME_CLIPPING_ENABLED:"Frame Rendering: Enabled",FRAME_CLIPPING_DISABLED:"Frame Rendering: Disabled",ARROW_BINDING_INVERSE_MODE:"Inverted Mode: Default arrow binding is now disabled. Use CTRL/CMD to temporarily enable binding when needed.",ARROW_BINDING_NORMAL_MODE:"Normal Mode: Arrow binding is now enabled. Use CTRL/CMD to temporarily disable binding when needed.",EXPORT_FILENAME_PROMPT:"Please provide filename",EXPORT_FILENAME_PROMPT_PLACEHOLDER:"filename, leave blank to cancel action",WARNING_SERIOUS_ERROR:"WARNING: Excalidraw ran into an unknown problem!\n\nThere is a risk that your most recent changes cannot be saved.\n\nTo be on the safe side...\n1) Please select your drawing using CTRL/CMD+A and make a copy with CTRL/CMD+C.\n2) Then create an empty drawing in a new pane by CTRL/CMD+clicking the Excalidraw ribbon button,\n3) and paste your work to the new document with CTRL/CMD+V.",ARIA_LABEL_TRAY_MODE:"Tray-mode offers an alternative, more spacious canvas",TRAY_TRAY_MODE:"Toggle tray-mode",TRAY_SCRIPT_LIBRARY:"Script Library",TRAY_SCRIPT_LIBRARY_ARIA:"Explore the Excalidraw Script Library",TRAY_EXPORT:"Export Image...",TRAY_EXPORT_ARIA:"Export image as PNG, SVG, or Excalidraw file",TRAY_SAVE:"Save",TRAY_SWITCH_TO_MD:"Open as Markdown",TRAY_SWITCH_TO_MD_ARIA:"Switch to markdown view",MASK_FILE_NOTICE:"This is a mask file. It is used to crop images and mask out parts of the image. Press and hold notice to open the help video.",INSTALL_SCRIPT_BUTTON:"Install or update Excalidraw Scripts",OPEN_AS_MD:"Open as Markdown",EXPORT_IMAGE:"Export Image",OPEN_LINK:"Open selected text as link\n(SHIFT+CLICK to open in a new pane)",EXPORT_EXCALIDRAW:"Export to an .Excalidraw file",LINK_BUTTON_CLICK_NO_TEXT:"Select an element that contains an internal or external link.\n",LINEAR_ELEMENT_LINK_CLICK_ERROR:"Arrow- and Line-Element links cannot be navigated by "+labelCTRL()+" + CLICKing on the element because that also activates the line editor.\nUse the right-click context menu to open the link, or click the link indicator in the top right corner of the element.\n",FILENAME_INVALID_CHARS:'File name cannot contain any of the following characters: * " \\ < > : | ? #',FORCE_SAVE:"Save (will also update transclusions)",RAW:"Change to PREVIEW mode (only affects text-elements with links or transclusions)",PARSED:"Change to RAW mode (only affects text-elements with links or transclusions)",NOFILE:"Excalidraw (no file)",COMPATIBILITY_MODE:"*.excalidraw file opened in compatibility mode. Convert to new format for full plugin functionality.",CONVERT_FILE:"Convert to new format",BACKUP_AVAILABLE:"We encountered an error while loading your drawing. This might have occurred if Obsidian unexpectedly closed during a save operation. For example, if you accidentally closed Obsidian on your mobile device while saving.

    GOOD NEWS: Fortunately, a local backup is available. However, please note that if you last modified this drawing on a different device (e.g., tablet) and you are now on your desktop, that other device likely has a more recent backup.

    I recommend trying to open the drawing on your other device first and restore the backup from its local storage.

    Would you like to load the backup?",BACKUP_RESTORED:"Backup restored",BACKUP_SAVE_AS_FILE:"This drawing is empty. A non-empty backup is available. Would you like to restore it as a new file and open it in a new tab?",BACKUP_SAVE:"Restore",BACKUP_DELETE:"Delete Backup",BACKUP_CANCEL:"Cancel",CACHE_NOT_READY:"I apologize for the inconvenience, but an error occurred while loading your file.

    Having a little patience can save you a lot of time...

    The plugin has a backup cache, but it appears that you have just started Obsidian. Initializing the Backup Cache may take some time, usually up to a minute or more depending on your device's performance. You will receive a notification in the top right corner when the cache initialization is complete.

    Please press OK to attempt loading the file again and check if the cache has finished initializing. If you see a completely empty file behind this message, I recommend waiting until the backup cache is ready before proceeding. Alternatively, you can choose Cancel to manually correct your file.
    ",OBSIDIAN_TOOLS_PANEL:"Obsidian Tools Panel",ERROR_SAVING_IMAGE:"Unknown error occurred while fetching the image. It could be that for some reason the image is not available or rejected the fetch request from Obsidian",WARNING_PASTING_ELEMENT_AS_TEXT:"PASTING EXCALIDRAW ELEMENTS AS A TEXT ELEMENT IS NOT ALLOWED",USE_INSERT_FILE_MODAL:"Use 'Insert Any File' to embed a markdown note",RECURSIVE_INSERT_ERROR:"You may not recursively insert part of an image into the same image as it would create an infinite loop",CONVERT_TO_MARKDOWN:"Convert to file...",SELECT_TEXTELEMENT_ONLY:"Select text element only (not container)",REMOVE_LINK:"Remove text element link",LASER_ON:"Enable laser pointer",LASER_OFF:"Disable laser pointer",WELCOME_RANK_NEXT:"more drawings until the next rank!",WELCOME_RANK_LEGENDARY:"You're at the top. Keep on being legendary!",WELCOME_COMMAND_PALETTE:'Type "Excalidraw" in the Command Palette',WELCOME_OBSIDIAN_MENU:"Explore the Obsidian Menu in the top right",WELCOME_SCRIPT_LIBRARY:"Visit the Script Library",WELCOME_HELP_MENU:"Find help in the hamburger-menu",WELCOME_YOUTUBE_ARIA:"Visual PKM YouTube Channel",WELCOME_YOUTUBE_LINK:"Check out the Visual PKM YouTube channel.",WELCOME_DISCORD_ARIA:"Join the Discord Server",WELCOME_DISCORD_LINK:"Join the Discord Server",WELCOME_TWITTER_ARIA:"Follow me on Twitter",WELCOME_TWITTER_LINK:"Follow me on Twitter",WELCOME_LEARN_ARIA:"Learn Visual PKM",WELCOME_LEARN_LINK:"Sign up for the Visual Thinking Workshop",WELCOME_DONATE_ARIA:"Donate to support Excalidraw-Obsidian",WELCOME_DONATE_LINK:'Say "Thank You" & support the plugin.',SAVE_IS_TAKING_LONG:"Saving your previous file is taking a long time. Please wait...",SAVE_IS_TAKING_VERY_LONG:"For better performance, consider splitting large drawings into several smaller files.",SEARCH_COPIED_TO_CLIPBOARD:"Markdown ready on clipboard",SEARCH_COPY_TO_CLIPBOARD_ARIA:"Copy the entire dialog to the clipboard as Markdown. Ideal for use with tools like ChatGPT to search and understand.",SEARCH_SHOWHIDE_ARIA:"Show/Hide search bar",SEARCH_NEXT:"Next",SEARCH_PREVIOUS:"Previous",NOTEBOOKLM_LINK_ARIA:"Ask NotebookLM for help about the plugin. This model is pre-loaded with all my video transcripts, release notes and other helpful content. Chat with NotebookLM to explore my 250+ videos and the Excalidraw documentation.",NOTEBOOKLM_LINK_TEXT:"Learn the Plugin. Access the NotebookLM knowledgebase.",LINKS_BUGS_ARIA:"Report bugs and raise feature requsts on the plugin's GitHub page",LINKS_BUGS:"Report Bugs",LINKS_YT_ARIA:"Check out my YouTube channel to learn about Visual Thinking and Excalidraw",LINKS_YT:"Learn on YouTube",LINKS_DISCORD_ARIA:"Join the Visual Thinking Workshop Discord Server",LINKS_DISCORD:"Join the Community",LINKS_TWITTER:"Follow me",LINKS_VTW_ARIA:"Learn about Visual PKM, Excalidraw, Obsidian, ExcaliBrain and more",LINKS_VTW:"Join a Workshop",LINKS_BOOK_ARIA:"Read Sketch Your Mind, my book on Visual Thinking",LINKS_BOOK:"Read the Book",LINKS_WIKI:"Plugin Wiki",LINKS_WIKI_ARIA:"Explore the Excalidraw Plugin Wiki",RELEASE_NOTES_NAME:"Display Release Notes after update",RELEASE_NOTES_DESC:"Toggle ON: Display release notes each time you update Excalidraw to a newer version.
    Toggle OFF: Silent mode. You can still read release notes on GitHub.",NEWVERSION_NOTIFICATION_NAME:"Plugin update notification",NEWVERSION_NOTIFICATION_DESC:"Toggle ON: Show a notification when a new version of the plugin is available.
    Toggle OFF: Silent mode. You need to check for plugin updates in Community Plugins.",BASIC_HEAD:"Basic",BASIC_DESC:'In the "Basic" settings, you can configure options such as displaying release notes after updates, receiving plugin update notifications, setting the default location for new drawings, specifying the Excalidraw folder for embedding drawings into active documents, defining an Excalidraw template file, and designating an Excalidraw Automate script folder for managing automation scripts.',FOLDER_NAME:"Excalidraw folder (CAsE sEnsITive!)",FOLDER_DESC:"Default location for new drawings. If empty, drawings will be created in the Vault root.",CROP_SUFFIX_NAME:"Crop file suffix",CROP_SUFFIX_DESC:"The last part of the filename for new drawings created when cropping an image. Leave empty if you don't need a suffix.",CROP_PREFIX_NAME:"Crop file prefix",CROP_PREFIX_DESC:"The first part of the filename for new drawings created when cropping an image. Leave empty if you don't need a prefix.",ANNOTATE_SUFFIX_NAME:"Annotation file suffix",ANNOTATE_SUFFIX_DESC:"The last part of the filename for new drawings created when annotating an image. Leave empty if you don't need a suffix.",ANNOTATE_PREFIX_NAME:"Annotation file prefix",ANNOTATE_PREFIX_DESC:"The first part of the filename for new drawings created when annotating an image. Leave empty if you don't need a prefix.",ANNOTATE_PRESERVE_SIZE_NAME:"Preserve image size when annotating",ANNOTATE_PRESERVE_SIZE_DESC:"When annotating an image in markdown the replacement image link will include the width of the original image.",CROP_FOLDER_NAME:"Crop file folder (CaSE senSItive!)",CROP_FOLDER_DESC:"Default location for new drawings created when cropping an image. If empty, drawings will be created following the Vault attachments settings.",ANNOTATE_FOLDER_NAME:"Image annotation file folder (CaSe SeNSitIVe!)",ANNOTATE_FOLDER_DESC:"Default location for new drawings created when annotating an image. If empty, drawings will be created following the Vault attachments settings.",FOLDER_EMBED_NAME:"Use Excalidraw folder when embedding a drawing into the active document",FOLDER_EMBED_DESC:"Define which folder to place the newly inserted drawing into when using the command palette action: 'Create a new drawing and embed into active document'.
    Toggle ON: Use Excalidraw folder
    Toggle OFF: Use the attachments folder defined in Obsidian settings.",TEMPLATE_NAME:"Excalidraw template file or folder (caSe SenSiTive!)",TEMPLATE_DESC:"Full filepath or folderpath to the Excalidraw template.
    Template File:E.g.: If your template is in the default Excalidraw folder and its name is Template.md, the setting would be: Excalidraw/Template.md (or just Excalidraw/Template - you may omit the .md file extension). If you are using Excalidraw in compatibility mode, then your template must be a legacy Excalidraw file as well such as Excalidraw/Template.excalidraw.
    Template Folder: You can also set a folder as your template. In this case you will be prompted which template to use when creating a new drawing.
    Pro Tip: If you are using the Obsidian Templater plugin, you can add Templater code to your different Excalidraw templates to automate configuration of your drawings.",SCRIPT_FOLDER_NAME:"Excalidraw Automate script folder (CASE SeNSitiVE!)",SCRIPT_FOLDER_DESC:"The files you place in this folder will be treated as Excalidraw Automate scripts. You can access your scripts from Excalidraw via the Obsidian Command Palette. Assign hotkeys to your favorite scripts just like to any other Obsidian command. The folder may not be the root folder of your Vault. ",AI_HEAD:"AI Settings - Experimental",AI_DESC:'In the "AI" settings, you can configure options for using OpenAI\'s GPT API. While the OpenAI API is in beta, its use is strictly limited — as such we require you use your own API key. You can create an OpenAI account, add a small credit (5 USD minimum), and generate your own API key. Once API key is set, you can use the AI tools in Excalidraw.',AI_ENABLED_NAME:"Enable AI features",AI_ENABLED_DESC:"You need to reopen Excalidraw for the changes to take effect.",AI_OPENAI_TOKEN_NAME:"OpenAI API key",AI_OPENAI_TOKEN_DESC:"You can get your OpenAI API key from your OpenAI account.",AI_OPENAI_TOKEN_PLACEHOLDER:"Enter your OpenAI API key here",AI_OPENAI_DEFAULT_MODEL_NAME:"Default AI model",AI_OPENAI_DEFAULT_MODEL_DESC:"The default AI model to use when generating text. This is a freetext field, so you can enter any valid OpenAI model name. Find out more about the available models on the OpenAI website.",AI_OPENAI_DEFAULT_MODEL_PLACEHOLDER:"Enter your default AI model here. e.g.: gpt-3.5-turbo-1106",AI_OPENAI_DEFAULT_IMAGE_MODEL_NAME:"Default Image Generation AI model",AI_OPENAI_DEFAULT_IMAGE_MODEL_DESC:"The default AI model to use when generating images. Image editing and variations are only supported by dall-e-2 at this time by OpenAI, for this reason dall-e-2 will automatically be used in such cases regardless of this setting.
    This is a freetext field, so you can enter any valid OpenAI model name. Find out more about the available models on the OpenAI website.",AI_OPENAI_DEFAULT_IMAGE_MODEL_PLACEHOLDER:"Enter your default Image Generation AI model here e.g.: dall-e-3",AI_OPENAI_DEFAULT_VISION_MODEL_NAME:"Default AI vision model",AI_OPENAI_DEFAULT_VISION_MODEL_DESC:"The default AI vision model to use when generating text from images. This is a freetext field, so you can enter any valid OpenAI model name. Find out more about the available models on the OpenAI website.",AI_OPENAI_DEFAULT_API_URL_NAME:"OpenAI API URL",AI_OPENAI_DEFAULT_API_URL_DESC:"The default OpenAI API URL. This is a freetext field, so you can enter any valid OpenAI API compatible URL. Excalidraw will use this URL when posting API requests to OpenAI. I am not doing any error handling on this field, so make sure you enter a valid URL and only change this if you know what you are doing. ",AI_OPENAI_DEFAULT_IMAGE_API_URL_NAME:"OpenAI Image Generation API URL",AI_OPENAI_DEFAULT_VISION_MODEL_PLACEHOLDER:"Enter your default AI vision model here. e.g.: gpt-4o",SAVING_HEAD:"Saving",SAVING_DESC:"In the 'Saving' section of Excalidraw Settings, you can configure how your drawings are saved. This includes options for compressing Excalidraw JSON in Markdown, setting autosave intervals for both desktop and mobile, defining filename formats, and choosing whether to use the .excalidraw.md or .md file extension. ",COMPRESS_NAME:"Compress Excalidraw JSON in Markdown",COMPRESS_DESC:"By enabling this feature Excalidraw will store the drawing JSON in a Base64 compressed format using the LZ-String algorithm. This will reduce the chance of Excalidraw JSON cluttering your search results in Obsidian. As a side effect, this will also reduce the filesize of Excalidraw drawings. When you switch an Excalidraw drawing to Markdown view, using the options menu in Excalidraw, the file will be saved without compression, so that you can read and edit the JSON string. The drawing will be compressed again once you switch back to Excalidraw view. The setting only has effect 'point forward', meaning, existing drawings will not be affected by the setting until you open them and save them.
    Toggle ON: Compress drawing JSON
    Toggle OFF: Leave drawing JSON uncompressed",DECOMPRESS_FOR_MD_NAME:"Decompress Excalidraw JSON in Markdown View",DECOMPRESS_FOR_MD_DESC:"By enabling this feature Excalidraw will automatically decompress the drawing JSON when you switch to Markdown view. This will allow you to easily read and edit the JSON string. The drawing will be compressed again once you switch back to Excalidraw view and save the drawing (CTRL+S).
    I recommend switching this feature off as it will result in smaller file sizes and avoiding unnecessary results in Obsidian search. You can always use the 'Excalidraw: Decompress current Excalidraw file' command from the command palette to manually decompress the drawing JSON when you need to read or edit it.",AUTOSAVE_INTERVAL_DESKTOP_NAME:"Interval for autosave on Desktop",AUTOSAVE_INTERVAL_DESKTOP_DESC:"The time interval between saves. Autosave will skip if there are no changes in the drawing. Excalidraw will also save the file when closing a workspace tab or navigating within Obsidian, but away from the active Excalidraw tab (i.e. clicking on the Obsidian ribbon or checking backlinks, etc.). Excalidraw will not be able to save your work when terminating Obsidian directly either by killing the Obsidian process, or clicking to close Obsidian altogether.",AUTOSAVE_INTERVAL_MOBILE_NAME:"Interval for autosave on Mobile",AUTOSAVE_INTERVAL_MOBILE_DESC:"I recommend a more frequent interval for Mobiles. Excalidraw will also save the file when closing a workspace tab or navigating within Obsidian, but away from the active Excalidraw tab (i.e. tapping on the Obsidian ribbon or checking backlinks, etc.). Excalidraw will not be able to save your work when terminating Obsidian directly (i.e. swiping it away). Also note, that when you switch apps on a Mobile device, sometimes Android and iOS closes Obsidian in the background to save system resources. In such a case Excalidraw will not be able to save the latest changes.",FILENAME_HEAD:"Filename",FILENAME_DESC:"

    Click this link for the date and time format reference.

    ",FILENAME_SAMPLE:"Filename for a new drawing is: ",FILENAME_EMBED_SAMPLE:"Filename for a new embedded drawing is: ",FILENAME_PREFIX_NAME:"Filename prefix",FILENAME_PREFIX_DESC:"The first part of the filename",FILENAME_PREFIX_EMBED_NAME:"Filename prefix when embedding a new drawing into a markdown note",FILENAME_PREFIX_EMBED_DESC:"Should the filename of the newly inserted drawing start with the name of the active markdown note when using the command palette action: Create a new drawing and embed into active document?
    Toggle ON: Yes, the filename of a new drawing should start with filename of the active document
    Toggle OFF: No, filename of a new drawing should not include the filename of the active document",FILENAME_POSTFIX_NAME:"Custom text after markdown Note's name when embedding",FILENAME_POSTFIX_DESC:"Affects filename only when embedding into a markdown document. This text will be inserted after the note's name, but before the date.",FILENAME_DATE_NAME:"Filename Date",FILENAME_DATE_DESC:"The last part of the filename. Leave empty if you do not want a date.",FILENAME_EXCALIDRAW_EXTENSION_NAME:".excalidraw.md or .md",FILENAME_EXCALIDRAW_EXTENSION_DESC:"This setting does not apply if you use Excalidraw in compatibility mode, i.e. you are not using Excalidraw markdown files.
    Toggle ON: filename ends with .excalidraw.md
    Toggle OFF: filename ends with .md",DISPLAY_HEAD:"Excalidraw appearance and behavior",DISPLAY_DESC:"In the 'appearance and behavior' section of Excalidraw Settings, you can fine-tune how Excalidraw appears and behaves. This includes options for dynamic styling, left-handed mode, matching Excalidraw and Obsidian themes, default modes, and more.",OVERRIDE_OBSIDIAN_FONT_SIZE_NAME:"Limit Obsidian Font Size to Editor Text",OVERRIDE_OBSIDIAN_FONT_SIZE_DESC:"Obsidian's custom font size setting affects the entire interface, including Excalidraw and themes that depend on the default font size. Enabling this option restricts font size changes to editor text, which will improve the look of Excalidraw. If parts of the UI look incorrect after enabling, try turning this setting off.",DYNAMICSTYLE_NAME:"Dynamic styling",DYNAMICSTYLE_DESC:"Change Excalidraw UI colors to match the canvas color",LEFTHANDED_MODE_NAME:"Left-handed mode",LEFTHANDED_MODE_DESC:"Currently only has effect in tray-mode. If turned on, the tray will be on the right side.
    Toggle ON: Left-handed mode.
    Toggle OFF: Right-handed mode.",IFRAME_MATCH_THEME_NAME:"Markdown embeds to match Excalidraw theme",IFRAME_MATCH_THEME_DESC:"Toggle ON: Set this to true if for example you are using Obsidian in dark-mode but use excalidraw with a light background. With this setting the embedded Obsidian markdown document will match the Excalidraw theme (i.e. light colors if Excalidraw is in light mode).
    Toggle OFF: Set this to false if you want the embedded Obsidian markdown document to match the Obsidian theme (i.e. dark colors if Obsidian is in dark mode).",MATCH_THEME_NAME:"New drawing to match Obsidian theme",MATCH_THEME_DESC:"If theme is dark, new drawing will be created in dark mode. This does not apply when you use a template for new drawings. Also this will not affect when you open an existing drawing. Those will follow the theme of the template/drawing respectively.
    Toggle ON: Follow Obsidian Theme
    Toggle OFF: Follow theme defined in your template",MATCH_THEME_ALWAYS_NAME:"Existing drawings to match Obsidian theme",MATCH_THEME_ALWAYS_DESC:"If theme is dark, drawings will be opened in dark mode. If your theme is light, they will be opened in light mode.
    Toggle ON: Match Obsidian theme
    Toggle OFF: Open with the same theme as last saved",MATCH_THEME_TRIGGER_NAME:"Excalidraw to follow when Obsidian Theme changes",MATCH_THEME_TRIGGER_DESC:"If this option is enabled open Excalidraw pane will switch to light/dark mode when Obsidian theme changes.
    Toggle ON: Follow theme changes
    Toggle OFF: Drawings are not affected by Obsidian theme changes",DEFAULT_OPEN_MODE_NAME:"Default mode when opening Excalidraw",DEFAULT_OPEN_MODE_DESC:"Specifies the mode how Excalidraw opens: Normal, Zen, or View mode. You may also set this behavior on a file level by adding the excalidraw-default-mode frontmatter key with a value of: normal, view, or zen to your document.",DEFAULT_PEN_MODE_NAME:"Pen mode",DEFAULT_PEN_MODE_DESC:"Should pen mode be automatically enabled when opening Excalidraw?",ENABLE_DOUBLE_CLICK_TEXT_EDITING_NAME:"Enable double-click text create",DISABLE_DOUBLE_TAP_ERASER_NAME:"Enable double-tap eraser in pen mode",DISABLE_SINGLE_FINGER_PANNING_NAME:"Enable single-finger panning in pen mode",SHOW_PEN_MODE_FREEDRAW_CROSSHAIR_NAME:"Show (+) crosshair in pen mode",SHOW_PEN_MODE_FREEDRAW_CROSSHAIR_DESC:"Show crosshair in pen mode when using the freedraw tool. Toggle ON: SHOW Toggle OFF: HIDE
    The effect depends on the device. Crosshair is typically visible on drawing tablets, MS Surface, but not on iOS.",SHOW_DRAWING_OR_MD_IN_HOVER_PREVIEW_NAME:"Render Excalidraw file as an image in hover preview...",SHOW_DRAWING_OR_MD_IN_HOVER_PREVIEW_DESC:"...even if the file has the excalidraw-open-md: true frontmatter key.
    When this setting is off and the file is set to open in md by default, the hover preview will show the markdown side of the document.
    Note: excalidraw-open-md is different from excalidraw-embed-md. If excalidraw-embed-md is set to true, the hover preview will always show the markdown side, regardless of this setting. To force image rendering when embedding, use ![[drawing#^as-image]] in your markdown file.",SHOW_DRAWING_OR_MD_IN_READING_MODE_NAME:"Render as image when in markdown reading mode of an Excalidraw file",SHOW_DRAWING_OR_MD_IN_READING_MODE_DESC:"When you are in markdown reading mode (aka. reading the back side of the drawing) should the Excalidraw drawing be rendered as an image? This setting will not affect the display of the drawing when you are in Excalidraw mode or when you embed the drawing into a markdown document or when rendering hover preview.
    • See other related setting for PDF Export under 'Embedding and Exporting' further below.

    You must close the active excalidraw/markdown file and reopen it for this change to take effect.",SHOW_DRAWING_OR_MD_IN_EXPORTPDF_NAME:"Render Excalidraw as Image in Obsidian PDF Export",SHOW_DRAWING_OR_MD_IN_EXPORTPDF_DESC:"This setting controls how Excalidraw files are exported to PDF using Obsidian's built-in Export to PDF feature.
    • Enabled: The PDF will include the Excalidraw drawing as an image.
    • Disabled: The PDF will include the markdown content as text.
    Note: This setting does not affect the PDF export feature within Excalidraw itself.
    See the other related setting for Markdown Reading Mode under 'Appearance and Behavior' further above.
    ⚠️ You must close and reopen the Excalidraw/markdown file for changes to take effect. ⚠️",HOTKEY_OVERRIDE_HEAD:"Hotkey overrides",HOTKEY_OVERRIDE_DESC:`Some of the Excalidraw hotkeys such as ${labelCTRL()}+Enter to edit text or ${labelCTRL()}+K to create an element link conflict with Obsidian hotkey settings. The hotkey combinations you add below will override Obsidian's hotkey settings while using Excalidraw, thus you can add ${labelCTRL()}+G if you want to default to Group Object in Excalidraw instead of opening Graph View.`,THEME_HEAD:"Theme and styling",ZOOM_AND_PAN_HEAD:"Zoom and Pan",PAN_WITH_RIGHT_MOUSE_BUTTON_NAME:"Right-click drag to pan",PAN_WITH_RIGHT_MOUSE_BUTTON_DESC:"Right-click and drag to pan the canvas (Miro-style). Press 'm' to open the context menu.",DEFAULT_PINCHZOOM_NAME:"Allow pinch zoom in pen mode",DEFAULT_PINCHZOOM_DESC:"Pinch zoom in pen mode when using the freedraw tool is disabled by default to prevent unwanted accidental zooming with your palm.
    Toggle ON: Enable pinch zoom in pen mode
    Toggle OFF:Disable pinch zoom in pen mode",DEFAULT_WHEELZOOM_NAME:"Mouse wheel to zoom by default",DEFAULT_WHEELZOOM_DESC:`Toggle ON: Mouse wheel to zoom; ${labelCTRL()} + mouse wheel to scroll
    Toggle OFF:${labelCTRL()} + mouse wheel to zoom; Mouse wheel to scroll`,ZOOM_TO_FIT_NAME:"Zoom to fit on view resize",ZOOM_TO_FIT_DESC:"Zoom to fit drawing when the pane is resized
    Toggle ON: Zoom to fit
    Toggle OFF: Auto zoom disabled",ZOOM_TO_FIT_ONOPEN_NAME:"Zoom to fit on file open",ZOOM_TO_FIT_ONOPEN_DESC:"Zoom to fit drawing when the drawing is first opened
    Toggle ON: Zoom to fit
    Toggle OFF: Auto zoom disabled",ZOOM_TO_FIT_MAX_LEVEL_NAME:"Zoom to fit max ZOOM level",ZOOM_TO_FIT_MAX_LEVEL_DESC:"Set the maximum level to which zoom to fit will enlarge the drawing. Minimum is 0.5 (50%) and maximum is 10 (1000%).",ZOOM_STEP_NAME:"Zoom increment",ZOOM_STEP_DESC:"Zoom increment (in percentage points) for actions like mouse wheel zoom. Smaller values give finer control but may require excessive scrolling. Default: 5%.",ZOOM_MIN_NAME:"Minimum zoom",ZOOM_MIN_DESC:"How far you can zoom out (fit more of the drawing on screen). Default: 10%. Values below 10% were historically unstable—lower with caution and reset to 10% if issues occur.",ZOOM_MAX_NAME:"Maximum zoom",ZOOM_MAX_DESC:"Upper zoom limit. Default: 3000%. Usually no need to change; included for completeness.",PEN_HEAD:"Pen",GRID_HEAD:"Grid",GRID_DYNAMIC_COLOR_NAME:"Dynamic grid color",GRID_DYNAMIC_COLOR_DESC:"Toggle ON:Change grid color to match the canvas color
    Toggle OFF:Use the color below as the grid color",GRID_COLOR_NAME:"Grid color",GRID_OPACITY_NAME:"Grid opacity",GRID_OPACITY_DESC:"Grid opacity will also control the opacity of the binding box when binding an arrow to an element.
    Set the opacity of the grid. 0 is transparent, 100 is opaque.",GRID_DIRECTION_NAME:"Grid direction",GRID_DIRECTION_DESC:"The first toggle shows/hides the horizontal grid, the second toggle shows/hides the vertical grid.",GRID_HORIZONTAL:"Render horizontal grid",GRID_VERTICAL:"Render vertical grid",LASER_HEAD:"Laser pointer",LASER_COLOR:"Laser pointer color",LASER_DECAY_TIME_NAME:"Laser pointer decay time",LASER_DECAY_TIME_DESC:"Laser pointer decay time in milliseconds. Default is 1000 (i.e. 1 second).",LASER_DECAY_LENGTH_NAME:"Laser pointer decay length.",LASER_DECAY_LENGTH_DESC:"Laser pointer decay length in line points. Default is 50.",LINKS_HEAD:"Links, transclusion and TODOs",LINKS_HEAD_DESC:"In the 'Links, transclusion and TODOs' section of Excalidraw Settings, you can configure how Excalidraw handles links, transclusions, and TODO items. This includes options for opening links, managing panes, displaying links with brackets, customizing link prefixes, handling TODO items, and more. ",LINKS_DESC:`${labelCTRL()}+CLICK on [[Text Elements]] to open them as links. If the selected text has more than one [[valid Obsidian links]], only the first will be opened. If the text starts as a valid web link (i.e. https:// or http://), then the plugin will open it in a browser. When Obsidian files change, the matching [[link]] in your drawings will also change. If you don't want text accidentally changing in your drawings use [[links|with aliases]].`,DRAG_MODIFIER_NAME:"Link Click and Drag&Drop Modifier Keys",DRAG_MODIFIER_DESC:"Modifier key behavior when clicking links and dragging and dropping elements. Excalidraw will not validate your configuration... pay attention to avoid conflicting settings. These settings are different for Apple and non-Apple. If you use Obsidian on multiple platforms, you'll need to make the settings separately. The toggles follow the order of "+(DEVICE.isIOS||DEVICE.isMacOS?"SHIFT, CMD, OPT, CONTROL.":"SHIFT, CTRL, ALT, META (Windows key)."),LONG_PRESS_DESKTOP_NAME:"Long press to open desktop",LONG_PRESS_DESKTOP_DESC:"Long press delay in milliseconds to open an Excalidraw Drawing embedded in a Markdown file. ",LONG_PRESS_MOBILE_NAME:"Long press to open mobile",LONG_PRESS_MOBILE_DESC:"Long press delay in milliseconds to open an Excalidraw Drawing embedded in a Markdown file. ",DOUBLE_CLICK_LINK_OPEN_VIEW_MODE:"Allow double-click to open links in view mode",FOCUS_ON_EXISTING_TAB_NAME:"Focus on Existing Tab",FOCUS_ON_EXISTING_TAB_DESC:"When opening a link, Excalidraw will focus on the existing tab if the file is already open. Enabling this setting overrides 'Reuse Adjacent Pane' when the file is already open except for the 'Open the back-of-the-note of the selected excalidraw image' command palette action.",SECOND_ORDER_LINKS_NAME:"Show second-order links",SECOND_ORDER_LINKS_DESC:"Show links when clicking on a link in Excalidraw. Second-order link are backlinks pointing to the link being clicked. When using image icons to connect similar notes, second order links allow you to get to related notes in one click instead of two. See YT Short to understand.",ADJACENT_PANE_NAME:"Reuse adjacent pane",ADJACENT_PANE_DESC:`When ${labelCTRL()}+${labelALT()} clicking a link in Excalidraw, by default the plugin will open the link in a new pane. Turning this setting on, Excalidraw will first look for an existing pane, and try to open the link there. Excalidraw will look for the other workspace pane based on your focus/navigation history, i.e. the workpane that was active before you activated Excalidraw.`,MAINWORKSPACE_PANE_NAME:"Open in main workspace",MAINWORKSPACE_PANE_DESC:`When ${labelCTRL()}+${labelALT()} clicking a link in Excalidraw, by default the plugin will open the link in a new pane in the current active window. Turning this setting on, Excalidraw will open the link in an existing or new pane in the main workspace. `,LINK_BRACKETS_NAME:"Show [[brackets]] around links",LINK_BRACKETS_DESC:`In PREVIEW mode, when parsing Text Elements, place brackets around links. You can override this setting for a specific drawing by adding ${FRONTMATTER_KEYS["link-brackets"].name}: true/false to the file's frontmatter.`,LINK_PREFIX_NAME:"Link prefix",LINK_PREFIX_DESC:`In PREVIEW mode, if the Text Element contains a link, precede the text with these characters. You can override this setting for a specific drawing by adding ${FRONTMATTER_KEYS["link-prefix"].name}: "📍 " to the file's frontmatter.`,URL_PREFIX_NAME:"URL prefix",URL_PREFIX_DESC:`In PREVIEW mode, if the Text Element contains a URL link, precede the text with these characters. You can override this setting for a specific drawing by adding ${FRONTMATTER_KEYS["url-prefix"].name}: "🌐 " to the file's frontmatter.`,PARSE_TODO_NAME:"Parse todo",PARSE_TODO_DESC:"Convert '- [ ] ' and '- [x] ' to checkbox and tick in the box.",TODO_NAME:"Open TODO icon",TODO_DESC:"Icon to use for open TODO items",DONE_NAME:"Completed TODO icon",DONE_DESC:"Icon to use for completed TODO items",HOVERPREVIEW_NAME:`Hover preview without pressing the ${labelCTRL()} key`,HOVERPREVIEW_DESC:`Toggle ON: In Exalidraw view mode the hover preview for [[wiki links]] will be shown immediately, without the need to hold the ${labelCTRL()} key. In Excalidraw normal mode, the preview will be shown immediately only when hovering the blue link icon in the top right of the element.
    Toggle OFF: Hover preview is shown only when you hold the ${labelCTRL()} key while hovering the link.`,LINKOPACITY_NAME:"Opacity of link icon",LINKOPACITY_DESC:"Opacity of the link indicator icon in the top right corner of an element. 1 is opaque, 0 is transparent.",LINK_CTRL_CLICK_NAME:`${labelCTRL()}+CLICK on text with [[links]] or [](links) to open them`,LINK_CTRL_CLICK_DESC:`You can turn this feature off if it interferes with default Excalidraw features you want to use. If this is turned off, you can either use ${labelCTRL()} + ${labelMETA()} or the link indicator in the top right of the element to open links.`,TRANSCLUSION_WRAP_NAME:"Overflow wrap behavior of transcluded text",TRANSCLUSION_WRAP_DESC:"Number specifies the character count where the text should be wrapped. Set the text wrapping behavior of transcluded text. Turn this ON to force-wrap text (i.e. no overflow), or OFF to soft-wrap text (at the nearest whitespace).",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion word wrap default",TRANSCLUSION_DEFAULT_WRAP_DESC:"You can manually set/override word wrapping length using the `![[page#^block]]{NUMBER}` format. Normally you will not want to set a default, because if you transclude text inside a sticky note, then Excalidraw will automatically take care of word wrapping. Set this value to `0` if you do not want to set a default. ",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Page transclusion max char count",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"The maximum number of characters to display from the page when transcluding an entire page with the ![[markdown page]] format.",QUOTE_TRANSCLUSION_REMOVE_NAME:"Quote translusion: remove leading '> ' from each line",QUOTE_TRANSCLUSION_REMOVE_DESC:"Remove the leading '> ' from each line of the transclusion. This will improve readability of quotes in text only transclusions
    Toggle ON: Remove leading '> '
    Toggle OFF: Do not remove leading '> ' (note it will still be removed from the first row due to Obsidian API functionality)",GET_URL_TITLE_NAME:"Use iframely to resolve page title",GET_URL_TITLE_DESC:"Use the http://iframely.server.crestify.com/iframely?url= to get title of page when dropping a link into Excalidraw",PDF_TO_IMAGE:"PDF to Image",PDF_TO_IMAGE_SCALE_NAME:"PDF to Image conversion scale",PDF_TO_IMAGE_SCALE_DESC:"Sets the resolution of the image that is generated from the PDF page. Higher resolution will result in bigger images in memory and consequently a higher load on your system (slower performance), but sharper image. Additionally, if you want to copy PDF pages (as images) to Excalidraw.com, the bigger image size may result in exceeding the 2MB limit on Excalidraw.com.",EMBED_TOEXCALIDRAW_HEAD:"Embed files into Excalidraw",EMBED_TOEXCALIDRAW_DESC:"In the Embed Files section of Excalidraw Settings, you can configure how various files are embedded into Excalidraw. This includes options for embedding interactive markdown files, PDFs, and markdown files as images.",MD_HEAD:"Embed markdown into Excalidraw as image",MD_EMBED_CUSTOMDATA_HEAD_NAME:"Interactive Markdown Files",MD_EMBED_CUSTOMDATA_HEAD_DESC:'The below settings will only effect future embeds. Current embeds remain unchanged. The theme setting of embedded frames is under the "Excalidraw appearance and behavior" section.',MD_EMBED_SINGLECLICK_EDIT_NAME:"Single click to edit embedded markdown",MD_EMBED_SINGLECLICK_EDIT_DESC:"Single click on an embedded markdown file to edit it. When turned off, the markdown file will first open in preview mode, then switch to edit mode when you click on it again.",MD_TRANSCLUDE_WIDTH_NAME:"Default width of a transcluded markdown document",MD_TRANSCLUDE_WIDTH_DESC:"The width of the markdown page. This affects the word wrapping when transcluding longer paragraphs, and the width of the image element. You can override the default width of an embedded file using the [[filename#heading|WIDTHxMAXHEIGHT]] syntax in markdown view mode under embedded files.",MD_TRANSCLUDE_HEIGHT_NAME:"Default maximum height of a transcluded markdown document",MD_TRANSCLUDE_HEIGHT_DESC:"The embedded image will be as high as the markdown text requires, but not higher than this value. You can override this value by editing the embedded image link in markdown view mode with the following syntax [[filename#^blockref|WIDTHxMAXHEIGHT]].",MD_DEFAULT_FONT_NAME:"The default font typeface to use for embedded markdown files.",MD_DEFAULT_FONT_DESC:'Set this value to "Virgil" or "Cascadia" or the filename of a valid .ttf, .woff, or .woff2 font e.g. MyFont.woff2 You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font: font_or_filename',MD_DEFAULT_COLOR_NAME:"The default font color to use for embedded markdown files.",MD_DEFAULT_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font-color: steelblue',MD_DEFAULT_BORDER_COLOR_NAME:"The default border color to use for embedded markdown files.",MD_DEFAULT_BORDER_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-border-color: gray. Leave empty if you don\'t want a border. ',MD_CSS_NAME:"CSS file",MD_CSS_DESC:`The filename of the CSS to apply to markdown embeds. Provide the filename with extension (e.g. 'md-embed.css'). The css file may also be a plain markdown file (e.g. 'md-embed-css.md'), just make sure the content is written using valid css syntax. If you need to look at the HTML code you are applying the CSS to, then open Obsidian Developer Console (${DEVICE.isIOS||DEVICE.isMacOS?"CMD+OPT+i":"CTRL+SHIFT+i"}) and type in the following command: "ExcalidrawAutomate.mostRecentMarkdownSVG". This will display the most recent SVG generated by Excalidraw. Setting the font-family in the css is has limitations. By default only your operating system's standard fonts are available (see README for details). You can add one custom font beyond that using the setting above. You can override this css setting by adding the following frontmatter-key to the embedded markdown file: "excalidraw-css: css_file_in_vault|css-snippet".`,EMBED_HEAD:"Embedding Excalidraw into your Notes and Exporting",EMBED_DESC:'In the "Embed & Export" settings, you can configure how images and Excalidraw drawings are embedded and exported within your documents. Key settings include choosing the image type for markdown preview (such as Native SVG or PNG), specifying the type of file to insert into the document (original Excalidraw, PNG, or SVG), and managing image caching for embedding in markdown. You can also control image sizing, whether to embed drawings using wiki links or markdown links, and adjust settings related to image themes, background colors, and Obsidian integration. \n Additionally, there are settings for auto-export, which automatically generates SVG and/or PNG files to match the title of your Excalidraw drawings, keeping them in sync with file renames and deletions.',EMBED_CANVAS:"Obsidian Canvas support",EMBED_CANVAS_NAME:"Immersive embedding",EMBED_CANVAS_DESC:"Hide canvas node border and background when embedding an Excalidraw drawing to Canvas. Note that for a full transparent background for your image, you will still need to configure Excalidraw to export images with transparent background.",EMBED_CACHING:"Image caching and rendering optimization",RENDERING_CONCURRENCY_NAME:"Image rendering concurrency",RENDERING_CONCURRENCY_DESC:"Number of parallel workers to use for image rendering. Increasing this number will speed up the rendering process, but may slow down the rest of the system. The default value is 3. You can increase this number if you have a powerful system.",EXPORT_SUBHEAD:"Export Settings",EMBED_SIZING:"Image sizing",EMBED_THEME_BACKGROUND:"Image theme and background color",EMBED_IMAGE_CACHE_NAME:"Cache images for embedding in markdown",EMBED_IMAGE_CACHE_DESC:"Cache images for embedding in markdown. This will speed up the embedding process, but in case you compose images of several sub-component drawings, the embedded image in Markdown won't update until you open the drawing and save it to trigger an update of the cache.",SCENE_IMAGE_CACHE_NAME:"Cache nested Excalidraws in Scene",SCENE_IMAGE_CACHE_DESC:"Cache nested Excalidraws in the Scene for faster scene rendering. This will speed up the rendering process, especially if you have deeply nested Excalidraws in your scene. Excalidraw will try to intelligently identify if any children of a nested Excalidraw have changed and will update the cache accordingly. You may want to turn this off, in case you are suspecting that the cache is not updating properly.",EMBED_IMAGE_CACHE_CLEAR:"Purge Cache",BACKUP_CACHE_CLEAR:"Purge Backups",BACKUP_CACHE_CLEAR_CONFIRMATION:"This action will delete all Excalidraw drawing backups. Backups are used as a safety measure in case your drawing file gets damaged. Each time you open Obsidian the plugin automatically deletes backups for files that no longer exist in your Vault. Are you sure you want to clear all backups?",EMBED_REUSE_EXPORTED_IMAGE_NAME:"If found, use the already exported image for preview",EMBED_REUSE_EXPORTED_IMAGE_DESC:"This setting works in conjunction with the Auto-export SVG/PNG setting. If an exported image that matches the file name of the drawing is available, use that image instead of generating a preview image on the fly. This will result in faster previews especially when you have many embedded objects in the drawing, however, it may happen that your latest changes are not displayed and that the image will not automatically match your Obsidian theme in case you have changed the Obsidian theme since the export was created. This setting only applies to embedding images into markdown documents. For a number of reasons, the same approach cannot be used to expedite the loading of drawings with many embedded objects. See demonstration here.",EMBED_PREVIEW_IMAGETYPE_NAME:"Image type in markdown preview",EMBED_PREVIEW_IMAGETYPE_DESC:"Native SVG: High Image Quality. Embedded Websites, YouTube videos, Obsidian Links, and external images embedded via a URL will all work. Embedded Obsidian pages will not
    SVG Image: High Image Quality. Embedded elements and images embedded via URL only have placeholders, links don't work
    PNG Image: Lower Image Quality, but in some cases better performance with large drawings. Embedded elements and images embedded via URL only have placeholders, links don't work. Also some of the image block referencing features do not work with PNG embeds.",PREVIEW_MATCH_OBSIDIAN_NAME:"Excalidraw preview to match Obsidian theme",PREVIEW_MATCH_OBSIDIAN_DESC:"Image preview in documents should match the Obsidian theme. If enabled, when Obsidian is in dark mode, Excalidraw images will render in dark mode. When Obsidian is in light mode, Excalidraw will render light mode as well. You may want to switch 'Export image with background' off for a more Obsidian-integrated look and feel.",EMBED_WIDTH_NAME:"Default width of embedded (transcluded) image",EMBED_WIDTH_DESC:"The default width of an embedded drawing. This applies to live preview edit and reading mode, as well as to hover previews. You can specify a custom width when embedding an image using the ![[drawing.excalidraw|100]] or [[drawing.excalidraw|100x100]] format.",EMBED_HEIGHT_NAME:"Default height of embedded (transcluded) image",EMBED_HEIGHT_DESC:"The default height of an embedded drawing. This applies to live preview edit and reading mode, as well as to hover previews. You can specify a custom height when embedding an image using the ![[drawing.excalidraw|100]] or [[drawing.excalidraw|100x100]] format.",EMBED_TYPE_NAME:"Type of file to insert into the document",EMBED_TYPE_DESC:"When you embed an image into a document using the command palette this setting will specify if Excalidraw should embed the original Excalidraw file or a PNG or an SVG copy. You need to enable auto-export PNG / SVG (see below under Export Settings) for those image types to be available in the dropdown. For drawings that do not have a a corresponding PNG or SVG readily available the command palette action will insert a broken link. You need to open the original drawing and initiate export manually. This option will not autogenerate PNG/SVG files, but will simply reference the already existing files.",EMBED_MARKDOWN_COMMENT_NAME:"Embed link to drawing as comment",EMBED_MARKDOWN_COMMENT_DESC:"Embed the link to the original Excalidraw file as a markdown link under the image, e.g.:%%[[drawing.excalidraw]]%%.
    Instead of adding a markdown comment you may also select the embedded SVG or PNG line and use the command palette action: 'Excalidraw: Open Excalidraw drawing' to open the drawing.",EMBED_WIKILINK_NAME:"Embed Drawing using Wiki link",EMBED_WIKILINK_DESC:"Toggle ON: Excalidraw will embed a [[wiki link]].
    Toggle OFF: Excalidraw will embed a [markdown](link).",EXPORT_PNG_SCALE_NAME:"PNG export image scale",EXPORT_PNG_SCALE_DESC:"The size-scale of the exported PNG image",EXPORT_BACKGROUND_NAME:"Export image with background",EXPORT_BACKGROUND_DESC:"If turned off, the exported image will be transparent.",EXPORT_PADDING_NAME:"Image Padding",EXPORT_PADDING_DESC:"The padding (in pixels) around the exported SVG or PNG image. Padding is set to 0 for clippedFrame references.If you have curved lines close to the edge of the image they might get cropped during image export. You can increase this value to avoid cropping. You can also override this setting at a file level by adding the excalidraw-export-padding: 5 frontmatter key.",EXPORT_THEME_NAME:"Export image with theme",EXPORT_THEME_DESC:"Export the image matching the dark/light theme of your drawing. If turned off, drawings created in dark mode will appear as they would in light mode.",EXPORT_EMBED_SCENE_NAME:"Embed scene in exported image",EXPORT_EMBED_SCENE_DESC:"Embed Excalidraw scene in exported image. Can be overridden at a file level by adding the excalidraw-export-embed-scene: true/false frontmatter key. The setting only takes effect the next time you (re)open drawings.",PDF_EXPORT_SETTINGS:"PDF Export Settings",EXPORT_HEAD:"Auto-export Settings",EXPORT_SYNC_NAME:"Keep the .SVG and/or .PNG filenames in sync with the drawing file",EXPORT_SYNC_DESC:"When turned on, the plugin will automatically update the filename of the .SVG and/or .PNG files when the drawing in the same folder (and same name) is renamed. The plugin will also automatically delete the .SVG and/or .PNG files when the drawing in the same folder (and same name) is deleted. ",EXPORT_SVG_NAME:"Auto-export SVG",EXPORT_SVG_DESC:"Automatically create an SVG export of your drawing matching the title of your file. The plugin will save the *.SVG file in the same folder as the drawing. Embed the .svg file into your documents instead of Excalidraw making you embeds platform independent. While the auto-export switch is on, this file will get updated every time you edit the Excalidraw drawing with the matching name. You can override this setting on a file level by adding the excalidraw-autoexport frontmatter key. Valid values for this key are none,both,svg, and png.",EXPORT_PNG_NAME:"Auto-export PNG",EXPORT_PNG_DESC:"Same as the auto-export SVG, but for *.PNG",EXPORT_BOTH_DARK_AND_LIGHT_NAME:"Export both dark- and light-themed image",EXPORT_BOTH_DARK_AND_LIGHT_DESC:"When enabled, Excalidraw will export two files instead of one: filename.dark.png, filename.light.png and/or filename.dark.svg and filename.light.svg
    Double files will be exported both if auto-export SVG or PNG (or both) are enabled, as well as when clicking export on a single image.",COMPATIBILITY_HEAD:"Compatibility features",COMPATIBILITY_DESC:"You should only enable these features if you have a strong reason for wanting to work with excalidraw.com files instead of markdown files. Many of the plugin features are not supported on legacy files. Typical usecase would be if you use set your vault up on top of a Visual Studio Code project folder and you have .excalidraw drawings you want to access from Visual Studio Code as well. Another usecase might be using Excalidraw in Logseq and Obsidian in parallel.",DUMMY_TEXT_ELEMENT_LINT_SUPPORT_NAME:"Linter compatibility",DUMMY_TEXT_ELEMENT_LINT_SUPPORT_DESC:"Excalidraw is sensitive to the file structure below # Excalidraw Data. Automatic linting of documents can create errors in Excalidraw Data. While I've made some effort to make the data loading resilient to lint changes, this solution is not foolproof.
    The best is to avoid linting or otherwise automatically changing Excalidraw documents using different plugins.
    Use this setting if for good reasons you have decided to ignore my recommendation and configured linting of Excalidraw files.
    The ## Text Elements section is sensitive to empty lines. A common linting approach is to add an empty line after section headings. In case of Excalidraw this will break/change the first text element in your drawing. To overcome this, you can enable this setting. When enabled, Excalidraw will add a dummy element to the beginning of ## Text Elements that the linter can safely modify.",PRESERVE_TEXT_AFTER_DRAWING_NAME:"Zotero and Footnotes compatibility",PRESERVE_TEXT_AFTER_DRAWING_DESC:"Preserve text after the ## Drawing section of the markdown file. This may have a very slight performance impact when saving very large drawings.",DEBUGMODE_NAME:"Enable debug messages",DEBUGMODE_DESC:"I recommend restarting Obsidian after enabling/disabling this setting. This enable debug messages in the console. This is useful for troubleshooting issues. If you are experiencing problems with the plugin, please enable this setting, reproduce the issue, and include the console log in the issue you raise on GitHub",SLIDING_PANES_NAME:"Sliding panes plugin support",SLIDING_PANES_DESC:"Need to restart Obsidian for this change to take effect.
    If you use the Sliding Panes plugin you can enable this setting to make Excalidraw drawings work with the Sliding Panes plugin.
    Note, that Excalidraw Sliding Panes support causes compatibility issues with Obsidian Workspaces.
    Note also, that the 'Stack Tabs' feature is now available in Obsidian, providing native support for most of the Sliding Panes functionality.",EXPORT_EXCALIDRAW_NAME:"Auto-export Excalidraw",EXPORT_EXCALIDRAW_DESC:"Same as the auto-export SVG, but for *.Excalidraw",SYNC_EXCALIDRAW_NAME:"Sync *.excalidraw with *.md version of the same drawing",SYNC_EXCALIDRAW_DESC:"If the modified date of the *.excalidraw file is more recent than the modified date of the *.md file then update the drawing in the .md file based on the .excalidraw file",COMPATIBILITY_MODE_NAME:"New drawings as legacy files",COMPATIBILITY_MODE_DESC:"⚠️ Enable this only if you know what you are doing. In 99.9% of the cases you DO NOT want this on. By enabling this feature drawings you create with the ribbon icon, the command palette actions, and the file explorer are going to be all legacy *.excalidraw files. This setting will also turn off the reminder message when you open a legacy file for editing.",MATHJAX_NAME:"MathJax (LaTeX) javascript library host",MATHJAX_DESC:"If you are using LaTeX equations in Excalidraw, then the plugin needs to load a javascript library for that. Some users are unable to access certain host servers. If you are experiencing issues, try changing the host here. You may need to restart Obsidian after closing settings, for this change to take effect.",LATEX_DEFAULT_NAME:"Default LaTeX formula for new equations",LATEX_DEFAULT_DESC:"Leave empty if you don't want a default formula. You can add default formatting here such as \\color{white}.",LATEX_PREAMBLE_NAME:"LaTeX preamble file (CasE SEnSiTivE!)",LATEX_PREAMBLE_DESC:"Full filepath to the preamble file, leave empty for default. If the file doesn't exist this option will be ignored.
    Important: Requires obsidian reload after change to take effect!",NONSTANDARD_HEAD:"Non-Excalidraw.com supported features",NONSTANDARD_DESC:'These settings in the "Non-Excalidraw.com Supported Features" section provide customization options beyond the default Excalidraw.com features. These features are not available on excalidraw.com. When exporting the drawing to Excalidraw.com these features will appear different.\n You can configure the number of custom pens displayed next to the Obsidian Menu on the canvas, allowing you to choose from a range of options. Additionally, you can enable a local font option, which adds a local font to the list of fonts on the element properties panel for text elements. ',RENDER_TWEAK_HEAD:"Rendering tweaks",MAX_IMAGE_ZOOM_IN_NAME:"Maximum image zoom in resolution",MAX_IMAGE_ZOOM_IN_DESC:"To save on memory and because Apple Safari (Obsidian on iOS) has some hard-coded limitations, Excalidraw.com limits the max resolution of images and large objects when zooming in. You can override this limitation using a multiplicator. This means you are multiplying the limit set by default in Excalidraw, the larger the multiplier the better the image zoom in resolution will be, and the more memory it will consume. I recommend playing with multiple values for this setting. You know you've hit the wall, when zooming in to a larger PNG image suddenly the image disappears from view. The default value is 1. The setting has no effect on iOS.",CUSTOM_PEN_HEAD:"Custom pens",CUSTOM_PEN_NAME:"Number of custom pens",CUSTOM_PEN_DESC:"You will see these pens next to the Obsidian Menu on the canvas. You can customize the pens on the canvas by long-pressing the pen button.",EXPERIMENTAL_HEAD:"Miscellaneous features",EXPERIMENTAL_DESC:"These miscellaneous features in Excalidraw include options for setting default LaTeX formulas for new equations, enabling a Field Suggester for autocompletion, displaying type indicators for Excalidraw files, enabling immersive image embedding in live preview editing mode, and experimenting with Taskbone Optical Character Recognition for text extraction from images and drawings. Users can also enter a Taskbone API key for extended usage of the OCR service.",EA_HEAD:"Excalidraw Automate",EA_DESC:"ExcalidrawAutomate is a scripting and automation API for Excalidraw. Unfortunately, the documentation of the API is sparse. I recommend reading the ExcalidrawAutomate.d.ts file, visiting the ExcalidrawAutomate How-to page - though the information here has not been updated for a long while -, and finally to enable the field suggester below. The field suggester will show you the available functions, their parameters and short description as you type. The field suggester is the most up-to-date documentation of the API.",FIELD_SUGGESTER_NAME:"Enable Field Suggester",FIELD_SUGGESTER_DESC:"Field Suggester borrowed from Breadcrumbs and Templater plugins. The Field Suggester will show an autocomplete menu when you type excalidraw- or ea. with function description as hints on the individual items in the list.",STARTUP_SCRIPT_NAME:"Startup script",STARTUP_SCRIPT_DESC:"If set, excalidraw will execute the script at plugin startup. This is useful if you want to set any of the Excalidraw Automate hooks. The startup script is a markdown file that should contain the javascript code you want to execute when Excalidraw starts.",STARTUP_SCRIPT_BUTTON_CREATE:"Create startup script",STARTUP_SCRIPT_BUTTON_OPEN:"Open startup script",STARTUP_SCRIPT_EXISTS:"Startup script file already exists",FILETYPE_NAME:"Display type (✏️) for excalidraw.md files in File Explorer",FILETYPE_DESC:"Excalidraw files will receive an indicator using the emoji or text defined in the next setting.",FILETAG_NAME:"Set the type indicator for excalidraw.md files",FILETAG_DESC:"The text or emoji to display as type indicator.",INSERT_EMOJI:"Insert an emoji",LIVEPREVIEW_NAME:"Immersive image embedding in live preview editing mode",LIVEPREVIEW_DESC:"Turn this on to support image embedding styles such as ![[drawing|width|style]] in live preview editing mode. The setting will not affect the currently open documents. You need close the open documents and re-open them for the change to take effect.",FADE_OUT_EXCALIDRAW_MARKUP_NAME:"Fade out Excalidraw markup",FADE_OUT_EXCALIDRAW_MARKUP_DESC:"In Markdown view mode, the section after the markdown comment %% fades out. The text is still there, but the visual clutter is reduced. Note, you can place the %% in the line right above # Text Elements, in this case the entire drawing markdown will fade out including # Text Elements. The side effect is you won't be able to block reference text in other markdown notes, that is after the %% comment section. This is seldom an issue. Should you want to edit the Excalidraw markdown script, simply switch to markdown view mode and temporarily remove the %% comment.",EXCALIDRAW_PROPERTIES_NAME:"Load Excalidraw Properties into Obsidian Suggester",EXCALIDRAW_PROPERTIES_DESC:"Toggle this setting to load Excalidraw document properties into Obsidian's property suggester at plugin startup. Enabling this feature simplifies the use of Excalidraw front matter properties, allowing you to leverage many powerful settings. If you prefer not to load these properties automatically, you can disable this feature, but you will need to manually remove any unwanted properties from the suggester. Note that turning on this setting requires restarting the plugin as properties are loaded at startup.",FONTS_HEAD:"Fonts",FONTS_DESC:"Configure local fontfaces and downloaded CJK fonts for Excalidraw.",CUSTOM_FONT_HEAD:"Local font",ENABLE_FOURTH_FONT_NAME:"Enable local font option",ENABLE_FOURTH_FONT_DESC:"Enabling this option will add a local font to the font list in the properties panel for text elements. Be aware that using this local font may compromise platform independence. Files using the custom font might render differently when opened in a different vault or at a later time, depending on the font settings. Additionally, the 4th font will default to the system font on excalidraw.com or other Excalidraw versions.",FOURTH_FONT_NAME:"Local font file",FOURTH_FONT_DESC:"Select a .otf, .ttf, .woff, or .woff2 font file from your vault to use as the local font. If no file is selected, Excalidraw will default to the Virgil font. For optimal performance, it is recommended to use a .woff2 file, as Excalidraw will encode only the necessary glyphs when exporting images to SVG. Other font formats will embed the entire font in the exported file, potentially resulting in significantly larger file sizes.",OFFLINE_CJK_NAME:"Offline CJK font support",OFFLINE_CJK_DESC:'Changes you make here will only take effect after restarting Obsidian.
    \n Excalidraw.com offers handwritten CJK fonts. By default these fonts are not included in the plugin locally, but are served from the Internet. \n If you prefer to keep Excalidraw fully local, allowing it to work without Internet access you can download the necessary font files from GitHub.\n After downloading, unzip the contents into a folder within your Vault.
    \n Pre-loading fonts will impact startup performance. For this reason you can select which fonts to load.',CJK_ASSETS_FOLDER_NAME:"CJK Font Folder (cAsE sENsiTIvE!)",CJK_ASSETS_FOLDER_DESC:'You can set the location of the CJK fonts folder here. For example, you may choose to place it under Excalidraw/CJK Fonts.

    \n Important: Do not set this folder to the Vault root! Do not put other fonts in this folder.

    \n Note: If you\'re using Obsidian Sync and want to synchronize these font files across your devices, ensure that Obsidian Sync is set to synchronize "All other file types".',LOAD_CHINESE_FONTS_NAME:"Load Chinese fonts from file at startup",LOAD_JAPANESE_FONTS_NAME:"Load Japanese fonts from file at startup",LOAD_KOREAN_FONTS_NAME:"Load Korean fonts from file at startup",SCRIPT_SETTINGS_HEAD:"Settings for installed Scripts",SCRIPT_SETTINGS_DESC:"Some of the Excalidraw Automate Scripts include settings. Settings are organized by script. Settings will only become visible in this list after you have executed the newly downloaded script once.",TASKBONE_HEAD:"Taskbone Optical Character Recognition",TASKBONE_DESC:"This is an experimental integration of optical character recognition into Excalidraw. Please note, that taskbone is an independent external service not provided by Excalidraw, nor the Excalidraw-Obsidian plugin project. The OCR service will grab legible text from freedraw lines and embedded pictures on your canvas and place the recognized text in the frontmatter of your drawing as well as onto clipboard. Having the text in the frontmatter will enable you to search in Obsidian for the text contents of these. Note, that the process of extracting the text from the image is not done locally, but via an online API. The taskbone service stores the image on its servers only as long as necessary for the text extraction. However, if this is a dealbreaker, then please don't use this feature.",TASKBONE_ENABLE_NAME:"Enable Taskbone",TASKBONE_ENABLE_DESC:"By enabling this service your agree to the Taskbone Terms and Conditions and the Privacy Policy.",TASKBONE_APIKEY_NAME:"Taskbone API Key",TASKBONE_APIKEY_DESC:"Taskbone offers a free service with a reasonable number of scans per month. If you want to use this feature more frequently, or you want to support the developer of Taskbone (as you can imagine, there is no such thing as 'free', providing this awesome OCR service costs some money to the developer of Taskbone), you can purchase a paid API key from taskbone.com. In case you have purchased a key, simply overwrite this auto generated free-tier API-key with your paid key.",HOTKEY_PRESS_COMBO_NANE:"Press your hotkey combination",HOTKEY_PRESS_COMBO_DESC:"Please press the desired key combination",HOTKEY_BUTTON_ADD_OVERRIDE:"Add New Override",HOTKEY_BUTTON_REMOVE:"Remove",SELECT_FILE:"Select a file then press enter.",SELECT_COMMAND:"Select a command then press enter.",SELECT_FILE_WITH_OPTION_TO_SCALE:`Select a file then press ENTER, or ${labelSHIFT()}+${labelMETA()}+ENTER to insert at 100% scale.`,NO_MATCH:"No file matches your query.",NO_MATCHING_COMMAND:"No command matches your query.",SELECT_FILE_TO_LINK:"Select the file you want to insert the link for.",SELECT_COMMAND_PLACEHOLDER:"Select the command you want to insert the link for.",SELECT_DRAWING:"Select the image or drawing you want to insert",TYPE_FILENAME:"Type name of drawing to select.",SELECT_FILE_OR_TYPE_NEW:"Select existing drawing or type name of a new drawing then press Enter.",SELECT_TO_EMBED:"Select the drawing to insert into active document.",SELECT_MD:"Select the markdown document you want to insert",SELECT_PDF:"Select the PDF document you want to insert",PDF_PAGES_HEADER:"Pages to load?",PDF_PAGES_DESC:"Format: 1, 3-5, 7, 9-11",TYPE_SECTION:"Type section name to select.",SELECT_SECTION_OR_TYPE_NEW:"Select existing section or type name of a new section then press Enter.",INVALID_SECTION_NAME:"Invalid section name.",EMPTY_SECTION_MESSAGE:"Type the Section Name and hit enter to create a new Section",INFINITE_LOOP_WARNING:"EXCALIDRAW WARNING\nAborted loading embedded images due to infinite loop in file:\n",SCRIPT_EXECUTION_ERROR:"Script execution error. Please find error message on the developer console.",MARKER_FRAME_RENDERING_DISABLED_NOTICE:"There are hidden marker-frames in the scene.",LOAD_FROM_BACKUP:"Excalidraw file was corrupted. Loading from backup file.",FONT_LOAD_SLOW:"Loading Fonts...\n\n This is taking longer than expected. If this delay occurs regularly then you may download the fonts locally to your Vault. \n\n(click=dismiss, right-click=Info)",FONT_INFO_TITLE:"Starting v2.5.3 fonts load from the Internet",FONT_INFO_DETAILED:`\n

    \n To improve Obsidian's startup time and manage the large CJK font family, \n I've moved the CJK fonts out of the plugin's main.js. CJK fonts will be loaded from the internet by default.\n This typically shouldn't cause issues as Obsidian caches these files after first use.\n

    \n

    \n If you prefer to keep Obsidian 100% local or experience performance issues, you can download the font assets.\n

    \n

    Instructions:

    \n
      \n
    1. Download the fonts from GitHub.
    2. \n
    3. Unzip and copy files into a Vault folder (default: Excalidraw/${CJK_FONTS}; folder names are cAse-senSITive).
    4. \n
    5. DO NOT set this folder to the Vault root or mix with other local fonts.
    6. \n
    \n

    For Obsidian Sync Users:

    \n

    \n Ensure Obsidian Sync is set to synchronize "All other file types" or download and unzip the file on all devices.\n

    \n

    Note:

    \n

    \n If you find this process cumbersome, please submit a feature request to Obsidian.md for supporting assets in the plugin folder. \n Currently, only a single main.js is supported, which leads to large files and slow startup times for complex plugins like Excalidraw. \n I apologize for the inconvenience.\n

    \n `,GOTO_FULLSCREEN:"Goto fullscreen mode",EXIT_FULLSCREEN:"Exit fullscreen mode",TOGGLE_FULLSCREEN:"Toggle fullscreen mode",TOGGLE_DISABLEBINDING:"Toggle to invert default binding behavior",TOGGLE_FRAME_RENDERING:"Toggle frame rendering",TOGGLE_FRAME_CLIPPING:"Toggle frame clipping",OPEN_LINK_CLICK:"Open Link",OPEN_LINK_PROPS:"Open the image-link or LaTeX-formula editor",NARROW_TO_HEADING:"Narrow to heading...",PIN_VIEW:"Pin view",DO_NOT_PIN_VIEW:"Do not pin view",NARROW_TO_BLOCK:"Narrow to block...",SHOW_ENTIRE_FILE:"Show entire file",SELECT_SECTION:"Select section from document",SELECT_VIEW:"Select view from base",ZOOM_TO_FIT:"Zoom to fit",RELOAD:"Reload original link",OPEN_IN_BROWSER:"Open current link in browser",PROPERTIES:"Properties",COPYCODE:"Copy source to clipboard",ES_TITLE:"Embeddable Element Settings",ES_RENAME:"Rename File",ES_ZOOM:"Embedded Content Scaling",ES_YOUTUBE_START:"YouTube Start Time",ES_YOUTUBE_START_DESC:"ss, mm:ss, hh:mm:ss",ES_YOUTUBE_START_INVALID:"The YouTube Start Time is invalid. Please check the format and try again",ES_FILENAME_VISIBLE:"Filename Visible",ES_BACKGROUND_HEAD:"Embedded note background color",ES_BACKGROUND_DESC_INFO:"Click here for more info on colors",ES_BACKGROUND_DESC_DETAIL:"Background color affects only the preview mode of the markdown embeddable. When editing, it follows the Obsidian light/dark theme as set for the scene (via document property) or in plugin settings. The background color has two layers: the element background color (lower layer) and a color on top (upper layer). Selecting 'Match Element Background' means both layers follow the element color. Selecting 'Match Canvas' or a specific background color keeps the element background layer. Setting opacity (e.g., 50%) mixes the canvas or selected color with the element background color. To remove the element background layer, set the element color to transparent in Excalidraw's element properties editor. This makes only the upper layer effective.",ES_BACKGROUND_MATCH_ELEMENT:"Match Element Background Color",ES_BACKGROUND_MATCH_CANVAS:"Match Canvas Background Color",ES_BACKGROUND_COLOR:"Background Color",ES_BORDER_HEAD:"Embedded note border color",ES_BORDER_COLOR:"Border Color",ES_BORDER_MATCH_ELEMENT:"Match Element Border Color",ES_BACKGROUND_OPACITY:"Background Opacity",ES_BORDER_OPACITY:"Border Opacity",ES_EMBEDDABLE_SETTINGS:"Embeddable Markdown Settings",ES_USE_OBSIDIAN_DEFAULTS:"Use Obsidian Defaults",ES_ZOOM_100_RELATIVE_DESC:"The button will adjust the element scale so it will show the content at 100% relative to the current zoom level of your canvas",ES_ZOOM_100:"Relative 100%",PROMPT_FILE_DOES_NOT_EXIST:"File does not exist. Do you want to create it?",PROMPT_ERROR_NO_FILENAME:"Error: Filename for new file may not be empty",PROMPT_ERROR_DRAWING_CLOSED:"Unknown error. It seems as if your drawing was closed or the drawing file is missing",PROMPT_TITLE_NEW_FILE:"New File",PROMPT_TITLE_CONFIRMATION:"Confirmation",PROMPT_BUTTON_CREATE_EXCALIDRAW:"Create EX",PROMPT_BUTTON_CREATE_EXCALIDRAW_ARIA:"Create Excalidraw drawing and open in new tab",PROMPT_BUTTON_CREATE_MARKDOWN:"Create MD",PROMPT_BUTTON_CREATE_MARKDOWN_ARIA:"Create markdown document and open in new tab",PROMPT_BUTTON_EMBED_MARKDOWN:"Embed MD",PROMPT_BUTTON_EMBED_MARKDOWN_ARIA:"Replace selected element with embedded markdown document",PROMPT_BUTTON_NEVERMIND:"Nevermind",PROMPT_BUTTON_OK:"OK",PROMPT_BUTTON_CANCEL:"Cancel",PROMPT_BUTTON_INSERT_LINE:"Insert new line",PROMPT_BUTTON_INSERT_SPACE:"Insert space",PROMPT_BUTTON_INSERT_LINK:"Insert markdown link to file",PROMPT_BUTTON_UPPERCASE:"Uppercase",PROMPT_BUTTON_SPECIAL_CHARS:"Special Characters",PROMPT_SELECT_TEMPLATE:"Select a template",WEB_BROWSER_DRAG_ACTION:"Web Browser Drag Action",LOCAL_FILE_DRAG_ACTION:"OS Local File Drag Action",INTERNAL_DRAG_ACTION:"Obsidian Internal Drag Action",PANE_TARGET:"Link click behavior",DEFAULT_ACTION_DESC:"In case none of the combinations apply the default action for this group is: ",FRAME_SETTINGS_TITLE:"Frame Settings",FRAME_SETTINGS_ENABLE:"Enable Frames",FRAME_SETTIGNS_NAME:"Display Frame Name",FRAME_SETTINGS_OUTLINE:"Display Frame Outline",FRAME_SETTINGS_CLIP:"Enable Frame Clipping",IPM_PAGES_TO_IMPORT_NAME:"Pages to import",IPM_SELECT_PAGES_TO_IMPORT:"Please select pages to import",IPM_ADD_BORDER_BOX_NAME:"Add border box",IPM_ADD_FRAME_NAME:"Add page to frame",IPM_ADD_FRAME_DESC:"For easier handling I recommend to lock the page inside the frame. If, however, you do lock the page inside the frame then the only way to unlock it is to right-click the frame, select remove elements from frame, then unlock the page.",IPM_GROUP_PAGES_NAME:"Group pages",IPM_GROUP_PAGES_DESC:"This will group all pages into a single group. This is recommended if you are locking the pages after import, because the group will be easier to unlock later rather than unlocking one by one.",IPM_SELECT_PDF:"Please select a PDF file",UPDATE_AVAILABLE:`A newer version of Excalidraw is available in Community Plugins.\n\nYou are using ${PLUGIN_VERSION}.\nThe latest is`,SCRIPT_UPDATES_AVAILABLE:`Script updates available - check the script store.\n\n${DEVICE.isDesktop?`This message is available in console.log (${DEVICE.isMacOS?"CMD+OPT+i":"CTRL+SHIFT+i"})\n\n`:""}If you have organized scripts into subfolders under the script store folder and have multiple copies of the same script, you may need to clean up unused versions to clear this alert. For private copies of scripts that should not be updated, store them outside the script store folder.`,ERROR_PNG_TOO_LARGE:"Error exporting PNG - PNG too large, try a smaller resolution",WEB_DRAG_IMPORT_IMAGE:"Import Image to Vault",WEB_DRAG_IMAGE_URL:"Insert Image or YouTube Thumbnail with URL",WEB_DRAG_LINK:"Insert Link",WEB_DRAG_EMBEDDABLE:"Insert Interactive-Frame",LOCAL_DRAG_IMPORT:"Import external file or reuse existing file if path is from the Vault",LOCAL_DRAG_IMAGE:"Insert Image: with local URI or internal-link if from Vault",LOCAL_DRAG_LINK:"Insert Link: local URI or internal-link if from Vault",LOCAL_DRAG_EMBEDDABLE:"Insert Interactive-Frame: local URI or internal-link if from Vault",INTERNAL_DRAG_IMAGE:"Insert Image",INTERNAL_DRAG_IMAGE_FULL:"Insert Image @100%",INTERNAL_DRAG_LINK:"Insert Link",INTERNAL_DRAG_EMBEDDABLE:"Insert Interactive-Frame",LINK_CLICK_ACTIVE:"Open in current active window",LINK_CLICK_NEW_PANE:"Open in a new adjacent window",LINK_CLICK_POPOUT:"Open in a popout window",LINK_CLICK_NEW_TAB:"Open in a new tab",LINK_CLICK_MD_PROPS:"Show the Markdown image-properties dialog (only relevant if you have embedded a markdown document as an image)",EXPORTDIALOG_TITLE:"Export Drawing",EXPORTDIALOG_TAB_IMAGE:"Image",EXPORTDIALOG_TAB_PDF:"PDF",EXPORTDIALOG_SAVE_SETTINGS:"Save image settings to file doc.properties?",EXPORTDIALOG_SAVE_SETTINGS_SAVE:"Save as preset",EXPORTDIALOG_SAVE_SETTINGS_ONETIME:"One-time use",EXPORTDIALOG_IMAGE_SETTINGS:"Image",EXPORTDIALOG_IMAGE_DESC:"PNG supports transparency. External files can include Excalidraw scene data.",EXPORTDIALOG_PADDING:"Padding",EXPORTDIALOG_SCALE:"Scale",EXPORTDIALOG_CURRENT_PADDING:"Current padding:",EXPORTDIALOG_SIZE_DESC:"Scale affects output size",EXPORTDIALOG_SCALE_VALUE:"Scale:",EXPORTDIALOG_IMAGE_SIZE:"Size:",EXPORTDIALOG_EXPORT_THEME:"Theme",EXPORTDIALOG_THEME_LIGHT:"Light",EXPORTDIALOG_THEME_DARK:"Dark",EXPORTDIALOG_BACKGROUND:"Background",EXPORTDIALOG_BACKGROUND_TRANSPARENT:"Transparent",EXPORTDIALOG_BACKGROUND_USE_COLOR:"Use scene color",EXPORTDIALOG_SELECTED_ELEMENTS:"Export",EXPORTDIALOG_SELECTED_ALL:"Entire scene",EXPORTDIALOG_SELECTED_SELECTED:"Selection only",EXPORTDIALOG_EMBED_SCENE:"Include scene data?",EXPORTDIALOG_EMBED_YES:"Yes",EXPORTDIALOG_EMBED_NO:"No",EXPORTDIALOG_PDF_SETTINGS:"PDF",EXPORTDIALOG_PAGE_SIZE:"Size",EXPORTDIALOG_PAGE_ORIENTATION:"Orientation",EXPORTDIALOG_ORIENTATION_PORTRAIT:"Portrait",EXPORTDIALOG_ORIENTATION_LANDSCAPE:"Landscape",EXPORTDIALOG_PDF_FIT_TO_PAGE:"Page Fitting",EXPORTDIALOG_PDF_FIT_OPTION:"Fit to page",EXPORTDIALOG_PDF_FIT_2_OPTION:"Fit to max 2-pages",EXPORTDIALOG_PDF_FIT_4_OPTION:"Fit to max 4-pages",EXPORTDIALOG_PDF_FIT_6_OPTION:"Fit to max 6-pages",EXPORTDIALOG_PDF_FIT_8_OPTION:"Fit to max 8-pages",EXPORTDIALOG_PDF_FIT_12_OPTION:"Fit to max 12-pages",EXPORTDIALOG_PDF_FIT_16_OPTION:"Fit to max 16-pages",EXPORTDIALOG_PDF_SCALE_OPTION:"Use image scale (may span multiple pages)",EXPORTDIALOG_PDF_PAPER_COLOR:"Paper Color",EXPORTDIALOG_PDF_PAPER_WHITE:"White",EXPORTDIALOG_PDF_PAPER_SCENE:"Use scene color",EXPORTDIALOG_PDF_PAPER_CUSTOM:"Custom color",EXPORTDIALOG_PDF_ALIGNMENT:"Position on Page",EXPORTDIALOG_PDF_ALIGN_CENTER:"Center",EXPORTDIALOG_PDF_ALIGN_CENTER_LEFT:"Center Left",EXPORTDIALOG_PDF_ALIGN_CENTER_RIGHT:"Center Right",EXPORTDIALOG_PDF_ALIGN_TOP_LEFT:"Top Left",EXPORTDIALOG_PDF_ALIGN_TOP_CENTER:"Top Center",EXPORTDIALOG_PDF_ALIGN_TOP_RIGHT:"Top Right",EXPORTDIALOG_PDF_ALIGN_BOTTOM_LEFT:"Bottom Left",EXPORTDIALOG_PDF_ALIGN_BOTTOM_CENTER:"Bottom Center",EXPORTDIALOG_PDF_ALIGN_BOTTOM_RIGHT:"Bottom Right",EXPORTDIALOG_PDF_MARGIN:"Margin",EXPORTDIALOG_PDF_MARGIN_NONE:"None",EXPORTDIALOG_PDF_MARGIN_TINY:"Small",EXPORTDIALOG_PDF_MARGIN_NORMAL:"Normal",EXPORTDIALOG_SAVE_PDF_SETTINGS:"Save PDF settings",EXPORTDIALOG_SAVE_CONFIRMATION:"PDF config saved to plugin settings as default",EXPORTDIALOG_PNGTOFILE:"Export PNG",EXPORTDIALOG_SVGTOFILE:"Export SVG",EXPORTDIALOG_PNGTOVAULT:"PNG to Vault",EXPORTDIALOG_SVGTOVAULT:"SVG to Vault",EXPORTDIALOG_EXCALIDRAW:"Excalidraw",EXPORTDIALOG_PNGTOCLIPBOARD:"PNG to Clipboard",EXPORTDIALOG_SVGTOCLIPBOARD:"SVG to Clipboard",EXPORTDIALOG_PDF:"Export PDF",EXPORTDIALOG_PDF_PROGRESS_NOTICE:"Exporting PDF. If this image is large, it may take a while.",EXPORTDIALOG_PDF_PROGRESS_DONE:"Export complete",EXPORTDIALOG_PDF_PROGRESS_ERROR:"Error exporting PDF, check developer console for details",EXPORTDIALOG_NOT_AVAILALBE:"Sorry, this feature is only available when the drawing is open in the main Obsidian workspace.",EXPORTDIALOG_TAB_SCREENSHOT:"Screenshot",EXPORTDIALOG_SCREENSHOT_DESC:"Screenshots will include embeddables such as markdown pages, YouTube, websites, etc. They are only available on desktop, cannot be automatically exported, and only support PNG format.",SCREENSHOT_DESKTOP_ONLY:"Screenshot feature is only available on desktop",SCREENSHOT_FILE_SUCCESS:"Screenshot saved to vault",SCREENSHOT_CLIPBOARD_SUCCESS:"Screenshot copied to clipboard",SCREENSHOT_CLIPBOARD_ERROR:"Failed to copy screenshot to clipboard: ",SCREENSHOT_ERROR:"Error capturing screenshot - see console log",PDF_EXPORT_DESKTOP_ONLY:"PDF export is only available on desktop",UIFM_TITLE:"Insert File From Vault",UIFM_SECTION_HEAD:"Select section heading",UIFM_ANCHOR:"Anchor to 100% of original size",UIFM_ANCHOR_DESC:"This is a pro feature, use it only if you understand how it works. If enabled even if you change the size of the imported image in Excalidraw, the next time you open the drawing this image will pop back to 100% size. This is useful when embedding an atomic Excalidraw idea into another note and preserving relative sizing of text and icons.",UIFM_BTN_EMBEDDABLE:"as Embeddable",UIFM_BTN_PDF:"as Pdf",UIFM_BTN_IMAGE:"as Image",RN_WELCOME:"Welcome to Excalidraw",COMP_IMG:"Image & Files",COMP_IMG_FROM_SYSTEM:"Import from system",COMP_IMG_ANY_FILE:"ANY file from Vault",COMP_IMG_LaTeX:"LaTeX formula",COMP_FRAME:"Frame Actions",COMP_FRAME_HINT:"Toggle Marker Frame. Guide-only frames to define slides/print areas/image references. Hidden in image exports; doesn't contain elements. Hide/show frames via canvas context menu.",NOTICE_PDF_THEME:"PDF theme overridden.\nControl via this file's 'excalidraw-embeddable-theme' document property (overrides plugin).\n\nValues: dark, light, auto=Excalidraw, default=Obsidian.",BOOKMARK_PAGE:"Save current position in document",CAPTURE_PAGE:"Capture current page as image"};let locale=null;function loadLocale(lang){if("zh"===lang&&(lang="zh-cn"),Object.keys(PLUGIN_LANGUAGES).includes(lang)){const decompressed=LZString.decompressFromBase64(PLUGIN_LANGUAGES[lang]);let x={};return eval(decompressed),x}return en}function t$d(e){return locale||(locale=loadLocale(LOCALE)),locale&&locale[e]||en[e]}var PreviewImageType;!function(e){e.PNG="PNG",e.SVGIMG="SVGIMG",e.SVG="SVG"}(PreviewImageType||(PreviewImageType={}));class Random{constructor(e){this.seed=e}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}}let mathjaxLoaded=!1,tex2dataURLExternal,clearVariables,loadMathJaxPromise=null;const loadMathJax=async()=>(loadMathJaxPromise||(loadMathJaxPromise=(async()=>{if(!mathjaxLoaded){const e=await loadMathjaxToSVG();tex2dataURLExternal=e.tex2dataURL,clearVariables=e.clearMathJaxVariables,mathjaxLoaded=!0}})()),loadMathJaxPromise),updateEquation=async(e,t,a,i)=>{await loadMathJax();const n=await tex2dataURLExternal(e,4,a.app);if(n){const e=[];e.push({mimeType:n.mimeType,id:t,dataURL:n.dataURL,created:n.created,size:n.size,hasSVGwithBitmap:!1,shouldScale:!0}),i(e,a)}};async function tex2dataURL(e,t=4,a){return await loadMathJax(),tex2dataURLExternal(e,t,a)}const clearMathJaxVariables=()=>{clearVariables&&clearVariables()};function getMermaidImageElements(e){return e?e.filter((e=>"image"===e.type&&e.customData?.mermaidText)):[]}function getMermaidText(e){return e.customData?.mermaidText}function shouldRenderMermaid(){return obsidian_module.requireApiVersion("1.4.14")}const DB_NAME="Excalidraw "+app.appId,CACHE_STORE="imageCache",BACKUP_STORE="drawingBAK",getKey=e=>`${e.filepath}#${e.blockref??""}#${e.sectionref??""}#${e.isDark?1:0}#${e.hasGroupref}#${e.hasArearef}#${e.hasFrameref}#${e.hasClippedFrameref}#${e.hasSectionref}#${e.inlineFonts}#${e.previewImageType===PreviewImageType.SVGIMG?1:e.previewImageType===PreviewImageType.PNG?0:2}#${e.scale}${e.isTransparent?"#t":""}`;class ImageCache{dbName;cacheStoreName;backupStoreName;db;isInitializing;plugin;app;initializationNotice=!1;obsidanURLCache=new Map;purgeInvalidCacheTimer=null;purgeInvalidBackupTimer=null;destroy(){this.isInitializing=!0,this.purgeInvalidCacheTimer&&clearTimeout(this.purgeInvalidCacheTimer),this.purgeInvalidBackupTimer&&clearTimeout(this.purgeInvalidBackupTimer),this.db=null,this.plugin=null,this.app=null,this.obsidanURLCache.clear(),this.obsidanURLCache=null}constructor(e,t,a){this.dbName=e,this.cacheStoreName=t,this.backupStoreName=a,this.db=null,this.isInitializing=!1,this.plugin=null}async initializeDB(e){if(this.plugin=e,this.app=e.app,!this.isInitializing&&null===this.db){this.isInitializing=!0;try{const e=indexedDB.open(this.dbName);if(e.onupgradeneeded=e=>{const t=e.target.result;t.objectStoreNames.contains(this.cacheStoreName)||t.createObjectStore(this.cacheStoreName),t.objectStoreNames.contains(this.backupStoreName)||t.createObjectStore(this.backupStoreName)},this.db=await new Promise(((t,a)=>{e.onsuccess=e=>{const a=e.target.result;t(a)},e.onerror=()=>{a(new Error(`Failed to open or create IndexedDB database: ${this.dbName}`))}})),!this.db.objectStoreNames.contains(this.cacheStoreName)||!this.db.objectStoreNames.contains(this.backupStoreName)){const e=this.db.version+1;this.db.close();const t=indexedDB.open(this.dbName,e);t.onupgradeneeded=e=>{const t=e.target.result;t.objectStoreNames.contains(this.cacheStoreName)||t.createObjectStore(this.cacheStoreName),t.objectStoreNames.contains(this.backupStoreName)||t.createObjectStore(this.backupStoreName)},await new Promise(((e,a)=>{t.onsuccess=()=>{t.result.close(),e()},t.onerror=()=>{a(new Error(`Failed to upgrade IndexedDB database: ${this.dbName}`))}})),this.db=await new Promise(((e,t)=>{const a=indexedDB.open(this.dbName);a.onsuccess=()=>{const t=a.result;e(t)},a.onerror=()=>{t(new Error(`Failed to open IndexedDB database: ${this.dbName}`))}}))}this.purgeInvalidCacheTimer=window.setTimeout((async()=>{this.purgeInvalidCacheTimer=null,this.purgeInvalidCacheFiles()}),6e4),this.purgeInvalidBackupTimer=window.setTimeout((async()=>{this.purgeInvalidBackupTimer=null,this.purgeInvalidBackupFiles()}),12e4)}finally{this.isInitializing=!1,this.initializationNotice&&(new obsidian_module.Notice("Excalidraw Image Cache is Initialized - You may now retry opening your damaged drawing."),this.initializationNotice=!1),console.log("Initialized Excalidraw Image Cache")}}}async purgeInvalidCacheFiles(){return new Promise(((e,t)=>{const a=this.db.transaction(this.cacheStoreName,"readwrite"),i=a.objectStore(this.cacheStoreName),n=this.app.vault.getFiles(),r=[],s=i.openCursor();s.onsuccess=s=>{const o=s.target.result;if(o){const e=o.key,t=e.split("#").length-1<12,a=e.split("#")[0],s=n.some((e=>e.path===a)),l=s?n.find((e=>e.path===a)):null;(t||!l||l&&l.stat.mtime>o.value.mtime||!o.value.blob&&!o.value.svg)&&r.push(new Promise(((t,a)=>{const n=i.delete(o.primaryKey);n.onsuccess=()=>t(),n.onerror=t=>{const i=n.error,r=`Failed to delete file with key: ${e}. Error: ${i.message}`;a(new Error(r))}}))),o.continue()}else Promise.all(r).then((()=>{a.commit(),e()})).catch((e=>t(e)))},s.onerror=()=>{const e=s.error;console.log(e);const a=`Failed to purge invalid files from IndexedDB. Error: ${e.message}`;t(new Error(a))}}))}async purgeInvalidBackupFiles(){const e=this.db.transaction(this.backupStoreName,"readwrite"),t=e.objectStore(this.backupStoreName),a=this.app.vault.getFiles(),i=[],n=t.openCursor();return await new Promise(((r,s)=>{n.onsuccess=n=>{const o=n.target.result;if(o){const e=o.key,n=a.some((t=>t.path===e));n||i.push(new Promise(((a,i)=>{const n=t.delete(o.primaryKey);n.onsuccess=()=>a(),n.onerror=()=>i(new Error(`Failed to delete backup file with key: ${e}`))}))),o.continue()}else Promise.all(i).then((()=>{e.commit(),r()})).catch((e=>s(e)))},n.onerror=()=>{const e=n.error,t=`Failed to purge invalid backup files from IndexedDB. Error: ${e.message}`;console.log(e),s(new Error(t))}}))}getObjectStore(e,t){return this.db.transaction(t,e).objectStore(t)}async getCacheData(e){const t=this.getObjectStore("readonly",this.cacheStoreName).get(e);return await new Promise(((e,a)=>{t.onsuccess=()=>{const a=t.result;e(a||null)},t.onerror=()=>{a(new Error("Failed to retrieve data from IndexedDB."))}}))}async getBackupData(e){const t=this.getObjectStore("readonly",this.backupStoreName).get(e);return new Promise(((e,a)=>{t.onsuccess=()=>{const a=t.result;e(a||null)},t.onerror=()=>{a(new Error("Failed to retrieve backup data from IndexedDB."))}}))}isReady(){return!!this.db&&!this.isInitializing&&!!this.plugin&&this.plugin.settings.allowImageCache}fullyInitialized=!1;async getImageFromCache(e){if(!this.isReady())return null;const t=getKey(e);try{const a=this.fullyInitialized?await this.getCacheData(t):await Promise.race([this.getCacheData(t),new Promise(((e,t)=>setTimeout((()=>{t(void 0)}),100)))]);if(this.fullyInitialized=!0,!a)return;const i=this.app.vault.getAbstractFileByPath(e.filepath.split("#")[0]);if(!(i&&i instanceof obsidian_module.TFile))return;if(a&&a.mtime>=i.stat.mtime){if(hasExcalidrawEmbeddedImagesTreeChanged(i,a.mtime,this.plugin))return;if(a.svg)return convertSVGStringToElement(a.svg);if(this.obsidanURLCache.has(t))return this.obsidanURLCache.get(t);const e=URL.createObjectURL(a.blob);return this.obsidanURLCache.set(t,e),e}return}catch(e){return}}async getBAKFromCache(e){return this.isReady()?this.getBackupData(e):null}addImageToCache(e,t,a){if(!this.isReady())return;const i=this.app.vault.getAbstractFileByPath(e.filepath.split("#")[0]);if(!(i&&i instanceof obsidian_module.TFile))return;let n=null,r=null;a instanceof SVGSVGElement?n=a.outerHTML:r=a;const s={mtime:Date.now(),blob:r,svg:n},o=this.db.transaction(this.cacheStoreName,"readwrite").objectStore(this.cacheStoreName),l=getKey(e);o.put(s,l),Boolean(n)||this.obsidanURLCache.set(l,t)}async addBAKToCache(e,t){this.isReady()&&this.db.transaction(this.backupStoreName,"readwrite").objectStore(this.backupStoreName).put(t,e)}async removeBAKFromCache(e){if(!this.isReady())return;const t=this.db.transaction(this.backupStoreName,"readwrite").objectStore(this.backupStoreName);return new Promise(((a,i)=>{const n=t.delete(e);n.onsuccess=()=>{a()},n.onerror=()=>{i(new Error(`Failed to remove backup file with key: ${e}`))}}))}async clearImageCache(){if(this.isReady())return this.clear(this.cacheStoreName,"Image cache was cleared")}async clearBackupCache(){if(this.isReady())return this.clear(this.backupStoreName,"All backups were cleared")}async clear(e,t){if(!this.isReady())return;const a=this.db.transaction([e],"readwrite").objectStore(e);return new Promise(((i,n)=>{const r=a.clear();r.onsuccess=()=>{new obsidian_module.Notice(t),i()},r.onerror=()=>n(new Error(`Failed to clear ${e}.`))}))}}const imageCache=new ImageCache(DB_NAME,CACHE_STORE,BACKUP_STORE),markdownRendererRecursionWatcthdog=new Set,IMAGE_MIME_TYPES={svg:"image/svg+xml",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif",jfif:"image/jfif"},replaceSVGColors=(e,t)=>{if(!t)return e;if("string"==typeof e){for(const[a,i]of Object.entries(t)){if("stroke"===a||"fill"===a){const[t,n,r]=e.match(/(]*)(>)/i)||[];if(!t)continue;e=e.replace(t,t.match(new RegExp(`${a}=["'][^"']*["']`))?n.replace(new RegExp(`${a}=["'][^"']*["']`,"i"),`${a}="${i}"`)+r:`${n} ${a}="${i}"${r}`);continue}const t=new RegExp(`fill="${a}"`,"gi");e=e.replaceAll(t,`fill="${i}"`);const n=new RegExp(`fill:${a}`,"gi");e=e.replaceAll(n,`fill:${i}`);const r=new RegExp(`stroke="${a}"`,"gi");e=e.replaceAll(r,`stroke="${i}"`);const s=new RegExp(`stroke:${a}`,"gi");e=e.replaceAll(s,`stroke:${i}`)}return e}const a=e=>{if(e instanceof SVGElement){const a=e.getAttribute("fill")?.toLocaleLowerCase(),i=e.getAttribute("stroke")?.toLocaleLowerCase();a&&t[a]&&e.setAttribute("fill",t[a]),i&&t[i]&&e.setAttribute("stroke",t[i])}for(const t of e.childNodes)a(t)};"fill"in t&&e.setAttribute("fill",t.fill),"stroke"in t&&e.setAttribute("stroke",t.stroke);for(const t of e.childNodes)a(t);return e};class EmbeddedFile{file=null;isSVGwithBitmap=!1;img="";imgInverted="";mtime=0;plugin;mimeType="application/octet-stream";size={height:0,width:0};linkParts;filenameparts;hostPath;attemptCounter=0;isHyperLink=!1;isLocalLink=!1;hyperlink;colorMap=null;pdfPageViewProps;constructor(e,t,a,i){if(this.plugin=e,this.resetImage(t,a),this.file&&(this.plugin.isExcalidrawFile(this.file)||"svg"===this.file.extension.toLowerCase()))try{this.colorMap=i?JSON.parse(i.toLocaleLowerCase()):null}catch(e){this.colorMap=null}}get hasSeparateDarkAndLightVersion(){return this.isSVGwithBitmap||this.file&&"pdf"===this.file.extension.toLowerCase()}resetImage(e,t){return this.imgInverted=this.img="",this.mtime=0,t.startsWith("https://")||t.startsWith("http://")||t.startsWith("ftp://")||t.startsWith("ftps://")?(this.isHyperLink=!0,void(this.hyperlink=t)):t.startsWith("file://")?(this.isLocalLink=!0,void(this.hyperlink=t)):(this.linkParts=getLinkParts(t),this.hostPath=e,void(this.linkParts.path?(this.linkParts.width||(this.linkParts.width=this.plugin.settings.mdSVGwidth),this.linkParts.height||(this.linkParts.height=this.plugin.settings.mdSVGmaxHeight),this.file=this.plugin.app.metadataCache.getFirstLinkpathDest(this.linkParts.path,e),this.file?(this.filenameparts=getEmbeddedFilenameParts(t),this.filenameparts.filepath=this.file.path):0===this.attemptCounter++&&new obsidian_module.Notice(`Excalidraw Warning: could not find image file: ${t}`,5e3)):new obsidian_module.Notice(`Excalidraw Error\nIncorrect embedded filename: ${t}`)))}fileChanged(){return!this.isHyperLink&&!this.isLocalLink&&(this.file||(this.file=this.plugin.app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),this.file)?this.mtime!==this.file.stat.mtime:(this.attemptCounter++,!1))}setImage({imgBase64:e,mimeType:t,size:a,isDark:i,isSVGwithBitmap:n,pdfPageViewProps:r}){if(this.file||this.isHyperLink||this.isLocalLink)switch(this.fileChanged()&&(this.imgInverted=this.img=""),this.isSVGwithBitmap=n,this.mtime=this.isHyperLink||this.isLocalLink?0:this.file.stat.mtime,this.pdfPageViewProps=r,this.size=a,this.mimeType=t,i&&this.hasSeparateDarkAndLightVersion){case!0:this.imgInverted=e;break;case!1:this.img=e}}isLoaded(e){if(!this.isHyperLink&&!this.isLocalLink){if(!this.file&&(this.file=this.plugin.app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),!this.file))return this.attemptCounter++,!0;if(this.fileChanged())return!1}return this.hasSeparateDarkAndLightVersion&&e?""!==this.imgInverted:""!==this.img}getImage(e){return this.file||this.isHyperLink||this.isLocalLink?this.hasSeparateDarkAndLightVersion&&e?this.imgInverted:this.img:""}shouldScale(){return this.isHyperLink||this.isLocalLink||!Boolean(this.linkParts&&this.linkParts.original&&this.linkParts.original.endsWith("|100%"))}}class EmbeddedFilesLoader{pdfDocsMap=new Map;plugin;isDark;terminate=!1;uid;constructor(e,t){this.plugin=e,this.isDark=t,this.uid=nanoid()}emptyPDFDocsMap(){this.pdfDocsMap.forEach((e=>e.destroy())),this.pdfDocsMap.clear()}async getObsidianImage(e,t){const a=await this._getObsidianImage(e,t);return this.emptyPDFDocsMap(),a}async getExcalidrawSVG({isDark:e,file:t,depth:a,inFile:i,hasSVGwithBitmap:n,elements:r=[]}){const s=isMaskFile(this.plugin,t),o=hasExportTheme(this.plugin,t)?getExportTheme(this.plugin,t,"light"):void 0,l={withBackground:!!hasExportBackground(this.plugin,t)&&getWithBackground(this.plugin,t),withTheme:!!o,isMask:s,skipInliningFonts:!1},c=!Boolean(i instanceof EmbeddedFile?i.colorMap:null)&&this.plugin.settings.allowImageCacheInScene&&t&&imageCache.isReady(),d=Boolean(i instanceof EmbeddedFile&&i.filenameparts),h=d?i.filenameparts:null,p={...d?{...h,inlineFonts:!l.skipInliningFonts}:{filepath:t.path,hasBlockref:!1,hasGroupref:!1,hasTaskbone:!1,hasArearef:!1,hasFrameref:!1,hasClippedFrameref:!1,hasSectionref:!1,inlineFonts:!l.skipInliningFonts,blockref:null,sectionref:null,linkpartReference:null,linkpartAlias:null},isDark:e,previewImageType:PreviewImageType.SVG,scale:1,isTransparent:!l.withBackground},u=c?await imageCache.getImageFromCache(p):void 0,m=u&&u instanceof SVGSVGElement?u:replaceSVGColors(await createSVG(d?h.hasGroupref||h.hasBlockref||h.hasSectionref||h.hasFrameref||h.hasClippedFrameref?h.filepath+h.linkpartReference:t.path:t?.path,!1,d&&h.hasClippedFrameref?{...l,frameRendering:{enabled:!0,name:!1,outline:!1,clip:!0}}:l,this,o,null,null,r,this.plugin,a+1,getExportPadding(this.plugin,t)),i instanceof EmbeddedFile?i.colorMap:null),g=m.querySelectorAll("image:not([href^='data:image/svg'])");if(g.length>0&&(n=!0),n&&e&&!Boolean(u)&&g.forEach((e=>{const t=e.parentElement?.id;m.querySelectorAll(`use[href='#${t}']`).forEach((e=>{e.setAttribute("filter",THEME_FILTER)}))})),!n&&m.getAttribute("hasbitmap")&&(n=!0),c&&!Boolean(u)&&imageCache.addImageToCache(p,"",m),!m.hasAttribute("width")&&m.hasAttribute("viewBox")){const e=m.getAttr("viewBox").split(" ");Boolean(e[2])&&m.setAttribute("width",e[2]),Boolean(e[3])&&m.setAttribute("height",e[3])}return{dataURL:svgToBase64(m.outerHTML),hasSVGwithBitmap:n}}getLocalPath(e){const t=e.split("file://")[1];return t.startsWith("/")?t.substring(1):t}async _getObsidianImage(e,t){if(!this.plugin||!e)return null;const a=this.plugin.app,i=e instanceof EmbeddedFile&&e.isHyperLink,n=e instanceof EmbeddedFile&&e.isLocalLink,r=e instanceof EmbeddedFile?e.hyperlink:"",s=e instanceof EmbeddedFile?e.file:e;if(s&&markdownRendererRecursionWatcthdog.has(s))return new obsidian_module.Notice(`Loading of ${s.path}. Please check if there is an inifinite loop of one file embedded in the other.`),null;const o=i?null:e instanceof EmbeddedFile?e.linkParts:{original:s.path,path:s.path,isBlockRef:!1,ref:null,width:this.plugin.settings.mdSVGwidth,height:this.plugin.settings.mdSVGmaxHeight,page:null};let l=!1;const c=!i&&!n&&this.plugin.isExcalidrawFile(s),d=!i&&!n&&"pdf"===s.extension.toLowerCase();if(!(i||d||n||IMAGE_TYPES.contains(s.extension)||c||"md"===s.extension))return null;const h=i||d||c?null:n?await readLocalFileBinary(this.getLocalPath(e.hyperlink)):await a.vault.readBinary(s);let p=null;if(c){const a=await this.getExcalidrawSVG({isDark:this.isDark,file:s,depth:t,inFile:e,hasSVGwithBitmap:l});p=a.dataURL,l=a.hasSVGwithBitmap}const u=c?p:null,[m,g,f]=d?await this.pdfToDataURL(s,o):[null,null,null];let b=d?"image/png":"image/svg+xml";const U=i||n?getURLImageExtension(r):s.extension;c||d||(b=getMimeType(U));let E=i?e instanceof EmbeddedFile?await getDataURLFromURL(e.hyperlink,b):null:u??m??("svg"===s?.extension?await getSVGData(a,s,e instanceof EmbeddedFile?e.colorMap:null):"md"===s?.extension?null:await getDataURL(h,b));if(!i&&!E&&!n){markdownRendererRecursionWatcthdog.add(s);const e=await this.convertMarkdownToSVG(this.plugin,s,o,t);markdownRendererRecursionWatcthdog.delete(s),E=e.dataURL,l=e.hasSVGwithBitmap}try{const t=d?g:await getImageSize(E);return{mimeType:b,fileId:await generateIdFromFile(i||d||c?(new TextEncoder).encode(E).buffer:h,e instanceof EmbeddedFile?e.filenameparts?.linkpartReference:void 0),dataURL:E,created:i||n?0:s.stat.mtime,hasSVGwithBitmap:l,size:t,pdfPageViewProps:f}}catch(e){return null}}async loadSceneFiles({excalidrawData:e,addFiles:t,depth:a,isThemeChange:i=!1,fileIDWhiteList:n}){if(a>7)return void new obsidian_module.Notice(t$d("INFINITE_LOOP_WARNING")+a.toString(),6e3);const r=e.getFileEntries();let s;void 0===this.isDark&&(this.isDark="dark"===e?.scene?.appState?.theme);const o=[];o.push([]);let l=0;const c=setInterval((()=>{if(0!==o[l].length){try{t(o[l],this.isDark,!1)}catch(e){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:e})}o.push([]),l++}}),1200),d=function*(){for(;!(s=r.next()).done;){if(n&&!n.has(s.value[0]))continue;const e=s.value[1],t=s.value[0];yield promiseTry((async()=>{if(!this.terminate)if(e.isLoaded(this.isDark)){if(e.hasSeparateDarkAndLightVersion&&(0!==a||i)){const a={mimeType:e.mimeType,id:t,dataURL:e.getImage(this.isDark),created:e.mtime,size:e.size,hasSVGwithBitmap:e.isSVGwithBitmap,shouldScale:e.shouldScale(),pdfPageViewProps:e.pdfPageViewProps};o[l].push(a)}}else{const i=await this._getObsidianImage(e,a);if(i){const a={mimeType:i.mimeType,id:t,dataURL:i.dataURL,created:i.created,size:i.size,hasSVGwithBitmap:i.hasSVGwithBitmap,shouldScale:e.shouldScale(),pdfPageViewProps:i.pdfPageViewProps};o[l].push(a)}}}))}let t;const c=e.getEquationEntries();for(;!(t=c.next()).done;){if(n&&!n.has(t.value[0]))continue;const a=t.value[1],i=t.value[0];yield promiseTry((async()=>{if(!this.terminate&&!e.getEquation(i).isLoaded){const e=a.latex,t=await tex2dataURL(e,4,this.plugin);if(t){const e={mimeType:t.mimeType,id:i,dataURL:t.dataURL,created:t.created,size:t.size,hasSVGwithBitmap:!1,shouldScale:!0};o[l].push(e)}}}))}if(shouldRenderMermaid()){const t=getMermaidImageElements(e.scene.elements);for(const e of t)yield promiseTry((async()=>{if(this.terminate)return;const t=getMermaidText(e),i=await mermaidToExcalidraw(t,{themeVariables:{fontSize:"20"}},!0);if(i)if(i?.files)for(const t in i.files){const a={...i.files[t],id:e.fileId,created:Date.now(),hasSVGwithBitmap:!1,shouldScale:!0,size:await getImageSize(i.files[t].dataURL)};o[l].push(a)}else if(i?.elements){if(this.terminate)return;const t=await this.getExcalidrawSVG({isDark:this.isDark,file:null,depth:a,inFile:null,hasSVGwithBitmap:!1,elements:i.elements});if(t?.dataURL){const a=await getImageSize(t.dataURL),i={mimeType:"image/svg+xml",id:e.fileId,dataURL:t.dataURL,created:Date.now(),hasSVGwithBitmap:t.hasSVGwithBitmap,size:a,shouldScale:!0};o[l].push(i)}}}))}}.bind(this)(),h=this.plugin.settings.renderingConcurrency;if(await new PromisePool(d,h).all(),clearInterval(c),this.emptyPDFDocsMap(),this.terminate)t(void 0,this.isDark,!0);else try{t(o[l],this.isDark,!0)}catch(e){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:e})}}async pdfToDataURL(e,t){try{let a=0,i=0;const n=this.pdfDocsMap.get(e.path)??await getPDFDoc(e);this.pdfDocsMap.has(e.path)||this.pdfDocsMap.set(e.path,n);const r=isNaN(t.page)?1:t.page??1,s=this.plugin.settings.pdfScale,o=t.ref.split("rect=")[1]?.split(",").map((e=>parseInt(e))),l=o&&4===o.length&&o.every((e=>!isNaN(e)));let c;const d=async e=>{const t=createEl("canvas"),r=t.getContext("2d"),d=await n.getPage(e),h=d.getViewport({scale:s});i=t.height=Math.round(h.height),a=t.width=Math.round(h.width);const p={canvasContext:r,background:"rgba(0,0,0,0)",viewport:h};for(let e=0;e<4;e++)try{await d.render(p).promise;break}catch(t){if(3===e)throw t;await sleep(50*(e+1));continue}const[u,m,g,f]=d.view;if(c={left:u,bottom:m,right:g,top:f},c.rotate=d.rotate,l){const e=f-m,n=g-u;if(!d.rotate||0===d.rotate)return a=(o[2]-o[0])*s,i=(o[3]-o[1])*s,cropCanvas(t,{left:(o[0]-u)*s,top:(m+e-o[3])*s,width:a,height:i});if(90===d.rotate)return a=(o[3]-o[1])*s,i=(o[2]-o[0])*s,cropCanvas(t,{left:o[1]*s,top:(e-o[2])*s,width:a,height:i});if(180===d.rotate)return a=(o[2]-o[0])*s,i=(o[3]-o[1])*s,cropCanvas(t,{left:(n-o[2])*s,top:o[1]*s,width:a,height:i});if(270===d.rotate)return a=(o[3]-o[1])*s,i=(o[2]-o[0])*s,cropCanvas(t,{left:(n-o[3])*s,top:o[0]*s,width:a,height:i})}return t},h=await d(r);if(h){if(this.isDark){const e=h.getContext("2d");if(e)try{const t=e.getImageData(0,0,h.width,h.height),a=t.data;for(let e=0;e{h.toBlob((async t=>{const a=await blobToBase64(t);e(a)}))}))}`,{width:a,height:i},c];return h.width=0,h.height=0,e}}catch(e){return console.log(e),[null,null,null]}}async convertMarkdownToSVG(e,t,a,i){let n=!1;const r=await getTransclusion(a,e.app,t);let s=(r.leadingHashes??"")+r.contents;""===s&&(s="# Empty markdown file\nCTRL+Click here to open the file for editing in the current active pane, or CTRL+SHIFT+Click to open it in an adjacent pane.");const o=e.app.metadataCache.getFileCache(t);let l,c=e.settings.mdFont;switch(o?.frontmatter&&Boolean(o.frontmatter[FRONTMATTER_KEYS.font.name])&&(c=o.frontmatter[FRONTMATTER_KEYS.font.name]),c){case"Virgil":l=await getCSSFontDefinition(1);break;case"Cascadia":l=await getCSSFontDefinition(3);break;case"Assistant":case"Helvetica":l=await getCSSFontDefinition(2);break;case"Excalifont":l=await getCSSFontDefinition(5);break;case"Nunito":l=await getCSSFontDefinition(6);break;case"Lilita One":l=await getCSSFontDefinition(7);break;case"Comic Shanns":l=await getCSSFontDefinition(8);break;case"Liberation Sans":l=await getCSSFontDefinition(9);break;case"":l="";break;default:const a=await getFontDataURL(e.app,c,t.path);l=a.fontDef,c=a.fontName}o?.frontmatter&&null!==o.frontmatter.banner&&(s=s.replace(/banner:\s*.*/,""));const d=o?.frontmatter?o.frontmatter[FRONTMATTER_KEYS["font-color"].name]??e.settings.mdFontColor:e.settings.mdFontColor;let h=o?.frontmatter?o.frontmatter[FRONTMATTER_KEYS["md-css"].name]??"":"",p=!1;if(h&&""!==h){const a=e.app.metadataCache.getFirstLinkpathDest(h,t.path);a&&(h=await e.app.vault.read(a),p=!0)}if(!p)if(e.settings.mdCSS&&""!==e.settings.mdCSS){const a=e.app.metadataCache.getFirstLinkpathDest(e.settings.mdCSS,t.path);h+=a?`\n${await e.app.vault.read(a)}`:DEFAULT_MD_EMBED_CSS}else h+=DEFAULT_MD_EMBED_CSS;const u=o?.frontmatter?o.frontmatter[FRONTMATTER_KEYS["border-color"].name]??e.settings.mdBorderColor:e.settings.mdBorderColor;u&&""!==u&&!h.match(/svg/i)&&(h+=`svg{border:2px solid;color:${u};transform:scale(.95)}`);let m=` width="${a.width}px" height="100000"`,g=` width="${a.width}px" height="100%"`;const f=(e,t,a)=>`${a?``:""}${e}${t}${""!==l?``:""}`,b=createDiv();b.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),b.setAttribute("class","excalidraw-md-host"),""!==c&&(b.style.fontFamily=c),b.style.overflow="auto",b.style.display="block",b.style.color=d&&""!==d?d:"initial",await obsidian_module.MarkdownRenderer.render(this.plugin.app,s,b,t.path,this.plugin),b.querySelectorAll(":scope > *[class^='frontmatter']").forEach((e=>b.removeChild(e))),await replaceBlobWithBase64(b);const U=Array.from(b.querySelectorAll("span[class='internal-embed']"));for(let a=0;a{const t=e.style,a=window.getComputedStyle(e);let i="";for(const e in t)t.hasOwnProperty(e)&&(i+=`${e}: ${a[e]};`);e.setAttribute("style",i)}));const T=(new XMLSerializer).serializeToString(y),S=(new XMLSerializer).serializeToString(v);document.body.removeChild(E);const _=new DOMParser,x=_.parseFromString(f(T,S),"image/svg+xml").firstElementChild,C=createDiv();C.appendChild(x),document.body.appendChild(C);const I=x.querySelector(".excalidraw-md-footer").scrollHeight,A=x.querySelector(".excalidraw-md-host").scrollHeight+I,k=A<=a.height?A:a.height;document.body.removeChild(C),m=` width="${a.width}px" height="${k}px"`,g=` width="${a.width}px" height="${k}px"`,b.style.height=k-I+"px",b.style.overflow="hidden";const O=b.querySelectorAll("img:not([src^='data:image/svg+xml'])");O.length>0&&(n=!0),n&&this.isDark&&O.forEach((e=>{e instanceof HTMLImageElement&&(e.style.filter=THEME_FILTER)}));const R=f((new XMLSerializer).serializeToString(b),'',h);return e.ea.mostRecentMarkdownSVG=_.parseFromString(R,"image/svg+xml").firstElementChild,{dataURL:svgToBase64(R),hasSVGwithBitmap:n}}}const getSVGData=async(e,t,a)=>svgToBase64(replaceSVGColors(await e.vault.read(t),a)),generateIdFromFile=async(e,t)=>{let a;try{const i=new Uint8Array(e);let n;if(t){const e=(new TextEncoder).encode(t);n=new Uint8Array(i.length+e.length),n.set(i),n.set(e,i.length)}else n=i;const r=n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength),s=await window.crypto.subtle.digest("SHA-1",r);a=Array.from(new Uint8Array(s)).map((e=>e.toString(16).padStart(2,"0"))).join("")}catch(e){errorlog({where:"EmbeddedFileLoader.generateIdFromFile",error:e}),a=fileid()}return a},replaceBlobWithBase64=async e=>{const t=e.querySelectorAll('img[src^="blob:app://obsidian.md"]');for(let e of t){const t=e.src;try{const a=await fetch(t),i=await a.blob(),n=await blobToBase64(i);e.src=`data:${i.type};base64,${n}`}catch(e){console.error(`Failed to fetch or convert blob: ${t}`,e)}}};function isNothing(e){return null==e}function isObject(e){return"object"==typeof e&&null!==e}function toArray(e){return Array.isArray(e)?e:isNothing(e)?[]:[e]}function extend(e,t){var a,i,n,r;if(t)for(a=0,i=(r=Object.keys(t)).length;ao&&(t=i-o+(r=" ... ").length),a-i>o&&(a=i+o-(s=" ...").length),{str:r+e.slice(t,a).replace(/\t/g,"→")+s,pos:i-t+r.length}}function padStart(e,t){return common.repeat(" ",t-e.length)+e}function makeSnippet(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),"number"!=typeof t.indent&&(t.indent=1),"number"!=typeof t.linesBefore&&(t.linesBefore=3),"number"!=typeof t.linesAfter&&(t.linesAfter=2);for(var a,i=/\r?\n|\r|\0/g,n=[0],r=[],s=-1;a=i.exec(e.buffer);)r.push(a.index),n.push(a.index+a[0].length),e.position<=a.index&&s<0&&(s=n.length-2);s<0&&(s=n.length-1);var o,l,c="",d=Math.min(e.line+t.linesAfter,r.length).toString().length,h=t.maxLength-(t.indent+d+3);for(o=1;o<=t.linesBefore&&!(s-o<0);o++)l=getLine(e.buffer,n[s-o],r[s-o],e.position-(n[s]-n[s-o]),h),c=common.repeat(" ",t.indent)+padStart((e.line-o+1).toString(),d)+" | "+l.str+"\n"+c;for(l=getLine(e.buffer,n[s],r[s],e.position,h),c+=common.repeat(" ",t.indent)+padStart((e.line+1).toString(),d)+" | "+l.str+"\n",c+=common.repeat("-",t.indent+d+3+l.pos)+"^\n",o=1;o<=t.linesAfter&&!(s+o>=r.length);o++)l=getLine(e.buffer,n[s+o],r[s+o],e.position-(n[s]-n[s+o]),h),c+=common.repeat(" ",t.indent)+padStart((e.line+o+1).toString(),d)+" | "+l.str+"\n";return c.replace(/\n$/,"")}var snippet=makeSnippet,TYPE_CONSTRUCTOR_OPTIONS=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],YAML_NODE_KINDS=["scalar","sequence","mapping"];function compileStyleAliases(e){var t={};return null!==e&&Object.keys(e).forEach((function(a){e[a].forEach((function(e){t[String(e)]=a}))})),t}function Type$1(e,t){if(t=t||{},Object.keys(t).forEach((function(t){if(-1===TYPE_CONSTRUCTOR_OPTIONS.indexOf(t))throw new exception('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=compileStyleAliases(t.styleAliases||null),-1===YAML_NODE_KINDS.indexOf(this.kind))throw new exception('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var type$1=Type$1;function compileList(e,t){var a=[];return e[t].forEach((function(e){var t=a.length;a.forEach((function(a,i){a.tag===e.tag&&a.kind===e.kind&&a.multi===e.multi&&(t=i)})),a[t]=e})),a}function compileMap(){var e,t,a={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function i(e){e.multi?(a.multi[e.kind].push(e),a.multi.fallback.push(e)):a[e.kind][e.tag]=a.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),YAML_FLOAT_PATTERN=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function resolveYamlFloat(e){return null!==e&&!(!YAML_FLOAT_PATTERN.test(e)||"_"===e[e.length-1])}function constructYamlFloat(e){var t,a;return a="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===a?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:a*parseFloat(t,10)}var SCIENTIFIC_WITHOUT_DOT=/^[-+]?[0-9]+e/;function representYamlFloat(e,t){var a;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(common.isNegativeZero(e))return"-0.0";return a=e.toString(10),SCIENTIFIC_WITHOUT_DOT.test(a)?a.replace("e",".e"):a}function isFloat(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||common.isNegativeZero(e))}var float=new type$1("tag:yaml.org,2002:float",{kind:"scalar",resolve:resolveYamlFloat,construct:constructYamlFloat,predicate:isFloat,represent:representYamlFloat,defaultStyle:"lowercase"}),json=failsafe.extend({implicit:[_null,bool,int,float]}),core=json,YAML_DATE_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),YAML_TIMESTAMP_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function resolveYamlTimestamp(e){return null!==e&&(null!==YAML_DATE_REGEXP.exec(e)||null!==YAML_TIMESTAMP_REGEXP.exec(e))}function constructYamlTimestamp(e){var t,a,i,n,r,s,o,l,c=0,d=null;if(null===(t=YAML_DATE_REGEXP.exec(e))&&(t=YAML_TIMESTAMP_REGEXP.exec(e)),null===t)throw new Error("Date resolve error");if(a=+t[1],i=+t[2]-1,n=+t[3],!t[4])return new Date(Date.UTC(a,i,n));if(r=+t[4],s=+t[5],o=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(d=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(d=-d)),l=new Date(Date.UTC(a,i,n,r,s,o,c)),d&&l.setTime(l.getTime()-d),l}function representYamlTimestamp(e){return e.toISOString()}var timestamp=new type$1("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:resolveYamlTimestamp,construct:constructYamlTimestamp,instanceOf:Date,represent:representYamlTimestamp});function resolveYamlMerge(e){return"<<"===e||null===e}var merge=new type$1("tag:yaml.org,2002:merge",{kind:"scalar",resolve:resolveYamlMerge}),BASE64_MAP="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";function resolveYamlBinary(e){if(null===e)return!1;var t,a,i=0,n=e.length,r=BASE64_MAP;for(a=0;a64)){if(t<0)return!1;i+=6}return i%8==0}function constructYamlBinary(e){var t,a,i=e.replace(/[\r\n=]/g,""),n=i.length,r=BASE64_MAP,s=0,o=[];for(t=0;t>16&255),o.push(s>>8&255),o.push(255&s)),s=s<<6|r.indexOf(i.charAt(t));return 0==(a=n%4*6)?(o.push(s>>16&255),o.push(s>>8&255),o.push(255&s)):18===a?(o.push(s>>10&255),o.push(s>>2&255)):12===a&&o.push(s>>4&255),new Uint8Array(o)}function representYamlBinary(e){var t,a,i="",n=0,r=e.length,s=BASE64_MAP;for(t=0;t>18&63],i+=s[n>>12&63],i+=s[n>>6&63],i+=s[63&n]),n=(n<<8)+e[t];return 0==(a=r%3)?(i+=s[n>>18&63],i+=s[n>>12&63],i+=s[n>>6&63],i+=s[63&n]):2===a?(i+=s[n>>10&63],i+=s[n>>4&63],i+=s[n<<2&63],i+=s[64]):1===a&&(i+=s[n>>2&63],i+=s[n<<4&63],i+=s[64],i+=s[64]),i}function isBinary(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)}var binary=new type$1("tag:yaml.org,2002:binary",{kind:"scalar",resolve:resolveYamlBinary,construct:constructYamlBinary,predicate:isBinary,represent:representYamlBinary}),_hasOwnProperty$3=Object.prototype.hasOwnProperty,_toString$2=Object.prototype.toString;function resolveYamlOmap(e){if(null===e)return!0;var t,a,i,n,r,s=[],o=e;for(t=0,a=o.length;t>10),56320+(e-65536&1023))}for(var simpleEscapeCheck=new Array(256),simpleEscapeMap=new Array(256),i$b=0;i$b<256;i$b++)simpleEscapeCheck[i$b]=simpleEscapeSequence(i$b)?1:0,simpleEscapeMap[i$b]=simpleEscapeSequence(i$b);function State$1(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||_default,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function generateError(e,t){var a={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return a.snippet=snippet(a),new exception(t,a)}function throwError(e,t){throw generateError(e,t)}function throwWarning(e,t){e.onWarning&&e.onWarning.call(null,generateError(e,t))}var directiveHandlers={YAML:function(e,t,a){var i,n,r;null!==e.version&&throwError(e,"duplication of %YAML directive"),1!==a.length&&throwError(e,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(a[0]))&&throwError(e,"ill-formed argument of the YAML directive"),n=parseInt(i[1],10),r=parseInt(i[2],10),1!==n&&throwError(e,"unacceptable YAML version of the document"),e.version=a[0],e.checkLineBreaks=r<2,1!==r&&2!==r&&throwWarning(e,"unsupported YAML version of the document")},TAG:function(e,t,a){var i,n;2!==a.length&&throwError(e,"TAG directive accepts exactly two arguments"),i=a[0],n=a[1],PATTERN_TAG_HANDLE.test(i)||throwError(e,"ill-formed tag handle (first argument) of the TAG directive"),_hasOwnProperty$1.call(e.tagMap,i)&&throwError(e,'there is a previously declared suffix for "'+i+'" tag handle'),PATTERN_TAG_URI.test(n)||throwError(e,"ill-formed tag prefix (second argument) of the TAG directive");try{n=decodeURIComponent(n)}catch(t){throwError(e,"tag prefix is malformed: "+n)}e.tagMap[i]=n}};function captureSegment(e,t,a,i){var n,r,s,o;if(t1&&(e.result+=common.repeat("\n",t-1))}function readPlainScalar(e,t,a){var i,n,r,s,o,l,c,d,h=e.kind,p=e.result;if(is_WS_OR_EOL(d=e.input.charCodeAt(e.position))||is_FLOW_INDICATOR(d)||35===d||38===d||42===d||33===d||124===d||62===d||39===d||34===d||37===d||64===d||96===d)return!1;if((63===d||45===d)&&(is_WS_OR_EOL(i=e.input.charCodeAt(e.position+1))||a&&is_FLOW_INDICATOR(i)))return!1;for(e.kind="scalar",e.result="",n=r=e.position,s=!1;0!==d;){if(58===d){if(is_WS_OR_EOL(i=e.input.charCodeAt(e.position+1))||a&&is_FLOW_INDICATOR(i))break}else if(35===d){if(is_WS_OR_EOL(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&testDocumentSeparator(e)||a&&is_FLOW_INDICATOR(d))break;if(is_EOL(d)){if(o=e.line,l=e.lineStart,c=e.lineIndent,skipSeparationSpace(e,!1,-1),e.lineIndent>=t){s=!0,d=e.input.charCodeAt(e.position);continue}e.position=r,e.line=o,e.lineStart=l,e.lineIndent=c;break}}s&&(captureSegment(e,n,r,!1),writeFoldedLines(e,e.line-o),n=r=e.position,s=!1),is_WHITE_SPACE(d)||(r=e.position+1),d=e.input.charCodeAt(++e.position)}return captureSegment(e,n,r,!1),!!e.result||(e.kind=h,e.result=p,!1)}function readSingleQuotedScalar(e,t){var a,i,n;if(39!==(a=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,i=n=e.position;0!==(a=e.input.charCodeAt(e.position));)if(39===a){if(captureSegment(e,i,e.position,!0),39!==(a=e.input.charCodeAt(++e.position)))return!0;i=e.position,e.position++,n=e.position}else is_EOL(a)?(captureSegment(e,i,n,!0),writeFoldedLines(e,skipSeparationSpace(e,!1,t)),i=n=e.position):e.position===e.lineStart&&testDocumentSeparator(e)?throwError(e,"unexpected end of the document within a single quoted scalar"):(e.position++,n=e.position);throwError(e,"unexpected end of the stream within a single quoted scalar")}function readDoubleQuotedScalar(e,t){var a,i,n,r,s,o;if(34!==(o=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,a=i=e.position;0!==(o=e.input.charCodeAt(e.position));){if(34===o)return captureSegment(e,a,e.position,!0),e.position++,!0;if(92===o){if(captureSegment(e,a,e.position,!0),is_EOL(o=e.input.charCodeAt(++e.position)))skipSeparationSpace(e,!1,t);else if(o<256&&simpleEscapeCheck[o])e.result+=simpleEscapeMap[o],e.position++;else if((s=escapedHexLen(o))>0){for(n=s,r=0;n>0;n--)(s=fromHexCode(o=e.input.charCodeAt(++e.position)))>=0?r=(r<<4)+s:throwError(e,"expected hexadecimal character");e.result+=charFromCodepoint(r),e.position++}else throwError(e,"unknown escape sequence");a=i=e.position}else is_EOL(o)?(captureSegment(e,a,i,!0),writeFoldedLines(e,skipSeparationSpace(e,!1,t)),a=i=e.position):e.position===e.lineStart&&testDocumentSeparator(e)?throwError(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}throwError(e,"unexpected end of the stream within a double quoted scalar")}function readFlowCollection(e,t){var a,i,n,r,s,o,l,c,d,h,p,u,m=!0,g=e.tag,f=e.anchor,b=Object.create(null);if(91===(u=e.input.charCodeAt(e.position)))s=93,c=!1,r=[];else{if(123!==u)return!1;s=125,c=!0,r={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=r),u=e.input.charCodeAt(++e.position);0!==u;){if(skipSeparationSpace(e,!0,t),(u=e.input.charCodeAt(e.position))===s)return e.position++,e.tag=g,e.anchor=f,e.kind=c?"mapping":"sequence",e.result=r,!0;m?44===u&&throwError(e,"expected the node content, but found ','"):throwError(e,"missed comma between flow collection entries"),p=null,o=l=!1,63===u&&is_WS_OR_EOL(e.input.charCodeAt(e.position+1))&&(o=l=!0,e.position++,skipSeparationSpace(e,!0,t)),a=e.line,i=e.lineStart,n=e.position,composeNode(e,t,CONTEXT_FLOW_IN,!1,!0),h=e.tag,d=e.result,skipSeparationSpace(e,!0,t),u=e.input.charCodeAt(e.position),!l&&e.line!==a||58!==u||(o=!0,u=e.input.charCodeAt(++e.position),skipSeparationSpace(e,!0,t),composeNode(e,t,CONTEXT_FLOW_IN,!1,!0),p=e.result),c?storeMappingPair(e,r,b,h,d,p,a,i,n):o?r.push(storeMappingPair(e,null,b,h,d,p,a,i,n)):r.push(d),skipSeparationSpace(e,!0,t),44===(u=e.input.charCodeAt(e.position))?(m=!0,u=e.input.charCodeAt(++e.position)):m=!1}throwError(e,"unexpected end of the stream within a flow collection")}function readBlockScalar(e,t){var a,i,n,r,s=CHOMPING_CLIP,o=!1,l=!1,c=t,d=0,h=!1;if(124===(r=e.input.charCodeAt(e.position)))i=!1;else{if(62!==r)return!1;i=!0}for(e.kind="scalar",e.result="";0!==r;)if(43===(r=e.input.charCodeAt(++e.position))||45===r)CHOMPING_CLIP===s?s=43===r?CHOMPING_KEEP:CHOMPING_STRIP:throwError(e,"repeat of a chomping mode identifier");else{if(!((n=fromDecimalCode(r))>=0))break;0===n?throwError(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?throwError(e,"repeat of an indentation width identifier"):(c=t+n-1,l=!0)}if(is_WHITE_SPACE(r)){do{r=e.input.charCodeAt(++e.position)}while(is_WHITE_SPACE(r));if(35===r)do{r=e.input.charCodeAt(++e.position)}while(!is_EOL(r)&&0!==r)}for(;0!==r;){for(readLineBreak(e),e.lineIndent=0,r=e.input.charCodeAt(e.position);(!l||e.lineIndentc&&(c=e.lineIndent),is_EOL(r))d++;else{if(e.lineIndentt)&&0!==i)throwError(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(b&&(s=e.line,o=e.lineStart,l=e.position),composeNode(e,t,CONTEXT_BLOCK_OUT,!0,n)&&(b?g=e.result:f=e.result),b||(storeMappingPair(e,p,u,m,g,f,s,o,l),m=g=f=null),skipSeparationSpace(e,!0,-1),c=e.input.charCodeAt(e.position)),(e.line===r||e.lineIndent>t)&&0!==c)throwError(e,"bad indentation of a mapping entry");else if(e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),l=0,c=e.implicitTypes.length;l"),null!==e.result&&h.kind!==e.kind&&throwError(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+h.kind+'", not "'+e.kind+'"'),h.resolve(e.result,e.tag)?(e.result=h.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):throwError(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function readDocument(e){var t,a,i,n,r=e.position,s=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(n=e.input.charCodeAt(e.position))&&(skipSeparationSpace(e,!0,-1),n=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==n));){for(s=!0,n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!is_WS_OR_EOL(n);)n=e.input.charCodeAt(++e.position);for(i=[],(a=e.input.slice(t,e.position)).length<1&&throwError(e,"directive name must not be less than one character in length");0!==n;){for(;is_WHITE_SPACE(n);)n=e.input.charCodeAt(++e.position);if(35===n){do{n=e.input.charCodeAt(++e.position)}while(0!==n&&!is_EOL(n));break}if(is_EOL(n))break;for(t=e.position;0!==n&&!is_WS_OR_EOL(n);)n=e.input.charCodeAt(++e.position);i.push(e.input.slice(t,e.position))}0!==n&&readLineBreak(e),_hasOwnProperty$1.call(directiveHandlers,a)?directiveHandlers[a](e,a,i):throwWarning(e,'unknown document directive "'+a+'"')}skipSeparationSpace(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,skipSeparationSpace(e,!0,-1)):s&&throwError(e,"directives end mark is expected"),composeNode(e,e.lineIndent-1,CONTEXT_BLOCK_OUT,!1,!0),skipSeparationSpace(e,!0,-1),e.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(e.input.slice(r,e.position))&&throwWarning(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&testDocumentSeparator(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,skipSeparationSpace(e,!0,-1)):e.position=55296&&i<=56319&&t+1=56320&&a<=57343?1024*(i-55296)+a-56320+65536:i}function needIndentIndicator(e){return/^\n* /.test(e)}var STYLE_PLAIN=1,STYLE_SINGLE=2,STYLE_LITERAL=3,STYLE_FOLDED=4,STYLE_DOUBLE=5;function chooseScalarStyle(e,t,a,i,n,r,s,o){var l,c=0,d=null,h=!1,p=!1,u=-1!==i,m=-1,g=isPlainSafeFirst(codePointAt(e,0))&&isPlainSafeLast(codePointAt(e,e.length-1));if(t||s)for(l=0;l=65536?l+=2:l++){if(!isPrintable(c=codePointAt(e,l)))return STYLE_DOUBLE;g=g&&isPlainSafe(c,d,o),d=c}else{for(l=0;l=65536?l+=2:l++){if((c=codePointAt(e,l))===CHAR_LINE_FEED)h=!0,u&&(p=p||l-m-1>i&&" "!==e[m+1],m=l);else if(!isPrintable(c))return STYLE_DOUBLE;g=g&&isPlainSafe(c,d,o),d=c}p=p||u&&l-m-1>i&&" "!==e[m+1]}return h||p?a>9&&needIndentIndicator(e)?STYLE_DOUBLE:s?r===QUOTING_TYPE_DOUBLE?STYLE_DOUBLE:STYLE_SINGLE:p?STYLE_FOLDED:STYLE_LITERAL:!g||s||n(e)?r===QUOTING_TYPE_DOUBLE?STYLE_DOUBLE:STYLE_SINGLE:STYLE_PLAIN}function writeScalar(e,t,a,i,n){e.dump=function(){if(0===t.length)return e.quotingType===QUOTING_TYPE_DOUBLE?'""':"''";if(!e.noCompatMode&&(-1!==DEPRECATED_BOOLEANS_SYNTAX.indexOf(t)||DEPRECATED_BASE60_SYNTAX.test(t)))return e.quotingType===QUOTING_TYPE_DOUBLE?'"'+t+'"':"'"+t+"'";var r=e.indent*Math.max(1,a),s=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-r),o=i||e.flowLevel>-1&&a>=e.flowLevel;switch(chooseScalarStyle(t,o,e.indent,s,(function(t){return testImplicitResolving(e,t)}),e.quotingType,e.forceQuotes&&!i,n)){case STYLE_PLAIN:return t;case STYLE_SINGLE:return"'"+t.replace(/'/g,"''")+"'";case STYLE_LITERAL:return"|"+blockHeader(t,e.indent)+dropEndingNewline(indentString(t,r));case STYLE_FOLDED:return">"+blockHeader(t,e.indent)+dropEndingNewline(indentString(foldString(t,s),r));case STYLE_DOUBLE:return'"'+escapeString(t)+'"';default:throw new exception("impossible error: invalid scalar style")}}()}function blockHeader(e,t){var a=needIndentIndicator(e)?String(t):"",i="\n"===e[e.length-1];return a+(!i||"\n"!==e[e.length-2]&&"\n"!==e?i?"":"-":"+")+"\n"}function dropEndingNewline(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function foldString(e,t){for(var a,i,n,r=/(\n+)([^\n]*)/g,s=(a=-1!==(a=e.indexOf("\n"))?a:e.length,r.lastIndex=a,foldLine(e.slice(0,a),t)),o="\n"===e[0]||" "===e[0];n=r.exec(e);){var l=n[1],c=n[2];i=" "===c[0],s+=l+(o||i||""===c?"":"\n")+foldLine(c,t),o=i}return s}function foldLine(e,t){if(""===e||" "===e[0])return e;for(var a,i,n=/ [^ ]/g,r=0,s=0,o=0,l="";a=n.exec(e);)(o=a.index)-r>t&&(i=s>r?s:o,l+="\n"+e.slice(r,i),r=i+1),s=o;return l+="\n",e.length-r>t&&s>r?l+=e.slice(r,s)+"\n"+e.slice(s+1):l+=e.slice(r),l.slice(1)}function escapeString(e){for(var t,a="",i=0,n=0;n=65536?n+=2:n++)i=codePointAt(e,n),!(t=ESCAPE_SEQUENCES[i])&&isPrintable(i)?(a+=e[n],i>=65536&&(a+=e[n+1])):a+=t||encodeHex(i);return a}function writeFlowSequence(e,t,a){var i,n,r,s="",o=e.tag;for(i=0,n=a.length;i1024&&(o+="? "),o+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),writeNode(e,t,s,!1,!1)&&(l+=o+=e.dump));e.tag=c,e.dump="{"+l+"}"}function writeBlockMapping(e,t,a,i){var n,r,s,o,l,c,d="",h=e.tag,p=Object.keys(a);if(!0===e.sortKeys)p.sort();else if("function"==typeof e.sortKeys)p.sort(e.sortKeys);else if(e.sortKeys)throw new exception("sortKeys must be a boolean or a function");for(n=0,r=p.length;n1024)&&(e.dump&&CHAR_LINE_FEED===e.dump.charCodeAt(0)?c+="?":c+="? "),c+=e.dump,l&&(c+=generateNextLine(e,t)),writeNode(e,t+1,o,!0,l)&&(e.dump&&CHAR_LINE_FEED===e.dump.charCodeAt(0)?c+=":":c+=": ",d+=c+=e.dump));e.tag=h,e.dump=d||"{}"}function detectType(e,t,a){var i,n,r,s,o,l;for(r=0,s=(n=a?e.explicitTypes:e.implicitTypes).length;r tag resolver accepts not "'+l+'" style');i=o.represent[l](t,l)}e.dump=i}return!0}return!1}function writeNode(e,t,a,i,n,r,s){e.tag=null,e.dump=a,detectType(e,a,!1)||detectType(e,a,!0);var o,l=_toString.call(e.dump),c=i;i&&(i=e.flowLevel<0||e.flowLevel>t);var d,h,p="[object Object]"===l||"[object Array]"===l;if(p&&(h=-1!==(d=e.duplicates.indexOf(a))),(null!==e.tag&&"?"!==e.tag||h||2!==e.indent&&t>0)&&(n=!1),h&&e.usedDuplicates[d])e.dump="*ref_"+d;else{if(p&&h&&!e.usedDuplicates[d]&&(e.usedDuplicates[d]=!0),"[object Object]"===l)i&&0!==Object.keys(e.dump).length?(writeBlockMapping(e,t,e.dump,n),h&&(e.dump="&ref_"+d+e.dump)):(writeFlowMapping(e,t,e.dump),h&&(e.dump="&ref_"+d+" "+e.dump));else if("[object Array]"===l)i&&0!==e.dump.length?(e.noArrayIndent&&!s&&t>0?writeBlockSequence(e,t-1,e.dump,n):writeBlockSequence(e,t,e.dump,n),h&&(e.dump="&ref_"+d+e.dump)):(writeFlowSequence(e,t,e.dump),h&&(e.dump="&ref_"+d+" "+e.dump));else{if("[object String]"!==l){if("[object Undefined]"===l)return!1;if(e.skipInvalid)return!1;throw new exception("unacceptable kind of an object to dump "+l)}"?"!==e.tag&&writeScalar(e,e.dump,t,r,c)}null!==e.tag&&"?"!==e.tag&&(o=encodeURI("!"===e.tag[0]?e.tag.slice(1):e.tag).replace(/!/g,"%21"),o="!"===e.tag[0]?"!"+o:"tag:yaml.org,2002:"===o.slice(0,18)?"!!"+o.slice(18):"!<"+o+">",e.dump=o+" "+e.dump)}return!0}function getDuplicateReferences(e,t){var a,i,n=[],r=[];for(inspectNode(e,n,r),a=0,i=r.length;a{let a=e.parentElement;for(;a&&!a.classList.contains(t)&&!(a instanceof window.HTMLBodyElement);)a=a.parentElement;return a?.classList?.contains(t)?a:null};function getExcalidrawViews(e){const t=e.workspace.getLeavesOfType(VIEW_TYPE_EXCALIDRAW).filter((e=>e.view instanceof ExcalidrawView));return t.map((e=>e.view))}const getLeaf=(e,t,a)=>{switch(linkClickModifierType(a)){case"active-pane":return t;case"new-tab":default:return(()=>{if(!e.settings.openInMainWorkspace)return e.app.workspace.getLeaf("tab");const[a,i]=getLeafLoc(t);return"main"===a?e.app.workspace.getLeaf("tab"):getNewOrAdjacentLeaf(e,t)})();case"new-pane":return getNewOrAdjacentLeaf(e,t);case"popout-window":return e.app.workspace.openPopoutLeaf()}},getLeafLoc=e=>{const t=e.id,a=EXCALIDRAW_PLUGIN.app.workspace.getLayout(),i=e=>e.children.filter((e=>"leaf"!==e.type)).map((e=>i(e))).flat().concat(e.children.filter((e=>"leaf"===e.type)).map((e=>e.id))),n=i(a.main);return[a.main&&n.contains(t)?"main":a.floating&&i(a.floating).contains(t)?"popout":a.left&&i(a.left).contains(t)?"left":a.right&&i(a.right).contains(t)?"right":"hover",n]},getNewOrAdjacentLeaf=(e,t)=>{const[a,i]=getLeafLoc(t),n=a=>{let n=e.app.workspace.getMostRecentLeaf();return n&&n!==t&&n.view?.containerEl.ownerDocument===document||(n=null,i.forEach((i=>{const r=e.app.workspace.getLeafById(i);n||!r.view?.navigation||t===r||a&&r?.parent===t?.parent||(n=r)}))),n};if(e.settings.openInMainWorkspace||["main","left","right"].contains(a)){if(!e.settings.openInAdjacentPane){if("main"===a)return e.app.workspace.createLeafBySplit(t);const i=n();return i?"empty"===i.view.getViewType()?i:e.app.workspace.createLeafBySplit(i):e.app.workspace.getLeaf(!0)}return n(!0)??e.app.workspace.createLeafBySplit(t)}if(!e.settings.openInAdjacentPane)return e.app.workspace.createLeafBySplit(t);if("hover"===a){const a=new Set;return e.app.workspace.iterateAllLeaves((e=>{e!==t&&t.containerEl.parentElement===e.containerEl.parentElement&&a.add(e)})),0===a.size?e.app.workspace.createLeafBySplit(t):Array.from(a)[0]}if("popout"===a){const a=new Set;return e.app.workspace.iterateAllLeaves((e=>{e!==t&&e.view.navigation&&e.view.containerEl.ownerDocument===t.view.containerEl.ownerDocument&&a.add(e)})),0===a.size?e.app.workspace.createLeafBySplit(t):Array.from(a)[0]}return e.app.workspace.createLeafBySplit(t)},getAttachmentsFolderAndFilePath=async(e,t,a)=>{const{basename:i,extension:n}=splitFolderAndFilename(a),r=e.vault.getFileByPath(t),s=await e.vault.getAvailablePathForAttachments(i,n,r),{folderpath:o}=splitFolderAndFilename(s);return{folder:o,filepath:s}},isObsidianThemeDark=()=>document.body.classList.contains("theme-dark"),getContainerForDocument=e=>{if(e!==document&&EXCALIDRAW_PLUGIN.app.workspace.floatingSplit)for(const t of EXCALIDRAW_PLUGIN.app.workspace.floatingSplit.children)if(t.doc===e)return t;return EXCALIDRAW_PLUGIN.app.workspace.rootSplit},cleanSectionHeading=e=>e?e.replace(REG_SECTION_REF_CLEAN,"").replace(/\s+/g," ").trim():e,cleanBlockRef=e=>e?e.replace(REG_BLOCK_REF_CLEAN,"").replace(/\s+/g," ").trim():e,getAllWindowDocuments=e=>{const t=new Set;return t.add(document),e.workspace.iterateAllLeaves((e=>{e.view.containerEl.ownerDocument!==document&&t.add(e.view.containerEl.ownerDocument)})),Array.from(t)},obsidianPDFQuoteWithRef=e=>{const t=/^> (.*)\n\n\[\[([^|\]]*)\|[^\]]*]]$/gm.exec(e);return t?{quote:t[1],link:t[2]}:null},extractSVGPNGFileName=e=>{const t=e.match(/\[\[([^\]|#^]+\.(?:svg|png))(?:[^\]]+)?\]\]|\[[^\]]+\]\(([^\)]+\.(?:svg|png))\)/);return t?t[1]||t[2]:null},getFileCSSClasses=e=>{if(e){const t=window?.ExcalidrawAutomate?.plugin;if(!t)return[];const a=t.app.metadataCache.getFileCache(e);if(!a?.frontmatter)return[];const i=obsidian_module.parseFrontMatterEntry(a.frontmatter,"cssclasses");return Array.isArray(i)?i:"string"==typeof i?Array.from(new Set(i.split(/[, ]+/).filter(Boolean))):[]}return[]},getActivePDFPageNumberFromPDFView=e=>e?.viewer?.child?.pdfViewer?.page,openLeaf=({plugin:e,fnGetLeaf:t,file:a,openState:i})=>{let n=null;if(e.settings.focusOnFileTab&&(e.app.workspace.iterateAllLeaves((t=>{n||t?.view?.file===a&&(e.app.workspace.setActiveLeaf(t,{focus:!0}),n=t)})),n)){if(i){const e=n.openFile(a,i);return{leaf:n,promise:e}}return{leaf:n,promise:Promise.resolve()}}n=t();const r=n.openFile(a,i);return{leaf:n,promise:r}};function mergeMarkdownFiles(e,t){const a=e.indexOf("---",4),i=e.substring(4,a).trim(),n=e.substring(a+3),r=jsYaml.load(i)||{};if(t.startsWith("---\n")&&t.indexOf("---\n",4)>0){const e=t.indexOf("---\n",4);let a=t.substring(4,e).replace(/\s+$/,"");const i=t.substring(e+3),s=jsYaml.load(a)||{},o=Object.keys(r).filter((e=>Array.isArray(r[e])&&Array.isArray(s[e])));if(o.length)for(const e of o){const t=s[e],i=r[e],n=[...t,...i.filter((e=>!t.includes(e)))];a=replaceYamlKeyBlock(a,e,jsYaml.dump({[e]:n}).trimEnd())??a}const l={};for(const e of Object.keys(r))e in s||(l[e]=r[e]);return`---\n${Object.keys(l).length?a+"\n"+jsYaml.dump(l).trimEnd():a}\n---\n${i}\n\n${n.trim()}\n`}{const e=t.trim();return`---\n${jsYaml.dump(r).trimEnd()}\n---\n${e}\n\n${n.trim()}\n`}}function replaceYamlKeyBlock(e,t,a){const i=e.split(/\r?\n/);let n=-1;for(let e=0;e{const a=e.getCursor(),i=e.getLine(a.line),n=i.slice(0,a.ch)+t+i.slice(a.ch);e.setLine(a.line,n)},foldExcalidrawSection=e=>{if(!(e&&e instanceof obsidian_module.MarkdownView))return;const t={ed:-1,te:-1,el:-1,ef:-1,d:-1},a=e.currentMode.getFoldInfo()?.folds??[],i=e.editor.lineCount();for(let a=0;a-1&&t.d>-1){const n=[...a,...t.te>-1?[{from:t.te,to:(t.el>-1?t.el:t.ef>-1?t.ef:t.d)-1}]:[],...t.el>-1?[{from:t.el,to:(t.ef>-1?t.ef:t.d)-1}]:[],...t.ef>-1?[{from:t.ef,to:t.d-1}]:[],{from:t.d,to:i-1},{from:t.ed,to:i-1}];e.currentMode.applyFoldInfo({folds:n,lines:i})}};async function setExcalidrawView(e){await e.setViewState({type:VIEW_TYPE_EXCALIDRAW,state:e.view.getState(),popstate:!0})}async function closeLeafView(e){await e.setViewState({type:"empty",state:{}})}function isUnwantedLeaf(e){return!DEVICE.isDesktop&&"empty"===e.view?.getViewType()&&e.parent&&!e.parent.parent&&"split"===e.parent.type&&1===e.parent.children.length}function getAudioElementHeight(){const e=document.createElement("audio");e.controls=!0,e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA";const t=document.createElement("div");t.style.position="absolute",t.style.left="-9999px",t.style.visibility="hidden",t.style.pointerEvents="none",t.appendChild(e),document.body.appendChild(t);let a=0;try{if(document.body.offsetHeight,a=e.getBoundingClientRect().height,0===a){const i=window.getComputedStyle(e);a=parseFloat(i.height)||0,0===a&&(a=t.getBoundingClientRect().height)}}finally{document.body.removeChild(t)}return Math.round(a)}function splitFolderAndFilename(e){const t=e.lastIndexOf("/"),a=-1==t?e:e.substring(t+1),i=a.lastIndexOf("."),n=e.substring(0,t);return{folderpath:n?obsidian_module.normalizePath(n):"",filename:a,basename:a.replace(/\.[^/.]+$/,""),extension:i>0?a.substring(i+1):""}}const download=(e,t,a)=>{const i=document.createElement("a");i.setAttribute("href",(e?`${e},`:"")+t),i.setAttribute("download",a),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)};function getIMGFilename(e,t){return`${e.substring(0,e.lastIndexOf("."))}.${t}`}function getNewUniqueFilepath(e,t,a){let i=obsidian_module.normalizePath(`${a}/${t}`),n=e.getAbstractFileByPath(i),r=0;const s=t.endsWith(".excalidraw.md")?".excalidraw.md":t.slice(t.lastIndexOf("."));for(;n;)i=obsidian_module.normalizePath(`${a}/${t.slice(0,t.lastIndexOf(s))}_${r}${s}`),r++,n=e.getAbstractFileByPath(i);return i}function getDrawingFilename(e){return e.drawingFilenamePrefix+(""!==e.drawingFilenameDateTime?window.moment().format(e.drawingFilenameDateTime):"")+(e.compatibilityMode?".excalidraw":e.useExcalidrawExtension?".excalidraw.md":".md")}function getEmbedFilename(e,t){return((t.drawingEmbedPrefixWithFilename?e:"")+t.drawingFilnameEmbedPostfix+(""!==t.drawingFilenameDateTime?window.moment().format(t.drawingFilenameDateTime):"")+(t.compatibilityMode?".excalidraw":t.useExcalidrawExtension?".excalidraw.md":".md")).trim()}async function checkAndCreateFolder(e){const t=EXCALIDRAW_PLUGIN.app.vault;e=obsidian_module.normalizePath(e);const a=t.getAbstractFileByPathInsensitive(e);if(!(a&&a instanceof obsidian_module.TFolder))return a&&a instanceof obsidian_module.TFile&&new obsidian_module.Notice(`The folder cannot be created because it already exists as a file: ${e}.`),await t.createFolder(e)}const getURLImageExtension=e=>{const t=e.split("?")[0];return t.substring(t.lastIndexOf(".")+1)},getMimeType=e=>IMAGE_MIME_TYPES.hasOwnProperty(e)?IMAGE_MIME_TYPES[e]:"md"===e?"image/svg+xml":"application/octet-stream",getFileFromURL=async(e,t,a=URLFETCHTIMEOUT)=>{try{const t=new Promise((e=>setTimeout((()=>e(null)),a))),i=await Promise.race([fetch(e,{mode:"no-cors"}),t]);if(!i)return errorlog({where:getFileFromURL,message:`URL did not load within the timeout period of ${a}ms.\n\nTry force-saving again in a few seconds.\n\n${e}`,url:e}),null;const n=await i.arrayBuffer();return{status:i.status,headers:Object.fromEntries(i.headers.entries()),arrayBuffer:n,json:null,text:null}}catch(e){return null}},getFileFromURLFallback=async(e,t,a=URLFETCHTIMEOUT)=>{try{const t=new Promise((e=>setTimeout((()=>e(null)),a)));return await Promise.race([t,obsidian_module.requestUrl({url:e,throw:!1})])}catch(t){return errorlog({where:getFileFromURLFallback,message:`URL did not load within timeout period of ${a}ms`,url:e}),null}},getDataURLFromURL=async(e,t,a=URLFETCHTIMEOUT)=>{let i=await getFileFromURL(e,t,a);return i&&200===i?.status||(i=await getFileFromURLFallback(e,t,a)),i&&200===i.status?await getDataURL(i.arrayBuffer,t):e},blobToBase64=async e=>{const t=await e.arrayBuffer(),a=new Uint8Array(t);let i="",n=a.byteLength;for(let e=0;e(void 0===window.pdfjsLib&&await obsidian_module.loadPdfJs(),await window.pdfjsLib.getDocument(EXCALIDRAW_PLUGIN.app.vault.getResourcePath(e)).promise),readLocalFileBinary=async e=>DEVICE.isDesktop?new Promise(((t,a)=>{const i=decodeURI(e);app.vault.adapter.fs.readFile(i,((e,i)=>{if(e)a(e);else{const e=i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength);t(e)}}))})):null,getPathWithoutExtension=e=>e?e.path.substring(0,e.path.lastIndexOf(".")):null;let _VAULT_BASE_URL=null;const VAULT_BASE_URL=()=>_VAULT_BASE_URL||(_VAULT_BASE_URL=DEVICE.isDesktop?EXCALIDRAW_PLUGIN.app.vault.adapter.url.pathToFileURL(EXCALIDRAW_PLUGIN.app.vault.adapter.basePath).toString():"",_VAULT_BASE_URL),getInternalLinkOrFileURLLink=(e,t,a,i)=>{if(!DEVICE.isDesktop)return{link:`[${a??""}](${e})`,isInternal:!1,url:e};const n=t.app.vault,r=n.adapter.url.pathToFileURL(e).toString();if(r.startsWith(VAULT_BASE_URL())){const e=obsidian_module.normalizePath(decodeURIComponent(r.substring(VAULT_BASE_URL().length))),s=n.getAbstractFileByPath(e);if(s&&s instanceof obsidian_module.TFile){const e=t.app.metadataCache.fileToLinktext(s,i?.path,!0);return{link:getLink(t,{embed:!1,path:e,alias:a}),isInternal:!0,file:s}}}return{link:`[${a??""}](${r})`,isInternal:!1,url:r}},getLink=(e,{embed:t=!0,path:a,alias:i},n)=>(void 0!==n?n:e.settings.embedWikiLink)?`${t?"!":""}[[${a}${i?`|${i}`:""}]]`:`${t?"!":""}[${i??""}](${encodeURI(a)})`,getAliasWithSize=(e,t)=>e&&""!==e?`${e}${t?`|${t}`:""}`:t,getCropFileNameAndFolder=async(e,t,a)=>{const i=(e.settings.cropPrefix||"")+a+(e.settings.cropSuffix||"")+".md";if(!e.settings.cropFolder||""===e.settings.cropFolder.trim())return{folderpath:(await getAttachmentsFolderAndFilePath(e.app,t,i)).folder,filename:i};const n=obsidian_module.normalizePath(e.settings.cropFolder);return await checkAndCreateFolder(n),{folderpath:n,filename:i}},getAnnotationFileNameAndFolder=async(e,t,a)=>{const i=(e.settings.annotatePrefix||"")+a+(e.settings.annotateSuffix||"")+".md";if(!e.settings.annotateFolder||""===e.settings.annotateFolder.trim())return{folderpath:(await getAttachmentsFolderAndFilePath(e.app,t,i)).folder,filename:i};const n=obsidian_module.normalizePath(e.settings.annotateFolder);return await checkAndCreateFolder(n),{folderpath:n,filename:i}},getListOfTemplateFiles=e=>{const t=obsidian_module.normalizePath(e.settings.templateFilePath),a=e.app.vault.getAbstractFileByPath(t);if(a&&a instanceof obsidian_module.TFolder)return e.app.vault.getFiles().filter((e=>e.path.startsWith(a.path))).filter((t=>e.isExcalidrawFile(t))).sort(((e,t)=>e.path.localeCompare(t.path)));if(a&&a instanceof obsidian_module.TFile)return[a];const i=e.app.metadataCache.getFirstLinkpathDest(t,"");return i?[i]:null},fileShouldDefaultAsExcalidraw=(e,t)=>{if(!e)return!1;const a=t.metadataCache.getCache(e);return a?.frontmatter&&a.frontmatter[FRONTMATTER_KEYS.plugin.name]&&!Boolean(a.frontmatter[FRONTMATTER_KEYS["open-as-markdown"].name])},getExcalidrawEmbeddedFilesFiletree=(e,t)=>{if(!e||!t.isExcalidrawFile(e))return[];const a=new Set,i=t.app,n=e=>Object.keys(i.metadataCache.resolvedLinks[e.path]).forEach((e=>{const r=i.vault.getAbstractFileByPath(e);if(!(r&&r instanceof obsidian_module.TFile))return;const s=t.isExcalidrawFile(r);"md"===r.extension&&!s||a.has(r)||(a.add(r),s&&n(r))}));return n(e),Array.from(a)},hasExcalidrawEmbeddedImagesTreeChanged=(e,t,a)=>getExcalidrawEmbeddedFilesFiletree(e,a).some((e=>e.stat.mtime>t));async function exportImageToFile(e,t,a,i){const n=e?.getHookServer();if(n?.onImageExportPathHook)try{t=n.onImageExportPathHook({exportFilepath:t,exportExtension:i,excalidrawFile:e.file,action:"export"})??t}catch(e){errorlog({where:"fileUtils.exportImageToFile",fn:n.onImageExportPathHook,error:e})}return await createOrOverwriteFile(e.app,t,a)}async function importFileToVault(e,t,a,i,n){let r;const s=n?.getHookServer();if(s?.onImageFilePathHook)try{r=s.onImageFilePathHook({currentImageName:t,drawingFilePath:i.path})}catch(e){errorlog({where:"fileUtils.importFileToVault",fn:s.onImageFilePathHook,error:e})}let o;if(r){const{folderpath:t,filename:a}=splitFolderAndFilename(r);await checkAndCreateFolder(t),o=getNewUniqueFilepath(e.vault,a,t)}else{const{folder:a}=await getAttachmentsFolderAndFilePath(e,i.path,t);o=getNewUniqueFilepath(e.vault,t,a)}return await createOrOverwriteFile(e,o,a)}async function createOrOverwriteFile(e,t,a){const{folderpath:i}=splitFolderAndFilename(t);i&&await checkAndCreateFolder(i);const n=e.vault.getAbstractFileByPath(obsidian_module.normalizePath(t));return a instanceof Blob&&(a=await a.arrayBuffer()),a instanceof ArrayBuffer?n&&n instanceof obsidian_module.TFile?(await e.vault.modifyBinary(n,a),n):await e.vault.createBinary(t,a):n&&n instanceof obsidian_module.TFile?(await e.vault.modify(n,a),n):await e.vault.create(t,a)}async function createFileAndAwaitMetacacheUpdate(e,t,a){t=obsidian_module.normalizePath(t);let i=!1;if("md"===t.substring(t.lastIndexOf(".")+1)){const n=e.metadataCache,r=e=>{e.path===t&&(n.off("changed",r),i=!0)};n.on("changed",r);const s=await createOrOverwriteFile(e,t,a);s||(i=!0,n.off("changed",r));let o=0;for(;!i&&o++<15;)await sleep(50);return i||n.off("changed",r),s}return await createOrOverwriteFile(e,t,a)}const useDefaultExcalidrawFrame=e=>!(e.link.startsWith("[")||e.link.startsWith("file:")||e.link.startsWith("data:")),patchMobileView=e=>{if(DEVICE.isDesktop)return;console.log("patching mobile view");const t=getParentOfClass(e.containerEl,"mod-top");if(t){t.hasClass("mod-visible")||t.addClass("mod-visible");const e=new MutationObserver((()=>{t.hasClass("mod-visible")||t.addClass("mod-visible")}));e.observe(t,{attributes:!0,attributeFilter:["class"]}),window.setTimeout((()=>e.disconnect()),500)}},processLinkText=(e,t)=>{let a=null;if(e.search("#")>-1){const i=getLinkParts(e,t.file);a=`#${i.isBlockRef?"^":""}${i.ref}`,e=i.path}return e.match(REG_LINKINDEX_INVALIDCHARS)?{subpath:a,file:null}:{subpath:a,file:t.app.metadataCache.getFirstLinkpathDest(e,t.file.path)}},generateEmbeddableLink=(e,t)=>e;function setFileToLocalGraph(e,t){let a;if(e.workspace.iterateAllLeaves((e=>{"localgraph"===e.view?.getViewType()&&(a=e.view)})),a)try{a.loadFile&&a.file!==t&&a.loadFile(t)}catch(e){console.error(e)}}const getEA=e=>{try{return window.ExcalidrawAutomate.getAPI(e)}catch(e){return console.log({message:"Excalidraw not available",fn:getEA}),null}};class CropImage{elements;imageEA;maskEA;bbox;constructor(e,t){this.elements=e;const a=getEA();this.imageEA=a;const i=getEA();this.maskEA=i,this.bbox=a.getBoundingBox(e),this.setBoundingEl(a,"transparent"),this.setBoundingEl(i,"white"),e.forEach((e=>{const t=cloneElement(e);"image"!==e.type&&"frame"!==e.type&&(t.opacity=100,i.elementsDict[e.id]=t),"image"===e.type&&(a.elementsDict[e.id]=t)})),Object.values(t).forEach((e=>{a.imagesDict[e.id]=e}))}destroy(){this.imageEA.destroy(),this.maskEA.destroy(),this.imageEA=null,this.maskEA=null,this.elements=null,this.bbox=null}setBoundingEl(e,t){const{topX:a,topY:i,width:n,height:r}=this.bbox;e.style.backgroundColor=t,e.style.strokeColor="transparent",e.style.strokeWidth="0",e.style.strokeStyle="solid",e.style.fillStyle="solid",e.style.roughness=0,e.addRect(a,i,n,r)}getViewBoxAndSize(){const e=this.elements.filter((e=>"frame"===e.type));e.length>1&&new obsidian_module.Notice("Multiple frames are not supported for image cropping. Discarding frames from mask.");const t=this.imageEA.getElements().filter((e=>"image"===e.type)),{x:a,y:i,width:n,height:r}=1===e.length?e[0]:mapToXY(this.imageEA.getBoundingBox(t)),{topX:s,topY:o,width:l,height:c}=this.bbox;return{viewBox:`${a-s} ${i-o} ${n} ${r}`,vbWidth:n,vbHeight:r,width:l,height:c}}async getMaskSVG(){const e=await this.maskEA.createSVG(null,!0,{withBackground:!1,withTheme:!1,isMask:!1},null,null,0),t=e.querySelector("defs"),a=e.querySelector("style"),i=a?a.outerHTML:"";return t.parentElement.removeChild(t),{style:i,mask:e.innerHTML}}async getImage(){const e=this.imageEA.getElements().filter((e=>"image"===e.type&&!1===e.isDeleted)),t=e.some((e=>0!==e.angle)),a=Object.values(this.imageEA.imagesDict);if(!t&&1===e.length&&1===a.length){const{width:t,height:i}=this.bbox;if(e[0].width===t&&e[0].height===i)return a[0].dataURL}return await this.imageEA.createPNGBase64(null,1,{withBackground:!1,withTheme:!1,isMask:!1},null,null,0)}async buildSVG(){if(0===this.imageEA.getElements().filter((e=>"image"===e.type)).length)return void new obsidian_module.Notice("No image found. Cannot crop.");const e=nanoid(),t=nanoid(),{viewBox:a,vbWidth:i,vbHeight:n,width:r,height:s}=this.getViewBoxAndSize(),o=new DOMParser,{style:l,mask:c}=await this.getMaskSVG(),d=`\n\n${l}\n\n${c}\n\n\n\n`;return o.parseFromString(d,"image/svg+xml").firstElementChild}async getCroppedPNG(){app.plugins.plugins["obsidian-excalidraw-plugin"];const e=await this.buildSVG();return new Promise(((t,a)=>{const i=e.outerHTML,n=document.createElement("canvas"),r=n.getContext("2d");if(!r)return void a("Unable to get 2D context");n.width=e.width.baseVal.value,n.height=e.height.baseVal.value;const s=new Image;s.onload=()=>{r.clearRect(0,0,n.width,n.height),r.drawImage(s,0,0),n.toBlob((e=>{e?t(e):a(new Error("Failed to convert to PNG"))}),"image/png",1)},s.src=svgToBase64(i)}))}async getCroppedSVG(){return await this.buildSVG()}}const mapToXY=({topX:e,topY:t,width:a,height:i})=>({x:e,y:t,width:a,height:i});String.prototype.codePointAt||function(){var e=function(){try{var e={},t=Object.defineProperty,a=t(e,e,e)&&t}catch(e){}return a}(),t=function(e){if(null==this)throw TypeError();var t=String(this),a=t.length,i=e?Number(e):0;if(i!=i&&(i=0),!(i<0||i>=a)){var n,r=t.charCodeAt(i);return r>=55296&&r<=56319&&a>i+1&&(n=t.charCodeAt(i+1))>=56320&&n<=57343?1024*(r-55296)+n-56320+65536:r}};e?e(String.prototype,"codePointAt",{value:t,configurable:!0,writable:!0}):String.prototype.codePointAt=t}();var TINF_OK=0,TINF_DATA_ERROR=-3;function Tree(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function Data(e,t){this.source=e,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=t,this.destLen=0,this.ltree=new Tree,this.dtree=new Tree}var sltree=new Tree,sdtree=new Tree,length_bits=new Uint8Array(30),length_base=new Uint16Array(30),dist_bits=new Uint8Array(30),dist_base=new Uint16Array(30),clcidx=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),code_tree=new Tree,lengths=new Uint8Array(320);function tinf_build_bits_base(e,t,a,i){var n,r;for(n=0;n>>=1,t}function tinf_read_bits(e,t,a){if(!t)return a;for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>16-t;return e.tag>>>=t,e.bitcount-=t,i+a}function tinf_decode_symbol(e,t){for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>=1,++n,a+=t.table[n],i-=t.table[n]}while(i>=0);return e.tag=r,e.bitcount-=n,t.trans[a+i]}function tinf_decode_trees(e,t,a){var i,n,r,s,o,l;for(i=tinf_read_bits(e,5,257),n=tinf_read_bits(e,5,1),r=tinf_read_bits(e,4,4),s=0;s<19;++s)lengths[s]=0;for(s=0;s8;)e.sourceIndex--,e.bitcount-=8;if((t=256*(t=e.source[e.sourceIndex+1])+e.source[e.sourceIndex])!==(65535&~(256*e.source[e.sourceIndex+3]+e.source[e.sourceIndex+2])))return TINF_DATA_ERROR;for(e.sourceIndex+=4,a=t;a;--a)e.dest[e.destLen++]=e.source[e.sourceIndex++];return e.bitcount=0,TINF_OK}function tinf_uncompress(e,t){var a,i,n=new Data(e,t);do{switch(a=tinf_getbit(n),tinf_read_bits(n,2,0)){case 0:i=tinf_inflate_uncompressed_block(n);break;case 1:i=tinf_inflate_block_data(n,sltree,sdtree);break;case 2:tinf_decode_trees(n,n.ltree,n.dtree),i=tinf_inflate_block_data(n,n.ltree,n.dtree);break;default:i=TINF_DATA_ERROR}if(i!==TINF_OK)throw new Error("Data error")}while(!a);return n.destLenthis.x2&&(this.x2=e)),"number"==typeof t&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),tthis.y2&&(this.y2=t))},BoundingBox.prototype.addX=function(e){this.addPoint(e,null)},BoundingBox.prototype.addY=function(e){this.addPoint(null,e)},BoundingBox.prototype.addBezier=function(e,t,a,i,n,r,s,o){var l=[e,t],c=[a,i],d=[n,r],h=[s,o];this.addPoint(e,t),this.addPoint(s,o);for(var p=0;p<=1;p++){var u=6*l[p]-12*c[p]+6*d[p],m=-3*l[p]+9*c[p]-9*d[p]+3*h[p],g=3*c[p]-3*l[p];if(0!==m){var f=Math.pow(u,2)-4*g*m;if(!(f<0)){var b=(-u+Math.sqrt(f))/(2*m);0=0&&i>0&&(a+=" "),a+=t(n)}return a}e=void 0!==e?e:2;for(var i="",n=0;n"},Path.prototype.toDOMElement=function(e){var t=this.toPathData(e),a=document.createElementNS("http://www.w3.org/2000/svg","path");return a.setAttribute("d",t),a};var check={fail:fail,argument:argument,assert:argument},LIMIT16=32768,LIMIT32=2147483648,decode={},encode={},sizeOf={};function constant(e){return function(){return e}}encode.BYTE=function(e){return check.argument(e>=0&&e<=255,"Byte value should be between 0 and 255."),[e]},sizeOf.BYTE=constant(1),encode.CHAR=function(e){return[e.charCodeAt(0)]},sizeOf.CHAR=constant(1),encode.CHARARRAY=function(e){void 0===e&&(e="",console.warn("Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name."));for(var t=[],a=0;a>8&255,255&e]},sizeOf.USHORT=constant(2),encode.SHORT=function(e){return e>=LIMIT16&&(e=-(2*LIMIT16-e)),[e>>8&255,255&e]},sizeOf.SHORT=constant(2),encode.UINT24=function(e){return[e>>16&255,e>>8&255,255&e]},sizeOf.UINT24=constant(3),encode.ULONG=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]},sizeOf.ULONG=constant(4),encode.LONG=function(e){return e>=LIMIT32&&(e=-(2*LIMIT32-e)),[e>>24&255,e>>16&255,e>>8&255,255&e]},sizeOf.LONG=constant(4),encode.FIXED=encode.ULONG,sizeOf.FIXED=sizeOf.ULONG,encode.FWORD=encode.SHORT,sizeOf.FWORD=sizeOf.SHORT,encode.UFWORD=encode.USHORT,sizeOf.UFWORD=sizeOf.USHORT,encode.LONGDATETIME=function(e){return[0,0,0,0,e>>24&255,e>>16&255,e>>8&255,255&e]},sizeOf.LONGDATETIME=constant(8),encode.TAG=function(e){return check.argument(4===e.length,"Tag should be exactly 4 ASCII characters."),[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]},sizeOf.TAG=constant(4),encode.Card8=encode.BYTE,sizeOf.Card8=sizeOf.BYTE,encode.Card16=encode.USHORT,sizeOf.Card16=sizeOf.USHORT,encode.OffSize=encode.BYTE,sizeOf.OffSize=sizeOf.BYTE,encode.SID=encode.USHORT,sizeOf.SID=sizeOf.USHORT,encode.NUMBER=function(e){return e>=-107&&e<=107?[e+139]:e>=108&&e<=1131?[247+((e-=108)>>8),255&e]:e>=-1131&&e<=-108?[251+((e=-e-108)>>8),255&e]:e>=-32768&&e<=32767?encode.NUMBER16(e):encode.NUMBER32(e)},sizeOf.NUMBER=function(e){return encode.NUMBER(e).length},encode.NUMBER16=function(e){return[28,e>>8&255,255&e]},sizeOf.NUMBER16=constant(3),encode.NUMBER32=function(e){return[29,e>>24&255,e>>16&255,e>>8&255,255&e]},sizeOf.NUMBER32=constant(5),encode.REAL=function(e){var t=e.toString(),a=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(t);if(a){var i=parseFloat("1e"+((a[2]?+a[2]:0)+a[1].length));t=(Math.round(e*i)/i).toString()}for(var n="",r=0,s=t.length;r>8&255,t[t.length]=255&i}return t},sizeOf.UTF16=function(e){return 2*e.length};var eightBitMacEncodings={"x-mac-croatian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ","x-mac-cyrillic":"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю","x-mac-gaelic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæøṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ","x-mac-greek":"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦€ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ­","x-mac-icelandic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-inuit":"ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑ°ᒡᒥᒦ•¶ᒧ®©™ᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓯᓰᓱᓲᓴᓵᔅᓕᓖᓗᓘᓚᓛᓪᔨᔩᔪᔫᔭ… ᔮᔾᕕᕖᕗ–—“”‘’ᕘᕙᕚᕝᕆᕇᕈᕉᕋᕌᕐᕿᖀᖁᖂᖃᖄᖅᖏᖐᖑᖒᖓᖔᖕᙱᙲᙳᙴᙵᙶᖖᖠᖡᖢᖣᖤᖥᖦᕼŁł","x-mac-ce":"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",macintosh:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-romanian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂȘ∞±≤≥¥µ∂∑∏π∫ªºΩăș¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›Țț‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-turkish":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ"};decode.MACSTRING=function(e,t,a,i){var n=eightBitMacEncodings[i];if(void 0!==n){for(var r="",s=0;s=-128&&e<=127}function encodeVarDeltaRunAsZeroes(e,t,a){for(var i=0,n=e.length;t>8&255,l+256&255)}return r}encode.MACSTRING=function(e,t){var a=getMacEncodingTable(t);if(void 0!==a){for(var i=[],n=0;n=128&&void 0===(r=a[r]))return;i[n]=r}return i}},sizeOf.MACSTRING=function(e,t){var a=encode.MACSTRING(e,t);return void 0!==a?a.length:0},encode.VARDELTAS=function(e){for(var t=0,a=[];t=-128&&i<=127?encodeVarDeltaRunAsBytes(e,t,a):encodeVarDeltaRunAsWords(e,t,a)}return a},encode.INDEX=function(e){for(var t=1,a=[t],i=[],n=0;n>8,t[h+1]=255&p,t=t.concat(i[d])}return t},sizeOf.TABLE=function(e){for(var t=0,a=e.fields.length,i=0;i0)return new Parser(this.data,this.offset+t).parseStruct(e)},Parser.prototype.parsePointer32=function(e){var t=this.parseOffset32();if(t>0)return new Parser(this.data,this.offset+t).parseStruct(e)},Parser.prototype.parseListOfLists=function(e){for(var t=this.parseOffset16List(),a=t.length,i=this.relativeOffset,n=new Array(a),r=0;r>1,t.skip("uShort",3),e.glyphIndexMap={};for(var s=new parse.Parser(a,i+n+14),o=new parse.Parser(a,i+n+16+2*r),l=new parse.Parser(a,i+n+16+4*r),c=new parse.Parser(a,i+n+16+6*r),d=i+n+16+8*r,h=0;h=0;n-=1){var r=parse.getUShort(e,t+4+8*n),s=parse.getUShort(e,t+4+8*n+2);if(3===r&&(0===s||1===s||10===s)||0===r&&(0===s||1===s||2===s||3===s||4===s)){i=parse.getULong(e,t+4+8*n+4);break}}if(-1===i)throw new Error("No valid cmap sub-tables found.");var o=new parse.Parser(e,t+i);if(a.format=o.parseUShort(),12===a.format)parseCmapTableFormat12(a,o);else{if(4!==a.format)throw new Error("Only format 4 and 12 cmap tables are supported (found format "+a.format+").");parseCmapTableFormat4(a,o,e,t,i)}return a}function addSegment(e,t,a){e.segments.push({end:t,start:t,delta:-(t-a),offset:0,glyphIndex:a})}function addTerminatorSegment(e){e.segments.push({end:65535,start:65535,delta:1,offset:0})}function makeCmapTable(e){var t,a=!0;for(t=e.length-1;t>0;t-=1)if(e.get(t).unicode>65535){console.log("Adding CMAP format 12 (needed!)"),a=!1;break}var i=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:a?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:a?12:20}];a||(i=i.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),i=i.concat([{name:"format",type:"USHORT",value:4},{name:"cmap4Length",type:"USHORT",value:0},{name:"language",type:"USHORT",value:0},{name:"segCountX2",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);var n=new table.Table("cmap",i);for(n.segments=[],t=0;t>4,r=15&i;if(15===n)break;if(t+=a[n],15===r)break;t+=a[r]}return parseFloat(t)}function parseOperand(e,t){if(28===t)return e.parseByte()<<8|e.parseByte();if(29===t)return e.parseByte()<<24|e.parseByte()<<16|e.parseByte()<<8|e.parseByte();if(30===t)return parseFloatOperand(e);if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return 256*(t-247)+e.parseByte()+108;if(t>=251&&t<=254)return 256*-(t-251)-e.parseByte()-108;throw new Error("Invalid b0 "+t)}function entriesToObject(e){for(var t={},a=0;a>1,p.length=0,m=!0}return function a(c){for(var U,E,T,S,_,x,C,I,A,k,O,R,L=0;L1&&!m&&(w=p.shift()+d,m=!0),b+=p.pop(),y(f,b);break;case 5:for(;p.length>0;)f+=p.shift(),b+=p.shift(),h.lineTo(f,b);break;case 6:for(;p.length>0&&(f+=p.shift(),h.lineTo(f,b),0!==p.length);)b+=p.shift(),h.lineTo(f,b);break;case 7:for(;p.length>0&&(b+=p.shift(),h.lineTo(f,b),0!==p.length);)f+=p.shift(),h.lineTo(f,b);break;case 8:for(;p.length>0;)i=f+p.shift(),n=b+p.shift(),r=i+p.shift(),s=n+p.shift(),f=r+p.shift(),b=s+p.shift(),h.curveTo(i,n,r,s,f,b);break;case 10:_=p.pop()+l,(x=o[_])&&a(x);break;case 11:return;case 12:switch(M=c[L],L+=1,M){case 35:i=f+p.shift(),n=b+p.shift(),r=i+p.shift(),s=n+p.shift(),C=r+p.shift(),I=s+p.shift(),A=C+p.shift(),k=I+p.shift(),O=A+p.shift(),R=k+p.shift(),f=O+p.shift(),b=R+p.shift(),p.shift(),h.curveTo(i,n,r,s,C,I),h.curveTo(A,k,O,R,f,b);break;case 34:i=f+p.shift(),n=b,r=i+p.shift(),s=n+p.shift(),C=r+p.shift(),I=s,A=C+p.shift(),k=s,O=A+p.shift(),R=b,f=O+p.shift(),h.curveTo(i,n,r,s,C,I),h.curveTo(A,k,O,R,f,b);break;case 36:i=f+p.shift(),n=b+p.shift(),r=i+p.shift(),s=n+p.shift(),C=r+p.shift(),I=s,A=C+p.shift(),k=s,O=A+p.shift(),R=k+p.shift(),f=O+p.shift(),h.curveTo(i,n,r,s,C,I),h.curveTo(A,k,O,R,f,b);break;case 37:i=f+p.shift(),n=b+p.shift(),r=i+p.shift(),s=n+p.shift(),C=r+p.shift(),I=s+p.shift(),A=C+p.shift(),k=I+p.shift(),O=A+p.shift(),R=k+p.shift(),Math.abs(O-f)>Math.abs(R-b)?f=O+p.shift():b=R+p.shift(),h.curveTo(i,n,r,s,C,I),h.curveTo(A,k,O,R,f,b);break;default:console.log("Glyph "+t.index+": unknown operator 1200"+M),p.length=0}break;case 14:p.length>0&&!m&&(w=p.shift()+d,m=!0),g&&(h.closePath(),g=!1);break;case 19:case 20:v(),L+=u+7>>3;break;case 21:p.length>2&&!m&&(w=p.shift()+d,m=!0),b+=p.pop(),y(f+=p.pop(),b);break;case 22:p.length>1&&!m&&(w=p.shift()+d,m=!0),y(f+=p.pop(),b);break;case 24:for(;p.length>2;)i=f+p.shift(),n=b+p.shift(),r=i+p.shift(),s=n+p.shift(),f=r+p.shift(),b=s+p.shift(),h.curveTo(i,n,r,s,f,b);f+=p.shift(),b+=p.shift(),h.lineTo(f,b);break;case 25:for(;p.length>6;)f+=p.shift(),b+=p.shift(),h.lineTo(f,b);i=f+p.shift(),n=b+p.shift(),r=i+p.shift(),s=n+p.shift(),f=r+p.shift(),b=s+p.shift(),h.curveTo(i,n,r,s,f,b);break;case 26:for(p.length%2&&(f+=p.shift());p.length>0;)i=f,n=b+p.shift(),r=i+p.shift(),s=n+p.shift(),f=r,b=s+p.shift(),h.curveTo(i,n,r,s,f,b);break;case 27:for(p.length%2&&(b+=p.shift());p.length>0;)i=f+p.shift(),n=b,r=i+p.shift(),s=n+p.shift(),f=r+p.shift(),b=s,h.curveTo(i,n,r,s,f,b);break;case 28:U=c[L],E=c[L+1],p.push((U<<24|E<<16)>>16),L+=2;break;case 29:_=p.pop()+e.gsubrsBias,(x=e.gsubrs[_])&&a(x);break;case 30:for(;p.length>0&&(i=f,n=b+p.shift(),r=i+p.shift(),s=n+p.shift(),f=r+p.shift(),b=s+(1===p.length?p.shift():0),h.curveTo(i,n,r,s,f,b),0!==p.length);)i=f+p.shift(),n=b,r=i+p.shift(),s=n+p.shift(),b=s+p.shift(),f=r+(1===p.length?p.shift():0),h.curveTo(i,n,r,s,f,b);break;case 31:for(;p.length>0&&(i=f+p.shift(),n=b,r=i+p.shift(),s=n+p.shift(),b=s+p.shift(),f=r+(1===p.length?p.shift():0),h.curveTo(i,n,r,s,f,b),0!==p.length);)i=f,n=b+p.shift(),r=i+p.shift(),s=n+p.shift(),f=r+p.shift(),b=s+(1===p.length?p.shift():0),h.curveTo(i,n,r,s,f,b);break;default:M<32?console.log("Glyph "+t.index+": unknown operator "+M):M<247?p.push(M-139):M<251?(U=c[L],L+=1,p.push(256*(M-247)+U+108)):M<255?(U=c[L],L+=1,p.push(256*-(M-251)-U-108)):(U=c[L],E=c[L+1],T=c[L+2],S=c[L+3],L+=4,p.push((U<<24|E<<16|T<<8|S)/65536))}}}(a),t.advanceWidth=w,h}function parseCFFFDSelect(e,t,a,i){var n,r=[],s=new parse.Parser(e,t),o=s.parseCard8();if(0===o)for(var l=0;l=i)throw new Error("CFF table CID Font FDSelect has bad FD index value "+n+" (FD count "+i+")");r.push(n)}else{if(3!==o)throw new Error("CFF Table CID Font FDSelect table has unsupported format "+o);var c,d=s.parseCard16(),h=s.parseCard16();if(0!==h)throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID "+h);for(var p=0;p=i)throw new Error("CFF table CID Font FDSelect has bad FD index value "+n+" (FD count "+i+")");if(c>a)throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID "+c);for(;h=0&&(a=i),(i=t.indexOf(e))>=0?a=i+cffStandardStrings.length:(a=cffStandardStrings.length+t.length,t.push(e)),a}function makeHeader(){return new table.Record("Header",[{name:"major",type:"Card8",value:1},{name:"minor",type:"Card8",value:0},{name:"hdrSize",type:"Card8",value:4},{name:"major",type:"Card8",value:1}])}function makeNameIndex(e){var t=new table.Record("Name INDEX",[{name:"names",type:"INDEX",value:[]}]);t.names=[];for(var a=0;a=a.begin&&e=1&&(a.ulCodePageRange1=i.parseULong(),a.ulCodePageRange2=i.parseULong()),a.version>=2&&(a.sxHeight=i.parseShort(),a.sCapHeight=i.parseShort(),a.usDefaultChar=i.parseUShort(),a.usBreakChar=i.parseUShort(),a.usMaxContent=i.parseUShort()),a}function makeOS2Table(e){return new table.Table("OS/2",[{name:"version",type:"USHORT",value:3},{name:"xAvgCharWidth",type:"SHORT",value:0},{name:"usWeightClass",type:"USHORT",value:0},{name:"usWidthClass",type:"USHORT",value:0},{name:"fsType",type:"USHORT",value:0},{name:"ySubscriptXSize",type:"SHORT",value:650},{name:"ySubscriptYSize",type:"SHORT",value:699},{name:"ySubscriptXOffset",type:"SHORT",value:0},{name:"ySubscriptYOffset",type:"SHORT",value:140},{name:"ySuperscriptXSize",type:"SHORT",value:650},{name:"ySuperscriptYSize",type:"SHORT",value:699},{name:"ySuperscriptXOffset",type:"SHORT",value:0},{name:"ySuperscriptYOffset",type:"SHORT",value:479},{name:"yStrikeoutSize",type:"SHORT",value:49},{name:"yStrikeoutPosition",type:"SHORT",value:258},{name:"sFamilyClass",type:"SHORT",value:0},{name:"bFamilyType",type:"BYTE",value:0},{name:"bSerifStyle",type:"BYTE",value:0},{name:"bWeight",type:"BYTE",value:0},{name:"bProportion",type:"BYTE",value:0},{name:"bContrast",type:"BYTE",value:0},{name:"bStrokeVariation",type:"BYTE",value:0},{name:"bArmStyle",type:"BYTE",value:0},{name:"bLetterform",type:"BYTE",value:0},{name:"bMidline",type:"BYTE",value:0},{name:"bXHeight",type:"BYTE",value:0},{name:"ulUnicodeRange1",type:"ULONG",value:0},{name:"ulUnicodeRange2",type:"ULONG",value:0},{name:"ulUnicodeRange3",type:"ULONG",value:0},{name:"ulUnicodeRange4",type:"ULONG",value:0},{name:"achVendID",type:"CHARARRAY",value:"XXXX"},{name:"fsSelection",type:"USHORT",value:0},{name:"usFirstCharIndex",type:"USHORT",value:0},{name:"usLastCharIndex",type:"USHORT",value:0},{name:"sTypoAscender",type:"SHORT",value:0},{name:"sTypoDescender",type:"SHORT",value:0},{name:"sTypoLineGap",type:"SHORT",value:0},{name:"usWinAscent",type:"USHORT",value:0},{name:"usWinDescent",type:"USHORT",value:0},{name:"ulCodePageRange1",type:"ULONG",value:0},{name:"ulCodePageRange2",type:"ULONG",value:0},{name:"sxHeight",type:"SHORT",value:0},{name:"sCapHeight",type:"SHORT",value:0},{name:"usDefaultChar",type:"USHORT",value:0},{name:"usBreakChar",type:"USHORT",value:0},{name:"usMaxContext",type:"USHORT",value:0}],e)}var os2={parse:parseOS2Table,make:makeOS2Table,unicodeRanges:unicodeRanges,getUnicodeRange:getUnicodeRange};function parsePostTable(e,t){var a={},i=new parse.Parser(e,t);switch(a.version=i.parseVersion(),a.italicAngle=i.parseFixed(),a.underlinePosition=i.parseShort(),a.underlineThickness=i.parseShort(),a.isFixedPitch=i.parseULong(),a.minMemType42=i.parseULong(),a.maxMemType42=i.parseULong(),a.minMemType1=i.parseULong(),a.maxMemType1=i.parseULong(),a.version){case 1:a.names=standardNames.slice();break;case 2:a.numberOfGlyphs=i.parseUShort(),a.glyphNameIndex=new Array(a.numberOfGlyphs);for(var n=0;n=standardNames.length){var s=i.parseChar();a.names.push(i.parseString(s))}break;case 2.5:a.numberOfGlyphs=i.parseUShort(),a.offset=new Array(a.numberOfGlyphs);for(var o=0;ot.value.tag?1:-1})),t.fields=t.fields.concat(i),t.fields=t.fields.concat(n),t}function metricsForChar(e,t,a){for(var i=0;i0)return e.glyphs.get(n).getMetrics()}return a}function average$1(e){for(var t=0,a=0;af||void 0===t)&&f>0&&(t=f),c 123 are reserved for internal usage");u|=1<0?ltag.make(R):void 0,D=post.make(),P=cff.make(e.glyphs,{version:e.getEnglishName("version"),fullName:I,familyName:x,weightName:C,postScriptName:A,unitsPerEm:e.unitsPerEm,fontBBox:[0,E.yMin,E.ascender,E.advanceWidthMax]}),N=e.metas&&Object.keys(e.metas).length>0?meta.make(e.metas):void 0,F=[w,y,v,T,L,_,D,P,S];M&&F.push(M),e.tables.gsub&&F.push(gsub.make(e.tables.gsub)),N&&F.push(N);for(var G=makeSfntTable(F),B=computeCheckSum(G.encode()),V=G.fields,$=!1,W=0;W>>1,r=e[n].tag;if(r===t)return n;r>>1,r=e[n];if(r===t)return n;r>>1,s=(a=e[r]).start;if(s===t)return a;s0)return t>(a=e[i-1]).end?0:a}function Layout(e,t){this.font=e,this.tableName=t}function Position(e){Layout.call(this,e,"gpos")}function Substitution(e){Layout.call(this,e,"gsub")}function arraysEqual(e,t){var a=e.length;if(a!==t.length)return!1;for(var i=0;i0?(r=e.parseByte(),0===(t&n)&&(r=-r),r=a+r):r=(t&n)>0?a:a+e.parseShort(),r}function parseGlyph(e,t,a){var i,n,r=new parse.Parser(t,a);if(e.numberOfContours=r.parseShort(),e._xMin=r.parseShort(),e._yMin=r.parseShort(),e._xMax=r.parseShort(),e._yMax=r.parseShort(),e.numberOfContours>0){for(var s=e.endPointIndices=[],o=0;o0)for(var h=r.parseByte(),p=0;p0){var u,m=[];if(c>0){for(var g=0;g=0,m.push(u);for(var f=0,b=0;b0?(2&i)>0?(y.dx=r.parseShort(),y.dy=r.parseShort()):y.matchedPoints=[r.parseUShort(),r.parseUShort()]:(2&i)>0?(y.dx=r.parseChar(),y.dy=r.parseChar()):y.matchedPoints=[r.parseByte(),r.parseByte()],(8&i)>0?y.xScale=y.yScale=r.parseF2Dot14():(64&i)>0?(y.xScale=r.parseF2Dot14(),y.yScale=r.parseF2Dot14()):(128&i)>0&&(y.xScale=r.parseF2Dot14(),y.scale01=r.parseF2Dot14(),y.scale10=r.parseF2Dot14(),y.yScale=r.parseF2Dot14()),e.components.push(y),w=!!(32&i)}if(256&i){e.instructionLength=r.parseUShort(),e.instructions=[];for(var v=0;vt.points.length-1||i.matchedPoints[1]>n.points.length-1)throw Error("Matched points out of range in "+t.name);var s=t.points[i.matchedPoints[0]],o=n.points[i.matchedPoints[1]],l={xScale:i.xScale,scale01:i.scale01,scale10:i.scale10,yScale:i.yScale,dx:0,dy:0};o=transformPoints$1([o],l)[0],l.dx=s.x-o.x,l.dy=s.y-o.y,r=transformPoints$1(n.points,l)}t.points=t.points.concat(r)}}return getPath(t.points)}function parseGlyfTableAll(e,t,a,i){for(var n=new glyphset.GlyphSet(i),r=0;r=0)return i[n].script;if(t){var r={tag:e,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return i.splice(-1-n,0,r),r.script}}},getLangSysTable:function(e,t,a){var i=this.getScriptTable(e,a);if(i){if(!t||"dflt"===t||"DFLT"===t)return i.defaultLangSys;var n=searchTag(i.langSysRecords,t);if(n>=0)return i.langSysRecords[n].langSys;if(a){var r={tag:t,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return i.langSysRecords.splice(-1-n,0,r),r.langSys}}},getFeatureTable:function(e,t,a,i){var n=this.getLangSysTable(e,t,i);if(n){for(var r,s=n.featureIndexes,o=this.font.tables[this.tableName].features,l=0;l=o[c-1].tag,"Features must be added in alphabetical order."),r={tag:a,feature:{params:0,lookupListIndexes:[]}},o.push(r),s.push(c),r.feature}}},getLookupTables:function(e,t,a,i,n){var r=this.getFeatureTable(e,t,a,n),s=[];if(r){for(var o,l=r.lookupListIndexes,c=this.font.tables[this.tableName].lookups,d=0;d=0?a:-1;case 2:var i=searchRange(e.ranges,t);return i?i.index+t-i.start:-1}},expandCoverage:function(e){if(1===e.format)return e.glyphs;for(var t=[],a=e.ranges,i=0;i1,'Multiple: "by" must be an array of two or more ids');var n=getSubstFormat(this.getLookupTables(a,i,e,2,!0)[0],1,{substFormat:1,coverage:{format:1,glyphs:[]},sequences:[]});check.assert(1===n.coverage.format,"Multiple: unable to modify coverage table format "+n.coverage.format);var r=t.sub,s=this.binSearch(n.coverage.glyphs,r);s<0&&(s=-1-s,n.coverage.glyphs.splice(s,0,r),n.sequences.splice(s,0,0)),n.sequences[s]=t.by},Substitution.prototype.addAlternate=function(e,t,a,i){var n=getSubstFormat(this.getLookupTables(a,i,e,3,!0)[0],1,{substFormat:1,coverage:{format:1,glyphs:[]},alternateSets:[]});check.assert(1===n.coverage.format,"Alternate: unable to modify coverage table format "+n.coverage.format);var r=t.sub,s=this.binSearch(n.coverage.glyphs,r);s<0&&(s=-1-s,n.coverage.glyphs.splice(s,0,r),n.alternateSets.splice(s,0,0)),n.alternateSets[s]=t.by},Substitution.prototype.addLigature=function(e,t,a,i){var n=this.getLookupTables(a,i,e,4,!0)[0],r=n.subtables[0];r||(r={substFormat:1,coverage:{format:1,glyphs:[]},ligatureSets:[]},n.subtables[0]=r),check.assert(1===r.coverage.format,"Ligature: unable to modify coverage table format "+r.coverage.format);var s=t.sub[0],o=t.sub.slice(1),l={ligGlyph:t.by,components:o},c=this.binSearch(r.coverage.glyphs,s);if(c>=0){for(var d=r.ligatureSets[c],h=0;h=176&&a<=183)n+=a-176+1;else if(a>=184&&a<=191)n+=2*(a-184+1);else if(t&&1===r&&27===a)break}while(r>0);e.ip=n}function SVTCA(e,t){exports.DEBUG&&console.log(t.step,"SVTCA["+e.axis+"]"),t.fv=t.pv=t.dpv=e}function SPVTCA(e,t){exports.DEBUG&&console.log(t.step,"SPVTCA["+e.axis+"]"),t.pv=t.dpv=e}function SFVTCA(e,t){exports.DEBUG&&console.log(t.step,"SFVTCA["+e.axis+"]"),t.fv=e}function SPVTL(e,t){var a,i,n=t.stack,r=n.pop(),s=n.pop(),o=t.z2[r],l=t.z1[s];exports.DEBUG&&console.log("SPVTL["+e+"]",r,s),e?(a=o.y-l.y,i=l.x-o.x):(a=l.x-o.x,i=l.y-o.y),t.pv=t.dpv=getUnitVector(a,i)}function SFVTL(e,t){var a,i,n=t.stack,r=n.pop(),s=n.pop(),o=t.z2[r],l=t.z1[s];exports.DEBUG&&console.log("SFVTL["+e+"]",r,s),e?(a=o.y-l.y,i=l.x-o.x):(a=l.x-o.x,i=l.y-o.y),t.fv=getUnitVector(a,i)}function SPVFS(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"SPVFS[]",a,i),e.pv=e.dpv=getUnitVector(i,a)}function SFVFS(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"SPVFS[]",a,i),e.fv=getUnitVector(i,a)}function GPV(e){var t=e.stack,a=e.pv;exports.DEBUG&&console.log(e.step,"GPV[]"),t.push(16384*a.x),t.push(16384*a.y)}function GFV(e){var t=e.stack,a=e.fv;exports.DEBUG&&console.log(e.step,"GFV[]"),t.push(16384*a.x),t.push(16384*a.y)}function SFVTPV(e){e.fv=e.pv,exports.DEBUG&&console.log(e.step,"SFVTPV[]")}function ISECT(e){var t=e.stack,a=t.pop(),i=t.pop(),n=t.pop(),r=t.pop(),s=t.pop(),o=e.z0,l=e.z1,c=o[a],d=o[i],h=l[n],p=l[r],u=e.z2[s];exports.DEBUG&&console.log("ISECT[], ",a,i,n,r,s);var m=c.x,g=c.y,f=d.x,b=d.y,U=h.x,E=h.y,w=p.x,y=p.y,v=(m-f)*(E-y)-(g-b)*(U-w),T=m*b-g*f,S=U*y-E*w;u.x=(T*(U-w)-S*(m-f))/v,u.y=(T*(E-y)-S*(g-b))/v}function SRP0(e){e.rp0=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP0[]",e.rp0)}function SRP1(e){e.rp1=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP1[]",e.rp1)}function SRP2(e){e.rp2=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP2[]",e.rp2)}function SZP0(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP0[]",t),e.zp0=t,t){case 0:e.tZone||initTZone(e),e.z0=e.tZone;break;case 1:e.z0=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function SZP1(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP1[]",t),e.zp1=t,t){case 0:e.tZone||initTZone(e),e.z1=e.tZone;break;case 1:e.z1=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function SZP2(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP2[]",t),e.zp2=t,t){case 0:e.tZone||initTZone(e),e.z2=e.tZone;break;case 1:e.z2=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function SZPS(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZPS[]",t),e.zp0=e.zp1=e.zp2=t,t){case 0:e.tZone||initTZone(e),e.z0=e.z1=e.z2=e.tZone;break;case 1:e.z0=e.z1=e.z2=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function SLOOP(e){e.loop=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SLOOP[]",e.loop)}function RTG(e){exports.DEBUG&&console.log(e.step,"RTG[]"),e.round=roundToGrid}function RTHG(e){exports.DEBUG&&console.log(e.step,"RTHG[]"),e.round=roundToHalfGrid}function SMD(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SMD[]",t),e.minDis=t/64}function ELSE(e){exports.DEBUG&&console.log(e.step,"ELSE[]"),skip(e,!1)}function JMPR(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"JMPR[]",t),e.ip+=t-1}function SCVTCI(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCVTCI[]",t),e.cvCutIn=t/64}function DUP(e){var t=e.stack;exports.DEBUG&&console.log(e.step,"DUP[]"),t.push(t[t.length-1])}function POP(e){exports.DEBUG&&console.log(e.step,"POP[]"),e.stack.pop()}function CLEAR(e){exports.DEBUG&&console.log(e.step,"CLEAR[]"),e.stack.length=0}function SWAP(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"SWAP[]"),t.push(a),t.push(i)}function DEPTH(e){var t=e.stack;exports.DEBUG&&console.log(e.step,"DEPTH[]"),t.push(t.length)}function LOOPCALL(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"LOOPCALL[]",a,i);var n=e.ip,r=e.prog;e.prog=e.funcs[a];for(var s=0;s1?"loop "+(t.loop-o)+": ":"")+"SHP["+(e?"rp1":"rp2")+"]",c)}t.loop=1}function SHC(e,t){var a=t.stack,i=e?t.rp1:t.rp2,n=(e?t.z0:t.z1)[i],r=t.fv,s=t.pv,o=a.pop(),l=t.z2[t.contours[o]],c=l;exports.DEBUG&&console.log(t.step,"SHC["+e+"]",o);var d=s.distance(n,n,!1,!0);do{c!==n&&r.setRelative(c,c,d,s),c=c.nextPointOnContour}while(c!==l)}function SHZ(e,t){var a,i,n=t.stack,r=e?t.rp1:t.rp2,s=(e?t.z0:t.z1)[r],o=t.fv,l=t.pv,c=n.pop();switch(exports.DEBUG&&console.log(t.step,"SHZ["+e+"]",c),c){case 0:a=t.tZone;break;case 1:a=t.gZone;break;default:throw new Error("Invalid zone")}for(var d=l.distance(s,s,!1,!0),h=a.length-2,p=0;p1?"loop "+(e.loop-a)+": ":"")+"SHPIX[]",s,n),i.setRelative(o,o,n),i.touch(o)}e.loop=1}function IP(e){for(var t=e.stack,a=e.rp1,i=e.rp2,n=e.loop,r=e.z0[a],s=e.z1[i],o=e.fv,l=e.dpv,c=e.z2;n--;){var d=t.pop(),h=c[d];exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-n)+": ":"")+"IP[]",d,a,"<->",i),o.interpolate(h,r,s,l),o.touch(h)}e.loop=1}function MSIRP(e,t){var a=t.stack,i=a.pop()/64,n=a.pop(),r=t.z1[n],s=t.z0[t.rp0],o=t.fv,l=t.pv;o.setRelative(r,s,i,l),o.touch(r),exports.DEBUG&&console.log(t.step,"MSIRP["+e+"]",i,n),t.rp1=t.rp0,t.rp2=n,e&&(t.rp0=n)}function ALIGNRP(e){for(var t=e.stack,a=e.rp0,i=e.z0[a],n=e.loop,r=e.fv,s=e.pv,o=e.z1;n--;){var l=t.pop(),c=o[l];exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-n)+": ":"")+"ALIGNRP[]",l),r.setRelative(c,i,0,s),r.touch(c)}e.loop=1}function RTDG(e){exports.DEBUG&&console.log(e.step,"RTDG[]"),e.round=roundToDoubleGrid}function MIAP(e,t){var a=t.stack,i=a.pop(),n=a.pop(),r=t.z0[n],s=t.fv,o=t.pv,l=t.cvt[i];exports.DEBUG&&console.log(t.step,"MIAP["+e+"]",i,"(",l,")",n);var c=o.distance(r,HPZero);e&&(Math.abs(c-l)",o),t.stack.push(Math.round(64*o))}function MPPEM(e){exports.DEBUG&&console.log(e.step,"MPPEM[]"),e.stack.push(e.ppem)}function FLIPON(e){exports.DEBUG&&console.log(e.step,"FLIPON[]"),e.autoFlip=!0}function LT(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"LT[]",a,i),t.push(ia?1:0)}function GTEQ(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"GTEQ[]",a,i),t.push(i>=a?1:0)}function EQ(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"EQ[]",a,i),t.push(a===i?1:0)}function NEQ(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"NEQ[]",a,i),t.push(a!==i?1:0)}function ODD(e){var t=e.stack,a=t.pop();exports.DEBUG&&console.log(e.step,"ODD[]",a),t.push(Math.trunc(a)%2?1:0)}function EVEN(e){var t=e.stack,a=t.pop();exports.DEBUG&&console.log(e.step,"EVEN[]",a),t.push(Math.trunc(a)%2?0:1)}function IF(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"IF[]",t),t||(skip(e,!0),exports.DEBUG&&console.log(e.step,"EIF[]"))}function EIF(e){exports.DEBUG&&console.log(e.step,"EIF[]")}function AND(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"AND[]",a,i),t.push(a&&i?1:0)}function OR(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"OR[]",a,i),t.push(a||i?1:0)}function NOT(e){var t=e.stack,a=t.pop();exports.DEBUG&&console.log(e.step,"NOT[]",a),t.push(a?0:1)}function DELTAP123(e,t){var a=t.stack,i=a.pop(),n=t.fv,r=t.pv,s=t.ppem,o=t.deltaBase+16*(e-1),l=t.deltaShift,c=t.z0;exports.DEBUG&&console.log(t.step,"DELTAP["+e+"]",i,a);for(var d=0;d>4)===s){var u=(15&p)-8;u>=0&&u++,exports.DEBUG&&console.log(t.step,"DELTAPFIX",h,"by",u*l);var m=c[h];n.setRelative(m,m,u*l,r)}}}function SDB(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SDB[]",t),e.deltaBase=t}function SDS(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SDS[]",t),e.deltaShift=Math.pow(.5,t)}function ADD(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"ADD[]",a,i),t.push(i+a)}function SUB(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"SUB[]",a,i),t.push(i-a)}function DIV(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"DIV[]",a,i),t.push(64*i/a)}function MUL(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"MUL[]",a,i),t.push(i*a/64)}function ABS(e){var t=e.stack,a=t.pop();exports.DEBUG&&console.log(e.step,"ABS[]",a),t.push(Math.abs(a))}function NEG(e){var t=e.stack,a=t.pop();exports.DEBUG&&console.log(e.step,"NEG[]",a),t.push(-a)}function FLOOR(e){var t=e.stack,a=t.pop();exports.DEBUG&&console.log(e.step,"FLOOR[]",a),t.push(64*Math.floor(a/64))}function CEILING(e){var t=e.stack,a=t.pop();exports.DEBUG&&console.log(e.step,"CEILING[]",a),t.push(64*Math.ceil(a/64))}function ROUND(e,t){var a=t.stack,i=a.pop();exports.DEBUG&&console.log(t.step,"ROUND[]"),a.push(64*t.round(i/64))}function WCVTF(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"WCVTF[]",a,i),e.cvt[i]=a*e.ppem/e.font.unitsPerEm}function DELTAC123(e,t){var a=t.stack,i=a.pop(),n=t.ppem,r=t.deltaBase+16*(e-1),s=t.deltaShift;exports.DEBUG&&console.log(t.step,"DELTAC["+e+"]",i,a);for(var o=0;o>4)===n){var d=(15&c)-8;d>=0&&d++;var h=d*s;exports.DEBUG&&console.log(t.step,"DELTACFIX",l,"by",h),t.cvt[l]+=h}}}function SROUND(e){var t,a=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SROUND[]",a),e.round=roundSuper,192&a){case 0:t=.5;break;case 64:t=1;break;case 128:t=2;break;default:throw new Error("invalid SROUND value")}switch(e.srPeriod=t,48&a){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*t;break;case 32:e.srPhase=.5*t;break;case 48:e.srPhase=.75*t;break;default:throw new Error("invalid SROUND value")}a&=15,e.srThreshold=0===a?0:(a/8-.5)*t}function S45ROUND(e){var t,a=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"S45ROUND[]",a),e.round=roundSuper,192&a){case 0:t=Math.sqrt(2)/2;break;case 64:t=Math.sqrt(2);break;case 128:t=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(e.srPeriod=t,48&a){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*t;break;case 32:e.srPhase=.5*t;break;case 48:e.srPhase=.75*t;break;default:throw new Error("invalid S45ROUND value")}a&=15,e.srThreshold=0===a?0:(a/8-.5)*t}function ROFF(e){exports.DEBUG&&console.log(e.step,"ROFF[]"),e.round=roundOff}function RUTG(e){exports.DEBUG&&console.log(e.step,"RUTG[]"),e.round=roundUpToGrid}function RDTG(e){exports.DEBUG&&console.log(e.step,"RDTG[]"),e.round=roundDownToGrid}function SCANCTRL(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCANCTRL[]",t)}function SDPVTL(e,t){var a,i,n=t.stack,r=n.pop(),s=n.pop(),o=t.z2[r],l=t.z1[s];exports.DEBUG&&console.log(t.step,"SDPVTL["+e+"]",r,s),e?(a=o.y-l.y,i=l.x-o.x):(a=l.x-o.x,i=l.y-o.y),t.dpv=getUnitVector(a,i)}function GETINFO(e){var t=e.stack,a=t.pop(),i=0;exports.DEBUG&&console.log(e.step,"GETINFO[]",a),1&a&&(i=35),32&a&&(i|=4096),t.push(i)}function ROLL(e){var t=e.stack,a=t.pop(),i=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"ROLL[]"),t.push(i),t.push(a),t.push(n)}function MAX(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"MAX[]",a,i),t.push(Math.max(i,a))}function MIN(e){var t=e.stack,a=t.pop(),i=t.pop();exports.DEBUG&&console.log(e.step,"MIN[]",a,i),t.push(Math.min(i,a))}function SCANTYPE(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCANTYPE[]",t)}function INSTCTRL(e){var t=e.stack.pop(),a=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"INSTCTRL[]",t,a),t){case 1:return void(e.inhibitGridFit=!!a);case 2:return void(e.ignoreCvt=!!a);default:throw new Error("invalid INSTCTRL[] selector")}}function PUSHB(e,t){var a=t.stack,i=t.prog,n=t.ip;exports.DEBUG&&console.log(t.step,"PUSHB["+e+"]");for(var r=0;r=0?1:-1,o=Math.abs(o),e&&(c=r.cvt[h],i&&Math.abs(o-c)":"_")+(i?"R":"_")+(0===n?"Gr":1===n?"Bl":2===n?"Wh":"")+"]",e?h+"("+r.cvt[h]+","+c+")":"",p,"(d =",s,"->",l*o,")"),r.rp1=r.rp0,r.rp2=p,t&&(r.rp0=p)}function Token(e){this.char=e,this.state={},this.activeState=null}function ContextRange(e,t,a){this.contextName=a,this.startIndex=e,this.endOffset=t}function ContextChecker(e,t,a){this.contextName=e,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=a}function ContextParams(e,t){this.context=e,this.index=t,this.length=e.length,this.current=e[t],this.backtrack=e.slice(0,t),this.lookahead=e.slice(t+1)}function Event$1(e){this.eventId=e,this.subscribers=[]}function initializeCoreEvents(e){var t=this,a=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];a.forEach((function(e){Object.defineProperty(t.events,e,{value:new Event$1(e)})})),e&&a.forEach((function(a){var i=e[a];"function"==typeof i&&t.events[a].subscribe(i)})),["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"].forEach((function(e){t.events[e].subscribe(t.updateContextsRanges)}))}function Tokenizer(e){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],initializeCoreEvents.call(this,e)}function isArabicChar(e){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(e)}function isIsolatedArabicChar(e){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(e)}function isTashkeelArabicChar(e){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(e)}function isLatinChar(e){return/[A-z]/.test(e)}function isWhiteSpace(e){return/\s/.test(e)}function FeatureQuery(e){this.font=e,this.features={}}function SubstitutionAction(e){this.id=e.id,this.tag=e.tag,this.substitution=e.substitution}function lookupCoverage(e,t){if(!e)return-1;switch(t.format){case 1:return t.glyphs.indexOf(e);case 2:for(var a=t.ranges,i=0;i=n.start&&e<=n.end){var r=e-n.start;return n.index+r}}break;default:return-1}return-1}function singleSubstitutionFormat1(e,t){return-1===lookupCoverage(e,t.coverage)?null:e+t.deltaGlyphId}function singleSubstitutionFormat2(e,t){var a=lookupCoverage(e,t.coverage);return-1===a?null:t.substitute[a]}function lookupCoverageList(e,t){for(var a=[],i=0;i2)){var a=this.font,i=this._prepState;if(!i||i.ppem!==t){var n=this._fpgmState;if(!n){State.prototype=defaultState,(n=this._fpgmState=new State("fpgm",a.tables.fpgm)).funcs=[],n.font=a,exports.DEBUG&&(console.log("---EXEC FPGM---"),n.step=-1);try{exec(n)}catch(e){return console.log("Hinting error in FPGM:"+e),void(this._errorState=3)}}State.prototype=n,(i=this._prepState=new State("prep",a.tables.prep)).ppem=t;var r=a.tables.cvt;if(r)for(var s=i.cvt=new Array(r.length),o=t/a.unitsPerEm,l=0;l1))try{return execGlyph(e,i)}catch(e){return this._errorState<1&&(console.log("Hinting error:"+e),console.log("Note: further hinting errors are silenced")),void(this._errorState=1)}}},execGlyph=function(e,t){var a,i,n,r=t.ppem/t.font.unitsPerEm,s=r,o=e.components;if(State.prototype=t,o){var l=t.font;i=[],a=[];for(var c=0;c=0&&e0&&e<=this.lookahead.length:return this.lookahead[e-1];default:return null}},Tokenizer.prototype.rangeToText=function(e){if(e instanceof ContextRange)return this.getRangeTokens(e).map((function(e){return e.char})).join("")},Tokenizer.prototype.getText=function(){return this.tokens.map((function(e){return e.char})).join("")},Tokenizer.prototype.getContext=function(e){return this.registeredContexts[e]||null},Tokenizer.prototype.on=function(e,t){var a=this.events[e];return a?a.subscribe(t):null},Tokenizer.prototype.dispatch=function(e,t){var a=this,i=this.events[e];i instanceof Event$1&&i.subscribers.forEach((function(e){e.apply(a,t||[])}))},Tokenizer.prototype.registerContextChecker=function(e,t,a){if(this.getContext(e))return{FAIL:"context name '"+e+"' is already registered."};if("function"!=typeof t)return{FAIL:"missing context start check."};if("function"!=typeof a)return{FAIL:"missing context end check."};var i=new ContextChecker(e,t,a);return this.registeredContexts[e]=i,this.contextCheckers.push(i),i},Tokenizer.prototype.getRangeTokens=function(e){var t=e.startIndex+e.endOffset;return[].concat(this.tokens.slice(e.startIndex,t))},Tokenizer.prototype.getContextRanges=function(e){var t=this.getContext(e);return t?t.ranges:{FAIL:"context checker '"+e+"' is not registered."}},Tokenizer.prototype.resetContextsRanges=function(){var e=this.registeredContexts;for(var t in e)e.hasOwnProperty(t)&&(e[t].ranges=[])},Tokenizer.prototype.updateContextsRanges=function(){this.resetContextsRanges();for(var e=this.tokens.map((function(e){return e.char})),t=0;t=0;a--){var i=t[a],n=isIsolatedArabicChar(i),r=isTashkeelArabicChar(i);if(!n&&!r)return!0;if(n)return!1}return!1}function willConnectNext(e){if(isIsolatedArabicChar(e.current))return!1;for(var t=0;t=1.2&&(n.markGlyphSets=a.parsePointer(markGlyphSets)),n}var gdef={parse:parseGDEFTable},subtableParsers$1=new Array(10);function parseGposTable(e,t){var a=new Parser(e,t=t||0),i=a.parseVersion(1);return check.argument(1===i||1.1===i,"Unsupported GPOS table version "+i),1===i?{version:i,scripts:a.parseScriptList(),features:a.parseFeatureList(),lookups:a.parseLookupList(subtableParsers$1)}:{version:i,scripts:a.parseScriptList(),features:a.parseFeatureList(),lookups:a.parseLookupList(subtableParsers$1),variations:a.parseFeatureVariationsList()}}subtableParsers$1[1]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();return 1===t?{posFormat:1,coverage:this.parsePointer(Parser.coverage),value:this.parseValueRecord()}:2===t?{posFormat:2,coverage:this.parsePointer(Parser.coverage),values:this.parseValueRecordList()}:void check.assert(!1,"0x"+e.toString(16)+": GPOS lookup type 1 format must be 1 or 2.")},subtableParsers$1[2]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();check.assert(1===t||2===t,"0x"+e.toString(16)+": GPOS lookup type 2 format must be 1 or 2.");var a=this.parsePointer(Parser.coverage),i=this.parseUShort(),n=this.parseUShort();if(1===t)return{posFormat:t,coverage:a,valueFormat1:i,valueFormat2:n,pairSets:this.parseList(Parser.pointer(Parser.list((function(){return{secondGlyph:this.parseUShort(),value1:this.parseValueRecord(i),value2:this.parseValueRecord(n)}}))))};if(2===t){var r=this.parsePointer(Parser.classDef),s=this.parsePointer(Parser.classDef),o=this.parseUShort(),l=this.parseUShort();return{posFormat:t,coverage:a,valueFormat1:i,valueFormat2:n,classDef1:r,classDef2:s,class1Count:o,class2Count:l,classRecords:this.parseList(o,Parser.list(l,(function(){return{value1:this.parseValueRecord(i),value2:this.parseValueRecord(n)}})))}}},subtableParsers$1[3]=function(){return{error:"GPOS Lookup 3 not supported"}},subtableParsers$1[4]=function(){return{error:"GPOS Lookup 4 not supported"}},subtableParsers$1[5]=function(){return{error:"GPOS Lookup 5 not supported"}},subtableParsers$1[6]=function(){return{error:"GPOS Lookup 6 not supported"}},subtableParsers$1[7]=function(){return{error:"GPOS Lookup 7 not supported"}},subtableParsers$1[8]=function(){return{error:"GPOS Lookup 8 not supported"}},subtableParsers$1[9]=function(){return{error:"GPOS Lookup 9 not supported"}};var subtableMakers$1=new Array(10);function makeGposTable(e){return new table.Table("GPOS",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new table.ScriptList(e.scripts)},{name:"features",type:"TABLE",value:new table.FeatureList(e.features)},{name:"lookups",type:"TABLE",value:new table.LookupList(e.lookups,subtableMakers$1)}])}var gpos={parse:parseGposTable,make:makeGposTable};function parseWindowsKernTable(e){var t={};e.skip("uShort");var a=e.parseUShort();check.argument(0===a,"Unsupported kern sub-table version."),e.skip("uShort",2);var i=e.parseUShort();e.skip("uShort",3);for(var n=0;n1&&console.warn("Only the first kern subtable is supported."),e.skip("uLong");var a=255&e.parseUShort();if(e.skip("uShort"),0===a){var i=e.parseUShort();e.skip("uShort",3);for(var n=0;n{pendingOperations.set(a,{resolve:i,reject:n}),worker.onmessage||(worker.onmessage=function(e){const{messageId:t,compressed:a,decompressed:i,error:n}=e.data,r=pendingOperations.get(t);r&&(n?r.reject(new Error(n)):a||i?r.resolve(a||i):r.reject(new Error("Unexpected response from worker")),pendingOperations.delete(t))},worker.onerror=function(e){for(const[t,a]of pendingOperations)a.reject(new Error(e.message)),pendingOperations.delete(t)}),worker.postMessage({messageId:a,data:e,action:t})}))}function terminateCompressionWorker(){worker.terminate(),worker=null}let IS_WORKER_SUPPORTED=!1;function canCreateWorkerFromBlob(){try{const e=new Blob(["self.onmessage = function() {}"]),t=URL.createObjectURL(e);new Worker(t).terminate(),URL.revokeObjectURL(t),IS_WORKER_SUPPORTED=!0}catch(e){IS_WORKER_SUPPORTED=!1}}canCreateWorkerFromBlob();var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var es6PromisePool={exports:{}};es6PromisePool.exports,function(e,t){e.exports=function(){var e=function(){this._listeners={}};e.prototype.addEventListener=function(e,t){this._listeners[e]=this._listeners[e]||[],this._listeners[e].indexOf(t)<0&&this._listeners[e].push(t)},e.prototype.removeEventListener=function(e,t){if(this._listeners[e]){var a=this._listeners[e].indexOf(t);a>=0&&this._listeners[e].splice(a,1)}},e.prototype.dispatchEvent=function(e){if(this._listeners[e.type]&&this._listeners[e.type].length)for(var t=this._listeners[e.type].slice(),a=0,i=t.length;aJSON.parse(await obsidian_module.request({url:"https://api.github.com/repos/zsviczian/obsidian-excalidraw-plugin/releases?per_page=15&page=1"})),t=(await e()).filter((e=>!e.draft&&!e.prerelease)).map((e=>({version:e.tag_name,published:new Date(e.published_at)}))).filter((e=>e.version.match(/^\d+\.\d+\.\d+$/))).sort(((e,t)=>t.published-e.published))[0].version;isVersionNewerThanOther(t,PLUGIN_VERSION)&&new obsidian_module.Notice(t$d("UPDATE_AVAILABLE")+` ${t}`),await checkScriptUpdates()}catch(e){console.log({where:"Utils/checkExcalidrawVersion",error:e})}versionUpdateCheckTimer=window.setTimeout((()=>{versionUpdateChecked=!1,versionUpdateCheckTimer=null}),288e5)}}async function checkScriptUpdates(){try{if(!EXCALIDRAW_PLUGIN?.settings?.scriptFolderPath)return;const e=`${EXCALIDRAW_PLUGIN.settings.scriptFolderPath}/${SCRIPT_INSTALL_FOLDER}/`,t=EXCALIDRAW_PLUGIN.app.vault.getFiles().filter((t=>t.path.startsWith(e)&&"md"===t.extension));if(0===t.length)return;const a=new Map;if(JSON.parse(await obsidian_module.request({url:"https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/directory-info.json"})).forEach((e=>a.set(e.fname,e.mtime))),0===a.size)return;const i=[];let n=!1;for(const r of t){const t=r.name;a.has(t)&&a.get(t)>r.stat.mtime&&(i.push(r.path.split(e)?.[1]?.split(".md")[0]),n=!0)}if(n){const e=`${t$d("SCRIPT_UPDATES_AVAILABLE")}\n\n${i.sort().join("\n")}`;new obsidian_module.Notice(e,8e3+1e3*i.length),log$2(e)}}catch(e){console.log({where:"Utils/checkScriptUpdates",error:e})}}function wrapTextAtCharLength(e,t,a=!1,i=0){if(!t)return e;let n="";if(a){for(const a of e.split("\n")){const e=a.match(new RegExp(`(.){1,${t}}`,"g"));n+=e?`${e.join("\n")}\n`:"\n"}return n.replace(/\n$/,"")}const r=new RegExp(`(.{1,${t}})(\\s+|$\\n?)|([^\\s]{1,${t+i}})(\\s+|$\\n?)?`,"gm"),s=e.matchAll(r);let o;for(;!(o=s.next()).done;){n+=o.value[1]?o.value[1].trimEnd():o.value[3].trimEnd();const e=(o.value[2]?o.value[2].split("\n").length-1:0)+(o.value[4]?o.value[4].split("\n").length-1:0);n+="\n".repeat(e),0===e&&(n+="\n")}return n.replace(/\n$/,"")}function rotatedDimensions(e){const t=getCommonBoundingBox([e]);return[t.minX,t.minY,t.maxX-t.minX,t.maxY-t.minY]}async function getDataURL(e,t){return new Promise(((a,i)=>{const n=new FileReader;n.onload=()=>{const e=n.result;a(e)},n.onerror=e=>i(e),n.readAsDataURL(new Blob([new Uint8Array(e)],{type:t}))}))}async function getFontDataURL(e,t,a,i){let n="",r="",s="";const o=e.metadataCache.getFirstLinkpathDest(t,a);if(o){const t=await e.vault.readBinary(o);let a="",l="";switch(o.extension){case"woff":a="application/font-woff",l="woff";break;case"woff2":a="font/woff2",l="woff2";break;case"ttf":a="font/ttf",l="truetype";break;case"otf":a="font/otf",l="opentype";break;default:a="application/octet-stream"}r=i??o.basename,s=await getDataURL(t,a);const c=s.split(";base64,",2);s=`${c[0]};charset=utf-8;base64,${c[1]}`,n=` @font-face {font-family: "${r}";src: url("${s}") format("${l}")}`}return{fontDef:n,fontName:r,dataURL:s}}function svgToBase64(e){const t=e.replaceAll(" "," "),a=encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,((e,t)=>String.fromCharCode(parseInt(t,16))));return`data:image/svg+xml;base64,${btoa(a)}`}async function getBinaryFileFromDataURL(e){if(!e)return null;if(e.match(/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/i)){const t=e,a=getURLImageExtension(t),i=getMimeType(a);e=await getDataURLFromURL(t,i)}const t=e.matchAll(/base64,(.*)/g).next();if(!t.value)return null;const a=window.atob(t.value[1]),i=a.length,n=new Uint8Array(i);for(let e=0;e"embeddable"===e.type))&&(n=JSON.parse(JSON.stringify(n)),n.filter((e=>"embeddable"===e.type)).forEach((t=>{t.link=generateEmbeddableLink(t.link,e.appState?.theme??"light")}))),n=i?updateElementLinksToObsidianLinks({elements:n,hostFile:i}):n;try{let r;if(t.isMask){const t=new CropImage(n,e.files);r=await t.getCroppedSVG(),t.destroy()}else r=await exportToSvg({elements:n.filter((e=>!0!==e.isDeleted)),appState:{...e.appState,exportBackground:t.withBackground,exportWithDarkMode:!!t.withTheme&&"light"!==e.appState?.theme,...t.frameRendering?{frameRendering:t.frameRendering}:{}},files:e.files,exportPadding:t.frameRendering?.enabled?0:a,exportingFrame:null,renderEmbeddables:!0,skipInliningFonts:t.skipInliningFonts});return r&&(r.addClass("excalidraw-svg"),i instanceof obsidian_module.TFile)&&getFileCSSClasses(i).forEach((e=>r.addClass(e))),r}catch(e){return null}}function filterFiles(e){let t={};return Object.entries(e).forEach((([e,a])=>{a.dataURL.startsWith("http")||(t[e]=a)})),t}async function getPNG(e,t,a,i=1){try{if(t.isMask){const t=new CropImage(e.elements,e.files),a=await t.getCroppedPNG();return t.destroy(),a}return await exportToBlob({elements:e.elements.filter((e=>!0!==e.isDeleted)),appState:{...e.appState,exportBackground:t.withBackground,exportWithDarkMode:!!t.withTheme&&"light"!==e.appState?.theme,...t.frameRendering?{frameRendering:t.frameRendering}:{}},files:filterFiles(e.files),exportPadding:t.frameRendering?.enabled?0:a,mimeType:"image/png",getDimensions:(e,t)=>({width:e*i,height:t*i,scale:i})})}catch(e){return new obsidian_module.Notice(t$d("ERROR_PNG_TOO_LARGE")),errorlog({where:"Utils.getPNG",error:e}),null}}async function getQuickImagePreview(e,t,a){if(!e.settings.displayExportedImageIfAvailable)return null;const i=getIMGFilename(t,a),n=e.app.vault.getAbstractFileByPath(i);return n&&n instanceof obsidian_module.TFile?"png"===a?await e.app.vault.readBinary(n):await e.app.vault.read(n):null}async function getImageSize(e){return new Promise(((t,a)=>{const i=new Image;i.onload=()=>{t({height:i.naturalHeight,width:i.naturalWidth})},i.onerror=a,i.src=e}))}function addAppendUpdateCustomData(e,t){if(!t)return e;e.customData||(e.customData={});for(const a in t)void 0!==t[a]?e.customData[a]=t[a]:delete e.customData[a];return e}function scaleLoadedImage(e,t){let a=!1;if(!t||!e)return{dirty:a,scene:e};for(const i of t.filter((e=>{if(!Boolean(EXCALIDRAW_PLUGIN))return!0;const t=EXCALIDRAW_PLUGIN.filesMaster.get(e.id);if(!t)return!0;const a=EXCALIDRAW_PLUGIN.app.vault.getAbstractFileByPath(t.path.replace(/#.*$/,"").replace(/\|.*$/,""));return!(!a||a instanceof obsidian_module.TFolder)&&("md"===a.extension||EXCALIDRAW_PLUGIN.isExcalidrawFile(a))}))){const[t,n]=[i.size.width,i.size.height],r=t/n;e.elements.filter((e=>"image"===e.type&&e.fileId===i.id)).forEach((e=>{const[s,o]=[e.width,e.height],l=i.shouldScale,c=e.crop,d=Boolean(c);if((e.customData?.isAnchored&&i.shouldScale||!e.customData?.isAnchored&&!i.shouldScale)&&(addAppendUpdateCustomData(e,i.shouldScale?{isAnchored:!1}:{isAnchored:!0}),a=!0),d){if(c.naturalWidth!==t||c.naturalHeight!==n){if(a=!0,e.crop.y+=(n-c.naturalHeight)/2,tt&&(e.crop.x=(t-c.width)/2)}if(nn&&(e.crop.y=(n-c.height)/2)}e.crop.naturalWidth=t,e.crop.naturalHeight=n,e.crop.width===t&&e.crop.height===n&&(e.crop=null)}}else if(l){if(r!==s/o){a=!0;const i=Math.sqrt(s*o*n/t),r=Math.sqrt(s*o*t/n);e.height=i,e.width=r,e.y+=(o-i)/2,e.x+=(s-r)/2}}else s===t&&o===n||(a=!0,e.height=n,e.width=t,e.y+=(o-n)/2,e.x+=(s-t)/2)}))}return{dirty:a,scene:e}}function setDocLeftHandedMode(e,t){const a=t.createElement("style");a.id="excalidraw-left-handed",a.textContent=".excalidraw .App-bottom-bar{justify-content:flex-end;}";const i=t.getElementById(a.id);i&&t.head.removeChild(i),e&&t.head.appendChild(a)}function setLeftHandedMode(e){const t=new Set;EXCALIDRAW_PLUGIN.app.workspace.iterateAllLeaves((a=>{const i=DEVICE.isMobile?document:a.view.containerEl.ownerDocument;i&&(t.has(i)||(t.add(i),setDocLeftHandedMode(e,i)))}))}function getLinkParts(e,t){const a=e.match(/(^[^#\|]*)#?(\^)?([^\|]*)?\|?(\d*)x?(\d*)/),i="^"===a[2];let n=parseInt(a[3]?.match(/page=(\d*)/)?.[1]);return n=isNaN(n)?null:n,{original:e,path:t&&""===a[1]?t.path:a[1],isBlockRef:i,ref:a[3]?.match(/^page=\d*$/i)?a[3]:i?cleanBlockRef(a[3]):cleanSectionHeading(a[3]),width:a[4]?parseInt(a[4]):void 0,height:a[5]?parseInt(a[5]):void 0,page:n}}async function compressAsync(e){return await runCompressionWorker(e,"compress")}function compress(e){const t=LZString.compressToBase64(e);let a="";for(let e=0;e0)return e}}return e.settings.pngExportScale}function isVersionNewerThanOther(e,t){if(!e||!t)return!0;const a=e.match(/(\d*)\.(\d*)\.(\d*)/),i=t.match(/(\d*)\.(\d*)\.(\d*)/);return Boolean(a&&4===a.length&&i&&4===i.length&&!(isNaN(parseInt(a[1]))||isNaN(parseInt(a[2]))||isNaN(parseInt(a[3])))&&!(isNaN(parseInt(i[1]))||isNaN(parseInt(i[2]))||isNaN(parseInt(i[3])))&&(parseInt(a[1])>parseInt(i[1])||parseInt(a[1])>=parseInt(i[1])&&parseInt(a[2])>parseInt(i[2])||parseInt(a[1])>=parseInt(i[1])&&parseInt(a[2])>=parseInt(i[2])&&parseInt(a[3])>parseInt(i[3])))}function getEmbeddedFilenameParts(e){const t=e?.match(/([^#\^]*)((#\^)(group=|area=|frame=|clippedframe=|taskbone)?([^\|]*)|(#)(group=|area=|frame=|clippedframe=|taskbone)?([^\^\|]*))(.*)/);return t?{filepath:t[1],hasBlockref:Boolean(t[3]),hasGroupref:"group="===t[4]||"group="===t[7],hasTaskbone:"taskbone"===t[4]||"taskbone"===t[7],hasArearef:"area="===t[4]||"area="===t[7],hasFrameref:"frame="===t[4]||"frame="===t[7],hasClippedFrameref:"clippedframe="===t[4]||"clippedframe="===t[7],blockref:t[5],hasSectionref:Boolean(t[6]),sectionref:t[8],linkpartReference:t[2],linkpartAlias:t[9]}:{filepath:e,hasBlockref:!1,hasGroupref:!1,hasTaskbone:!1,hasArearef:!1,hasFrameref:!1,hasClippedFrameref:!1,blockref:"",hasSectionref:!1,sectionref:"",linkpartReference:"",linkpartAlias:""}}function isImagePartRef(e){return e.hasGroupref||e.hasArearef||e.hasFrameref||e.hasClippedFrameref}function fragWithHTML(e){return createFragment((t=>t.createDiv().innerHTML=e))}function errorlog(e){console.error({plugin:"Excalidraw",...e})}async function sleep$1(e){return new Promise((t=>setTimeout(t,e)))}function _getContainerElement(e,t){return e&&t?.elements&&"text"===e.type&&e.containerId?getContainerElement(e,arrayToMap(t.elements)):null}function arrayToMap(e){return e instanceof Map?e:e.reduce(((e,t)=>(e.set("string"==typeof t?t:t.id,t),e)),new Map)}function updateFrontmatterInString(e,t){if(!e||!t)return e;for(const a of t){const t=new RegExp(`${a[0]}:\\s.*\\n`,"g");e=e.match(t)?e.replaceAll(t,`${a[0]}: ${a[1]}\n`):e.replace(/^---\n/,`---\n${a[0]}: ${a[1]}\n`)}return e}function isHyperLink(e){return e&&!e.includes("\n")&&!e.includes("\r")&&e.match(/^https?:(\d*)?\/\/[^\s]*$/)}function isContainer(e){return"arrow"!==e.type&&e.boundElements?.map((e=>e.type)).includes("text")}function hyperlinkIsImage(e){isHyperLink(e);const t=e.split("?")[0];return IMAGE_TYPES.contains(t.substring(t.lastIndexOf(".")+1))}function getFilePathFromObsidianURL(e){if(!e)return null;if(!e.startsWith("obsidian://"))return null;try{const t=new URL(e).searchParams.get("file");return t?decodeURIComponent(t):null}catch{return null}}function hyperlinkIsYouTubeLink(e){return isHyperLink(e)&&(e.startsWith("https://youtu.be")||e.startsWith("https://www.youtube.com")||e.startsWith("https://youtube.com")||e.startsWith("https//www.youtu.be"))&&null!==e.match(/(youtu.be\/|v=)([^?\/\&]*)/)}async function getYouTubeThumbnailLink(e){const t=e.match(/(youtu.be\/|v=)([^?\/\&]*)/);if(!t||!t[2])return null;const a=t[2];let i=`https://i.ytimg.com/vi/${a}/maxresdefault.jpg`,n=await obsidian_module.requestUrl({url:i,method:"get",contentType:"image/jpeg",throw:!1});return n&&200===n.status?i:(i=`https://i.ytimg.com/vi/${a}/hq720.jpg`,n=await obsidian_module.requestUrl({url:i,method:"get",contentType:"image/jpeg",throw:!1}),n&&200===n.status?i:(i=`https://i.ytimg.com/vi/${a}/mqdefault.jpg`,n=await obsidian_module.requestUrl({url:i,method:"get",contentType:"image/jpeg",throw:!1}),n&&200===n.status?i:`https://i.ytimg.com/vi/${a}/default.jpg`))}function isCallerFromTemplaterPlugin(e){const t=e.split("\n");for(const e of t)if(e.trim().startsWith("at Templater."))return!0;return!1}function convertSVGStringToElement(e){const t=document.createElement("div");t.innerHTML=e;const a=t.firstChild;if(a instanceof SVGSVGElement)return a}function escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function addIframe(e,t,a,i="settings"){e.createDiv({cls:`excalidraw-videoWrapper ${i}`}).createEl("iframe",{attr:{allowfullscreen:!0,allow:"encrypted-media;picture-in-picture",frameborder:"0",title:"YouTube video player",src:"https://www.youtube.com/embed/"+t+(a?"?start="+a:""),sandbox:"allow-forms allow-presentation allow-same-origin allow-scripts allow-modals"}})}async function getFontMetrics(e,t){try{const a=await opentype.load(e),i=a.unitsPerEm,n=a.ascender,r=a.descender;return{unitsPerEm:i,ascender:n,descender:r,lineHeight:(n-r)/i,fontName:a.names.fontFamily.en??t}}catch(e){return console.error("Error loading font:",e),null}}function cropCanvas(e,t,a={width:t.width,height:t.height}){const i=createEl("canvas");return i.width=a.width,i.height=a.height,i.getContext("2d").drawImage(e,t.left,t.top,t.width,t.height,0,0,a.width,a.height),i}async function promiseTry(e,...t){return new Promise((a=>{a(e(...t))}))}new Random(Date.now());class PromisePool{pool;entries={};constructor(e,t){this.pool=new Pool(e,t)}all(){const e=e=>{if(e.data.result){const[t,a]=e.data.result;this.entries[t]=a}};return this.pool.addEventListener("fulfilled",e),this.pool.start().then((()=>(setTimeout((()=>{this.pool.removeEventListener("fulfilled",e)})),Object.values(this.entries))))}}class WeakArray{weakArray=[];constructor(){}push(e){this.weakArray.push(new WeakRef(e))}forEach(e){this.weakArray.forEach(((t,a)=>{const i=t.deref();i&&e(i,a)}))}removeObjects(e){this.weakArray=this.weakArray.filter((t=>{const a=t.deref();return a&&!e.has(a)}))}clear(){this.weakArray=[]}}class ScriptEngine{plugin;app;scriptPath;scriptIconMap;eaInstances=new WeakArray;constructor(e){this.plugin=e,this.app=e.app,this.scriptIconMap={},this.loadScripts(),this.registerEventHandlers()}removeViewEAs(e){const t=new Set;this.eaInstances.forEach((a=>{a.targetView===e&&(t.add(a),a.destroy())})),this.eaInstances.removeObjects(t)}destroy(){this.eaInstances.forEach((e=>e.destroy())),this.eaInstances.clear(),this.eaInstances=null,this.scriptIconMap=null,this.plugin=null,this.scriptPath=null}handleSvgFileChange(e){if(!e.endsWith(".svg"))return;const t=this.app.vault.getAbstractFileByPath(getIMGFilename(e,"md"));t&&t instanceof obsidian_module.TFile&&(this.unloadScript(this.getScriptName(t),t.path),this.loadScript(t))}async deleteEventHandler(e){e instanceof obsidian_module.TFile&&e.path.startsWith(this.scriptPath)&&(this.unloadScript(this.getScriptName(e),e.path),this.handleSvgFileChange(e.path))}async createEventHandler(e){e instanceof obsidian_module.TFile&&e.path.startsWith(this.scriptPath)&&(this.loadScript(e),this.handleSvgFileChange(e.path))}async renameEventHandler(e,t){if(!(e instanceof obsidian_module.TFile))return;const a=t.startsWith(this.scriptPath),i=e.path.startsWith(this.scriptPath);a&&(this.unloadScript(this.getScriptName(t),t),this.handleSvgFileChange(t)),i&&(this.loadScript(e),this.handleSvgFileChange(e.path))}registerEventHandlers(){this.plugin.registerEvent(this.app.vault.on("delete",(e=>this.deleteEventHandler(e)))),this.plugin.registerEvent(this.app.vault.on("create",(e=>this.createEventHandler(e)))),this.plugin.registerEvent(this.app.vault.on("rename",((e,t)=>this.renameEventHandler(e,t))))}updateScriptPath(){this.scriptPath!==this.plugin.settings.scriptFolderPath&&(this.scriptPath&&this.unloadScripts(),this.loadScripts())}getListofScripts(){if(this.scriptPath=this.plugin.settings.scriptFolderPath,this.scriptPath&&(this.scriptPath=obsidian_module.normalizePath(this.scriptPath),this.app.vault.getAbstractFileByPath(this.scriptPath)))return this.app.vault.getFiles().filter((e=>e.path.startsWith(this.scriptPath+"/")&&"md"===e.extension))}loadScripts(){this.getListofScripts()?.forEach((e=>this.loadScript(e)))}getScriptName(e){let t="",a="";e instanceof obsidian_module.TFile?(t=e.basename,a=e.path):(t=splitFolderAndFilename(e).basename,a=e);const i=a.split(`${this.scriptPath}/`)[1];i||console.warn(`ScriptEngine.getScriptName unexpected basename: ${t}; path: ${a}`);const n=i?.lastIndexOf("/");return n>-1?i.substring(0,n+1)+t:t}async addScriptIconToMap(e,t){const a=getIMGFilename(e,"svg"),i=this.app.vault.getAbstractFileByPath(a),n=i&&i instanceof obsidian_module.TFile?await this.app.vault.read(i):null;this.scriptIconMap={...this.scriptIconMap};const r=splitFolderAndFilename(t);this.scriptIconMap[e]={name:r.filename,group:r.folderpath,svgString:n},this.updateToolPannels()}loadScript(e){if("md"!==e.extension)return;const t=this.getScriptName(e);this.addScriptIconToMap(e.path,t),this.plugin.addCommand({id:t,name:`(Script) ${t}`,checkCallback:a=>{if(a)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const i=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!i&&((async()=>{const a=await this.app.vault.read(e);a&&this.executeScript(i,a,t,e)})(),!0)}})}unloadScripts(){const e=this.app.vault.getFiles().filter((e=>e.path.startsWith(this.scriptPath)));e.forEach((e=>{this.unloadScript(this.getScriptName(e),e.path)}))}unloadScript(e,t){if(!t.endsWith(".md"))return;delete this.scriptIconMap[t],this.scriptIconMap={...this.scriptIconMap},this.updateToolPannels();const a=`${PLUGIN_ID}:${e}`;this.app.commands.commands[a]&&delete this.app.commands.commands[a]}async executeScript(e,t,a,i){if(!e||!t||!a)return;e.getScene().elements.some((e=>!e.isDeleted&&"text"===e.type&&e.id.length>8))&&await e.save(!1,!0),t=t.replace(/^---.*?---\n/gs,"");const n=getEA(e);this.eaInstances.push(n),n.activeScript=a;const r=Object.getPrototypeOf((async()=>{})).constructor;let s=null;return s=await new r("ea","utils",t)(n,{inputPrompt:(t,a,i,n,r,s,o,l,c,d)=>{if("object"==typeof t){const e=t;t=e.header,a=e.placeholder,i=e.value,n=e.buttons,r=e.lines,s=e.displayEditorButtons,o=e.customComponents,l=e.blockPointerInputOutsideModal,c=e.controlsOnTop,d=e.draggable}return ScriptEngine.inputPrompt(e,this.plugin,this.app,t,a,i,n,r,s,o,l,c,d)},suggester:(e,t,a,i)=>ScriptEngine.suggester(this.app,e,t,a,i),scriptFile:i}),s}updateToolPannels(){getExcalidrawViews(this.app).forEach((e=>{e.toolsPanelRef?.current?.updateScriptIconMap(this.scriptIconMap)}))}static async inputPrompt(e,t,a,i,n,r,s,o,l,c,d,h,p=!1){try{return await GenericInputPrompt.Prompt(e,t,a,i,n,r,s,o,l,c,d,h,p)}catch{return}}static async suggester(e,t,a,i,n){try{return await GenericSuggester.Suggest(e,t,a,i,n)}catch(e){return}}}async function insertImageToView(e,t,a,i,n=!0,r=!1){n&&e.clear(),e.style.strokeColor="transparent",e.style.backgroundColor="transparent";const s=e.getExcalidrawAPI();e.canvas.theme=s.getAppState().theme;const o=await e.addImage(t.x,t.y,a,i);return n&&await e.addElementsToView(r,!0,!0),o}async function insertEmbeddableToView(e,t,a,i,n=!0){n&&e.clear();const r=e.getExcalidrawAPI().getAppState();if(e.plugin.settings.embeddableMarkdownDefaults.backgroundMatchElement?e.style.backgroundColor=r.currentItemBackgroundColor:e.style.backgroundColor="transparent",e.plugin.settings.embeddableMarkdownDefaults.borderMatchElement?e.style.strokeColor=r.currentItemStrokeColor:e.style.strokeColor="transparent",a&&(IMAGE_TYPES.contains(a.extension)||e.isExcalidrawFile(a))&&!ANIMATED_IMAGE_TYPES.contains(a.extension))return await insertImageToView(e,t,i??a,void 0,n);{let r=MAX_IMAGE_SIZE;(a&&AUDIO_TYPES.contains(a.extension.toLowerCase())||i&&AUDIO_TYPES.contains(i.match(/\[\[[^\]]+?\.([^\.\]]+)]]/)?.[1]?.toLocaleLowerCase()))&&(e.style.strokeColor="transparent",e.style.backgroundColor="transparent",r=getAudioElementHeight());const s=e.addEmbeddable(t.x,t.y,MAX_IMAGE_SIZE,r,i,a);return n&&await e.addElementsToView(!1,!0,!0),s}}function getLinkTextFromLink(e){if(!e)return;if(e.match(REG_LINKINDEX_HYPERLINK))return;const t=REGEX_LINK.getRes(e).next();if(!t.value)return;const a=REGEX_LINK.getLink(t);return a.match(REG_LINKINDEX_HYPERLINK)?void 0:a}function openTagSearch(e,t,a){const i=REGEX_TAGS.getResList(e);if(!i.length||!i[0].value||i[0].value.length<2)return;const n=`tag:${i[0].value[1]}`,r=t.internalPlugins.getPluginById("global-search");if(r){const e=r.instance;e&&e.openGlobalSearch(n)}a&&a.isFullscreen()&&a.exitFullscreen()}function getLinkFromMarkdownLink(e){const t=/^\[[^\]]*]\(([^\)]*)\)/.exec(e);return t?t[1]:e}function openExternalLink(e,t,a){if((e=getLinkFromMarkdownLink(e)).match(/^cmd:\/\/.*/)){const a=e.replace("cmd://","");return t.commands.executeCommandById(a),!0}return!(e.startsWith("obsidian://")||!e.match(REG_LINKINDEX_HYPERLINK)||(window.open(e,"_blank"),0))}function parseObsidianLink(e,t,a=!0,i=!0){if(!e)return!1;if(e=getLinkFromMarkdownLink(e),!e?.startsWith("obsidian://"))return!1;const n=new URL(e),r=n.pathname.slice(2),s={};if(n.searchParams.forEach(((e,t)=>{s[t]=decodeURIComponent(e)})),"open"===r&&s.vault===t.vault.getName()){const e=s.file,i=t.metadataCache.getFirstLinkpathDest(e,"");if(i&&i instanceof obsidian_module.TFile)return a?`[[${i.path}]]`:i.path}return i&&window.open(e,"_blank"),!0}function getExcalidrawFileForwardLinks(e,t,a){let i="";const n=e.metadataCache.getLinks()[t.path];if(n&&n.length>0){const r=new Set;n.forEach((i=>{const n=getLinkParts(i.link),s=e.metadataCache.getFirstLinkpathDest(n.path,t.path);if(s&&s.path!==t.path){if(a.has(s.path))return;a.add(s.path),r.add(`[[${s.path}${n.ref?"#"+n.ref:""}|Second Order Link: ${s.basename}]]`)}})),i=[...r].join(" ")}return i}function getFrameBasedOnFrameNameOrId(e,t){const a=t.filter((e=>"frame"===e.type)).map((e=>({el:e,id:e.id,name:e.name??"Frame"}))).filter((t=>t.id===e||t.name===e)).map((e=>e.el));return 1===a.length?a[0]:null}async function addBackOfTheNoteCard(e,t,a=!0,i,n,r=!1){const s=e.data,o=getExcalidrawMarkdownHeaderSection(s),l=s.split(o)[1],c=l&&l.startsWith("%%"),d=o.match(/#\n+$/m),h=Boolean(d);e.data=s.replace(o,(h?o.substring(0,o.length-d[0].length):o)+`\n# ${t}\n\n${i?i+"\n\n":""}${c||h?"#\n":""}`),await e.forceSave(!0);let p,u=0;for(await sleep(200);u++<10&&!(p=(await e.app.metadataCache.blockCache.getForFile({isCancelled:()=>!1},e.file)).blocks.filter((e=>e.display&&"heading"===e.node?.type)).filter((e=>!MD_EX_SECTIONS.includes(e.display))).map((e=>cleanSectionHeading(e.display))).find((e=>e===t)));)await sleep(200);const m=getEA(e);let g,f=0;if(r){const e=m.getViewCenterPosition();e&&(g=e.x-CARD_WIDTH/2,f=e.y-CARD_HEIGHT/2)}const b=m.addEmbeddable(g,f,CARD_WIDTH,CARD_HEIGHT,`[[${e.file.path}#${t}]]`,void 0,n);await m.addElementsToView(!r,!1,!0);const U=e.excalidrawAPI,E=m.getViewElements().find((e=>e.id===b));return U.selectElements([E]),a&&window.setTimeout((()=>{U.updateScene({appState:{activeEmbeddable:{element:E,state:"active"}},captureUpdate:CaptureUpdateAction.NEVER}),p&&e.getEmbeddableLeafElementById(E.id)?.editNode?.()})),m.destroy(),E.id}function renderContextMenuAction(e,t,a,i){return e.createElement("li",{key:nanoid$1(),onClick:()=>{i((()=>a()))}},e.createElement("button",{className:"context-menu-item"},e.createElement("div",{className:"context-menu-item__label"},t),e.createElement("kbd",{className:"context-menu-item__shortcut"},"")))}function tmpBruteForceCleanup(e){window.setTimeout((()=>{e&&Object.keys(e).forEach((t=>{delete e[t]}))}),500)}function isTextImageTransclusion(e,t,a){const i=e.trim().matchAll(/^!\[\[([^|\]]*)?.*?]]$|^!\[[^\]]*?]\((.*?)\)$/g).next();if(i?.value?.[0]){const e=i.value[1]??i.value[2],n=t.app.metadataCache.getFirstLinkpathDest(e?.split("#")[0],t.file.path);if(t.file===n)return e?.split("#")[1]&&!isImagePartRef(getEmbeddedFilenameParts(e))||new obsidian_module.Notice(t$d("RECURSIVE_INSERT_ERROR")),!1;if(n&&n instanceof obsidian_module.TFile){if(t.plugin.isExcalidrawFile(n)&&e?.split("#")[1]&&!isImagePartRef(getEmbeddedFilenameParts(e)))return!1;if("md"!==n.extension||t.plugin.isExcalidrawFile(n))return a(e,n),!0;new obsidian_module.Notice(t$d("USE_INSERT_FILE_MODAL"),5e3)}}return!1}function displayFontMessage(e){const t=new obsidian_module.Modal(e);t.onOpen=()=>{const e=t.contentEl;e.createEl("h2",{text:t$d("FONT_INFO_TITLE")});const a=t$d("FONT_INFO_DETAILED");e.createDiv({cls:"release-notes"}).innerHTML=a},t.open()}async function toggleImageAnchoring(e,t,a,i){const n=getEA(t);let r=t.getViewElements().find((t=>t.id===e.id));if(r){if(n.copyViewElementsToEAforEditing([r]),r=n.getElements()[0],r.customData||(r.customData={}),r.customData.isAnchored=a,a){const{height:e,width:t}=i.size,a=t-r.width,n=e-r.height;r.height=e,r.width=t,r.x-=a/2,r.y-=n/2}await n.addElementsToView(!1,!1),n.destroy()}else n.destroy()}function onLoadMessages(e,t,a){setTimeout((()=>{!(t.appState.frameRendering?.markerEnabled??1)&&t.elements.some((e=>"frame"===e.type&&"marker"===e.frameRole))&&new obsidian_module.Notice(t$d("MARKER_FRAME_RENDERING_DISABLED_NOTICE"))}))}class Prompt extends obsidian_module.Modal{prompt_text;default_value;placeholder;prompt_desc;promptEl;resolve;constructor(e,t,a,i,n){super(e),this.prompt_text=t,this.default_value=a,this.placeholder=i,this.prompt_desc=n}onOpen(){this.titleEl.setText(this.prompt_text),this.createForm()}onClose(){this.contentEl.empty()}createForm(){let e=this.contentEl.createDiv();e.addClass("excalidraw-prompt-div"),this.prompt_desc&&(e=e.createDiv(),e.style.width="100%",e.createEl("p").innerHTML=this.prompt_desc);const t=e.createEl("form");t.addClass("excalidraw-prompt-form"),t.type="submit",t.onsubmit=e=>{e.preventDefault(),this.resolve(this.promptEl.value),this.close()},this.promptEl=t.createEl("input"),this.promptEl.type="text",this.promptEl.placeholder=this.placeholder,this.promptEl.value=this.default_value??"",this.promptEl.addClass("excalidraw-prompt-input"),this.promptEl.select()}async openAndGetValue(e){this.resolve=e,this.open()}}class GenericInputPrompt extends obsidian_module.Modal{header;waitForClose;view;plugin;resolvePromise;rejectPromise;didSubmit=!1;inputComponent;input;buttons;lines=1;displayEditorButtons=!1;placeholder;selectionStart=0;selectionEnd=0;selectionUpdateTimer=0;customComponents;blockPointerInputOutsideModal=!1;controlsOnTop=!1;draggable=!1;cleanupDragListeners=null;static Prompt(e,t,a,i,n,r,s,o,l,c,d,h,p){return new GenericInputPrompt(e,t,a,i,n,r,s,o,l,c,d,h,p).waitForClose}constructor(e,t,a,i,n,r,s,o,l,c,d,h,p){super(a),this.header=i,this.view=e,this.plugin=t,this.placeholder=n,this.input=r,this.buttons=s,this.lines=o??1,this.displayEditorButtons=this.lines>1&&(l??!1),this.customComponents=c,this.blockPointerInputOutsideModal=d??!1,this.controlsOnTop=h??!1,this.draggable=p??!1,this.waitForClose=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t})),this.display(),this.inputComponent.inputEl.focus(),this.open()}display(){this.contentEl.empty(),this.blockPointerInputOutsideModal&&(this.bgEl.style.pointerEvents=this.blockPointerInputOutsideModal?"none":"auto"),this.titleEl.textContent=this.header;const e=this.contentEl.createDiv();this.controlsOnTop?(this.customComponents?.(e),this.createButtonBar(e),this.inputComponent=this.createInputField(e,this.placeholder,this.input)):(this.inputComponent=this.createInputField(e,this.placeholder,this.input),this.customComponents?.(e),this.createButtonBar(e))}createInputField(e,t,a){const i=new obsidian_module.TextAreaComponent(e);i.inputEl.style.width="100%",i.inputEl.style.height=2*this.lines+"em",1===this.lines&&(i.inputEl.style.resize="none",i.inputEl.style.overflow="hidden"),i.setPlaceholder(t??"").setValue(a??"").onChange((e=>this.input=e));const n=()=>{this.selectionUpdateTimer=this.view.ownerWindow.setTimeout((()=>{this.selectionStart=this.inputComponent.inputEl.selectionStart,this.selectionEnd=this.inputComponent.inputEl.selectionEnd}),30)};return i.inputEl.addEventListener("keydown",this.keyDownCallback.bind(this)),i.inputEl.addEventListener("keyup",n.bind(this)),i.inputEl.addEventListener("pointerup",n.bind(this)),i.inputEl.addEventListener("touchend",n.bind(this)),i.inputEl.addEventListener("input",n.bind(this)),i.inputEl.addEventListener("paste",n.bind(this)),i.inputEl.addEventListener("cut",n.bind(this)),i.inputEl.addEventListener("select",n.bind(this)),i.inputEl.addEventListener("selectionchange",n.bind(this)),i}createButton(e,t,a,i="",n="5px"){const r=new obsidian_module.ButtonComponent(e);return r.buttonEl.style.padding="0.5em",r.buttonEl.style.marginLeft=n,r.setTooltip(i),r.setButtonText(t).onClick(a),r}createButtonBar(e){const t=e.createDiv();t.addClass("excalidraw-prompt-buttonbar-"+(this.controlsOnTop?"top":"bottom"));const a=t.createDiv(),i=t.createDiv();if(this.buttons&&this.buttons.length>0){let e=null;for(const t of this.buttons){const a=new obsidian_module.ButtonComponent(i);a.buttonEl.style.marginLeft="5px",t.tooltip&&a.setTooltip(t.tooltip),a.setButtonText(t.caption).onClick((e=>{const a=t.action(this.input);a&&(this.input=a),this.submit()})),e=e??a}e&&(e.setCta(),e.buttonEl.style.marginRight="0")}else this.createButton(i,"✅",this.submitClickCallback.bind(this)).setCta().buttonEl.style.marginRight="0";this.createButton(i,"❌",this.cancelClickCallback.bind(this),t$d("PROMPT_BUTTON_CANCEL")),this.displayEditorButtons&&(this.createButton(a,"⏎",(()=>this.insertStringBtnClickCallback("\n")),t$d("PROMPT_BUTTON_INSERT_LINE"),"0"),this.createButton(a,"⌫",this.delBtnClickCallback.bind(this),"Delete"),this.createButton(a,"⎵",(()=>this.insertStringBtnClickCallback(" ")),t$d("PROMPT_BUTTON_INSERT_SPACE")),this.createButton(a,"§",this.specialCharsBtnClickCallback.bind(this),t$d("PROMPT_BUTTON_SPECIAL_CHARS")),this.view&&this.createButton(a,"🔗",this.linkBtnClickCallback.bind(this),t$d("PROMPT_BUTTON_INSERT_LINK")),this.createButton(a,"🔠",this.uppercaseBtnClickCallback.bind(this),t$d("PROMPT_BUTTON_UPPERCASE")))}linkBtnClickCallback=()=>{this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer),this.plugin.insertLinkDialog.start(this.view.file.path,(e=>{const t=this.inputComponent.inputEl.value;this.selectionStart>0&&" "!==t.slice(this.selectionStart-1,this.selectionStart)&&(e=" "+e),this.selectionStart{this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer);const t=this.inputComponent.inputEl.value.slice(0,this.selectionStart)+e+this.inputComponent.inputEl.value.slice(this.selectionStart);this.inputComponent.inputEl.value=t,this.input=this.inputComponent.inputEl.value,this.inputComponent.inputEl.focus(),this.selectionStart=this.selectionStart+1,this.selectionEnd=this.selectionStart,this.inputComponent.inputEl.setSelectionRange(this.selectionStart,this.selectionEnd)};delBtnClickCallback=()=>{if(this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer),0===this.input.length)return;const e=this.selectionEnd>this.selectionStart?this.selectionStart:this.selectionStart>0?this.selectionStart-1:0,t=this.selectionEnd,a=this.inputComponent.inputEl.value.slice(0,e)+this.inputComponent.inputEl.value.slice(t);this.inputComponent.inputEl.value=a,this.input=this.inputComponent.inputEl.value,this.inputComponent.inputEl.focus(),this.selectionStart=e,this.selectionEnd=e,this.inputComponent.inputEl.setSelectionRange(e,e)};uppercaseBtnClickCallback=()=>{if(this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer),this.selectionEnd===this.selectionStart)return;const e=this.inputComponent.inputEl.value.slice(0,this.selectionStart)+this.inputComponent.inputEl.value.slice(this.selectionStart,this.selectionEnd).toUpperCase()+this.inputComponent.inputEl.value.slice(this.selectionEnd);this.inputComponent.inputEl.value=e,this.input=this.inputComponent.inputEl.value,this.inputComponent.inputEl.focus(),this.inputComponent.inputEl.setSelectionRange(this.selectionStart,this.selectionEnd)};submitClickCallback(){this.submit()}cancelClickCallback(){this.cancel()}keyDownCallback=e=>{("Enter"===e.key&&1===this.lines||isWinCTRLorMacCMD(e)&&"Enter"===e.key)&&(e.preventDefault(),this.submit()),this.displayEditorButtons&&"k"===e.key&&isWinCTRLorMacCMD(e)&&(e.preventDefault(),this.linkBtnClickCallback())};submit(){this.didSubmit=!0,this.close()}cancel(){this.close()}resolveInput(){this.didSubmit?this.resolvePromise(this.input):this.rejectPromise("No input given.")}removeInputListener(){this.inputComponent?.inputEl?.removeEventListener("keydown",this.keyDownCallback)}specialCharsBtnClickCallback=e=>{this.view.ownerWindow.clearTimeout(this.selectionUpdateTimer);const t=document.querySelector(".excalidraw-special-chars-popup");if(t)return void t.remove();const a=document.createElement("div");a.className="excalidraw-special-chars-popup",a.style.position="absolute",a.style.zIndex="1000",a.style.background="var(--background-primary)",a.style.border="1px solid var(--background-modifier-border)",a.style.borderRadius="4px",a.style.padding="4px",a.style.boxShadow="0 2px 8px var(--background-modifier-box-shadow)",a.style.display="flex",a.style.flexWrap="wrap",a.style.maxWidth="200px";const i=e.target.getBoundingClientRect();a.style.top=`${i.bottom+5}px`,a.style.left=`${i.left}px`,[",",".",":",";","!","?",'"',"{","}","[","]","(",")"].forEach((e=>{const t=document.createElement("button");t.textContent=e,t.style.margin="2px",t.style.width="28px",t.style.height="28px",t.style.cursor="pointer",t.style.background="var(--interactive-normal)",t.style.border="none",t.style.borderRadius="4px",t.addEventListener("click",(()=>{this.insertStringBtnClickCallback(e),a.remove()})),a.appendChild(t)}));const n=t=>{a.contains(t.target)||e.target===t.target||(a.remove(),document.removeEventListener("click",n))};document.body.appendChild(a),setTimeout((()=>{document.addEventListener("click",n)}),10)};onOpen(){super.onOpen(),this.inputComponent.inputEl.focus(),this.inputComponent.inputEl.select(),this.draggable&&this.makeModalDraggable()}makeModalDraggable(){let e,t,a,i,n=!1,r=null,s=null;const o=this.modalEl,l=o.querySelector(".modal-titlebar")||o.querySelector(".modal-title")||o;l.style.cursor="move";const c=e=>{const t=e.target;if(t&&("SELECT"===t.tagName||"INPUT"===t.tagName||"TEXTAREA"===t.tagName||"BUTTON"===t.tagName))if(r=t,"TEXTAREA"===t.tagName||"INPUT"===t.tagName&&"number"!==t.type){const e=t;s={start:e.selectionStart||0,end:e.selectionEnd||0}}else s=null},d=r=>{const s=r.target;if("INPUT"===s.tagName||"TEXTAREA"===s.tagName||"BUTTON"===s.tagName||"SELECT"===s.tagName||s.closest("button")||s.closest("input")||s.closest("textarea")||s.closest("select"))return;if(!l.contains(s)&&!o.querySelector(".modal-content")?.contains(s))return;n=!0,e=r.clientX,t=r.clientY;const c=o.getBoundingClientRect();a=c.left,i=c.top,o.style.position="absolute",o.style.margin="0",o.style.left=`${a}px`,o.style.top=`${i}px`},h=r=>{if(!n)return;const s=r.clientX-e,l=r.clientY-t;o.style.left=`${a+s}px`,o.style.top=`${i+l}px`},p=()=>{n&&(n=!1,r&&r.isConnected&&setTimeout((()=>{r.focus(),s&&("TEXTAREA"===r.tagName||"INPUT"===r.tagName&&"number"!==r.type)&&r.setSelectionRange(s.start,s.end)}),0))};r=this.inputComponent.inputEl,s={start:this.inputComponent.inputEl.selectionStart||0,end:this.inputComponent.inputEl.selectionEnd||0},o.addEventListener("focusin",c),o.addEventListener("pointerdown",d),document.addEventListener("pointermove",h),document.addEventListener("pointerup",p),this.cleanupDragListeners=()=>{o.removeEventListener("focusin",c),o.removeEventListener("pointerdown",d),document.removeEventListener("pointermove",h),document.removeEventListener("pointerup",p)}}onClose(){super.onClose(),this.resolveInput(),this.removeInputListener(),this.cleanupDragListeners&&(this.cleanupDragListeners(),this.cleanupDragListeners=null)}}class GenericSuggester extends obsidian_module.FuzzySuggestModal{displayItems;items;hint;instructions;resolvePromise;rejectPromise;promise;resolved;static Suggest(e,t,a,i,n){return new GenericSuggester(e,t,a,i,n).promise}constructor(e,t,a,i,n){super(e),this.displayItems=t,this.items=a,this.hint=i,this.instructions=n,this.limit=20,this.setPlaceholder(this.hint??""),n&&this.setInstructions(this.instructions),this.promise=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t})),this.open()}getItemText(e){return this.displayItems[this.items.indexOf(e)]}getItems(){return this.items}selectSuggestion(e,t){this.resolved=!0,super.selectSuggestion(e,t)}onChooseItem(e){this.resolved=!0,this.resolvePromise(e)}onClose(){super.onClose(),this.resolved||this.rejectPromise(this.inputEl.value)}}class NewFileActions extends obsidian_module.Modal{waitForClose;resolvePromise;rejectPromise;newFile=null;plugin;path;keys;view;openNewFile;parentFile;sourceElement;constructor({plugin:e,path:t,keys:a,view:i,openNewFile:n=!0,parentFile:r,sourceElement:s}){super(e.app),this.plugin=e,this.path=t,this.keys=a,this.view=i,this.openNewFile=n,this.sourceElement=s,this.parentFile=r??i.file,this.waitForClose=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t}))}onOpen(){this.createForm()}openFile(e){this.newFile=e,e&&this.openNewFile&&openLeaf({plugin:this.plugin,fnGetLeaf:()=>getLeaf(this.plugin,this.view.leaf,this.keys),file:e,openState:{active:!0}})}onClose(){super.onClose(),this.resolvePromise(this.newFile),this.app=null,this.plugin=null,this.view=null,this.parentFile=null,this.sourceElement=null}createForm(){this.titleEl.setText(t$d("PROMPT_TITLE_NEW_FILE")),this.contentEl.createDiv({cls:"excalidraw-prompt-center",text:t$d("PROMPT_FILE_DOES_NOT_EXIST")}),this.contentEl.createDiv({cls:"excalidraw-prompt-center filepath",text:this.path}),this.contentEl.createDiv({cls:"excalidraw-prompt-center"},(e=>{e.style.textAlign="right";const t=()=>this.path&&""!==this.path?!!this.parentFile||(new obsidian_module.Notice(t$d("PROMPT_ERROR_DRAWING_CLOSED")),!1):(new obsidian_module.Notice(t$d("PROMPT_ERROR_NO_FILENAME")),!1),a=async e=>{if(!this.path.includes("/")){const e=new RegExp(`${escapeRegExp(this.parentFile.name)}$`,"g");this.path=this.parentFile.path.replace(e,this.path)}return this.path.match(/\.md$/)||(this.path=`${this.path}.md`),await createOrOverwriteFile(this.app,this.path,e)};this.sourceElement&&(e.createEl("button",{text:t$d("PROMPT_BUTTON_EMBED_MARKDOWN"),attr:{"aria-label":t$d("PROMPT_BUTTON_EMBED_MARKDOWN_ARIA")}}).onclick=async()=>{if(!t)return;const e=await a("");if(e){const t=getEA(this.view);t.copyViewElementsToEAforEditing([this.sourceElement]),t.getElement(this.sourceElement.id).isDeleted=!0,t.addEmbeddable(this.sourceElement.x,this.sourceElement.y,MAX_IMAGE_SIZE,MAX_IMAGE_SIZE,void 0,e),await t.addElementsToView(),t.destroy()}this.close()}),e.createEl("button",{text:t$d("PROMPT_BUTTON_CREATE_MARKDOWN"),attr:{"aria-label":t$d("PROMPT_BUTTON_CREATE_MARKDOWN_ARIA")}}).onclick=async()=>{if(!t)return;const e=await a("");this.openFile(e),this.close()},e.createEl("button",{text:t$d("PROMPT_BUTTON_CREATE_EXCALIDRAW"),attr:{"aria-label":t$d("PROMPT_BUTTON_CREATE_EXCALIDRAW_ARIA")}}).onclick=async()=>{if(!t)return;const e=await a(await this.plugin.getBlankDrawing());await sleep$1(200),this.openFile(e),this.close()},e.createEl("button",{text:t$d("PROMPT_BUTTON_NEVERMIND")}).onclick=()=>{this.close()}}))}}class MultiOptionConfirmationPrompt extends obsidian_module.Modal{plugin;waitForClose;resolvePromise;rejectPromise;selectedValue=null;message;buttons;ctaButtonLabel=null;constructor(e,t,a,i){super(e.app),this.plugin=e,this.message=t,a&&0!==a.size||(a=new Map([[t$d("PROMPT_BUTTON_CANCEL"),null],[t$d("PROMPT_BUTTON_OK"),!0]]),i||(i=t$d("PROMPT_BUTTON_OK"))),this.ctaButtonLabel=i,this.buttons=a,this.waitForClose=new Promise(((e,t)=>{this.resolvePromise=e,this.rejectPromise=t})),this.display(),this.open()}display(){this.contentEl.empty(),this.titleEl.textContent=t$d("PROMPT_TITLE_CONFIRMATION");const e=this.contentEl.createDiv();e.style.marginBottom="1rem",e.innerHTML=this.message;const t=this.contentEl.createDiv();t.style.display="flex",t.style.justifyContent="flex-end",t.style.flexWrap="wrap";const a=Array.from(this.buttons.entries());let i=null;a.reverse().forEach((([e,n],r)=>{const s=this.createButton(t,e,(()=>{this.selectedValue=n,this.close()}));e===this.ctaButtonLabel&&(i=s.buttonEl,s.setCta()),rBoolean(e.value))),r=n.map((e=>REGEX_LINK.getLink(e))),s=new Map;r.forEach(((e,t)=>{const a=e.split("&rect=")[0];s.has(a)||s.set(a,[]),s.get(a).push(t)}));const o=new Set;s.forEach((e=>{if(1===e.length)o.add(e[0]);else{const t=e.find((e=>r[e].includes("&rect=")));void 0!==t?o.add(t):o.add(e[0])}})),s.forEach((e=>{const t=e.some((e=>o.has(e)));t||o.add(e[0])}));const l=n.filter(((e,t)=>o.has(t))),c=REGEX_TAGS.getResList(e.replaceAll(/([^\s])#/g,"$1 ")).filter((e=>Boolean(e.value)));let d=null,h=null,p=l[0]??c[0];const u=[...l.map((e=>{const t=REGEX_LINK.getAliasOrLink(e);return"100%"===t?REGEX_LINK.getLink(e):t})),...c.map((e=>REGEX_TAGS.getTag(e)))],m=[...l,...c];if(m.length>1&&(p=await ScriptEngine.suggester(t,u,m,i),!p))return;if(!p)return;if(REGEX_TAGS.isTag(p))return void openTagSearch(REGEX_TAGS.getTag(p),t);if(openExternalLink(e=REGEX_LINK.getLink(p),t))return;const g=parseObsidianLink(e,t,!1);if("boolean"!=typeof g||!g){if("string"==typeof g&&(e=g),e.search("#")>-1){const t=getLinkParts(e,a?a.file:void 0);d=`#${t.isBlockRef?"^":""}${t.ref}`,e=t.path}if(!e.match(REG_LINKINDEX_INVALIDCHARS))return h=t.metadataCache.getFirstLinkpathDest(e,a?a.file.path:""),[h,e,d];new obsidian_module.Notice(t$d("FILENAME_INVALID_CHARS"),4e3)}}const templatePromt=async(e,t)=>1===e.length?e[0]:(await linkPrompt(e.map((e=>`[[${e.path}|${e.name}]]`)).join(" "),t,void 0,t$d("PROMPT_SELECT_TEMPLATE"))??[null,null,null])[0];function updateElementIdsInScene({elements:e},t,a){if("text"===t.type){const i=t;if(i.containerId){const t=e.find((e=>e.id===i.containerId));t.boundElements?.filter((e=>e.id===i.id)).forEach((e=>{e.id=a}))}}t.boundElements?.length>0&&t.boundElements.forEach((i=>{const n=e.find((e=>e.id===i.id));if(n.boundElements?.filter((e=>e.id===t.id)).forEach((e=>{e.id=a})),"text"===n.type&&(n.containerId=a),"arrow"===n.type){const e=n;e.startBinding?.elementId===t.id&&(e.startBinding.elementId=a),e.endBinding?.elementId===t.id&&(e.endBinding.elementId=a)}})),"frame"===t.type&&e.filter((e=>e.frameId===t.id)).forEach((e=>{e.frameId=a})),t.id=a}function getPDFCropRect(e){const t=e.link.match(/&rect=(\d*),(\d*),(\d*),(\d*)/);if(!t||5!==t.length)return null;const a=e.pdfPageViewProps.rotate??0,{left:i,bottom:n}=e.pdfPageViewProps,r=parseInt(t[1]),s=parseInt(t[2]),o=parseInt(t[3]),l=parseInt(t[4]);if(90===a){const t=r,a=o,i=l,n=s*e.scale,c=t*e.scale;return{x:n,y:c,width:i*e.scale-n,height:a*e.scale-c,naturalWidth:e.naturalWidth,naturalHeight:e.naturalHeight}}if(180===a){const t=r,a=o,i=l,n=s*e.scale,c=e.naturalWidth-a*e.scale;return{x:c,y:n,width:e.naturalWidth-c-t*e.scale,height:i*e.scale-n,naturalWidth:e.naturalWidth,naturalHeight:e.naturalHeight}}if(270===a){const t=r,a=s,i=o,n=l,c=e.naturalWidth-n*e.scale,d=e.naturalHeight-i*e.scale;return{x:c,y:d,width:e.naturalWidth-c-a*e.scale,height:e.naturalHeight-d-t*e.scale,naturalWidth:e.naturalWidth,naturalHeight:e.naturalHeight}}const c=r,d=s,h=o,p=l;return{x:(c-i)*e.scale,y:e.naturalHeight-(p-n)*e.scale,width:(h-c)*e.scale,height:(p-d)*e.scale,naturalWidth:e.naturalWidth,naturalHeight:e.naturalHeight}}function getPDFRect({elCrop:e,scale:t,customData:a}){const i=a.pdfPageViewProps?.rotate??0,{left:n,bottom:r}=a&&a.pdfPageViewProps?a.pdfPageViewProps:{left:0,bottom:0};if(90===i){const a=e.y/t,i=e.x/t,n=(e.height+e.y)/t,r=(e.width+e.x)/t;return`&rect=${Math.round(a)},${Math.round(i)},${Math.round(n)},${Math.round(r)}`}if(180===i){const a=(e.naturalWidth-e.x-e.width)/t,i=e.y/t,n=(e.naturalWidth-e.x)/t,r=(e.height+e.y)/t;return`&rect=${Math.round(a)},${Math.round(i)},${Math.round(n)},${Math.round(r)}`}if(270===i){const a=(e.naturalHeight-e.height-e.y)/t,i=(e.naturalWidth-e.width-e.x)/t,n=(e.naturalHeight-e.y)/t,r=(e.naturalWidth-e.x)/t;return`&rect=${Math.round(a)},${Math.round(i)},${Math.round(n)},${Math.round(r)}`}const s=e.x/t+n,o=e.width/t+s,l=r+(e.naturalHeight-e.y)/t,c=l-e.height/t;return`&rect=${Math.round(s)},${Math.round(c)},${Math.round(o)},${Math.round(l)}`}var AutoexportPreference;!function(e){e[e.none=0]="none",e[e.both=1]="both",e[e.png=2]="png",e[e.svg=3]="svg",e[e.inherit=4]="inherit"}(AutoexportPreference||(AutoexportPreference={}));const REGEX_TAGS={EXPR:/(#[\p{Letter}\p{Emoji_Presentation}\p{Number}\/_-]+)/gu,getResList:e=>{const t=e.matchAll(REGEX_TAGS.EXPR);let a;const i=[];for(;!(a=t.next()).done;)i.push(a);return i},getTag:e=>e.value[1],isTag:e=>e.value[1]?.startsWith("#")},REGEX_LINK={EXPR:/(!)?(\[\[([^|\]]+)\|?([^\]]+)?]]|\[([^\]]*)]\(((?:[^\(\)]|\([^\(\)]*\))*)\))(\{(\d+)\})?/g,getResList:e=>{const t=e.matchAll(REGEX_LINK.EXPR);let a;const i=[];for(;!(a=t.next()).done;)i.push(a);return i},getRes:e=>e.matchAll(REGEX_LINK.EXPR),isTransclusion:e=>!!e.value[1],getLink:e=>e.value[3]?e.value[3]:e.value[6],isWikiLink:e=>!!e.value[3],getAliasOrLink:e=>REGEX_LINK.isWikiLink(e)?e.value[4]?e.value[4]:e.value[3]:e.value[5]?e.value[5]:e.value[6],getWrapLength:(e,t)=>{const a=parseInt(e.value[8]);return isNaN(a)?t>0?t:null:a}},DRAWING_REG=/\n##? Drawing\n[^`]*(```json\n)([\s\S]*?)```\n/gm,DRAWING_REG_FALLBACK=/\n##? Drawing\n(```json\n)?(.*)(```)?(%%)?/gm,DRAWING_COMPRESSED_REG=/(\n##? Drawing\n[^`]*(?:```compressed\-json\n))([\s\S]*?)(```\n)/gm,DRAWING_COMPRESSED_REG_FALLBACK=/(\n##? Drawing\n(?:```compressed\-json\n)?)(.*)((```)?(%%)?)/gm,REG_LINKINDEX_HYPERLINK=/^\w+:\/\//,isCompressedMD=e=>null!==e.match(/```compressed\-json\n/gm),getDecompressedScene=e=>{let t,a=e.matchAll(DRAWING_COMPRESSED_REG);return t=a.next(),t.done&&(a=e.matchAll(DRAWING_COMPRESSED_REG_FALLBACK),t=a.next()),t.value&&t.value.length>1?[decompress(t.value[2]),t]:[null,t]},changeThemeOfExcalidrawMD=e=>{const t=isCompressedMD(e);let a=t?getDecompressedScene(e)[0]:e;return a?(isObsidianThemeDark?1===(a.match(/"theme"\s*:\s*"light"\s*,/g)||[]).length&&(a=a.replace(/"theme"\s*:\s*"light"\s*,/,'"theme": "dark",')):1===(a.match(/"theme"\s*:\s*"dark"\s*,/g)||[]).length&&(a=a.replace(/"theme"\s*:\s*"dark"\s*,/,'"theme": "light",')),t?e.replace(DRAWING_COMPRESSED_REG,`$1${compress(a)}$3`):a):e};function getJSON(e){let t,a;if(isCompressedMD(e)){const[t,a]=getDecompressedScene(e);return t?{scene:t.substring(0,t.lastIndexOf("}")+1),pos:a.value.index}:{scene:e,pos:a.value?a.value.index:0}}if(t=e.matchAll(DRAWING_REG),a=t.next(),a.done&&(t=e.matchAll(DRAWING_REG_FALLBACK),a=t.next()),a.value&&a.value.length>1){const e=a.value[2];return{scene:e.substr(0,e.lastIndexOf("}")+1),pos:a.value.index}}return{scene:e,pos:a.value?a.value.index:0}}async function getMarkdownDrawingSectionAsync(e,t){return t?`## Drawing\n\`\`\`compressed-json\n${await compressAsync(e)}\n\`\`\`\n%%`:`## Drawing\n\`\`\`json\n${e}\n\`\`\`\n%%`}function getMarkdownDrawingSection(e,t){return t?`## Drawing\n\`\`\`compressed-json\n${compress(e)}\n\`\`\`\n%%`:`## Drawing\n\`\`\`json\n${e}\n\`\`\`\n%%`}const RE_EXCALIDRAWDATA_WITHSECTION_OK=/^(#\n+)%%\n+# Excalidraw Data(?:\n|$)/m,RE_EXCALIDRAWDATA_WITHSECTION_NOTOK=/#\n+%%\n+# Excalidraw Data(?:\n|$)/m,RE_EXCALIDRAWDATA_NOSECTION_OK=/^(%%\n+)?# Excalidraw Data(?:\n|$)/m,RE_TEXTELEMENTS_WITHSECTION_OK=/^#\n+%%\n+##? Text Elements(?:\n|$)/m,RE_TEXTELEMENTS_WITHSECTION_NOTOK=/#\n+%%\n+##? Text Elements(?:\n|$)/m,RE_TEXTELEMENTS_NOSECTION_OK=/^(%%\n+)?##? Text Elements(?:\n|$)/m,RE_EXCALIDRAWDATA_FALLBACK_1=/(.*)%%\n+# Excalidraw Data(?:\n|$)/m,RE_EXCALIDRAWDATA_FALLBACK_2=/(.*)# Excalidraw Data(?:\n|$)/m,RE_TEXTELEMENTS_FALLBACK_1=/(.*)%%\n+##? Text Elements(?:\n|$)/m,RE_TEXTELEMENTS_FALLBACK_2=/(.*)##? Text Elements(?:\n|$)/m,RE_DRAWING=/^(%%\n+)?##? Drawing\n/m;function getExcalidrawMarkdownHeader(e){const t=e.search(RE_DRAWING);t>0&&(e=e.substring(0,t));const a=e.match(RE_EXCALIDRAWDATA_WITHSECTION_OK);let i=a?.index??-1,n=!1;if(i>0&&(i+=a[1].length),-1===i&&(i=e.search(RE_EXCALIDRAWDATA_WITHSECTION_NOTOK),i>0&&(n=!0)),-1===i&&(i=e.search(RE_EXCALIDRAWDATA_NOSECTION_OK)),-1===i){const t=e.match(RE_EXCALIDRAWDATA_FALLBACK_1);t&&Boolean(t[1])&&(i=t.index+t[1].length)}if(-1===i){const t=e.match(RE_EXCALIDRAWDATA_FALLBACK_2);t&&Boolean(t[1])&&(i=t.index+t[1].length)}if(-1===i&&(i=e.search(RE_TEXTELEMENTS_WITHSECTION_OK),i>0&&(i+=2)),-1===i&&(i=e.search(RE_TEXTELEMENTS_WITHSECTION_NOTOK),i>0&&(n=!0)),-1===i&&(i=e.search(RE_TEXTELEMENTS_NOSECTION_OK)),-1===i){const t=e.match(RE_TEXTELEMENTS_FALLBACK_1);t&&Boolean(t[1])&&(i=t.index+t[1].length)}if(-1===i){const t=e.match(RE_TEXTELEMENTS_FALLBACK_2);t&&Boolean(t[1])&&(i=t.index+t[1].length)}return-1===i&&t>0&&(i=t),-1===i?{header:e.endsWith("\n")?e:e+"\n",shouldFixTrailingHashtag:n,processingOk:!1}:{header:e.substring(0,i),shouldFixTrailingHashtag:n,processingOk:!0}}const getExcalidrawMarkdownHeaderSection=(e,t)=>{const{header:a,shouldFixTrailingHashtag:i,processingOk:n}=getExcalidrawMarkdownHeader(e);if(!n)return a;const r=updateFrontmatterInString(a,t);return i?r+"\n#\n":r.endsWith("\n")?a:a+"\n"};class ExcalidrawData{plugin;view;textElements=null;scene=null;deletedElements=[];file=null;app;showLinkBrackets;linkPrefix;embeddableTheme="auto";urlPrefix;autoexportPreference=AutoexportPreference.inherit;textMode=TextMode.raw;loaded=!1;elementLinks=null;files=null;equations=null;mermaids=null;compatibilityMode=!1;textElementCommentedOut=!1;selectedElementIds={};constructor(e,t){this.plugin=e,this.view=t,this.app=this.plugin.app,this.files=new Map,this.equations=new Map,this.mermaids=new Map}destroy(){this.textElements=null,this.scene=null,this.deletedElements=[],this.file=null,this.app=null,this.showLinkBrackets=null,this.linkPrefix=null,this.embeddableTheme=null,this.urlPrefix=null,this.autoexportPreference=null,this.textMode=null,this.loaded=!1,this.elementLinks=null,this.files=null,this.equations=null,this.mermaids=null,this.compatibilityMode=null,this.textElementCommentedOut=null,this.selectedElementIds=null}initializeNonInitializedFields(){if(!this.scene||!this.scene.elements)return;const e=this.scene.source?.split("https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/")[1]??"1.8.16",t=this.scene.elements;for(const e of t){if("iframe"!==e.type||e.customData||(e.type="embeddable"),e.boundElements){const a=new Map;let i=!1;e.boundElements.forEach((e=>{if("text"===e.type)if(i){const a=t.find((t=>t.id===e.id));a&&(a.containerId=null)}else a.set(e.id,e.type),i=!0;else a.set(e.id,e.type)}));const n=Array.from(a,(([e,t])=>({id:e,type:t})));n.length!==e.boundElements.length&&(e.boundElements=n)}e.boundElementIds&&(e.boundElements||(e.boundElements=[]),e.boundElements=e.boundElements.concat(e.boundElementIds.map((e=>({type:"arrow",id:e})))),delete e.boundElementIds),"text"!==e.type||e.containerId||(e.containerId=null),null===e.x&&(e.x=0),null===e.y&&(e.y=0),null===e.startBinding?.focus&&(e.startBinding.focus=0),null===e.endBinding?.focus&&(e.endBinding.focus=0),null===e.fontSize&&(e.fontSize=20),"text"!==e.type||e.hasOwnProperty("autoResize")||(e.autoResize=!0),"text"!==e.type||e.hasOwnProperty("lineHeight")||(e.lineHeight=getLineHeight(e.fontFamily)),"image"!==e.type||e.hasOwnProperty("roundness")||(e.roundness=null)}try{t.filter((e=>"text"===e.type&&e.containerId&&t.some((t=>t.id===e.containerId&&t.boundElements.length>0&&t.boundElements.some((t=>"text"===t.type&&t.id!==e.id&&t.id.length>8)))))).forEach((e=>{try{const a=t.filter((t=>t.id===e.containerId))[0],i=a.boundElements.filter((e=>!("text"===e.type&&!t.some((t=>t.id===e.id)))));a.boundElements=[{id:e.id,type:"text"}].concat(i)}catch(e){}}));const a=!isVersionNewerThanOther(e,"1.8.16");t.filter((e=>e.boundElements&&e.boundElements.length>0)).forEach((e=>{a&&!e.customData?.legacyTextWrap&&addAppendUpdateCustomData(e,{legacyTextWrap:!0});const i=e.boundElements.filter((e=>t.some((t=>t.id===e.id))));i.length!==e.boundElements.length&&(e.boundElements=i)})),t.filter((e=>"text"===e.type&&e.containerId&&!t.some((t=>t.id===e.containerId)))).forEach((e=>{e.containerId=null}))}catch{}}async loadData(e,t,a){if(!t)return!1;if(this.loaded=!1,this.selectedElementIds={},this.textElements=new Map,this.elementLinks=new Map,this.file!==t&&(this.files.clear(),this.equations.clear(),this.mermaids.clear()),this.file=t,this.compatibilityMode=!1,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.setAutoexportPreferences(),this.setembeddableThemePreference(),this.scene=null,this.plugin.settings.syncExcalidraw){const e=`${t.path.substring(0,t.path.lastIndexOf(".md"))}.excalidraw`,a=this.app.vault.getAbstractFileByPath(e);if(a&&a instanceof obsidian_module.TFile&&a.stat.mtime>t.stat.mtime){const e=await this.app.vault.read(a);this.scene=JSON.parse(e)}}let i=null;i=(()=>{const t=getJSON(e);if(-1===t.pos)throw new Error("Excalidraw JSON not found in the file");return this.scene||(this.scene=JSON_parse(t.scene)),t})(),this.deletedElements=this.scene.elements.filter((e=>e.isDeleted)),this.scene.elements=this.scene.elements.filter((e=>!e.isDeleted));const n=window.setTimeout((()=>{new obsidian_module.Notice(t$d("FONT_LOAD_SLOW"),15e3).noticeEl.oncontextmenu=()=>{displayFontMessage(this.app)}}),5e3);if(await loadSceneFonts(this.scene.elements),clearTimeout(n),this.scene.files||(this.scene.files={}),hasExportTheme(this.plugin,this.file)?this.scene.appState.theme=getExportTheme(this.plugin,this.file,"light"):this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.scene.appState.hasOwnProperty("previousGridSize")&&(null===this.scene.appState.gridSize?(this.scene.appState.gridSize=this.scene.appState.previousGridSize,this.scene.appState.gridModeEnabled=!1):this.scene.appState.gridModeEnabled=!0,delete this.scene.appState.previousGridSize),this.scene.appState?.gridColor?.hasOwnProperty("MajorGridFrequency")&&(this.scene.appState.gridColor.MajorGridFrequency>1&&(this.scene.gridStep=this.scene.appState.gridColor.MajorGridFrequency),delete this.scene.appState.gridColor.MajorGridFrequency),this.scene?.elements?.some((e=>"iframe"===e.type&&!e.customData))){const e=new MultiOptionConfirmationPrompt(this.plugin,"This file contains embedded frames which will be migrated to a newer version for compatibility with excalidraw.com.
    🔄 If you're using Obsidian on multiple devices, you may proceed now, but please, before opening this file on your other devices, update Excalidraw on those as well.
    🔍 More info is available here.
    🌐 Translate.");if(e.contentEl.focus(),!await e.waitForClose)throw new Error(ERROR_IFRAME_CONVERSION_CANCELED)}this.initializeNonInitializedFields();let r=(e=e.substring(0,i.pos)).search(RE_EXCALIDRAWDATA_NOSECTION_OK);if(-1===r&&(r=e.search(RE_EXCALIDRAWDATA_FALLBACK_2)),-1===r&&(r=e.search(RE_TEXTELEMENTS_NOSECTION_OK)),-1===r&&(r=e.search(RE_TEXTELEMENTS_FALLBACK_2)),-1===r)return await this.setTextMode(a,!1),this.loaded=!0,!0;const s=(e=e.slice(r)).match(/^((%%\n*)?# Excalidraw Data\n\n?## Text Elements(?:\n|$))/m)??e.match(/^((%%\n*)?##? Text Elements(?:\n|$))/m),o=s?s[0]:e.match(/(.*##? Text Elements(?:\n|$))/m)[0];let l;e=e.slice(o.length),this.textElementCommentedOut=o.startsWith("%%\n"),r=0;const c=new Map,d=e.indexOf("## Element Links\n"),h=e.indexOf("# Element Links\n"),p=(d>-1?e.substring(d+17):e.substring(h+16)).matchAll(/^(.{8}):\s*(.*)$/gm);for(;!(l=p.next()).done;)c.set(l.value[1],l.value[2]);const u=/^%%\*\*\*>>>text element-link:(\[\[[^<*\]]*]])<<<\*\*\*%%/gm;let m=e.matchAll(/\s\^(.{8})[\n]+/g);for(;!(l=m.next()).done;){let t=e.substring(r,l.value.index);const a=l.value[1],i=this.scene.elements.filter((e=>e.id===a))[0];if(i)if("text"!==i.type)i.link!==t&&(i.link=t,i.version++,i.versionNonce++),this.elementLinks.set(a,t);else{const e=t.matchAll(u).next();e.done||(t=t.replace(u,""),i.link=e.value[1]),c.has(a)&&(i.link=c.get(a),c.delete(a));const n=await this.parse(t);i.rawText=t,this.textElements.set(a,{raw:t,parsed:n.parsed}),n.link&&(i.link=n.link),!i||i.rawText&&""!==i.rawText||(i.rawText=t)}r=l.value.index+12}for(const[e,t]of c){const a=this.scene.elements.filter((t=>t.id===e))[0];a&&(a.link=t,a.version++,a.versionNonce++,this.elementLinks.set(e,t))}const g=e.indexOf("## Embedded Files\n"),f=e.indexOf("# Embedded files\n");if(g>-1||f>-1){const t=/([\w\d]*):\s*\!?\[\[([^\]]*)]]\s*(\{[^}]*})?\n/gm;for(m=(e=g>-1?e.substring(g+18):e.substring(f+17)).matchAll(t);!(l=m.next()).done;){const e=new EmbeddedFile(this.plugin,this.file.path,l.value[2],l.value[3]);this.setFile(l.value[1],e)}const a=/([\w\d]*):\s*((?:https?|file|ftps?):\/\/[^\s]*)\n/gm;for(m=e.matchAll(a);!(l=m.next()).done;){const e=new EmbeddedFile(this.plugin,null,l.value[2]);this.setFile(l.value[1],e)}const i=/([\w\d]*):\s*\$\$([\s\S]*?)(\$\$\s*\n)/gm;for(m=e.matchAll(i);!(l=m.next()).done;)this.setEquation(l.value[1],{latex:l.value[2],isLoaded:!1});const n=getMermaidImageElements(this.scene.elements);n.length>0&&!shouldRenderMermaid()?new obsidian_module.Notice("Mermaid images are only supported in Obsidian 1.4.14 and above. Please update Obsidian to see the mermaid images in this drawing. Obsidian mobile 1.4.14 currently only avaiable to Obsidian insiders",5e3):n.forEach((e=>this.setMermaid(e.fileId,{mermaid:getMermaidText(e),isLoaded:!1})))}return this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(a,!0),this.loaded=!0,!0}async loadLegacyData(e,t){return!!t&&(this.loaded=!1,this.selectedElementIds={},this.compatibilityMode=!0,this.file=t,this.textElements=new Map,this.elementLinks=new Map,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.setembeddableThemePreference(),this.scene=JSON.parse(e),this.scene.files||(this.scene.files={}),this.initializeNonInitializedFields(),this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.files.clear(),this.equations.clear(),this.mermaids.clear(),this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(TextMode.raw,!0),this.loaded=!0,!0)}async setTextMode(e,t=!1){this.scene&&(this.textMode=e,await this.updateSceneTextElements(t))}async updateSceneTextElements(e=!1){const t=arrayToMap(this.scene.elements),a=this.scene.elements?.filter((e=>"text"===e.type&&!e.isDeleted));for(const e of a){const a=getContainerElement(e,t),i=await this.getText(e.id)??e.originalText??e.text,{text:n,x:r,y:s,width:o,height:l}=refreshTextDimensions(e,a,t,i);try{e.originalText=i,e.text=n,e.x=r,e.y=s,e.width=o,e.height=l}catch(e){}}}async getText(e){const t=this.textElements.get(e);return t?this.textMode===TextMode.parsed?(t.parsed||this.textElements.set(e,{raw:t.raw,parsed:(await this.parse(t.raw)).parsed}),t.parsed):t.raw:null}findNewElementLinksInScene(){let e=!1;const t=this.scene.elements?.filter((e=>"text"!==e.type&&e.link&&!this.elementLinks.has(e.id)));if(0===t.length)return e;let a;for(const i of t)a=i.id,i.id.length>8&&(e=!0,a=nanoid(),updateElementIdsInScene(this.scene,i,a)),this.elementLinks.set(a,i.link);return e}findNewTextElementsInScene(e={}){this.selectedElementIds=e;const t=this.scene.elements?.filter((e=>"text"===e.type));let a,i=!1;for(const e of t)if(a=e.id,e.id.length>8){if(i=!0,a=nanoid(),this.selectedElementIds[e.id]&&(delete this.selectedElementIds[e.id],this.selectedElementIds[a]=!0),updateElementIdsInScene(this.scene,e,a),this.textElements.has(e.id)){const t=this.textElements.get(e.id);this.textElements.set(a,{raw:t.raw,parsed:t.parsed}),this.textElements.delete(e.id)}if(!this.textElements.has(a)){const t=e.rawText&&""!==e.rawText?e.rawText:e.text;this.textElements.set(a,{raw:t,parsed:null}),this.parseasync(a,t)}}else if(!this.textElements.has(e.id)){const t=e.rawText&&""!==e.rawText?e.rawText:e.text;this.textElements.set(a,{raw:t,parsed:null}),this.parseasync(a,t)}return i}updateElementLinksFromScene(){for(const e of this.elementLinks.keys()){const t=this.scene.elements?.filter((t=>"text"!==t.type&&t.id===e&&t.link));0===t.length?this.elementLinks.delete(e):this.elementLinks.set(e,t[0].link)}}async updateTextElementsFromScene(){for(const e of this.textElements.keys()){const t=this.scene.elements?.filter((t=>"text"===t.type&&t.id===e));if(0===t.length)this.textElements.delete(e);else{const a=await this.getText(e),i=this.scene.prevTextMode===TextMode.parsed?t[0].rawText:t[0].originalText??t[0].text;a!==(t[0].originalText??t[0].text)&&this.textElements.set(e,{raw:i,parsed:(await this.parse(i)).parsed})}}}async parseasync(e,t){this.textElements.set(e,{raw:t,parsed:(await this.parse(t)).parsed})}parseLinks(e,t,a){return e.substring(t,a.value.index)+(this.showLinkBrackets?"[[":"")+REGEX_LINK.getAliasOrLink(a)+(this.showLinkBrackets?"]]":"")}async getTransclusion(e){const t=getLinkParts(e,this.file),a=this.app.metadataCache.getFirstLinkpathDest(t.path,this.file.path);return await getTransclusion(t,this.app,a,this.plugin.settings.pageTransclusionCharLimit)}async parse(e){e=this.parseCheckbox(e);let t="",a=null,i=0;const n=REGEX_LINK.getRes(e);let r,s=!1,o=!1;for(e.match(REG_LINKINDEX_HYPERLINK)&&(a=e,o=!0);!(r=n.next()).done;){if(!a){const e=REGEX_LINK.getLink(r);a=e.match(REG_LINKINDEX_HYPERLINK)?e:`[[${e}]]`}if(REGEX_LINK.isTransclusion(r)){let a=this.parseCheckbox((await this.getTransclusion(REGEX_LINK.getLink(r))).contents).replaceAll(/%%[^%]*%%/gm,"");this.plugin.settings.removeTransclusionQuoteSigns&&(a=a.replaceAll(/\n\s*>\s?/gm,"\n")),t+=e.substring(i,r.value.index)+wrapTextAtCharLength(a,REGEX_LINK.getWrapLength(r,this.plugin.settings.wordWrappingDefault),this.plugin.settings.forceWrap)}else{const a=this.parseLinks(e,i,r);if(a&&(t+=a,!o&&!s)){const e=REGEX_LINK.getLink(r);e.match(REG_LINKINDEX_HYPERLINK)?o=!e.startsWith("cmd://"):s=!0}}i=r.value.index+r.value[0].length}return t+=e.substring(i,e.length),s&&(t=this.linkPrefix+t),o&&(t=this.urlPrefix+t),{parsed:t,link:a}}parseCheckbox(e){return this.plugin.settings.parseTODO?e.replaceAll(/^- \[\s] /g,`${this.plugin.settings.todo} `).replaceAll(/\n- \[\s] /g,`\n${this.plugin.settings.todo} `).replaceAll(/^- \[[^\s]] /g,`${this.plugin.settings.done} `).replaceAll(/\n- \[[^\s]] /g,`\n${this.plugin.settings.done} `):e}quickParse(e){if((e=>{const t=REGEX_LINK.getRes(e);let a;for(;!(a=t.next()).done;)if(REGEX_LINK.isTransclusion(a))return!0;return!1})(e))return[null,null];e=this.parseCheckbox(e);let t="",a=null,i=0;const n=REGEX_LINK.getRes(e);let r,s=!1,o=!1;for(e.match(REG_LINKINDEX_HYPERLINK)&&(a=e,o=!0);!(r=n.next()).done;){if(!a){const e=REGEX_LINK.getLink(r);a=e.match(REG_LINKINDEX_HYPERLINK)?e:`[[${e}]]`}const n=this.parseLinks(e,i,r);if(n&&(t+=n,!o&&!s)){const e=REGEX_LINK.getLink(r);e.match(REG_LINKINDEX_HYPERLINK)?o=!e.startsWith("cmd://"):s=!0}i=r.value.index+r.value[0].length}return t+=e.substring(i,e.length),s&&(t=this.linkPrefix+t),o&&(t=this.urlPrefix+t),[t,a]}disableCompression=!1;generateMDBase(e=[]){let t=this.textElementCommentedOut?"%%\n":"";t+="# Excalidraw Data\n\n## Text Elements\n",this.plugin.settings.addDummyTextElement&&(t+="\n^_dummy!_\n\n");const a=new Map;for(const e of this.textElements.keys()){const i=this.scene.elements.filter((t=>t.id===e));let n=this.textElements.get(e).raw;i&&1===i.length&&i[0].link&&i[0].rawText===i[0].originalText&&a.set(e,i[0].link),t+=`${n} ^${e}\n\n`}if(this.elementLinks.size>0||a.size>0){t+="## Element Links\n";for(const e of this.elementLinks.keys())t+=`${e}: ${this.elementLinks.get(e)}\n\n`;for(const e of a.keys())t+=`${e}: ${a.get(e)}\n\n`}if(t+=this.equations.size>0||this.files.size>0?"## Embedded Files\n":"",this.equations.size>0)for(const e of this.equations.keys())t+=`${e}: $$${this.equations.get(e).latex.trim()}$$\n\n`;if(this.files.size>0)for(const e of this.files.keys()){const a=/(^[^#\|]*)/,i=this.files.get(e);i.isHyperLink||i.isLocalLink?t+=`${e}: ${i.hyperlink}\n\n`:t+=`${e}: [[${i.file?i.linkParts.original.replace(a,this.app.metadataCache.fileToLinktext(i.file,this.file.path)):i.linkParts.original}]]${i.colorMap?" "+JSON.stringify(i.colorMap):""}\n\n`}return{outString:t,sceneJSONstring:JSON.stringify({type:this.scene.type,version:this.scene.version,source:this.scene.source,elements:this.scene.elements.concat(e),appState:this.scene.appState,files:this.scene.files},null,"\t")}}async generateMDAsync(e=[]){const{outString:t,sceneJSONstring:a}=this.generateMDBase(e);return t+(this.textElementCommentedOut?"":"%%\n")+await getMarkdownDrawingSectionAsync(a,!this.disableCompression&&this.plugin.settings.compress)}generateMDSync(e=[]){const{outString:t,sceneJSONstring:a}=this.generateMDBase(e);return t+(this.textElementCommentedOut?"":"%%\n")+getMarkdownDrawingSection(a,!this.disableCompression&&this.plugin.settings.compress)}async saveDataURLtoVault(e,t,a,i){const n=this.scene;let r=i;if(!r)switch(r=`Pasted Image ${window.moment().format("YYYYMMDDHHmmss_SSS")}`,t){case"image/png":default:r+=".png";break;case"image/jpeg":r+=".jpg";break;case"image/svg+xml":r+=".svg";break;case"image/gif":r+=".gif"}const s=await getBinaryFileFromDataURL(e);if(!s)return null;const o=await importFileToVault(this.app,r,s,this.file,this.view),l=new EmbeddedFile(this.plugin,this.file.path,o.path);return l.setImage({imgBase64:e,mimeType:t,size:{height:0,width:0},isDark:"dark"===n.appState?.theme,isSVGwithBitmap:"image/svg+xml"===t}),this.setFile(a,l),o}syncCroppedPDFs(){const e=this.scene,t=this.plugin.settings.pdfScale;e.elements.filter((e=>"image"===e.type&&e.crop&&!e.isDeleted)).forEach((e=>{const a=this.getFile(e.fileId);if(!a.file)return;if("pdf"!==a.file.extension)return;const i=a.linkParts.original.split("#")?.[1];if(!i||!i.startsWith("page=")||i.includes("rect"))return;const n=e.link?e.link.match(/&rect=\d*,\d*,\d*,\d*(.*)/)?.[1]:"",r=a.linkParts.original+getPDFRect({elCrop:e.crop,scale:t,customData:e.customData})+(n||"]]");e.link=`[[${r}`,this.elementLinks.set(e.id,e.link)}))}async syncFiles(){let e=!1;const t=this.scene,a=t.elements.filter((e=>"image"===e.type)),i=a.map((e=>e.fileId));if(this.files.forEach(((t,a)=>{i.contains(a)||(this.files.delete(a),e=!0)})),this.equations.forEach(((t,a)=>{i.contains(a)||(this.equations.delete(a),e=!0)})),this.mermaids.forEach(((t,a)=>{i.contains(a)||(this.mermaids.delete(a),e=!0)})),!t.files||0===Object.keys(t.files).length)return!1;const n=new Set;i.forEach(((i,r)=>{if(n.has(i)){const s=this.getFile(i),o=this.getEquation(i),l=this.getMermaid(i);if(s&&(s.isHyperLink||s.isLocalLink||s.file&&("md"!==s.file.extension||this.plugin.isExcalidrawFile(s.file))))return;if(l)return;if(getMermaidText(a[r]))return void this.setMermaid(i,{mermaid:getMermaidText(a[r]),isLoaded:!0});if(!s&&!o&&!l)return;const c=fileid();t.elements.filter((e=>e.fileId===i)).sort(((e,t)=>e.updatede.fileId===a)));this.hasFile(a)||this.hasEquation(a)||this.hasMermaid(a)||i.length>0||(e=!0,await this.saveDataURLtoVault(t.files[a].dataURL,t.files[a].mimeType,a,t.files[a].name))}return e}async syncElements(e,t){this.scene=e;let a=!1;return this.compatibilityMode||(a=await this.syncFiles(),this.scene.files={}),this.updateElementLinksFromScene(),a=a||this.syncCroppedPDFs()||this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.findNewElementLinksInScene(),await this.updateTextElementsFromScene(),a||this.findNewTextElementsInScene(t)}async updateScene(e){this.scene=JSON_parse(e),this.updateElementLinksFromScene();const t=this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.setembeddableThemePreference()||this.findNewElementLinksInScene();return await this.updateTextElementsFromScene(),!(!t&&!this.findNewTextElementsInScene()||(await this.updateSceneTextElements(),0))}getRawText(e){return this.textElements.get(e)?.raw}getParsedText(e){const t=this.textElements.get(e);return t?t.parsed:null}setTextElement(e,t,a){const[i,n]=this.quickParse(t);return i?(this.textElements.set(e,{raw:t,parsed:i}),[i,n]):(this.parse(t).then((i=>{const n=i.parsed;this.textElements.set(e,{raw:t,parsed:n}),n&&a(n)})),[null,null])}async addTextElement(e,t,a){const i=await this.parse(a);return this.textElements.set(e,{raw:a,parsed:i.parsed}),{parseResult:i.parsed,link:i.link}}deleteTextElement(e){this.textElements.delete(e)}getOpenMode(){const e=this.app.metadataCache.getFileCache(this.file);let t="view-mobile"===this.plugin.settings.defaultMode?DEVICE.isPhone?"view":"normal":this.plugin.settings.defaultMode;switch(e?.frontmatter&&null!==e.frontmatter[FRONTMATTER_KEYS["default-mode"].name]&&void 0!==e.frontmatter[FRONTMATTER_KEYS["default-mode"].name]&&(t=e.frontmatter[FRONTMATTER_KEYS["default-mode"].name]),t){case"zen":return{viewModeEnabled:!1,zenModeEnabled:!0};case"view":return{viewModeEnabled:!0,zenModeEnabled:!1};default:return{viewModeEnabled:!1,zenModeEnabled:!1}}}getLinkOpacity(){const e=this.app.metadataCache.getFileCache(this.file);let t=this.plugin.settings.linkOpacity;return e?.frontmatter&&null!==e.frontmatter[FRONTMATTER_KEYS["linkbutton-opacity"].name]&&void 0!==e.frontmatter[FRONTMATTER_KEYS["linkbutton-opacity"].name]&&(t=e.frontmatter[FRONTMATTER_KEYS["linkbutton-opacity"].name]),t}getOnLoadScript(){const e=this.app.metadataCache.getFileCache(this.file);return e?.frontmatter&&null!==e.frontmatter[FRONTMATTER_KEYS["onload-script"].name]&&void 0!==e.frontmatter[FRONTMATTER_KEYS["onload-script"].name]?e.frontmatter[FRONTMATTER_KEYS["onload-script"].name]:null}setLinkPrefix(){const e=this.linkPrefix,t=this.app.metadataCache.getFileCache(this.file);return t?.frontmatter&&void 0!==t.frontmatter[FRONTMATTER_KEYS["link-prefix"].name]?this.linkPrefix=t.frontmatter[FRONTMATTER_KEYS["link-prefix"].name]??"":this.linkPrefix=this.plugin.settings.linkPrefix,e!==this.linkPrefix}setUrlPrefix(){const e=this.urlPrefix,t=this.app.metadataCache.getFileCache(this.file);return t?.frontmatter&&void 0!==t.frontmatter[FRONTMATTER_KEYS["url-prefix"].name]?this.urlPrefix=t.frontmatter[FRONTMATTER_KEYS["url-prefix"].name]??"":this.urlPrefix=this.plugin.settings.urlPrefix,e!==this.urlPrefix}setAutoexportPreferences(){const e=this.app.metadataCache.getFileCache(this.file);if(e?.frontmatter&&null!==e.frontmatter[FRONTMATTER_KEYS.autoexport.name]&&void 0!==e.frontmatter[FRONTMATTER_KEYS.autoexport.name])switch(e.frontmatter[FRONTMATTER_KEYS.autoexport.name].toLowerCase()){case"none":this.autoexportPreference=AutoexportPreference.none;break;case"both":this.autoexportPreference=AutoexportPreference.both;break;case"png":this.autoexportPreference=AutoexportPreference.png;break;case"svg":this.autoexportPreference=AutoexportPreference.svg;break;default:this.autoexportPreference=AutoexportPreference.inherit}else this.autoexportPreference=AutoexportPreference.inherit}setembeddableThemePreference(){const e=this.embeddableTheme,t=this.app.metadataCache.getFileCache(this.file);return t?.frontmatter&&null!==t.frontmatter[FRONTMATTER_KEYS["embeddable-theme"].name]&&void 0!==t.frontmatter[FRONTMATTER_KEYS["embeddable-theme"].name]?(this.embeddableTheme=t.frontmatter[FRONTMATTER_KEYS["embeddable-theme"].name].toLowerCase(),EMBEDDABLE_THEME_FRONTMATTER_VALUES.includes(this.embeddableTheme)||(this.embeddableTheme="default")):t?.frontmatter&&null!==t.frontmatter[FRONTMATTER_KEYS["iframe-theme"].name]&&void 0!==t.frontmatter[FRONTMATTER_KEYS["iframe-theme"].name]?(this.embeddableTheme=t.frontmatter[FRONTMATTER_KEYS["iframe-theme"].name].toLowerCase(),EMBEDDABLE_THEME_FRONTMATTER_VALUES.includes(this.embeddableTheme)||(this.embeddableTheme="default")):this.embeddableTheme=this.plugin.settings.iframeMatchExcalidrawTheme?"auto":"default",e!==this.embeddableTheme}setShowLinkBrackets(){const e=this.showLinkBrackets,t=this.app.metadataCache.getFileCache(this.file);return t?.frontmatter&&null!==t.frontmatter[FRONTMATTER_KEYS["link-brackets"].name]&&void 0!==t.frontmatter[FRONTMATTER_KEYS["link-brackets"].name]?this.showLinkBrackets=!1!==t.frontmatter[FRONTMATTER_KEYS["link-brackets"].name]:this.showLinkBrackets=this.plugin.settings.showLinkBrackets,e!==this.showLinkBrackets}setFile(e,t){if(!t)return;if(this.files.set(e,t),t.isHyperLink||t.isLocalLink)return void this.plugin.filesMaster.set(e,{isHyperLink:t.isHyperLink,isLocalLink:t.isLocalLink,path:t.hyperlink,blockrefData:null,hasSVGwithBitmap:t.isSVGwithBitmap});if(!t.file)return;const a=t.linkParts.original.split("#");this.plugin.filesMaster.set(e,{isHyperLink:!1,isLocalLink:!1,path:t.file.path+(t.shouldScale()?"":"|100%"),blockrefData:1===a.length?null:a[1],hasSVGwithBitmap:t.isSVGwithBitmap,colorMapJSON:t.colorMap?JSON.stringify(t.colorMap):null})}getFiles(){return Object.values(this.files)}getFile(e){let t=this.files.get(e);if(t)return t;const a=this.plugin.filesMaster.get(e);return a?(t=new EmbeddedFile(this.plugin,this.file.path,a.blockrefData?a.path+"#"+a.blockrefData:a.path,a.colorMapJSON),this.files.set(e,t),t):t}getFileEntries(){return this.files.entries()}deleteFile(e){this.files.delete(e)}hasFile(e){if(this.files.has(e))return!0;if(this.plugin.filesMaster.has(e)){const t=this.plugin.filesMaster.get(e);if(t.isHyperLink||t.isLocalLink)return this.files.set(e,new EmbeddedFile(this.plugin,this.file.path,t.path)),!0;const a=t.path.split("|")[0].split("#")[0];if(!this.app.vault.getAbstractFileByPath(a))return this.plugin.filesMaster.delete(e),!0;const i=t.path.endsWith("100%"),n=new EmbeddedFile(this.plugin,this.file.path,(t.blockrefData?a+"#"+t.blockrefData:a)+(i?"|100%":""),t.colorMapJSON);return this.files.set(e,n),!0}return!1}setEquation(e,t){this.equations.set(e,{latex:t.latex,isLoaded:t.isLoaded}),this.plugin.equationsMaster.set(e,t.latex)}getEquation(e){let t=this.equations.get(e);if(t)return t;const a=this.plugin.equationsMaster.get(e);return a?(this.equations.set(e,{latex:a,isLoaded:!1}),{latex:a,isLoaded:!1}):t}getEquationEntries(){return this.equations?.entries()}deleteEquation(e){this.equations.delete(e)}hasEquation(e){return!!this.equations.has(e)||!!this.plugin.equationsMaster.has(e)&&(this.equations.set(e,{latex:this.plugin.equationsMaster.get(e),isLoaded:!1}),!0)}setMermaid(e,t){this.mermaids.set(e,{mermaid:t.mermaid,isLoaded:t.isLoaded}),this.plugin.mermaidsMaster.set(e,t.mermaid)}getMermaid(e){let t=this.mermaids.get(e);if(t)return t;const a=this.plugin.mermaidsMaster.get(e);return a?(this.mermaids.set(e,{mermaid:a,isLoaded:!1}),{mermaid:a,isLoaded:!1}):t}getMermaidEntries(){return this.mermaids.entries()}deleteMermaid(e){this.mermaids.delete(e)}hasMermaid(e){return!!this.mermaids.has(e)||!!this.plugin.mermaidsMaster.has(e)&&(this.mermaids.set(e,{mermaid:this.plugin.mermaidsMaster.get(e),isLoaded:!1}),!0)}}const getTransclusion=async(e,t,a,i)=>{if(!e.path)return{contents:e.original.trim(),lineNum:0};if(!(a&&a instanceof obsidian_module.TFile))return{contents:e.original.trim(),lineNum:0};const n=await t.vault.read(a);if(!e.ref)return i?{contents:n.substring(0,i).trim(),lineNum:0}:{contents:n.trim(),lineNum:0};const r=(await t.metadataCache.blockCache.getForFile({isCancelled:()=>!1},a)).blocks.filter((e=>"comment"!==e.node.type));if(!r)return{contents:e.original.trim(),lineNum:0};if(e.isBlockRef){let t=r.filter((t=>t.node.id==e.ref))[0]?.node;if(!t)return{contents:e.original.trim(),lineNum:0};["blockquote"].includes(t.type)&&(t=t.children[0]);const a=t.position.start.offset,i=t.position.start.line,s=t.position.end.offset;return{contents:n.substring(a,s).replaceAll(/ \^\S*$|^\^\S*$/gm,"").trim(),lineNum:i}}const s=r.filter((e=>0===e.display.search(/^#+\s/)));let o=null,l=0,c=null,d=1;for(let t=0;td;)e++;return e===s.length&&s[e-1].node.depth>d?{leadingHashes:"#".repeat(d)+" ",contents:n.substring(o).trim(),lineNum:l}:(c=s[e].node.position.start.offset-1,{leadingHashes:"#".repeat(d)+" ",contents:n.substring(o,c).trim(),lineNum:l})}const a=s[t].node.children[0],i=s[t].node.data?.hProperties?.dataHeading,r=a?.children;!o&&(cleanBlockRef(a?.value)===e.ref||cleanBlockRef(a?.title)===e.ref||cleanBlockRef(i)===e.ref||r&&cleanBlockRef(r[0]?.value)===e.ref||cleanSectionHeading(a?.value)===e.ref||cleanSectionHeading(a?.title)===e.ref||cleanSectionHeading(i)===e.ref||r&&cleanSectionHeading(r[0]?.value)===e.ref)&&(o=s[t].node.children[0]?.position.start.offset,d=s[t].node.depth,l=s[t].node.children[0]?.position.start.line)}return o?{leadingHashes:"#".repeat(d)+" ",contents:n.substring(o).trim(),lineNum:l}:{contents:e.original.trim(),lineNum:0}};class ContentSearcher{contentDiv;searchBar;prevButton;nextButton;exportMarkdown;showHideButton;customElemenentContainer;inputContainer;customElement;hitCount;searchBarWrapper;constructor(e,t){this.contentDiv=e,this.customElement=t,this.createSearchElements(),this.setupEventListeners(),e.prepend(this.getSearchBarWrapper())}createSearchElements(){this.searchBarWrapper=createDiv("excalidraw-search document-search-container");const e=createDiv("document-search");this.inputContainer=createDiv("search-input-container document-search-input"),this.searchBar=createEl("input",{type:"text",placeholder:"Find..."}),this.hitCount=createDiv("document-search-count"),this.inputContainer.appendChild(this.searchBar),this.inputContainer.appendChild(this.hitCount);const t=createDiv("document-search-buttons");this.prevButton=createEl("button",{cls:["clickable-icon","document-search-button"],attr:{"aria-label":t$d("SEARCH_PREVIOUS"),"data-tooltip-position":"top"},type:"button"}),this.prevButton.innerHTML=obsidian_module.getIcon("arrow-up").outerHTML,this.nextButton=createEl("button",{cls:["clickable-icon","document-search-button"],attr:{"aria-label":t$d("SEARCH_NEXT"),"data-tooltip-position":"top"},type:"button"}),this.nextButton.innerHTML=obsidian_module.getIcon("arrow-down").outerHTML,this.exportMarkdown=createEl("button",{cls:["clickable-icon","document-search-button"],attr:{"aria-label":t$d("SEARCH_COPY_TO_CLIPBOARD_ARIA"),"data-tooltip-position":"top"},type:"button"}),this.exportMarkdown.innerHTML=obsidian_module.getIcon("clipboard-copy").outerHTML,this.showHideButton=createEl("button",{cls:["clickable-icon","document-search-button","search-visible"],attr:{"aria-label":t$d("SEARCH_SHOWHIDE_ARIA"),"data-tooltip-position":"top"},type:"button"}),this.showHideButton.innerHTML=obsidian_module.getIcon("minimize-2").outerHTML,t.appendChild(this.prevButton),t.appendChild(this.nextButton),t.appendChild(this.exportMarkdown),t.appendChild(this.showHideButton),e.appendChild(this.inputContainer),e.appendChild(t),this.searchBarWrapper.appendChild(e),this.customElemenentContainer=createDiv(),this.customElement&&(this.customElemenentContainer.appendChild(this.customElement),this.searchBarWrapper.appendChild(this.customElemenentContainer))}setupEventListeners(){this.nextButton.onclick=()=>this.navigateSearchResults("next"),this.prevButton.onclick=()=>this.navigateSearchResults("previous"),this.exportMarkdown.onclick=()=>{const e=this.contentDiv.outerHTML,t=e.indexOf("([^<]+)`,"g");return e.replaceAll(a,`$1`)}let i=a(t>-1?e.substring(t):e,1);i=a(i,2),i=a(i,3),i=a(i,4),i=i.replaceAll(/
    ([^<]+)<\/div>/g,"
    $1
    ");const n=obsidian_module.htmlToMarkdown(i);window.navigator.clipboard.writeText(n),new obsidian_module.Notice(t$d("SEARCH_COPIED_TO_CLIPBOARD"))},this.showHideButton.onclick=()=>{const e=e=>{this.inputContainer.style.opacity=e,this.prevButton.style.opacity=e,this.nextButton.style.opacity=e,this.exportMarkdown.style.opacity=e,this.customElemenentContainer.style.opacity=e};this.showHideButton.hasClass("search-visible")?(this.showHideButton.removeClass("search-visible"),this.showHideButton.addClass("search-hidden"),this.searchBarWrapper.style.backgroundColor="transparent",e("0"),this.showHideButton.innerHTML=obsidian_module.getIcon("maximize-2").outerHTML):(this.showHideButton.removeClass("search-hidden"),this.showHideButton.addClass("search-visible"),this.searchBarWrapper.style.backgroundColor=null,e(null),this.showHideButton.innerHTML=obsidian_module.getIcon("minimize-2").outerHTML)},this.searchBar.addEventListener("input",(e=>{this.clearHighlights();const t=e.target.value;if(t&&t.length>0){this.highlightSearchTerm(t);const e=this.contentDiv.querySelectorAll("mark.search-highlight").length;this.hitCount.textContent=e>0?`1 / ${e}`:"",setTimeout((()=>this.navigateSearchResults("next")))}else this.hitCount.textContent=""})),this.searchBar.addEventListener("keydown",(e=>{(e.ctrlKey||e.metaKey)&&"f"===e.key?(e.preventDefault(),this.searchBar.focus()):"Enter"===e.key&&(e.preventDefault(),this.navigateSearchResults(e.shiftKey?"previous":"next"))}))}getSearchBarWrapper(){return this.searchBarWrapper}highlightSearchTerm(e){const t=document.createTreeWalker(this.contentDiv,NodeFilter.SHOW_TEXT,{acceptNode:t=>t.nodeValue.toLowerCase().includes(e.toLowerCase())?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}),a=[];for(;t.nextNode();)a.push(t.currentNode);a.forEach((t=>{const a=t.nodeValue,i=document.createDocumentFragment();let n,r=0;const s=new RegExp(escapeRegExp(e),"gi");for(;null!==(n=s.exec(a));){const e=document.createTextNode(a.slice(r,n.index)),t=document.createElement("mark");t.className="search-highlight",t.textContent=n[0],t.classList.add("search-result"),i.appendChild(e),i.appendChild(t),r=s.lastIndex}i.appendChild(document.createTextNode(a.slice(r))),t.replaceWith(i)}))}clearHighlights(){this.contentDiv.querySelectorAll("mark.search-highlight").forEach((e=>{e.outerHTML=e.innerHTML}))}navigateSearchResults(e){const t=Array.from(this.contentDiv.querySelectorAll("mark.search-highlight"));if(0===t.length)return;const a=t.findIndex((e=>e.classList.contains("active-highlight")));-1!==a&&(t[a].classList.remove("active-highlight"),t[a].style.border="none");let i=0;"next"===e?i=a===t.length-1?0:a+1:"previous"===e&&(i=0===a?t.length-1:a-1);const n=t[i];n.classList.add("active-highlight"),this.expandParentDetails(n),setTimeout((()=>{n.scrollIntoView({behavior:"smooth",block:"nearest"})}),100),this.hitCount.textContent=`${i+1} / ${t.length}`}expandParentDetails(e){let t=e.parentElement;for(;t;)"DETAILS"===t.tagName&&t.setAttribute("open",""),t=t.parentElement}}const URL$1="https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/index-new.md";class ScriptInstallPrompt extends obsidian_module.Modal{plugin;contentDiv;constructor(e){super(e.app),this.plugin=e}async onOpen(){this.contentEl.classList.add("excalidraw-scriptengine-install"),this.contentDiv=document.createElement("div"),this.contentEl.appendChild(this.contentDiv),new ContentSearcher(this.contentDiv),this.containerEl.classList.add("excalidraw-scriptengine-install");try{const e=await obsidian_module.request({url:URL$1});if(!e)return new obsidian_module.Notice("Error opening the Excalidraw Script Store page. Please double check that you can access the website. I've logged the link in developer console (press CTRL+SHIFT+i)",5e3),log$2(URL$1),void this.close();await obsidian_module.MarkdownRenderer.render(this.plugin.app,e,this.contentDiv,"",this.plugin),this.contentDiv.querySelectorAll("h1[data-heading],h2[data-heading],h3[data-heading]").forEach((e=>{e.setAttribute("id",e.getAttribute("data-heading"))})),this.contentDiv.querySelectorAll("a.internal-link").forEach((e=>{e.removeAttribute("target")}))}catch(e){errorlog({where:"ScriptInstallPrompt.onOpen",error:e}),new obsidian_module.Notice("Could not open ScriptEngine repository"),this.close()}}onClose(){this.contentEl.empty()}}function r$e(e){var t,a,i="";if("string"==typeof e||"number"==typeof e)i+=e;else if("object"==typeof e)if(Array.isArray(e)){var n=e.length;for(t=0;te.updatePinnedCustomPens())),this.plugin.saveSettings();const e=this.plugin.settings.customPens[this.pen],t=this.view.excalidrawAPI;setPen(e,t),t.setActiveTool({type:"freedraw"})}}async createForm(){const e=e=>{let t="";if(COLOR_NAMES.has(e))return[COLOR_NAMES.get(e),t];const a=(new Option).style;if(a.color=e,a.color){const e=a.color.match(/^[^\d]*(\d*)[^\d]*(\d*)[^\d]*(\d*)[^\d]*([\d\.]*)?/);return e?(t=e[4]?(0|Math.round(255*parseFloat(e[4]))).toString(16).padStart(2,"0"):"",[`#${(0|parseInt(e[1])).toString(16).padStart(2,"0")}${(0|parseInt(e[2])).toString(16).padStart(2,"0")}${(0|parseInt(e[3])).toString(16).padStart(2,"0")}`,t]):[null,t]}return[null,t]},t=this.plugin.settings.customPens[this.pen],a=this.contentEl;let i,n,r,s,o;a.createEl("h1",{text:"Pen settings"}),new obsidian_module.Setting(a).setName("Pen type").setDesc("Select type of pen").addDropdown((e=>{e.addOption("default","Excalidraw Default").addOption("highlighter","Highlighter").addOption("finetip","Fine tip pen").addOption("fountain","Fountain pen").addOption("marker","Marker with Outline").addOption("thick-thin","Mindmap Thick-Thin").addOption("thin-thick-thin","Mindmap Thin-Thick-Thin").setValue(t.type).onChange((e=>{this.dirty=!0,t.type=e}))})).addButton((e=>e.setButtonText("Apply").onClick((()=>{this.dirty=!0,t.strokeColor=PENS[t.type].strokeColor,t.backgroundColor=PENS[t.type].backgroundColor,t.fillStyle=PENS[t.type].fillStyle,t.strokeWidth=PENS[t.type].strokeWidth,t.roughness=PENS[t.type].roughness,t.penOptions={...PENS[t.type].penOptions},a.empty(),this.createForm()})))),i=new obsidian_module.Setting(a).setName(fragWithHTML(t.freedrawOnly?"Stroke & fill applies to: Freedraw only":"Stroke & fill applies to: All shapes")).setDesc(fragWithHTML('"All shapes" means that if for example, you select a blue pen with dashed fill and then switch to a different tool (e.g. to a line, a circle, an arrow - i.e. not the freedraw tool), those will all have the same blue line and dashed fill.
    "Only applies to the freedraw line" means that if for example you are writing black text, and you select a custom pen (e.g. a yellow highlighter), then after using the highlighter you switch to another tool, the previous settings (e.g. black stroke color) will apply to the new shape.')).addToggle((e=>e.setValue(t.freedrawOnly).onChange((e=>{this.dirty=!0,i.setName(fragWithHTML(e?"Stroke & fill applies to: Freedraw only":"Stroke & fill applies to: All shapes")),t.freedrawOnly=e}))));let l,c,d,h,p,u,m,[g,f]=e(t.strokeColor),b=!1;o=new obsidian_module.Setting(a).setName(fragWithHTML(Boolean(t.strokeColor)?"Stroke color: Preset color":"Stroke color: Current")).setDesc(fragWithHTML("Use current stroke color of the canvas, or set a specific preset color for the pen")).addToggle((a=>a.setValue(!Boolean(t.strokeColor)).onChange((a=>{this.dirty=!0,n.settingEl.style.display=a?"none":"",o.setName(fragWithHTML(a?"Stroke color: Current":"Stroke color: Preset color")),a?delete t.strokeColor:(s.getValue()||([g,f]=e("black"),r.setValue(g),s.setValue("black")),t.strokeColor=s.getValue())})))),n=new obsidian_module.Setting(a).setName("Select stroke color").addButton((a=>a.setButtonText("Use Canvas Current").onClick((()=>{const a=this.api.getAppState(),i=a.resetCustomPen?.currentItemStrokeColor??a.currentItemStrokeColor;[g,f]=e(i),t.strokeColor=i,this.dirty=!0,s.setValue(i),b=!0,r.setValue(g)})))).addText((a=>{s=a,a.setValue(t.strokeColor).onChange((a=>{b=!0,this.dirty=!0,t.strokeColor=a,[g,f]=e(a),g&&r.setValue(g)}))})).addColorPicker((e=>{r=e,e.setValue(g??"#000000").onChange((e=>{b?b=!1:(this.dirty=!0,t.strokeColor=e+f,s.setValue(e+f))}))})),n.settingEl.style.display=Boolean(t.strokeColor)?"":"none";let[U,E]=e(t.backgroundColor);l=new obsidian_module.Setting(a).setName(fragWithHTML(Boolean(t.backgroundColor)?"Background color: Preset color":"Background color: Current")).setDesc(fragWithHTML("Toggle to use the current background color of the canvas; or a preset color")).addToggle((a=>a.setValue(!Boolean(t.backgroundColor)).onChange((a=>{this.dirty=!0,l.setName(fragWithHTML(a?"Background color: Current":"Background color: Preset color")),d.settingEl.style.display=a?"none":"",c.settingEl.style.display=a||"transparent"===t.backgroundColor?"none":"",a?delete t.backgroundColor:(p.getValue()||([U,E]=e("black"),h.setValue(U),p.setValue("black")),u.setValue(!1))})))),d=new obsidian_module.Setting(a).setName(fragWithHTML("transparent"===t.backgroundColor?"Background: Transparent":"Color: Preset color")).setDesc("Background has color or is transparent").addToggle((e=>{u=e,e.setValue("transparent"===t.backgroundColor).onChange((e=>{this.dirty=!0,c.settingEl.style.display=e?"none":"",m.settingEl.style.display=e?"none":"",d.setName(fragWithHTML(e?"Background: Transparent":"Color: Preset color")),t.backgroundColor=e?"transparent":h.getValue()}))})),d.settingEl.style.display=Boolean(t.backgroundColor)?"":"none";let w,y,v,T,S,_,x,C,I,A=!1;c=new obsidian_module.Setting(a).setName("Background color").addButton((a=>a.setButtonText("Use Canvas Current").onClick((()=>{const a=this.api.getAppState(),i=a.resetCustomPen?.currentItemBackgroundColor??a.currentItemBackgroundColor;[U,E]=e(i),t.backgroundColor=i,this.dirty=!0,p.setValue(i),A=!0,h.setValue(U)})))).addText((a=>{p=a,a.setValue(t.backgroundColor).onChange((a=>{A=!0,this.dirty=!0,t.backgroundColor=a,[U,E]=e(a),U&&h.setValue(U)}))})).addColorPicker((e=>{h=e,e.setValue(U??"#000000").onChange((e=>{A?A=!1:(this.dirty=!0,t.backgroundColor=e+E,p.setValue(e+E))}))})),c.settingEl.style.display=Boolean(t.backgroundColor)&&"transparent"!==t.backgroundColor?"":"none",m=new obsidian_module.Setting(a).setName("Fill Style").addDropdown((e=>e.addOption("","Unset").addOption("dots","Dots (⚠ VERY SLOW performance on large objects!)").addOption("zigzag","Zigzag").addOption("zigzag-line","Zigzag-line").addOption("dashed","Dashed").addOption("hachure","Hachure").addOption("cross-hatch","Cross-hatch").addOption("solid","Solid").setValue(t.fillStyle).onChange((e=>{this.dirty=!0,t.fillStyle=e})))),m.settingEl.style.display=Boolean(t.backgroundColor)&&"transparent"!==t.backgroundColor?"":"none",w=new obsidian_module.Setting(a).setName(fragWithHTML(`Sloppiness: ${null===t.roughness?"Not Set":t.roughness<=.5?"Architect (":t.roughness<=1.5?"Artist (":"Cartoonist ("}${null===t.roughness?"":`${t.roughness})`}`)).setDesc("Line sloppiness of the shape fill pattern").addSlider((e=>e.setLimits(-.5,3,.5).setValue(null===t.roughness?-.5:t.roughness).onChange((e=>{this.dirty=!0,t.roughness=-.5===e?null:e,w.setName(fragWithHTML(`Sloppiness: ${null===t.roughness?"Not Set":t.roughness<=.5?"Architect (":t.roughness<=1.5?"Artist (":"Cartoonist ("}${null===t.roughness?"":`${t.roughness})`}`))})))),y=new obsidian_module.Setting(a).setName(fragWithHTML(`Stroke Width ${0===t.strokeWidth?"Not Set":t.strokeWidth}`)).addSlider((e=>e.setLimits(0,5,.5).setValue(t.strokeWidth).onChange((e=>{this.dirty=!0,t.strokeWidth=e,y.setName(fragWithHTML(`Stroke Width ${0===t.strokeWidth?"Not Set":t.strokeWidth}`))})))),new obsidian_module.Setting(a).setName("Highlighter pen?").addToggle((e=>e.setValue(t.penOptions.highlighter).onChange((e=>{this.dirty=!0,t.penOptions.highlighter=e})))),new obsidian_module.Setting(a).setName("Pressure sensitive pen?").setDesc(fragWithHTML("toggle on: pressure sensitive
    toggle off: constant pressure")).addToggle((e=>e.setValue(!t.penOptions.constantPressure).onChange((e=>{this.dirty=!0,t.penOptions.constantPressure=!e,v.settingEl.style.display=t.penOptions.constantPressure?"none":""})))),t.penOptions.hasOutline&&0===t.penOptions.outlineWidth&&(t.penOptions.outlineWidth=.5,this.dirty=!0),!t.penOptions.hasOutline&&t.penOptions.outlineWidth>0&&(t.penOptions.outlineWidth=0,this.dirty=!0),T=new obsidian_module.Setting(a).setName(fragWithHTML(0===t.penOptions.outlineWidth?"No outline":`Outline width ${t.penOptions.outlineWidth}`)).setDesc("If the stroke has an outline, this will mean the stroke color is the outline color, and the background color is the pen stroke's fill color. If the pen does not have an outline then the pen color is the stroke color. The Fill Style setting applies to the fill style of the enclosed shape, not of the line itself. The line can only have solid fill.").addSlider((e=>e.setLimits(0,8,.5).setValue(t.penOptions.outlineWidth).onChange((e=>{this.dirty=!0,t.penOptions.outlineWidth=e,t.penOptions.hasOutline=e>0,T.setName(fragWithHTML(0===t.penOptions.outlineWidth?"No outline":`Outline width ${t.penOptions.outlineWidth}`))})))),a.createEl("h2",{text:"Perfect Freehand settings"}),a.createEl("p").innerHTML='Read the Perfect Freehand documentation following this link.',S=new obsidian_module.Setting(a).setName(fragWithHTML(`Thinnning ${t.penOptions.options.thinning}`)).setDesc(fragWithHTML("The effect of pressure on the stroke's size.
    To create a stroke with a steady line, set the thinning option to 0.
    To create a stroke that gets thinner with pressure instead of thicker, use a negative number for the thinning option.")).addSlider((e=>e.setLimits(-1,1,.05).setValue(t.penOptions.options.thinning).onChange((e=>{this.dirty,S.setName(fragWithHTML(`Thinnning ${e}`)),t.penOptions.options.thinning=e})))),_=new obsidian_module.Setting(a).setName(fragWithHTML(`Smoothing ${t.penOptions.options.smoothing}`)).setDesc(fragWithHTML("How much to soften the stroke's edges.")).addSlider((e=>e.setLimits(0,1,.05).setValue(t.penOptions.options.smoothing).onChange((e=>{this.dirty,_.setName(fragWithHTML(`Smoothing ${e}`)),t.penOptions.options.smoothing=e})))),x=new obsidian_module.Setting(a).setName(fragWithHTML(`Streamline ${t.penOptions.options.streamline}`)).setDesc(fragWithHTML("\tHow much to streamline the stroke.")).addSlider((e=>e.setLimits(0,1,.05).setValue(t.penOptions.options.streamline).onChange((e=>{this.dirty,x.setName(fragWithHTML(`Streamline ${e}`)),t.penOptions.options.streamline=e})))),new obsidian_module.Setting(a).setName("Easing function").setDesc(fragWithHTML('An easing function for the tapering effect. For more info click here')).addDropdown((e=>e.addOptions(EASINGFUNCTIONS).setValue(t.penOptions.options.easing).onChange((e=>{this.dirty=!0,t.penOptions.options.easing=e})))),v=new obsidian_module.Setting(a).setName("Simulate Pressure").setDesc("Whether to simulate pressure based on velocity.").addDropdown((e=>e.addOption("true","Always").addOption("false","Never").addOption("","Yes for mouse, No for pen").setValue(!0===t.penOptions.options.simulatePressure?"true":!1===t.penOptions.options.simulatePressure?"false":"").onChange((e=>{switch(this.dirty=!0,e){case"true":t.penOptions.options.simulatePressure=!0;break;case"false":t.penOptions.options.simulatePressure=!1;break;default:delete t.penOptions.options.simulatePressure}})))),v.settingEl.style.display=t.penOptions.constantPressure?"none":"",a.createEl("h3",{text:"Start"}),a.createEl("p",{text:"Tapering options for the start of the line."}),new obsidian_module.Setting(a).setName("Cap Start").setDesc("Whether to draw a cap").addToggle((e=>e.setValue(t.penOptions.options.start.cap).onChange((e=>{this.dirty=!0,t.penOptions.options.start.cap=e})))),C=new obsidian_module.Setting(a).setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.start.taper?"true":t.penOptions.options.start.taper}`)).setDesc("The distance to taper. If set to true, the taper will be the total length of the stroke.").addSlider((e=>e.setLimits(0,151,1).setValue("boolean"==typeof t.penOptions.options.start.taper?151:t.penOptions.options.start.taper).onChange((e=>{this.dirty,t.penOptions.options.start.taper=151===e||e,C.setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.start.taper?"true":t.penOptions.options.start.taper}`))})))),new obsidian_module.Setting(a).setName("Easing function").setDesc(fragWithHTML('An easing function for the tapering effect. For more info click here')).addDropdown((e=>e.addOptions(EASINGFUNCTIONS).setValue(t.penOptions.options.start.easing).onChange((e=>{this.dirty=!0,t.penOptions.options.start.easing=e})))),a.createEl("h3",{text:"End"}),a.createEl("p",{text:"Tapering options for the end of the line."}),new obsidian_module.Setting(a).setName("Cap End").setDesc("Whether to draw a cap").addToggle((e=>e.setValue(t.penOptions.options.end.cap).onChange((e=>{this.dirty=!0,t.penOptions.options.end.cap=e})))),I=new obsidian_module.Setting(a).setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.end.taper?"true":t.penOptions.options.end.taper}`)).setDesc("The distance to taper. If set to true, the taper will be the total length of the stroke.").addSlider((e=>e.setLimits(0,151,1).setValue("boolean"==typeof t.penOptions.options.end.taper?151:t.penOptions.options.end.taper).onChange((e=>{this.dirty,t.penOptions.options.end.taper=151===e||e,I.setName(fragWithHTML(`Taper: ${!0===t.penOptions.options.end.taper?"true":t.penOptions.options.end.taper}`))})))),new obsidian_module.Setting(a).setName("Easing function").setDesc(fragWithHTML('An easing function for the tapering effect. For more info click here')).addDropdown((e=>e.addOptions(EASINGFUNCTIONS).setValue(t.penOptions.options.end.easing).onChange((e=>{this.dirty=!0,t.penOptions.options.end.easing=e}))))}}const toKebabCase=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),mergeClasses=(...e)=>e.filter(((e,t,a)=>Boolean(e)&&""!==e.trim()&&a.indexOf(e)===t)).join(" ").trim();var defaultAttributes={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const Icon=React.forwardRef((({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:i,className:n="",children:r,iconNode:s,...o},l)=>React.createElement("svg",{ref:l,...defaultAttributes,width:t,height:t,stroke:e,strokeWidth:i?24*Number(a)/Number(t):a,className:mergeClasses("lucide",n),...o},[...s.map((([e,t])=>React.createElement(e,t))),...Array.isArray(r)?r:[r]]))),createLucideIcon=(e,t)=>{const a=React.forwardRef((({className:a,...i},n)=>React.createElement(Icon,{ref:n,iconNode:t,className:mergeClasses(`lucide-${toKebabCase(e)}`,a),...i})));return a.displayName=`${e}`,a},__iconNode$8=[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}]],Bookmark=createLucideIcon("Bookmark",__iconNode$8),__iconNode$7=[["path",{d:"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z",key:"1tc9qg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]],Camera=createLucideIcon("Camera",__iconNode$7),__iconNode$6=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],Copy=createLucideIcon("Copy",__iconNode$6),__iconNode$5=[["path",{d:"M6 2v14a2 2 0 0 0 2 2h14",key:"ron5a4"}],["path",{d:"M18 22V8a2 2 0 0 0-2-2H2",key:"7s9ehn"}]],Crop=createLucideIcon("Crop",__iconNode$5),__iconNode$4=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],Globe=createLucideIcon("Globe",__iconNode$4),__iconNode$3=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],RotateCcw=createLucideIcon("RotateCcw",__iconNode$3),__iconNode$2=[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]],Scan=createLucideIcon("Scan",__iconNode$2),__iconNode$1=[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Settings=createLucideIcon("Settings",__iconNode$1),__iconNode=[["path",{d:"M5 3a2 2 0 0 0-2 2",key:"y57alp"}],["path",{d:"M19 3a2 2 0 0 1 2 2",key:"18rm91"}],["path",{d:"M21 19a2 2 0 0 1-2 2",key:"1j7049"}],["path",{d:"M5 21a2 2 0 0 1-2-2",key:"sbafld"}],["path",{d:"M9 3h1",key:"1yesri"}],["path",{d:"M9 21h1",key:"15o7lz"}],["path",{d:"M14 3h1",key:"1ec4yj"}],["path",{d:"M14 21h1",key:"v9vybs"}],["path",{d:"M3 9v1",key:"1r0deq"}],["path",{d:"M21 9v1",key:"mxsmne"}],["path",{d:"M3 14v1",key:"vnatye"}],["path",{d:"M21 14v1",key:"169vum"}],["line",{x1:"7",x2:"15",y1:"8",y2:"8",key:"1758g8"}],["line",{x1:"7",x2:"17",y1:"12",y2:"12",key:"197423"}],["line",{x1:"7",x2:"13",y1:"16",y2:"16",key:"37cgm6"}]],TextSelect=createLucideIcon("TextSelect",__iconNode),ICONS={ExportImage:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("g",{strokeWidth:"1.25"},React__namespace.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),React__namespace.createElement("path",{d:"M15 8h.01"}),React__namespace.createElement("path",{d:"M12 20h-5a3 3 0 0 1 -3 -3v-10a3 3 0 0 1 3 -3h10a3 3 0 0 1 3 3v5"}),React__namespace.createElement("path",{d:"M4 15l4 -4c.928 -.893 2.072 -.893 3 0l4 4"}),React__namespace.createElement("path",{d:"M14 14l1 -1c.617 -.593 1.328 -.793 2.009 -.598"}),React__namespace.createElement("path",{d:"M19 16v6"}),React__namespace.createElement("path",{d:"M22 19l-3 3l-3 -3"}))),BackOfNote:React__namespace.createElement(TextSelect,null),Reload:React__namespace.createElement(RotateCcw,null),Copy:React__namespace.createElement(Copy,null),Globe:React__namespace.createElement(Globe,null),Crop:React__namespace.createElement(Crop,null),Bookmark:React__namespace.createElement(Bookmark,null),Camera:React__namespace.createElement(Camera,null),ZoomToSelectedElement:React__namespace.createElement(Scan,null),Properties:React__namespace.createElement(Settings,null),ZoomToSection:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("text",{x:"6",y:"18",fontSize:"22px"},"#")),ZoomToBlock:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"1",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("text",{x:"1",y:"18",fontSize:"22px"},"#^")),Learn:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z"}),React__namespace.createElement("path",{d:"M22 10v6"}),React__namespace.createElement("path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5"})),Discord:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"var(--icon-fill-color)",stroke:"none",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 640 512"},React__namespace.createElement("path",{d:"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"})),Github:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}),React__namespace.createElement("path",{d:"M9 18c-4.51 2-5-2-7-2"})),YouTube:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M12 19c-2.3 0-6.4-.2-8.1-.6-.7-.2-1.2-.7-1.4-1.4-.3-1.1-.5-3.4-.5-5s.2-3.9.5-5c.2-.7.7-1.2 1.4-1.4C5.6 5.2 9.7 5 12 5s6.4.2 8.1.6c.7.2 1.2.7 1.4 1.4.3 1.1.5 3.4.5 5s-.2 3.9-.5 5c-.2.7-.7 1.2-1.4 1.4-1.7.4-5.8.6-8.1.6 0 0 0 0 0 0z"}),React__namespace.createElement("polygon",{points:"10 15 15 12 10 9"})),heart:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M20.42 4.58a5.4 5.4 0 0 0-7.65 0l-.77.78-.77-.78a5.4 5.4 0 0 0-7.65 0C1.46 6.7 1.33 10.28 4 13l8 8 8-8c2.67-2.72 2.54-6.3.42-8.42z"})),twitter:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z"})),exportLibrary:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 200 190",fill:"var(--icon-fill-color)"},React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M50 10h20v20H50"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M50 10h20m-20 0h20m0 0v20m0-20v20m0 0H50m20 0H50m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M90 10h20v20H90"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M90 10h20m-20 0h20m0 0v20m0-20v20m0 0H90m20 0H90m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M130 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M130 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M170 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M170 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M70 50h60v80h20l-50 50-50-50h20V50"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M70 50h60m-60 0h60m0 0v80m0-80v80m0 0h20m-20 0h20m0 0-50 50m50-50-50 50m0 0-50-50m50 50-50-50m0 0h20m-20 0h20m0 0V50m0 80V50m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M10 10h20v20H10"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M10 10h20m-20 0h20m0 0v20m0-20v20m0 0H10m20 0H10m0 0V10m0 20V10"}))),insertPDF:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M64 464H96v48H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V288H336V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16zM176 352h32c30.9 0 56 25.1 56 56s-25.1 56-56 56H192v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V448 368c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H192v48h16zm96-80h32c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H304c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H320v96h16zm80-112c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V432 368z"})),insertImage:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"})),insertMD:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"})),insertLaTeX:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",stroke:"none",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"})),insertLink:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"none",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"})),search:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7C401.8 87.79 326.8 13.32 235.2 1.723C99.01-15.51-15.51 99.01 1.724 235.2c11.6 91.64 86.08 166.7 177.6 178.9c53.8 7.189 104.3-6.236 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 0C515.9 484.7 515.9 459.3 500.3 443.7zM79.1 208c0-70.58 57.42-128 128-128s128 57.42 128 128c0 70.58-57.42 128-128 128S79.1 278.6 79.1 208z"})),ocr:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"m6 18 6-12 6 12"}),React__namespace.createElement("path",{d:"M8 14h8"}),React__namespace.createElement("path",{d:"M3 7V5a2 2 0 0 1 2-2h2"}),React__namespace.createElement("path",{d:"M17 3h2a2 2 0 0 1 2 2v2"}),React__namespace.createElement("path",{d:"M21 17v2a2 2 0 0 1-2 2h-2"}),React__namespace.createElement("path",{d:"M7 21H5a2 2 0 0 1-2-2v-2"})),scriptEngine:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeLinecap:"round",strokeWidth:"4"},React__namespace.createElement("g",{transform:"translate(-8,-8)"},React__namespace.createElement("path",{d:"M24.318 37.983c-1.234-1.232-8.433-3.903-7.401-7.387 1.057-3.484 9.893-12.443 13.669-13.517 3.776-1.074 6.142 6.523 9.012 7.073 2.87.55 6.797-1.572 8.207-3.694 1.384-2.148-3.147-7.413.15-9.168 3.298-1.755 16.389-2.646 19.611-1.284 3.247 1.363-1.611 7.335-.151 9.483 1.46 2.148 6.067 3.746 8.836 3.38 2.769-.368 4.154-6.733 7.728-5.633 3.575 1.1 12.36 8.828 13.67 12.233 1.308 3.406-5.186 5.423-5.79 8.2-.58 2.75-.026 6.705 2.265 8.355 2.266 1.65 9.642-1.78 11.404 1.598 1.762 3.38 1.007 15.35-.806 18.651-1.787 3.353-7.753-.367-9.969 1.31-2.215 1.65-3.901 5.92-3.373 8.67.504 2.777 7.754 4.48 6.445 7.885C96.49 87.543 87.15 95.454 83.5 96.685c-3.65 1.231-4.96-4.741-7.577-5.16-2.593-.393-6.57.707-8.03 2.75-1.436 2.017 2.668 7.806-.63 9.483-3.323 1.676-15.759 2.226-19.157.655-3.373-1.598.554-7.964-1.108-10.138-1.687-2.174-6.394-3.431-9.012-2.907-2.643.55-3.273 7.282-6.747 6.103-3.499-1.126-12.788-9.535-14.172-13.019-1.36-3.484 5.437-5.108 5.966-7.858.529-2.777-.68-7.073-2.744-8.697-2.064-1.624-7.93 2.41-9.642-1.126-1.737-3.537-2.441-16.765-.654-20.118 1.787-3.3 9.062 1.598 11.429.183 2.366-1.44 2.316-7.282 2.769-8.749m.126-.104c-1.234-1.232-8.433-3.903-7.401-7.387 1.057-3.484 9.893-12.443 13.669-13.517 3.776-1.074 6.142 6.523 9.012 7.073 2.87.55 6.797-1.572 8.207-3.694 1.384-2.148-3.147-7.413.15-9.168 3.298-1.755 16.389-2.646 19.611-1.284 3.247 1.363-1.611 7.335-.151 9.483 1.46 2.148 6.067 3.746 8.836 3.38 2.769-.368 4.154-6.733 7.728-5.633 3.575 1.1 12.36 8.828 13.67 12.233 1.308 3.406-5.186 5.423-5.79 8.2-.58 2.75-.026 6.705 2.265 8.355 2.266 1.65 9.642-1.78 11.404 1.598 1.762 3.38 1.007 15.35-.806 18.651-1.787 3.353-7.753-.367-9.969 1.31-2.215 1.65-3.901 5.92-3.373 8.67.504 2.777 7.754 4.48 6.445 7.885C96.49 87.543 87.15 95.454 83.5 96.685c-3.65 1.231-4.96-4.741-7.577-5.16-2.593-.393-6.57.707-8.03 2.75-1.436 2.017 2.668 7.806-.63 9.483-3.323 1.676-15.759 2.226-19.157.655-3.373-1.598.554-7.964-1.108-10.138-1.687-2.174-6.394-3.431-9.012-2.907-2.643.55-3.273 7.282-6.747 6.103-3.499-1.126-12.788-9.535-14.172-13.019-1.36-3.484 5.437-5.108 5.966-7.858.529-2.777-.68-7.073-2.744-8.697-2.064-1.624-7.93 2.41-9.642-1.126-1.737-3.537-2.441-16.765-.654-20.118 1.787-3.3 9.062 1.598 11.429.183 2.366-1.44 2.316-7.282 2.769-8.749",fill:"none",strokeWidth:"2"}),React__namespace.createElement("path",{d:"M81.235 56.502a23.3 23.3 0 0 1-1.46 8.068 20.785 20.785 0 0 1-1.762 3.72 24.068 24.068 0 0 1-5.337 6.26 22.575 22.575 0 0 1-3.449 2.358 23.726 23.726 0 0 1-7.803 2.803 24.719 24.719 0 0 1-8.333 0 24.102 24.102 0 0 1-4.028-1.074 23.71 23.71 0 0 1-3.776-1.729 23.259 23.259 0 0 1-6.369-5.265 23.775 23.775 0 0 1-2.416-3.353 24.935 24.935 0 0 1-1.762-3.72 23.765 23.765 0 0 1-1.083-3.981 23.454 23.454 0 0 1 0-8.173c.252-1.336.604-2.698 1.083-3.956a24.935 24.935 0 0 1 1.762-3.72 22.587 22.587 0 0 1 2.416-3.378c.881-1.048 1.888-2.017 2.946-2.908a24.38 24.38 0 0 1 3.423-2.357 23.71 23.71 0 0 1 3.776-1.73 21.74 21.74 0 0 1 4.028-1.047 23.437 23.437 0 0 1 8.333 0 24.282 24.282 0 0 1 7.803 2.777 26.198 26.198 0 0 1 3.45 2.357 24.62 24.62 0 0 1 5.336 6.287 20.785 20.785 0 0 1 1.762 3.72 21.32 21.32 0 0 1 1.083 3.955c.251 1.336.302 3.405.377 4.086.05.681.05-.68 0 0",fill:"none"}),React__namespace.createElement("path",{d:"M69.404 56.633c-6.596-3.3-13.216-6.6-19.51-9.744m19.51 9.744c-6.747-3.379-13.493-6.758-19.51-9.744m0 0v19.489m0-19.49v19.49m0 0c4.355-2.148 8.71-4.322 19.51-9.745m-19.51 9.745c3.978-1.965 7.93-3.956 19.51-9.745m0 0h0m0 0h0"}))),openLink:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v7"}),React__namespace.createElement("polyline",{points:"14 2 14 8 20 8"}),React__namespace.createElement("path",{d:"m10 18 3-3-3-3"}),React__namespace.createElement("path",{d:"M4 18v-1a2 2 0 0 1 2-2h6"})),openLinkProperties:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M10 12.5 8 15l2 2.5"}),React__namespace.createElement("path",{d:"m14 12.5 2 2.5-2 2.5"}),React__namespace.createElement("path",{d:"M14 2v4a2 2 0 0 0 2 2h4"}),React__namespace.createElement("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z"})),switchToMarkdown:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",stroke:"var(--icon-fill-color)",strokeWidth:"10",fill:"var(--icon-fill-color)"},React__namespace.createElement("path",{d:"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"})),gotoFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M128 32H32C14.31 32 0 46.31 0 64v96c0 17.69 14.31 32 32 32s32-14.31 32-32V96h64c17.69 0 32-14.31 32-32S145.7 32 128 32zM416 32h-96c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32V64C448 46.31 433.7 32 416 32zM128 416H64v-64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96c0 17.69 14.31 32 32 32h96c17.69 0 32-14.31 32-32S145.7 416 128 416zM416 320c-17.69 0-32 14.31-32 32v64h-64c-17.69 0-32 14.31-32 32s14.31 32 32 32h96c17.69 0 32-14.31 32-32v-96C448 334.3 433.7 320 416 320z"})),exitFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M128 320H32c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32v-96C160 334.3 145.7 320 128 320zM416 320h-96c-17.69 0-32 14.31-32 32v96c0 17.69 14.31 32 32 32s32-14.31 32-32v-64h64c17.69 0 32-14.31 32-32S433.7 320 416 320zM320 192h96c17.69 0 32-14.31 32-32s-14.31-32-32-32h-64V64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96C288 177.7 302.3 192 320 192zM128 32C110.3 32 96 46.31 96 64v64H32C14.31 128 0 142.3 0 160s14.31 32 32 32h96c17.69 0 32-14.31 32-32V64C160 46.31 145.7 32 128 32z"})),releaseNotes:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M0 219.2v212.5c0 14.25 11.62 26.25 26.5 27C75.32 461.2 180.2 471.3 240 511.9V245.2C181.4 205.5 79.99 194.8 29.84 192C13.59 191.1 0 203.6 0 219.2zM482.2 192c-50.09 2.848-151.3 13.47-209.1 53.09C272.1 245.2 272 245.3 272 245.5v266.5c60.04-40.39 164.7-50.76 213.5-53.28C500.4 457.9 512 445.9 512 431.7V219.2C512 203.6 498.4 191.1 482.2 192zM352 96c0-53-43-96-96-96S160 43 160 96s43 96 96 96S352 149 352 96z"})),rawMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 60"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"4",d:"M20 10H10m10 0H10m0 0v40m0-40v40m0 0h10m-10 0h10M40 10H30m10 0H30m0 0v40m0-40v40m0 0h10m-10 0h10M60 10h10m-10 0h10m0 0v40m0-40v40m0 0H60m10 0H60M80 10h10m-10 0h10m0 0v40m0-40v40m0 0H80m10 0H80"})),parsedMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",stroke:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M574.1 280.4l-45.38-181.8c-5.875-23.63-21.62-44-43-55.75c-21.5-11.75-46.1-14.13-70.25-6.375l-15.25 5.125c-8.375 2.75-12.87 11.88-10 20.25l5 15.13c2.75 8.375 11.88 12.88 20.25 10.13l13.12-4.375c10.88-3.625 23-3.625 33.25 1.75c10.25 5.375 17.5 14.5 20.38 25.75l38.38 153.9c-22.12-6.875-49.75-12.5-81.13-12.5c-34.88 0-73.1 7-114.9 26.75H251.4C210.5 258.6 171.4 251.6 136.5 251.6c-31.38 0-59 5.625-81.12 12.5l38.38-153.9c2.875-11.25 10.12-20.38 20.5-25.75C124.4 79.12 136.5 79.12 147.4 82.74l13.12 4.375c8.375 2.75 17.5-1.75 20.25-10.13l5-15.13C188.6 53.49 184.1 44.37 175.6 41.62l-15.25-5.125c-23.13-7.75-48.75-5.375-70.13 6.375c-21.37 11.75-37.12 32.13-43 55.75L1.875 280.4C.6251 285.4 .0001 290.6 .0001 295.9v70.25C.0001 428.1 51.63 480 115.3 480h37.13c60.25 0 110.4-46 114.9-105.4l2.875-38.63h35.75l2.875 38.63C313.3 433.1 363.4 480 423.6 480h37.13c63.62 0 115.2-51 115.2-113.9V295.9C576 290.6 575.4 285.5 574.1 280.4zM203.4 369.7c-2 26-24.38 46.25-51 46.25H115.2C87 415.1 64 393.6 64 366.1v-37.5c18.12-6.5 43.38-13 72.62-13c23.88 0 47.25 4.375 69.88 13L203.4 369.7zM512 366.1c0 27.5-23 49.88-51.25 49.88h-37.13c-26.62 0-49-20.25-51-46.25l-3.125-41.13c22.62-8.625 46.13-13 70-13c29 0 54.38 6.5 72.5 13V366.1z"})),convertFile:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:"0 110 700 340",xmlns:"http://www.w3.org/2000/svg",stroke:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"m593.95 239.4v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4688-1.457-3.1875-2.6445-5.0742-3.5h-1.5742c-1.4727-0.49219-3.0039-0.78516-4.5508-0.875h-124.25c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v87.5h-70v-105.88-1.0508c-0.089844-1.5469-0.38281-3.0781-0.875-4.5508v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4727-1.457-3.1914-2.6445-5.0742-3.5h-1.5742c-1.7031-0.875-3.5352-1.4688-5.4258-1.75h-123.55c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v245c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-52.5h70v122.5c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-192.5-1.0508c-0.14453-1.5547-0.5-3.0859-1.0508-4.5508zm-313.95 110.6h-140v-210h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v87.5h-52.5c-6.2539 0-12.031 3.3359-15.156 8.75s-3.125 12.086 0 17.5 8.9023 8.75 15.156 8.75h52.5zm140 70v-105h27.824l-5.0742 5.0742c-3.7031 3.1719-5.9141 7.7461-6.1055 12.617-0.1875 4.8711 1.668 9.6016 5.1133 13.051 3.4492 3.4453 8.1797 5.3008 13.051 5.1133 4.8711-0.19141 9.4453-2.4023 12.617-6.1055l35-35c3.2578-3.2773 5.0898-7.7148 5.0898-12.336 0-4.625-1.832-9.0586-5.0898-12.34l-35-35c-4.5078-3.8555-10.66-5.1719-16.348-3.4883-5.6875 1.6797-10.137 6.1289-11.816 11.816-1.6836 5.6914-0.37109 11.844 3.4883 16.348l5.0742 5.0742h-27.824v-69.824h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v157.5z"})),cog:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M495.9 166.6C499.2 175.2 496.4 184.9 489.6 191.2L446.3 230.6C447.4 238.9 448 247.4 448 256C448 264.6 447.4 273.1 446.3 281.4L489.6 320.8C496.4 327.1 499.2 336.8 495.9 345.4C491.5 357.3 486.2 368.8 480.2 379.7L475.5 387.8C468.9 398.8 461.5 409.2 453.4 419.1C447.4 426.2 437.7 428.7 428.9 425.9L373.2 408.1C359.8 418.4 344.1 427 329.2 433.6L316.7 490.7C314.7 499.7 307.7 506.1 298.5 508.5C284.7 510.8 270.5 512 255.1 512C241.5 512 227.3 510.8 213.5 508.5C204.3 506.1 197.3 499.7 195.3 490.7L182.8 433.6C167 427 152.2 418.4 138.8 408.1L83.14 425.9C74.3 428.7 64.55 426.2 58.63 419.1C50.52 409.2 43.12 398.8 36.52 387.8L31.84 379.7C25.77 368.8 20.49 357.3 16.06 345.4C12.82 336.8 15.55 327.1 22.41 320.8L65.67 281.4C64.57 273.1 64 264.6 64 256C64 247.4 64.57 238.9 65.67 230.6L22.41 191.2C15.55 184.9 12.82 175.3 16.06 166.6C20.49 154.7 25.78 143.2 31.84 132.3L36.51 124.2C43.12 113.2 50.52 102.8 58.63 92.95C64.55 85.8 74.3 83.32 83.14 86.14L138.8 103.9C152.2 93.56 167 84.96 182.8 78.43L195.3 21.33C197.3 12.25 204.3 5.04 213.5 3.51C227.3 1.201 241.5 0 256 0C270.5 0 284.7 1.201 298.5 3.51C307.7 5.04 314.7 12.25 316.7 21.33L329.2 78.43C344.1 84.96 359.8 93.56 373.2 103.9L428.9 86.14C437.7 83.32 447.4 85.8 453.4 92.95C461.5 102.8 468.9 113.2 475.5 124.2L480.2 132.3C486.2 143.2 491.5 154.7 495.9 166.6V166.6zM256 336C300.2 336 336 300.2 336 255.1C336 211.8 300.2 175.1 256 175.1C211.8 175.1 176 211.8 176 255.1C176 300.2 211.8 336 256 336z"})),trayMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M618.1 97.67c-13.02-4.375-27.45 .1562-35.72 11.16L464 266.7l-118.4-157.8c-8.266-11.03-22.64-15.56-35.72-11.16C296.8 102 288 114.2 288 128v256c0 17.69 14.33 32 32 32s32-14.31 32-32v-160l86.41 115.2c12.06 16.12 39.13 16.12 51.19 0L576 224v160c0 17.69 14.33 32 32 32s32-14.31 32-32v-256C640 114.2 631.2 102 618.1 97.67zM224 96.01H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h64v223.1c0 17.69 14.33 31.99 32 31.99s32-14.3 32-31.99V160h64c17.67 0 32-14.31 32-32S241.7 96.01 224 96.01z"})),copyElementLink:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 260 260","aria-hidden":"true",focusable:"false",role:"img"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"8",d:"M10 10h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0V10m0 40V10M210 10h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0V10m0 40V10M210 210h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0v-40m0 40v-40M10 210h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0v-40m0 40v-40M30 210V50m0 160V50M50 30h160M50 30h160M230 50v160m0-160v160M50 230h160m-160 0h160"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M110 90c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10m0-80c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10M150 90c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10m0-80c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M89.868 130.198c13.36-.03 66.78-.17 80.13-.2m-80.13.2c13.36-.03 66.78-.17 80.13-.2"})),importSVG:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 526 526"},React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"var(--input-bg-color)",strokeWidth:"0",d:"m133.462 71 .33-6.54.97-6.34 1.58-6.13 2.16-5.88 2.69-5.6 3.21-5.27 3.69-4.93 4.13-4.55 4.55-4.13 4.93-3.69 5.27-3.21 5.6-2.69 5.88-2.16 6.13-1.58 6.34-.97 6.54-.33h160v128l.16 3.28.49 3.18.79 3.07 1.07 2.94 1.35 2.8 1.6 2.63 1.84 2.47 2.06 2.27 2.27 2.06 2.47 1.84 2.63 1.6 2.8 1.35 2.94 1.07 3.07.79 3.18.49 3.28.16h128v288l-.33 6.54-.97 6.34-1.58 6.13-2.16 5.88-2.69 5.6-3.21 5.27-3.69 4.93-4.13 4.55-4.55 4.13-4.93 3.69-5.27 3.21-5.6 2.69-5.88 2.16-6.13 1.58-6.34.97-6.54.33h-256l-6.54-.33-6.34-.97-6.13-1.58-5.88-2.16-5.6-2.69-5.27-3.21-4.93-3.69-4.55-4.13-4.13-4.55-3.69-4.93-3.21-5.27-2.69-5.6-2.16-5.88-1.58-6.13-.97-6.34-.33-6.54V343h174.1l-39 39-1.65 1.83-1.43 1.94-1.22 2.05-.99 2.13-.77 2.2-.55 2.25-.33 2.29-.11 2.3.11 2.3.33 2.28.55 2.24.77 2.19.99 2.12 1.22 2.04 1.43 1.93 1.65 1.81 1.83 1.64 1.94 1.42 2.05 1.2 2.13.99 2.2.76 2.25.56 2.29.33 2.3.11 2.3-.1 2.28-.33 2.24-.54 2.19-.77 2.12-.98 2.04-1.21 1.93-1.43 1.81-1.65 80-80 1.65-1.83 1.43-1.94 1.22-2.05.99-2.13.77-2.2.55-2.25.33-2.29.11-2.3-.11-2.3-.33-2.28-.55-2.24-.77-2.19-.99-2.12-1.22-2.04-1.43-1.93-1.65-1.81-80-80-1.83-1.65-1.94-1.43-2.05-1.22-2.13-.99-2.2-.77-2.25-.55-2.29-.33-2.3-.11-2.3.11-2.28.33-2.24.55-2.19.77-2.12.99-2.04 1.22-1.93 1.43-1.81 1.65-1.64 1.83-1.42 1.94-1.2 2.05-.99 2.13-.76 2.2-.56 2.25-.33 2.29-.11 2.3.1 2.3.33 2.28.54 2.24.77 2.19.98 2.12 1.21 2.04 1.43 1.93 1.65 1.81 39 39h-174.1V71"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"18",d:"M133.462 71s0 0 0 0m0 0s0 0 0 0m0 0 .33-6.54m-.33 6.54c.13-2.57.26-5.13.33-6.54m0 0c.36-2.33.72-4.67.97-6.34m-.97 6.34c.35-2.26.69-4.53.97-6.34m0 0c.51-1.99 1.03-3.98 1.58-6.13m-1.58 6.13c.4-1.56.81-3.12 1.58-6.13m0 0c.81-2.22 1.62-4.43 2.16-5.88m-2.16 5.88c.45-1.22.9-2.44 2.16-5.88m0 0c.72-1.51 1.45-3.01 2.69-5.6m-2.69 5.6c.69-1.45 1.39-2.9 2.69-5.6m0 0c.93-1.52 1.86-3.05 3.21-5.27m-3.21 5.27c.97-1.59 1.94-3.18 3.21-5.27m0 0c.86-1.15 1.71-2.29 3.69-4.93m-3.69 4.93c.78-1.04 1.56-2.08 3.69-4.93m0 0c1.53-1.69 3.07-3.38 4.13-4.55m-4.13 4.55c1.54-1.69 3.07-3.38 4.13-4.55m0 0c1.03-.93 2.06-1.87 4.55-4.13m-4.55 4.13c.98-.89 1.97-1.78 4.55-4.13m0 0c1.64-1.23 3.28-2.46 4.93-3.69m-4.93 3.69c1.72-1.29 3.45-2.58 4.93-3.69m0 0c1.11-.68 2.23-1.35 5.27-3.21m-5.27 3.21c1.5-.91 3.01-1.83 5.27-3.21m0 0c1.87-.89 3.73-1.79 5.6-2.69m-5.6 2.69c2.09-1 4.17-2.01 5.6-2.69m0 0c1.72-.64 3.44-1.27 5.88-2.16m-5.88 2.16c1.94-.72 3.89-1.43 5.88-2.16m0 0c2.3-.59 4.6-1.19 6.13-1.58m-6.13 1.58c2.32-.6 4.65-1.2 6.13-1.58m0 0c2.06-.31 4.12-.63 6.34-.97m-6.34.97c2.34-.36 4.69-.72 6.34-.97m0 0c2.05-.1 4.09-.21 6.54-.33m-6.54.33c2.06-.1 4.12-.21 6.54-.33m0 0h160m-160 0h160m0 0v128m0-128v128m0 0s0 0 0 0m0 0s0 0 0 0m0 0 .16 3.28m-.16-3.28c.06 1.16.12 2.32.16 3.28m0 0c.13.82.26 1.64.49 3.18m-.49-3.18c.18 1.13.35 2.26.49 3.18m0 0c.24.95.49 1.91.79 3.07m-.79-3.07c.28 1.1.56 2.2.79 3.07m0 0c.39 1.06.78 2.13 1.07 2.94m-1.07-2.94c.42 1.15.84 2.3 1.07 2.94m0 0c.38.79.76 1.57 1.35 2.8m-1.35-2.8c.4.82.79 1.64 1.35 2.8m0 0c.45.75.91 1.5 1.6 2.63m-1.6-2.63c.4.65.8 1.31 1.6 2.63m0 0c.56.76 1.13 1.52 1.84 2.47m-1.84-2.47c.58.79 1.17 1.57 1.84 2.47m0 0c.75.82 1.5 1.65 2.06 2.27m-2.06-2.27c.75.82 1.5 1.65 2.06 2.27m0 0c.74.66 1.47 1.33 2.27 2.06m-2.27-2.06c.89.81 1.78 1.61 2.27 2.06m0 0c.69.51 1.37 1.02 2.47 1.84m-2.47-1.84c.68.5 1.35 1.01 2.47 1.84m0 0c.81.49 1.62.99 2.63 1.6m-2.63-1.6c.74.45 1.47.9 2.63 1.6m0 0c.72.35 1.43.69 2.8 1.35m-2.8-1.35c.61.3 1.22.59 2.8 1.35m0 0c.85.31 1.69.62 2.94 1.07m-2.94-1.07c1.03.38 2.07.75 2.94 1.07m0 0c.83.22 1.67.43 3.07.79m-3.07-.79 3.07.79m0 0c1.07.16 2.14.33 3.18.49m-3.18-.49c1.2.18 2.39.36 3.18.49m0 0 3.28.16m-3.28-.16c.97.04 1.93.09 3.28.16m0 0h128m-128 0h128m0 0v288m0-288v288m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.1 2.02-.2 4.04-.33 6.54m.33-6.54c-.13 2.52-.26 5.05-.33 6.54m0 0c-.33 2.14-.66 4.29-.97 6.34m.97-6.34c-.32 2.06-.63 4.12-.97 6.34m0 0c-.59 2.28-1.17 4.55-1.58 6.13m1.58-6.13c-.53 2.07-1.07 4.14-1.58 6.13m0 0c-.73 1.99-1.46 3.97-2.16 5.88m2.16-5.88c-.72 1.97-1.44 3.94-2.16 5.88m0 0c-.94 1.97-1.89 3.93-2.69 5.6m2.69-5.6c-.91 1.89-1.82 3.77-2.69 5.6m0 0c-.89 1.46-1.78 2.92-3.21 5.27m3.21-5.27c-.65 1.05-1.29 2.11-3.21 5.27m0 0c-1.13 1.51-2.25 3.01-3.69 4.93m3.69-4.93c-1.29 1.72-2.58 3.44-3.69 4.93m0 0c-1.29 1.42-2.58 2.84-4.13 4.55m4.13-4.55-4.13 4.55m0 0-4.55 4.13m4.55-4.13-4.55 4.13m0 0c-1.2.9-2.41 1.8-4.93 3.69m4.93-3.69-4.93 3.69m0 0c-1.56.95-3.13 1.9-5.27 3.21m5.27-3.21c-1.99 1.21-3.98 2.42-5.27 3.21m0 0c-1.8.86-3.6 1.73-5.6 2.69m5.6-2.69c-1.34.64-2.67 1.28-5.6 2.69m0 0c-2.24.82-4.48 1.65-5.88 2.16m5.88-2.16c-1.38.51-2.77 1.02-5.88 2.16m0 0c-1.46.38-2.93.76-6.13 1.58m6.13-1.58c-1.54.4-3.09.79-6.13 1.58m0 0c-2.12.32-4.24.65-6.34.97m6.34-.97c-2.47.38-4.94.75-6.34.97m0 0c-2.23.11-4.46.22-6.54.33m6.54-.33c-1.97.1-3.93.2-6.54.33m0 0h-256m256 0h-256m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-2.33-.12-4.66-.24-6.54-.33m6.54.33c-1.33-.07-2.65-.13-6.54-.33m0 0c-1.88-.29-3.77-.58-6.34-.97m6.34.97c-2.07-.32-4.14-.63-6.34-.97m0 0c-1.52-.39-3.04-.79-6.13-1.58m6.13 1.58c-2.02-.52-4.04-1.04-6.13-1.58m0 0c-1.6-.59-3.19-1.17-5.88-2.16m5.88 2.16c-1.9-.7-3.8-1.39-5.88-2.16m0 0c-1.41-.68-2.82-1.36-5.6-2.69m5.6 2.69c-1.6-.77-3.2-1.54-5.6-2.69m0 0c-1.4-.86-2.81-1.71-5.27-3.21m5.27 3.21c-2.08-1.27-4.17-2.54-5.27-3.21m0 0c-1.72-1.29-3.43-2.57-4.93-3.69m4.93 3.69c-1.79-1.34-3.57-2.67-4.93-3.69m0 0c-1.18-1.07-2.36-2.15-4.55-4.13m4.55 4.13c-1.64-1.49-3.27-2.97-4.55-4.13m0 0c-1.07-1.19-2.15-2.37-4.13-4.55m4.13 4.55c-1.46-1.61-2.93-3.23-4.13-4.55m0 0-3.69-4.93m3.69 4.93c-.88-1.17-1.76-2.35-3.69-4.93m0 0c-.83-1.37-1.67-2.75-3.21-5.27m3.21 5.27c-1.15-1.89-2.3-3.79-3.21-5.27m0 0c-1.03-2.14-2.05-4.27-2.69-5.6m2.69 5.6c-.68-1.43-1.37-2.85-2.69-5.6m0 0c-.8-2.17-1.59-4.34-2.16-5.88m2.16 5.88c-.82-2.22-1.63-4.44-2.16-5.88m0 0c-.47-1.82-.94-3.64-1.58-6.13m1.58 6.13c-.37-1.44-.74-2.88-1.58-6.13m0 0-.97-6.34m.97 6.34c-.3-1.98-.61-3.97-.97-6.34m0 0c-.13-2.54-.26-5.07-.33-6.54m.33 6.54-.33-6.54m0 0V343m0 112V343m0 0h174.1m-174.1 0h174.1m0 0-39 39m39-39-39 39m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.65.72-1.3 1.44-1.65 1.83m1.65-1.83c-.34.38-.68.76-1.65 1.83m0 0c-.35.47-.7.95-1.43 1.94m1.43-1.94c-.38.5-.75 1.01-1.43 1.94m0 0c-.32.54-.64 1.08-1.22 2.05m1.22-2.05c-.38.64-.76 1.28-1.22 2.05m0 0c-.2.45-.41.89-.99 2.13m.99-2.13c-.38.82-.76 1.64-.99 2.13m0 0c-.18.53-.36 1.05-.77 2.2m.77-2.2c-.3.88-.61 1.75-.77 2.2m0 0c-.15.61-.3 1.22-.55 2.25m.55-2.25c-.16.68-.33 1.35-.55 2.25m0 0-.33 2.29m.33-2.29c-.13.9-.26 1.79-.33 2.29m0 0-.11 2.3m.11-2.3c-.03.59-.06 1.19-.11 2.3m0 0c.03.54.05 1.08.11 2.3m-.11-2.3c.03.72.07 1.44.11 2.3m0 0c.1.71.21 1.43.33 2.28m-.33-2.28c.1.71.21 1.42.33 2.28m0 0c.22.88.44 1.77.55 2.24m-.55-2.24c.16.66.33 1.32.55 2.24m0 0c.26.72.51 1.45.77 2.19m-.77-2.19c.25.69.49 1.39.77 2.19m0 0c.33.7.65 1.4.99 2.12m-.99-2.12c.37.79.74 1.57.99 2.12m0 0c.38.63.75 1.25 1.22 2.04m-1.22-2.04c.4.67.8 1.35 1.22 2.04m0 0c.38.52.77 1.05 1.43 1.93m-1.43-1.93c.38.52.77 1.05 1.43 1.93m0 0c.46.5.91 1 1.65 1.81m-1.65-1.81c.35.39.7.77 1.65 1.81m0 0c.37.33.75.67 1.83 1.64m-1.83-1.64c.43.39.87.78 1.83 1.64m0 0c.62.45 1.25.91 1.94 1.42m-1.94-1.42c.45.32.9.65 1.94 1.42m0 0c.53.3 1.05.61 2.05 1.2m-2.05-1.2c.43.25.86.5 2.05 1.2m0 0c.78.36 1.56.72 2.13.99m-2.13-.99c.54.25 1.08.5 2.13.99m0 0c.67.23 1.33.46 2.2.76m-2.2-.76c.51.17 1.03.35 2.2.76m0 0c.87.22 1.73.43 2.25.56m-2.25-.56c.79.2 1.57.39 2.25.56m0 0 2.29.33m-2.29-.33c.58.08 1.16.16 2.29.33m0 0c.91.04 1.82.09 2.3.11m-2.3-.11c.89.04 1.79.09 2.3.11m0 0c.48-.02.96-.04 2.3-.1m-2.3.1c.73-.03 1.47-.06 2.3-.1m0 0c.61-.09 1.22-.18 2.28-.33m-2.28.33c.58-.09 1.17-.17 2.28-.33m0 0c.79-.19 1.59-.38 2.24-.54m-2.24.54c.88-.21 1.75-.42 2.24-.54m0 0c.7-.25 1.4-.49 2.19-.77m-2.19.77c.5-.18 1.01-.35 2.19-.77m0 0c.56-.26 1.13-.52 2.12-.98m-2.12.98c.69-.31 1.37-.63 2.12-.98m0 0c.63-.37 1.25-.74 2.04-1.21m-2.04 1.21c.8-.48 1.6-.95 2.04-1.21m0 0c.67-.5 1.34-.99 1.93-1.43m-1.93 1.43c.52-.39 1.05-.78 1.93-1.43m0 0c.43-.39.87-.79 1.81-1.65m-1.81 1.65c.42-.38.83-.76 1.81-1.65m0 0 80-80m-80 80 80-80m0 0s0 0 0 0m0 0s0 0 0 0m0 0c.33-.37.67-.74 1.65-1.83m-1.65 1.83c.63-.7 1.27-1.4 1.65-1.83m0 0c.3-.4.59-.79 1.43-1.94m-1.43 1.94c.42-.57.84-1.13 1.43-1.94m0 0c.4-.68.8-1.35 1.22-2.05m-1.22 2.05c.47-.79.93-1.57 1.22-2.05m0 0c.28-.62.57-1.23.99-2.13m-.99 2.13c.3-.65.6-1.31.99-2.13m0 0c.26-.74.51-1.47.77-2.2m-.77 2.2.77-2.2m0 0 .55-2.25m-.55 2.25c.2-.84.41-1.68.55-2.25m0 0 .33-2.29m-.33 2.29c.11-.75.21-1.49.33-2.29m0 0c.03-.54.05-1.08.11-2.3m-.11 2.3c.04-.91.09-1.81.11-2.3m0 0c-.03-.7-.07-1.41-.11-2.3m.11 2.3c-.04-.75-.07-1.49-.11-2.3m0 0c-.08-.52-.15-1.04-.33-2.28m.33 2.28c-.09-.63-.18-1.26-.33-2.28m0 0-.55-2.24m.55 2.24c-.19-.79-.39-1.58-.55-2.24m0 0-.77-2.19m.77 2.19c-.25-.72-.51-1.44-.77-2.19m0 0c-.23-.5-.46-.99-.99-2.12m.99 2.12c-.39-.83-.78-1.66-.99-2.12m0 0c-.42-.7-.83-1.39-1.22-2.04m1.22 2.04c-.32-.53-.64-1.06-1.22-2.04m0 0c-.47-.64-.95-1.28-1.43-1.93m1.43 1.93c-.47-.63-.94-1.27-1.43-1.93m0 0c-.44-.49-.89-.98-1.65-1.81m1.65 1.81c-.64-.7-1.28-1.4-1.65-1.81m0 0-80-80m80 80-80-80m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.72-.65-1.44-1.3-1.83-1.65m1.83 1.65c-.68-.62-1.37-1.23-1.83-1.65m0 0c-.51-.38-1.02-.75-1.94-1.43m1.94 1.43c-.58-.43-1.17-.87-1.94-1.43m0 0c-.73-.43-1.45-.86-2.05-1.22m2.05 1.22c-.77-.45-1.53-.9-2.05-1.22m0 0c-.46-.21-.93-.43-2.13-.99m2.13.99-2.13-.99m0 0c-.83-.29-1.65-.57-2.2-.77m2.2.77c-.56-.19-1.12-.39-2.2-.77m0 0c-.65-.16-1.29-.31-2.25-.55m2.25.55c-.57-.14-1.13-.27-2.25-.55m0 0c-.74-.11-1.48-.21-2.29-.33m2.29.33c-.51-.07-1.02-.15-2.29-.33m0 0c-.77-.04-1.54-.07-2.3-.11m2.3.11c-.88-.04-1.76-.08-2.3-.11m0 0c-.49.02-.98.05-2.3.11m2.3-.11c-.88.04-1.77.09-2.3.11m0 0c-.62.09-1.23.18-2.28.33m2.28-.33c-.6.09-1.2.17-2.28.33m0 0c-.45.11-.91.22-2.24.55m2.24-.55c-.79.2-1.58.39-2.24.55m0 0c-.56.2-1.12.4-2.19.77m2.19-.77c-.51.18-1.01.36-2.19.77m0 0c-.85.4-1.7.8-2.12.99m2.12-.99c-.51.24-1.02.48-2.12.99m0 0c-.6.36-1.2.71-2.04 1.22m2.04-1.22c-.46.27-.91.55-2.04 1.22m0 0c-.49.36-.99.73-1.93 1.43m1.93-1.43-1.93 1.43m0 0c-.42.38-.85.77-1.81 1.65m1.81-1.65c-.69.63-1.39 1.27-1.81 1.65m0 0-1.64 1.83m1.64-1.83c-.54.6-1.08 1.21-1.64 1.83m0 0c-.53.73-1.07 1.47-1.42 1.94m1.42-1.94c-.36.5-.73 1-1.42 1.94m0 0c-.35.61-.7 1.21-1.2 2.05m1.2-2.05c-.33.58-.67 1.15-1.2 2.05m0 0c-.26.57-.53 1.15-.99 2.13m.99-2.13c-.39.85-.78 1.69-.99 2.13m0 0c-.24.7-.48 1.4-.76 2.2m.76-2.2c-.17.51-.35 1.01-.76 2.2m0 0c-.17.68-.33 1.35-.56 2.25m.56-2.25c-.2.79-.39 1.57-.56 2.25m0 0c-.09.65-.18 1.29-.33 2.29m.33-2.29c-.06.48-.13.95-.33 2.29m0 0c-.03.71-.07 1.43-.11 2.3m.11-2.3-.11 2.3m0 0c.04.86.08 1.73.1 2.3m-.1-2.3c.03.8.07 1.6.1 2.3m0 0c.13.88.25 1.76.33 2.28m-.33-2.28c.11.73.21 1.47.33 2.28m0 0c.18.74.36 1.49.54 2.24m-.54-2.24c.15.64.31 1.28.54 2.24m0 0c.2.57.4 1.15.77 2.19m-.77-2.19c.21.58.41 1.17.77 2.19m0 0c.23.5.46 1.01.98 2.12m-.98-2.12c.35.76.71 1.53.98 2.12m0 0c.38.64.76 1.29 1.21 2.04m-1.21-2.04 1.21 2.04m0 0c.45.6.89 1.21 1.43 1.93m-1.43-1.93c.3.4.6.81 1.43 1.93m0 0 1.65 1.81m-1.65-1.81c.47.52.94 1.03 1.65 1.81m0 0 39 39m-39-39 39 39m0 0h-174.1m174.1 0h-174.1m0 0V71m0 223.9V71m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeLinecap:"round",strokeWidth:"18",d:"M135 343.068H31m104 0H31m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.74-.04-1.48-.07-2.46-.12m2.46.12c-.77-.04-1.54-.08-2.46-.12m0 0c-.87-.14-1.75-.27-2.39-.37m2.39.37c-.55-.09-1.1-.17-2.39-.37m0 0c-.87-.22-1.74-.44-2.3-.59m2.3.59c-.62-.15-1.24-.31-2.3-.59m0 0c-.82-.29-1.64-.59-2.21-.8m2.21.8c-.52-.18-1.03-.37-2.21-.8m0 0c-.55-.26-1.09-.52-2.1-1.01m2.1 1.01c-.64-.31-1.28-.61-2.1-1.01m0 0c-.74-.45-1.48-.89-1.98-1.2m1.98 1.2c-.42-.25-.84-.51-1.98-1.2m0 0c-.7-.52-1.41-1.05-1.84-1.38m1.84 1.38c-.37-.28-.75-.56-1.84-1.38m0 0c-.4-.36-.8-.71-1.71-1.54m1.71 1.54c-.35-.31-.7-.63-1.71-1.54m0 0c-.43-.47-.85-.95-1.54-1.71m1.54 1.71c-.61-.68-1.23-1.36-1.54-1.71m0 0c-.29-.38-.58-.76-1.38-1.84m1.38 1.84c-.54-.71-1.08-1.43-1.38-1.84m0 0c-.46-.76-.92-1.52-1.2-1.98m1.2 1.98c-.45-.74-.89-1.47-1.2-1.98m0 0c-.37-.77-.74-1.53-1.01-2.1m1.01 2.1c-.3-.62-.6-1.25-1.01-2.1m0 0c-.2-.54-.39-1.07-.8-2.21m.8 2.21c-.2-.54-.4-1.09-.8-2.21m0 0c-.22-.85-.44-1.71-.59-2.3m.59 2.3c-.12-.46-.24-.92-.59-2.3m0 0c-.11-.72-.22-1.43-.37-2.39m.37 2.39c-.08-.48-.15-.96-.37-2.39m0 0c-.03-.74-.07-1.48-.12-2.46m.12 2.46c-.04-.79-.08-1.59-.12-2.46m0 0c.04-.74.07-1.49.12-2.46m-.12 2.46.12-2.46m0 0c.08-.53.16-1.07.37-2.39m-.37 2.39c.09-.56.17-1.12.37-2.39m0 0c.17-.69.35-1.38.59-2.3m-.59 2.3c.15-.61.31-1.23.59-2.3m0 0c.17-.48.34-.96.8-2.21m-.8 2.21c.2-.55.4-1.1.8-2.21m0 0c.25-.52.49-1.03 1.01-2.1m-1.01 2.1c.36-.76.73-1.52 1.01-2.1m0 0c.43-.72.87-1.44 1.2-1.98m-1.2 1.98c.27-.45.55-.91 1.2-1.98m0 0c.54-.73 1.09-1.47 1.38-1.84m-1.38 1.84c.4-.54.81-1.09 1.38-1.84m0 0c.53-.59 1.07-1.18 1.54-1.71m-1.54 1.71c.59-.66 1.19-1.32 1.54-1.71m0 0c.54-.49 1.08-.97 1.71-1.54m-1.71 1.54c.48-.43.95-.86 1.71-1.54m0 0c.46-.35.92-.7 1.84-1.38m-1.84 1.38c.5-.38 1.01-.76 1.84-1.38m0 0c.52-.32 1.04-.63 1.98-1.2m-1.98 1.2c.72-.44 1.44-.88 1.98-1.2m0 0 2.1-1.01m-2.1 1.01c.84-.4 1.67-.81 2.1-1.01m0 0c.45-.17.91-.33 2.21-.8m-2.21.8c.56-.21 1.12-.41 2.21-.8m0 0c.89-.23 1.79-.46 2.3-.59m-2.3.59c.48-.13.95-.25 2.3-.59m0 0c.51-.08 1.02-.16 2.39-.37m-2.39.37 2.39-.37m0 0c.52-.02 1.03-.05 2.46-.12m-2.46.12c.74-.03 1.48-.07 2.46-.12m0 0 103.34-.27m-103.34.27c30.04-.08 60.08-.16 103.34-.27"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"var(--input-bg-color)",strokeWidth:"0",d:"M517.462 135h-128V7l128 128"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"18",d:"M517.462 135h-128m128 0h-128m0 0V7m0 128V7m0 0 128 128m-128-128 128 128m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"}))),obsidian:React__namespace.createElement("svg",{focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("defs",null,React__namespace.createElement("radialGradient",{id:"b",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-48 -185 123 -32 179 429.7)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".4"}),React__namespace.createElement("stop",{offset:"1",stopOpacity:".1"})),React__namespace.createElement("radialGradient",{id:"c",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(41 -310 229 30 341.6 351.3)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".6"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".1"})),React__namespace.createElement("radialGradient",{id:"d",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(57 -261 178 39 190.5 296.3)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".8"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".4"})),React__namespace.createElement("radialGradient",{id:"e",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-79 -133 153 -90 321.4 464.2)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".3"}),React__namespace.createElement("stop",{offset:"1",stopOpacity:".3"})),React__namespace.createElement("radialGradient",{id:"f",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-29 136 -92 -20 300.7 149.9)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:"0"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".2"})),React__namespace.createElement("radialGradient",{id:"g",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(72 73 -155 153 137.8 225.2)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".2"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".4"})),React__namespace.createElement("radialGradient",{id:"h",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(20 118 -251 43 215.1 273.7)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".1"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".3"})),React__namespace.createElement("radialGradient",{id:"i",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"matrix(-162 -85 268 -510 374.4 371.7)"},React__namespace.createElement("stop",{stopColor:"#fff",stopOpacity:".2"}),React__namespace.createElement("stop",{offset:".5",stopColor:"#fff",stopOpacity:".2"}),React__namespace.createElement("stop",{offset:"1",stopColor:"#fff",stopOpacity:".3"})),React__namespace.createElement("filter",{id:"a",x:"80.1",y:"37",width:"351.1",height:"443.2",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},React__namespace.createElement("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),React__namespace.createElement("feBlend",{in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),React__namespace.createElement("feGaussianBlur",{stdDeviation:"6.5",result:"effect1_foregroundBlur_744_9191"}))),React__namespace.createElement("g",{filter:"url(#a)"},React__namespace.createElement("path",{d:"M359.2 437.5c-2.6 19-21.3 33.9-40 28.7-26.5-7.2-57.2-18.6-84.8-20.7l-42.4-3.2a28 28 0 0 1-18-8.3l-73-74.8a27.7 27.7 0 0 1-5.4-30.7s45-98.6 46.8-103.7c1.6-5.1 7.8-49.9 11.4-73.9a28 28 0 0 1 9-16.5L249 57.2a28 28 0 0 1 40.6 3.4l72.6 91.6a29.5 29.5 0 0 1 6.2 18.3c0 17.3 1.5 53 11.2 76a301.3 301.3 0 0 0 35.6 58.2 14 14 0 0 1 1 15.6c-6.3 10.7-18.9 31.3-36.6 57.6a142.2 142.2 0 0 0-20.5 59.6Z",fill:"#000",fillOpacity:".3"})),React__namespace.createElement("path",{id:"arrow",d:"M359.9 434.3c-2.6 19.1-21.3 34-40 28.9-26.4-7.3-57-18.7-84.7-20.8l-42.3-3.2a27.9 27.9 0 0 1-18-8.4l-73-75a27.9 27.9 0 0 1-5.4-31s45.1-99 46.8-104.2c1.7-5.1 7.8-50 11.4-74.2a28 28 0 0 1 9-16.6l86.2-77.5a28 28 0 0 1 40.6 3.5l72.5 92a29.7 29.7 0 0 1 6.2 18.3c0 17.4 1.5 53.2 11.1 76.3a303 303 0 0 0 35.6 58.5 14 14 0 0 1 1.1 15.7c-6.4 10.8-18.9 31.4-36.7 57.9a143.3 143.3 0 0 0-20.4 59.8Z",fill:"#6c31e3"}),React__namespace.createElement("path",{d:"M182.7 436.4c33.9-68.7 33-118 18.5-153-13.2-32.4-37.9-52.8-57.3-65.5-.4 1.9-1 3.7-1.8 5.4L96.5 324.8a27.9 27.9 0 0 0 5.5 31l72.9 75c2.3 2.3 5 4.2 7.8 5.6Z",fill:"url(#b)"}),React__namespace.createElement("path",{d:"M274.9 297c9.1.9 18 2.9 26.8 6.1 27.8 10.4 53.1 33.8 74 78.9 1.5-2.6 3-5.1 4.6-7.5a1222 1222 0 0 0 36.7-57.9 14 14 0 0 0-1-15.7 303 303 0 0 1-35.7-58.5c-9.6-23-11-58.9-11.1-76.3 0-6.6-2.1-13.1-6.2-18.3l-72.5-92-1.2-1.5c5.3 17.5 5 31.5 1.7 44.2-3 11.8-8.6 22.5-14.5 33.8-2 3.8-4 7.7-5.9 11.7a140 140 0 0 0-15.8 58c-1 24.2 3.9 54.5 20 95Z",fill:"url(#c)"}),React__namespace.createElement("path",{d:"M274.8 297c-16.1-40.5-21-70.8-20-95 1-24 8-42 15.8-58l6-11.7c5.8-11.3 11.3-22 14.4-33.8a78.5 78.5 0 0 0-1.7-44.2 28 28 0 0 0-39.4-2l-86.2 77.5a28 28 0 0 0-9 16.6L144.2 216c0 .7-.2 1.3-.3 2 19.4 12.6 44 33 57.3 65.3 2.6 6.4 4.8 13.1 6.4 20.4a200 200 0 0 1 67.2-6.8Z",fill:"url(#d)"}),React__namespace.createElement("path",{d:"M320 463.2c18.6 5.1 37.3-9.8 39.9-29a153 153 0 0 1 15.9-52.2c-21-45.1-46.3-68.5-74-78.9-29.5-11-61.6-7.3-94.2.6 7.3 33.1 3 76.4-24.8 132.7 3.1 1.6 6.6 2.5 10.1 2.8l43.9 3.3c23.8 1.7 59.3 14 83.2 20.7Z",fill:"url(#e)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M255 200.5c-1.1 24 1.9 51.4 18 91.8l-5-.5c-14.5-42.1-17.7-63.7-16.6-88 1-24.3 8.9-43 16.7-59 2-4 6.6-11.5 8.6-15.3 5.8-11.3 9.7-17.2 13-27.5 4.8-14.4 3.8-21.2 3.2-28 3.7 24.5-10.4 45.8-21 67.5a145 145 0 0 0-17 59Z",fill:"url(#f)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M206 285.1c2 4.4 3.7 8 4.9 13.5l-4.3 1c-1.7-6.4-3-11-5.5-16.5-14.6-34.3-38-52-57-65 23 12.4 46.7 31.9 61.9 67Z",fill:"url(#g)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M211.1 303c8 37.5-1 85.2-27.5 131.6 22.2-46 33-90.1 24-131l3.5-.7Z",fill:"url(#h)"}),React__namespace.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M302.7 299.5c43.5 16.3 60.3 52 72.8 81.9-15.5-31.2-37-65.7-74.4-78.5-28.4-9.8-52.4-8.6-93.5.7l-.9-4c43.6-10 66.4-11.2 96 0Z",fill:"url(#i)"})),"add-file":React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"}),React__namespace.createElement("polyline",{points:"14 2 14 8 20 8"}),React__namespace.createElement("line",{x1:"12",x2:"12",y1:"18",y2:"12"}),React__namespace.createElement("line",{x1:"9",x2:"15",y1:"15",y2:"15"}))},SwordColors={Bronze:{grip:"#cd7f32",decoration:"#96510d",blade:"#7A420B",bladeFillLight:"#E1B384",title:"Apprentice of Sketchnoting"},Silver:{grip:"#CECDCC",decoration:"#b2b0b0",blade:"#979595",bladeFillLight:"#F5F5F5",title:"Champion of Spatial Thinking"},Gold:{grip:"#F5D000",decoration:"#D6B600",blade:"#B89C00",bladeFillLight:"#FFEA70",title:"Hero of Visual Notetaking"},Platinum:{grip:"#646261",decoration:"#323131",blade:"#000",bladeFillLight:"#8B8988",title:"Legend of Visual Thinking"}},excalidrawSword=e=>{const{grip:t,decoration:a,blade:i,bladeFillLight:n}=SwordColors[e];return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 528 1140"},React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:n,d:"m272 979 118-121-80-571-104 1-36 580 104 113-1-2"}),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeWidth:"4",d:"M271 978c31-30 67-60 117-120M273 979c42-46 89-95 115-120m-1-1c-19-163-41-323-79-569m78 570c-20-165-42-329-78-570m-2 0c-23-2-56-2-102 0m106-1c-34 0-63-1-104 1m0 1c-12 192-21 384-34 574m33-576-31 576m3 2c30 40 71 85 98 112M173 863c38 47 75 87 100 117m1 1s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fill:"none",fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{stroke:i,strokeWidth:".5",d:"M207 287s0 0 0 0m0 0s0 0 0 0m-2 6 7-5m-6 6 6-7m-6 17c0-8 3-14 10-15m-9 12c4-3 5-8 12-14m-11 20c4-7 6-8 11-20m-13 19c4-6 10-10 15-16m-14 27c4-12 7-14 21-28m-23 24c8-6 13-16 23-27m-23 35c14-11 17-26 31-37m-32 37c10-10 16-17 28-35m-29 39c12-6 18-13 31-37m-28 37c5-8 12-14 33-37m-33 47c7-12 20-27 36-44m-36 42c14-17 26-36 38-44m-36 53c8-11 22-26 37-53m-42 48c14-14 29-29 46-49m-45 60c18-29 42-49 52-62m-52 61c18-22 36-40 52-59m-56 63c15-17 34-27 57-65m-54 66 58-63m-62 71c15-18 35-38 64-74m-62 74c25-30 48-57 62-71m-62 78c22-25 42-52 72-75m-71 72c22-26 47-53 70-75m-69 84c25-30 50-67 70-88m-72 87 74-82m-72 85c30-27 58-58 75-89m-75 94c17-23 37-42 79-90m-82 97c24-21 45-47 86-95m-85 94 84-98m-84 105c22-23 40-48 92-105m-93 106c23-30 47-57 90-105m-90 106c29-25 51-56 95-105m-94 108c19-23 38-47 96-109m-93 118c36-44 72-86 93-114m-98 114c30-35 55-69 102-120M197 408c30-26 58-60 110-119M199 412l108-124M198 421c31-37 66-71 111-129M201 418c32-41 71-82 110-130M196 426c38-43 73-77 119-132M198 426l114-130M196 430c41-47 85-87 120-128M198 431c29-29 53-57 113-133M201 436c25-31 51-61 112-127M198 439c28-30 52-61 114-133M194 442c29-33 63-65 123-134M198 442c42-48 85-97 118-132M195 449c28-35 63-63 122-135M198 449c43-49 88-96 117-131M197 459c45-51 86-103 121-139M199 455c47-49 88-100 117-133M196 463c31-40 67-74 121-133M199 463c44-52 90-106 119-137M195 467c41-39 77-90 118-133M196 472c26-34 54-62 121-141M196 478c45-49 89-102 122-138M198 476c26-28 52-58 117-138M195 481c36-41 69-86 124-140M197 481c26-33 55-66 120-141M192 486c45-46 90-93 123-138M196 490c34-34 64-72 123-142M194 494c42-43 83-93 129-138M194 496c30-32 57-65 127-144M195 506c44-55 88-99 125-146M195 504l123-146M197 506c41-41 80-87 127-142M193 511c40-42 77-84 129-148M195 518c26-37 57-72 127-146M193 517c41-52 85-101 128-146M192 523c42-42 77-85 133-147M192 524c49-60 98-116 129-151M193 527c34-34 69-71 128-147M194 528c45-53 88-104 130-149M192 537c48-48 92-98 129-155M192 537c50-56 99-112 132-152M190 540c47-54 97-107 138-152M192 541c39-49 82-97 131-151M191 546c36-38 68-78 136-153M192 549c51-62 105-123 133-154M194 558c27-42 55-72 134-159M190 557c31-35 59-71 135-155M191 564c49-53 91-108 139-162M190 562l137-155M189 567l142-153M190 568c40-43 76-87 137-157M189 572c50-50 98-108 138-155M190 574l139-158M192 579c58-62 109-126 136-156M190 581c44-48 87-98 139-158M191 591c51-58 95-111 140-164M190 588c35-43 70-84 140-162M188 592c32-32 60-65 139-160M188 595l143-162M191 602c31-43 72-87 141-168M189 600c34-32 64-67 142-161M185 610c54-57 102-117 149-165M187 606c53-58 100-114 146-164M191 610c53-54 106-112 141-166M188 615c37-40 74-81 143-167M185 621c46-46 87-94 150-167M187 621c32-35 64-70 148-169M190 625c45-52 94-112 141-169M188 625c56-62 113-124 146-167M189 633l144-172M187 633c34-40 67-76 146-171M186 643c34-44 71-90 148-172M185 639c60-70 119-135 152-172M187 643c39-43 81-86 147-172M187 646c29-37 61-73 148-172M187 651c52-60 102-117 148-174M185 651l152-171M185 661c59-73 121-137 151-175M187 660c31-44 66-83 150-175M183 667c44-51 84-95 153-176M186 667c35-40 68-78 153-179M183 674c40-47 80-99 158-178M184 671c57-69 116-137 155-175M187 678c39-44 79-97 154-180M185 681c55-62 112-126 153-180M187 687c51-62 110-121 152-178M185 684c29-37 62-73 155-179M181 692c50-63 104-125 163-182M185 692l156-183M187 696c39-46 87-96 154-181M185 697c43-51 84-100 156-180M184 704c48-52 103-110 158-184M185 705c54-69 115-138 159-182M184 710c62-70 131-143 157-183M184 712c59-72 119-143 161-186M184 721c60-71 118-142 159-189M184 719c40-50 86-104 162-186M184 722c41-45 81-91 163-186M182 725c63-76 127-148 163-189M179 728c55-59 110-124 167-188M182 731c45-50 92-104 163-190M179 740c43-47 82-97 169-194M182 738l163-191M184 741c50-62 105-129 166-190M182 743c35-45 74-89 166-189M182 753c33-44 67-87 164-193M180 749c42-43 83-88 169-189M181 757c58-70 125-145 166-195M181 757l166-193M179 763c39-39 73-85 172-193M180 764l169-196M176 771c73-77 138-156 171-196M181 770c47-57 98-115 168-196M182 778c68-77 129-153 171-201M178 777c46-54 93-104 171-197M180 780c54-64 113-132 171-197M180 782c50-56 101-118 171-199M180 789c43-52 90-101 170-197M179 789c43-43 83-90 174-198M178 795c63-64 120-138 173-198M178 795c47-52 93-106 175-201M178 803c42-45 82-96 176-206M177 802c55-62 111-128 176-200M176 809c65-65 124-136 180-201M177 810l176-206M175 817c58-71 118-136 182-203M178 816c69-82 141-162 176-205M175 819c39-40 79-86 180-204M176 822c60-66 117-133 180-208M178 827c40-41 76-91 179-203M176 829c36-47 75-90 180-206M174 835c59-62 114-123 180-211M175 835c36-44 75-86 181-209M176 842c38-48 79-98 182-212M177 842c59-66 115-131 182-210M176 849c44-58 96-119 185-212M176 848c36-46 76-92 183-210M177 853c51-56 99-114 181-210M173 856c59-70 122-140 186-215M176 862c35-44 77-87 184-212M175 862c61-69 120-135 187-216M177 862c74-75 142-156 183-208M177 866c53-58 103-119 183-211M180 866c66-70 131-149 182-211M180 869c44-53 89-104 183-211M180 873c61-70 117-142 185-206M182 871c48-55 94-106 181-208M184 873c41-47 82-97 180-204M185 874c64-75 126-147 179-204M190 879c35-42 72-86 174-202M186 878c58-69 116-138 177-203M188 882c38-46 81-96 174-203M189 881c58-65 117-129 177-200M195 883c53-65 105-123 170-201M192 884c48-62 103-120 174-199M196 886c64-76 132-155 172-199M194 885c52-55 102-115 172-194M195 888c42-36 75-79 173-193M197 889c55-58 105-116 171-195M203 895c55-70 115-138 164-192M201 892c53-64 106-125 165-191M203 897c42-53 82-98 166-188M202 896c34-35 68-74 167-189M205 901c54-62 109-127 161-192M207 897c46-57 96-115 161-188M209 899c46-51 92-101 159-185M209 900c37-35 68-74 161-183M210 906c50-62 103-118 163-187M210 905c45-55 92-103 161-184M212 907c50-59 103-117 159-177M213 908c35-45 73-88 157-181M219 912c46-57 97-115 153-181M215 912c50-56 100-112 156-180M219 916c48-60 96-108 152-177M217 915c30-39 61-72 156-178M218 916c45-47 86-91 153-175M220 918c34-37 69-78 153-176M226 918l149-171M225 919c43-50 83-97 149-170M223 924c33-34 64-71 154-174M228 923c34-42 68-82 148-172M226 930c41-44 76-89 147-174M229 925c35-43 72-84 146-168M231 932l144-168M231 929c49-54 99-111 145-165M234 931c29-36 63-69 143-160M233 933l144-163M237 935c49-53 99-111 137-162M236 934c51-55 99-111 142-161M239 942c44-51 88-100 140-163M239 938l139-157M243 941c31-39 65-79 138-156M242 940l135-154M248 945c52-62 99-123 133-153M245 945l134-153M250 947c32-43 66-85 130-148M246 948c44-50 83-97 133-152M247 951c35-36 65-72 134-148M251 952c50-55 101-114 128-151M254 957c34-50 80-99 128-152M255 954c46-59 93-114 128-148M255 956c53-55 101-120 127-149M257 957c37-43 73-83 125-146M261 962c39-49 83-101 118-142M259 961l122-143M258 961c37-42 71-83 127-139M261 965c30-37 61-69 122-142M265 965c48-46 86-99 120-136M262 964c42-50 88-99 123-136M263 967c43-47 88-91 124-134M267 970c33-41 67-79 117-138M272 971c41-45 75-82 116-134M269 972c31-41 66-82 118-136M268 974c30-35 64-68 120-134M270 975l118-134M275 975c31-28 60-62 113-127M273 976c29-31 55-65 115-128M274 980c47-43 87-97 116-128M275 980c26-26 51-57 111-126"}),React__namespace.createElement("path",{stroke:"black",d:"M272 980c39-30 68-66 119-121M273 982c49-46 92-93 114-126m1 0c-26-177-53-358-78-568m78 570c-18-155-40-312-78-569m3-1c-31-1-59 0-106-3m101 3c-29-2-59 0-101-1m-1 1c-10 204-24 410-31 575m32-576c-10 116-16 231-32 576m-2-1c27 25 44 44 105 120M175 865l98 117m2-2s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:i,strokeLinecap:"round",strokeWidth:"4",d:"M271 610c1 44 6 217 6 261m-10-263 9 258"}),React__namespace.createElement("g",{fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{fill:"#dbc9f3",d:"m320 484-4-4-5-3-4-3-4-2-5-2-4-1-5-1h-13l-4 1-5 2-4 2-5 3-4 3-5 4-133 117-5 4-2 2-2 2-2 2-2 2-1 3-1 3-19 127 10 7 10 8 10 7 9 8 8 8 8 8 7 8 7 9 6 9 6 9 5 9 4 9 5 10 3 9 4 10 2 10 15-3 8-2 7-1 7-1 6-1 7-1 6-1 6-1h6l6-1h16l4 1h5l-4-10-2-10-3-10-2-10-3-10-1-10-2-10-1-9-1-10v-10l-1-9v-19l1-10 1-9 1-9 1-10 1-9 2-9 2-9 2-9 3-10 3-9 2-9 4-9 3-9 3-9 4-9 4-9 4-9 9-19 2-3 2-4 1-4 1-5 2-4 1-5v-5l1-6v-23l-1-6-1-7-1-7-2-7"}),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeWidth:"4",d:"M320 484s0 0 0 0m0 0s0 0 0 0m0 0-4-4m4 4-4-4m0 0-5-3m5 3-5-3m0 0-4-3m4 3-4-3m0 0-4-2m4 2-4-2m0 0-5-2m5 2-5-2m0 0-4-1m4 1-4-1m0 0-5-1m5 1-5-1m0 0h-4m4 0h-4m0 0h-5m5 0h-5m0 0h-4m4 0h-4m0 0-4 1m4-1-4 1m0 0-5 2m5-2-5 2m0 0-4 2m4-2-4 2m0 0-5 3m5-3-5 3m0 0-4 3m4-3-4 3m0 0-5 4m5-4-5 4m0 0L116 600m133-117L116 600m0 0s0 0 0 0m0 0s0 0 0 0m0 0-5 4m5-4-5 4m0 0-2 2m2-2-2 2m0 0-2 2m2-2-2 2m0 0-2 2m2-2-2 2m0 0-2 2m2-2-2 2m0 0-1 3m1-3-1 3m0 0-1 3m1-3-1 3m0 0L82 745m19-127L82 745m0 0s0 0 0 0m0 0s0 0 0 0m0 0 10 7m-10-7 10 7m0 0 10 8m-10-8 10 8m0 0 10 7m-10-7 10 7m0 0 9 8m-9-8 9 8m0 0 8 8m-8-8 8 8m0 0 8 8m-8-8 8 8m0 0 7 8m-7-8 7 8m0 0 7 9m-7-9 7 9m0 0 6 9m-6-9 6 9m0 0 6 9m-6-9 6 9m0 0 5 9m-5-9 5 9m0 0 4 9m-4-9 4 9m0 0 5 10m-5-10 5 10m0 0 3 9m-3-9 3 9m0 0 4 10m-4-10 4 10m0 0 2 10m-2-10 2 10m0 0 15-3m-15 3 15-3m0 0 8-2m-8 2 8-2m0 0 7-1m-7 1 7-1m0 0 7-1m-7 1 7-1m0 0 6-1m-6 1 6-1m0 0 7-1m-7 1 7-1m0 0 6-1m-6 1 6-1m0 0 6-1m-6 1 6-1m0 0h6m-6 0h6m0 0 6-1m-6 1 6-1m0 0h5m-5 0h5m0 0h6m-6 0h6m0 0h5m-5 0h5m0 0 4 1m-4-1 4 1m0 0h5m-5 0h5m0 0-4-10m4 10-4-10m0 0-2-10m2 10-2-10m0 0-3-10m3 10-3-10m0 0-2-10m2 10-2-10m0 0-3-10m3 10-3-10m0 0-1-10m1 10-1-10m0 0-2-10m2 10-2-10m0 0-1-9m1 9-1-9m0 0-1-10m1 10-1-10m0 0v-10m0 10v-10m0 0-1-9m1 9-1-9m0 0v-10m0 10v-10m0 0v-9m0 9v-9m0 0 1-10m-1 10 1-10m0 0 1-9m-1 9 1-9m0 0 1-9m-1 9 1-9m0 0 1-10m-1 10 1-10m0 0 1-9m-1 9 1-9m0 0 2-9m-2 9 2-9m0 0 2-9m-2 9 2-9m0 0 2-9m-2 9 2-9m0 0 3-10m-3 10 3-10m0 0 3-9m-3 9 3-9m0 0 2-9m-2 9 2-9m0 0 4-9m-4 9 4-9m0 0 3-9m-3 9 3-9m0 0 3-9m-3 9 3-9m0 0 4-9m-4 9 4-9m0 0 4-9m-4 9 4-9m0 0 4-9m-4 9 4-9m0 0 9-19m-9 19 9-19m0 0 2-3m-2 3 2-3m0 0 2-4m-2 4 2-4m0 0 1-4m-1 4 1-4m0 0 1-5m-1 5 1-5m0 0 2-4m-2 4 2-4m0 0 1-5m-1 5 1-5m0 0v-5m0 5v-5m0 0 1-6m-1 6 1-6m0 0v-5m0 5v-5m0 0v-6m0 6v-6m0 0v-6m0 6v-6m0 0v-6m0 6v-6m0 0-1-6m1 6-1-6m0 0-1-7m1 7-1-7m0 0-1-7m1 7-1-7m0 0-2-7m2 7-2-7m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{fill:"#a887e8",d:"m434 628 3 4 3 5 2 6 2 5 2 6 1 5 1 7v6l1 13 1 13 1 12 2 13 2 12 3 13 4 12 4 12 4 13 5 12 5 12 7 12 6 11 7 12 8 12 9 12 3 3 2 3 2 3 1 3 1 3 1 3 1 3v5l-1 3-1 2-1 3-1 3-1 2-4 5-61 100-4-9-4-8-4-8-4-8-4-7-5-7-4-7-5-7-4-6-5-6-5-6-5-6-5-5-5-5-5-4-6-5-5-4-6-4-6-4-5-3-6-3-6-3-6-3-6-2-7-2-6-2-7-2-6-1-7-2-7-1h-6l-7-1-4-10-3-10-2-10-3-9-2-10-2-10-1-10-2-9-1-10v-9l-1-10v-19l1-9v-9l1-10 1-9 2-9 1-9 2-10 2-9 3-9 2-9 3-9 3-9 4-9 3-9 4-10 4-9 5-9 4-9 5-9 2-5 2-5 2-5 2-5 1-5 1-5 1-6v-22l-1-6-1-5v-6l-3-12 114 144"}),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeWidth:"4",d:"M434 628s0 0 0 0m0 0s0 0 0 0m0 0 3 4m-3-4 3 4m0 0 3 5m-3-5 3 5m0 0 2 6m-2-6 2 6m0 0 2 5m-2-5 2 5m0 0 2 6m-2-6 2 6m0 0 1 5m-1-5 1 5m0 0 1 7m-1-7 1 7m0 0v6m0-6v6m0 0 1 13m-1-13 1 13m0 0 1 13m-1-13 1 13m0 0 1 12m-1-12 1 12m0 0 2 13m-2-13 2 13m0 0 2 12m-2-12 2 12m0 0 3 13m-3-13 3 13m0 0 4 12m-4-12 4 12m0 0 4 12m-4-12 4 12m0 0 4 13m-4-13 4 13m0 0 5 12m-5-12 5 12m0 0 5 12m-5-12 5 12m0 0 7 12m-7-12 7 12m0 0 6 11m-6-11 6 11m0 0 7 12m-7-12 7 12m0 0 8 12m-8-12 8 12m0 0 9 12m-9-12 9 12m0 0 3 3m-3-3 3 3m0 0 2 3m-2-3 2 3m0 0 2 3m-2-3 2 3m0 0 1 3m-1-3 1 3m0 0 1 3m-1-3 1 3m0 0 1 3m-1-3 1 3m0 0 1 3m-1-3 1 3m0 0v3m0-3v3m0 0v2m0-2v2m0 0-1 3m1-3-1 3m0 0-1 2m1-2-1 2m0 0-1 3m1-3-1 3m0 0-1 3m1-3-1 3m0 0-1 2m1-2-1 2m0 0-4 5m4-5-4 5m0 0-61 100m61-100-61 100m0 0s0 0 0 0m0 0s0 0 0 0m0 0-4-9m4 9-4-9m0 0-4-8m4 8-4-8m0 0-4-8m4 8-4-8m0 0-4-8m4 8-4-8m0 0-4-7m4 7-4-7m0 0-5-7m5 7-5-7m0 0-4-7m4 7-4-7m0 0-5-7m5 7-5-7m0 0-4-6m4 6-4-6m0 0-5-6m5 6-5-6m0 0-5-6m5 6-5-6m0 0-5-6m5 6-5-6m0 0-5-5m5 5-5-5m0 0-5-5m5 5-5-5m0 0-5-4m5 4-5-4m0 0-6-5m6 5-6-5m0 0-5-4m5 4-5-4m0 0-6-4m6 4-6-4m0 0-6-4m6 4-6-4m0 0-5-3m5 3-5-3m0 0-6-3m6 3-6-3m0 0-6-3m6 3-6-3m0 0-6-3m6 3-6-3m0 0-6-2m6 2-6-2m0 0-7-2m7 2-7-2m0 0-6-2m6 2-6-2m0 0-7-2m7 2-7-2m0 0-6-1m6 1-6-1m0 0-7-2m7 2-7-2m0 0-7-1m7 1-7-1m0 0h-6m6 0h-6m0 0-7-1m7 1-7-1m0 0-4-10m4 10-4-10m0 0-3-10m3 10-3-10m0 0-2-10m2 10-2-10m0 0-3-9m3 9-3-9m0 0-2-10m2 10-2-10m0 0-2-10m2 10-2-10m0 0-1-10m1 10-1-10m0 0-2-9m2 9-2-9m0 0-1-10m1 10-1-10m0 0v-9m0 9v-9m0 0-1-10m1 10-1-10m0 0v-9m0 9v-9m0 0v-10m0 10v-10m0 0 1-9m-1 9 1-9m0 0v-9m0 9v-9m0 0 1-10m-1 10 1-10m0 0 1-9m-1 9 1-9m0 0 2-9m-2 9 2-9m0 0 1-9m-1 9 1-9m0 0 2-10m-2 10 2-10m0 0 2-9m-2 9 2-9m0 0 3-9m-3 9 3-9m0 0 2-9m-2 9 2-9m0 0 3-9m-3 9 3-9m0 0 3-9m-3 9 3-9m0 0 4-9m-4 9 4-9m0 0 3-9m-3 9 3-9m0 0 4-10m-4 10 4-10m0 0 4-9m-4 9 4-9m0 0 5-9m-5 9 5-9m0 0 4-9m-4 9 4-9m0 0 5-9m-5 9 5-9m0 0 2-5m-2 5 2-5m0 0 2-5m-2 5 2-5m0 0 2-5m-2 5 2-5m0 0 2-5m-2 5 2-5m0 0 1-5m-1 5 1-5m0 0 1-5m-1 5 1-5m0 0 1-6m-1 6 1-6m0 0v-5m0 5v-5m0 0v-6m0 6v-6m0 0v-5m0 5v-5m0 0v-6m0 6v-6m0 0-1-6m1 6-1-6m0 0-1-5m1 5-1-5m0 0v-6m0 6v-6m0 0-3-12m3 12-3-12m0 0 114 144M320 484l114 144m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{fill:"#6342a0",d:"m184 884 2 7 2 7 1 8 1 7 1 7 1 7v7l1 7v7l-1 7v7l-1 7v7l-1 7-3 13-3 13-4 14-5 12-5 13-6 13-6 12-6 13-8 12h14l14 1h14l14 1 13 1 14 2 13 2 14 1 13 3 13 2 13 3 13 3 13 4 12 4 13 4 12 5 7 2 6 2 6 1 6 1h5l5-1 6-1 4-2 5-3 5-3 4-4 4-4 2-3 1-2 2-3 2-3 2-4 1-3 2-4 1-4 25-85-5-11-4-11-6-10-5-10-6-9-6-9-6-8-6-8-7-8-7-7-7-6-7-6-8-6-8-5-8-5-8-4-9-4-9-3-9-3-9-2-10-2-10-2-10-1h-32l-11 1-12 2-11 1-12 3-12 3-13 3"}),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeWidth:"4",d:"M184 884s0 0 0 0m0 0s0 0 0 0m0 0 2 7m-2-7 2 7m0 0 2 7m-2-7 2 7m0 0 1 8m-1-8 1 8m0 0 1 7m-1-7 1 7m0 0 1 7m-1-7 1 7m0 0 1 7m-1-7 1 7m0 0v7m0-7v7m0 0 1 7m-1-7 1 7m0 0v7m0-7v7m0 0-1 7m1-7-1 7m0 0v7m0-7v7m0 0-1 7m1-7-1 7m0 0v7m0-7v7m0 0-1 7m1-7-1 7m0 0-3 13m3-13-3 13m0 0-3 13m3-13-3 13m0 0-4 14m4-14-4 14m0 0-5 12m5-12-5 12m0 0-5 13m5-13-5 13m0 0-6 13m6-13-6 13m0 0-6 12m6-12-6 12m0 0-6 13m6-13-6 13m0 0-8 12m8-12-8 12m0 0h14m-14 0h14m0 0 14 1m-14-1 14 1m0 0h14m-14 0h14m0 0 14 1m-14-1 14 1m0 0 13 1m-13-1 13 1m0 0 14 2m-14-2 14 2m0 0 13 2m-13-2 13 2m0 0 14 1m-14-1 14 1m0 0 13 3m-13-3 13 3m0 0 13 2m-13-2 13 2m0 0 13 3m-13-3 13 3m0 0 13 3m-13-3 13 3m0 0 13 4m-13-4 13 4m0 0 12 4m-12-4 12 4m0 0 13 4m-13-4 13 4m0 0 12 5m-12-5 12 5m0 0 7 2m-7-2 7 2m0 0 6 2m-6-2 6 2m0 0 6 1m-6-1 6 1m0 0 6 1m-6-1 6 1m0 0h5m-5 0h5m0 0 5-1m-5 1 5-1m0 0 6-1m-6 1 6-1m0 0 4-2m-4 2 4-2m0 0 5-3m-5 3 5-3m0 0 5-3m-5 3 5-3m0 0 4-4m-4 4 4-4m0 0 4-4m-4 4 4-4m0 0 2-3m-2 3 2-3m0 0 1-2m-1 2 1-2m0 0 2-3m-2 3 2-3m0 0 2-3m-2 3 2-3m0 0 2-4m-2 4 2-4m0 0 1-3m-1 3 1-3m0 0 2-4m-2 4 2-4m0 0 1-4m-1 4 1-4m0 0 25-85m-25 85 25-85m0 0s0 0 0 0m0 0s0 0 0 0m0 0-5-11m5 11-5-11m0 0-4-11m4 11-4-11m0 0-6-10m6 10-6-10m0 0-5-10m5 10-5-10m0 0-6-9m6 9-6-9m0 0-6-9m6 9-6-9m0 0-6-8m6 8-6-8m0 0-6-8m6 8-6-8m0 0-7-8m7 8-7-8m0 0-7-7m7 7-7-7m0 0-7-6m7 6-7-6m0 0-7-6m7 6-7-6m0 0-8-6m8 6-8-6m0 0-8-5m8 5-8-5m0 0-8-5m8 5-8-5m0 0-8-4m8 4-8-4m0 0-9-4m9 4-9-4m0 0-9-3m9 3-9-3m0 0-9-3m9 3-9-3m0 0-9-2m9 2-9-2m0 0-10-2m10 2-10-2m0 0-10-2m10 2-10-2m0 0-10-1m10 1-10-1m0 0h-10m10 0h-10m0 0h-11m11 0h-11m0 0h-11m11 0h-11m0 0-11 1m11-1-11 1m0 0-12 2m12-2-12 2m0 0-11 1m11-1-11 1m0 0-12 3m12-3-12 3m0 0-12 3m12-3-12 3m0 0-13 3m13-3-13 3m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{fill:"#390f8c",d:"m82 745 13 9 6 5 6 4 6 5 5 5 6 5 5 5 5 6 5 5 5 6 5 6 4 6 4 6 4 6 4 6 3 6 4 7 3 6 2 7 3 7 2 7 2 7 2 7 1 6 2 7 1 7 2 6 1 7v7l1 6v33l-1 7-1 7-1 6-1 7-1 6-2 7-1 7-2 6-3 7-2 6-3 7-2 7-3 6-4 7-3 7-3 6-4 7-4 7-4 7-5 6L16 970l-3-4-4-3-2-4-3-4-1-4-2-5-1-4v-9l1-5v-5l2-5 2-5 2-6 3-5 3-6 69-151"}),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeWidth:"4",d:"M82 745s0 0 0 0m0 0s0 0 0 0m0 0 13 9m-13-9 13 9m0 0 6 5m-6-5 6 5m0 0 6 4m-6-4 6 4m0 0 6 5m-6-5 6 5m0 0 5 5m-5-5 5 5m0 0 6 5m-6-5 6 5m0 0 5 5m-5-5 5 5m0 0 5 6m-5-6 5 6m0 0 5 5m-5-5 5 5m0 0 5 6m-5-6 5 6m0 0 5 6m-5-6 5 6m0 0 4 6m-4-6 4 6m0 0 4 6m-4-6 4 6m0 0 4 6m-4-6 4 6m0 0 4 6m-4-6 4 6m0 0 3 6m-3-6 3 6m0 0 4 7m-4-7 4 7m0 0 3 6m-3-6 3 6m0 0 2 7m-2-7 2 7m0 0 3 7m-3-7 3 7m0 0 2 7m-2-7 2 7m0 0 2 7m-2-7 2 7m0 0 2 7m-2-7 2 7m0 0 1 6m-1-6 1 6m0 0 2 7m-2-7 2 7m0 0 1 7m-1-7 1 7m0 0 2 6m-2-6 2 6m0 0 1 7m-1-7 1 7m0 0v7m0-7v7m0 0 1 6m-1-6 1 6m0 0v7m0-7v7m0 0v7m0-7v7m0 0v6m0-6v6m0 0v7m0-7v7m0 0v6m0-6v6m0 0-1 7m1-7-1 7m0 0-1 7m1-7-1 7m0 0-1 6m1-6-1 6m0 0-1 7m1-7-1 7m0 0-1 6m1-6-1 6m0 0-2 7m2-7-2 7m0 0-1 7m1-7-1 7m0 0-2 6m2-6-2 6m0 0-3 7m3-7-3 7m0 0-2 6m2-6-2 6m0 0-3 7m3-7-3 7m0 0-2 7m2-7-2 7m0 0-3 6m3-6-3 6m0 0-4 7m4-7-4 7m0 0-3 7m3-7-3 7m0 0-3 6m3-6-3 6m0 0-4 7m4-7-4 7m0 0-4 7m4-7-4 7m0 0-4 7m4-7-4 7m0 0-5 6m5-6-5 6m0 0L16 970m128 126L16 970m0 0s0 0 0 0m0 0s0 0 0 0m0 0-3-4m3 4-3-4m0 0-4-3m4 3-4-3m0 0-2-4m2 4-2-4m0 0-3-4m3 4-3-4m0 0-1-4m1 4-1-4m0 0-2-5m2 5-2-5m0 0-1-4m1 4-1-4m0 0v-4m0 4v-4m0 0v-5m0 5v-5m0 0 1-5m-1 5 1-5m0 0v-5m0 5v-5m0 0 2-5m-2 5 2-5m0 0 2-5m-2 5 2-5m0 0 2-6m-2 6 2-6m0 0 3-5m-3 5 3-5m0 0 3-6m-3 6 3-6m0 0 69-151M13 896l69-151m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"#CECDCC",strokeLinecap:"round",strokeWidth:"10",d:"M86 746s0 0 0 0m0 0s0 0 0 0m0 0 11 8m-11-8 11 8m0 0 10 8m-10-8 10 8m0 0 10 9m-10-9 10 9m0 0 8 8m-8-8 8 8m0 0 8 8m-8-8 8 8m0 0 8 8m-8-8 8 8m0 0 6 9m-6-9 6 9m0 0 7 8m-7-8 7 8m0 0 5 8m-5-8 5 8m0 0 6 9m-6-9 6 9m0 0 4 8m-4-8 4 8m0 0 4 9m-4-9 4 9m0 0 4 9m-4-9 4 9m0 0 3 9m-3-9 3 9m0 0 3 9m-3-9 3 9m0 0 3 9m-3-9 3 9m0 0 7-2m-7 2 7-2m0 0 8-1m-8 1 8-1m0 0 7-2m-7 2 7-2m0 0 7-1m-7 1 7-1m0 0 7-1m-7 1 7-1m0 0 7-1m-7 1 7-1m0 0 7-1m-7 1 7-1m0 0 6-1m-6 1 6-1m0 0h6m-6 0h6m0 0 6-1m-6 1 6-1m0 0h6m-6 0h6m0 0 5-1m-5 1 5-1m0 0h5m-5 0h5m0 0h5m-5 0h5m0 0h4m-4 0h4m0 0h4m-4 0h4m0 0-3-11m3 11-3-11m0 0-3-10m3 10-3-10m0 0-3-10m3 10-3-10m0 0-3-10m3 10-3-10m0 0-2-10m2 10-2-10m0 0-2-10m2 10-2-10m0 0-1-10m1 10-1-10m0 0-2-9m2 9-2-9m0 0-1-10m1 10-1-10m0 0v-10m0 10v-10m0 0-1-9m1 9-1-9m0 0v-10m0 10v-10m0 0v-9m0 9v-9m0 0 1-9m-1 9 1-9m0 0 1-10m-1 10 1-10m0 0 1-9m-1 9 1-9m0 0 1-9m-1 9 1-9m0 0 1-10m-1 10 1-10m0 0 2-9m-2 9 2-9m0 0 2-9m-2 9 2-9m0 0 3-9m-3 9 3-9m0 0 2-9m-2 9 2-9m0 0 3-9m-3 9 3-9m0 0 3-9m-3 9 3-9m0 0 3-9m-3 9 3-9m0 0 4-9m-4 9 4-9m0 0 3-9m-3 9 3-9m0 0c2-2 3-5 4-9m-4 9 4-9m0 0 5-9m-5 9 5-9m0 0 4-8m-4 8 4-8m0 0 5-9m-5 9 5-9m0 0 4-11m-4 11 4-11m0 0 4-11m-4 11 4-11m0 0 4-10m-4 10 4-10m0 0 2-11m-2 11 2-11"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"#FFF6F0",d:"m153 288-19-25 21-20 199-5 23 21-24 28-201 3-4-4"}),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeWidth:"4",d:"M153 290c-4-9-13-13-20-29m19 25c-8-8-15-18-22-23m4-5c2-6 16-15 20-20m-23 22c10-7 18-16 27-22m-5 2 205-1m-203-2c57-1 114-4 201-2m2 3 24 23m-24-24c3 7 11 10 20 21m0 0c-8 6-9 21-24 24m25-20c-3 2-10 8-22 21m-1 4c-70-1-146 1-207 1m208-5c-64 2-131 3-205 3m-1 1s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"#E6E6E5",strokeLinecap:"round",strokeWidth:"10",d:"M455 1003s0 0 0 0m0 0s0 0 0 0m0 0-5-10m5 10-5-10m0 0-5-10m5 10-5-10m0 0-5-10m5 10-5-10m0 0-6-9m6 9-6-9m0 0-5-9m5 9-5-9m0 0-6-8m6 8-6-8m0 0-7-8m7 8-7-8m0 0-6-8m6 8-6-8m0 0-6-7m6 7-6-7m0 0-7-6m7 6-7-6m0 0-7-6m7 6-7-6m0 0-7-6m7 6-7-6m0 0-8-5m8 5-8-5m0 0-8-5m8 5-8-5m0 0-8-5m8 5-8-5m0 0-8-4m8 4-8-4m0 0-8-3m8 3-8-3m0 0-9-3m9 3-9-3m0 0-9-3m9 3-9-3m0 0-9-2m9 2-9-2m0 0-9-2m9 2-9-2m0 0-10-1m10 1-10-1m0 0-10-1m10 1-10-1m0 0h-10m10 0h-10m0 0h-10m10 0h-10m0 0h-11m11 0h-11m0 0-11 1m11-1-11 1m0 0-11 1m11-1-11 1m0 0-12 2m12-2-12 2m0 0-12 2m12-2-12 2m0 0-12 2m12-2-12 2m0 0-12 3m12-3-12 3m0 0 2 8m-2-8 2 8m0 0 1 7m-1-7 1 7m0 0 2 7m-2-7 2 7m0 0 1 7m-1-7 1 7m0 0 1 7m-1-7 1 7m0 0 1 7m-1-7 1 7m0 0v7m0-7v7m0 0v6m0-6v6m0 0v7m0-7v7m0 0v7m0-7v7m0 0v6m0-6v6m0 0v7m0-7v7m0 0-2 12m2-12-2 12m0 0-2 13m2-13-2 13m0 0-3 12m3-12-3 12m0 0-4 12m4-12-4 12m0 0-4 12m4-12-4 12m0 0-5 12m5-12-5 12m0 0-5 12m5-12-5 12m0 0-6 13m6-13-6 13m0 0-6 12m6-12-6 12m0 0-7 12m7-12-7 12"}),React__namespace.createElement("path",{fill:"none",stroke:"#6d6d6d",strokeLinecap:"round",strokeWidth:"10",d:"M185 883s0 0 0 0m0 0s0 0 0 0m0 0 3 14m-3-14 3 14m0 0 3 13m-3-13 3 13m0 0 1 13m-1-13 1 13m0 0 1 13m-1-13 1 13m0 0 1 13m-1-13 1 13m0 0-1 13m1-13-1 13m0 0-1 13m1-13-1 13m0 0-2 12m2-12-2 12m0 0-3 13m3-13-3 13m0 0-3 13m3-13-3 13m0 0-4 12m4-12-4 12m0 0-5 13m5-13-5 13m0 0-6 13m6-13-6 13m0 0-6 12m6-12-6 12m0 0-7 13m7-13-7 13m0 0-8 13m8-13-8 13"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:a,d:"m148 291-18-30 23-17 206-3 17 19-22 22-204 9v-5"}),React__namespace.createElement("path",{fill:"none",stroke:"transparent",strokeWidth:".5",d:"M153 289c-5-11-10-12-24-27m21 29c-3-9-9-16-20-30m-1 1c13-6 16-13 26-21m-22 20c5-6 14-14 25-20m-1 2c67-5 137-8 198-6m-199 2c67 3 132 3 203-1m2 1c3 6 15 17 19 19m-23-22c9 12 17 19 21 24m-2 0c-3 9-8 12-15 29m18-29-20 27m-4-1-206 4m209-5c-64 0-131 3-207 2m0 2s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeLinecap:"round",strokeWidth:"4",d:"M153 284c-6-2-17-14-22-25m21 29-21-27m4-1c2-7 8-10 21-24m-26 24c8-7 17-12 27-22m-1 1c75-6 140-6 202-3m-201 1c41 4 81 3 202-2m-3-1c10 7 11 8 25 27m-23-23c5 3 8 9 19 24m-1 0c-8 6-10 19-21 23m25-27c-5 6-9 13-24 25m1 2c-64 1-132 2-206-1m207 0c-56 0-112-2-208 2m1 1s0 0 0 0m0 0s0 0 0 0"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:n,d:"M298 233c-2-10-12-36-12-60 1-24 8-62 13-84s13-37 17-48 7-13 7-16c-1-3-2-2-9-2-7-1-23 1-31-1-9-2-14-9-18-12l-11-6c-3 0 0 0-5 3s-17 12-26 15-19 2-25 2c-7 0-10-4-12-1-1 3 4 13 5 18 2 5 2 2 5 12l11 47 8 62c2 16 4 23 4 32 0 10-4 18-5 25 0 7 0 13 2 17s4 4 12 4l36-3 35-4"}),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeWidth:"4",d:"M297 236c-1-10-8-38-8-62s5-61 9-83 12-40 16-51c3-11 7-12 7-14-1-3-2-1-8-1-6-1-19-1-27-4-9-2-18-8-23-11s-6-7-8-8c-3 0-2 1-7 4s-14 12-23 15c-9 4-22 4-29 5-6 0-8-3-9-1s2 10 4 14l3 15c3 10 11 29 15 46l7 60c2 15 1 25 1 35l-1 26c0 7-3 14-1 17 2 2 6 0 14 0h34l35-2m1 0c-2-11-10-37-10-61-1-24 4-61 8-83 5-22 13-39 17-51 4-11 9-15 8-18 0-3-5 2-11 1l-24-3c-8-2-17-5-22-8-5-4-6-11-8-12-3-1-3 1-8 4-6 3-15 11-24 14-9 4-24 5-30 6s-7-4-8-1c-1 2 2 10 3 15l4 14 12 48c4 18 11 43 12 59 2 16-2 25-2 35l-1 26c0 8-1 16 1 18 2 3 4-2 12-2l36-1h34"})),React__namespace.createElement("g",{fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{fill:n,d:"M293 232c-1-10-6-38-5-61 1-24 7-58 11-80 4-21 12-38 15-50 4-12 9-17 8-19-1-3-9 6-16 5-6 0-13-6-21-8s-20-2-25-4c-5-3-3-12-6-13s-6 5-11 8c-5 2-10 5-18 7s-26 3-32 5c-7 2-5 4-6 7l3 9c0 4-1 2 1 14 2 11 6 35 11 53 4 17 14 37 16 52 2 14-4 26-5 36 0 10 3 16 3 24s-5 21-3 24 9-4 17-5c9-2 20-2 31-2l35-1"}),React__namespace.createElement("path",{fill:"none",stroke:"black",d:"M298 234c-1-11-11-36-12-60 0-24 5-62 9-84s11-36 15-47 11-14 11-17c1-3-2 1-9 0l-31-8c-9-3-15-3-20-6-4-3-6-12-9-12s-1 6-6 9-14 8-23 11l-29 4c-6 1-7-1-8 1-1 3-1 10 1 14 1 5 5 3 8 13s5 30 9 48c3 17 9 41 11 57 2 17 2 30 2 40l-2 23c-1 7-3 15-1 18 3 2 7-1 14-1 8 0 21 3 32 2 12 0 29-6 35-6m1 6c-1-10-12-37-12-62a493 493 0 0 1 26-139c4-10 9-8 9-10-1-2-5-2-11-3s-19-1-27-3l-22-11c-4-3-1-6-3-7-2 0-3 3-8 5-6 3-16 11-25 13-8 2-18 0-24 0-6 1-11-1-12 1-1 3 4 11 6 16 2 4 2 0 4 11l8 52 7 56c2 16 2 30 2 41l-2 21c0 6 2 11 4 13 3 3 3 0 11 1l34 3 33 1"})),React__namespace.createElement("g",{fillOpacity:".8",fillRule:"evenodd",strokeLinecap:"round",strokeOpacity:".8"},React__namespace.createElement("path",{fill:t,d:"M298 233c-1-10-10-35-10-59 0-23 6-60 10-83 5-23 13-41 16-52l4-13c0-3 0-3-6-3-5-1-21 1-29-1-9-2-15-8-20-11l-11-8c-3-1 1-1-4 2l-25 13-27 9c-6 1-8-4-9-3-1 2 0 9 1 14s0 7 4 18c3 10 12 25 16 43 4 17 6 43 7 59 2 16 2 25 2 36l-2 28c-1 7-1 12 1 14s4-1 12-1l33 1 37-3"}),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeWidth:"4",d:"M297 235c-2-10-10-37-10-61-1-24 5-60 9-82 5-22 14-40 18-51s8-13 7-16c0-3-4-2-11-3-6 0-18 0-26-2s-17-7-22-10-6-7-8-7c-3-1-2 1-7 3-5 3-15 10-23 13-9 4-22 5-28 6-7 1-9-2-10 0s3 9 4 13l3 15c3 10 10 28 14 46s8 45 10 61v35l-2 25c0 7-3 14-1 17s6 1 13 1l33-2 37-1m-1-1c-3-10-11-35-11-59 1-24 9-62 14-85 4-23 12-40 15-51l6-17c-1-2-3 3-9 2a123 123 0 0 1-50-15c-5-3-3-7-5-7-3-1-3 1-8 4s-15 11-24 14-23 4-30 5c-6 1-8-3-8-1-1 2 3 9 4 14l3 14c3 10 11 30 15 48l8 61c1 16 0 25-1 35l-1 24c0 7-1 16 1 19s4-1 11-2l34 1 37-3"})),React__namespace.createElement("g",{strokeLinecap:"round"},React__namespace.createElement("path",{fill:a,d:"M256 36c3 0 6 2 8 5s4 9 4 13l-3 12c-2 4-5 7-8 8s-6 1-8-1c-3-2-6-6-7-10s-2-9-1-13 4-8 6-10c2-3 7-4 8-4 2-1 1 1 1 1m1-1c3 0 6 4 8 7l3 12c0 5-2 10-4 13-1 3-4 6-7 7-3 0-8-1-10-4-3-2-5-6-5-10V48c1-4 4-8 6-10 3-2 7-2 9-2v1"}),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeWidth:"4",d:"M252 37c2-1 7-1 9 1l5 10c1 4 2 9 1 13s-4 8-6 11c-3 2-6 3-8 2-3 0-7-3-9-6s-3-8-3-12c-1-4 1-10 3-13s7-5 8-6v-1m0 0c2-1 6 0 9 2 2 2 5 6 6 10v14c-1 4-4 7-6 9-3 2-6 4-9 3-3 0-6-3-8-7-2-3-4-8-4-12s2-9 4-12l8-7v1"})),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"hsla(30, 2%, 62%, 1)",d:"m275 624-12-21c-4-9-7-22-12-30s-12-12-19-18l-23-19c-6-4-10-2-12-5-2-4 0-5 0-16l4-53 8-154c2-28-1-14 2-16s8 3 16 3c7 0 25-6 30-3s-3-3-2 22l7 125 9 187"}),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeWidth:"4",d:"m273 626-9-24c-4-9-6-18-11-26l-21-23-23-14c-5-4-9-4-11-7-2-4-2-2-2-14l3-57 9-154c1-28-1-11 2-13 3-3 11 0 18 0 8-1 25-5 29-2s-3-5-2 19l7 127 12 187m0 0-11-25c-4-9-6-18-11-26-5-7-13-14-21-20-7-6-18-11-23-15-6-3-7-1-9-5s-2-5-2-17c-1-12-1-21 1-56l11-152c3-28-1-14 2-16s10 2 17 2c8-1 24-6 28-4 4 3-2-5-1 19l6 127 14 188"})),React__namespace.createElement("g",{fill:"none",fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{stroke:i,strokeWidth:".3",d:"M208 292s0 0 0 0m0 0s0 0 0 0m0 3 1-1m-1 1 1-1m-1 5 2-4m-3 4 3-4m-3 5c2 0 2-3 7-6m-6 7c0-2 3-3 5-6m-8 12c4-5 5-8 13-14m-11 12c3-5 6-8 9-10m-11 11c3 3 8-2 12-11m-10 13 11-15m-14 16c5-9 13-9 16-17m-11 19c1-5 6-8 13-15m-13 17c3-2 8-15 16-22m-19 22 18-17m-17 20 20-19m-18 22c4-10 12-18 19-26m-18 30c0-12 13-21 17-33m-19 29c6-6 9-13 20-24m-18 29c7-7 10-19 19-31m-23 30c8-8 18-19 25-29m-25 34c13-16 18-21 32-31m-31 31c6-12 16-20 27-35m-28 41c11-11 11-20 33-40m-34 36 35-36m-36 37c18-13 30-31 39-40m-37 42c9-9 21-21 33-40m-36 41c20-9 29-31 42-44m-40 48c11-11 21-21 38-43m-41 45c13-11 21-22 48-44m-44 43 41-45m-42 52c12-20 34-34 46-52m-47 49c13-13 27-25 46-49m-46 54c9-18 21-31 51-52m-48 51 46-55m-46 60c15-16 25-38 44-62m-48 59c14-15 30-30 50-56m-47 63c12-15 23-27 46-63m-47 61 50-59m-48 64c19-26 40-50 50-61m-53 58 54-62m-52 69c15-21 37-46 48-61m-49 58 54-63m-54 68c15-20 30-40 51-61m-50 59c16-23 35-44 50-59m-51 64c11-14 24-27 48-59m-48 57 51-62m-55 65c16-13 24-25 57-57m-55 57c12-11 22-27 53-60m-50 61c21-18 40-42 54-60m-56 61 54-59m-55 60c20-11 35-28 51-60m-49 63c16-18 30-39 50-62m-52 63c13-16 30-27 51-62m-51 65c14-19 29-33 53-61m-55 60c18-13 30-25 59-56m-57 60c12-13 28-30 53-62m-56 63c27-18 46-44 60-62m-59 64c17-14 33-31 58-61m-52 66c20-27 41-51 54-68m-56 65c8-14 24-26 52-60m-54 62c19-16 34-31 58-60m-59 62 56-63m-55 70c15-26 32-41 51-67m-52 63c21-22 42-47 57-60m-53 65c12-15 21-26 48-67m-50 65c11-15 22-28 54-60m-54 64c12-20 33-39 51-60m-53 61c17-20 36-44 57-65m-59 66c15-11 23-23 56-65m-52 68c11-18 25-32 54-65m-54 69c20-25 39-41 51-64m-51 63c17-20 35-41 55-67m-58 68c23-21 43-45 59-66m-58 66c15-19 30-37 57-65m-55 72c18-21 37-44 54-69m-56 68 55-65m-57 68c20-24 41-45 59-63m-57 60c19-21 36-39 56-65m-55 68c14-17 28-26 58-65m-61 66 57-65m-54 69c17-16 26-33 57-68m-59 66c18-22 40-43 58-64m-55 72c12-15 19-34 57-72m-61 71 60-68m-61 67c23-20 43-41 61-61m-60 62c18-19 34-37 58-67m-59 70c14-18 35-35 64-66m-64 68c24-27 43-48 58-67m-55 67c20-23 46-52 54-63m-54 67c19-26 37-45 58-68m-57 73c11-20 33-44 56-72m-58 68c14-17 31-32 59-67m-61 71c20-16 41-36 60-69m-57 71c21-27 41-50 59-68m-57 73c18-22 30-41 59-72m-61 69 60-70m-59 73c11-20 28-36 57-71m-61 73c21-23 40-44 62-72m-58 74c12-18 32-40 56-67m-58 66c15-19 32-37 57-70m-56 72 56-67m-59 70 61-70m-63 76c26-29 50-63 60-77m-56 74 61-72m-64 77c15-20 36-36 64-77m-62 73c22-26 49-52 62-71m-62 77c15-15 27-38 59-75m-60 73 62-71m-60 75c17-20 30-33 57-74m-60 73c15-15 33-33 64-71m-65 78c14-21 30-42 67-75m-64 71c16-15 29-33 60-70m-62 78c21-28 33-46 60-79m-61 74c23-23 42-49 63-71m-65 78c24-33 47-53 70-75m-66 71c26-27 53-57 61-73m-63 76c24-21 39-47 61-69m-60 69 64-72m-65 74c13-15 30-35 64-68m-63 70c19-19 35-37 65-71m-64 73c24-21 41-48 60-71m-63 71c25-29 50-56 65-71m-62 73c19-18 35-39 60-74m-62 76c15-19 33-39 64-71m-66 78c18-27 41-43 71-73m-69 71c26-29 53-58 64-74m-62 80c17-28 37-51 66-78m-68 76c15-17 25-32 66-78m-68 80c22-17 34-37 64-75m-63 73 67-71m-69 75c23-26 49-48 66-73m-64 74c12-15 26-32 66-77m-68 79c20-16 30-33 68-75m-64 76 65-77m-70 84c19-15 29-35 73-79m-71 77c26-32 51-57 70-79m-71 82c24-20 36-44 73-77m-71 76c21-28 47-54 69-77m-68 82c17-26 38-50 66-76m-67 75c16-23 35-40 67-78m-64 79c19-22 43-49 69-76m-73 76 69-76m-70 83c27-31 53-60 69-81m-67 80c19-22 34-43 67-78m-65 83c16-24 36-46 69-83m-72 79c20-24 41-51 70-76m-68 81c25-35 55-64 64-79m-65 75c27-29 54-56 67-75m-64 79c21-31 41-51 63-81m-65 80c17-17 33-31 69-74m-70 79c19-21 29-36 66-80m-64 79 65-76m-60 79c12-22 35-42 63-79m-64 74 65-73m-61 77c19-27 35-47 59-72m-63 73c23-28 43-52 65-76m-61 75c11-22 34-43 58-72m-62 71c20-18 36-39 64-68m-63 68 62-65m-60 68c11-16 26-33 59-70m-59 69c16-14 28-29 57-67m-53 70 57-68m-53 72c11-25 23-35 51-71m-56 67c15-19 33-37 56-66m-50 70c20-30 39-55 52-64m-55 62 55-65m-50 66c12-17 25-27 46-65m-50 64c20-24 36-46 54-60m-52 59c20-16 37-33 56-60m-58 60c18-18 32-35 52-57m-49 60 52-58m-50 57c14-15 26-32 47-57m-44 61c9-19 25-29 43-56m-46 52c19-19 34-35 49-55m-47 57c10-7 16-24 44-51m-44 51c16-15 29-34 46-52m-47 54c12-17 27-30 49-55m-46 54c10-13 23-26 45-51m-47 56c19-25 39-40 44-52m-40 50c18-22 34-40 43-53m-41 52c5-11 19-22 43-44m-45 44c11-10 20-22 42-47m-41 49c14-10 21-18 44-51m-42 50 43-48m-39 50 37-47m-38 48c8-14 18-22 40-46m-39 50c4-9 15-25 35-48m-35 43c10-13 23-26 38-41m-33 45c12-23 30-32 31-47m-35 44c14-14 28-31 36-41m-36 43c9-13 24-22 39-42m-37 41c11-14 26-25 33-39m-30 46c8-13 18-24 34-40m-36 37 33-39m-33 43c18-22 24-32 35-44m-35 40c9-8 19-16 35-36m-29 35c3-3 12-19 29-30m-34 31c13-9 22-20 36-33m-33 40c11-12 24-31 31-40m-31 39c8-12 18-20 29-38m-24 40c3-10 13-19 26-39m-28 35c3-5 13-14 29-31m-27 37c11-13 18-26 27-36m-30 33 28-33m-24 30c9-8 20-15 21-28m-23 33c7-8 14-14 28-31m-25 33c7-10 8-18 24-29m-26 27 25-30m-23 30c11-9 15-19 20-30m-18 32c4-8 11-13 22-28m-24 27c13-8 21-19 24-25m-24 26c10-6 18-17 25-26m-26 25c10-7 18-8 23-18m-20 23c9-9 17-20 23-27m-20 28c10-12 14-19 20-24m-21 23c6-4 8-10 21-24m-20 23c7 0 12-9 16-17m-17 19c8-6 16-16 20-20m-14 20c3 1 2-8 12-17m-14 20c5-7 8-12 18-21m-21 26c10-10 14-16 19-26m-15 21c4-6 12-12 15-17m-14 21c3-6 9-11 13-19m-13 18c3-6 11-14 15-19m-15 24c0-6 5-15 14-21m-16 17c7-6 13-14 17-19m-13 22c1-5 8-11 16-17m-19 18c4-4 8-7 15-16m-12 16c7-1 10-7 17-19m-16 19c5-7 10-10 14-15m-15 20c5-5 3-10 16-19m-15 17 14-17m-15 21c6-4 10-11 13-14m-12 14c4-4 7-7 12-16m-11 16c5-7 11-9 9-17m-10 17c6-5 9-9 16-12m-10 13c-4-2 4-4 8-10m-12 13 11-15m-11 13c2-4 9-3 13-10m-11 11 9-12m-9 14c0-1 5-1 13-14m-14 17c5-6 5-8 12-12m-13 11 15-9m-12 9 11-11m-10 17c2-9 6-13 8-16m-9 13 10-10m-9 13 10-12m-9 11 8-10m-9 11c3-3 8-4 8-9m-7 11 9-10m-6 13c-2-3 1-4 7-9m-10 7c4-2 6-3 9-8m-8 10c5-1 6-4 7-6m-6 6 6-7m-4 8c0 2 2-1 4-3m-6 5 6-5m-5 6c2 0 3-2 5-4m-4 4 4-4m-3 8 3-5m-3 4 4-4m-3 7 2-4m-3 4 3-5m-2 6 3-3m-3 3 3-3m-2 5 1-2m-1 2 2-2m-1 4 1-1m-1 1 1-1"}),React__namespace.createElement("path",{stroke:"transparent",strokeWidth:".5",d:"m275 627-11-23c-4-9-10-23-15-31s-10-11-17-17l-24-19c-6-3-8 2-10-1-2-4-3-7-3-19l3-56 10-153c2-27-4-11 0-14 3-2 15-1 22-1 8 0 19-3 23-1 5 3 1-6 2 18l8 131 11 184m-2 1-9-26c-3-8-3-18-8-25-6-7-16-10-23-16s-14-18-19-22c-6-4-10 1-12-2-3-4-3-9-4-21-1-13-4-20-2-54 1-35 7-127 9-155s0-10 4-12c5-2 16 2 24 2 8-1 22-8 25-4 4 3-2 0-1 25 0 25 2 74 6 125 3 52 12 152 13 183"})),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeLinecap:"round",strokeWidth:"4",d:"m275 627-13-26c-4-9-5-17-10-25s-12-15-19-21l-23-15c-6-3-9-3-11-7-3-4-3-4-3-16l4-55 8-154c1-28-1-12 3-14 3-3 10 0 18 0 7 0 23-5 28-2 4 4-1-3 0 21l6 127 12 186m-1 0-10-24c-3-9-8-20-13-28s-11-13-18-19l-25-18c-5-3-6-2-8-5s-3-1-3-13c-1-12 0-22 2-57l10-155c2-28-4-12-1-14 4-2 13 1 20 2 8 0 22-3 27 0s1-7 2 18l5 126c3 52 12 155 13 186"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:n,d:"M273 611c1-4 5-21 9-31 5-10 12-22 18-29 6-8 11-12 18-18 7-5 20-9 24-15 3-5 0 13-5-17l-24-161c-4-31-4-17-5-23-1-7 1-12 1-17-1-4-2-9-4-10s-4 4-8 4l-17-2-15 1c-5 0-11 1-12 3s5 2 6 9c0 6-4-7-2 31 1 38 10 160 12 198l1 31 3 45"}),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeWidth:"4",d:"M270 610c2-5 6-21 11-30 5-10 11-21 17-29l22-18c7-6 18-8 21-14 2-6 2 9-3-21l-25-158-4-25v-14c-1-3-2-7-4-9s-5-1-9-1l-16 2-13 1c-5 0-9-2-11 0-1 2 2 5 2 12 0 8-2-6 0 32l9 197 2 28 2 47m1 2c1-6 4-24 8-34s10-18 17-26 17-16 24-22c6-5 15-6 18-11s5 12 0-18l-25-163c-5-31-1-18-2-23l-5-12c-1-4 0-10-2-12-1-2-5 0-9 1l-17 1h-12c-4 0-10-2-11 1-2 2 2 4 3 11 0 8-2-7 0 31l10 199c2 38-1 16-1 28l1 47"})),React__namespace.createElement("g",{fill:"none",fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{stroke:i,strokeWidth:".5",d:"m254 299 7-5m-7 5 7-5m-4 8 4-8m-4 8 4-8m-7 11c4-4 6-4 12-11m-12 11 12-11m-9 13c4-2 4-6 9-13m-9 13 9-13m-11 17c2-5 8-9 17-17m-17 17 17-17m-14 19 14-19m-14 19 14-19m-17 22 23-23m-23 23 23-23m-20 26 20-26m-20 26 20-26m-23 30c10-13 21-22 28-29m-28 29c8-11 17-19 28-29m-25 31c7-9 18-20 25-31m-25 31 25-31m-28 34 33-35m-33 35 33-35m-30 38c9-11 18-20 30-38m-30 38 30-38m-32 41 38-41m-38 41 38-41m-35 43c13-14 27-30 35-43m-35 43 35-43m-38 46c9-10 21-25 44-47m-44 47 44-47m-41 50c11-16 24-32 41-50m-41 50 41-50m-43 53c16-16 32-33 46-51m-46 51c12-16 28-30 46-51m-43 54 43-54m-43 54c9-13 19-24 43-54m-46 57c21-21 37-42 51-56m-51 56 51-56m-48 58c11-12 23-26 48-58m-48 58 48-58m-51 62 53-58m-53 58c14-14 25-29 53-58m-50 61c17-23 38-42 50-61m-50 61 50-61m-53 64 53-59m-53 59c20-21 39-41 53-59m-50 61c16-15 29-35 50-61m-50 61 50-61m-53 64 54-58m-54 58c13-12 24-26 54-58m-51 61 51-61m-51 61 51-61m-53 64c18-21 39-39 54-59m-54 59c20-21 39-41 54-59m-51 62c15-20 33-42 51-62m-51 62c18-23 35-45 51-62m-54 65 54-59m-54 59c17-21 35-41 54-59m-51 61c18-20 34-39 51-61m-51 61 51-61m-53 64c14-17 30-31 54-59m-54 59 54-59m-51 62 51-62m-51 62 51-62m-55 66c22-21 40-43 56-61m-56 61 56-61m-53 63c18-19 34-38 53-63m-53 63 53-63m-55 66 55-60m-55 60c20-24 42-48 55-60m-52 63c12-18 27-32 52-63m-52 63 52-63m-55 66 55-61m-55 61c15-17 33-35 55-61m-52 64c15-18 32-36 52-64m-52 64 52-64m-54 67c16-16 30-34 56-62m-56 62 56-62m-53 64c15-16 26-31 53-64m-53 64c12-14 23-30 53-64m-56 67c17-15 33-32 57-62m-57 62 57-62m-54 65c16-23 35-44 54-65m-54 65 54-65m-57 68c23-24 47-48 58-63m-58 63c18-18 35-38 58-63m-55 66c12-16 26-31 55-66m-55 66 55-66m-58 69c16-14 31-34 58-63m-58 63c15-18 31-34 58-63m-55 66 55-66m-55 66c12-13 24-27 55-66m-58 69c21-22 44-46 59-64m-59 64 59-64m-56 67c20-27 40-49 56-67m-56 67 56-67m-58 70 59-65m-59 65c14-16 28-33 59-65m-56 67c21-26 43-55 56-67m-56 67c15-20 33-40 56-67m-59 70 59-65m-59 65c23-23 44-49 59-65m-56 68 56-68m-56 68c13-14 25-29 56-68m-58 71c22-23 44-46 60-66m-60 66 60-66m-57 69c16-18 29-38 57-69m-57 69c17-23 36-44 57-69m-60 72c12-15 26-28 61-67m-61 67c12-15 26-28 61-67m-58 69 58-69m-58 69 58-69m-61 73c13-16 30-35 61-67m-61 67 61-67m-58 70c20-22 39-48 58-70m-58 70c20-24 38-48 58-70m-61 73c17-23 37-45 62-68m-62 68c18-18 34-37 62-68m-59 70 59-70m-59 70 59-70m-61 73c22-22 44-46 62-69m-62 69c16-17 33-35 62-69m-59 72 59-72m-59 72c13-18 27-34 59-72m-62 75c21-24 42-43 62-69m-62 69c23-26 46-53 62-69m-59 72 59-72m-59 72 59-72m-62 75c21-21 40-46 64-70m-64 70c14-14 27-28 64-70m-61 72c15-15 28-30 61-72m-61 72 61-72m-63 75c15-16 30-31 64-70m-64 70 64-70m-61 73 61-73m-61 73 61-73m-65 77 66-72m-66 72 66-72m-62 74c17-20 34-43 62-74m-62 74c20-22 39-46 62-74m-65 77 65-72m-65 72 65-72m-62 75 62-75m-62 75 62-75m-65 78c19-18 33-39 66-73m-66 73 66-73m-63 76c19-20 38-42 63-76m-63 76 63-76m-65 79c22-23 45-48 66-74m-66 74 66-74m-63 76c23-26 43-51 63-76m-63 76 63-76m-66 79c20-20 36-41 67-73m-67 73 67-73m-64 76c18-22 37-42 64-76m-64 76c18-19 33-40 64-76m-67 79 68-74m-68 74 68-74m-65 76c13-16 28-31 65-76m-65 76 65-76m-68 80 69-75m-69 75 69-75m-66 78c26-33 50-64 66-78m-66 78 66-78m-68 81c19-24 37-43 68-76m-68 76 68-76m-65 78c12-16 27-35 65-78m-65 78 65-78m-68 82c15-15 28-34 69-77m-69 77 69-77m-66 79 66-79m-66 79 66-79m-69 82c23-27 49-53 70-77m-70 77 70-77m-67 80c16-19 33-42 67-80m-67 80 67-80m-69 83 70-77m-70 77c23-26 47-50 70-77m-67 79c12-17 28-32 67-79m-67 79 67-79m-70 82 71-77m-71 77c17-15 32-32 71-77m-68 80c14-16 29-32 68-80m-68 80c16-17 30-36 68-80m-71 84c17-22 34-40 72-80m-72 80c20-24 42-48 72-80m-69 82c16-22 35-42 69-82m-69 82 69-82m-72 85 73-80m-73 80c20-19 37-40 73-80m-70 83c27-28 50-60 70-83m-70 83c16-18 30-38 70-83m-72 86c19-21 39-41 72-80m-72 80c15-19 34-38 72-80m-69 83c24-28 51-58 69-83m-69 83 69-83m-72 86c19-21 38-46 73-81m-73 81 73-81m-70 83 70-83m-70 83 70-83m-73 86c9-7 13-13 32-33m-32 33c14-13 25-26 32-33m-28 36c11-11 18-24 28-36m-28 36 28-36m-1-1 43-47m-43 47c12-15 25-29 43-47m-40 49c13-13 20-25 40-49m-40 49c7-10 15-20 40-49m-73 87c2-5 9-7 13-12m-13 12 13-12m-10 15c1-4 6-10 10-15m-10 15c4-6 6-11 10-15m39-48c7-5 12-13 22-22m-22 22 22-22m-19 24c9-6 12-17 19-24m-19 24c7-7 13-16 19-24m-74 88 10-8m-10 8 10-8m-7 11c2-3 3-7 7-11m-7 11 7-11m53-65 12-10m-12 10 12-10m-9 13c4-4 6-8 9-13m-9 13 9-13m-75 89 7-5m-7 5 7-5m-4 8 4-8m-4 8 4-8m-7 11 4-1m-4 1 4-1m-1 3 1-3m-1 3 1-3"}),React__namespace.createElement("path",{stroke:"transparent",d:"M271 612c2-5 5-23 10-32 4-10 11-18 17-26l22-22c7-6 17-7 20-13 3-5 3 11-1-19l-27-159c-5-31 0-19-1-26l-4-13c-1-3 1-8-1-10-2-1-5 1-10 2l-16-1-13 2c-4 0-9-3-11-1-1 3 1 7 1 14s-2-9 0 29l10 200 2 25 1 49m-1 1c2-5 6-21 11-31 4-10 11-21 17-29 7-8 16-13 23-19 8-5 19-8 22-13 4-6 3 9-2-21l-28-160c-5-31-1-18-2-24l-2-10c0-4 1-8-1-10s-6 0-10 0l-18-2-12 1c-4 0-9-2-11 0s1 7 2 14c0 7-2-9 0 30l8 200c2 38 1 12 2 24l4 49"})),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeLinecap:"round",strokeWidth:"4",d:"m270 610 10-30a129 129 0 0 1 39-49c8-6 18-7 21-12s2 10-3-20l-24-160c-5-31-4-18-5-25l-1-13c0-4 1-7-1-8-2-2-6-1-10-1h-16l-14 1c-4 1-9-1-11 1s0 4 1 11l1 32 10 198 1 27 3 48m1 2c2-5 3-24 7-33 5-10 11-18 18-26 6-8 16-16 23-21 7-6 16-7 19-13 3-5 3 8-1-21l-24-157c-5-31-2-21-3-27-2-7-5-8-6-11 0-4 4-9 2-11-1-1-6 1-11 1l-17-1h-12c-4 1-11 0-13 3-2 2 1 5 2 13l2 31 8 196c2 37 3 14 4 27v48"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:t,d:"m273 624-10-21c-4-8-7-18-12-26s-11-17-19-23c-7-5-21-9-27-12-5-4-5-5-7-9-2-3-5-1-5-13 0-11 3-22 5-57l6-153c2-28 1-14 5-17s10-1 17 0c8 0 25 0 29 3 5 3-1-7 0 16l4 127c3 53 8 159 11 189"}),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeWidth:"4",d:"m272 627-11-25c-4-8-6-19-11-26-5-8-12-14-19-20s-18-13-24-16c-6-4-7-3-9-7-3-3-4-4-4-15l3-56 10-153c2-27-2-12 2-14 3-3 11 0 19 0s23-4 27-1c5 3-1-4-1 20l6 125 12 187m-2 1-10-23c-4-9-6-19-11-27s-11-14-18-20c-6-6-16-13-22-17-6-3-11-1-13-4-3-4-2-4-2-16l2-59 9-153c3-28 1-12 5-14 3-2 11 2 19 2 7 0 21-6 25-3 5 3 0-4 1 20 0 25 1 77 4 129l13 184"})),React__namespace.createElement("g",{fill:"none",fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{stroke:i,strokeWidth:".3",d:"M207 292s0 0 0 0m0 0s0 0 0 0m1 3v-1m0 1s0 0 0 0m0 4c0-1 0-2 2-3m-3 3 3-3m-4 5c1-1 6-2 7-6m-5 7c0-2 2-3 4-6m-4 8c1-4 5-6 7-11m-9 12c4-2 5-5 10-9m-11 16c2-6 7-13 10-14m-9 9c2-3 9-7 11-13m-9 17c2-3 9-12 17-13m-19 13c8-7 11-11 13-16m-16 19 24-17m-21 17c8-6 13-13 19-19m-16 23c1-6 7-13 15-24m-17 23c4-5 10-15 18-23m-23 32c7-13 13-22 30-31m-26 28c7-10 12-18 23-28m-25 28c14-8 20-23 30-27m-28 30c7-12 19-20 28-32m-27 31c7-9 22-24 25-33m-25 38c10-17 22-28 28-37m-29 35c10-4 17-11 31-30m-33 34c12-12 21-23 32-38m-33 40c17-9 26-28 35-37m-34 39c12-12 17-19 34-43m-30 46c10-11 23-28 37-48m-39 46 38-43m-42 44c12-10 22-16 46-42m-42 43c10-9 22-22 40-45m-44 51c14-11 31-26 48-54m-44 52c10-15 25-29 44-48m-44 54c12-15 24-27 43-55m-43 55 44-56m-47 58c21-18 42-45 49-60m-46 61c12-17 27-35 47-58m-46 59c14-17 28-37 50-55m-51 56c14-18 29-38 51-58m-53 62c15-19 29-37 52-60m-50 57c17-16 31-35 53-59m-53 63c20-19 37-40 48-58m-49 59c21-26 42-49 53-59m-53 60c8-13 19-28 54-61m-54 63 53-61m-53 66 47-64m-48 63 54-62m-54 66c23-25 38-48 52-59m-54 60c13-13 23-26 53-64m-54 66c12-16 30-30 56-62m-55 63c17-15 30-34 53-62m-52 65c16-23 27-39 51-64m-52 62c20-22 42-45 53-61m-52 63c10-16 31-35 55-63m-57 66c12-12 24-25 57-64m-55 63c21-13 36-40 53-57m-54 62c15-15 27-30 54-65m-55 67c24-18 41-38 58-60m-56 61 52-66m-54 63c20-18 45-44 59-58m-59 64c17-19 34-35 56-66m-56 67c20-19 42-46 54-61m-51 60c12-17 30-33 52-59m-55 64c19-17 31-33 60-66m-58 67c15-21 34-42 53-65m-56 69c21-31 47-52 61-65m-59 61 57-60m-56 63c24-24 40-45 53-65m-55 67c14-15 26-27 55-65m-53 68c15-21 36-42 55-62m-55 64c14-18 32-39 56-65m-54 67c14-15 24-32 49-62m-52 62 55-65m-58 66c17-22 36-38 57-61m-53 64c21-24 42-50 54-67m-54 70c13-15 25-35 56-63m-57 62 57-64m-60 70c15-22 38-41 55-70m-54 68c15-18 34-36 57-65m-59 64c13-13 29-28 59-63m-56 69c18-24 36-42 56-67m-60 64c21-18 45-42 61-65m-56 70c16-22 29-37 55-67m-54 68c14-17 30-32 54-64m-57 66c14-14 28-32 60-67m-62 68c16-18 32-34 57-66m-55 65c16-15 32-32 58-63m-58 71c13-21 34-44 60-66m-61 63c23-24 44-52 60-66m-57 69c8-19 29-31 58-68m-58 67c17-18 32-41 56-66m-61 68c15-12 33-27 60-65m-57 68c16-14 31-34 59-67m-55 71c9-19 24-31 59-69m-61 70c14-21 30-36 57-69m-58 74c17-24 34-41 56-73m-57 69c20-25 43-48 59-68m-57 73c16-20 34-37 56-71m-58 69c19-22 38-45 62-69m-63 72c18-19 36-44 60-68m-60 70c17-22 35-41 62-71m-60 74c12-17 31-39 62-67m-62 67c22-25 41-53 58-73m-57 76c21-25 42-46 58-73m-59 71c10-11 24-26 58-67m-62 69c14-9 29-26 60-70m-57 74c25-29 45-56 59-74m-60 79c16-25 34-43 61-77m-61 75c11-16 26-33 61-74m-62 74c15-8 25-25 64-71m-62 72c22-26 43-48 60-71m-63 79 65-76m-61 74c16-26 37-50 58-72m-63 73c18-19 28-35 64-68m-60 67c13-18 33-35 60-68m-63 73c16-12 25-32 60-72m-59 73c21-25 39-48 64-73m-66 77c24-30 48-52 63-76m-63 73c23-23 43-46 66-72m-66 77c14-16 31-27 68-72m-67 73c19-23 36-44 64-73m-67 73c21-24 47-50 68-72m-66 74 64-75m-66 77c23-23 43-51 70-74m-65 73c11-14 29-31 64-70m-65 73c16-14 32-33 65-72m-64 74c21-27 44-53 63-76m-62 83c22-34 45-56 59-80m-62 78 65-75m-67 77c26-28 51-53 70-75m-68 73c12-12 27-31 66-75m-66 78c24-27 45-55 63-77m-64 81 66-76m-65 74c27-27 49-51 63-77m-61 81 64-75m-64 79c19-28 52-55 61-79m-62 79c22-28 43-50 65-77m-65 75c19-19 41-46 64-73m-64 75c21-27 45-54 66-76m-65 81c20-26 52-63 64-77m-67 77c26-27 49-55 67-77m-69 76c26-19 39-41 69-71m-65 74 65-77m-64 83c16-26 34-48 68-82m-70 80c12-16 26-33 66-77m-69 77c26-28 47-50 73-71m-70 74c25-28 52-62 67-76m-69 79c24-24 52-57 71-76m-69 75c18-26 42-51 65-79m-65 82c18-17 40-37 71-81m-69 81c18-24 39-49 64-77m-63 81c17-29 43-54 67-80m-67 76c18-19 36-41 64-73m-66 76c22-24 41-44 66-74m-63 74c11-19 26-32 64-73m-60 78c21-34 46-57 56-77m-59 71c23-26 48-57 62-71m-64 74c20-20 34-31 68-74m-66 73c22-22 43-45 64-71m-58 69c19-21 37-46 55-66m-58 69c22-24 43-48 59-69m-54 75c17-24 37-47 54-72m-55 68c12-21 32-39 55-67m-54 65c14-13 29-36 54-59m-54 64c15-23 32-43 56-67m-55 67c13-18 34-35 52-66m-52 67c13-18 30-37 53-64m-51 63c12-21 25-33 56-60m-58 61c14-14 27-28 53-62m-54 64c20-24 41-46 58-65m-55 64 53-61m-52 64c14-18 24-37 52-61m-49 58c16-20 36-43 50-57m-53 61c13-17 30-29 50-63m-47 60c13-15 21-28 50-55m-49 58c13-16 20-28 50-57m-49 54 46-54m-47 55c19-16 36-39 50-48m-47 50c13-16 31-37 46-51m-44 56c11-20 32-41 41-57m-43 51c19-18 37-37 47-51m-46 53c11-10 16-24 46-51m-44 53c15-18 31-35 41-51m-42 53c15-13 25-29 40-52m-38 51 41-49m-37 50c11-20 33-34 39-50m-39 48c14-15 25-32 38-45m-40 46c17-14 32-33 43-39m-40 40c6-10 20-24 35-42m-38 45c15-12 25-31 40-44m-37 41c11-10 23-23 36-40m-37 42c13-10 31-31 39-41m-34 42 35-41m-34 39c5-6 15-17 34-33m-34 38c5-13 16-21 31-43m-31 41c12-5 23-20 35-38m-36 38c15-13 24-27 36-37m-37 43c12-10 21-20 38-37m-33 34c11-11 19-25 30-37m-27 36c4-8 18-21 26-35m-28 37c7-7 14-16 28-37m-30 36c14-4 19-16 35-27m-31 31c11-15 23-28 28-33m-27 30c12-10 20-21 27-27m-30 30c10-9 21-23 30-34m-25 37c6-7 15-17 27-35m-28 34c6-11 14-19 27-30m-26 27c9-8 16-18 21-23m-22 28 24-31m-22 32c6-9 19-20 23-26m-25 27c8-7 13-17 25-28m-26 30c13-8 16-15 24-28m-22 26 26-24m-21 25 19-22m-20 24c7-11 16-21 22-28m-21 30 19-25m-21 23c10-8 16-17 24-23m-23 25c9-3 9-12 25-26m-24 27c7-8 9-13 21-25m-17 29c0-9 6-13 18-26m-18 24c4-8 11-17 16-21m-19 19c8-4 17-15 23-22m-21 25c3-3 6-10 18-20m-18 20c7-3 10-15 19-20m-17 20c4-5 6-9 16-17m-19 20c6-6 9-13 17-17m-15 16c6-5 11-9 17-19m-15 21c5-2 10-11 19-16m-20 19c7-6 11-11 15-18m-15 19c2-4 12-7 18-21m-15 20c4-7 7-9 13-17m-13 16c5-1 5-5 12-13m-11 16 14-18m-11 22c2-5 7-12 11-16m-14 14c3-4 8-12 11-14m-10 16c4-7 10-5 16-16m-17 15 15-13m-10 19c-1-8 7-12 9-15m-13 10 13-11m-14 13c2-3 8-5 13-14m-11 15c3-2 7-3 10-12m-6 18c-1-9 5-10 10-18m-13 15 11-11m-12 12c5-1 10-5 10-8m-6 9c0-3 3-6 7-11m-9 11c7-1 7-4 10-9m-9 12c2-6 8-8 8-11m-8 10 9-6m-9 8 9-8m-7 12c4-5 6-6 6-13m-6 11c3-3 6-5 8-9m-9 13c2-2 6-4 8-8m-7 7 8-9m-8 10c3-2 5-4 6-8m-5 9 7-7m-6 8c1 0 2-4 7-7m-7 8 6-6m-6 7c3 1 2-2 6-6m-4 7 4-5m-3 6 3-5m-3 5 3-4m-2 6 2-3m-3 4 3-4m-2 6 2-3m-2 3 2-3m-1 5 2-2m-2 2 2-2m-1 4 1-1m-2 1 2-1"}),React__namespace.createElement("path",{stroke:"transparent",strokeWidth:".5",d:"m272 626-11-25c-3-8-4-17-10-24-5-8-14-15-21-21s-14-14-20-17c-5-4-12-2-15-6-2-4 0-6 0-17l4-52c3-34 7-127 9-155s-1-12 3-14c3-2 12-1 19-1 8 1 22-1 26 2s-3-10-2 15c1 24 3 78 7 130l11 182m-3 0c-3-3-8-12-11-19s-3-17-8-24c-5-8-13-15-20-21l-22-20c-5-5-9-6-10-9-2-3-1 1-1-10s-1-20 1-56c1-35 4-130 7-159 2-28 4-9 8-11 5-1 13 2 19 3 7 0 17-4 21-1 3 3 0-4 1 20s1 73 5 125l14 188"})),React__namespace.createElement("path",{fill:"none",stroke:"black",strokeLinecap:"round",strokeWidth:"4",d:"m271 626-10-23c-4-8-7-18-12-26s-10-15-17-21l-25-16c-6-4-8-3-10-7-2-3-2-2-2-14l3-56 9-154c2-28-2-12 2-14 3-2 11 1 18 1 8 0 22-6 27-3 4 3-1-3 0 21a9897 9897 0 0 0 17 312m2 2-13-24c-3-8-4-18-8-26-5-8-13-15-20-21-7-7-18-13-24-17-5-4-8-1-10-4-2-4-2-6-2-18s-1-20 1-55l8-155c2-28-2-11 1-13 4-3 14-1 22-1s23-1 28 2c4 3-3-7-2 17a4634 4634 0 0 0 17 312"}),React__namespace.createElement("path",{fill:"none",stroke:i,strokeLinecap:"round",strokeWidth:"8",d:"m255 296 12 320m-15-322 21 325"}))},saveIcon=e=>React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:e?"var(--color-accent)":"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),React__namespace.createElement("polyline",{points:"17 21 17 13 7 13 7 21"}),React__namespace.createElement("polyline",{points:"7 3 7 8 15 8"})),penIcon=e=>{switch(e.type){case"highlighter":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{fill:e.strokeColor??"var(--icon-fill-color)",strokeWidth:"2",d:"m9 11-6 6v3h9l3-3",style:e.strokeColor?{filter:"var(--theme-filter)"}:{}}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4"}));case"finetip":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:e.strokeColor??"var(--icon-fill-color)",stroke:e.strokeColor??"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:e.strokeColor?{filter:"var(--theme-filter)"}:{}},React__namespace.createElement("path",{strokeWidth:"2",d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"}));case"fountain":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},React__namespace.createElement("path",{fill:e.strokeColor??"var(--icon-fill-color)",d:"m12 19 7-7 3 3-7 7-3-3z"}),React__namespace.createElement("path",{fill:"none",d:"m18 13-1.5-7.5L2 2l3.5 14.5L13 18l5-5z"}),React__namespace.createElement("path",{fill:"none",d:"m2 2 7.586 7.586"}),React__namespace.createElement("circle",{fill:"none",cx:"11",cy:"11",r:"2"}));case"marker":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",fill:e.strokeColor??"var(--icon-fill-color)",stroke:e.strokeColor??"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:e.strokeColor?{filter:"var(--theme-filter)"}:{}},React__namespace.createElement("path",{d:"M331 315l158.4-215L460.1 70.6 245 229 331 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L436.6 8.4C444 2.9 453 0 462.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L350.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H240l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L144 320zM23 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H40c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z"}));case"thick-thin":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 108 106",strokeWidth:"2",fill:e.strokeColor??"var(--icon-fill-color)",stroke:e.strokeColor??"var(--icon-fill-color)",style:e.strokeColor?{filter:"var(--theme-filter)"}:{}},React__namespace.createElement("path",{d:"m-.58 95.628.22-.89q.22-.89.49-2.44.26-1.54.77-3.35t1.31-3.43q.79-1.61.2-.26-.6 1.34-.03-.14.58-1.49 1.54-2.97.96-1.49 2.54-3.18 1.59-1.68 3.46-2.96 1.86-1.27.81-.54-1.04.73.6-.46 1.64-1.19 2.8-1.81 1.16-.63.16-.08-.99.54 1.21-.5 2.2-1.03 1.11-.58-1.1.45-.03-.07 1.06-.53 2.32-.82 1.26-.3 2.91-.52 1.64-.23 3.05-.18 1.4.05 2.5.12 1.09.07 2.25.24 1.16.17 2.3.49 1.15.32 2.11.78.96.47 2.21 1.01 1.25.55 2.37 1.04t2.34.89q1.22.4 2.5.65 1.29.25 2.44.33 1.16.08 2.35.17 1.18.08 2.26-.1 1.08-.19 2-1.1.92-.91 1.25-1.93.32-1.02.38-2.15t.57.21q.51 1.34-.03-.02-.55-1.37-.96-2.83-.41-1.45.5-.67.92.79-.03-.06-.95-.85-1.52-1.8-.57-.94-1.5-1.52-.93-.57-1.94-1.22-1.01-.65-1.97-1.88-.96-1.22-1.44-2.54-.49-1.32-.65-2.57-.17-1.24-.11-2.35.06-1.11.31-2.91.24-1.79.76-2.77.51-.97 1.29-1.8.77-.84 1.64-1.55.88-.72 1.9-1.33 1.03-.61 2.43-1.15 1.41-.55 2.69-.92 1.29-.37 2.81-.68 1.53-.31 2.83-.58 1.31-.27 2.78-.47 1.47-.2 2.58-.49 1.12-.28 2.19-.58 1.08-.31 2.13-.73 1.05-.42 2.44-1.32 1.39-.9 2.68-1.85 1.3-.95 2.25-1.87.95-.91 2.06-2 1.11-1.09 1.92-1.93.82-.84 1.54-1.82.71-.98 1.4-1.88.69-.9 1.38-1.96.69-1.07 1.25-2.04.55-.97 1.21-1.94.65-.96 1.35-1.79.69-.83 1.46-1.74.77-.9 1.66-1.73.89-.84 2.72-2.31 1.84-1.48 1.84-1.47v.01l-1.1 1.03q-1.1 1.02-1.77 1.92-.68.9-1.39 1.85-.71.96-1.41 1.91-.7.96-1.19 1.92-.48.95-.95 1.92-.46.96-.9 1.95-.43.99-1.02 2.16-.59 1.17-1.17 2.15-.58.97-1.23 2.13t-1.29 2.02q-.64.86-1.3 1.73-.66.88-1.42 1.78-.75.9-1.72 2.03-.97 1.14-1.81 1.89-.85.75-1.98 1.71-1.14.96-2.05 1.61-.91.64-2.42 1.38-1.51.73-2.71 1.21t-2.49.92q-1.3.44-2.35.69-1.06.24-2.1.59-1.03.34-2.06.74-1.03.4-2.29.94-1.26.54-2.27 1.11-1.01.58-1.57 1.57-.56.99-.81 2.06-.25 1.08.56 2.02.8.94-.21-.02-1.02-.96-.01-.48 1 .49 1.87 1.25.87.77 0 0-.88-.77.46-.01 1.34.75 2.6 1.68 1.26.94 2.08 2.03.81 1.09.01.27-.8-.82.3.26 1.11 1.08 1.71 2.1.61 1.02 1.21 2.25.6 1.24.92 2.36.32 1.12-.16.13-.49-.98.02.36.51 1.35.71 2.69.2 1.34.24 2.46.03 1.12-.09 2.42-.13 1.29-.72 3.21-.6 1.92-1.4 3.49-.81 1.58-1.77 2.83-.96 1.24-2.88 2.72-1.92 1.48-2.95 1.85-1.04.36-2.47.76-1.44.41-3.33.72-1.89.32-3.37.41-1.48.09-2.63.15-1.15.05-2.74-.06-1.59-.1-2.8-.29-1.2-.19-3.2-.63-1.99-.45-3.63-.92-1.63-.48-3.28-.79-1.65-.31-2.76-.2-1.11.1-2.21.42-1.11.32.39-.29 1.49-.6-.12.21-1.61.8-.39.19 1.21-.61.29.13-.92.74-1.83 1.34-.92.61.15-.19t.3-.05q-.77.75-1.58 1.57-.81.82.01-.18.82-1 .24.23t-.72 2.72q-.15 1.48-.08 2.4.07.91-.19 2.16-.26 1.26-.81 2.41-.55 1.16-1.36 2.15t-1.84 1.75q-1.03.77-2.21 1.27t-2.44.7q-1.27.2-2.53.1-1.28-.11-2.49-.52-1.22-.41-2.3-1.1-1.08-.68-1.96-1.61-.89-.92-1.52-2.04-.64-1.11-.99-2.34-.36-1.23-.41-2.51l-.04-1.27Z"}));case"thin-thick-thin":return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 114 113",strokeWidth:"2",fill:e.strokeColor??"var(--icon-fill-color)",stroke:e.strokeColor??"var(--icon-fill-color)",style:e.strokeColor?{filter:"var(--theme-filter)"}:{}},React__namespace.createElement("path",{d:"m10 103.405.13-1.22q.14-1.22 1.3-3.16 1.15-1.94 2.74-3.46 1.59-1.53 3.35-2.72 1.77-1.2 4-1.95 2.23-.76 4.45-1t4.86-.4q2.64-.15 5.14-.34 2.51-.19 4.85-.94 2.35-.75 4.55-1.71 2.21-.97 4.16-2.26 1.95-1.3 4.03-2.97 2.07-1.67 3.85-3.05 1.78-1.37 3.72-2.48 1.94-1.11 3.3-2.99 1.36-1.89 2.58-3.74 1.22-1.85-.63-3.42-1.85-1.57-3.82-2.86-1.97-1.3-4.11-2.08-2.15-.78-4.21-1.6-2.06-.81-4.02-1.96-1.96-1.14-3.71-2.48-1.74-1.33-3.37-2.77-1.63-1.43-3.23-3.62-1.6-2.18-2.23-4.64-.62-2.46-.36-4.96.27-2.49 1.19-4.46.91-1.97 2.42-3.7 1.5-1.73 3.5-3.15t4.11-2.28q2.1-.86 4.33-1.44 2.24-.58 4.92-.84 2.68-.26 4.83-.19t4.69.35q2.53.28 4.75.66 2.23.38 4.48.2 2.26-.19 4.43-1.3 2.17-1.12 4.2-2.36 2.04-1.24 3.93-2.43 1.9-1.19 3.84-2.14 1.95-.95 4.04-1.78 2.09-.83 4.56-2.28 2.46-1.46 2.46-1.45h.01q.01 0-1.38 1.3-1.38 1.29-3.08 2.59-1.7 1.3-3.5 2.5t-3.42 2.65q-1.62 1.45-3.18 3-1.57 1.56-3.37 3.13-1.8 1.57-3.6 2.91-1.81 1.33-3.92 2.12t-4.24.92q-2.13.14-4.31.26-2.18.12-4.5.39t-4.56.88q-2.25.61-4.24 1.6-1.99 1-3.83 2.29-1.83 1.29.18 2.44 2.01 1.15 4.2 1.92 2.2.78 4.34 1 2.15.22 4.4.69 2.25.46 4.34 1.16 2.08.71 4.33 1.91 2.25 1.21 4.11 2.73 1.87 1.52 3.68 4.03 1.82 2.5 2.74 5 .93 2.5 1.18 5.03.26 2.53-.04 4.81t-1.4 4.85q-1.09 2.58-2.4 4.26-1.3 1.68-3.1 3.44t-4.02 3.62q-2.23 1.85-4.32 3.07-2.08 1.23-4.34 1.99-2.25.76-4.46 1.96t-4.37 2.14q-2.15.93-4.22 1.81t-4.36 1.35q-2.3.46-4.52.82-2.22.35-4.76.38-2.54.04-4.87-.28t-4.67-.67q-2.34-.35-4.72-.54-2.39-.19-4.64.37-2.25.56-4.16 1.66-1.91 1.11-3.52 2.71-1.61 1.6-2.55 2.39l-.94.78Z"}));default:return React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:e.strokeColor??"var(--icon-fill-color)",stroke:e.strokeColor??"var(--icon-fill-color)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:e.strokeColor?{filter:"var(--theme-filter)"}:{}},React__namespace.createElement("path",{d:"M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1 0 0-1-1 0 0-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z"}))}},stringToSVG=e=>(e.match('class="skip"')||(e=e.replace(/stroke\s*=\s*['"][^"']*['"]/g,"").replace(/[^-]width\s*=\s*['"][^"']*['"]/g,"").replace(/[^-]height\s*=\s*['"][^"']*['"]/g,"").replace("React__namespace.createElement("div",{className:"welcome-screen-center__logo virgil welcome-screen-decor"},e," ");var top="top",bottom="bottom",right="right",left="left",auto="auto",basePlacements=[top,bottom,right,left],start="start",end="end",clippingParents="clippingParents",viewport="viewport",popper="popper",reference="reference",variationPlacements=basePlacements.reduce((function(e,t){return e.concat([t+"-"+start,t+"-"+end])}),[]),placements=[].concat(basePlacements,[auto]).reduce((function(e,t){return e.concat([t,t+"-"+start,t+"-"+end])}),[]),beforeRead="beforeRead",read="read",afterRead="afterRead",beforeMain="beforeMain",main="main",afterMain="afterMain",beforeWrite="beforeWrite",write="write",afterWrite="afterWrite",modifierPhases=[beforeRead,read,afterRead,beforeMain,main,afterMain,beforeWrite,write,afterWrite];function getNodeName(e){return e?(e.nodeName||"").toLowerCase():null}function getWindow(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function isElement(e){return e instanceof getWindow(e).Element||e instanceof Element}function isHTMLElement$1(e){return e instanceof getWindow(e).HTMLElement||e instanceof HTMLElement}function isShadowRoot(e){return"undefined"!=typeof ShadowRoot&&(e instanceof getWindow(e).ShadowRoot||e instanceof ShadowRoot)}function applyStyles(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var a=t.styles[e]||{},i=t.attributes[e]||{},n=t.elements[e];isHTMLElement$1(n)&&getNodeName(n)&&(Object.assign(n.style,a),Object.keys(i).forEach((function(e){var t=i[e];!1===t?n.removeAttribute(e):n.setAttribute(e,!0===t?"":t)})))}))}function effect$2(e){var t=e.state,a={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,a.popper),t.styles=a,t.elements.arrow&&Object.assign(t.elements.arrow.style,a.arrow),function(){Object.keys(t.elements).forEach((function(e){var i=t.elements[e],n=t.attributes[e]||{},r=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:a[e]).reduce((function(e,t){return e[t]="",e}),{});isHTMLElement$1(i)&&getNodeName(i)&&(Object.assign(i.style,r),Object.keys(n).forEach((function(e){i.removeAttribute(e)})))}))}}var applyStyles$1={name:"applyStyles",enabled:!0,phase:"write",fn:applyStyles,effect:effect$2,requires:["computeStyles"]};function getBasePlacement(e){return e.split("-")[0]}var max$5=Math.max,min$5=Math.min,round$6=Math.round;function getUAString(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function isLayoutViewport(){return!/^((?!chrome|android).)*safari/i.test(getUAString())}function getBoundingClientRect(e,t,a){void 0===t&&(t=!1),void 0===a&&(a=!1);var i=e.getBoundingClientRect(),n=1,r=1;t&&isHTMLElement$1(e)&&(n=e.offsetWidth>0&&round$6(i.width)/e.offsetWidth||1,r=e.offsetHeight>0&&round$6(i.height)/e.offsetHeight||1);var s=(isElement(e)?getWindow(e):window).visualViewport,o=!isLayoutViewport()&&a,l=(i.left+(o&&s?s.offsetLeft:0))/n,c=(i.top+(o&&s?s.offsetTop:0))/r,d=i.width/n,h=i.height/r;return{width:d,height:h,top:c,right:l+d,bottom:c+h,left:l,x:l,y:c}}function getLayoutRect(e){var t=getBoundingClientRect(e),a=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-a)<=1&&(a=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:a,height:i}}function contains(e,t){var a=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(a&&isShadowRoot(a)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function getComputedStyle$1(e){return getWindow(e).getComputedStyle(e)}function isTableElement(e){return["table","td","th"].indexOf(getNodeName(e))>=0}function getDocumentElement(e){return((isElement(e)?e.ownerDocument:e.document)||window.document).documentElement}function getParentNode(e){return"html"===getNodeName(e)?e:e.assignedSlot||e.parentNode||(isShadowRoot(e)?e.host:null)||getDocumentElement(e)}function getTrueOffsetParent(e){return isHTMLElement$1(e)&&"fixed"!==getComputedStyle$1(e).position?e.offsetParent:null}function getContainingBlock(e){var t=/firefox/i.test(getUAString());if(/Trident/i.test(getUAString())&&isHTMLElement$1(e)&&"fixed"===getComputedStyle$1(e).position)return null;var a=getParentNode(e);for(isShadowRoot(a)&&(a=a.host);isHTMLElement$1(a)&&["html","body"].indexOf(getNodeName(a))<0;){var i=getComputedStyle$1(a);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return a;a=a.parentNode}return null}function getOffsetParent(e){for(var t=getWindow(e),a=getTrueOffsetParent(e);a&&isTableElement(a)&&"static"===getComputedStyle$1(a).position;)a=getTrueOffsetParent(a);return a&&("html"===getNodeName(a)||"body"===getNodeName(a)&&"static"===getComputedStyle$1(a).position)?t:a||getContainingBlock(e)||t}function getMainAxisFromPlacement(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function within(e,t,a){return max$5(e,min$5(t,a))}function withinMaxClamp(e,t,a){var i=within(e,t,a);return i>a?a:i}function getFreshSideObject(){return{top:0,right:0,bottom:0,left:0}}function mergePaddingObject(e){return Object.assign({},getFreshSideObject(),e)}function expandToHashMap(e,t){return t.reduce((function(t,a){return t[a]=e,t}),{})}var toPaddingObject=function(e,t){return mergePaddingObject("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:expandToHashMap(e,basePlacements))};function arrow(e){var t,a=e.state,i=e.name,n=e.options,r=a.elements.arrow,s=a.modifiersData.popperOffsets,o=getBasePlacement(a.placement),l=getMainAxisFromPlacement(o),c=[left,right].indexOf(o)>=0?"height":"width";if(r&&s){var d=toPaddingObject(n.padding,a),h=getLayoutRect(r),p="y"===l?top:left,u="y"===l?bottom:right,m=a.rects.reference[c]+a.rects.reference[l]-s[l]-a.rects.popper[c],g=s[l]-a.rects.reference[l],f=getOffsetParent(r),b=f?"y"===l?f.clientHeight||0:f.clientWidth||0:0,U=m/2-g/2,E=d[p],w=b-h[c]-d[u],y=b/2-h[c]/2+U,v=within(E,y,w),T=l;a.modifiersData[i]=((t={})[T]=v,t.centerOffset=v-y,t)}}function effect$1(e){var t=e.state,a=e.options.element,i=void 0===a?"[data-popper-arrow]":a;null!=i&&("string"!=typeof i||(i=t.elements.popper.querySelector(i)))&&contains(t.elements.popper,i)&&(t.elements.arrow=i)}var arrow$1={name:"arrow",enabled:!0,phase:"main",fn:arrow,effect:effect$1,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function getVariation(e){return e.split("-")[1]}var unsetSides={top:"auto",right:"auto",bottom:"auto",left:"auto"};function roundOffsetsByDPR(e,t){var a=e.x,i=e.y,n=t.devicePixelRatio||1;return{x:round$6(a*n)/n||0,y:round$6(i*n)/n||0}}function mapToStyles(e){var t,a=e.popper,i=e.popperRect,n=e.placement,r=e.variation,s=e.offsets,o=e.position,l=e.gpuAcceleration,c=e.adaptive,d=e.roundOffsets,h=e.isFixed,p=s.x,u=void 0===p?0:p,m=s.y,g=void 0===m?0:m,f="function"==typeof d?d({x:u,y:g}):{x:u,y:g};u=f.x,g=f.y;var b=s.hasOwnProperty("x"),U=s.hasOwnProperty("y"),E=left,w=top,y=window;if(c){var v=getOffsetParent(a),T="clientHeight",S="clientWidth";v===getWindow(a)&&"static"!==getComputedStyle$1(v=getDocumentElement(a)).position&&"absolute"===o&&(T="scrollHeight",S="scrollWidth"),(n===top||(n===left||n===right)&&r===end)&&(w=bottom,g-=(h&&v===y&&y.visualViewport?y.visualViewport.height:v[T])-i.height,g*=l?1:-1),n!==left&&(n!==top&&n!==bottom||r!==end)||(E=right,u-=(h&&v===y&&y.visualViewport?y.visualViewport.width:v[S])-i.width,u*=l?1:-1)}var _,x=Object.assign({position:o},c&&unsetSides),C=!0===d?roundOffsetsByDPR({x:u,y:g},getWindow(a)):{x:u,y:g};return u=C.x,g=C.y,l?Object.assign({},x,((_={})[w]=U?"0":"",_[E]=b?"0":"",_.transform=(y.devicePixelRatio||1)<=1?"translate("+u+"px, "+g+"px)":"translate3d("+u+"px, "+g+"px, 0)",_)):Object.assign({},x,((t={})[w]=U?g+"px":"",t[E]=b?u+"px":"",t.transform="",t))}function computeStyles(e){var t=e.state,a=e.options,i=a.gpuAcceleration,n=void 0===i||i,r=a.adaptive,s=void 0===r||r,o=a.roundOffsets,l=void 0===o||o,c={placement:getBasePlacement(t.placement),variation:getVariation(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:n,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,mapToStyles(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,mapToStyles(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var computeStyles$1={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:computeStyles,data:{}},passive={passive:!0};function effect(e){var t=e.state,a=e.instance,i=e.options,n=i.scroll,r=void 0===n||n,s=i.resize,o=void 0===s||s,l=getWindow(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return r&&c.forEach((function(e){e.addEventListener("scroll",a.update,passive)})),o&&l.addEventListener("resize",a.update,passive),function(){r&&c.forEach((function(e){e.removeEventListener("scroll",a.update,passive)})),o&&l.removeEventListener("resize",a.update,passive)}}var eventListeners={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:effect,data:{}},hash$1={left:"right",right:"left",bottom:"top",top:"bottom"};function getOppositePlacement(e){return e.replace(/left|right|bottom|top/g,(function(e){return hash$1[e]}))}var hash={start:"end",end:"start"};function getOppositeVariationPlacement(e){return e.replace(/start|end/g,(function(e){return hash[e]}))}function getWindowScroll(e){var t=getWindow(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function getWindowScrollBarX(e){return getBoundingClientRect(getDocumentElement(e)).left+getWindowScroll(e).scrollLeft}function getViewportRect(e,t){var a=getWindow(e),i=getDocumentElement(e),n=a.visualViewport,r=i.clientWidth,s=i.clientHeight,o=0,l=0;if(n){r=n.width,s=n.height;var c=isLayoutViewport();(c||!c&&"fixed"===t)&&(o=n.offsetLeft,l=n.offsetTop)}return{width:r,height:s,x:o+getWindowScrollBarX(e),y:l}}function getDocumentRect(e){var t,a=getDocumentElement(e),i=getWindowScroll(e),n=null==(t=e.ownerDocument)?void 0:t.body,r=max$5(a.scrollWidth,a.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),s=max$5(a.scrollHeight,a.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),o=-i.scrollLeft+getWindowScrollBarX(e),l=-i.scrollTop;return"rtl"===getComputedStyle$1(n||a).direction&&(o+=max$5(a.clientWidth,n?n.clientWidth:0)-r),{width:r,height:s,x:o,y:l}}function isScrollParent(e){var t=getComputedStyle$1(e),a=t.overflow,i=t.overflowX,n=t.overflowY;return/auto|scroll|overlay|hidden/.test(a+n+i)}function getScrollParent(e){return["html","body","#document"].indexOf(getNodeName(e))>=0?e.ownerDocument.body:isHTMLElement$1(e)&&isScrollParent(e)?e:getScrollParent(getParentNode(e))}function listScrollParents(e,t){var a;void 0===t&&(t=[]);var i=getScrollParent(e),n=i===(null==(a=e.ownerDocument)?void 0:a.body),r=getWindow(i),s=n?[r].concat(r.visualViewport||[],isScrollParent(i)?i:[]):i,o=t.concat(s);return n?o:o.concat(listScrollParents(getParentNode(s)))}function rectToClientRect(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function getInnerBoundingClientRect(e,t){var a=getBoundingClientRect(e,!1,"fixed"===t);return a.top=a.top+e.clientTop,a.left=a.left+e.clientLeft,a.bottom=a.top+e.clientHeight,a.right=a.left+e.clientWidth,a.width=e.clientWidth,a.height=e.clientHeight,a.x=a.left,a.y=a.top,a}function getClientRectFromMixedType(e,t,a){return t===viewport?rectToClientRect(getViewportRect(e,a)):isElement(t)?getInnerBoundingClientRect(t,a):rectToClientRect(getDocumentRect(getDocumentElement(e)))}function getClippingParents(e){var t=listScrollParents(getParentNode(e)),a=["absolute","fixed"].indexOf(getComputedStyle$1(e).position)>=0&&isHTMLElement$1(e)?getOffsetParent(e):e;return isElement(a)?t.filter((function(e){return isElement(e)&&contains(e,a)&&"body"!==getNodeName(e)})):[]}function getClippingRect(e,t,a,i){var n="clippingParents"===t?getClippingParents(e):[].concat(t),r=[].concat(n,[a]),s=r[0],o=r.reduce((function(t,a){var n=getClientRectFromMixedType(e,a,i);return t.top=max$5(n.top,t.top),t.right=min$5(n.right,t.right),t.bottom=min$5(n.bottom,t.bottom),t.left=max$5(n.left,t.left),t}),getClientRectFromMixedType(e,s,i));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function computeOffsets(e){var t,a=e.reference,i=e.element,n=e.placement,r=n?getBasePlacement(n):null,s=n?getVariation(n):null,o=a.x+a.width/2-i.width/2,l=a.y+a.height/2-i.height/2;switch(r){case top:t={x:o,y:a.y-i.height};break;case bottom:t={x:o,y:a.y+a.height};break;case right:t={x:a.x+a.width,y:l};break;case left:t={x:a.x-i.width,y:l};break;default:t={x:a.x,y:a.y}}var c=r?getMainAxisFromPlacement(r):null;if(null!=c){var d="y"===c?"height":"width";switch(s){case start:t[c]=t[c]-(a[d]/2-i[d]/2);break;case end:t[c]=t[c]+(a[d]/2-i[d]/2)}}return t}function detectOverflow(e,t){void 0===t&&(t={});var a=t,i=a.placement,n=void 0===i?e.placement:i,r=a.strategy,s=void 0===r?e.strategy:r,o=a.boundary,l=void 0===o?clippingParents:o,c=a.rootBoundary,d=void 0===c?viewport:c,h=a.elementContext,p=void 0===h?popper:h,u=a.altBoundary,m=void 0!==u&&u,g=a.padding,f=void 0===g?0:g,b=mergePaddingObject("number"!=typeof f?f:expandToHashMap(f,basePlacements)),U=p===popper?reference:popper,E=e.rects.popper,w=e.elements[m?U:p],y=getClippingRect(isElement(w)?w:w.contextElement||getDocumentElement(e.elements.popper),l,d,s),v=getBoundingClientRect(e.elements.reference),T=computeOffsets({reference:v,element:E,strategy:"absolute",placement:n}),S=rectToClientRect(Object.assign({},E,T)),_=p===popper?S:v,x={top:y.top-_.top+b.top,bottom:_.bottom-y.bottom+b.bottom,left:y.left-_.left+b.left,right:_.right-y.right+b.right},C=e.modifiersData.offset;if(p===popper&&C){var I=C[n];Object.keys(x).forEach((function(e){var t=[right,bottom].indexOf(e)>=0?1:-1,a=[top,bottom].indexOf(e)>=0?"y":"x";x[e]+=I[a]*t}))}return x}function computeAutoPlacement(e,t){void 0===t&&(t={});var a=t,i=a.placement,n=a.boundary,r=a.rootBoundary,s=a.padding,o=a.flipVariations,l=a.allowedAutoPlacements,c=void 0===l?placements:l,d=getVariation(i),h=d?o?variationPlacements:variationPlacements.filter((function(e){return getVariation(e)===d})):basePlacements,p=h.filter((function(e){return c.indexOf(e)>=0}));0===p.length&&(p=h);var u=p.reduce((function(t,a){return t[a]=detectOverflow(e,{placement:a,boundary:n,rootBoundary:r,padding:s})[getBasePlacement(a)],t}),{});return Object.keys(u).sort((function(e,t){return u[e]-u[t]}))}function getExpandedFallbackPlacements(e){if(getBasePlacement(e)===auto)return[];var t=getOppositePlacement(e);return[getOppositeVariationPlacement(e),t,getOppositeVariationPlacement(t)]}function flip(e){var t=e.state,a=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var n=a.mainAxis,r=void 0===n||n,s=a.altAxis,o=void 0===s||s,l=a.fallbackPlacements,c=a.padding,d=a.boundary,h=a.rootBoundary,p=a.altBoundary,u=a.flipVariations,m=void 0===u||u,g=a.allowedAutoPlacements,f=t.options.placement,b=getBasePlacement(f),U=l||(b!==f&&m?getExpandedFallbackPlacements(f):[getOppositePlacement(f)]),E=[f].concat(U).reduce((function(e,a){return e.concat(getBasePlacement(a)===auto?computeAutoPlacement(t,{placement:a,boundary:d,rootBoundary:h,padding:c,flipVariations:m,allowedAutoPlacements:g}):a)}),[]),w=t.rects.reference,y=t.rects.popper,v=new Map,T=!0,S=E[0],_=0;_=0,k=A?"width":"height",O=detectOverflow(t,{placement:x,boundary:d,rootBoundary:h,altBoundary:p,padding:c}),R=A?I?right:left:I?bottom:top;w[k]>y[k]&&(R=getOppositePlacement(R));var L=getOppositePlacement(R),M=[];if(r&&M.push(O[C]<=0),o&&M.push(O[R]<=0,O[L]<=0),M.every((function(e){return e}))){S=x,T=!1;break}v.set(x,M)}if(T)for(var D=function(e){var t=E.find((function(t){var a=v.get(t);if(a)return a.slice(0,e).every((function(e){return e}))}));if(t)return S=t,"break"},P=m?3:1;P>0&&"break"!==D(P);P--);t.placement!==S&&(t.modifiersData[i]._skip=!0,t.placement=S,t.reset=!0)}}var flip$1={name:"flip",enabled:!0,phase:"main",fn:flip,requiresIfExists:["offset"],data:{_skip:!1}};function getSideOffsets(e,t,a){return void 0===a&&(a={x:0,y:0}),{top:e.top-t.height-a.y,right:e.right-t.width+a.x,bottom:e.bottom-t.height+a.y,left:e.left-t.width-a.x}}function isAnySideFullyClipped(e){return[top,right,bottom,left].some((function(t){return e[t]>=0}))}function hide(e){var t=e.state,a=e.name,i=t.rects.reference,n=t.rects.popper,r=t.modifiersData.preventOverflow,s=detectOverflow(t,{elementContext:"reference"}),o=detectOverflow(t,{altBoundary:!0}),l=getSideOffsets(s,i),c=getSideOffsets(o,n,r),d=isAnySideFullyClipped(l),h=isAnySideFullyClipped(c);t.modifiersData[a]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:d,hasPopperEscaped:h},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":h})}var hide$1={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hide};function distanceAndSkiddingToXY(e,t,a){var i=getBasePlacement(e),n=[left,top].indexOf(i)>=0?-1:1,r="function"==typeof a?a(Object.assign({},t,{placement:e})):a,s=r[0],o=r[1];return s=s||0,o=(o||0)*n,[left,right].indexOf(i)>=0?{x:o,y:s}:{x:s,y:o}}function offset(e){var t=e.state,a=e.options,i=e.name,n=a.offset,r=void 0===n?[0,0]:n,s=placements.reduce((function(e,a){return e[a]=distanceAndSkiddingToXY(a,t.rects,r),e}),{}),o=s[t.placement],l=o.x,c=o.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[i]=s}var offset$1={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset};function popperOffsets(e){var t=e.state,a=e.name;t.modifiersData[a]=computeOffsets({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var popperOffsets$1={name:"popperOffsets",enabled:!0,phase:"read",fn:popperOffsets,data:{}};function getAltAxis(e){return"x"===e?"y":"x"}function preventOverflow(e){var t=e.state,a=e.options,i=e.name,n=a.mainAxis,r=void 0===n||n,s=a.altAxis,o=void 0!==s&&s,l=a.boundary,c=a.rootBoundary,d=a.altBoundary,h=a.padding,p=a.tether,u=void 0===p||p,m=a.tetherOffset,g=void 0===m?0:m,f=detectOverflow(t,{boundary:l,rootBoundary:c,padding:h,altBoundary:d}),b=getBasePlacement(t.placement),U=getVariation(t.placement),E=!U,w=getMainAxisFromPlacement(b),y=getAltAxis(w),v=t.modifiersData.popperOffsets,T=t.rects.reference,S=t.rects.popper,_="function"==typeof g?g(Object.assign({},t.rects,{placement:t.placement})):g,x="number"==typeof _?{mainAxis:_,altAxis:_}:Object.assign({mainAxis:0,altAxis:0},_),C=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(v){if(r){var A,k="y"===w?top:left,O="y"===w?bottom:right,R="y"===w?"height":"width",L=v[w],M=L+f[k],D=L-f[O],P=u?-S[R]/2:0,N=U===start?T[R]:S[R],F=U===start?-S[R]:-T[R],G=t.elements.arrow,B=u&&G?getLayoutRect(G):{width:0,height:0},V=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:getFreshSideObject(),$=V[k],W=V[O],H=within(0,T[R],B[R]),X=E?T[R]/2-P-H-$-x.mainAxis:N-H-$-x.mainAxis,z=E?-T[R]/2+P+H+W+x.mainAxis:F+H+W+x.mainAxis,Y=t.elements.arrow&&getOffsetParent(t.elements.arrow),K=Y?"y"===w?Y.clientTop||0:Y.clientLeft||0:0,Z=null!=(A=null==C?void 0:C[w])?A:0,j=L+z-Z,q=within(u?min$5(M,L+X-Z-K):M,L,u?max$5(D,j):D);v[w]=q,I[w]=q-L}if(o){var J,Q="x"===w?top:left,ee="x"===w?bottom:right,te=v[y],ae="y"===y?"height":"width",ie=te+f[Q],ne=te-f[ee],re=-1!==[top,left].indexOf(b),se=null!=(J=null==C?void 0:C[y])?J:0,oe=re?ie:te-T[ae]-S[ae]-se+x.altAxis,le=re?te+T[ae]+S[ae]-se-x.altAxis:ne,ce=u&&re?withinMaxClamp(oe,te,le):within(u?oe:ie,te,u?le:ne);v[y]=ce,I[y]=ce-te}t.modifiersData[i]=I}}var preventOverflow$1={name:"preventOverflow",enabled:!0,phase:"main",fn:preventOverflow,requiresIfExists:["offset"]};function getHTMLElementScroll(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function getNodeScroll(e){return e!==getWindow(e)&&isHTMLElement$1(e)?getHTMLElementScroll(e):getWindowScroll(e)}function isElementScaled(e){var t=e.getBoundingClientRect(),a=round$6(t.width)/e.offsetWidth||1,i=round$6(t.height)/e.offsetHeight||1;return 1!==a||1!==i}function getCompositeRect(e,t,a){void 0===a&&(a=!1);var i=isHTMLElement$1(t),n=isHTMLElement$1(t)&&isElementScaled(t),r=getDocumentElement(t),s=getBoundingClientRect(e,n,a),o={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!a)&&(("body"!==getNodeName(t)||isScrollParent(r))&&(o=getNodeScroll(t)),isHTMLElement$1(t)?((l=getBoundingClientRect(t,!0)).x+=t.clientLeft,l.y+=t.clientTop):r&&(l.x=getWindowScrollBarX(r))),{x:s.left+o.scrollLeft-l.x,y:s.top+o.scrollTop-l.y,width:s.width,height:s.height}}function order(e){var t=new Map,a=new Set,i=[];function n(e){a.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!a.has(e)){var i=t.get(e);i&&n(i)}})),i.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){a.has(e.name)||n(e)})),i}function orderModifiers(e){var t=order(e);return modifierPhases.reduce((function(e,a){return e.concat(t.filter((function(e){return e.phase===a})))}),[])}function debounce(e){var t;return function(){return t||(t=new Promise((function(a){Promise.resolve().then((function(){t=void 0,a(e())}))}))),t}}function mergeByName(e){var t=e.reduce((function(e,t){var a=e[t.name];return e[t.name]=a?Object.assign({},a,t,{options:Object.assign({},a.options,t.options),data:Object.assign({},a.data,t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}var DEFAULT_OPTIONS={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var e=arguments.length,t=new Array(e),a=0;a(this.setSelectedItem(this.selectedItem-1,!0),!1))),a.register([],"ArrowDown",(()=>(this.setSelectedItem(this.selectedItem+1,!0),!1))),a.register([],"Enter",(e=>(this.useSelectedItem(e),!1))),a.register([],"Tab",(e=>(this.chooseSuggestion(e),!1)))}chooseSuggestion(e){if(!this.items||!this.items.length)return;const t=this.items[this.selectedItem];t&&this.owner.onChooseSuggestion(t,e)}onSuggestionClick(e,t){if(e.preventDefault(),!this.suggestions||!this.suggestions.length)return;const a=this.suggestions.indexOf(t);this.setSelectedItem(a,!1),this.useSelectedItem(e)}onSuggestionMouseover(e,t){if(!this.suggestions||!this.suggestions.length)return;const a=this.suggestions.indexOf(t);this.setSelectedItem(a,!1)}empty(){this.containerEl.empty()}setSuggestions(e){this.containerEl.empty();const t=[];e.forEach((e=>{const a=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(e,a),t.push(a)})),this.items=e,this.suggestions=t,this.setSelectedItem(0,!1)}useSelectedItem(e){if(!this.items||!this.items.length)return;const t=this.items[this.selectedItem];t&&this.owner.selectSuggestion(t,e)}wrap(e,t){return(e%t+t)%t}setSelectedItem(e,t){const a=this.wrap(e,this.suggestions.length),i=this.suggestions[this.selectedItem],n=this.suggestions[a];i&&i.removeClass("is-selected"),n&&n.addClass("is-selected"),this.selectedItem=a,t&&n.scrollIntoView(!1)}}class SuggestionModal extends obsidian_module.FuzzySuggestModal{items=[];suggestions;popper;scope=new obsidian_module.Scope(this.app.scope);suggester;suggestEl;promptEl;emptyStateText="No match found";limit=100;shouldNotOpen;constructor(e,t,a){super(e),this.inputEl=t,this.items=a,this.suggestEl=createDiv("suggestion-container"),this.contentEl=this.suggestEl.createDiv("suggestion"),this.suggester=new Suggester(this,this.contentEl,this.scope),this.scope.register([],"Escape",this.onEscape.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onFocus.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",(e=>{e.preventDefault()}))}empty(){this.suggester.empty()}onInputChanged(){if(this.shouldNotOpen)return;const e=this.modifyInput(this.inputEl.value),t=this.getSuggestions(e);t.length>0?this.suggester.setSuggestions(t.slice(0,this.limit)):this.onNoSuggestion(),this.open()}onFocus(){this.shouldNotOpen=!1,this.onInputChanged()}modifyInput(e){return e}onNoSuggestion(){this.empty(),this.renderSuggestion(null,this.contentEl.createDiv("suggestion-item"))}open(){this.app.keymap.pushScope(this.scope),this.inputEl.ownerDocument.body.appendChild(this.suggestEl),this.popper=new WeakRef(createPopper(this.inputEl,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[0,10]}},{name:"flip",options:{fallbackPlacements:["top"]}}]}))}onEscape(){this.close(),this.shouldNotOpen=!0}close(){this.app.keymap.popScope(this.scope),this.suggester.setSuggestions([]),this.popper?.deref()&&this.popper.deref().destroy(),this.inputEl.removeEventListener("input",this.onInputChanged.bind(this)),this.inputEl.removeEventListener("focus",this.onFocus.bind(this)),this.inputEl.removeEventListener("blur",this.close.bind(this)),this.suggestEl.detach()}createPrompt(e){this.promptEl||(this.promptEl=this.suggestEl.createDiv("prompt-instructions"));const t=this.promptEl.createDiv("prompt-instruction");for(const a of e)t.appendChild(a)}}class FileSuggestionModal extends SuggestionModal{plugin;text;cache;filesAndAliases;file;constructor(e,t,a,i){const n=[];for(const t of a){const a=t.path;n.push({file:t,path:a,alias:""});const i=e.metadataCache.getFileCache(t),r=i?.frontmatter?.aliases||[];for(const e of r)e&&n.push({file:t,path:a,alias:e})}super(e,t.inputEl,n),this.plugin=i,this.limit=20,this.filesAndAliases=n,this.text=t,this.suggestEl.style.maxWidth="100%",this.suggestEl.style.width=`${t.inputEl.clientWidth}px`,this.inputEl.addEventListener("input",(()=>this.getFile())),this.setPlaceholder(t$d("SELECT_FILE_TO_INSERT")),this.emptyStateText=t$d("NO_MATCH")}getFile(){const e=this.inputEl.value,t=this.app.vault.getAbstractFileByPath(e);t!==this.file&&t instanceof obsidian_module.TFile&&(this.file=t,this.onInputChanged())}getSelectedItem(){return this.file}getItemText(e){return`${e.file.path}${e.alias?`|${e.alias}`:""}`}onChooseItem(e){this.file=e.file,this.text.setValue(this.getItemText(e)),this.text.onChanged()}selectSuggestion({item:e}){this.file=e.file,this.text.setValue(this.getItemText(e)),this.onClose(),this.text.onChanged(),this.close()}renderSuggestion(e,t){const{item:a,match:i}=e||{};t.addClass("mod-complex");const n=t.createDiv("suggestion-content"),r=t.createDiv("suggestion-aux"),s=n.createDiv("suggestion-title"),o=n.createDiv("suggestion-note");if(!a)return s.setText(this.emptyStateText),void t.addClass("is-selected");const l=a.file?.path??a.path,c=l.length-a.file.name.length,d=i.matches.map((e=>createSpan("suggestion-highlight"))),h=this.getItemText(a);for(let e=c;et[0]===e));if(t){const a=d[i.matches.indexOf(t)];s.appendChild(a),a.appendText(h.substring(t[0],t[1])),e+=t[1]-t[0]-1}else s.appendText(h[e])}o.setText(l),this.plugin.isExcalidrawFile(a.file)?obsidian_module.setIcon(r,ICON_NAME):"md"===a.file.extension?obsidian_module.setIcon(r,"square-pen"):IMAGE_TYPES.includes(a.file.extension)?obsidian_module.setIcon(r,"image"):VIDEO_TYPES.includes(a.file.extension)?obsidian_module.setIcon(r,"monitor-play"):AUDIO_TYPES.includes(a.file.extension)?obsidian_module.setIcon(r,"file-audio"):CODE_TYPES.includes(a.file.extension)?obsidian_module.setIcon(r,"file-code"):"canvas"===a.file.extension?obsidian_module.setIcon(r,"layout-dashboard"):"pdf"===a.file.extension?obsidian_module.setIcon(r,"book-open-text"):r.setText(a.file.extension)}getItems(){return this.filesAndAliases}}class InsertPDFModal extends obsidian_module.Modal{plugin;view;borderBox=!0;frame=!1;gapSize=20;groupPages=!1;direction="right";numColumns=1;numRows=1;lockAfterImport=!0;pagesToImport=[];pageDimensions={width:0,height:0};importScale=.3;imageSizeMessage;pdfDoc;pdfFile;dirty=!1;constructor(e,t){super(e.app),this.plugin=e,this.view=t}open(e){e&&"pdf"===e.extension.toLowerCase()&&(this.pdfFile=e),super.open()}onOpen(){this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText("Import PDF"),this.createForm()}async onClose(){this.dirty&&(this.plugin.settings.pdfImportScale=this.importScale,this.plugin.settings.pdfBorderBox=this.borderBox,this.plugin.settings.pdfFrame=this.frame,this.plugin.settings.pdfGapSize=this.gapSize,this.plugin.settings.pdfGroupPages=this.groupPages,this.plugin.settings.pdfNumColumns=this.numColumns,this.plugin.settings.pdfNumRows=this.numRows,this.plugin.settings.pdfDirection=this.direction,this.plugin.settings.pdfLockAfterImport=this.lockAfterImport,await this.plugin.saveSettings()),this.pdfDoc&&(this.pdfDoc.destroy(),this.pdfDoc=null),this.plugin=null,this.view=null,this.app=null,this.imageSizeMessage.remove(),this.setImageSizeMessage=null}async getPDFPageDimensions(e){try{const t=this.plugin.settings.pdfScale,a=createEl("canvas"),i=(await e.getPage(1)).getViewport({scale:t});this.pageDimensions.height=i.height,this.pageDimensions.width=i.width,a.width=0,a.height=0,this.setImageSizeMessage()}catch(e){console.log(e)}}createPageListFromString(e){const t=e=>e.replace(/\D/g,"");return this.pagesToImport=[],e.split(",").forEach((e=>{const a=e.split("-");if(1===a.length){const e=parseInt(t(a[0]));!isNaN(e)&&this.pagesToImport.push(e)}else if(2===a.length){const e=parseInt(t(a[0])),i=parseInt(t(a[1]));if(isNaN(e)||isNaN(i))return;for(let t=e;t<=i;t++)this.pagesToImport.push(t)}})),this.pagesToImport}setImageSizeMessage=()=>this.imageSizeMessage.innerText=`${Math.round(this.pageDimensions.width*this.importScale)} x ${Math.round(this.pageDimensions.height*this.importScale)}`;async createForm(){await this.plugin.loadSettings(),this.borderBox=this.plugin.settings.pdfBorderBox,this.frame=this.plugin.settings.pdfFrame,this.gapSize=this.plugin.settings.pdfGapSize,this.groupPages=this.plugin.settings.pdfGroupPages,this.numColumns=this.plugin.settings.pdfNumColumns,this.numRows=this.plugin.settings.pdfNumRows,this.direction=this.plugin.settings.pdfDirection,this.lockAfterImport=this.plugin.settings.pdfLockAfterImport,this.importScale=this.plugin.settings.pdfImportScale;const e=this.contentEl;let t,a,i,n;const r=()=>this.pdfDoc?0===this.pagesToImport.length?(i.buttonEl.style.display="none",void(n.innerText=t$d("IPM_SELECT_PAGES_TO_IMPORT"))):Math.max(...this.pagesToImport)<=this.pdfDoc.numPages?(i.buttonEl.style.display="block",void(n.innerText="")):(i.buttonEl.style.display="none",void(n.innerText=`The selected document has ${this.pdfDoc.numPages} pages. Please select pages between 1 and ${this.pdfDoc.numPages}`)):(n.innerText=t$d("IPM_SELECT_PDF"),void(i.buttonEl.style.display="none")),s=()=>{0!==a?t.innerHTML=`There are ${a} pages in the selected document.`:t.innerText=t$d("IPM_SELECT_PDF")};let o,l;const c=e=>{const t=this.createPageListFromString(e);t.length>15?l.innerHTML=`You are importing ${t.length} pages. ⚠️ This may take a while. ⚠️`:l.innerHTML=`You are importing ${t.length} pages.`,r()},d=async e=>{this.pdfDoc&&await this.pdfDoc.destroy(),this.pdfDoc=null,e&&(this.pdfDoc=await getPDFDoc(e),this.pdfFile=e,this.pdfDoc?(a=this.pdfDoc.numPages,o.setValue(`1-${a}`),c(`1-${a}`),r(),s(),this.getPDFPageDimensions(this.pdfDoc)):i.setDisabled(!0))},h=new obsidian_module.TextComponent(e);h.inputEl.style.width="100%";const p=new FileSuggestionModal(this.app,h,this.app.vault.getFiles().filter((e=>"pdf"===e.extension.toLowerCase())),this.plugin);let u,m,g,f,b;h.onChange((async()=>{const e=p.getSelectedItem();await d(e)})),t=e.createEl("p",{text:""}),s(),new obsidian_module.Setting(e).setName(t$d("IPM_PAGES_TO_IMPORT_NAME")).setDesc("e.g.: 1,3-5,7,9-10").addText((e=>{o=e,e.setValue("").onChange((e=>c(e))),e.inputEl.style.width="100%"})),l=e.createEl("p",{text:""}),this.frame=!this.borderBox&&this.frame,new obsidian_module.Setting(e).setName(t$d("IPM_ADD_BORDER_BOX_NAME")).addToggle((e=>{u=e,e.setValue(this.borderBox).onChange((e=>{this.borderBox=e,e&&(this.frame=!1,m.setValue(!1)),this.dirty=!0}))})),new obsidian_module.Setting(e).setName(t$d("IPM_ADD_FRAME_NAME")).setDesc(t$d("IPM_ADD_FRAME_DESC")).addToggle((e=>{m=e,e.setValue(this.frame).onChange((e=>{this.frame=e,e&&(this.borderBox=!1,u.setValue(!1),this.lockAfterImport||(this.lockAfterImport=!0,g.setValue(!0))),this.dirty=!0}))})),new obsidian_module.Setting(e).setName(t$d("IPM_GROUP_PAGES_NAME")).setDesc(t$d("IPM_GROUP_PAGES_DESC")).addToggle((e=>e.setValue(this.groupPages).onChange((e=>{this.groupPages=e,this.dirty=!0})))),new obsidian_module.Setting(e).setName("Lock pages on canvas after import").addToggle((e=>{g=e,e.setValue(this.lockAfterImport).onChange((e=>{this.lockAfterImport=e,this.dirty=!0}))}));const U=()=>{switch(this.direction){case"down":f.settingEl.style.display="none",b.settingEl.style.display="";break;case"right":f.settingEl.style.display="",b.settingEl.style.display="none"}};let E,w,y;new obsidian_module.Setting(e).setName("Import direction").addDropdown((e=>e.addOptions({down:"Top > Down",right:"Left > Right"}).setValue(this.direction).onChange((e=>{this.direction=e,U(),this.dirty=!0})))),f=new obsidian_module.Setting(e),f.setName("Number of columns").addSlider((e=>e.setLimits(1,100,1).setValue(this.numColumns).onChange((e=>{this.numColumns=e,E.innerText=` ${e.toString()}`,this.dirty=!0})))).settingEl.createDiv("",(e=>{E=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.numColumns.toString()}`})),b=new obsidian_module.Setting(e),b.setName("Number of rows").addSlider((e=>e.setLimits(1,100,1).setValue(this.numRows).onChange((e=>{this.numRows=e,w.innerText=` ${e.toString()}`,this.dirty=!0})))).settingEl.createDiv("",(e=>{w=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.numRows.toString()}`})),U(),new obsidian_module.Setting(e).setName("Size of gap between pages").addSlider((e=>e.setLimits(10,200,10).setValue(this.gapSize).onChange((e=>{this.gapSize=e,y.innerText=` ${e.toString()}`,this.dirty=!0})))).settingEl.createDiv("",(e=>{y=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.gapSize.toString()}`}));const v=new obsidian_module.Setting(e).setName("Imported page size").setDesc(`${this.pageDimensions.width*this.importScale} x ${this.pageDimensions.height*this.importScale}`).addSlider((e=>e.setLimits(.1,1.5,.1).setValue(this.importScale).onChange((e=>{this.importScale=e,this.dirty=!0,this.setImageSizeMessage()}))));this.imageSizeMessage=v.descEl;const T=new obsidian_module.Setting(e).setDesc("Select a document first").addButton((e=>{e.setButtonText("Import PDF").setCta().onClick((async()=>{const e=getEA(this.view);let t=0,a=0;const i=Math.round(this.pageDimensions.width*this.importScale),r=Math.round(this.pageDimensions.height*this.importScale);for(let s=0;s!this.frame||"frame"===e.type)).map((e=>e.id));e.addToGroup(t)}await e.addElementsToView(!0,!0,!1);const s=e.getExcalidrawAPI(),o=e.getElements().map((e=>e.id)),l=e.getViewElements().filter((e=>o.includes(e.id)));s.selectElements(l),s.zoomToFit(l),e.destroy(),this.close()})),i=e,i.buttonEl.style.display="none"}));n=T.descEl,n.addClass("mod-warning"),this.pdfFile?(h.setValue(this.pdfFile.path),await d(this.pdfFile),p.close(),o.inputEl.focus()):h.inputEl.focus(),r()}}class UniversalInsertFileModal extends obsidian_module.Modal{plugin;view;center={x:0,y:0};file;constructor(e,t){super(e.app),this.plugin=e,this.view=t;const a=t.excalidrawAPI.getAppState(),i=t.containerEl.getBoundingClientRect(),n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,s=sceneCoordsToViewportCoords({sceneX:t.currentPosition.x,sceneY:t.currentPosition.y},a);if(s.x>=i.left+150&&s.y<=i.right-150&&s.y>=i.top+150&&s.y<=i.bottom-150){const e=t.currentPosition.x-MAX_IMAGE_SIZE/2,a=t.currentPosition.y-MAX_IMAGE_SIZE/2;this.center={x:e,y:a}}else{const e=i.left+i.width/2,t=i.top+i.height/2,s=Math.max(0,Math.min(n,e)),o=Math.max(0,Math.min(r,t));this.center=viewportCoordsToSceneCoords({clientX:s,clientY:o},a),this.center={x:this.center.x-MAX_IMAGE_SIZE/2,y:this.center.y-MAX_IMAGE_SIZE/2}}}onKeyDown;open(e,t){this.file=e,this.center=t??this.center,super.open()}onOpen(){this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText(t$d("UIFM_TITLE")),this.createForm()}async createForm(){const e=this.contentEl;let t,a,i,n,r,s,o=!1,l=this.file;const c=async()=>{const e=this.plugin.ea,o=l===this.view.file,c=l&&"md"===l.extension&&!e.isExcalidrawFile(l),d=l&&(IMAGE_TYPES.contains(l.extension)||e.isExcalidrawFile(l)),h=l&&ANIMATED_IMAGE_TYPES.contains(l.extension),p=l&&!d,u=l&&"pdf"===l.extension,m=l&&e.isExcalidrawFile(l),g=l&&"md"===l.extension?(await this.plugin.app.metadataCache.blockCache.getForFile({isCancelled:()=>!1},l)).blocks.filter((e=>e.display&&"heading"===e.node?.type)).filter((e=>!m||!MD_EX_SECTIONS.includes(e.display))):null;if(c||m&&g?.length>0){for(a.settingEl.style.display="",t.selectEl.style.display="block";t.selectEl.options.length>0;)t.selectEl.remove(0);m||t.addOption("",""),g.forEach((e=>{t.addOption(`#${cleanSectionHeading(e.display)}`,e.display)}))}else a.settingEl.style.display="none",t.selectEl.style.display="none";s.settingEl.style.display=m&&!o?"":"none",n.buttonEl.style.display=o||!d&&"md"!==l?.extension?"none":"block",i.buttonEl.style.display=p||h||m&&g?.length>0?"block":"none",r.buttonEl.style.display=u?"block":"none"},d=(await this.plugin.app.metadataCache.blockCache.getForFile({isCancelled:()=>!1},this.view.file)).blocks.filter((e=>e.display&&"heading"===e.node?.type)).filter((e=>!MD_EX_SECTIONS.includes(e.display))),h=new obsidian_module.TextComponent(e);h.inputEl.style.width="100%";const p=new FileSuggestionModal(this.app,h,this.app.vault.getFiles().filter((e=>d?.length>0||e!==this.view.file)),this.plugin);h.onChange((()=>{l=p.getSelectedItem(),c()})),a=new obsidian_module.Setting(e).setName(t$d("UIFM_SECTION_HEAD")).addDropdown((e=>{t=e,t.selectEl.style.width="100%"})),s=new obsidian_module.Setting(e).setName(t$d("UIFM_ANCHOR")).setDesc(t$d("UIFM_ANCHOR_DESC")).addToggle((e=>{e.setValue(o).onChange((e=>{o=e}))})),new obsidian_module.Setting(e).addButton((e=>{e.setButtonText(t$d("UIFM_BTN_EMBEDDABLE")).onClick((async()=>{const e=this.app.metadataCache.fileToLinktext(l,this.view.file.path,"md"===l.extension),a=getEA(this.view);a.selectElementsInView([await insertEmbeddableToView(a,this.center,void 0,`[[${e}${t.selectEl.value}]]`)]),a.destroy(),this.close()})),i=e})).addButton((e=>{e.setButtonText(t$d("UIFM_BTN_PDF")).onClick((()=>{new InsertPDFModal(this.plugin,this.view).open(l),this.close()})),r=e})).addButton((e=>{e.setButtonText(t$d("UIFM_BTN_IMAGE")).onClick((async()=>{const e=getEA(this.view),a=l&&"md"===l.extension&&!e.isExcalidrawFile(l);e.selectElementsInView([await insertImageToView(e,this.center,a&&t.selectEl.value&&""!==t.selectEl.value?`${l.path}${t.selectEl.value}`:l,e.isExcalidrawFile(l)?!o:void 0)]),e.destroy(),this.close()})),n=e})),this.view.ownerWindow.addEventListener("keydown",this.onKeyDown=e=>{const t=e=>"none"!==e.buttonEl.style.display;switch(e.key){case"Escape":return void this.close();case"Enter":return!t(i)||t(n)||t(r)?!t(n)||t(i)||t(r)?!t(r)||t(i)||t(n)?void 0:void r.buttonEl.click():void n.buttonEl.click():void i.buttonEl.click();case"i":return void(t(n)&&n.buttonEl.click());case"p":return void(t(r)&&r.buttonEl.click());case"f":return void(t(i)&&i.buttonEl.click())}}),h.inputEl.focus(),l&&(h.setValue(l.path),p.close()),c()}onClose(){this.view.ownerWindow.removeEventListener("keydown",this.onKeyDown),this.view=null,this.file=null,this.plugin=null}}function setPen(e,t){const a=t.getAppState();t.updateScene({appState:{currentStrokeOptions:e.penOptions,...e.strokeWidth&&0!==e.strokeWidth?{currentItemStrokeWidth:e.strokeWidth}:null,...e.backgroundColor?{currentItemBackgroundColor:e.backgroundColor}:null,...e.strokeColor?{currentItemStrokeColor:e.strokeColor}:null,...""===e.fillStyle?null:{currentItemFillStyle:e.fillStyle},...e.roughness?null:{currentItemRoughness:e.roughness},...e.freedrawOnly&&!a.resetCustomPen?{resetCustomPen:{currentItemStrokeWidth:a.currentItemStrokeWidth,currentItemBackgroundColor:a.currentItemBackgroundColor,currentItemStrokeColor:a.currentItemStrokeColor,currentItemFillStyle:a.currentItemFillStyle,currentItemRoughness:a.currentItemRoughness}}:null},captureUpdate:CaptureUpdateAction.NEVER})}function resetStrokeOptions(e,t,a){t.updateScene({appState:{...e?{currentItemStrokeWidth:e.currentItemStrokeWidth,currentItemBackgroundColor:e.currentItemBackgroundColor,currentItemStrokeColor:e.currentItemStrokeColor,currentItemFillStyle:e.currentItemFillStyle,currentItemRoughness:e.currentItemRoughness}:null,resetCustomPen:null,...a?{currentStrokeOptions:null}:null},captureUpdate:CaptureUpdateAction.NEVER})}class ObsidianMenu{plugin;toolsRef;view;clickTimestamp;activePen;longpressTimeout={};prevClickTimestamp=0;constructor(e,t,a){this.plugin=e,this.toolsRef=t,this.view=a,this.clickTimestamp=Array.from({length:Object.keys(PENS).length},(()=>0))}actionCustomPenLabelClick(e,t){const a=Date.now();if(a-this.clickTimestamp[e]<500){const t=new PenSettingsModal(this.plugin,this.view,e);return void(async()=>{await this.plugin.loadSettings(),t.open()})()}this.clickTimestamp[e]=a;const i=this.view.excalidrawAPI,n=i.getAppState();n.currentStrokeOptions!==t.penOptions||"freedraw"!==n.activeTool.type?(this.activePen={...t},setPen(t,i),i.setActiveTool({type:"freedraw"})):resetStrokeOptions(n.resetCustomPen,i,!0)}actionScriptButtonPonterUp(e,t){this.longpressTimeout[e]&&(this.view.ownerWindow.clearTimeout(this.longpressTimeout[e]),this.longpressTimeout[e]=0,(async()=>{const e=this.view.app.vault.getAbstractFileByPath(t);e&&e instanceof obsidian_module.TFile&&this.plugin.scriptEngine.executeScript(this.view,await this.view.app.vault.read(e),this.plugin.scriptEngine.getScriptName(e),e)})())}actionScriptButtonPointerDown(e,t){const a=Date.now();this.longpressTimeout[e]>0&&(this.view.ownerWindow.clearTimeout(this.longpressTimeout[e]),this.longpressTimeout[e]=0),a-this.prevClickTimestamp>=500&&(this.longpressTimeout[e]=this.view.ownerWindow.setTimeout((()=>{this.longpressTimeout[e]=0,(async()=>{await this.plugin.loadSettings();const e=this.plugin.settings.pinnedScripts.indexOf(t);e>-1&&(this.plugin.settings.pinnedScripts.splice(e,1),this.view.excalidrawAPI?.setToast({message:`Pin removed: ${name}`,duration:3e3,closable:!0})),await this.plugin.saveSettings(),getExcalidrawViews(this.plugin.app).forEach((e=>e.updatePinnedScripts()))})()}),1500)),this.prevClickTimestamp=a}actionShowHideMenu(e,t){this.toolsRef.current.setTheme(t.theme),this.toolsRef.current.toggleVisibility(t.zenModeEnabled||e)}actionInsertAnyFile(){this.view.setCurrentPositionToCenter(),new UniversalInsertFileModal(this.plugin,this.view).open()}renderCustomPens(e,t){return t.customPens?.map(((a,i)=>{const n=this.plugin.settings.customPens[i];return t.resetCustomPen&&"freedraw"!==t.activeTool.type&&t.currentStrokeOptions===n.penOptions&&setTimeout((()=>resetStrokeOptions(t.resetCustomPen,this.view.excalidrawAPI,!1))),!t.resetCustomPen&&"freedraw"===t.activeTool.type&&t.currentStrokeOptions===n.penOptions&&n.freedrawOnly&&setTimeout((()=>setPen(this.activePen,this.view.excalidrawAPI))),this.activePen&&t.resetCustomPen&&"freedraw"===t.activeTool.type&&t.currentStrokeOptions===n.penOptions&&n.freedrawOnly&&(this.activePen.strokeWidth=t.currentItemStrokeWidth,this.activePen.backgroundColor=t.currentItemBackgroundColor,this.activePen.strokeColor=t.currentItemStrokeColor,this.activePen.fillStyle=t.currentItemFillStyle,this.activePen.roughness=t.currentItemRoughness),React__namespace.createElement("label",{key:i,className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onClick:this.actionCustomPenLabelClick.bind(this,i,n)},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":DEVICE.isDesktop?n.type:void 0,style:{..."freedraw"===t.activeTool.type&&t.currentStrokeOptions===n.penOptions?{background:"var(--color-primary)"}:{}}},penIcon(n)))}))}renderPinnedScriptButtons(e,t){return t?.pinnedScripts?.map(((t,a)=>{const i=this.plugin.scriptEngine.scriptIconMap[t],n=i?.name??"",r=i?.svgString?stringToSVG(i.svgString):ICONS.cog;return this.longpressTimeout[a]||(this.longpressTimeout[a]=0),React__namespace.createElement("label",{key:a,className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onPointerUp:this.actionScriptButtonPonterUp.bind(this,a,t),onPointerDown:this.actionScriptButtonPointerDown.bind(this,a,t)},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":DEVICE.isDesktop?n:void 0},r))}))}renderButton(e,t){return React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement("label",{className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onClick:this.actionShowHideMenu.bind(this,e,t)},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":t$d("OBSIDIAN_TOOLS_PANEL")},ICONS.obsidian)),React__namespace.createElement("label",{className:clsx("ToolIcon","ToolIcon_size_medium",{"is-mobile":e}),onClick:this.actionInsertAnyFile.bind(this)},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-label":t$d("UNIVERSAL_ADD_FILE")},ICONS["add-file"])),this.renderCustomPens(e,t),this.renderPinnedScriptButtons(e,t))}destroy(){Object.values(this.longpressTimeout).forEach((e=>this.view.ownerWindow.clearTimeout(e))),this.longpressTimeout={},this.activePen=null,this.plugin=null,this.toolsRef=null,this.view=null,this.clickTimestamp=null,this.renderButton=null,this.renderCustomPens=null,this.renderPinnedScriptButtons=null}}class ActionButton extends React__namespace.Component{toastMessageTimeout=0;longpressTimeout=0;constructor(e){super(e),this.state={visible:!0}}componentWillUnmount(){this.render=()=>null}render(){return React__namespace.createElement("button",{style:{},className:"ToolIcon_type_button ToolIcon_size_small ToolIcon_type_button--show ToolIcon",title:this.props.title,onClick:e=>{this.toastMessageTimeout&&(window.clearTimeout(this.toastMessageTimeout),this.toastMessageTimeout=0,this.props.action(e)),this.longpressTimeout&&(window.clearTimeout(this.longpressTimeout),this.longpressTimeout=0)},onPointerDown:e=>{this.toastMessageTimeout=window.setTimeout((()=>{new obsidian_module.Notice(this.props.title,3e3),this.toastMessageTimeout=0}),400),this.longpressTimeout=window.setTimeout((()=>{this.props.longpress?this.props.longpress(e):new obsidian_module.Notice("Cannot pin this action",3e3),this.longpressTimeout=0}),1500)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-hidden":"true"},this.props.icon))}}const FIRST_RUN='\nThe Excalidraw Obsidian plugin is much more than "just" a drawing tool. To help you get started here\'s a showcase of the key Excalidraw plugin features.\n\nIf you\'d like to learn more, please subscribe to my YouTube channel: [Visual PKM](https://www.youtube.com/channel/UCC0gns4a9fhVkGkngvSumAQ) where I regularly share videos about Obsidian-Excalidraw and about tools and techniques for Visual Personal Knowledge Management.\n\nThank you & Enjoy!\n\n
    \n\n
    \n',RELEASE_NOTES={Intro:'After each update, you’ll see these release notes (you can turn this off in the plugin settings).\n\nI build this plugin in my free time, as a labor of love. Curious about the philosophy behind it? Check out [📕 Sketch Your Mind](https://sketch-your-mind.com). If you find it valuable, say THANK YOU or…\n\n
    Buy Me a Coffee at ko-fi.com
    \n',"2.15.1":'\n## Fixed\n- PDF improvements\n - It was not possible to scroll the embedded PDF. [#9891](https://github.com/excalidraw/excalidraw/pull/9891)\n - Embedded PDF pages were blurred (pixelated).\n - Embedded PDF now accurately follows `excalidraw-embeddable-theme` document property.\n - auto: follows Excalidraw theme (regardless of Obsidian theme)\n - default: follows Obsidian theme (regardless of Excalidraw theme)\n - dark: always displays the PDF in dark mode (regardless of Excalidraw and Obsidian themes)\n - light: always displays the PDF in light mode (regardless of Excalidraw and Obsidian themes)\n - New embeddable-menu buttons:\n - Snapshot: inserts an image of the current active page to the scene\n - Bookmark: updates the embed link to the current page\n- Pasting an oversized image triggered an error and caused Excalidraw to discard the scene. [#2453](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2453), [#9878](https://github.com/excalidraw/excalidraw/issues/9878)\n- Video with local URI will no longer autoplay when the scene loads\n- Error creating link to element when element is a sticky note\n- Area link embeds hide the content of the objects within the area [#2461](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2461)\n- On Obsidian Mobile 1.9.10, embeddables could cause a black/white screen (no active view) until reselecting the Excalidraw page; [#2460](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2460)\n- Scrolling of embedded web pages on mobile devices is working again.\n\n## New\n- Insert Any File now supports adding Audio files.\n- New option in settings under "Zoom and Pan". Pan with right mouse button (Miro-style): right-click and drag to pan the canvas. Press \'m\' for the context menu (disabled while editing text). 🙏 [@mfuria](https://github.com/mfuria) for making this happen! [#2450](https://github.com/zsviczian/obsidian-excalidraw-plugin/pull/2450), [#329](https://github.com/zsviczian/excalidraw/pull/329)\n- Insert image in the main toolbar now opens a dropdown menu of options: Insert from system, insert from Vault, insert Card, and insert LaTeX. [#2448](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2448)\n\n## Deprecated\n- Removed "Toggle RAW mode" from the Command Palette and the Obsidian Tools menu due to low usage. RAW mode remains available by adding `excalidraw-plugin: raw` to the note\'s YAML frontmatter/document properties.\n\n## New in ExcalidrawAutomate\n```ts\n/**\n * Returns the center position of the current view in Excalidraw coordinates.\n * @returns {{x:number, y:number}} The center position of the view.\n */\npublic getViewCenterPosition(): {x:number, y:number};\n```\n',"2.15.0":'\n
    \n\n
    \n\n## New\n- Introducing **Marker Frames**. These are special frames that can be used to mark slides, pages areas for PDF printouts, image references, etc.\n To create a marker frame, create a frame and toggle the marker frame in the elements properties panel.\n - Markers are not included in exports such as images or PDFs.\n - Markers do not contain elements\n - Markers can be hidden/shown from the canvas context menu\n- Updated the "Printable Layout Wizard" script\n - Now works with marker frames\n - Supports different page sizes and orientations within a single PDF document\n - The printout may include non-marker frames (e.g., PDF image embeds in frames)\n- Pro-tip: You can also use marker frames... \n - with the Slideshow plugin\n - to create image-area references such that the frames do not get rendered in exported images, and you can reference areas by frame name\n- Performance improvement of Image-area references\n\n# New in ExcalidrawAutomate\n- `createPDF()` now supports `SVG[]` array of SVGs with different sizes.\n- New function:\n```ts\n /**\n * Gets the elements within a specific area.\n * @param elements - The elements to check.\n * @param param1 - The area to check against.\n * @returns The elements within the area.\n */\n elementsInArea(\n elements: NonDeletedExcalidrawElement[], \n {x, y, width, height}:{\n x:number; y:number; width:number; height:number;\n }\n ):ExcalidrawElement[] \n```\n',"2.14.3":'\n
    \n\n
    \n\nUpdated the Printable Layout Wizard script with the option to exclude empty pages.\n\n## Fixed\n- If a frame is locked, elements created over the frame or dragged over the frame should not be auto-added to the frame. [#9850](https://github.com/excalidraw/excalidraw/issues/9850)\n\n## Fixed in ExcalidrawAutomate\n- Not all AppState properties were being correctly copied to the template when creating a new drawing with ea.create() [#2440](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2440)\n',"2.14.2":'\n## Fixed\n- Converting Markdown to Excalidraw ("Back of note"/"Convert markdown to ExcaliDrawing") no longer appends T00:00:00.000Z to an existing date frontmatter field and handles merging of lists such as tags intelligently [#2414](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2414)\n- Multi‑point line creation on touchscreens (tap–tap–tap) produced a horizontal line after using a pen. Fixed. [#9840](https://github.com/excalidraw/excalidraw/pull/9840#issuecomment-3165319266)\n\n## New\n- Zoom settings (Settings → Excalidraw → Appearance and Behavior → Zoom) [#2434](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2434):\n - Zoom increment (default 5%) to fine‑tune mouse wheel / gesture precision.\n - Minimum zoom (default 10%) controls how far you can zoom out (below 10% may be unstable—use with caution).\n - Maximum zoom (default 3000%) defines the upper zoom limit.\n- Palm Guard script (in script store): Mobile-friendly drawing mode for stylus users. Enters fullscreen, hides UI, shows a draggable minimal toolbar (toggle + exit) to prevent accidental palm taps; single tap to exit. Inspired by [#2409](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2409)\n\n
    \n\n
    \n\n## ExcalidrawAutomate\n- Improved `FloatingModal` behavior. Floating Modal now does not trap keyboard events, the header element does not block "X" button in the top right corner, all four corners are rounded on Mobile Devices.\n\n',"2.14.1":'\n## Fixed\n- Excalidraw broke Obsidian\'s UI in Arabic, Persian, and Hebrew due to LTR, RTL conflict. [#2423](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2423) \n- Styling issues impacting native Obsidian search/replace dialogs. [#2420](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2420)\n- Now using native Obsidian attachment location function. 🙏 [mnaoumov](https://github.com/mnaoumov) [#2421](https://github.com/zsviczian/obsidian-excalidraw-plugin/pull/2421), potentially fixes [#179](https://github.com/RainCat1998/obsidian-custom-attachment-location/issues/179) of the Obsidian Custom Attachment Location plugin issue.\n\n## New\n- New frontmatter option `excalidraw-embed-md`. When set to `true`, embedding the drawing into a markdown note will render the "back of the note" (its markdown content) instead of rendering it as an image.\n - If you want to always display the drawing as an image, even when `excalidraw-embed-md` is enabled, use the special embed syntax: `![[drawing#^as-image]]`. Here, `as-image` is a phantom block reference that forces image rendering.\n- Added Spanish translation by [@Joakim31](https://github.com/Joakim31) [#2425](https://github.com/zsviczian/obsidian-excalidraw-plugin/pull/2425)\n- Incremental minor updates from the main [Excalidraw project](https://github.com/excalidraw/excalidraw).\n',"2.14.0":'\n## A Big "Small" Update\n- Added search to Excalidraw Settings, plus added a link to access the public NotebookLM workbook pre-loaded with everything about the plugin\n- New Taiwan-idiomatic Traditional Chinese translation by [@rlan](https://github.com/rlan) [#2413](https://github.com/zsviczian/obsidian-excalidraw-plugin/pull/2413)\n',"2.13.2":"\n## New\n- Excalidraw now properly supports drag and drop of obsidian links from Bases.\n- ExcalidrawAutomate exposes a new class: `FloatingModal`. This is a modified version of the Obsidian.Modal class that allows the modal to be dragged around the screen and that does not dim the background. You can use it to create custom dialogs that behave like Obsidian modals but with more flexibility.\n","2.13.1":"\n## New\n- Support for Obsidian bases as embeddables in Excalidraw.\n - **Note:** The feature is only available to Insiders who have Obsidian 1.9.4 or later installed.\n - If your base includes multiple views you can pin the desired view similar to filtering to a section (click top left # button; `[[my.base|my view]]`).\n\n## Fixed\n- Cannot type in embedded web forms. In certain cases, typing within these embeds would trigger Excalidraw hotkeys instead of interacting with the embedded content. [#2403](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2403)\n","2.13.0":'\n
    \n\n
    \n\n## New\n- **Flexible Auto-Export Location:** Take control of where your auto-exported .png, .svg, and .excalidraw files are saved. Addressing a long-standing request, you can now define custom output paths using the new **Excalidraw Hooks**.\n - Implement the `onImageExportPathHook` callback in your ExcalidrawAutomate startup script to control the *destination path*.\n - Get the skeleton script via plugin settings or download it [here](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/refs/heads/master/src/constants/assets/startupScript.md).\n\n- **Control Auto-Export Trigger:** Use the `onTriggerAutoexportHook` in your startup script to decide *if* and *how* auto-export runs for a file, based on its properties or frontmatter, *before* the export path is determined.\n\n- **Improved "Open Excalidraw drawing":** The Command Palette command now searches the *entire Vault* for the matching Excalidraw file when used on an embedded .svg or .png, useful when exports are in different folders.\n\n- **Placeholder Files for New Embeds:** When embedding a new drawing as PNG/SVG via the Command Palette, empty placeholder files are now created immediately based on your auto-export setting. This ensures Obsidian correctly updates links if you rename the file soon after creation (when "Keep filenames in sync" is on).\n\n- **Paste Obsidian URLs into Excalidraw:** Pasting an Obsidian URL for an image or file into Excalidraw now inserts the associated image directly into the drawing.\n\n- **`onImageFilePathHook` Drag & Drop Support:** The `onImageFilePathHook` (for controlling location/filename of *embedded* files) is now triggered when dragging and dropping files into Excalidraw from outside Obsidian, matching the existing behavior for pasting.\n\n## New in ExcalidrawAutomate\n```ts\nsplitFolderAndFilename(filepath: string) : {\n folderpath: string;\n filename: string;\n basename: string;\n extension: string;\n }\n```\n',"2.12.4":"\n## Fixed\n- ExaliBrain did not render after the 2.12.3 update. [#2384](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2384)\n","2.12.3":'\n## Minor fixes\n- Includes all recent updates and fixes from excalidraw.com\n- Fixed issue with line editor snapping out of edit mode\n- Fixed long-standing issue with wireframe to code calling a deprecated OpenAI endpoint\n- "Load Excalidraw Properties into Obsidian Suggester" setting now defaults to false for new installations. [#2380](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2380)\n- Taskbone OCR result does not get saved to frontmatter in some cases [#1123](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1123)\n\n## New\n- If the cropped file or annotated file prefix is set to empty, there will now be no prefix added to the file name. Additionally, now you can also set a suffix to the file name. [#2370](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2370)\n',"2.12.2":"\n## Fixed\n- BUG: Excalidraw theme changes to Light from Dark when clicking line element node [#2360](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2360)\n","2.12.1":`\n## New\n- "Text to Path" text input window is now draggable.\n\n## Fixed\n- Minor fixes to the Polygon line feature introduced in 2.12.0. [#9580](https://github.com/excalidraw/excalidraw/pull/9580)\n- Fix new Improved Unlock UI, where if a lock element was over an unlocked element, the unlocked element was not selectable. [#9582](https://github.com/excalidraw/excalidraw/pull/9582)\n- Fixed ghost point issue when moving a shape after dragging a point in the line editor [#9530](https://github.com/excalidraw/excalidraw/pull/9530)\n\n## New in ExcalidrawAutomate\n${String.fromCharCode(96,96,96)}js\nuntils.inputPrompt({\n header: string,\n placeholder?: string,\n value?: string,\n buttons?: { caption: string; tooltip?:string; action: Function }[],\n lines?: number,\n displayEditorButtons?: boolean,\n customComponents?: (container: HTMLElement) => void,\n blockPointerInputOutsideModal?: boolean,\n controlsOnTop?: boolean,\n draggable?: boolean,\n});\n${String.fromCharCode(96,96,96)}\n`,"2.12.0":'\n
    \n\n
    \n\n## Fixed\n\n- Dynamic styling was not working when frames were present in the scene.\n- Minor fix to the screenshot feature. This also resolves the long-standing issue where window control buttons (close, minimize, maximize) appeared in full-screen mode.\n- Fixed an issue where ALT/OPT + dragging an embeddable object sometimes failed, resulting in an empty object instead of dragging the element.\n\n## New\n\n- **Line Polygons**: Draw a closed line shape, and it will automatically snap into a polygon. [#9477](https://github.com/excalidraw/excalidraw/pull/9477)\n - Updated the Split Ellipse and Boolean Operations scripts to support this feature.\n - When entering line editor mode (CTRL/CMD + click), the lock point is now marked for easier editing. You can break the polygon using the polygon action in the elements panel.\n- **Popout Override**: The "Open the back-of-the-note for the selected image in a popout window" action now overrides the "Focus on Existing Tab" setting and always opens a new popout.\n- **Text Arch Enhancements**: The Text Arch script now supports fitting text to a wider range of paths and shapes. Text can also be edited and refitted to different paths.\n- **Improved Unlock UI**: Single-clicking a locked element now shows an unlock button. [#9546](https://github.com/excalidraw/excalidraw/pull/9546)\n- **Script Update Alerts**: On startup, Excalidraw will notify you if any installed scripts have available updates.\n',"2.11.1":'\n## Fixed:\n- The new "Screenshot" option in the Export Image dialog was not working properly. [#2339](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2339)\n\n## New from Excalidraw.com\n- Quarter snap points for diamonds [#9387](https://github.com/excalidraw/excalidraw/pull/9387)\n- Precise highlights for bindings [#9472](https://github.com/excalidraw/excalidraw/pull/9472)\n\n',"2.11.0":'\n## New\n- New "Screenshot" option in the Export Image dialog. This allows you to take a screenshot of the current view, including embedded web pages, youtube videos, and markdown documents. Screenshot is only possible in PNG.\n- Expose parameter in plugin settings to disable AI functionality [#2325](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2325)\n- Enable (disable) double-click text editing option in Excalidraw appearance and behavior (based on request on Discord)\n- Added two new PDF export sizes: "Match image", "HD Screen".\n- Switch between basic shapes. Quickly change the shape of the selected element by pressing TAB [#9270](https://github.com/excalidraw/excalidraw/pull/9270)\n- Updated the Scribble Helper Script. Now controls are at the top so your palm does accidently trigger them. I added a new button to insert special characters. Scribble helper now makes use of the new text element wrapping in Excalidraw.\n\n## Fixed in the plugin\n- Scaling multiple embeddables at once did not work. [#2276](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2276)\n- When creating multiple back-of-the-note the second card is not created correctly if autosave has not yet happened.\n- Drawing reloads while editing the back-of-the-note card in certain cases causes editing to be interrupted.\n- Moved Excalidraw filetype indicator ✏️ to after filename where other filetype tags are displayed. You can turn the filetype indicator on/off in plugin settings under Miscellaneous.\n\n## Fixed by Excalidraw.com\n- Alt-duplicate now preserves the original element. Previously, using Alt to duplicate would swap the original with the new element, leading to unexpected behavior and several downstream issues. [#9403](https://github.com/excalidraw/excalidraw/pull/9403)\n- When dragging the arrow endpoint, update the binding only on the dragged side [#9367](https://github.com/excalidraw/excalidraw/pull/9367)\n- Laser pointer trail disappearing on pointerup [#9413](https://github.com/excalidraw/excalidraw/pull/9413) [#9427](https://github.com/excalidraw/excalidraw/pull/9427)\n',"2.10.1":`\n\n## Fixed by Excalidraw.com\n- Eraser performance improvement regression. Erasing locked elements. [#9400](https://github.com/excalidraw/excalidraw/pull/9400)\n\n## New\n- Grid Customization Options in plugin settings (appearance and behavior/grid): You can now selectively show or hide vertical and horizontal grid lines independently. This allows you to create alternative grid styles, such as horizontal-only lined grids instead of the traditional checkered pattern.\n\n## Fixed in ExcalidrawAutomate\n- ${String.fromCharCode(96)}ea.createSVG${String.fromCharCode(96)} throws error [#2321](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2321)\n\n---\n\n## ❤️ Enjoying the plugin?\n\nSupport my work by checking out my new book, now available for pre-order: \n[Sketch Your Mind: Nurture a Playful and Creative Brain](https://sketch-your-mind.com) is about visual Personal Knowledge Management. It explores the thinking behind Excalidraw and how it helps you structure and evolve ideas visually. It’s the book I wish I had when I began my own PKM journey.\n\n
    Pre-order Sketch Your Mind
    \n`,"2.10.0":`\n## New from Excalidraw.com\n- Lasso select [#9169](https://github.com/excalidraw/excalidraw/pull/9169)\n- Add container to multiple text elements [#9348](https://github.com/excalidraw/excalidraw/pull/9348)\n\n## Fixed from Excalidraw.com\n- Rounded diamond edge elbow arrow U route [#9349](https://github.com/excalidraw/excalidraw/pull/9349)\n- Improved eraser performance [#9352](https://github.com/excalidraw/excalidraw/pull/9352)\n- Keep arrow label horizontal [#9364](https://github.com/excalidraw/excalidraw/pull/9364)\n\n## Fixed in ExcalidrawAutomate\n- ${String.fromCharCode(96)}ea.addText${String.fromCharCode(96)} did not honor the width parameter.\n`,"2.9.2":"\n- More minor fix. Toolbars are not responsive when dynamic styling is turned off. [#2287](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2287)\n","2.9.1":"\n- Minor emergency fix. Reverting: [#9203](https://github.com/excalidraw/excalidraw/pull/9203)\n","2.9.0":"\n## New\n- QoL improvement: The context menu requires a longer press and hold for it to be displayed on mobile devices. When you want to precision adjust an element it happens that you linger on the point for just a little longer and the context menu appears unwantedly.\n- Elbow arrow improvements [#9236](https://github.com/excalidraw/excalidraw/pull/9236), [#8593](https://github.com/excalidraw/excalidraw/pull/8593), [#9197](https://github.com/excalidraw/excalidraw/pull/9197), [#9191](https://github.com/excalidraw/excalidraw/pull/9191), [#9236](https://github.com/excalidraw/excalidraw/pull/9236)\n\n## Fixed Obsidian 1.8.9 regressions\n- Custom references (like #^group) broken in Live Preview in Obsidian 1.8.9 due to translation update [#2279](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2279)\n- Excalidraw tabs only show on a second click on Obsidian Mobile\n\n## Refactoring\n- The Excalidraw component moved to React 19. Obsidian for now remains on React 18. This refactoring ensures that Excalidraw continues to work in Obsidian and Obsidian will receive future Excalidraw updates. [#9182](https://github.com/excalidraw/excalidraw/pull/9182)\n","2.8.3":"\n## Fixed\n- Chinese translation not available since 2.8.0. [#2247](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2247)\n- Since the most recent Samsung Android update, adding images from the gallery returns an Unsupported Image Type error. [#2245](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2245)\n- Duplicating/removing frame while children selected [#9079](https://github.com/excalidraw/excalidraw/pull/9079)\n","2.8.2":'\n## New\n- Moved "Create new drawing" option up in the context menu [#2243](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2243)\n\n## Fixed\n- In rare cases drawing content gets overwritten with another drawing [#2152](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2152)\n- "Wrap selection in frame" sets dark mode to light mode [#2240](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2240)\n- Multiple bug fixes from Excalidraw.com\n - Elbow arrows within boxes [#9077](https://github.com/excalidraw/excalidraw/issues/9077)\n - Elbow arrow orthogonality [#9073](https://github.com/excalidraw/excalidraw/pull/9073)\n - Improve library sidebar performance [#9060](https://github.com/excalidraw/excalidraw/pull/9060)\n - Opacity slider now displays numerical value [#9009](https://github.com/excalidraw/excalidraw/pull/9009)\n - Resize a frame and its children together when box selecting the frame and its children together [#9031](https://github.com/excalidraw/excalidraw/pull/9031)\n - Excalidraw screen flickering in dark mode [#9057](https://github.com/excalidraw/excalidraw/pull/9057)\n',"2.8.1":"\n## Fixed\n- Unable to open Excalidraw files after the 2.8.0 update. [#2235](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2235)\n","2.8.0":`\n
    \n\n
    \n\n## New\n- Updated "Export Image" dialog\n - 🚀 PDF Export option including tiling of images over multiple pages. Only available on desktop :(\n - SVG to clipboard\n - More granular setting for padding and scale\n - Slideshow script can now print slides to PDF (update script from script store)\n- Set local graph to show the links in the embeddable when it is activated/deactivated [#2200](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2200)\n\n## Fixed\n- Fixed several LaTeX issues. 🙏 @Sintuz [#1631](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1631), [#2195](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2195), [#1842](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1842)\n- Fixed support for *.jfif and *.avif images [#2212](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2212)\n- PDF++ selection is not correctly showing after embedded into a drawing (for some specific files) [#2213](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2213)\n- iOS 18 can't upload image and library [#2182](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2182)\n- Image block references are broken in hover previews [#2218](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2218)\n - ⚠️ Note there is a known issue in Obsidian 1.8.2 ⚠️ affecting preview windows in Excalidraw. I received confirmation that this will be fixed in 1.8.3. For now, if hover previews are important to you, you can downgrade to Obsidian 1.8.1 [#2228](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2225) \n- Mobile elements panel and context menu are not scrollable [#2216](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2216)\n- "Local Font" menu disappears when opening a drawing in an Obsidian popout-window [#2205](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2205)\n\n## Updates from Excalidraw.com\n- Pressing delete on a frame will only delete the children [#9011](https://github.com/excalidraw/excalidraw/pull/9011)\n- New crowfoot arrowheads and a new arrowhead picker [#8942](https://github.com/excalidraw/excalidraw/pull/8942)\n- Fixed some of the arrow binding issues [#9010](https://github.com/excalidraw/excalidraw/pull/9010), [#2209](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/2209)\n- New context menu action: "Wrap selection in frame" [#9005](https://github.com/excalidraw/excalidraw/pull/9005)\n- Elbow arrow segment fixing and positioning [#8952](https://github.com/excalidraw/excalidraw/pull/8952)\n- When drag creating a new frame, do not add a partial group to it. When wrapping a selected partial group in a frame however, do add it to the wrapping frame. But such that it should be separated from the previous containing group. [#9014](https://github.com/excalidraw/excalidraw/pull/9014)\n\n## New in ExcalidrawAutomate\n- New hook: ${String.fromCharCode(96)}onImageFileNameHook${String.fromCharCode(96)}. When set, this callback is triggered when a image is being saved in Excalidraw.\n- PDF export functions, paving the way for slideshow to export slides to PDF\n${String.fromCharCode(96,96,96)}ts\n/**\n * Returns the dimensions of a standard page size in pixels.\n*/\nfunction getPagePDFDimensions(\n pageSize: PageSize,\n orientation: PageOrientation\n): PageDimensions;\n\n/**\n * Creates a PDF from the provided SVG elements with specified scaling and page properties.\n*/\nfunction createPDF(props: {\n SVG: SVGSVGElement[];\n scale?: PDFExportScale;\n pageProps?: PDFPageProperties;\n filename: string;\n}): Promise;\n\n/**\n * Creates an SVG representation of the current view.\n*/\nfunction createViewSVG(props : {\n withBackground?: boolean;\n theme?: "light" | "dark";\n frameRendering?: FrameRenderingOptions;\n padding?: number;\n selectedOnly?: boolean;\n skipInliningFonts?: boolean;\n embedScene?: boolean;\n}): Promise;\n\n/**\n * If set, this callback is triggered when a image is being saved in Excalidraw.\n * You can use this callback to customize the naming and path of pasted images to avoid\n * default names like "Pasted image 123147170.png" being saved in the attachments folder,\n * and instead use more meaningful names based on the Excalidraw file or other criteria,\n * plus save the image in a different folder.\n * \n * If the function returns null or undefined, the normal Excalidraw operation will continue\n * with the excalidraw generated name and default path.\n * If a filepath is returned, that will be used. Include the full Vault filepath and filename\n * with the file extension.\n * The currentImageName is the name of the image generated by excalidraw or provided during paste.\n */\nfunction onImageFilePathHook: (data: {\n currentImageName: string;\n drawingFilePath: string;\n}) => string = null; \n${String.fromCharCode(96,96,96)}\n`};class ReleaseNotes extends obsidian_module.Modal{plugin;version;constructor(e,t,a){super(e),this.plugin=t,this.version=a}onOpen(){const{containerEl:e,contentEl:t,titleEl:a,headerEl:i}=this;e.classList.add("excalidraw-release"),a.setText(`${t$d("RN_WELCOME")} ${this.version??""}`),this.createForm(),i&&(i.style.pointerEvents="none")}async onClose(){this.contentEl.empty(),await this.plugin.loadSettings(),this.plugin.settings.previousRelease!==PLUGIN_VERSION&&(this.plugin.settings.previousRelease=PLUGIN_VERSION,await this.plugin.saveSettings())}async createForm(){let e=this.plugin.settings.previousRelease;e=this.version===e?"0.0.0":e;const t=this.version?Object.keys(RELEASE_NOTES).filter((t=>"Intro"===t||isVersionNewerThanOther(t,e))).map((e=>`${"Intro"===e?"":`# ${e}\n`}${RELEASE_NOTES[e]}`)).slice(0,10).join("\n\n---\n"):FIRST_RUN;await obsidian_module.MarkdownRenderer.render(this.app,t,this.contentEl,"",this.plugin),this.contentEl.createEl("p",{text:""},(e=>{e.style.textAlign="right",e.createEl("button",{text:"Close"}).onclick=()=>this.close()}))}}const DPI=96,STANDARD_PAGE_SIZES={A0:{width:3179.52,height:4494.96},A1:{width:2245.76,height:3179.52},A2:{width:1587.76,height:2245.76},A3:{width:1122.56,height:1587.76},A4:{width:794.56,height:1122.56},A5:{width:559.37,height:794.56},A6:{width:397.28,height:559.37},Legal:{width:816,height:1344},Letter:{width:816,height:1056},Tabloid:{width:1056,height:1632},Ledger:{width:1632,height:1056},"HD Screen":{width:1920,height:1080},"MATCH IMAGE":{width:0,height:0}};function getMarginValue(e){switch(e){case"none":return{left:0,right:0,top:0,bottom:0};case"tiny":return{left:10,right:10,top:10,bottom:10};default:return{left:60,right:60,top:60,bottom:60}}}function getPageDimensions(e,t,a){let i;return i=STANDARD_PAGE_SIZES[e],a&&0===i.width&&0===i.height&&(i={width:a.width,height:a.height}),"portrait"===t||"MATCH IMAGE"===e||"HD Screen"===e?{width:i.width,height:i.height}:{width:i.height,height:i.width}}function getPageSizePixels(e,t=!1){if("object"==typeof e)return e;const a=STANDARD_PAGE_SIZES[e];if(!a)throw new Error(`Unsupported page size: ${e}`);return t?{width:a.height,height:a.width}:{width:a.width,height:a.height}}function getPageSize(e){if("string"==typeof e)return e;if(!e||"object"!=typeof e||"number"!=typeof e.width||"number"!=typeof e.height)throw new Error("Invalid page dimensions");return{width:e.width/DPI,height:e.height/DPI}}async function getSavePath(e){return(await window.electron.remote.dialog.showSaveDialog({defaultPath:e,filters:[{name:"PDF Files",extensions:["pdf"]},{name:"All Files",extensions:["*"]}],properties:["showOverwriteConfirmation"]})).filePath}async function printPdf(e,t,a,i,n,r,s=!0,o="",l){const c=document.createElement("style");c.textContent=`\n @media print {\n /* Ensure the print root expands to the widest page and is not constrained by app layout */\n .print {\n background-color: ${a} !important;\n display: block !important;\n width: max-content !important;\n max-width: none !important;\n overflow: visible !important;\n -webkit-print-color-adjust: exact !important;\n print-color-adjust: exact !important;\n margin: 0 !important;\n padding: 0 !important;\n position: static !important;\n transform: none !important;\n box-sizing: content-box !important;\n }\n .print > * {\n width: max-content !important;\n max-width: none !important;\n }\n .print-page {\n display: block !important;\n break-after: page !important;\n page-break-after: always !important;\n break-inside: avoid-page !important;\n overflow: visible !important;\n margin: 0 !important;\n position: relative !important;\n }\n /* Keep spacer tiny; it still establishes the initial page box */\n .print-page.dummy-first {\n width: 1px !important;\n height: 1px !important;\n }\n .print svg,\n .print img,\n .print canvas {\n max-width: none !important;\n max-height: none !important;\n }\n ${o}\n }\n `,document.head.appendChild(c);const d=document.body.createDiv("print");d.style.top="0",d.style.left="0",d.style.display="flex",d.appendChild(e);const h={includeName:!1,pageSize:getPageSize(i),landscape:n,margins:r,scaleFactor:100,scale:1,open:s,filepath:t,preferCSSPageSize:!0,...l?{pageRanges:l}:{}};try{await new Promise((e=>{window.electron.ipcRenderer.once("print-to-pdf",e),window.electron.ipcRenderer.send("print-to-pdf",h)}))}finally{d.remove(),c.remove()}}function calculateDimensions(e,t,a,i,n,r,s){const o=e.getAttribute("viewBox")?.split(" ").map(Number)||[0,0,t,a],[l,c]=o,d=i.width-n.left-n.right,h=i.height-n.top-n.bottom;if(r.fitToPage>0){let e=0,i=100,n=1;const s=1e-6;for(;i-e>s;){const s=(e+i)/2,o=t*s,l=a*s;Math.ceil(o/d)*Math.ceil(l/h)>r.fitToPage?i=s:(n=s,e=s)}r.zoom=Math.round(.99999*n*1e6)/1e6}const p=t*(r.zoom||1),u=a*(r.zoom||1);if(p<=d&&u<=h){const e=calculatePosition(p,u,i.width,i.height,n,s);return{tiles:[{viewBox:`${l} ${c} ${t} ${a}`,width:p,height:u,x:e.x,y:e.y}],pages:1}}const m=Math.ceil(p/d),g=Math.ceil(u/h),f=calculatePosition(p,u,m*d,g*h,{left:0,right:0,top:0,bottom:0},s),b=[];for(let e=0;e=.99&&I<=1.01?n.left:"center"===s||"top-center"===s||"bottom-center"===s?0===t?n.left+(d-w):n.left:s.endsWith("right")?i.width-n.right-w:n.left;const A=y/h;C=A>=.99&&A<=1.01?n.top:"center"===s||"center-left"===s||"center-right"===s?0===e?n.top+(h-y):n.top:s.startsWith("bottom")?i.height-n.bottom-y:n.top,b.push({viewBox:`${v+l} ${T+c} ${S} ${_}`,width:w,height:y,x:x,y:C})}return{tiles:b,pages:b.length}}function calculatePosition(e,t,a,i,n,r){const s=a-n.left-n.right,o=i-n.top-n.bottom;let l=n.left,c=n.top;return"center"===r||"top-center"===r||"bottom-center"===r?l=n.left+(s-e)/2:r.endsWith("right")&&(l=n.left+s-e),"center"===r||"center-left"===r||"center-right"===r?c=n.top+(o-t)/2:r.startsWith("bottom")&&(c=n.top+o-t),{x:l,y:c}}async function exportToPDF({SVG:e,scale:t={fitToPage:1,zoom:1},pageProps:a,filename:i}){if(!DEVICE.isDesktop)return void new obsidian_module.Notice(t$d("PDF_EXPORT_DESKTOP_ONLY"));const n=await getSavePath(i);if(!n)return;const r=a?.dimensions;if(!r||"number"!=typeof r.width||"number"!=typeof r.height||r.width<=0||r.height<=0){new obsidian_module.Notice(t$d("EXPORTDIALOG_PDF_PROGRESS_NOTICE"));try{const i=createDiv();i.style.width="100%",i.style.height="fit-content";const r=new Map,s=(e,t)=>`${e.toFixed(2)}x${t.toFixed(2)}`,o=e=>e/DPI,l=e=>`p_${e.replace(/[^\w-]/g,"_")}`;for(const n of e){const e=parseFloat(n.getAttribute("width")||"0"),o=parseFloat(n.getAttribute("height")||"0"),c={width:e,height:o},d=s(c.width,c.height);r.has(d)||r.set(d,{name:l(d),w:c.width,h:c.height});const{tiles:h}=calculateDimensions(n,e,o,c,a.margin,t,a.alignment),{width:p,height:u}=getPageSizePixels(c,!1),m=r.get(d).name;for(const e of h){const t=createDiv();t.addClass("print-page"),t.addClass(m),t.style.setProperty("page",m),t.style.width=`${p}px`,t.style.height=`${u}px`,t.style.display="flex",t.style.justifyContent="start",t.style.alignItems="left",t.style.left=`${a.margin.left}px`,t.style.top=`${a.margin.top}px`,t.style.position="relative";const r=n.cloneNode(!0);r.setAttribute("viewBox",e.viewBox),r.style.width=`${e.width}px`,r.style.height=`${e.height}px`,r.style.position="absolute",r.style.left=e.x-a.margin.left+"px",r.style.top=e.y-a.margin.top+"px",t.appendChild(r),i.appendChild(t)}}let c="";for(const{name:e,w:t,h:a}of r.values())c+=`\n @page ${e} {\n size: ${o(t)}in ${o(a)}in;\n margin: 0;\n }\n .print-page.${e} { page: ${e}; }\n `;let d=0,h=0;for(const{w:e,h:t}of r.values())d=Math.max(d,e),h=Math.max(h,t);const p={width:d||800,height:h||600},u=s(p.width,p.height);r.has(u)||(r.set(u,{name:l(u),w:p.width,h:p.height}),c+=`\n @page ${r.get(u).name} {\n size: ${o(p.width)}in ${o(p.height)}in;\n margin: 0;\n }\n .print-page.${r.get(u).name} { page: ${r.get(u).name}; }\n `);const m=r.get(u).name,g=createDiv();g.addClass("print-page"),g.addClass("dummy-first"),g.addClass(m),i.prepend(g),await printPdf(i,n,a.backgroundColor||"#ffffff",p,!1,{top:0,right:0,bottom:0,left:0},!0,c,"2-")}catch(e){console.error("Failed to export to PDF: ",e),new obsidian_module.Notice(t$d("EXPORTDIALOG_PDF_PROGRESS_ERROR"))}new obsidian_module.Notice(t$d("EXPORTDIALOG_PDF_PROGRESS_DONE"))}else{const i=createDiv();i.style.width="100%",i.style.height="fit-content";for(const n of e){const e=parseFloat(n.getAttribute("width")||"0"),r=parseFloat(n.getAttribute("height")||"0"),s=a.dimensions,{tiles:o}=calculateDimensions(n,e,r,s,a.margin,t,a.alignment),{width:l,height:c}=getPageSizePixels(s,!1);for(const e of o){const t=createDiv();t.addClass("print-page"),t.style.width=`${l}px`,t.style.height=`${c}px`,t.style.display="flex",t.style.justifyContent="start",t.style.alignItems="left",t.style.left=`${a.margin.left}px`,t.style.top=`${a.margin.top}px`,t.style.position="relative";const r=n.cloneNode(!0);r.setAttribute("viewBox",e.viewBox),r.style.width=`${e.width}px`,r.style.height=`${e.height}px`,r.style.position="absolute",r.style.left=e.x-a.margin.left+"px",r.style.top=e.y-a.margin.top+"px",t.appendChild(r),i.appendChild(t)}}new obsidian_module.Notice(t$d("EXPORTDIALOG_PDF_PROGRESS_NOTICE"));try{await printPdf(i,n,a.backgroundColor||"#ffffff",a.dimensions,!1,{top:0,right:0,bottom:0,left:0},!0)}catch(e){console.error("Failed to export to PDF: ",e),new obsidian_module.Notice(t$d("EXPORTDIALOG_PDF_PROGRESS_ERROR"))}new obsidian_module.Notice(t$d("EXPORTDIALOG_PDF_PROGRESS_DONE"))}}async function exportSVGToClipboard(e){try{const t=e.outerHTML;await navigator.clipboard.writeText(t)}catch(e){console.error("Failed to copy SVG to clipboard: ",e)}}async function exportPNGToClipboard(e){await navigator.clipboard.write([new window.ClipboardItem({"image/png":e})])}function exportPNG(e,t){const a=new FileReader;a.readAsDataURL(e),a.onloadend=()=>{const e=a.result;download(null,e,`${t}.png`)}}function exportSVG(e,t){download(null,svgToBase64(e.outerHTML),`${t}.svg`)}class PDFExportSettingsComponent{contentEl;settings;update;constructor(e,t,a){this.contentEl=e,this.settings=t,this.update=a,a||(this.update=()=>{})}isOrientationAndTilingVisible(){return!("HD Screen"===this.settings.pageSize||"MATCH IMAGE"===this.settings.pageSize)}render(){const e=Object.keys(STANDARD_PAGE_SIZES).reduce(((e,t)=>({...e,[t]:t})),{});let t;new obsidian_module.Setting(this.contentEl).setName(t$d("EXPORTDIALOG_PAGE_SIZE")).addDropdown((a=>a.addOptions(e).setValue(this.settings.pageSize).onChange((e=>{this.settings.pageSize=e,t.style.display=this.isOrientationAndTilingVisible()?"block":"none",this.update()})))),t=this.contentEl.createDiv(),t.style.display=this.isOrientationAndTilingVisible()?"block":"none",new obsidian_module.Setting(t).setName(t$d("EXPORTDIALOG_PAGE_ORIENTATION")).addDropdown((e=>e.addOptions({portrait:t$d("EXPORTDIALOG_ORIENTATION_PORTRAIT"),landscape:t$d("EXPORTDIALOG_ORIENTATION_LANDSCAPE")}).setValue(this.settings.pageOrientation).onChange((e=>{this.settings.pageOrientation=e,this.update()})))),new obsidian_module.Setting(t).setName(t$d("EXPORTDIALOG_PDF_FIT_TO_PAGE")).addDropdown((e=>e.addOptions({scale:t$d("EXPORTDIALOG_PDF_SCALE_OPTION"),fit:t$d("EXPORTDIALOG_PDF_FIT_OPTION"),"fit-2":t$d("EXPORTDIALOG_PDF_FIT_2_OPTION"),"fit-4":t$d("EXPORTDIALOG_PDF_FIT_4_OPTION"),"fit-6":t$d("EXPORTDIALOG_PDF_FIT_6_OPTION"),"fit-8":t$d("EXPORTDIALOG_PDF_FIT_8_OPTION"),"fit-12":t$d("EXPORTDIALOG_PDF_FIT_12_OPTION"),"fit-16":t$d("EXPORTDIALOG_PDF_FIT_16_OPTION")}).setValue(1===this.settings.fitToPage?"fit":"number"==typeof this.settings.fitToPage?`fit-${this.settings.fitToPage}`:"scale").onChange((e=>{this.settings.fitToPage="scale"===e?0:"fit"===e?1:parseInt(e.split("-")[1]),this.update()})))),new obsidian_module.Setting(this.contentEl).setName(t$d("EXPORTDIALOG_PDF_MARGIN")).addDropdown((e=>e.addOptions({none:t$d("EXPORTDIALOG_PDF_MARGIN_NONE"),tiny:t$d("EXPORTDIALOG_PDF_MARGIN_TINY"),normal:t$d("EXPORTDIALOG_PDF_MARGIN_NORMAL")}).setValue(this.settings.margin).onChange((e=>{this.settings.margin=e,this.update()}))));const a=new obsidian_module.Setting(this.contentEl).setName(t$d("EXPORTDIALOG_PDF_PAPER_COLOR")).addDropdown((e=>e.addOptions({white:t$d("EXPORTDIALOG_PDF_PAPER_WHITE"),scene:t$d("EXPORTDIALOG_PDF_PAPER_SCENE"),custom:t$d("EXPORTDIALOG_PDF_PAPER_CUSTOM")}).setValue(this.settings.paperColor).onChange((e=>{this.settings.paperColor=e,a.style.display="custom"===e?"block":"none",this.update()})))).controlEl.createEl("input",{type:"color",value:this.settings.customPaperColor});a.style.width="50px",a.style.marginLeft="10px",a.style.display="custom"===this.settings.paperColor?"block":"none",a.addEventListener("change",(e=>{this.settings.customPaperColor=e.target.value,this.update()})),new obsidian_module.Setting(this.contentEl).setName(t$d("EXPORTDIALOG_PDF_ALIGNMENT")).addDropdown((e=>e.addOptions({center:t$d("EXPORTDIALOG_PDF_ALIGN_CENTER"),"center-left":t$d("EXPORTDIALOG_PDF_ALIGN_CENTER_LEFT"),"center-right":t$d("EXPORTDIALOG_PDF_ALIGN_CENTER_RIGHT"),"top-left":t$d("EXPORTDIALOG_PDF_ALIGN_TOP_LEFT"),"top-center":t$d("EXPORTDIALOG_PDF_ALIGN_TOP_CENTER"),"top-right":t$d("EXPORTDIALOG_PDF_ALIGN_TOP_RIGHT"),"bottom-left":t$d("EXPORTDIALOG_PDF_ALIGN_BOTTOM_LEFT"),"bottom-center":t$d("EXPORTDIALOG_PDF_ALIGN_BOTTOM_CENTER"),"bottom-right":t$d("EXPORTDIALOG_PDF_ALIGN_BOTTOM_RIGHT")}).setValue(this.settings.alignment).onChange((e=>{this.settings.alignment=e,this.update()}))))}}async function captureScreenshot(e,t){if(!DEVICE.isDesktop)return new obsidian_module.Notice(t$d("SCREENSHOT_DESKTOP_ONLY")),null;const a=e.isFullscreen();a||e.gotoFullscreen();const i=e.excalidrawAPI;i.setForceRenderAllEmbeddables(!0),t.selectedOnly=t.selectedOnly&&e.getViewSelectedElements().length>0;const n=window.require("electron").remote,r=t.selectedOnly?e.getViewSelectedElements():e.getViewElements(),s=new Set(r.map((e=>e.id))),o=[],l=getEA(e),c=n.getCurrentWebContents(),d=c.getZoomFactor();c.setZoomFactor(1),await sleep(100);const h=window.devicePixelRatio||1;t.selectedOnly&&(l.copyViewElementsToEAforEditing(e.getViewElements().filter((e=>!s.has(e.id)))),l.getElements().forEach((e=>{o.push({id:e.id,opacity:e.opacity}),e.opacity=0})),o.length>0&&await l.addElementsToView(!1,!1,!1,!1));let p=l.getBoundingBox(r);p={topX:Math.ceil(p.topX),topY:Math.ceil(p.topY),width:Math.ceil(p.width),height:Math.ceil(p.height)};const u=t.margin,m=Math.floor(i.getAppState().width),g=Math.floor(i.getAppState().height),f=Math.ceil(p.width*t.zoom+2*u),b=Math.ceil(p.height*t.zoom+2*u),U=Math.ceil(f/m),E=Math.ceil(b/g),w=Math.ceil(f/U),y=Math.ceil(b/E),v=w*U,T=y*E,S=(()=>{const{scrollX:e,scrollY:t,zoom:a,viewModeEnabled:n,linkOpacity:r,theme:s}=i.getAppState();return{scrollX:e,scrollY:t,zoom:a,viewModeEnabled:n,linkOpacity:r,theme:s}})();e.updateScene({appState:{viewModeEnabled:!0,linkOpacity:0,theme:t.theme}}),await sleep(50);const _=e.excalidrawWrapperRef.current;let x="block",C="block",I=null,A=null;const k={width:_.style.width,height:_.style.height,left:_.style.left,top:_.style.top,position:_.style.position,overflow:_.style.overflow};try{_.style.width=w+"px",_.style.height=y+"px",_.style.overflow="visible",e.updateScene({appState:{zoom:{value:t.zoom},width:w,height:y}}),await sleep(200);const{left:a,top:i}=_.getBoundingClientRect(),r=[];for(let s=0;s{n.onload=e})),o.drawImage(n,t,l),t+=i.width*h}l+=r[e*U].height*h}return new Promise((e=>{s.toBlob((t=>{e(t)}),"image/png")}))}catch(e){return console.error(e),new obsidian_module.Notice(t$d("SCREENSHOT_ERROR")),null}finally{t.selectedOnly&&o.length>0&&(l.clear(),l.copyViewElementsToEAforEditing(e.getViewElements().filter((e=>!s.has(e.id)))),o.forEach((e=>{l.getElement(e.id).opacity=e.opacity})),await l.addElementsToView(!1,!1,!1,!1)),c.setZoomFactor(d),I&&(I.style.display=x),A&&(A.style.display=C),O=S,e.updateScene({appState:{...O}}),a||e.exitFullscreen()}var O}class ExportDialog extends obsidian_module.Modal{plugin;view;file;ea;api;padding;scale;theme;transparent;saveSettings;dirty=!1;selectedOnlySetting;hasSelectedElements=!1;boundingBox;embedScene;exportSelectedOnly;saveToVault;pageSize="A4";pageOrientation="portrait";activeTab="image";contentContainer;buttonContainerRow1;buttonContainerRow2;fitToPage=1;paperColor="white";customPaperColor="#ffffff";alignment="center";margin="normal";scaleSetting;constructor(e,t,a){super(e.app),this.plugin=e,this.view=t,this.file=a,this.ea=getEA(this.view),this.api=this.ea.getExcalidrawAPI(),this.padding=getExportPadding(this.plugin,this.file),this.scale=getPNGScale(this.plugin,this.file),this.theme=getExportTheme(this.plugin,this.file,this.api.getAppState().theme),this.boundingBox=this.ea.getBoundingBox(this.ea.getViewElements()),this.embedScene=shouldEmbedScene(this.plugin,this.file),this.exportSelectedOnly=!1,this.saveToVault=!0,this.transparent=!getWithBackground(this.plugin,this.file),this.pageSize=e.settings.pdfSettings.pageSize,this.pageOrientation=e.settings.pdfSettings.pageOrientation,this.fitToPage=e.settings.pdfSettings.fitToPage,this.paperColor=e.settings.pdfSettings.paperColor,this.customPaperColor=e.settings.pdfSettings.customPaperColor,this.alignment=e.settings.pdfSettings.alignment,this.margin=e.settings.pdfSettings.margin,this.saveSettings=!1,this.createForm()}destroy(){this.app=null,this.plugin=null,this.ea.destroy(),this.ea=null,this.view=null,this.file=null,this.api=null,this.theme=null,this.selectedOnlySetting=null,this.containerEl.remove()}get isSelectedOnly(){return this.hasSelectedElements&&this.exportSelectedOnly}updateBoundingBox(){this.isSelectedOnly?this.boundingBox=this.ea.getBoundingBox(this.view.getViewSelectedElements()):this.boundingBox=this.ea.getBoundingBox(this.ea.getViewElements()),this.scaleSetting&&this.scaleSetting.setDesc(this.size())}onOpen(){this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText(t$d("EXPORTDIALOG_TITLE")),this.hasSelectedElements=this.view.getViewSelectedElements().length>0,this.selectedOnlySetting.setVisibility(this.hasSelectedElements),this.updateBoundingBox()}async onClose(){this.dirty=this.saveSettings}createForm(){if(DEVICE.isDesktop){const e=this.contentEl.createDiv("nav-buttons-container"),t=e.createEl("button",{text:t$d("EXPORTDIALOG_TAB_IMAGE"),cls:"nav-button "+("image"===this.activeTab?"is-active":"")}),a=e.createEl("button",{text:t$d("EXPORTDIALOG_TAB_PDF"),cls:"nav-button "+("pdf"===this.activeTab?"is-active":"")}),i=e.createEl("button",{text:t$d("EXPORTDIALOG_TAB_SCREENSHOT"),cls:"nav-button "+("screenshot"===this.activeTab?"is-active":"")});t.onclick=()=>{this.activeTab="image",t.addClass("is-active"),a.removeClass("is-active"),i.removeClass("is-active"),this.renderContent()},a.onclick=()=>{this.activeTab="pdf",a.addClass("is-active"),t.removeClass("is-active"),i.removeClass("is-active"),this.renderContent()},i.onclick=()=>{this.activeTab="screenshot",i.addClass("is-active"),t.removeClass("is-active"),a.removeClass("is-active"),this.renderContent()}}this.contentContainer=this.contentEl.createDiv(),this.buttonContainerRow1=this.contentEl.createDiv({cls:"excalidraw-export-buttons-div"}),this.buttonContainerRow2=this.contentEl.createDiv({cls:"excalidraw-export-buttons-div"}),this.buttonContainerRow2.style.marginTop="10px",this.renderContent()}createSaveSettingsDropdown(){new obsidian_module.Setting(this.contentContainer).setName(t$d("EXPORTDIALOG_SAVE_SETTINGS")).addDropdown((e=>e.addOption("save",t$d("EXPORTDIALOG_SAVE_SETTINGS_SAVE")).addOption("one-time",t$d("EXPORTDIALOG_SAVE_SETTINGS_ONETIME")).setValue(this.saveSettings?"save":"one-time").onChange((e=>{this.saveSettings="save"===e}))))}renderContent(){switch(this.contentContainer.empty(),this.buttonContainerRow1.empty(),this.buttonContainerRow2.empty(),this.createHeader(),this.activeTab){case"pdf":this.createImageSettings(),this.createPDFSettings(),this.createPDFButton();break;case"screenshot":this.view.isInMainObsidianWorkspace&&(this.createImageSettings(!0),this.createImageButtons(!0));break;default:this.createImageSettings(!1),this.createExportSettings(),this.createImageButtons()}}size(){const e=Math.round(this.scale*this.boundingBox.width+2*this.padding),t=Math.round(this.scale*this.boundingBox.height+2*this.padding);return fragWithHTML(`${t$d("EXPORTDIALOG_SIZE_DESC")}
    ${t$d("EXPORTDIALOG_SCALE_VALUE")} ${this.scale}
    ${t$d("EXPORTDIALOG_IMAGE_SIZE")} ${e}x${t}`)}createHeader(){switch(this.activeTab){case"pdf":this.contentContainer.createEl("h1",{text:t$d("EXPORTDIALOG_PDF_SETTINGS")});break;case"screenshot":this.contentContainer.createEl("h1",{text:t$d("EXPORTDIALOG_TAB_SCREENSHOT")}),this.view.isInMainObsidianWorkspace?this.contentContainer.createEl("p",{text:t$d("EXPORTDIALOG_SCREENSHOT_DESC")}):this.contentContainer.createEl("p",{text:t$d("EXPORTDIALOG_NOT_AVAILALBE")});break;default:this.contentContainer.createEl("h1",{text:t$d("EXPORTDIALOG_IMAGE_SETTINGS")}),this.contentContainer.createEl("p",{text:t$d("EXPORTDIALOG_IMAGE_DESC")})}}createImageSettings(e=!1){let t;this.createSaveSettingsDropdown();const a=()=>fragWithHTML(`${t$d("EXPORTDIALOG_CURRENT_PADDING")} ${this.padding}`);t=new obsidian_module.Setting(this.contentContainer).setName(t$d("EXPORTDIALOG_PADDING")).setDesc(a()).addSlider((e=>{e.setLimits(0,100,1).setValue(this.padding).onChange((e=>{this.padding=e,this.scaleSetting.setDesc(this.size()),t.setDesc(a())}))})),this.scaleSetting=new obsidian_module.Setting(this.contentContainer).setName(t$d("EXPORTDIALOG_SCALE")).setDesc(this.size()).addSlider((e=>e.setLimits(.2,7,.1).setValue(this.scale).onChange((e=>{this.scale=e,this.scaleSetting.setDesc(this.size())})))),new obsidian_module.Setting(this.contentContainer).setName(t$d("EXPORTDIALOG_EXPORT_THEME")).addDropdown((e=>e.addOption("light",t$d("EXPORTDIALOG_THEME_LIGHT")).addOption("dark",t$d("EXPORTDIALOG_THEME_DARK")).setValue(this.theme).onChange((e=>{this.theme=e})))),e||new obsidian_module.Setting(this.contentContainer).setName(t$d("EXPORTDIALOG_BACKGROUND")).addDropdown((e=>e.addOption("transparent",t$d("EXPORTDIALOG_BACKGROUND_TRANSPARENT")).addOption("with-color",t$d("EXPORTDIALOG_BACKGROUND_USE_COLOR")).setValue(this.transparent?"transparent":"with-color").onChange((e=>{this.transparent="transparent"===e})))),this.selectedOnlySetting=new obsidian_module.Setting(this.contentContainer).setName(t$d("EXPORTDIALOG_SELECTED_ELEMENTS")).addDropdown((e=>e.addOption("all",t$d("EXPORTDIALOG_SELECTED_ALL")).addOption("selected",t$d("EXPORTDIALOG_SELECTED_SELECTED")).setValue(this.exportSelectedOnly?"selected":"all").onChange((e=>{this.exportSelectedOnly="selected"===e,this.updateBoundingBox()})))),this.selectedOnlySetting.setVisibility(this.hasSelectedElements)}createExportSettings(){new obsidian_module.Setting(this.contentContainer).setName(t$d("EXPORTDIALOG_EMBED_SCENE")).addDropdown((e=>e.addOption("embed",t$d("EXPORTDIALOG_EMBED_YES")).addOption("no-embed",t$d("EXPORTDIALOG_EMBED_NO")).setValue(this.embedScene?"embed":"no-embed").onChange((e=>{this.embedScene="embed"===e}))))}createPDFSettings(){if(!DEVICE.isDesktop)return;this.contentContainer.createEl("h1",{text:t$d("EXPORTDIALOG_PDF_SETTINGS")});const e={pageSize:this.pageSize,pageOrientation:this.pageOrientation,fitToPage:this.fitToPage,paperColor:this.paperColor,customPaperColor:this.customPaperColor,alignment:this.alignment,margin:this.margin};new PDFExportSettingsComponent(this.contentContainer,e,(()=>{this.pageSize=e.pageSize,this.pageOrientation=e.pageOrientation,this.fitToPage=e.fitToPage,this.paperColor=e.paperColor,this.customPaperColor=e.customPaperColor,this.alignment=e.alignment,this.margin=e.margin})).render()}createImageButtons(e=!1){DEVICE.isDesktop&&(this.buttonContainerRow1.createEl("button",{text:t$d("EXPORTDIALOG_PNGTOFILE"),cls:"excalidraw-export-button"}).onclick=()=>{e?setTimeout((async()=>{const e=await captureScreenshot(this.view,{zoom:this.scale,margin:this.padding,selectedOnly:this.isSelectedOnly,theme:this.theme});e&&exportPNG(e,this.view.file.basename)})):this.view.exportPNG(this.embedScene,this.isSelectedOnly),this.close()}),this.buttonContainerRow1.createEl("button",{text:t$d("EXPORTDIALOG_PNGTOVAULT"),cls:"excalidraw-export-button"}).onclick=()=>{e?setTimeout((async()=>{const e=await captureScreenshot(this.view,{zoom:this.scale,margin:this.padding,selectedOnly:this.isSelectedOnly,theme:this.theme});e&&exportImageToFile(this.view,getIMGFilename(this.view.file.path,"png"),e,".png")})):this.view.savePNG({scene:this.view.getScene(this.isSelectedOnly)}),this.close()},this.buttonContainerRow1.createEl("button",{text:t$d("EXPORTDIALOG_PNGTOCLIPBOARD"),cls:"excalidraw-export-button"}).onclick=async()=>{e?setTimeout((async()=>{const e=await captureScreenshot(this.view,{zoom:this.scale,margin:this.padding,selectedOnly:this.isSelectedOnly,theme:this.theme});e&&exportPNGToClipboard(e)})):this.view.exportPNGToClipboard(this.embedScene,this.isSelectedOnly),this.close()},e||(DEVICE.isDesktop&&(this.buttonContainerRow2.createEl("button",{text:t$d("EXPORTDIALOG_EXCALIDRAW"),cls:"excalidraw-export-button"}).onclick=()=>{this.view.exportExcalidraw(),this.close()},this.buttonContainerRow2.createEl("button",{text:t$d("EXPORTDIALOG_SVGTOFILE"),cls:"excalidraw-export-button"}).onclick=()=>{this.view.exportSVG(this.embedScene,this.isSelectedOnly),this.close()}),this.buttonContainerRow2.createEl("button",{text:t$d("EXPORTDIALOG_SVGTOVAULT"),cls:"excalidraw-export-button"}).onclick=()=>{this.view.saveSVG({scene:this.view.getScene(this.isSelectedOnly)}),this.close()},this.buttonContainerRow2.createEl("button",{text:t$d("EXPORTDIALOG_SVGTOCLIPBOARD"),cls:"excalidraw-export-button"}).onclick=async()=>{exportSVGToClipboard(await this.view.getSVG(this.embedScene,this.isSelectedOnly)),this.close()})}createPDFButton(){this.buttonContainerRow1.createEl("button",{text:t$d("EXPORTDIALOG_SAVE_PDF_SETTINGS"),cls:"excalidraw-export-button"}).onclick=async()=>{await this.plugin.loadSettings(),this.plugin.settings.pdfSettings={pageSize:this.pageSize,pageOrientation:this.pageOrientation,fitToPage:this.fitToPage,paperColor:this.paperColor,customPaperColor:this.customPaperColor,alignment:this.alignment,margin:this.margin},await this.plugin.saveSettings(),new obsidian_module.Notice(t$d("EXPORTDIALOG_SAVE_CONFIRMATION"))},DEVICE.isDesktop&&(this.buttonContainerRow1.createEl("button",{text:t$d("EXPORTDIALOG_PDF"),cls:"excalidraw-export-button"}).onclick=()=>{this.view.exportPDF(this.isSelectedOnly,this.pageSize,this.pageOrientation),this.close()})}getPaperColor(){switch(this.paperColor){case"white":return"light"===this.theme?"#ffffff":"#000000";case"scene":return this.api.getAppState().viewBackgroundColor;case"custom":return this.customPaperColor;default:return"#ffffff"}}}let REM_VALUE=16;const STYLE_VARIABLES=["--background-modifier-cover","--background-primary-alt","--background-secondary","--background-secondary-alt","--background-modifier-border","--text-normal","--text-muted","--text-accent","--text-accent-hover","--text-faint","--text-highlight-bg","--text-highlight-bg-active","--text-selection","--interactive-normal","--interactive-hover","--interactive-accent","--interactive-accent-hover","--scrollbar-bg","--scrollbar-thumb-bg","--scrollbar-active-thumb-bg","--tab-container-background","--titlebar-background-focused"],EXCALIDRAW_CONTAINER_CLASS="excalidraw__embeddable__outer";class StylesManager{stylesMap=new Map;styleLight;styleDark;plugin;constructor(e){this.plugin=e,e.app.workspace.onLayoutReady((async()=>{await e.awaitInit(),await this.harvestStyles(),getAllWindowDocuments(e.app).forEach((e=>this.copyPropertiesToTheme(e))),e.registerEvent(e.app.workspace.on("css-change",(()=>this.onCSSChange()))),e.registerEvent(e.app.workspace.on("window-open",(e=>this.onWindowOpen(e)))),e.registerEvent(e.app.workspace.on("window-close",(e=>this.onWindowClose(e))))}))}async onCSSChange(){await this.harvestStyles(),getAllWindowDocuments(this.plugin.app).forEach((e=>{this.copyPropertiesToTheme(e)}))}onWindowOpen(e){this.stylesMap.set(e.doc,{light:document.head.querySelector('style[id="excalidraw-embedded-light"]'),dark:document.head.querySelector('style[id="excalidraw-embedded-dark"]')})}onWindowClose(e){this.stylesMap.delete(e.doc)}async harvestStyles(){REM_VALUE=parseInt(window.getComputedStyle(document.body).getPropertyValue("--font-text-size").trim()),isNaN(REM_VALUE)&&(REM_VALUE=16);const e=document.body,t=document.createElement("iframe");t.style.display="none",e.appendChild(t);const a=new Promise((e=>{t.addEventListener("load",(()=>e()))})),i=t.contentWindow.document,n=t.contentWindow;i.open(),i.write(`${document.head.innerHTML}`),i.close(),await a;const r=t.contentWindow.document.body;r.setAttribute("style",e.getAttribute("style")),r.setAttribute("class",e.getAttribute("class"));const s=e=>{r.classList.remove("theme-light"),r.classList.remove("theme-dark"),r.classList.add(e)},o=()=>{const e=n.getComputedStyle(r),t={};for(const a of STYLE_VARIABLES)t[a]=e.getPropertyValue(a);const a=this.plugin.ea.getCM(e.getPropertyValue("--background-primary"));return a.alphaTo(.9),t["--background-primary"]=a.stringHEX(),Object.entries(t).map((([e,t])=>`${e}: ${t} !important;`)).join(" ")};s("theme-light"),this.styleLight=o(),s("theme-dark"),this.styleDark=o(),e.removeChild(t)}copyPropertiesToTheme(e){const t=this.stylesMap.get(e);if(t)t.light.innerHTML=`.${EXCALIDRAW_CONTAINER_CLASS} .theme-light {\n${this.styleLight}\n}`,t.dark.innerHTML=`.${EXCALIDRAW_CONTAINER_CLASS} .theme-dark {\n${this.styleDark}\n}`;else{const t=e.createElement("style");t.type="text/css",t.setAttribute("id","excalidraw-embedded-light"),t.innerHTML=`.${EXCALIDRAW_CONTAINER_CLASS} .theme-light {\n${this.styleLight}\n}`,e.head.appendChild(t);const a=e.createElement("style");a.type="text/css",a.setAttribute("id","excalidraw-embedded-dark"),a.innerHTML=`.${EXCALIDRAW_CONTAINER_CLASS} .theme-dark {\n${this.styleDark}\n}`,e.head.appendChild(a),this.stylesMap.set(e,{light:t,dark:a})}}destroy(){for(const[e,t]of this.stylesMap)e.head.removeChild(t.light),e.head.removeChild(t.dark);this.plugin=null}}const TOOLS_PANEL_WIDTH=()=>14.4*REM_VALUE;class ToolsPanel extends React__namespace.Component{pos1=0;pos2=0;pos3=0;pos4=0;penDownX=0;penDownY=0;previousWidth=0;previousHeight=0;onRightEdge=!1;onBottomEdge=!1;containerRef;view;componentWillUnmount(){this.containerRef.current&&this.props.observer.deref()?.unobserve(this.containerRef.current),this.setState({scriptIconMap:null}),this.containerRef=null,this.view=null}constructor(e){super(e),this.view=e.view.deref();const t=this.view.packages.react;this.containerRef=t.createRef(),this.state={visible:e.visible,top:50,left:200,theme:"dark",excalidrawViewMode:!1,minimized:!1,isDirty:!1,isFullscreen:!1,isPreviewMode:!0,scriptIconMap:{}}}updateScriptIconMap(e){this.setState((()=>({scriptIconMap:e})))}setPreviewMode(e){this.setState((()=>({isPreviewMode:e})))}setFullscreen(e){this.setState((()=>({isFullscreen:e})))}setDirty(e){this.setState((()=>({isDirty:e})))}setExcalidrawViewMode(e){this.setState((()=>({excalidrawViewMode:e})))}toggleVisibility(e){this.setTopCenter(e),this.setState((e=>({visible:!e.visible})))}setTheme(e){this.setState((t=>({theme:e})))}setTopCenter(e){this.setState((()=>({left:(this.containerRef.current.clientWidth-TOOLS_PANEL_WIDTH()-(e?0:TOOLS_PANEL_WIDTH()+4))/2+this.containerRef.current.parentElement.offsetLeft+(e?0:TOOLS_PANEL_WIDTH()+4),top:64+this.containerRef.current.parentElement.offsetTop})))}updatePosition(e=0,t=0){this.setState((()=>{const{offsetTop:a,offsetLeft:i,clientWidth:n,clientHeight:r}=this.containerRef.current.firstElementChild,s=a-e,o=i-t,{clientWidth:l,clientHeight:c,offsetTop:d,offsetLeft:h}=this.containerRef.current.parentElement;return this.previousHeight=c,this.previousWidth=l,this.onBottomEdge=s>=c-r+d,this.onRightEdge=o>=l-n+h,{top:sthis.view.addText(e,t,a)))}actionImportSVG(e){this.view.plugin.importSVGDialog.start(this.view)}actionCropImage(e){this.view.app.commands.executeCommandById("obsidian-excalidraw-plugin:crop-image")}async actionRunScript(e){const t=this.view,a=t.plugin,i=a.app.vault.getAbstractFileByPath(e);i&&i instanceof obsidian_module.TFile&&a.scriptEngine.executeScript(t,await a.app.vault.read(i),a.scriptEngine.getScriptName(i),i)}async actionPinScript(e,t){const a=this.view,i=a.excalidrawAPI,n=a.plugin;await n.loadSettings();const r=n.settings.pinnedScripts.indexOf(e);r>-1?(n.settings.pinnedScripts.splice(r,1),i?.setToast({message:`Pin removed: ${t}`,duration:3e3,closable:!0})):(n.settings.pinnedScripts.push(e),i?.setToast({message:`Pinned: ${t}`,duration:3e3,closable:!0})),await n.saveSettings(),getExcalidrawViews(n.app).forEach((e=>e.updatePinnedScripts()))}islandOnClick(e){e.preventDefault(),Math.abs(this.penDownX-this.pos3)>5||Math.abs(this.penDownY-this.pos4)>5||this.setState((e=>({minimized:!e.minimized})))}islandOnPointerDown(e){const t=e=>{e.preventDefault(),this.pos1=this.pos3-e.clientX,this.pos2=this.pos4-e.clientY,this.pos3=e.clientX,this.pos4=e.clientY,this.updatePosition(this.pos2,this.pos1)},a=()=>{this.view.ownerDocument?.removeEventListener("pointerup",a),this.view.ownerDocument?.removeEventListener("pointermove",t)};e.preventDefault(),this.penDownX=this.pos3=e.clientX,this.penDownY=this.pos4=e.clientY,this.view.ownerDocument.addEventListener("pointerup",a),this.view.ownerDocument.addEventListener("pointermove",t)}render(){return React__namespace.createElement("div",{ref:this.containerRef,className:clsx("excalidraw",{"theme--dark":"dark"===this.state.theme}),style:{width:"100%",height:"100%",position:"absolute",touchAction:"none"}},React__namespace.createElement("div",{className:"Island",style:{top:`${this.state.top}px`,left:`${this.state.left}px`,width:"14.4rem",display:this.state.visible&&!this.state.excalidrawViewMode?"block":"none",height:"fit-content",maxHeight:"400px",zIndex:5}},React__namespace.createElement("div",{style:{height:"26px",width:"100%",cursor:"move"},onClick:this.islandOnClick.bind(this),onPointerDown:this.islandOnPointerDown.bind(this)},React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 228 26"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M40,7 h148 M40,13 h148 M40,19 h148"}))),React__namespace.createElement("div",{className:"Island App-menu__left scrollbar",style:{maxHeight:"350px",width:"initial","--padding":"0.125rem",display:this.state.minimized?"none":"block"}},React__namespace.createElement("div",{className:"selected-shape-actions"},React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Utility actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"scriptEngine",title:t$d("INSTALL_SCRIPT_BUTTON"),action:this.actionOpenScriptInstallDialog.bind(this),icon:ICONS.scriptEngine}),React__namespace.createElement(ActionButton,{key:"release-notes",title:t$d("READ_RELEASE_NOTES"),action:this.actionOpenReleaseNotes.bind(this),icon:ICONS.releaseNotes}),null===this.state.isPreviewMode?React__namespace.createElement(ActionButton,{key:"convert",title:t$d("CONVERT_FILE"),action:this.actionConvertExcalidrawToMD.bind(this),icon:ICONS.convertFile}):!this.state.isPreviewMode&&React__namespace.createElement(ActionButton,{key:"viewmode",title:this.state.isPreviewMode?t$d("PARSED"):t$d("RAW"),action:this.actionToggleViewMode.bind(this),icon:this.state.isPreviewMode?ICONS.rawMode:ICONS.parsedMode}),React__namespace.createElement(ActionButton,{key:"tray-mode",title:t$d("TRAY_MODE"),action:this.actionToggleTrayMode.bind(this),icon:ICONS.trayMode}),React__namespace.createElement(ActionButton,{key:"fullscreen",title:this.state.isFullscreen?t$d("EXIT_FULLSCREEN"):t$d("GOTO_FULLSCREEN"),action:this.actionToggleFullscreen.bind(this),icon:this.state.isFullscreen?ICONS.exitFullScreen:ICONS.gotoFullScreen})),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"search",title:t$d("SEARCH"),action:this.actionSearch.bind(this),icon:ICONS.search}),React__namespace.createElement(ActionButton,{key:"ocr",title:t$d("RUN_OCR"),action:this.actionOCR.bind(this),icon:ICONS.ocr}),React__namespace.createElement(ActionButton,{key:"openLink",title:t$d("OPEN_LINK_CLICK"),action:this.actionOpenLink.bind(this),icon:ICONS.openLink}),React__namespace.createElement(ActionButton,{key:"openLinkProperties",title:t$d("OPEN_LINK_PROPS"),action:this.actionOpenLinkProperties.bind(this),icon:ICONS.openLinkProperties}),React__namespace.createElement(ActionButton,{key:"save",title:t$d("FORCE_SAVE"),action:this.actionForceSave.bind(this),icon:saveIcon(this.state.isDirty)}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Export actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"lib",title:t$d("DOWNLOAD_LIBRARY"),action:this.actionExportLibrary.bind(this),icon:ICONS.exportLibrary}),React__namespace.createElement(ActionButton,{key:"exportIMG",title:t$d("EXPORT_IMAGE"),action:this.actionExportImage.bind(this),icon:ICONS.ExportImage}),React__namespace.createElement(ActionButton,{key:"md",title:t$d("OPEN_AS_MD"),action:this.actionOpenAsMarkdown.bind(this),icon:ICONS.switchToMarkdown}),React__namespace.createElement(ActionButton,{key:"link-to-element",title:t$d("INSERT_LINK_TO_ELEMENT"),action:this.actionLinkToElement.bind(this),icon:ICONS.copyElementLink}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Insert actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"anyfile",title:t$d("UNIVERSAL_ADD_FILE"),action:this.actionAddAnyFile.bind(this),icon:ICONS["add-file"]}),React__namespace.createElement(ActionButton,{key:"image",title:t$d("INSERT_IMAGE"),action:this.actionInsertImage.bind(this),icon:ICONS.insertImage}),React__namespace.createElement(ActionButton,{key:"pdf",title:t$d("INSERT_PDF"),action:this.actionInsertPDF.bind(this),icon:ICONS.insertPDF}),React__namespace.createElement(ActionButton,{key:"insertMD",title:t$d("INSERT_MD"),action:this.actionInsertMarkdown.bind(this),icon:ICONS.insertMD}),React__namespace.createElement(ActionButton,{key:"insertBackOfNote",title:t$d("INSERT_CARD"),action:this.actionInsertBackOfNote.bind(this),icon:ICONS.BackOfNote}),React__namespace.createElement(ActionButton,{key:"latex",title:t$d("INSERT_LATEX"),action:this.actionInsertLaTeX.bind(this),icon:ICONS.insertLaTeX}),React__namespace.createElement(ActionButton,{key:"link",title:t$d("INSERT_LINK"),action:this.actionInsertLink.bind(this),icon:ICONS.insertLink}),React__namespace.createElement(ActionButton,{key:"import-svg",title:t$d("IMPORT_SVG"),action:this.actionImportSVG.bind(this),icon:ICONS.importSVG}),React__namespace.createElement(ActionButton,{key:"crop-image",title:t$d("CROP_IMAGE"),action:this.actionCropImage.bind(this),icon:ICONS.Crop}))),this.renderScriptButtons(!1),this.renderScriptButtons(!0)))))}renderScriptButtons(e){if(0===Object.keys(this.state.scriptIconMap).length)return"";if(!this.view.plugin._loaded)return null;const t=`${this.view.plugin.settings.scriptFolderPath}/${SCRIPT_INSTALL_FOLDER}/`,a=a=>e?a.startsWith(t):!a.startsWith(t);if(0===Object.keys(this.state.scriptIconMap).filter((e=>a(e))).length)return"";const i=new Set;Object.keys(this.state.scriptIconMap).filter((e=>a(e))).forEach((e=>i.add(this.state.scriptIconMap[e].group)));const n=Array.from(i).sort(((e,t)=>e>t?1:-1));return n.push(n.shift()),React__namespace.createElement(React__namespace.Fragment,null,n.map(((t,a)=>React__namespace.createElement("fieldset",{key:`${t}-${a}`},React__namespace.createElement("legend",null,e?t:""===t?"User":"User/"+t),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},Object.entries(this.state.scriptIconMap).filter((([e,a])=>a.group===t)).sort().map((([e,t])=>React__namespace.createElement(ActionButton,{key:e,title:t.name,action:this.actionRunScript.bind(this,e),longpress:this.actionPinScript.bind(this,e,t.name),icon:new WeakRef(t.svgString?stringToSVG(t.svgString):ICONS.cog).deref()}))))))))}}const getElementsAtPointer=(e,t,a)=>t.filter((t=>{if(a&&t.type!==a)return!1;if(t.locked)return!1;const[i,n,r,s]=rotatedDimensions(t);return i<=e.x&&i+r>=e.x&&n<=e.y&&n+s>=e.y})).reverse(),getTextElementAtPointer=(e,t)=>{const a=t.excalidrawAPI;if(!a)return{id:null,text:null};const i=getElementsAtPointer(e,a.getSceneElements(),"text");if(0==i.length)return{id:null,text:null};if(1===i.length)return{id:i[0].id,text:i[0].text};const n=i.filter((e=>{const a=t.textMode===TextMode.parsed?t.excalidrawData.getRawText(e.id):e.text;return!!a&&(!!a.match(REG_LINKINDEX_HYPERLINK)||!!REGEX_LINK.getRes(a).next().value)}));return 0==n.length?{id:i[0].id,text:i[0].text}:{id:n[0].id,text:n[0].text}},getImageElementAtPointer=(e,t)=>{const a=t.excalidrawAPI;if(!a)return;const i=getElementsAtPointer(e,a.getSceneElements(),"image");return 0===i.length?{id:null,fileId:null}:i.length>=1?{id:i[0].id,fileId:i[0].fileId}:void 0},getElementWithLinkAtPointer=(e,t)=>{const a=t.excalidrawAPI;if(!a)return;let i=getElementsAtPointer(e,a.getSceneElements()).filter((e=>e.link));if(0===i.length){const n=getElementsAtPointer(e,a.getSceneElements()).map((e=>getBoundTextElementId(e)));i=t.getViewElements().filter((e=>"text"===e.type&&e.link&&n.includes(e.id)))}return 0===i.length?{id:null,text:null}:i.length>=1?{id:i[0].id,text:i[0].link}:void 0},CANVAS_VIEWTYPES=new Set(["markdown","bases","audio","video","pdf"]);let noticeTimer;function showNoticeOnce(e){noticeTimer||(noticeTimer=window.setTimeout((()=>{noticeTimer=void 0}),1e3),new obsidian_module.Notice(e,6e3))}function getTheme(e,t){return"dark"===e.excalidrawData.embeddableTheme?"theme-dark":"light"===e.excalidrawData.embeddableTheme?"theme-light":"auto"===e.excalidrawData.embeddableTheme?"dark"===t?"theme-dark":"theme-light":isObsidianThemeDark()?"theme-dark":"theme-light"}function setPDFViewTheme(e,t){if(t){if("auto"===e.excalidrawData.embeddableTheme){t.viewer?.child?.pdfViewer?.setBackground?.(null,!1);const e=t.containerEl?.querySelector(".pdf-container");e&&e.classList.remove("mod-themed");const a=t.containerEl?.querySelector(".pdf-thumbnail-view");a&&(a.style.filter="var(--theme-filter)")}else{const e=t.containerEl?.querySelector("div.pdfViewer");e&&e.addClass("mod-nofilter")}if(["dark","light"].includes(e.excalidrawData.embeddableTheme)){const e=t.containerEl?.querySelector(".pdf-container");e&&!e.classList.contains("mod-themed")&&e.classList.add("mod-themed")}"light"===e.excalidrawData.embeddableTheme&&t.viewer?.child?.pdfViewer?.setBackground?.(null,!1),"dark"===e.excalidrawData.embeddableTheme&&t.viewer?.child?.pdfViewer?.setBackground?.(document.body.getCssPropertyValue("--color-base-00"),!0)}}function setupPdfViewEnhancements(e,t,a,i){const n=t.current?.node?.child;if(!n)return;const r=()=>{i.current=!0,setPDFViewTheme(e,n),requestAnimationFrame((()=>{i.current=!1}));const t=n.containerEl;let r=t?.style?.height||"",s=null;t&&(s=new MutationObserver((()=>{const e=t.style.height||"";e!==r&&(r=e,e&&(t.style.height="",r=""))})),s.observe(t,{attributes:!0,attributeFilter:["style"]}));const o=n.containerEl?.querySelector(".pdf-viewer-container")||null;let l=!1,c=0,d=0,h=1,p=1;const u=t=>{if(DEVICE.isDesktop&&1!==t.button||DEVICE.isMobile&&0!==t.button||!o)return;t.preventDefault(),t.stopPropagation(),l=!0,c=t.clientX,d=t.clientY;const{sx:a,sy:i}=(e=>{const t=e?.closest(".excalidraw__embeddable-container");if(!t)return{sx:1,sy:1};const a=getComputedStyle(t).transform;if(!a||"none"===a)return{sx:1,sy:1};if(a.startsWith("matrix3d(")){const e=a.slice(9,-1).split(",").map(Number),t=e[0],i=e[1],n=e[4],r=e[5];return{sx:Math.hypot(t,i)||1,sy:Math.hypot(n,r)||1}}if(a.startsWith("matrix(")){const e=a.slice(7,-1).split(",").map(Number),t=e[0],i=e[1],n=e[2],r=e[3];return{sx:Math.hypot(t,i)||1,sy:Math.hypot(n,r)||1}}return{sx:1,sy:1}})(o);h=a,p=i,window.addEventListener("pointermove",m,{capture:!0}),window.addEventListener("pointerup",g,{capture:!0,once:!0}),window.addEventListener("pointercancel",g,{capture:!0,once:!0});try{e.contentEl.style.cursor="grabbing"}catch{}},m=e=>{if(!l||!o)return;if(DEVICE.isDesktop&&!(4&e.buttons)||DEVICE.isMobile&&!(1&e.buttons))return;const t=e.clientX-c,a=e.clientY-d;c=e.clientX,d=e.clientY,o.scrollLeft-=t/(h||1),o.scrollTop-=a/(p||1),e.preventDefault(),e.stopPropagation()},g=t=>{l=!1;try{e.contentEl.style.cursor=""}catch{}window.removeEventListener("pointermove",m,{capture:!0}),window.removeEventListener("pointerup",g,{capture:!0}),window.removeEventListener("pointercancel",g,{capture:!0})},f=n.containerEl;if(f?.addEventListener("pointerdown",u,{capture:!0}),a.currentCleanup=()=>{f?.removeEventListener("pointerdown",u,{capture:!0}),window.removeEventListener("pointermove",m,{capture:!0}),window.removeEventListener("pointerup",g,{capture:!0}),window.removeEventListener("pointercancel",g,{capture:!0}),s?.disconnect(),s=null},"default"!==e.excalidrawData.embeddableTheme){const t=n.containerEl?.querySelector(".pdf-container");t&&(a.current?.disconnect(),a.current=new MutationObserver((()=>{if(!i.current){i.current=!0;try{setPDFViewTheme(e,n),"default"!==e.excalidrawData.embeddableTheme&&showNoticeOnce(t$d("NOTICE_PDF_THEME"))}finally{requestAnimationFrame((()=>{i.current=!1}))}}})),a.current.observe(t,{attributes:!0,attributeFilter:["class"]}))}},s=t?.current?.node?.child?.containerEl;if(s){const e=".pdf-viewer-container";if(s.querySelector(e))r();else{let t=null;const a=new MutationObserver(((a,i)=>{s.querySelector(e)&&(r(),i.disconnect(),t&&clearTimeout(t))}));a.observe(s,{childList:!0,subtree:!0}),t=window.setTimeout((()=>{a.disconnect()}),1e4)}}}function renderWebView(e,t,a,i){const n=e.startsWith("data:");return DEVICE.isDesktop&&!n?React__namespace.createElement("webview",{ref:e=>t.updateEmbeddableRef(a,e),className:"excalidraw__embeddable",title:"Excalidraw Embedded Content",allowFullScreen:!0,src:e,webpreferences:"autoplayPolicy=document-user-activation-required",style:{overflow:"hidden",borderRadius:"var(--embeddable-radius)"}}):React__namespace.createElement("iframe",{ref:e=>t.updateEmbeddableRef(a,e),className:"excalidraw__embeddable",title:"Excalidraw Embedded Content",allowFullScreen:!0,allow:"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture",src:n?null:e,style:{overflow:"hidden",borderRadius:"var(--embeddable-radius)"},srcDoc:n?atob(e.split(",")[1]):null})}function RenderObsidianView({mdProps:e,element:t,linkText:a,view:i,containerRef:n,activeEmbeddable:r,theme:s,canvasColor:o}){const{subpath:l,file:c}=processLinkText(a,i);if(!c)return null;const d=i.packages.react,h=d.useRef(null),p=d.useRef(!1),u=d.useRef(!1),m=d.useRef(s),g=d.useRef(t),f=d.useRef(null),b=d.useRef(!1);d.useEffect((()=>{m.current=s}),[s]),d.useEffect((()=>{g.current=t}),[t]);const U=d.useCallback((e=>{u.current&&e.stopPropagation()}),[u.current]);d.useEffect((()=>{if(n?.current)return KEYBOARD_EVENT_TYPES.forEach((e=>n.current.addEventListener(e,U))),n.current.addEventListener("click",y),()=>{n?.current&&(KEYBOARD_EVENT_TYPES.forEach((e=>n.current.removeEventListener(e,U))),EXTENDED_EVENT_TYPES.forEach((e=>n.current.removeEventListener(e,U))),n.current.removeEventListener("click",y))}}),[]),d.useEffect((()=>{if(EXTENDED_EVENT_TYPES.forEach((e=>n.current.removeEventListener(e,U))),n?.current)return u.current&&EXTENDED_EVENT_TYPES.forEach((e=>n.current.addEventListener(e,U))),()=>{n?.current&&EXTENDED_EVENT_TYPES.forEach((e=>n.current.removeEventListener(e,U)))}}),[u.current,n.current]),d.useEffect((()=>{c!==i.file&&(u.current||setFileToLocalGraph(i.app,i.file))}),[u.current]);const E=()=>{i.app.workspace.activeLeaf===i.leaf&&DEVICE.isDesktop&&(i.ownerWindow.electronWindow.isAlwaysOnTop()||(i.ownerWindow.electronWindow.setAlwaysOnTop(!0),setTimeout((()=>{i.ownerWindow.electronWindow.setAlwaysOnTop(!1)}),500)))};function w(e,t,a,r,s){if(!a)return;if(!h.current?.hasOwnProperty("node"))return;const o=n.current?.firstElementChild;if(a.useObsidianDefaults)return e?.style.removeProperty("--canvas-background"),o?.style.removeProperty("background-color"),e?.style.removeProperty("--canvas-border"),void o?.style.removeProperty("border-color");const l=i.plugin.ea;if(a.backgroundMatchElement){const i=(a?.backgroundOpacity??50)/100,n=t?.backgroundColor?"transparent"===t.backgroundColor.toLowerCase()?"transparent":l.getCM(t.backgroundColor).alphaTo(i).stringHEX({alpha:!0}):"transparent";"transparent"===n?e?.addClass("transparent"):e?.removeClass("transparent"),e?.style.setProperty("--canvas-background",n),e?.style.setProperty("--background-primary",n),o?.style.setProperty("background-color",n)}else if(!(a.backgroundMatchElement??1)){const t=(a.backgroundOpacity??100)/100,i=a.backgroundMatchCanvas?"transparent"===r.toLowerCase()?"transparent":l.getCM(r).alphaTo(t).stringHEX({alpha:!0}):l.getCM(a.backgroundColor).alphaTo((a.backgroundOpacity??100)/100).stringHEX({alpha:!0});"transparent"===i?e?.addClass("transparent"):e?.removeClass("transparent"),e?.style.setProperty("--canvas-background",i),e?.style.setProperty("--background-primary",i),o?.style.setProperty("background-color",i)}switch(s){case"bases":e?.style.setProperty("--bases-cards-container-background","var(--background-primary)"),e?.style.setProperty("--bases-embed-border-color","var(--background-modifier-border)"),e?.style.setProperty("--bases-table-header-color","var(--text-muted)"),e?.style.setProperty("--bases-table-header-background","var(--background-primary)"),e?.style.setProperty("--bases-table-header-background-hover","var(--background-modifier-hover)"),e?.style.setProperty("--bases-table-header-sort-mask","linear-gradient(to left, transparent var(--size-4-6), black var(--size-4-6))"),e?.style.setProperty("--bases-table-border-color","var(--table-border-color)"),e?.style.setProperty("--bases-table-row-background-hover","var(--table-row-background-hover)"),e?.style.setProperty("--bases-table-cell-shadow-active","0 0 0 2px var(--interactive-accent)"),e?.style.setProperty("--bases-table-cell-background-active","var(--background-primary)"),e?.style.setProperty("--bases-table-cell-background-disabled","var(--background-primary-alt)"),e?.style.setProperty("--bases-cards-container-background","var(--background-primary)"),e?.style.setProperty("--bases-cards-background","var(--background-primary)"),e?.style.setProperty("--bases-cards-cover-background","var(--background-primary-alt)"),e?.style.setProperty("--bases-cards-shadow","0 0 0 1px var(--background-modifier-border)"),e?.style.setProperty("--bases-cards-shadow-hover","0 0 0 1px var(--background-modifier-border-hover)");break;case"pdf":e?.style.setProperty("--pdf-sidebar-background","var(--background-primary)"),e?.style.setProperty("--pdf-background","var(--background-primary)"),e?.style.setProperty("--pdf-sidebar-background","var(--background-primary)")}if(a.borderMatchElement){const i=(a?.borderOpacity??50)/100,n=t?.strokeColor?"transparent"===t.strokeColor.toLowerCase()?"transparent":l.getCM(t.strokeColor).alphaTo(i).stringHEX({alpha:!0}):"transparent";e?.style.setProperty("--canvas-border",n),e?.style.setProperty("--canvas-color",n)}else if(!(a?.borderMatchElement??1)){const t=l.getCM(a.borderColor).alphaTo((a.borderOpacity??100)/100).stringHEX({alpha:!0});e?.style.setProperty("--canvas-border",t),e?.style.setProperty("--canvas-color",t)}}d.useEffect((()=>{if(!n?.current)return;for(;n.current.hasChildNodes();)n.current.removeChild(n.current.lastChild);n.current.parentElement.style.padding="";const a=i.ownerDocument,r=new obsidian_module.WorkspaceSplit(i.app.workspace,"vertical");return r.getRoot=()=>i.app.workspace[a===document?"rootSplit":"floatingSplit"],r.getContainer=()=>getContainerForDocument(a),r.containerEl.style.width="100%",r.containerEl.style.height="100%",r.containerEl.style.borderRadius="var(--embeddable-radius)",i.plugin.setDebounceActiveLeafChangeHandler(),h.current={leaf:i.app.workspace.createLeafInParent(r,0),node:null,editNode:null},patchMobileView(i),l&&i.canvasNodeFactory.isInitialized()&&"md"===c.extension.toLowerCase()?(E(),h.current.node=i.canvasNodeFactory.createFileNote(c,l,n.current,t.id),i.updateEmbeddableLeafRef(t.id,h.current)):(async()=>{await h.current.leaf.openFile(c,{active:!1,state:{mode:"preview"},...l?{eState:{subpath:l}}:{}});const a=h.current.leaf.view?.getViewType();if("canvas"===a&&h.current.leaf.view.canvas?.setReadonly(!0),CANVAS_VIEWTYPES.has(a)&&i.canvasNodeFactory.isInitialized())E(),await h.current.leaf.setViewState({state:{file:null}}),h.current.node=i.canvasNodeFactory.createFileNote(c,l,n.current,t.id),w(n.current,t,e,o,a);else{const i=r.containerEl.querySelector("div.workspace-leaf");i&&(i.style.borderRadius="var(--embeddable-radius)"),r.containerEl.addClass("mod-visible"),n.current.appendChild(r.containerEl),w(n.current,t,e,o,a)}i.updateEmbeddableLeafRef(t.id,h.current),"pdf"===a&&setupPdfViewEnhancements(i,h,f,b)})(),()=>{f.currentCleanup?.(),f.current?.disconnect(),f.current=null,h.current&&(i.canvasNodeFactory.removeNode(h.current.node),h.current.leaf?.detach(),h.current=null)}}),[a,l,n]),d.useEffect((()=>{if(!n.current)return;const t=g.current,a=n.current;if(!a.hasClass("canvas-node"))return;const i=h.current.leaf.view?.getViewType();w(a,t,e,o,i)}),[e?.useObsidianDefaults,e?.backgroundMatchCanvas,e?.backgroundMatchElement,e?.backgroundColor,e?.backgroundOpacity,e?.borderMatchElement,e?.borderColor,e?.borderOpacity,g.current,n.current,o,h.current]),d.useEffect((()=>{p.current&&(h.current?.node&&(n.current?.addClasses(["is-editing","is-focused"]),i.canvasNodeFactory.stopEditing(h.current.node)),p.current=!1)}),[p.current,h]);const y=d.useCallback((e=>{if(u.current&&e?.stopPropagation(),u.current&&!p.current&&h.current?.leaf)if("markdown"===h.current.leaf.view?.getViewType()){const e=i.excalidrawAPI.getSceneElements().filter((e=>e.id===t.id))[0];if(!e||0!==e.angle)return void new obsidian_module.Notice("Sorry, cannot edit rotated markdown documents");const a=h.current.leaf.view.modes;if(!a)return;patchMobileView(i),h.current.leaf.view.setMode(a.source),p.current=!0}else if(h.current?.node){const e=getTheme(i,m.current);n.current?.addClasses(["is-editing","is-focused"]),i.canvasNodeFactory.startEditing(h.current.node,e)}}),[h.current?.leaf,t.id,i,m.current,u.current,p.current]),v=d.useCallback((()=>{u.current&&p.current||(u.current=!0,y())}),[u.current,p.current,y]);return h.current&&(h.current.editNode=v),d.useEffect((()=>{const e=e=>{if("Escape"===e.key&&u.current)return e.preventDefault(),e.stopPropagation(),void i.updateScene({appState:{activeEmbeddable:null}});"Enter"!==e.key||u.current||v()};return document.addEventListener("keydown",e,!0),()=>{document.removeEventListener("keydown",e,!0)}}),[y,u.current,i]),d.useEffect((()=>{if(!n?.current||!h?.current)return;const e=u.current;u.current=r?.element.id===t.id&&"active"===r?.state;const a=h.current?.node;if(e!==u.current)if(c!==i.file&&setFileToLocalGraph(i.app,c),"markdown"===h.current.leaf?.view?.getViewType()){const e=h.current.leaf.view.modes;if(!e)return;if(!u.current)return h.current.leaf.view.setMode(e.preview),void(p.current=!1)}else if(a)if(u.current&&i.plugin.settings.markdownNodeOneClickEditing&&!n.current?.hasClass("is-editing")){const e=getTheme(i,m.current);n.current?.addClasses(["is-editing","is-focused"]),i.canvasNodeFactory.startEditing(a,e)}else n.current?.removeClasses(["is-editing","is-focused"]),i.canvasNodeFactory.stopEditing(a)}),[n,h,r?.state,u,r?.element,r?.state,t,i,p,i.canvasNodeFactory,m.current]),null}const CustomEmbeddable=({element:e,view:t,appState:a,linkText:i})=>{const n=t.packages.react,r=n.useRef(null),s=getTheme(t,a.theme),o=e.customData?.mdProps||null;return n.createElement("div",{ref:r,style:{width:"100%",height:"100%",borderRadius:"var(--embeddable-radius)",color:"var(--text-normal)",touchAction:"auto"},className:`${s} canvas-node ${o?.filenameVisible&&!o.useObsidianDefaults?"":"excalidraw-mdEmbed-hideFilename"}`},n.createElement(RenderObsidianView,{mdProps:o,element:e,linkText:i,view:t,containerRef:r,activeEmbeddable:a.activeEmbeddable,theme:a.theme,canvasColor:a.viewBackgroundColor}))};class CanvasNodeFactory{view;leaf;canvas;nodes=new Map;initialized=!1;isInitialized=()=>this.initialized;observer;constructor(e){this.view=e}async initialize(){const e=this.view.app,t=e.internalPlugins.plugins.canvas;t._loaded||await t.load();const a=this.view.ownerDocument,i=new obsidian_module.WorkspaceSplit(e.workspace,"vertical");i.getRoot=()=>e.workspace[a===document?"rootSplit":"floatingSplit"],i.getContainer=()=>getContainerForDocument(a),this.leaf=e.workspace.createLeafInParent(i,0),this.canvas=t.views.canvas(this.leaf).canvas,this.initialized=!0}createFileNote(e,t,a,i){if(!this.initialized)return;t=t??"",this.nodes.has(i)&&(this.canvas.removeNode(this.nodes.get(i)),this.nodes.delete(i));const n=this.canvas.createFileNode({pos:{x:0,y:0},file:e,subpath:t,save:!1});return n.setFilePath(e.path,t),n.render(),n.containerEl.querySelector(".canvas-node-content-blocker")?.remove(),a.appendChild(n.containerEl),this.nodes.set(i,n),n}async waitForEditor(e){let t=0;for(;!e.child.editor?.containerEl?.parentElement?.parentElement&&t++<100;)await new Promise((e=>setTimeout(e,25)));return e.child.editor?.containerEl?.parentElement?.parentElement}setupThemeObserver(e,t,a){const i=e=>{for(const i of e)if("attributes"===i.type&&"class"===i.attributeName){const e=i.target;e.classList.contains(t)&&(e.classList.remove(t),e.classList.add(a))}};this.observer?.disconnect(),this.observer=DEBUGGING?new CustomMutationObserver(i,"CanvasNodeFactory"):new MutationObserver(i),this.observer.observe(e,{attributes:!0})}async startEditing(e,t){if(this.initialized&&e&&e.isEditable())try{await this.view.setEmbeddableNodeIsEditing(),e.startEditing(),e.isEditing=!0;const a=isObsidianThemeDark()?"theme-dark":"theme-light";if(a===t)return;const i=await this.waitForEditor(e);if(!i)return;i.classList.remove(a),i.classList.add(t),this.setupThemeObserver(i,a,t)}catch(t){console.error("Error starting edit:",t),e.isEditing=!1}}stopEditing(e){if(this.initialized&&e&&e.isEditing&&e.isEditable())try{this.view.clearEmbeddableNodeIsEditing(),e.child.showPreview(),e.isEditing=!1,this.observer?.disconnect()}catch(e){console.error("Error stopping edit:",e)}}removeNode(e){this.initialized&&e&&(this.nodes.delete(e.file.path),this.canvas.removeNode(e),e.detach())}purgeNodes(){this.initialized&&(this.nodes.forEach((e=>{this.canvas.removeNode(e),e.detach()})),this.nodes.clear())}destroy(){this.purgeNodes(),this.initialized=!1,this.observer?.disconnect(),this.view=null,this.canvas=null,this.leaf=null}}const REG_YOUTUBE=/^(?:http(?:s)?:\/\/)?(?:www\.)?youtu(?:be\.com|\.be)\/(embed\/|watch\?v=|shorts\/|playlist\?list=|embed\/videoseries\?list=)?([a-zA-Z0-9_-]+)(?:\?t=|.*&t=|\?start=|.*&start=)?([a-zA-Z0-9_-]+)?[^\s]*$/,isYouTube=e=>Boolean(e.match(REG_YOUTUBE)),getYouTubeStartAt=e=>{const t=e.match(REG_YOUTUBE);if(t?.[2]){const e=t[3]?parseInt(t[3]):0,a=Math.floor(e/3600),i=Math.floor((e-3600*a)/60),n=e-3600*a-60*i;return 0===a&&0===i&&0===n?"":0===a&&0===i?`${String(n).padStart(2,"0")}`:0===a?`${String(i).padStart(2,"0")}:${String(n).padStart(2,"0")}`:`${String(a).padStart(2,"0")}:${String(i).padStart(2,"0")}:${String(n).padStart(2,"0")}`}return""},isValidYouTubeStart=e=>!!/^[0-9]+$/.test(e)||!!/^[0-9]+:[0-9]+$/.test(e)||!!/^[0-9]+:[0-9]+:[0-9]+$/.test(e)||void 0,updateYouTubeStartTime=(e,t)=>{const a=e.match(REG_YOUTUBE);if(a?.[2]){const i=""===t?"":`t=${timeStringToSeconds(t)}`;let n=e;return a[3]?(n=e.replace(/([?&])t=[a-zA-Z0-9_-]+/,`$1${i}`),n=n.replace(/([?&])start=[a-zA-Z0-9_-]+/,`$1${i}`)):n+=(e.includes("?")?"&":"?")+i,n}return e},timeStringToSeconds=e=>{const t=e.split(":").map(Number),a=t.length;return 1===a?t[0]:2===a?60*t[0]+t[1]:3===a?3600*t[0]+60*t[1]+t[2]:0};class EmbeddalbeMDFileCustomDataSettingsComponent{contentEl;mdCustomData;update;isMDFile;constructor(e,t,a,i=!0){this.contentEl=e,this.mdCustomData=t,this.update=a,this.isMDFile=i,a||(this.update=()=>{})}render(){let e;new obsidian_module.Setting(this.contentEl).setName(t$d("ES_USE_OBSIDIAN_DEFAULTS")).addToggle((t=>t.setValue(this.mdCustomData.useObsidianDefaults).onChange((t=>{this.mdCustomData.useObsidianDefaults=t,e.style.display=t?"none":"block",this.update()})))),this.contentEl.createEl("hr",{cls:"excalidraw-setting-hr"}),e=this.contentEl.createDiv(),e.style.display=this.mdCustomData.useObsidianDefaults?"none":"block";const t=e;this.isMDFile&&new obsidian_module.Setting(t).setName(t$d("ES_FILENAME_VISIBLE")).addToggle((e=>e.setValue(this.mdCustomData.filenameVisible).onChange((e=>{this.mdCustomData.filenameVisible=e})))),t.createEl("h4",{text:t$d("ES_BACKGROUND_HEAD")});const a=t.createDiv({cls:"excalidraw-setting-desc"});let i,n,r;a.textContent=t$d("ES_BACKGROUND_DESC_INFO"),a.addEventListener("click",(()=>{a.textContent===t$d("ES_BACKGROUND_DESC_INFO")?a.textContent=t$d("ES_BACKGROUND_DESC_DETAIL"):a.textContent=t$d("ES_BACKGROUND_DESC_INFO")})),new obsidian_module.Setting(t).setName(t$d("ES_BACKGROUND_MATCH_ELEMENT")).addToggle((e=>{n=e,e.setValue(this.mdCustomData.backgroundMatchElement).onChange((e=>{this.mdCustomData.backgroundMatchElement=e,e?(i.settingEl.style.display="none",this.mdCustomData.backgroundMatchCanvas&&r.setValue(!1)):this.mdCustomData.backgroundMatchCanvas||(i.settingEl.style.display=""),this.update()}))})),new obsidian_module.Setting(t).setName(t$d("ES_BACKGROUND_MATCH_CANVAS")).addToggle((e=>{r=e,e.setValue(this.mdCustomData.backgroundMatchCanvas).onChange((e=>{this.mdCustomData.backgroundMatchCanvas=e,e?(i.settingEl.style.display="none",this.mdCustomData.backgroundMatchElement&&n.setValue(!1)):this.mdCustomData.backgroundMatchElement||(i.settingEl.style.display=""),this.update()}))})),this.mdCustomData.backgroundMatchElement&&this.mdCustomData.backgroundMatchCanvas&&r.setValue(!1),i=new obsidian_module.Setting(t).setName(t$d("ES_BACKGROUND_COLOR")).addColorPicker((e=>e.setValue(this.mdCustomData.backgroundColor).onChange((e=>{this.mdCustomData.backgroundColor=e,this.update()})))),i.settingEl.style.display=this.mdCustomData.backgroundMatchElement||this.mdCustomData.backgroundMatchCanvas?"none":"";const s=e=>fragWithHTML(`Current opacity is ${e}%`),o=new obsidian_module.Setting(t).setName(t$d("ES_BACKGROUND_OPACITY")).setDesc(s(this.mdCustomData.backgroundOpacity)).addSlider((e=>e.setLimits(0,100,5).setValue(this.mdCustomData.backgroundOpacity).onChange((e=>{this.mdCustomData.backgroundOpacity=e,o.setDesc(s(e)),this.update()}))));if(this.isMDFile){let e;t.createEl("h4",{text:t$d("ES_BORDER_HEAD")}),new obsidian_module.Setting(t).setName(t$d("ES_BORDER_MATCH_ELEMENT")).addToggle((t=>t.setValue(this.mdCustomData.borderMatchElement).onChange((t=>{this.mdCustomData.borderMatchElement=t,e.settingEl.style.display=t?"none":"",this.update()})))),e=new obsidian_module.Setting(t).setName(t$d("ES_BORDER_COLOR")).addColorPicker((e=>e.setValue(this.mdCustomData.borderColor).onChange((e=>{this.mdCustomData.borderColor=e,this.update()})))),e.settingEl.style.display=this.mdCustomData.borderMatchElement?"none":"";const a=new obsidian_module.Setting(t).setName(t$d("ES_BORDER_OPACITY")).setDesc(s(this.mdCustomData.borderOpacity)).addSlider((e=>e.setLimits(0,100,5).setValue(this.mdCustomData.borderOpacity).onChange((e=>{this.mdCustomData.borderOpacity=e,a.setDesc(s(e)),this.update()}))))}}}class EmbeddableSettings extends obsidian_module.Modal{plugin;view;file;element;ea;updatedFilepath=null;zoomValue;isYouTube;youtubeStart=null;isMDFile;notExcalidrawIsInternal;isLocalURI;mdCustomData;onKeyDown;constructor(e,t,a,i){if(super(e.app),this.plugin=e,this.view=t,this.file=a,this.element=i,this.ea=getEA(this.view),this.ea.copyViewElementsToEAforEditing([this.element]),this.zoomValue=i.scale[0],this.isYouTube=isYouTube(this.element.link),this.notExcalidrawIsInternal=this.file&&!this.view.plugin.isExcalidrawFile(this.file),this.isMDFile=this.file&&"md"===this.file.extension.toLowerCase(),this.isLocalURI=this.element.link.startsWith("file://"),isYouTube&&(this.youtubeStart=getYouTubeStartAt(this.element.link)),this.mdCustomData=i.customData?.mdProps??t.plugin.settings.embeddableMarkdownDefaults,!i.customData?.mdProps){const e=this.plugin.ea.getCM(i.backgroundColor);this.mdCustomData.backgroundColor=e.stringHEX({alpha:!1}),this.mdCustomData.backgroundOpacity=i.opacity;const t=this.plugin.ea.getCM(i.strokeColor);this.mdCustomData.borderColor=t.stringHEX({alpha:!1}),this.mdCustomData.borderOpacity=i.opacity}}onOpen(){this.containerEl.classList.add("excalidraw-release"),this.createForm()}onClose(){this.containerEl.removeEventListener("keydown",this.onKeyDown),this.plugin=null,this.view=null,this.file=null,this.element=null,this.ea.destroy(),this.ea=null,this.mdCustomData=null}async createForm(){this.contentEl.createEl("h1",{text:t$d("ES_TITLE")}),this.file&&new obsidian_module.Setting(this.contentEl).setName(t$d("ES_RENAME")).addText((e=>e.setValue(getPathWithoutExtension(this.file)).onChange((async e=>{this.updatedFilepath=e}))));const e=()=>fragWithHTML(`${t$d("ES_ZOOM_100_RELATIVE_DESC")}
    Current zoom is ${Math.round(100*this.zoomValue)}%`),t=new obsidian_module.Setting(this.contentEl).setName(t$d("ES_ZOOM")).setDesc(e()).addButton((a=>a.setButtonText(t$d("ES_ZOOM_100")).onClick((()=>{const a=this.view.excalidrawAPI;this.zoomValue=1/a.getAppState().zoom.value,t.setDesc(e())})))).addSlider((a=>a.setLimits(10,400,5).setValue(100*this.zoomValue).onChange((a=>{this.zoomValue=a/100,t.setDesc(e())}))));this.isYouTube&&new obsidian_module.Setting(this.contentEl).setName(t$d("ES_YOUTUBE_START")).setDesc(t$d("ES_YOUTUBE_START_DESC")).addText((e=>e.setValue(this.youtubeStart).onChange((async e=>{this.youtubeStart=e})))),(this.isMDFile||this.notExcalidrawIsInternal)&&(this.contentEl.createEl("h3",{text:t$d("ES_EMBEDDABLE_SETTINGS")}),new EmbeddalbeMDFileCustomDataSettingsComponent(this.contentEl,this.mdCustomData,void 0,this.isMDFile).render()),new obsidian_module.Setting(this.contentEl).addButton((e=>e.setButtonText(t$d("PROMPT_BUTTON_CANCEL")).setTooltip("ESC").onClick(this.close.bind(this)))).addButton((e=>e.setButtonText(t$d("PROMPT_BUTTON_OK")).setTooltip("CTRL/Opt+Enter").setCta().onClick(this.applySettings.bind(this))));const a=e=>{isWinCTRLorMacCMD(e)&&"Enter"===e.key&&this.applySettings()};this.onKeyDown=a,this.containerEl.ownerDocument.addEventListener("keydown",a)}async applySettings(){let e=!1;const t=this.ea.getElement(this.element.id);if(this.updatedFilepath){const a=`${this.updatedFilepath}.${this.file.extension}`;if(a!==this.file.path){const i=splitFolderAndFilename(a),n=getNewUniqueFilepath(this.app.vault,i.filename,i.folderpath);if(this.app.vault.getAbstractFileByPath(n))new obsidian_module.Notice("File rename failed. A file with this name already exists.\n"+n,1e4);else try{await this.app.fileManager.renameFile(this.file,n),t.link=this.element.link.replace(/(\[\[)([^#\]]*)([^\]]*]])/,`$1${this.plugin.app.metadataCache.fileToLinktext(this.file,this.view.file.path,!0)}$3`),e=!0}catch(e){new obsidian_module.Notice("File rename failed. "+e,1e4)}}}this.isYouTube&&this.youtubeStart!==getYouTubeStartAt(this.element.link)&&(e=!0,""===this.youtubeStart||isValidYouTubeStart(this.youtubeStart)?t.link=updateYouTubeStartTime(t.link,this.youtubeStart):new obsidian_module.Notice(t$d("ES_YOUTUBE_START_INVALID"))),!this.isMDFile||this.mdCustomData.backgroundColor===this.element.customData?.backgroundColor&&this.mdCustomData.borderColor===this.element.customData?.borderColor&&this.mdCustomData.backgroundOpacity===this.element.customData?.backgroundOpacity&&this.mdCustomData.borderOpacity===this.element.customData?.borderOpacity&&this.mdCustomData.filenameVisible===this.element.customData?.filenameVisible||(addAppendUpdateCustomData(t,{mdProps:this.mdCustomData}),e=!0),this.zoomValue!==this.element.scale[0]&&(e=!0,t.scale=[this.zoomValue,this.zoomValue]),e?(async()=>{await this.ea.addElementsToView(),this.ea.viewUpdateScene({appState:{},captureUpdate:CaptureUpdateAction.NEVER}),this.close()})():this.close()}}class EmbeddableMenu{view;containerRef;menuFadeTimeout=0;menuElementId=null;constructor(e,t){this.view=e,this.containerRef=t}destroy(){this.menuFadeTimeout&&(clearTimeout(this.menuFadeTimeout),this.menuFadeTimeout=null),this.view=null,this.containerRef=null,this.updateElement=null,this.handleMouseEnter=null,this.handleMouseLeave=null,this.renderButtons=null}updateElement=async(e,t,a,i=!0)=>{if(!t)return;const n=this.view,r=n.app;if(t=n.excalidrawAPI.getSceneElements().find((e=>e.id===t.id)),!t)return;const s=`[[${r.metadataCache.fileToLinktext(a,n.file.path,"md"===a.extension)}${e}]]`,o=getEA(n);o.copyViewElementsToEAforEditing([t]),o.getElement(t.id).link=s,n.excalidrawData.elementLinks.set(t.id,s),await o.addElementsToView(!1,i,!0),o.destroy()};handleMouseEnter(){clearTimeout(this.menuFadeTimeout),this.containerRef.current?.style.setProperty("opacity","1")}handleMouseLeave(){this.menuFadeTimeout=window.setTimeout((()=>{this.containerRef.current?.style.setProperty("opacity","0.2")}),5e3)}async actionBaseViewSelection(e,t,a){this.view.updateScene({appState:{activeEmbeddable:null},captureUpdate:CaptureUpdateAction.NEVER});const i=Array.from((await this.view.app.vault.read(e)).matchAll(/\s*name\: (.*)$/gm)).map((e=>e?.[1]));let n,r;n=[""].concat(i.map((e=>`#${cleanSectionHeading(e)}`))),r=[t$d("DO_NOT_PIN_VIEW")].concat(i.map((e=>e)));const s=await ScriptEngine.suggester(this.view.app,r,n,t$d("SELECT_VIEW"));(s||""===s)&&s!==t&&this.updateElement(s,a,e)}async actionMarkdownSelection(e,t,a,i){this.view.updateScene({appState:{activeEmbeddable:null},captureUpdate:CaptureUpdateAction.NEVER});const n=(await this.view.app.metadataCache.blockCache.getForFile({isCancelled:()=>!1},e)).blocks.filter((e=>e.display&&"heading"===e.node?.type)).filter((e=>!t||!MD_EX_SECTIONS.includes(e.display)));let r,s;t?(r=n.map((e=>`#${cleanSectionHeading(e.display)}`)),s=n.map((e=>e.display))):(r=[""].concat(n.map((e=>`#${cleanSectionHeading(e.display)}`))),s=[t$d("SHOW_ENTIRE_FILE")].concat(n.map((e=>e.display))));const o=await ScriptEngine.suggester(this.view.app,s,r,t$d("SELECT_SECTION"));(o||""===o)&&o!==a&&this.updateElement(o,i,e)}actionBookmarkPage(e){if(!e)return;const t=this.view.getEmbeddableLeafElementById(e.id)?.node?.child;if(!t)return;const a=getActivePDFPageNumberFromPDFView(t);if(!a)return;const i=t?.file;i&&this.updateElement(`#page=${a}`,e,i,!1)}async actionInsertPageAsImage(e){if(!e)return;const t=this.view.getEmbeddableLeafElementById(e.id)?.node?.child;if(!t)return;const a=getActivePDFPageNumberFromPDFView(t);if(!a)return;const i=t?.file;if(!i)return;const n=getEA(this.view);n.selectElementsInView([]);const r=e.x+e.width+20,s=e.y,o=this.view.app.metadataCache.fileToLinktext(i,this.view.file.path,!1),l=await insertImageToView(n,{x:r,y:s},`${o}#page=${a}`,void 0,void 0,!1);n.selectElementsInView([l]),n.destroy()}async actionMarkdownBlock(e,t,a){if(!e)return;this.view.updateScene({appState:{activeEmbeddable:null},captureUpdate:CaptureUpdateAction.NEVER});const i=(await this.view.app.metadataCache.blockCache.getForFile({isCancelled:()=>!1},e)).blocks.filter((e=>e.display&&e.node&&("paragraph"===e.node.type||"blockquote"===e.node.type||"listItem"===e.node.type||"table"===e.node.type||"callout"===e.node.type))),n=["entire-file"].concat(i),r=[t$d("SHOW_ENTIRE_FILE")].concat(i.map((e=>`${e.node?.id?`#^${e.node.id}: `:""}${e.display.trim()}`))),s=await ScriptEngine.suggester(this.view.app,r,n,t$d("SELECT_SECTION"));if(!s)return;if("entire-file"===s){if(""===t)return;return void this.updateElement("",a,e)}let o=s.node.id;if(!o||`#^${o}`!==t){if(!o){const t=s.node?.position?.end?.offset;if(!t)return;o=nanoid();const a=await this.view.app.vault.cachedRead(e);if(!a)return;await this.view.app.vault.modify(e,a.slice(0,t)+` ^${o}`+a.slice(t)),await sleep(200)}this.updateElement(`#^${o}`,a,e)}}actionZoomToElement(e,t){e&&this.view.excalidrawAPI.zoomToFit([e],t??this.view.plugin.settings.zoomToFitMaxLevel,.1)}actionProperties(e,t){e&&new EmbeddableSettings(this.view.plugin,this.view,t,e).open()}actionCrop(e){e&&this.view.app.commands.executeCommandById("obsidian-excalidraw-plugin:crop-image")}actionReload(e,t){e.src=t}actionOpen(e,t){openExternalLink(e.src.startsWith("https://www.youtube.com")||e.src.startsWith("https://player.vimeo.com")?t.link:e.src,this.view.app)}actionCopyCode(e,t){e&&navigator.clipboard.writeText(atob(t.split(",")[1]))}renderButtons(e){const t=this.view,a=t?.excalidrawAPI;if(!a)return null;if(!t.file)return null;const i=e.viewModeEnabled&&!t.allowFrameButtonsInViewMode;if(!e.activeEmbeddable||"active"!==e.activeEmbeddable.state||i)return this.menuElementId=null,this.menuFadeTimeout&&(clearTimeout(this.menuFadeTimeout),this.menuFadeTimeout=0),null;const n=e.activeEmbeddable?.element;this.menuElementId!==n.id&&(this.menuElementId=n.id,this.handleMouseLeave());let r=n.link;if(!r)return null;const s=useDefaultExcalidrawFrame(n);let o=Boolean(n.link?.match(REG_LINKINDEX_HYPERLINK));if(!s&&!o){if(r.startsWith("data:text/html"))o=!0;else{const e=REGEX_LINK.getRes(n.link).next();if(!e||!e.value&&e.done)return null;r=REGEX_LINK.getLink(e),o=Boolean(r.match(REG_LINKINDEX_HYPERLINK))}if(!o){const{subpath:a,file:i}=processLinkText(r,t);if(!i)return;const s="md"===i.extension,o="base"===i.extension,l=t.plugin.isExcalidrawFile(i),c="pdf"===i.extension,{x:d,y:h}=sceneCoordsToViewportCoords({sceneX:n.x,sceneY:n.y},e),p=h-2.5*ROOTELEMENTSIZE-e.offsetTop+"px",u=d-e.offsetLeft+"px";return React__namespace.createElement("div",{ref:this.containerRef,className:"embeddable-menu",style:{top:p,left:u,opacity:1},onMouseEnter:()=>this.handleMouseEnter(),onPointerDown:()=>this.handleMouseEnter(),onMouseLeave:()=>this.handleMouseLeave()},React__namespace.createElement("div",{className:"Island",style:{position:"relative",display:"block"}},o&&React__namespace.createElement(ActionButton,{key:"MarkdownSection",title:t$d("PIN_VIEW"),action:async()=>this.actionBaseViewSelection(i,a,n),icon:ICONS.ZoomToSection}),s&&React__namespace.createElement(ActionButton,{key:"MarkdownSection",title:t$d("NARROW_TO_HEADING"),action:async()=>this.actionMarkdownSelection(i,l,a,n),icon:ICONS.ZoomToSection}),s&&!l&&React__namespace.createElement(ActionButton,{key:"MarkdownBlock",title:t$d("NARROW_TO_BLOCK"),action:async()=>this.actionMarkdownBlock(i,a,n),icon:ICONS.ZoomToBlock}),React__namespace.createElement(ActionButton,{key:"ZoomToElement",title:t$d("ZOOM_TO_FIT"),action:()=>this.actionZoomToElement(n,30),icon:ICONS.ZoomToSelectedElement}),React__namespace.createElement(ActionButton,{key:"Properties",title:t$d("PROPERTIES"),action:()=>this.actionProperties(n,i),icon:ICONS.Properties}),c&&React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement(ActionButton,{key:"Crop",title:t$d("CROP_PAGE"),action:()=>this.actionCrop(n),icon:ICONS.Crop}),React__namespace.createElement(ActionButton,{key:"Bookmark",title:t$d("BOOKMARK_PAGE"),action:()=>this.actionBookmarkPage(n),icon:ICONS.Bookmark}),React__namespace.createElement(ActionButton,{key:"Camera",title:t$d("CAPTURE_PAGE"),action:()=>this.actionInsertPageAsImage(n),icon:ICONS.Camera}))))}}if(o||s){const i=s?a.getHTMLIFrameElement(n.id):t.getEmbeddableElementById(n.id);if(!i||!i.contentWindow)return null;const{x:o,y:l}=sceneCoordsToViewportCoords({sceneX:n.x,sceneY:n.y},e),c=l-2.5*ROOTELEMENTSIZE-e.offsetTop+"px",d=o-e.offsetLeft+"px";return React__namespace.createElement("div",{ref:this.containerRef,className:"embeddable-menu",style:{top:c,left:d,opacity:1},onMouseEnter:()=>this.handleMouseEnter(),onPointerDown:()=>this.handleMouseEnter(),onMouseLeave:()=>this.handleMouseLeave()},React__namespace.createElement("div",{className:"Island",style:{position:"relative",display:"block"}},i.src!==r&&!i.src.startsWith("https://www.youtube.com")&&!i.src.startsWith("https://player.vimeo.com")&&React__namespace.createElement(ActionButton,{key:"Reload",title:t$d("RELOAD"),action:()=>this.actionReload(i,r),icon:ICONS.Reload}),React__namespace.createElement(ActionButton,{key:"Open",title:t$d("OPEN_IN_BROWSER"),action:()=>this.actionOpen(i,n),icon:ICONS.Globe}),React__namespace.createElement(ActionButton,{key:"ZoomToElement",title:t$d("ZOOM_TO_FIT"),action:()=>this.actionZoomToElement(n),icon:ICONS.ZoomToSelectedElement}),React__namespace.createElement(ActionButton,{key:"Properties",title:t$d("PROPERTIES"),action:()=>this.actionProperties(n,null),icon:ICONS.Properties}),r?.startsWith("data:text/html")&&React__namespace.createElement(ActionButton,{key:"CopyCode",title:t$d("COPYCODE"),action:()=>this.actionCopyCode(n,r),icon:ICONS.Copy})))}}}const handleImageEditPrompt=async e=>{const t=window.ExcalidrawAutomate.plugin,{openAIAPIToken:a,openAIImageEditsURL:i}=t.settings,{image:n,text:r,imageGenerationProperties:s}=e,o=new FormData;if(o.append("model","dall-e-2"),""!==r.trim()&&o.append("prompt",r),n){const e=await fetch(n).then((e=>e.blob()));o.append("image",e,"image.png")}if(s.mask){const e=await fetch(s.mask).then((e=>e.blob()));o.append("mask",e,"masik.png")}s.size&&o.append("size",s.size),s.n&&o.append("n",String(s.n));try{const e=await fetch(i,{method:"post",body:o,headers:{Authorization:`Bearer ${a}`}});return e?{status:e.status,headers:e.headers,text:null,json:await e.json(),arrayBuffer:null}:null}catch(e){console.log(e)}return null},handleGenericPrompt=async e=>{const t=window.ExcalidrawAutomate.plugin,{openAIAPIToken:a,openAIDefaultTextModel:i,openAIDefaultVisionModel:n,openAIURL:r,openAIImageGenerationURL:s,openAIDefaultImageGenerationModel:o}=t.settings,{image:l,text:c,instruction:d,systemPrompt:h,imageGenerationProperties:p}=e,u=Boolean(p);let m;switch(u?"dall-e":l?"image":"text"){case"text":m={model:i,max_tokens:4096,messages:[...h&&""!==h.trim()?[{role:"system",content:h}]:[],{role:"user",content:c},...d&&""!==d.trim()?[{role:"user",content:d}]:[]]};break;case"image":m={model:n,max_tokens:4096,messages:[...h&&""!==h.trim()?[{role:"system",content:h}]:[],{role:"user",content:[{type:"image_url",image_url:l},...c?[c]:[],...d&&""!==d.trim()?[d]:[]]}]};break;case"dall-e":m={model:o,prompt:c,...p};break;default:return null}try{const e=await fetch(u?s:r,{method:"post",contentType:"application/json",body:JSON.stringify(m),headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`}});return e?{status:e.status,headers:e.headers,text:null,json:await e.json(),arrayBuffer:null}:null}catch(e){console.log(e)}return null},postOpenAI=async e=>{const t=window.ExcalidrawAutomate.plugin,{openAIAPIToken:a}=t.settings,{image:i,imageGenerationProperties:n}=e,r=Boolean(n)&&(Boolean(n.mask)||Boolean(i));return""===a?(new obsidian_module.Notice("OpenAI API Token is not set. Please set it in plugin settings."),null):r?await handleImageEditPrompt(e):await handleGenericPrompt(e)},extractCodeBlocks=e=>{if(!e)return[];e=e.replaceAll("\r\n","\n").replaceAll("\r","\n");const t=[],a=/```([a-zA-Z0-9]*)\n([\s\S]+?)```/g;let i;for(;null!==(i=a.exec(e));){const e=i[1]??"",a=i[2].trim();t.push({data:a,type:e})}return t},errorHTML=e=>`\n \n
    \n
    There was an error during generation
    \n
    \n
    \n
    ${e}
    \n
    \n \n `;class SelectCard extends obsidian_module.FuzzySuggestModal{app;view;sections;center=!1;constructor(e,t,a){super(e),this.app=e,this.view=t,this.sections=a,this.limit=20,this.setInstructions([{command:t$d("TYPE_SECTION"),purpose:""}]),this.inputEl.onkeyup=e=>{if("Enter"==e.key&&this.containerEl.innerText.includes(t$d("EMPTY_SECTION_MESSAGE"))){const e=this.inputEl.value;if(""===e||MD_EX_SECTIONS.includes(e))return new obsidian_module.Notice(t$d("INVALID_SECTION_NAME")),void this.close();addBackOfTheNoteCard(this.view,e,!0,void 0,void 0,this.center),this.close()}}}getItems(){return this.sections}getItemText(e){return e}onChooseItem(e){const t=getEA(this.view);let a,i=0;if(this.center){const e=t.getViewCenterPosition();e&&(a=e.x-CARD_WIDTH/2,i=e.y-CARD_HEIGHT/2)}const n=t.addEmbeddable(a,i,CARD_WIDTH,CARD_HEIGHT,`[[${this.view.file.path}#${e}]]`);(async()=>{await t.addElementsToView(!this.center,!1,!0),t.selectElementsInView([n]),t.destroy()})()}start(e=!1){this.center=e,this.emptyStateText=t$d("EMPTY_SECTION_MESSAGE"),this.setPlaceholder(t$d("SELECT_SECTION_OR_TYPE_NEW")),this.open()}}const SYSTEM_PROMPT='You are a skilled front-end developer who builds interactive prototypes from wireframes, and is an expert at CSS Grid and Flex design.\nYour role is to transform low-fidelity wireframes into working front-end HTML code.\nYOU MUST FOLLOW FOLLOWING RULES:\n- Use HTML, CSS, JavaScript to build a responsive, accessible, polished prototype\n- Leverage Tailwind for styling and layout (import as script