From 35887f7cb02a86129f92ce50e33174aa0053aa64 Mon Sep 17 00:00:00 2001 From: BurningTreeC Date: Sun, 3 Mar 2024 10:19:07 +0100 Subject: [PATCH] update index.html --- index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 6ca7aba..94ffdbf 100644 --- a/index.html +++ b/index.html @@ -47,7 +47,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." /> -TiddlyFlex v0.0.43 — a non-linear flexible personal web notebook +TiddlyFlex v0.0.44 — a non-linear flexible personal web notebook @@ -242,7 +242,7 @@ , {"title":"$:/layout","created":"20240223120110486","modified":"20240302121202691","type":"text/vnd.tiddlywiki","text":"$:/plugins/BTC/TiddlyFlex/ui/Layout","revision":"0","bag":"default"} , -{"title":"$:/plugins/BTC/TiddlyFlex","description":"A Flexbox Layout for TiddlyWiki5","name":"TiddlyFlex","plugin-type":"plugin","author":"Simon Huber","version":"0.0.43","core-version":">=5.3.3","source":"https://github.com/BurningTreeC/TiddlyFlex","list":"readme license","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/add-column\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/add-column\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((add-column))\",\"text\":\"\u003C$let columns={{{ [list[$:/columns]count[]!match[0]] ~1 }}} nextColumn={{{ [\u003Ccolumns>add[1]] }}}>\\n\\t\u003C%if [list[$:/columns]count[]match[0]] %>\\n\\t\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"1\\\"/>\\n\\t\u003C% endif %>\\n\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"[\u003CnextColumn>]\\\"/>\\n\u003C/$let>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/cancel-close-tiddler\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/cancel-close-tiddler\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((cancel-close-tiddler))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/selectors $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure tiddlyflex-tiddler-is-draft-actions-draft-of-not-is-missing()\\n\u003C$list filter=\\\"[list[$:/columns]!match{$:/columns!!current-column}]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\t\u003C$set name=\\\"tv-story-list\\\" value={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>!match[$:/StoryList-]] ~[[$:/StoryList-1]] }}}>\\n\\t\\t\u003C%if [\u003Ctv-story-list>contains\u003Ctiddler>] %>\\n\\t\\t\\t\u003C$set name=\\\"index\\\" value={{{ [list\u003Ctv-story-list>allbefore\u003Ctiddler>add[1]] }}}>\\n\\t\\t\\t\\t\u003C$let nextTiddler={{{ [list\u003Ctv-story-list>zth\u003Cindex>] }}} viewTiddler={{{ [\u003Ctiddler>get[draft.of]] }}}>\\n\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CviewTiddler>,\u003CnextTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003Ctiddler>]\\\"/>\\n\\t\\t\\t\\t\u003C/$let>\\n\\t\\t\\t\u003C/$set>\\n\\t\\t\u003C% endif %>\\n\\t\u003C/$set>\\n\u003C/$list>\\n\\\\end\\n\\\\procedure tiddlyflex-tiddler-is-draft-actions()\\n\u003C% if [\u003Ctiddler>get[draft.of]!is[shadow]is[missing]] %>\\n\\t\u003C$list filter=\\\"[list[$:/columns]!match{$:/columns!!current-column}]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\t\\t\u003C$set name=\\\"tv-story-list\\\" value={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>!match[$:/StoryList-]] ~[[$:/StoryList-1]] }}}>\\n\\t\\t\\t\u003C%if [\u003Ctv-story-list>contains\u003Ctiddler>] %>\\n\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003Ctiddler>]\\\"/>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$set>\\n\\t\u003C/$list>\\n\u003C% else %>\\n\\t\u003C\u003Ctiddlyflex-tiddler-is-draft-actions-draft-of-not-is-missing>>\\n\u003C% endif %>\\n\u003C$set name=\\\"scrollTiddler\\\" value={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003Ctiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003Ctiddler>] }}}>\\n\\t\u003C%if [\u003Ctiddler>get[draft.of]!is[shadow]is[missing]] %>\\n\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CscrollTiddler>>/>\\n\\t\\t\u003C%if [\u003CscrollTiddler>is[draft]] %>\\n\\t\\t\\t\u003C$set name=\\\"cssEscapedTitle\\\" value={{{ [\u003CscrollTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\\t\\t\u003C/$set>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C\u003Ctiddlyflex-focus-flexcontainer>>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% endif %>\\n\\t\u003C$action-sendmessage $message=\\\"tm-cancel-tiddler\\\" $param=\u003C\u003Ctiddler>>/>\\n\u003C/$set>\\n\\\\end\\n\\\\define actions()\\n\u003C$set name=\\\"tiddler\\\" value={{{ [\u003Ctv-history-list>get[current-tiddler]] }}}>\\n\\t\u003C%if [\u003Ctiddler>!is[draft]] %>\\n\\t\\t\u003C$let scrollTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[after\u003Ctiddler>] ~[before\u003Ctiddler>] }}}>\\n\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CscrollTiddler>>/>\\n\\t\\t\\t\u003C$action-sendmessage $message=\\\"tm-close-tiddler\\\" $param=\u003C\u003Ctiddler>>/>\\n\\t\\t\\t\u003C%if [\u003CscrollTiddler>is[draft]] %>\\n\\t\\t\\t\\t\u003C$set name=\\\"cssEscapedTitle\\\" value={{{ [\u003CscrollTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\u003C% else %>\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-focus-flexcontainer>>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$let>\\n\\t\u003C% else %>\\n\\t\\t\u003C\u003Ctiddlyflex-tiddler-is-draft-actions>>\\n\\t\u003C% endif %>\\n\u003C/$set>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/column-down\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/column-down\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((column-down))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/selectors $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\u003C$let currentColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[[$:/columns]get[current-column]] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] ~1 }}} columnCount={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>last[]] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] ~1 }}} nextColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] +[before\u003CcurrentColumn>] ~[\u003CcolumnCount>] }}} tv-story-list={{{ [[$:/StoryList-]addsuffix\u003CnextColumn>] }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CnextColumn>] }}}>\\n\\t\u003C\u003Ctiddlyflex-cycle-columns-navigator>>\\n\u003C/$let>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/column-up\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/column-up\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((column-up))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/selectors $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\u003C$let currentColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[[$:/columns]get[current-column]] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] ~1 }}} nextColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] +[after\u003CcurrentColumn>] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] ~1 }}} tv-story-list={{{ [[$:/StoryList-]addsuffix\u003CnextColumn>] }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CnextColumn>] }}}>\\n\\t\u003C\u003Ctiddlyflex-cycle-columns-navigator>>\\n\u003C/$let>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/dragging\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/dragging\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((dragging))\",\"text\":\"\u003C%if [{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}match[no]] %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/config/tiddlyflex/story-river/tiddler/drag-enabled\\\" text=\\\"yes\\\"/>\\n\u003C% else %>\\n\\t\u003C$action-deletetiddler $tiddler=\\\"$:/config/tiddlyflex/story-river/tiddler/drag-enabled\\\"/>\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/edit-tiddler\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/edit-tiddler\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((edit-tiddler))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\define actions()\\n\u003C%if [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[match\u003CcurrentTiddler>] %>\\n\\t\u003C%if [\u003CcurrentTiddler>!is[draft]] %>\\n\\t\\t\u003C$action-sendmessage $message=\\\"tm-edit-tiddler\\\" $param=\u003C\u003CcurrentTiddler>>/>\\n\\t\u003C% endif %>\\n\u003C% endif %>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/filter-river\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/filter-river\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((filter-river))\",\"text\":\"\u003C%if [{$:/config/tiddlyflex/story-river/filter}!match[yes]] %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/config/tiddlyflex/story-river/filter\\\" text=\\\"yes\\\"/>\\n\u003C% else %>\\n\\t\u003C$action-deletetiddler $tiddler=\\\"$:/config/tiddlyflex/story-river/filter\\\"/>\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-down\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-down\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((move-down))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure actions()\\n\u003C$set name=\\\"nextTiddler\\\" value={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[after\u003CcurrentTiddler>] }}}>\\n\\t\u003C%if [\u003CnextTiddler>!is[blank]!match[]] %>\\n\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore:currentTiddler\u003CnextTiddler>]\\\"/>\\n\\t\u003C% endif %>\\n\u003C/$set>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-left\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-left\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((move-left))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/selectors $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure current-tiddler-is-empty-message()\\n\u003C$action-listops $tiddler=\u003C\u003CpreviousStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CfirstPreviousStoryTiddler>]\\\"/>\\n\u003C$action-setfield $tiddler=\u003C\u003CpreviousHistoryList>> current-tiddler=\u003C\u003CfocusedTiddler>>/>\\n\\\\end\\n\\\\define actions()\\n\u003C$let scrollTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003CfocusedTiddler>] }}}>\\n\\t\u003C%if [\u003CfocusedTiddler>!is[blank]then\u003Ctv-story-list>!match[$:/StoryList-1]] %>\\n\\t\\t\u003C$action-setfield $tiddler={{{ [[$:/state/tiddlyflex/removing/]addsuffix\u003CfocusedTiddler>] }}} direction=\\\"left\\\" column=\u003C\u003CcurrentColumn>>/>\\n\\t\\t\u003C$action-setfield $tiddler={{{ [[$:/state/tiddlyflex/adding/]addsuffix\u003CfocusedTiddler>] }}} direction=\\\"right\\\" column={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>before\u003CcurrentColumn>] }}}/>\\n\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003CfocusedTiddler>] }}}/>\\n\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003CfocusedTiddler>]\\\"/>\\n\\t\\t\u003C%if [\u003CpreviousHistoryList>get[current-tiddler]!match[]] %>\\n\\t\\t\\t\u003C$set name=\\\"previousStoryFocusedTiddler\\\" value={{{ [\u003CpreviousHistoryList>get[current-tiddler]] }}}>\\n\\t\\t\\t\\t\u003C%if [\u003CpreviousStoryList>contains\u003CpreviousStoryFocusedTiddler>] %>\\n\\t\\t\\t\\t\\t\u003C%if [list\u003CpreviousStoryList>search:$(searchFields)$:$(searchFlags)${$:/temp/search/input}match\u003CpreviousStoryFocusedTiddler>then{$:/config/tiddlyflex/story-river/filter}match[yes]] %>\\n\\t\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CpreviousStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CpreviousStoryFocusedTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\u003C% elseif [{$:/config/tiddlyflex/story-river/filter}!match[yes]] %>\\n\\t\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CpreviousStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CpreviousStoryFocusedTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\u003C% else %>\\n\\t\\t\\t\\t\\t\\t\u003C$set name=\\\"firstFilteredStoryTiddler\\\" value={{{ [list\u003CpreviousStoryList>search{$:/temp/search/input}nth[1]] }}}>\\n\\t\\t\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CpreviousStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CfirstFilteredStoryTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003CpreviousHistoryList>> current-tiddler=\u003C\u003CfocusedTiddler>>/>\\n\\t\\t\\t\\t\u003C% else %>\\n\\t\\t\\t\\t\\t\u003C\u003Ccurrent-tiddler-is-empty-message>>\\n\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\u003C/$set>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C\u003Ccurrent-tiddler-is-empty-message>>\\n\\t\\t\u003C% endif %>\\n\\t\\t\u003C%if [{$:/config/tiddlyflex/story-river/follow-current-column}match[yes]] %>\\n\\t\\t\\t\u003C$action-setfield $tiddler=\\\"$:/columns\\\" current-column=\u003C\u003CpreviousStoryCounter>>/>\\n\\t\\t\\t\u003C%if [\u003CfocusedTiddler>is[draft]] %>\\n\\t\\t\\t\\t\u003C$let currentColumn=\u003C\u003CpreviousStoryCounter>> cssEscapedTitle={{{ [\u003CfocusedTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\\t\\t\\t\u003C/$let>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$let currentTiddler={{{ [list\u003Ctv-story-list>after\u003CfocusedTiddler>] ~[list\u003Ctv-story-list>before\u003CfocusedTiddler>] }}} cssEscapedTitle={{{ [\u003CcurrentTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C%if [\u003CcurrentTiddler>is[draft]] %>\\n\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% endif %>\\n\\t\\t\u003C$let currentColumn=\u003C\u003CpreviousStoryCounter>> cssEscapedTitle={{{ [\u003CfocusedTiddler>escapecss[]] }}}>\\n\\t\\t\\t\u003C\u003Ctiddlyflex-scroll-to-tiddler>>\\n\\t\\t\u003C/$let>\\n\\t\u003C% endif %>\\n\u003C/$let>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-multi-column-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-right\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-right\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((move-right))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/selectors $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure current-tiddler-is-empty-message()\\n\u003C$action-listops $tiddler=\u003C\u003CnextStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CfirstNextStoryTiddler>]\\\"/>\\n\u003C$action-setfield $tiddler=\u003C\u003CnextHistoryList>> current-tiddler=\u003C\u003CfocusedTiddler>>/>\\n\\\\end\\n\\\\define actions()\\n\u003C$let scrollTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003CfocusedTiddler>] }}}>\\n\\t\u003C%if [\u003CfocusedTiddler>!is[blank]] %>\\n\\t\\t\u003C%if [[$:/columns]!contains\u003CnextStoryCounter>] %>\\n\\t\\t\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"[\u003CnextStoryCounter>]\\\"/>\\n\\t\\t\\t\u003C$action-setfield $tiddler={{{ [[$:/state/tiddlyflex/removing/]addsuffix\u003CfocusedTiddler>] }}} direction=\\\"right\\\" column=\u003C\u003CcurrentColumn>>/>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$action-setfield $tiddler={{{ [[$:/state/tiddlyflex/removing/]addsuffix\u003CfocusedTiddler>] }}} direction=\\\"right\\\" column=\u003C\u003CcurrentColumn>>/>\\n\\t\\t\\t\u003C$action-setfield $tiddler={{{ [[$:/state/tiddlyflex/adding/]addsuffix\u003CfocusedTiddler>] }}} direction=\\\"left\\\" column={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>after\u003CcurrentColumn>] }}}/>\\n\\t\\t\u003C% endif %>\\n\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003CfocusedTiddler>] }}}/>\\n\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003CfocusedTiddler>]\\\"/>\\n\\t\\t\u003C%if [\u003CnextHistoryList>get[current-tiddler]!match[]] %>\\n\\t\\t\\t\u003C$set name=\\\"nextStoryFocusedTiddler\\\" value={{{ [\u003CnextHistoryList>get[current-tiddler]] }}}>\\n\\t\\t\\t\\t\u003C%if [\u003CnextStoryList>contains\u003CnextStoryFocusedTiddler>] %>\\n\\t\\t\\t\\t\\t\u003C%if [list\u003CnextStoryList>search:$(searchFields)$:$(searchFlags)${$:/temp/search/input}match\u003CnextStoryFocusedTiddler>then{$:/config/tiddlyflex/story-river/filter}match[yes]] %>\\n\\t\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CnextStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CnextStoryFocusedTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\u003C% elseif [{$:/config/tiddlyflex/story-river/filter}!match[yes]] %>\\n\\t\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CnextStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CnextStoryFocusedTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\u003C% else %>\\n\\t\\t\\t\\t\\t\\t\u003C$set name=\\\"firstStoryTiddler\\\" value={{{ [list\u003CnextStoryList>nth[1]] }}}>\\n\\t\\t\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CnextStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CfirstStoryTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003CnextHistoryList>> current-tiddler=\u003C\u003CfocusedTiddler>>/>\\n\\t\\t\\t\\t\u003C% else %>\\n\\t\\t\\t\\t\\t\u003C\u003Ccurrent-tiddler-is-empty-message>>\\n\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\u003C/$set>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C\u003Ccurrent-tiddler-is-empty-message>>\\n\\t\\t\u003C% endif %>\\n\\t\\t\u003C%if [{$:/config/tiddlyflex/story-river/follow-current-column}match[yes]] %>\\n\\t\\t\\t\u003C$action-setfield $tiddler=\\\"$:/columns\\\" current-column=\u003C\u003CnextStoryCounter>>/>\\n\\t\\t\\t\u003C%if [\u003CfocusedTiddler>is[draft]] %>\\n\\t\\t\\t\\t\u003C$let currentColumn=\u003C\u003CnextStoryCounter>> cssEscapedTitle={{{ [\u003CfocusedTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\\t\\t\\t\u003C/$let>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\u003C$let currentColumn=\u003C\u003CnextStoryCounter>> cssEscapedTitle={{{ [\u003CfocusedTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-scroll-to-tiddler>>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$let currentTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003CfocusedTiddler>] }}} cssEscapedTitle={{{ [\u003CcurrentTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C%if [\u003CcurrentTiddler>is[draft]] %>\\n\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% endif %>\\n\u003C/$let>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-multi-column-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-up\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-up\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((move-up))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\define actions()\\n\u003C$set name=\\\"previousTiddler\\\" value={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[before\u003CcurrentTiddler>] }}}>\\n\\t\u003C%if [\u003CpreviousTiddler>!is[blank]!match[]] %>\\n\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore:previousTiddler\u003CcurrentTiddler>]\\\"/>\\n\\t\u003C% endif %>\\n\u003C/$set>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/navigate-down\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/navigate-down\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((navigate-down))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/selectors $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure actions-inner()\\n\u003C%if [\u003CnextTiddler>!is[blank]!match[]] %>\\n\\t\u003C%if [\u003CnextTiddler>is[draft]] %>\\n\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\u003C% else %>\\n\\t\\t\u003C\u003Ctiddlyflex-focus-flexcontainer>>\\n\\t\u003C% endif %>\\n\\t\u003C$action-navigate $to=\u003C\u003CnextTiddler>>/>\\n\u003C% endif %>\\n\\\\end\\n\\\\define actions()\\n\u003C%if [{$:/config/tiddlyflex/story-river/filter}match[yes]] %>\\n\\t\u003C$set name=\\\"focusedTiddler\\\" value={{{ [\u003Ctv-history-list>get[current-tiddler]] }}}>\\n\\t\\t\u003C%if [subfilter\u003Ctdff.tiddlyflex-story-river-filter>match\u003CfocusedTiddler>] %>\\n\\t\\t\\t\u003C$let nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>nth[1]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Cactions-inner>>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$let nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>nth[1]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Cactions-inner>>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% endif %>\\n\\t\u003C/$set>\\n\u003C% else %>\\n\\t\u003C$let focusedTiddler={{{ [\u003Ctv-history-list>get[current-tiddler]] }}} nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>nth[1]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\u003C\u003Cactions-inner>>\\n\\t\u003C/$let>\\n\u003C% endif %>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/navigate-up\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/navigate-up\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((navigate-up))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/selectors $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure actions-inner()\\n\u003C%if [\u003CnextTiddler>!is[blank]!match[]] %>\\n\\t\u003C%if [\u003CnextTiddler>is[draft]] %>\\n\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\u003C% else %>\\n\\t\\t\u003C\u003Ctiddlyflex-focus-flexcontainer>>\\n\\t\u003C% endif %>\\n\\t\u003C$action-navigate $to=\u003C\u003CnextTiddler>>/>\\n\u003C% endif %>\\n\\\\end\\n\\\\define actions()\\n\u003C%if [{$:/config/tiddlyflex/story-river/filter}match[yes]] %>\\n\\t\u003C$set name=\\\"focusedTiddler\\\" value={{{ [\u003Ctv-history-list>get[current-tiddler]] }}}>\\n\\t\\t\u003C%if [subfilter\u003Ctdff.tiddlyflex-story-river-filter>match\u003CfocusedTiddler>] %>\\n\\t\\t\\t\u003C$let nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>last[]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Cactions-inner>>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$let nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>last[]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Cactions-inner>>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% endif %>\\n\\t\u003C/$set>\\n\u003C% else %>\\n\\t\u003C$let focusedTiddler={{{ [\u003Ctv-history-list>get[current-tiddler]] }}} nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>last[]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\u003C\u003Cactions-inner>>\\n\\t\u003C/$let>\\n\u003C% endif %>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/new-image\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/new-image\",\"tags\":\"$:/tags/KeyboardShortcut\",\"override\":\"yes\",\"key\":\"((new-image))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure actions()\\n{{$:/core/ui/Actions/new-image}}\\n\\\\end\\n\u003C%if [function[tiddlyflex-layout]] %>\\n\\t\u003C$macrocall $name=\\\"tiddlyflex-simple-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\u003C% else %>\\n\\t\u003C$navigator story=\\\"$:/StoryList\\\" history=\\\"$:/HistoryList\\\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\u003C\u003Cactions>>\\n\\t\u003C/$navigator>\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/new-journal\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/new-journal\",\"tags\":\"$:/tags/KeyboardShortcut\",\"override\":\"yes\",\"key\":\"((new-journal))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure actions()\\n{{$:/core/ui/Actions/new-journal}}\\n\\\\end\\n\u003C%if [function[tiddlyflex-layout]] %>\\n\\t\u003C$macrocall $name=\\\"tiddlyflex-simple-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\u003C% else %>\\n\\t\u003C$navigator story=\\\"$:/StoryList\\\" history=\\\"$:/HistoryList\\\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\u003C\u003Cactions>>\\n\\t\u003C/$navigator>\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/new-tiddler\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/new-tiddler\",\"tags\":\"$:/tags/KeyboardShortcut\",\"override\":\"yes\",\"override-title\":\"$:/core/ui/KeyboardShortcuts/new-tiddler\",\"key\":\"((new-tiddler))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure actions()\\n{{$:/core/ui/Actions/new-tiddler}}\\n\\\\end\\n\u003C%if [function[tiddlyflex-layout]] %>\\n\\t\u003C$macrocall $name=\\\"tiddlyflex-simple-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\u003C% else %>\\n\\t\u003C$navigator story=\\\"$:/StoryList\\\" history=\\\"$:/HistoryList\\\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\u003C\u003Cactions>>\\n\\t\u003C/$navigator>\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/remove-column\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/remove-column\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((remove-column))\",\"text\":\"\\\\procedure remove-column-actions()\\n\u003C$set name=\\\"columnCount\\\" value={{{ [list[$:/columns]count[]] }}}>\\n\\t\u003C$list filter=\\\"[[$:/columns]get[current-column]match\u003CcolumnCount>]\\\">\\n\\t\\t\u003C$action-setfield $tiddler=\\\"$:/columns\\\" current-column={{{ [\u003CcolumnCount>subtract[1]!match[0]] ~1 }}}/>\\n\\t\u003C/$list>\\n\\t\u003C$list filter=\\\"[\u003CcolumnCount>!match[1]]\\\">\\n\\t\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"-[\u003CcolumnCount>]\\\"/>\\n\\t\u003C/$list>\\n\u003C/$set>\\n\\\\end\\n\\\\whitespace trim\\n\u003C$let columns={{{ [list[$:/columns]count[]] ~1 }}}>\\n\\t\u003C\u003Cremove-column-actions>>\\n\u003C/$let>\"},\"$:/plugins/BTC/TiddlyFlex/StartupActions/current-tiddlers\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/StartupActions/current-tiddlers\",\"tags\":\"$:/tags/StartupAction/Browser\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>]\\\" variable=\\\"column\\\">\\n\\t\u003C$let tv-story-list={{{ [[$:/StoryList-]addsuffix\u003Ccolumn>!match[$:/StoryList-]] ~$:/StoryList-1 }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003Ccolumn>!match[$:/HistoryList-]] ~$:/HistoryList-1 }}} currentTiddler={{{ [list\u003Ctv-story-list>nth[1]] }}}>\\n\\t\\t\u003C%if [\u003CcurrentTiddler>!is[blank]!match[]] %>\\n\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CcurrentTiddler>>/>\\n\\t\\t\u003C% endif %>\\n\\t\u003C/$let>\\n\u003C/$list>\"},\"$:/config/ShortcutInfo/add-column\":{\"title\":\"$:/config/ShortcutInfo/add-column\",\"text\":\"Add one more column\"},\"$:/config/ShortcutInfo/cancel-close-tiddler\":{\"title\":\"$:/config/ShortcutInfo/cancel-close-tiddler\",\"text\":\"Cancel or close the current tiddler\"},\"$:/config/ShortcutInfo/column-down\":{\"title\":\"$:/config/ShortcutInfo/column-down\",\"text\":\"Select the next column at the left\"},\"$:/config/ShortcutInfo/column-up\":{\"title\":\"$:/config/ShortcutInfo/column-up\",\"text\":\"Select the next column at the right\"},\"$:/config/ShortcutInfo/dragging\":{\"title\":\"$:/config/ShortcutInfo/dragging\",\"text\":\"Toggle dragging on or off\"},\"$:/config/ShortcutInfo/edit-tiddler\":{\"title\":\"$:/config/ShortcutInfo/edit-tiddler\",\"text\":\"Edit the current tiddler\"},\"$:/config/ShortcutInfo/filter-river\":{\"title\":\"$:/config/ShortcutInfo/filter-river\",\"text\":\"Filter the story river by the search input\"},\"$:/config/ShortcutInfo/move-down\":{\"title\":\"$:/config/ShortcutInfo/move-down\",\"text\":\"Move the current tiddler down\"},\"$:/config/ShortcutInfo/move-left\":{\"title\":\"$:/config/ShortcutInfo/move-left\",\"text\":\"Move the current tiddler to the left\"},\"$:/config/ShortcutInfo/move-right\":{\"title\":\"$:/config/ShortcutInfo/move-right\",\"text\":\"Move the current tiddler to the right\"},\"$:/config/ShortcutInfo/move-up\":{\"title\":\"$:/config/ShortcutInfo/move-up\",\"text\":\"Move the current tiddler up\"},\"$:/config/ShortcutInfo/navigate-down\":{\"title\":\"$:/config/ShortcutInfo/navigate-down\",\"text\":\"Navigate down to the next tiddler\"},\"$:/config/ShortcutInfo/navigate-up\":{\"title\":\"$:/config/ShortcutInfo/navigate-up\",\"text\":\"Navigate up to the next tiddler\"},\"$:/config/ShortcutInfo/remove-column\":{\"title\":\"$:/config/ShortcutInfo/remove-column\",\"text\":\"Remove one column\"},\"$:/config/shortcuts/add-column\":{\"title\":\"$:/config/shortcuts/add-column\",\"text\":\"ctrl-alt-N\"},\"$:/config/shortcuts/cancel-close-tiddler\":{\"title\":\"$:/config/shortcuts/cancel-close-tiddler\",\"text\":\"alt-C\"},\"$:/config/shortcuts/column-down\":{\"title\":\"$:/config/shortcuts/column-down\",\"text\":\"alt-Left\"},\"$:/config/shortcuts/column-up\":{\"title\":\"$:/config/shortcuts/column-up\",\"text\":\"alt-Right\"},\"$:/config/shortcuts/dragging\":{\"title\":\"$:/config/shortcuts/dragging\",\"text\":\"alt-D\"},\"$:/config/shortcuts/edit-tiddler\":{\"title\":\"$:/config/shortcuts/edit-tiddler\",\"text\":\"alt-E\"},\"$:/config/shortcuts/filter-river\":{\"title\":\"$:/config/shortcuts/filter-river\",\"text\":\"alt-F\"},\"$:/config/shortcuts/move-down\":{\"title\":\"$:/config/shortcuts/move-down\",\"text\":\"alt-shift-Down\"},\"$:/config/shortcuts/move-left\":{\"title\":\"$:/config/shortcuts/move-left\",\"text\":\"alt-shift-Left\"},\"$:/config/shortcuts/move-right\":{\"title\":\"$:/config/shortcuts/move-right\",\"text\":\"alt-shift-Right\"},\"$:/config/shortcuts/move-up\":{\"title\":\"$:/config/shortcuts/move-up\",\"text\":\"alt-shift-Up\"},\"$:/config/shortcuts/navigate-down\":{\"title\":\"$:/config/shortcuts/navigate-down\",\"text\":\"alt-Down\"},\"$:/config/shortcuts/navigate-up\":{\"title\":\"$:/config/shortcuts/navigate-up\",\"text\":\"alt-Up\"},\"$:/config/shortcuts/remove-column\":{\"title\":\"$:/config/shortcuts/remove-column\",\"text\":\"ctrl-alt-M\"},\"$:/config/tiddlyflex/dragndrop/AnimationDuration\":{\"title\":\"$:/config/tiddlyflex/dragndrop/AnimationDuration\",\"text\":\"175\"},\"$:/config/tiddlyflex/navigation/edit-missing-tiddlers\":{\"title\":\"$:/config/tiddlyflex/navigation/edit-missing-tiddlers\",\"text\":\"no\"},\"$:/config/tiddlyflex/sidebar/width\":{\"title\":\"$:/config/tiddlyflex/sidebar/width\",\"text\":\"30%\"},\"$:/config/tiddlyflex/story-river/filter/fields\":{\"title\":\"$:/config/tiddlyflex/story-river/filter/fields\",\"text\":\"*\"},\"$:/config/tiddlyflex/story-river/filter/flags\":{\"title\":\"$:/config/tiddlyflex/story-river/filter/flags\",\"text\":\"words\"},\"$:/config/tiddlyflex/story-river/filter\":{\"title\":\"$:/config/tiddlyflex/story-river/filter\",\"text\":\"no\"},\"$:/config/tiddlyflex/story-river/follow-current-column\":{\"title\":\"$:/config/tiddlyflex/story-river/follow-current-column\",\"text\":\"yes\"},\"$:/config/tiddlyflex/story-river/padding\":{\"title\":\"$:/config/tiddlyflex/story-river/padding\",\"text\":\"42px\"},\"$:/config/tiddlyflex/story-river/tiddler/EditTemplate/StoryTiddlerTemplateFilter\":{\"title\":\"$:/config/tiddlyflex/story-river/tiddler/EditTemplate/StoryTiddlerTemplateFilter\",\"tags\":\"$:/tags/StoryTiddlerTemplateFilter\",\"list-before\":\"\",\"text\":\"[is[draft]then{$:/layout}match[$:/plugins/BTC/TiddlyFlex/ui/Layout]then[$:/plugins/BTC/TiddlyFlex/ui/Templates/EditTemplate]]\"},\"$:/config/tiddlyflex/story-river/tiddler/ViewTemplate/StoryTiddlerTemplateFilter\":{\"title\":\"$:/config/tiddlyflex/story-river/tiddler/ViewTemplate/StoryTiddlerTemplateFilter\",\"tags\":\"$:/tags/StoryTiddlerTemplateFilter\",\"list-before\":\"\",\"text\":\"[!is[draft]then{$:/layout}match[$:/plugins/BTC/TiddlyFlex/ui/Layout]then[$:/plugins/BTC/TiddlyFlex/ui/Templates/ViewTemplate]]\"},\"$:/config/tiddlyflex/story-river/tiddler/box-shadow-spread\":{\"title\":\"$:/config/tiddlyflex/story-river/tiddler/box-shadow-spread\",\"text\":\"4px\"},\"$:/config/tiddlyflex/story-river/tiddler/drag-enabled\":{\"title\":\"$:/config/tiddlyflex/story-river/tiddler/drag-enabled\",\"text\":\"no\"},\"$:/config/tiddlyflex/story-river/tiddler/margin-bottom\":{\"title\":\"$:/config/tiddlyflex/story-river/tiddler/margin-bottom\",\"text\":\"28px\"},\"$:/plugins/BTC/TiddlyFlex/styles/base\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/base\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\".tc-tiddlyflex-container {\\n\\tdisplay: flex;\\n\\tflex-flow: column;\\n\\tjustify-content: flex-start;\\n\\talign-items: stretch;\\n\\theight: 100vh;\\n\\tmax-height: 100vh;\\n\\twidth: 100vw;\\n\\tmax-width: 100vw;\\n\\toutline: none;\\n\\toverflow: clip;\\n}\\n\\n.tc-tiddlyflex-main-wrapper {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-grow: 1;\\n}\\n\\n.tc-tiddlyflex-main {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-grow; 0;\\n\\tflex-shrink: 1;\\n\\tflex-basis: 100%;\\n\\tmax-height: 100%;\\n\\tposition: relative;\\n}\\n\\n@media (min-width: 992px) {\\n\\n\\t.tc-flex-main {\\n\\t\\toverflow-x: clip;\\n\\t}\\n\\n}\\n\\n.tc-tiddlyflex-header {\\n\\tflex-grow: 0;\\n\\tflex-shrink: 0;\\n\\tbox-shadow: 0 1px 5px -1px \u003C\u003Ccolour tiddlyflex-box-shadow>>;\\n\\tz-index: 999;\\n\\tbackground-color: \u003C\u003Ccolour page-background>>;\\n}\\n\\n.tc-tiddlyflex-footer {\\n\\tflex-grow: 0;\\n\\tflex-shrink: 0;\\n\\tbox-shadow: 0 -1px 5px -1px \u003C\u003Ccolour tiddlyflex-box-shadow>>;\\n\\tz-index: 999;\\n\\tbackground-color: \u003C\u003Ccolour page-background>>;\\n}\\n\\n.tc-tiddlyflex-leftbar {\\n\\tdisplay: flex;\\n\\tflex-grow: 0;\\n\\tflex-shrink: 0;\\n\\tbox-shadow: 1px 0 5px -1px \u003C\u003Ccolour tiddlyflex-box-shadow>>;;\\n\\tz-index: 998;\\n\\tbackground-color: \u003C\u003Ccolour page-background>>;\\n}\\n\\n/***************/\\n/* STORY RIVER */\\n/***************/\\n\\n.tc-tiddlyflex-story-river-container {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: stretch;\\n\\tflex-grow: 1;\\n\\tflex-shrink: 0;\\n\\tflex-basis: calc(100% - {{$:/config/tiddlyflex/sidebar/width}});\\n\\t-webkit-transition: flex-basis {{$:/config/AnimationDuration}}ms;\\n\\ttransition: flex-basis {{$:/config/AnimationDuration}}ms;\\n\\toverflow: hidden;\\n\\tmax-height: 100%;\\n}\\n\\n\u003C% if [{$:/state/sidebar}match[no]] %>\\n\\n.tc-tiddlyflex-story-river-container {\\n\\tflex-basis: 100%;\\n}\\n\\n\u003C% endif %>\\n\\n.tc-tiddlyflex-story-river-container-inner {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tjustify-content: flex-start;\\n\\talign-items: stretch;\\n\\tmax-height: 100%;\\n\\tflex-grow: 1;\\n\\tflex-shrink: 0;\\n}\\n\\n@media (min-width: 992px) {\\n\\n\\t.tc-tiddlyflex-story-river-container-inner {\\n\\t\\toverflow: hidden;\\n\\t\\tflex-basis: 0;\\n\\t}\\n\\n}\\n\\n.tc-tiddlyflex-story-river-wrapper {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tflex-shrink: 0;\\n\\tflex-grow: 1;\\n\\toverflow: hidden;\\n}\\n\\n@media (min-width: 992px) {\\n\\n\\t.tc-tiddlyflex-story-river-wrapper {\\n\\t\\tflex-basis: 0;\\n\\t}\\n\\n}\\n\\n.tc-tiddlyflex-story-river-wrapper-inner {\\n\\tflex-grow: 1;\\n\\tflex-shrink: 1;\\n\\toverflow-y: auto;\\n\\tscroll-behavior: smooth;\\n}\\n\\n@media (min-width: 992px) {\\n\\n\\t.tc-tiddlyflex-story-river-wrapper-inner {\\n\\t\\tflex-basis: 0;\\n\\t}\\n\\n}\\n\\n.tc-tiddlyflex-story-river-wrapper .tc-tiddler-frame {\\n\\twidth: 100%;\\n\\tmargin-bottom: 0;\\n\\t-webkit-box-shadow: 0 0 {{$:/config/tiddlyflex/story-river/tiddler/box-shadow-spread}} \u003C\u003Ccolour tiddlyflex-box-shadow>>;\\n\\tbox-shadow: 0 0 {{$:/config/tiddlyflex/story-river/tiddler/box-shadow-spread}} \u003C\u003Ccolour tiddlyflex-box-shadow>>;\\n}\\n\\n.tc-tiddlyflex-story-river-wrapper-inner .tc-tiddlyflex-story-river {\\n\\tpadding: {{$:/config/tiddlyflex/story-river/padding}};\\n\\tmin-height: 100%;\\n}\\n\\n.tc-tiddlyflex-story-river-inner > .tc-tiddler-view-frame, .tc-tiddlyflex-story-river-inner > .tc-tiddler-edit-frame {\\n\\tmargin-bottom: {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}};\\n}\\n\\n.tc-tiddlyflex-story-river .tc-navigating .tc-tiddler-frame {\\n\\tborder: 2px dashed \u003C\u003Ccolour primary>>;\\n}\\n\\n/***********/\\n/* SIDEBAR */\\n/***********/\\n\\n.tc-tiddlyflex-sidebar {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: stretch;\\n\\tflex-grow: 0;\\n\\tflex-shrink: 0;\\n\\tmax-height: 100%;\\n\\tz-index: 998;\\n\\tbox-shadow: 0px 0px 5px 0px \u003C\u003Ccolour tiddlyflex-box-shadow>>;\\n}\\n\\n@media (min-width: 992px) {\\n\\n\\t.tc-tiddlyflex-sidebar {\\n\\t\\twidth: {{$:/config/tiddlyflex/sidebar/width}};\\n\\t\\ttransition: box-shadow {{$:/config/AnimationDuration}}ms;\\n\\t}\\n\\n}\\n\\n\u003C%if [{$:/state/sidebar}match[no]] %>\\n\\n\\t.tc-tiddlyflex-sidebar {\\n\\t\\tbox-shadow: 0px 0px 0px 0px transparent;\\n\\t}\\n\\n\u003C% endif %>\\n\\n.tc-tiddlyflex-sidebar-container {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tjustify-content: flex-start;\\n\\talign-items: stretch;\\n\\tmax-height: 100%;\\n\\tflex-grow: 1;\\n\\tflex-shrink: 0;\\n}\\n\\n.tc-tiddlyflex-sidebar-container-inner {\\n\\tdisplay: flex;\\n\\tflex-grow: 1;\\n\\tflex-shrink: 0;\\n\\toverflow-y: auto;\\n\\tscroll-behavior: smooth;\\n\\tflex-basis: 0;\\n\\tflex-direction: row;\\n}\\n\\n.tc-tiddlyflex-sidebar-scrollable {\\n\\tpadding-top: 42px;\\n\\tpadding-left: 42px;\\n\\tmin-width: 100%;\\n}\\n\\n.tc-tiddlyflex-sidebar-shown-eventcatcher {\\n\\t-webkit-tap-highlight-color: transparent;\\n\\t-webkit-touch-callout: none;\\n\\t-webkit-user-select: none;\\n\\t-khtml-user-select: none;\\n\\t-moz-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none;\\n}\\n\\n.tc-tiddlyflex-sidebar-hide {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tbottom: 0;\\n\\tright: 0;\\n\\twidth: 100vw;\\n\\theight: 100vh;\\n\\tbackground: 0 0;\\n\\tvisibility: hidden;\\n\\tz-index: 1000;\\n\\tcursor: pointer;\\n\\t-webkit-transition: background {{$:/config/AnimationDuration}}ms {{$:/config/AnimationDuration}}ms, visibility 0s calc(2 * {{$:/config/AnimationDuration}}ms);\\n\\ttransition: background {{$:/config/AnimationDuration}}ms {{$:/config/AnimationDuration}}ms, visibility 0s calc(2 * {{$:/config/AnimationDuration}}ms);\\n}\\n\\n/******************/\\n/* ACTIVE COLUMNS */\\n/******************/\\n\\n.tc-tiddlyflex-story-river-active {\\n\\tbackground: repeating-linear-gradient(\\n\\t\\tto right,\\n\\t\\t\u003C\u003Ccolour page-background>>,\\n\\t\\t\u003C\u003Ccolour page-background>> 10px,\\n\\t\\t\u003C\u003Ccolour tiddler-background>> 10px,\\n\\t\\t\u003C\u003Ccolour tiddler-background>> 20px\\n\\t);\\n}\\n\\n.tc-tiddlyflex-activate-column {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tright: 0;\\n\\theight: 100%;\\n\\tcursor: default;\\n\\tbackground-color: transparent;\\n\\t-webkit-tap-highlight-color: transparent;\\n\\t-webkit-touch-callout: none;\\n\\t-webkit-user-select: none;\\n\\t-khtml-user-select: none;\\n\\t-moz-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none;\\n}\\n\\n/*************/\\n/* DROPZONES */\\n/*************/\\n\\ndiv[class^=\\\"tc-tiddlyflex-dropzone-\\\"] {\\n\\tmin-height: 100%;\\n\\tposition: relative;\\n}\\n\\ndiv[class^=\\\"tc-tiddlyflex-dropzone-\\\"].tc-dragover:before {\\n\\tz-index: 999;\\n\\tdisplay: block;\\n\\tposition: sticky;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tright: 0;\\n\\tbackground: \u003C\u003Ccolour dropzone-background>>;\\n\\ttext-align: center;\\n\\tcontent: \\\"\u003C\u003Clingo DropMessage>>\\\";\\n}\"},\"$:/plugins/BTC/TiddlyFlex/styles/current-tiddler\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/current-tiddler\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"\\\\define tiddlyflex-style-current-tiddler()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(currentColumn)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"]:not(.tc-navigating) > .tc-tiddler-frame {\\n\\tborder: 1px solid \u003C\u003Ccolour tiddlyflex-current-tiddler>>;\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-style-unfocused-tiddlers()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"]:not(.tc-navigating) > .tc-tiddler-frame {\\n\\tborder: 1px solid \u003C\u003Ccolour tiddlyflex-current-tiddler-muted>>;\\n}\\n\\n\\\\end\\n\\n\u003C$let currentColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] }}} historyList={{{ [[$:/HistoryList-]addsuffix\u003CcurrentColumn>!match[$:/HistoryList-]] ~[[$:/HistoryList-1]] }}}>\\n\\n\\t\u003C$set name=\\\"cssEscapedTitle\\\" value={{{ [\u003ChistoryList>get[current-tiddler]escapecss[]] }}}>\\n\\n\\t\\t\u003C\u003Ctiddlyflex-style-current-tiddler>>\\n\\n\\t\u003C/$set>\\n\\n\\t\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>] +[!match\u003CcurrentColumn>]\\\" variable=\\\"column\\\">\\n\\n\\t\\t\u003C$let historyList={{{ [[$:/HistoryList-]addsuffix\u003Ccolumn>!match[$:/HistoryList-]] ~[[$:/HistoryList-1]] }}} cssEscapedTitle={{{ [\u003ChistoryList>get[current-tiddler]escapecss[]] }}}>\\n\\n\\t\\t\\t\u003C\u003Ctiddlyflex-style-unfocused-tiddlers>>\\n\\n\\t\\t\u003C/$let>\\n\\n\\t\u003C/$list>\\n\\n\u003C/$let>\"},\"$:/plugins/BTC/TiddlyFlex/styles/dragndrop\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/dragndrop\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"\\\\define tiddlyflex-tiddler-frame-transitions()\\n\\n.tc-tiddlyflex-story-river-inner > .tc-tiddler-view-frame > .tc-tiddler-frame, .tc-tiddlyflex-story-river-inner > .tc-tiddler-edit-frame > .tc-tiddler-frame {\\n\\ttransition: margin-top {{$:/config/tiddlyflex/dragndrop/AnimationDuration}}ms linear, margin-bottom {{$:/config/tiddlyflex/dragndrop/AnimationDuration}}ms linear;\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-position-start-tiddlers-no-copying()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(startingNextTiddlerCSSEscaped)$\\\"].tc-tiddler-view-frame > .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(startingNextTiddlerCSSEscaped)$\\\"].tc-tiddler-edit-frame > .tc-tiddler-frame {\\n\\ttransition: none;\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(startingNextTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame {\\n\\tmargin-top: calc({{$:/state/dragging!!height}}px + (2 * {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}}) + 2px);\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(startingNextTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame .tc-tiddlyflex-droppable-top-half {\\n\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + {{$:/config/tiddlyflex/story-river/padding}} + {{$:/state/dragging!!height}}px + 2px);\\n\\ttop: calc(-{{$:/state/dragging!!height}}px - (2 * {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}}) - 2px);\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-position-start-tiddlers-no-copying-nth-0()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(startingNextTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame {\\n\\tmargin-top: calc({{$:/state/dragging!!height}}px + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + 2px);\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(startingNextTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame .tc-tiddlyflex-droppable-top-half {\\n\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + {{$:/config/tiddlyflex/story-river/padding}} + {{$:/state/dragging!!height}}px + 2px);\\n\\ttop: calc(-{{$:/state/dragging!!height}}px - {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} - {{$:/config/tiddlyflex/story-river/padding}} - 2px);\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-position-start-tiddlers-copying()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(dragTiddlerCSSEscaped)$\\\"].tc-tiddler-view-frame > .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(dragTiddlerCSSEscaped)$\\\"].tc-tiddler-edit-frame > .tc-tiddler-frame {\\n\\ttransition: none;\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(dragTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame {\\n\\tmargin-top: calc({{$:/state/dragging!!height}}px + (2 * {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}}) + 2px);\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(dragTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame .tc-tiddlyflex-droppable-top-half {\\n\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + {{$:/config/tiddlyflex/story-river/padding}} + {{$:/state/dragging!!height}}px + 2px);\\n\\ttop: calc(-{{$:/state/dragging!!height}}px - (2 * {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}}) - 2px);\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-position-start-tiddlers-copying-nth-0()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(dragTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame {\\n\\tmargin-top: calc({{$:/state/dragging!!height}}px + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + 2px);\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(dragTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame .tc-tiddlyflex-droppable-top-half {\\n\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + {{$:/config/tiddlyflex/story-river/padding}} + {{$:/state/dragging!!height}}px + 2px);\\n\\ttop: calc(-{{$:/state/dragging!!height}}px - {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} - {{$:/config/tiddlyflex/story-river/padding}} - 2px);\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-target-tiddler-margin()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddler-view-frame:not([data-tiddler-title=\\\"$(targetTiddlerCSSEscaped)$\\\"]) .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddler-edit-frame:not([data-tiddler-title=\\\"$(targetTiddlerCSSEscaped)$\\\"]) .tc-tiddler-frame {\\n\\tmargin-top: calc( {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + 2px);\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddler-view-frame:first-of-type:not([data-tiddler-title=\\\"$(targetTiddlerCSSEscaped)$\\\"]) .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddler-edit-frame:first-of-type:not([data-tiddler-title=\\\"$(targetTiddlerCSSEscaped)$\\\"]) .tc-tiddler-frame {\\n\\tmargin-top: 0;\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(targetTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame {\\n\\tmargin-top: calc({{$:/state/dragging!!height}}px + (2 * {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}}) + 2px);\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-target-tiddler-margin-nth-0()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(targetTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame {\\n\\tmargin-top: calc({{$:/state/dragging!!height}}px + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + 2px);\\n}\\n\\n\\\\end\\n\\n\u003C%if [{$:/state/dragging}match[yes]] %>\\n\\n\\t.tc-tiddlyflex-droppable-top-half {\\n\\t\\tposition: absolute;\\n\\t\\ttop: calc( -{{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} - 2px);\\n\\t\\tleft: calc( -{{$:/config/tiddlyflex/story-river/padding}} - 1px);\\n\\t\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + 2px);\\n\\t\\twidth: calc(100% + (2 * {{$:/config/tiddlyflex/story-river/padding}}) + 2px);\\n\\t\\tdisplay: none;\\n\\t\\tz-index: 501;\\n\\t}\\n\\n\\t.tc-tiddler-view-frame:first-of-type .tc-tiddlyflex-droppable-top-half, .tc-tiddler-edit-frame:first-of-type .tc-tiddlyflex-droppable-top-half {\\n\\t\\ttop: calc( -{{$:/config/tiddlyflex/story-river/padding}} - 2px);\\n\\t\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/padding}} + 2px);\\n\\t}\\n\\n\\t.tc-tiddlyflex-droppable-bottom-half {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 50%;\\n\\t\\tleft: calc( -{{$:/config/tiddlyflex/story-river/padding}} - 1px);\\n\\t\\theight: calc(50% + 2px);\\n\\t\\twidth: calc(100% + (2 * {{$:/config/tiddlyflex/story-river/padding}}) + 2px);\\n\\t\\tz-index: 501;\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t.tc-tiddlyflex-droppable-top-half.tc-dragover {\\n\\t\\theight: calc(50% + (2 * {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}}) + {{$:/state/dragging!!height}}px + 2px);\\n\\t\\ttop: calc(-{{$:/state/dragging!!height}}px - (2 * {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}}) - 2px);\\n\\t}\\n\\n\\t.tc-tiddler-view-frame:first-of-type .tc-tiddlyflex-droppable-top-half.tc-dragover, .tc-tiddler-edit-frame:first-of-type .tc-tiddlyflex-droppable-top-half.tc-dragover {\\n\\t\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + {{$:/config/tiddlyflex/story-river/padding}} + {{$:/state/dragging!!height}}px + 2px);\\n\\t\\ttop: calc(-{{$:/state/dragging!!height}}px - {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} - {{$:/config/tiddlyflex/story-river/padding}} - 2px);\\n\\t}\\n\\n\\t.tc-tiddlyflex-droppable-bottom-half.tc-dragover {\\n\\t\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + {{$:/state/dragging!!height}}px + 2px);\\n\\t}\\n\\n\\t\u003C%if [{$:/state/dragging}match[yes]] %>\\n\\n\\t\\t.tc-tiddlyflex-droppable-top-half, .tc-tiddlyflex-droppable-bottom-half {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\n\\t\\t\u003C$set name=\\\"dragTiddler\\\" value={{$:/state/dragging!!drag-tiddler}}>\\n\\n\\t\\t\\t\u003C$set name=\\\"dragTiddlerCSSEscaped\\\" value={{{ [\u003CdragTiddler>escapecss[]] }}}>\\n\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-tiddler-frame-transitions>>\\n\\n\\t\\t\\t\u003C/$set>\\n\\n\\t\\t\u003C/$set>\\n\\n\\t\u003C% endif %>\\n\\n\\t\u003C$let currentRiver={{$:/state/dragging!!river}} story={{{ [[$:/StoryList-]addsuffix\u003CcurrentRiver>] }}} targetTiddler={{$:/state/dragging!!target}} nextTiddler={{{ [list\u003Cstory>after\u003CtargetTiddler>] }}} margin={{$:/state/dragging!!margin}} targetTiddlerCSSEscaped={{{ [\u003Cmargin>match[top]then\u003CtargetTiddler>escapecss[]] [\u003Cmargin>match[bottom]then\u003CnextTiddler>escapecss[]] }}}>\\n\\n\\t\\t\u003C\u003Ctiddlyflex-target-tiddler-margin>>\\n\\n\\t\\t\u003C%if [{$:/state/dragging!!nth}match[0]] %>\\n\\n\\t\\t\\t\u003C\u003Ctiddlyflex-target-tiddler-margin-nth-0>>\\n\\n\\t\\t\u003C% endif %>\\n\\n\\t\u003C/$let>\\n\\n\\t.tc-tiddlyflex-below-story-river-droppable {\\n\\t\\tposition: absolute;\\n\\t\\twidth: calc(100% + {{$:/config/tiddlyflex/story-river/padding}});\\n\\t\\theight: calc(100% + {{$:/config/tiddlyflex/story-river/padding}});\\n\\t\\tleft: -{{$:/config/tiddlyflex/story-river/padding}};\\n\\t\\ttop: -{{$:/config/tiddlyflex/story-river/padding}};\\n\\t}\\n\\n\\t\u003C$let currentRiver={{$:/state/dragging!!start-river}} dragTiddler={{$:/state/dragging!!drag-tiddler}} startingNextTiddler={{$:/state/dragging!!starting-next-tiddler}} startingNextTiddlerCSSEscaped={{{ [\u003CstartingNextTiddler>escapecss[]] }}} dragTiddlerCSSEscaped={{{ [\u003CdragTiddler>escapecss[]] }}}>\\n\\n\\t\\t\u003C%if [{$:/state/dragging!!copying}!match[yes]] %>\\n\\n\\t\\t\\t\u003C\u003Ctiddlyflex-position-start-tiddlers-no-copying>>\\n\\n\\t\\t\\t\u003C%if [{$:/state/dragging!!nth}match[0]] %>\\n\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-position-start-tiddlers-no-copying-nth-0>>\\n\\n\\t\\t\\t\u003C% endif %>\\n\\n\\t\\t\u003C% else %>\\n\\n\\t\\t\\t\u003C\u003Ctiddlyflex-position-start-tiddlers-copying>>\\n\\n\\t\\t\\t\u003C%if [{$:/state/dragging!!nth}match[0]] %>\\n\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-position-start-tiddlers-copying-nth-0>>\\n\\n\\t\\t\\t\u003C% endif %>\\n\\n\\t\\t\u003C% endif %>\\n\\n\\t\u003C/$let>\\n\\n\u003C% endif %>\\n\\n\u003C%if [{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}!match[no]] %>\\n\\n\\t.tc-tiddler-frame img, .tc-tiddler-frame a:not(.tc-tiddlylink):not(.tc-tiddlylink-external) {\\n\\t\\t-webkit-user-drag: none;\\n\\t\\t-khtml-user-drag: none;\\n\\t\\t-moz-user-drag: none;\\n\\t\\t-o-user-drag: none;\\n\\t\\tuser-drag: none;\\n\\t\\t-webkit-user-select: none;\\n\\t\\t-khtml-user-select: none;\\n\\t\\t-moz-user-select: none;\\n\\t\\t-o-user-select: none;\\n\\t\\t-ms-user-select: none;\\n\\t\\tuser-select: none;\\n\\t\\ttouch-action: none;\\n\\t\\tpointer-events: none;\\n\\t}\\n\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/styles/icons\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/icons\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"svg.lucide.lucide-layout-dashboard {\\n\\tstroke: \u003C\u003Ccolour foreground>>;\\n\\tstroke-width: 3;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-right svg.lucide {\\n\\tstroke: \u003C\u003Ccolour muted-foreground>>;\\n\\tfill: none;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-right .tc-selected svg.lucide, .tc-tiddlyflex-top-toolbar-right .tc-btn-invisible:hover svg.lucide {\\n\\tstroke: \u003C\u003Ccolour foreground>>;\\n\\tfill: none;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-right .tc-selected svg.lucide.lucide-grip {\\n\\tstroke: \u003C\u003Ccolour primary>>;\\n}\"},\"$:/plugins/BTC/TiddlyFlex/styles/misc\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/misc\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"\u003C%if [function[tiddlyflex-layout]] %>\\n\\n\\t.tc-tiddlyflex-sidebar .tc-sidebar-header {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t.tc-tiddlyflex-top-toolbar .tc-show-sidebar-btn svg.tc-image-chevron-left, .tc-tiddlyflex-top-toolbar .tc-hide-sidebar-btn svg.tc-image-chevron-right {\\n\\t\\ttransform: none;\\n\\t}\\n\\n\\t.tc-modal-wrapper {\\n\\t\\tz-index: 999;\\n\\t}\\n\\n\\t.tc-plugin-reload-warning {\\n\\t\\tposition: relative;\\n\\t\\tpadding-top: 15px;\\n\\t\\tpadding-bottom: 15px;\\n\\t}\\n\\n\\t.tc-plugin-reload-warning p {\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/styles/narrow\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/narrow\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"@media (max-width: 991.98px) {\\n\\n\\t.tc-tiddlyflex-main-wrapper {\\n\\t\\toverflow-x: auto;\\n\\t}\\n\\n\\t.tc-tiddlyflex-main {\\n\\t\\toverflow-x: hidden;\\n\\t}\\n\\n\\t.tc-tiddlyflex-sidebar {\\n\\t\\tposition: fixed;\\n\\t\\ttop:0;\\n\\t\\tright: 0;\\n\\t\\tbottom: 0;\\n\\t\\twidth: 90%;\\n\\t\\tz-index: 1001;\\n\\t\\tbackground-color: \u003C\u003Ccolour page-background>>;\\n\\t\\ttransform: translate3d(0,0,0);\\n\\t\\t-webkit-transition: transform {{$:/config/AnimationDuration}}ms;\\n\\t\\ttransition: transform {{$:/config/AnimationDuration}}ms, box-shadow {{$:/config/AnimationDuration}}ms;\\n\\t}\\n\\n\\t\u003C%if [{$:/state/sidebar}match[no]] %>\\n\\n\\t\\t.tc-tiddlyflex-sidebar {\\n\\t\\t\\ttransform: translate3d(100%,0,0);\\n\\t\\t}\\n\\n\\t\u003C% endif %>\\n\\n\\t.tc-tiddlyflex-leftbar {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t.tc-tiddlyflex-story-river-container-inner {\\n\\t\\toverflow-x: auto;\\n\\t\\twidth: 100vw;\\n\\t\\tscroll-behavior: smooth;\\n\\t\\tscroll-snap-type: x mandatory;\\n\\t}\\n\\n\\t.tc-tiddlyflex-story-river-wrapper {\\n\\t\\twidth: 100vw;\\n\\t\\tflex-basis: 100vw;\\n\\t\\tscroll-snap-align: start;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t.tc-tiddlyflex-sidebar-hide.tc-tiddlyflex-sidebar-shown {\\n\\t\\tvisibility: visible;\\n\\t\\tbackground: rgba(0,0,0,.6);\\n\\t\\t-webkit-transition: background {{$:/config/AnimationDuration}}ms 0s;\\n\\t\\ttransition: background {{$:/config/AnimationDuration}}ms 0s;\\n\\t}\\n\\n}\\n\\n@media (max-width: 767.98px) {\\n\\t\\n\\t.tc-tiddlyflex-top-toolbar .tc-sidebar-lists .tc-search input {\\n\\t\\twidth: 150px;\\n\\t}\\n\\n}\\n\\n@media (max-width: 575.98px) {\\n\\t\\n\\t.tc-tiddlyflex-top-toolbar .tc-sidebar-lists .tc-search input {\\n\\t\\twidth: 100px;\\n\\t}\\n\\n\\t.tc-tiddlyflex-top-toolbar .tc-sidebar-lists .tc-search .tc-image-down-arrow + em {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n}\"},\"$:/plugins/BTC/TiddlyFlex/styles/scroll-margins\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/scroll-margins\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"\\\\define tiddlyflex-scroll-margin-top-story-river-padding()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(tiddlyFlexColumn)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"].tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(tiddlyFlexColumn)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"].tc-tiddler-edit-frame {\\n\\tscroll-margin-top: {{$:/config/tiddlyflex/story-river/padding}};\\n\\tscroll-margin-left: {{$:/config/tiddlyflex/story-river/padding}};\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-scroll-margin-top()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(tiddlyFlexColumn)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"].tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(tiddlyFlexColumn)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"].tc-tiddler-edit-frame {\\n\\tscroll-margin-top: {{{ [{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}compare:number:lteq{$:/config/tiddlyflex/story-river/padding}] ~[{$:/config/tiddlyflex/story-river/padding}] }}};\\n\\tscroll-margin-left: {{$:/config/tiddlyflex/story-river/padding}};\\n}\\n\\n\\\\end\\n\\n\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\n\\t\u003C$set name=\\\"tv-story-list\\\" value={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\n\\t\\t\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[nth[1]]\\\" variable=\\\"tiddler\\\">\\n\\n\\t\\t\\t\u003C$set name=\\\"cssEscapedTitle\\\" value={{{ [\u003Ctiddler>escapecss[]] }}}>\\n\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-scroll-margin-top-story-river-padding>>\\n\\n\\t\\t\\t\u003C/$set>\\n\\n\\t\\t\u003C/$list>\\n\\n\\t\\t\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-story-river-filter>] -[subfilter\u003Ctdff.tiddlyflex-story-river-filter>nth[1]]\\\" variable=\\\"tiddler\\\">\\n\\n\\t\\t\\t\u003C$set name=\\\"cssEscapedTitle\\\" value={{{ [\u003Ctiddler>escapecss[]] }}}>\\n\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-scroll-margin-top>>\\n\\n\\t\\t\\t\u003C/$set>\\n\\n\\t\\t\u003C/$list>\\n\\n\\t\u003C/$set>\\n\\n\u003C/$list>\"},\"$:/plugins/BTC/TiddlyFlex/styles/tiddler-animations\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/tiddler-animations\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"\\\\define tiddlyflex-dont-display-tiddler()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame > .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame > .tc-tiddler-frame {\\n\\tvisibility: hidden;\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-remove-tiddler-animation()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n@keyframes margin-top-remove-$(column)$-$(tiddlerTitleCSSEscaped)$ {\\n\\tfrom {\\n\\t\\tmargin-top: 0%;\\n\\t}\\n\\tto {\\n\\t\\tmargin-top: calc( -{{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} - $(tiddlerHeight)$px);\\n\\t}\\n}\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame > .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame > .tc-tiddler-frame {\\n\\tvisibility: visible;\\n\\t-webkit-animation: slide-out-$(direction)$ {{$:/config/AnimationDuration}}ms linear;\\n\\t-moz-animation: slide-out-$(direction)$ {{$:/config/AnimationDuration}}ms linear;\\n\\tanimation: slide-out-$(direction)$ {{$:/config/AnimationDuration}}ms linear;\\n\\tborder: 1px solid \u003C\u003Ccolour tiddlyflex-current-tiddler>>;\\n}\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame {\\n\\tz-index: 999;\\n}\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame + .tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame + .tc-tiddler-edit-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame + .tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame + .tc-tiddler-edit-frame {\\n\\t-webkit-animation: margin-top-remove-$(column)$-$(tiddlerTitleCSSEscaped)$ {{$:/config/AnimationDuration}}ms linear;\\n\\t-moz-animation: margin-top-remove-$(column)$-$(tiddlerTitleCSSEscaped)$ {{$:/config/AnimationDuration}}ms linear;\\n\\tanimation: margin-top-remove-$(column)$-$(tiddlerTitleCSSEscaped)$ {{$:/config/AnimationDuration}}ms linear;\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-add-tiddler-animation()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n@keyframes margin-top-add-$(column)$-$(tiddlerTitleCSSEscaped)$ {\\n\\tfrom {\\n\\t\\tmargin-top: calc( -{{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} - $(tiddlerHeight)$px);\\n\\t}\\n\\tto {\\n\\t\\tmargin-top: 0%;\\n\\t}\\n}\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame > .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame > .tc-tiddler-frame {\\n\\tvisibility: visible;\\n\\t-webkit-animation: slide-in-$(direction)$ {{$:/config/AnimationDuration}}ms linear;\\n\\t-moz-animation: slide-in-$(direction)$ {{$:/config/AnimationDuration}}ms linear;\\n\\tanimation: slide-in-$(direction)$ {{$:/config/AnimationDuration}}ms linear;\\n}\\n\\n\u003C%if [{$:/config/tiddlyflex/story-river/follow-current-column}match[yes]] %>\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame > .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame > .tc-tiddler-frame {\\n\\tborder: 1px solid \u003C\u003Ccolour tiddlyflex-current-tiddler>>;\\n}\\n\\n\u003C% endif %>\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame {\\n\\tz-index: 999;\\n}\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame + .tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame + .tc-tiddler-edit-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame + .tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame + .tc-tiddler-edit-frame {\\n\\t-webkit-animation: margin-top-add-$(column)$-$(tiddlerTitleCSSEscaped)$ {{$:/config/AnimationDuration}}ms linear;\\n\\t-moz-animation: margin-top-add-$(column)$-$(tiddlerTitleCSSEscaped)$ {{$:/config/AnimationDuration}}ms linear;\\n\\tanimation: margin-top-add-$(column)$-$(tiddlerTitleCSSEscaped)$ {{$:/config/AnimationDuration}}ms linear;\\n}\\n\\n\\\\end\\n\\n\u003C%if [{$:/config/AnimationDuration}!is[blank]!match[0]] %>\\n\\n\\t@keyframes slide-out-left {\\n\\t\\tfrom {\\n\\t\\t\\ttransform: translateX(0%);\\n\\t\\t}\\n\\t\\tto {\\n\\t\\t\\ttransform: translateX(calc(-100% - (2 * {{$:/config/tiddlyflex/story-river/padding}})));\\n\\t\\t}\\n\\t}\\n\\n\\t@keyframes slide-out-right {\\n\\t\\tfrom {\\n\\t\\t\\ttransform: translateX(0%);\\n\\t\\t}\\n\\t\\tto {\\n\\t\\t\\ttransform: translateX(calc(100% + (2 * {{$:/config/tiddlyflex/story-river/padding}})));\\n\\t\\t}\\n\\t}\\n\\n\\t@keyframes slide-in-left {\\n\\t\\tfrom {\\n\\t\\t\\ttransform: translateX(calc( -100% - (2 * {{$:/config/tiddlyflex/story-river/padding}})));\\n\\t\\t}\\n\\t\\tto {\\n\\t\\t\\ttransform: translateX(0%);\\n\\t\\t}\\n\\t}\\n\\n\\t@keyframes slide-in-right {\\n\\t\\tfrom {\\n\\t\\t\\ttransform: translateX(calc(100% + (2 * {{$:/config/tiddlyflex/story-river/padding}})));\\n\\t\\t}\\n\\t\\tto {\\n\\t\\t\\ttransform: translateX(0%);\\n\\t\\t}\\n\\t}\\n\\n\\t\u003C$list filter=\\\"[all[tiddlers]prefix[$:/state/tiddlyflex/removing/]]\\\" variable=\\\"stateTiddler\\\">\\n\\t\\t\u003C$let tiddlerTitle={{{ [\u003CstateTiddler>removeprefix[$:/state/tiddlyflex/removing/]] }}} tiddlerTitleCSSEscaped={{{ [\u003CtiddlerTitle>escapecss[]] }}} column={{{ [\u003CstateTiddler>get[column]] }}}>\\n\\n\\t\\t\\t\u003C\u003Ctiddlyflex-dont-display-tiddler>>\\n\\n\\t\\t\\t\u003C%if [\u003CstateTiddler>has[height]] %>\\n\\t\\t\\t\\t\u003C$let direction={{{ [\u003CstateTiddler>get[direction]] }}} tiddlerHeight={{{ [\u003CstateTiddler>get[height]] }}}>\\n\\n\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-remove-tiddler-animation>>\\n\\n\\t\\t\\t\\t\\t.tc-tiddlyflex-story-river {\\n\\t\\t\\t\\t\\t\\toverflow-x: clip;\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\u003C/$let>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$let>\\n\\t\u003C/$list>\\n\\t\u003C$list filter=\\\"[all[tiddlers]prefix[$:/state/tiddlyflex/adding/]]\\\" variable=\\\"stateTiddler\\\">\\n\\t\\t\u003C$let tiddlerTitle={{{ [\u003CstateTiddler>removeprefix[$:/state/tiddlyflex/adding/]] }}} tiddlerTitleCSSEscaped={{{ [\u003CtiddlerTitle>escapecss[]] }}} column={{{ [\u003CstateTiddler>get[column]] }}}>\\n\\n\\t\\t\\t\u003C\u003Ctiddlyflex-dont-display-tiddler>>\\n\\n\\t\\t\\t\u003C%if [\u003CstateTiddler>has[height]] %>\\n\\t\\t\\t\\t\u003C$let direction={{{ [\u003CstateTiddler>get[direction]] }}} tiddlerHeight={{{ [\u003CstateTiddler>get[height]] }}}>\\n\\n\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-add-tiddler-animation>>\\n\\n\\t\\t\\t\\t\\t.tc-tiddlyflex-story-river {\\n\\t\\t\\t\\t\\t\\toverflow-x: clip;\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\u003C/$let>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$let>\\n\\t\u003C/$list>\\n\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/styles/toolbars\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/toolbars\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\".tc-tiddlyflex-top-toolbar {\\n\\tdisplay: flex;\\n\\talign-items: stretch;\\n\\tline-height: 2em;\\n}\\n\\n.tc-tiddlyflex-top-toolbar .tc-sidebar-lists.tc-sidebar-search {\\n\\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\\n}\\n\\n.tc-tiddlyflex-top-toolbar .tc-sidebar-lists.tc-sidebar-search .tc-block-dropdown {\\n\\tcolor: \u003C\u003Ccolour muted-foreground>>;\\n}\\n\\n.tc-tiddlyflex-top-toolbar .tc-sidebar-lists.tc-sidebar-search .tc-search > .tc-reveal {\\n\\tfont-size: 0.75rem;\\n}\\n\\n.tc-tiddlyflex-top-toolbar p {\\n\\tmargin: 0;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-left, .tc-tiddlyflex-top-toolbar-right {\\n\\tflex-grow: 0;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-center {\\n\\tflex-grow: 1;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-left {\\n\\tmargin-top: 5px;\\n\\tmargin-bottom: 5px;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-left > div:first-of-type {\\n\\tmargin-left: {{$:/config/tiddlyflex/story-river/padding}};\\n}\\n\\n.tc-tiddlyflex-top-toolbar-right button {\\n\\tmargin-right: 0.5em;\\n\\tvertical-align: bottom;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-right .tc-btn-invisible svg:not(.lucide) {\\n\\tfill: \u003C\u003Ccolour muted-foreground>>;\\n\\tfont-size: 1rem;\\n\\theight: 1rem;\\n\\twidth: 1rem;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-right .tc-btn-invisible:hover svg:not(.lucide), .tc-tiddlyflex-top-toolbar-right .tc-btn-invisible.tc-selected svg:not(.lucide) {\\n\\tfill: \u003C\u003Ccolour foreground>>;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-right .tc-btn-invisible.tc-selected {\\n\\t-webkit-filter: drop-shadow(0px -1px 2px rgba(0,0,0,0.25));\\n\\t-moz-filter: drop-shadow(0px -1px 2px rgba(0,0,0,0.25));\\n\\tfilter: drop-shadow(0px -1px 2px rgba(0,0,0,0.25));\\n}\"},\"$:/plugins/BTC/TiddlyFlex/styles/z-indexes\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/z-indexes\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"\\\\define tiddlyflex-tiddler-z-indexes-inner()\\n\\n\u003C$list filter=\\\"[range\u003CstoryListCount>]\\\">\\n`.tc-tiddlyflex-story-river-`$(tiddlyFlexColumn)$ `.tc-tiddlyflex-story-river-inner > .tc-tiddler-view-frame:nth-child(100n+`\u003C$text text=\u003C\u003CcurrentTiddler>>/>`) > .tc-tiddler-frame`,\\n`.tc-tiddlyflex-story-river-`$(tiddlyFlexColumn)$ `.tc-tiddlyflex-story-river-inner > .tc-tiddler-edit-frame:nth-child(100n+`\u003C$text text=\u003C\u003CcurrentTiddler>>/>`) > .tc-tiddler-frame {\\nz-index: `\u003C$text text={{{ [\u003CstoryListCount>add[501]subtract\u003CcurrentTiddler>] }}}/>`;\\n}\\n`\\n\u003C/$list>\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-tiddler-z-indexes()\\n\\n\u003C$set name=\\\"storyListCount\\\" value={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[count[]] }}}>\\n\\n\\t\u003C\u003Ctiddlyflex-tiddler-z-indexes-inner>>\\n\\n\u003C/$set>\\n\\n\\\\end\\n\\n\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\n\\t\u003C$set name=\\\"tv-story-list\\\" value={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\n\\t\\t\u003C\u003Ctiddlyflex-tiddler-z-indexes>>\\n\\n\\t\u003C/$set>\\n\\n\u003C/$list>\"},\"$:/plugins/BTC/TiddlyFlex/modules/widgets/subclasses/navigator.js\":{\"text\":\"/*\\\\\\ntitle: $:/plugins/BTC/TiddlyFlex/modules/widgets/subclasses/navigator.js\\ntype: application/javascript\\nmodule-type: widget-subclass\\n\\nWidget base class\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nexports.baseClass = \\\"navigator\\\"; // Extend the \u003C$checkbox> widget\\n\\nexports.constructor = function(parseTreeNode,options) {\\n\\tthis.initialise(parseTreeNode,options);\\n};\\n\\nexports.prototype = {};\\n\\nexports.prototype.handleNavigateEvent = function(event) {\\n\\tevent = $tw.hooks.invokeHook(\\\"th-navigating\\\",event);\\n\\tif(event.navigateTo || (event.paramObject && event.paramObject.navigateTo)) {\\n\\t\\tthis.addToStory(event.paramObject && event.paramObject.navigateTo ? event.paramObject.navigateTo : event.navigateTo,event.paramObject && event.paramObject.navigateFromTitle ? event.paramObject.navigateFromTitle : event.navigateFromTitle);\\n\\t\\tif(!event.navigateSuppressNavigation && !(event.paramObject ? (event.paramObject.navigateSuppressNavigation === \\\"true\\\") : false)) {\\n\\t\\t\\tthis.addToHistory((event.paramObject && event.paramObject.navigateTo) ? event.paramObject.navigateTo : event.navigateTo,(event.paramObject && event.paramObject.navigateFromClientRect) ? event.paramObject.navigateFromClientRect : event.navigateFromClientRect);\\n\\t\\t}\\n\\t}\\n\\treturn false;\\n};\\n\\n// Close a specified tiddler\\nexports.prototype.handleCloseTiddlerEvent = function(event) {\\n\\tevent = $tw.hooks.invokeHook(\\\"th-closing-tiddler\\\",event);\\n\\tvar title = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle,\\n\\t\\tstoryList = this.getStoryList();\\n\\t// Look for tiddlers with this title to close\\n\\tthis.removeTitleFromStory(storyList,title);\\n\\tthis.saveStoryList(storyList);\\n\\treturn false;\\n};\\n\\n// Close other tiddlers\\nexports.prototype.handleCloseOtherTiddlersEvent = function(event) {\\n\\tvar title = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle;\\n\\tthis.saveStoryList([title]);\\n\\treturn false;\\n};\\n\\n// Place a tiddler in edit mode\\nexports.prototype.handleEditTiddlerEvent = function(event) {\\n\\tvar editTiddler = $tw.hooks.invokeHook(\\\"th-editing-tiddler\\\",event),\\n\\t win = event.event && event.event.view ? event.event.view : window;\\n\\tif(!editTiddler) {\\n\\t\\treturn false;\\n\\t}\\n\\tvar self = this;\\n\\tfunction isUnmodifiedShadow(title) {\\n\\t\\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\\n\\t}\\n\\tfunction confirmEditShadow(title) {\\n\\t\\treturn win.confirm($tw.language.getString(\\n\\t\\t\\t\\\"ConfirmEditShadowTiddler\\\",\\n\\t\\t\\t{variables:\\n\\t\\t\\t\\t{title: title}\\n\\t\\t\\t}\\n\\t\\t));\\n\\t}\\n\\tvar title = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle;\\n\\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\\n\\t\\treturn false;\\n\\t}\\n\\t// Replace the specified tiddler with a draft in edit mode\\n\\tvar draftTiddler = this.makeDraftTiddler(title);\\n\\t// Update the story and history if required\\n\\tif(!event.paramObject || event.paramObject.suppressNavigation !== \\\"yes\\\") {\\n\\t\\tvar draftTitle = draftTiddler.fields.title,\\n\\t\\t\\tstoryList = this.getStoryList();\\n\\t\\tthis.removeTitleFromStory(storyList,draftTitle);\\n\\t\\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\\n\\t\\tif(!(event.paramObject && (event.paramObject.suppressNavigation === \\\"true\\\"))) {\\n\\t\\t\\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\\n\\t\\t}\\n\\t\\tthis.saveStoryList(storyList);\\n\\t\\treturn false;\\n\\t}\\n};\\n\\n// Delete a tiddler\\nexports.prototype.handleDeleteTiddlerEvent = function(event) {\\n\\t// Get the tiddler we're deleting\\n\\tvar title = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle,\\n\\t\\ttiddler = this.wiki.getTiddler(title),\\n\\t\\tstoryList = this.getStoryList(),\\n\\t\\toriginalTitle = tiddler ? tiddler.fields[\\\"draft.of\\\"] : \\\"\\\",\\n\\t\\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\\n\\t\\tconfirmationTitle,\\n\\t\\twin = event.event && event.event.view ? event.event.view : window;\\n\\t// Check if the tiddler we're deleting is in draft mode\\n\\tif(originalTitle) {\\n\\t\\t// If so, we'll prompt for confirmation referencing the original tiddler\\n\\t\\tconfirmationTitle = originalTitle;\\n\\t} else {\\n\\t\\t// If not a draft, then prompt for confirmation referencing the specified tiddler\\n\\t\\tconfirmationTitle = title;\\n\\t}\\n\\t// Seek confirmation\\n\\tif(((originalTitle && this.wiki.getTiddler(originalTitle)) || (tiddler && ((tiddler.fields.text || \\\"\\\") !== \\\"\\\"))) && !win.confirm($tw.language.getString(\\n\\t\\t\\t\\t\\\"ConfirmDeleteTiddler\\\",\\n\\t\\t\\t\\t{variables:\\n\\t\\t\\t\\t\\t{title: confirmationTitle}\\n\\t\\t\\t\\t}\\n\\t\\t\\t))) {\\n\\t\\treturn false;\\n\\t}\\n\\t// Delete the original tiddler\\n\\tif(originalTitle) {\\n\\t\\tif(originalTiddler) {\\n\\t\\t\\t$tw.hooks.invokeHook(\\\"th-deleting-tiddler\\\",originalTiddler);\\n\\t\\t}\\n\\t\\tthis.wiki.deleteTiddler(originalTitle);\\n\\t\\tthis.removeTitleFromStory(storyList,originalTitle);\\n\\t}\\n\\t// Invoke the hook function and delete this tiddler\\n\\tif(tiddler) {\\n\\t\\t$tw.hooks.invokeHook(\\\"th-deleting-tiddler\\\",tiddler);\\n\\t\\tthis.wiki.deleteTiddler(title);\\t\\n\\t}\\n\\t// Remove the closed tiddler from the story\\n\\tthis.removeTitleFromStory(storyList,title);\\n\\tthis.saveStoryList(storyList);\\n\\t// Trigger an autosave\\n\\t$tw.rootWidget.dispatchEvent({type: \\\"tm-auto-save-wiki\\\"});\\n\\treturn false;\\n};\\n\\n// Take a tiddler out of edit mode without saving the changes\\nexports.prototype.handleCancelTiddlerEvent = function(event) {\\n\\tevent = $tw.hooks.invokeHook(\\\"th-cancelling-tiddler\\\", event);\\n\\tvar win = event.event && event.event.view ? event.event.view : window;\\n\\t// Flip the specified tiddler from draft back to the original\\n\\tvar draftTitle = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle,\\n\\t\\tdraftTiddler = this.wiki.getTiddler(draftTitle),\\n\\t\\toriginalTitle = draftTiddler && draftTiddler.fields[\\\"draft.of\\\"];\\n\\tif(draftTiddler && originalTitle) {\\n\\t\\t// Ask for confirmation if the tiddler text has changed\\n\\t\\tvar isConfirmed = true,\\n\\t\\t\\toriginalTiddler = this.wiki.getTiddler(originalTitle),\\n\\t\\t\\tstoryList = this.getStoryList();\\n\\t\\tif(this.wiki.isDraftModified(draftTitle)) {\\n\\t\\t\\tisConfirmed = win.confirm($tw.language.getString(\\n\\t\\t\\t\\t\\\"ConfirmCancelTiddler\\\",\\n\\t\\t\\t\\t{variables:\\n\\t\\t\\t\\t\\t{title: draftTitle}\\n\\t\\t\\t\\t}\\n\\t\\t\\t));\\n\\t\\t}\\n\\t\\t// Remove the draft tiddler\\n\\t\\tif(isConfirmed) {\\n\\t\\t\\tthis.wiki.deleteTiddler(draftTitle);\\n\\t\\t\\tif(!event.paramObject || event.paramObject.suppressNavigation !== \\\"yes\\\") {\\n\\t\\t\\t\\tif(originalTiddler) {\\n\\t\\t\\t\\t\\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\\n\\t\\t\\t\\t\\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\tthis.removeTitleFromStory(storyList,draftTitle);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tthis.saveStoryList(storyList);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\treturn false;\\n};\\n\\n// Close a specified tiddler\\nexports.prototype.handleCloseTiddlerEvent = function(event) {\\n\\tevent = $tw.hooks.invokeHook(\\\"th-closing-tiddler\\\",event);\\n\\tvar title = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle,\\n\\t\\tstoryList = this.getStoryList();\\n\\t// Look for tiddlers with this title to close\\n\\tthis.removeTitleFromStory(storyList,title);\\n\\tthis.saveStoryList(storyList);\\n\\treturn false;\\n};\\n\\n// Close other tiddlers\\nexports.prototype.handleCloseOtherTiddlersEvent = function(event) {\\n\\tvar title = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle;\\n\\tthis.saveStoryList([title]);\\n\\treturn false;\\n};\\n\\n// Take a tiddler out of edit mode, saving the changes\\nexports.prototype.handleSaveTiddlerEvent = function(event) {\\n\\tvar title = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle,\\n\\t\\ttiddler = this.wiki.getTiddler(title),\\n\\t\\tstoryList = this.getStoryList(),\\n\\t \\twin = event.event && event.event.view ? event.event.view : window;\\n\\t// Replace the original tiddler with the draft\\n\\tif(tiddler) {\\n\\t\\tvar draftTitle = (tiddler.fields[\\\"draft.title\\\"] || \\\"\\\").trim(),\\n\\t\\t\\tdraftOf = (tiddler.fields[\\\"draft.of\\\"] || \\\"\\\").trim();\\n\\t\\tif(draftTitle) {\\n\\t\\t\\tvar isRename = draftOf !== draftTitle,\\n\\t\\t\\t\\tisConfirmed = true;\\n\\t\\t\\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\\n\\t\\t\\t\\tisConfirmed = win.confirm($tw.language.getString(\\n\\t\\t\\t\\t\\t\\\"ConfirmOverwriteTiddler\\\",\\n\\t\\t\\t\\t\\t{variables:\\n\\t\\t\\t\\t\\t\\t{title: draftTitle}\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t));\\n\\t\\t\\t}\\n\\t\\t\\tif(isConfirmed) {\\n\\t\\t\\t\\t// Create the new tiddler and pass it through the th-saving-tiddler hook\\n\\t\\t\\t\\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\\n\\t\\t\\t\\t\\ttitle: draftTitle,\\n\\t\\t\\t\\t\\t\\\"draft.title\\\": undefined,\\n\\t\\t\\t\\t\\t\\\"draft.of\\\": undefined\\n\\t\\t\\t\\t},this.wiki.getModificationFields());\\n\\t\\t\\t\\tnewTiddler = $tw.hooks.invokeHook(\\\"th-saving-tiddler\\\",newTiddler,tiddler);\\n\\t\\t\\t\\tthis.wiki.addTiddler(newTiddler);\\n\\t\\t\\t\\t// If enabled, relink references to renamed tiddler\\n\\t\\t\\t\\tvar shouldRelink = this.getAttribute(\\\"relinkOnRename\\\",\\\"no\\\").toLowerCase().trim() === \\\"yes\\\";\\n\\t\\t\\t\\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\\n\\t\\t\\t\\t\\tthis.wiki.relinkTiddler(draftOf,draftTitle);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t// Remove the draft tiddler\\n\\t\\t\\t\\tthis.wiki.deleteTiddler(title);\\n\\t\\t\\t\\t// Remove the original tiddler if we're renaming it\\n\\t\\t\\t\\tif(isRename) {\\n\\t\\t\\t\\t\\tthis.wiki.deleteTiddler(draftOf);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t// #2381 always remove new title & old\\n\\t\\t\\t\\tthis.removeTitleFromStory(storyList,draftTitle);\\n\\t\\t\\t\\tthis.removeTitleFromStory(storyList,draftOf);\\n\\t\\t\\t\\tif(!event.paramObject || event.paramObject.suppressNavigation !== \\\"yes\\\") {\\n\\t\\t\\t\\t\\t// Replace the draft in the story with the original\\n\\t\\t\\t\\t\\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\\n\\t\\t\\t\\t\\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\\n\\t\\t\\t\\t\\tif(draftTitle !== this.storyTitle) {\\n\\t\\t\\t\\t\\t\\tthis.saveStoryList(storyList);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t// Trigger an autosave\\n\\t\\t\\t\\t$tw.rootWidget.dispatchEvent({type: \\\"tm-auto-save-wiki\\\"});\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\treturn false;\\n};\\n\\nexports.prototype.handleFoldTiddlerEvent = function(event) {\\n\\tvar paramObject = (event.event.paramObject && event.event.paramObject.foldedState) ? event.event.paramObject : (event.paramObject || {});\\n\\tif(paramObject.foldedState) {\\n\\t\\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\\\"show\\\") === \\\"show\\\" ? \\\"hide\\\" : \\\"show\\\";\\n\\t\\tthis.wiki.setText(paramObject.foldedState,\\\"text\\\",null,foldedState);\\n\\t}\\n};\\n\\nexports.prototype.handleFoldOtherTiddlersEvent = function(event) {\\n\\tvar self = this,\\n\\t\\tparamObject = (event.event.paramObject && event.event.paramObject.foldedStatePrefix) ? event.event.paramObject : (event.paramObject || {}),\\n\\t\\tprefix = paramObject.foldedStatePrefix;\\n\\t$tw.utils.each(this.getStoryList(),function(title) {\\n\\t\\tself.wiki.setText(prefix + title,\\\"text\\\",null,event.param === title ? \\\"show\\\" : \\\"hide\\\");\\n\\t});\\n};\\n\\nexports.prototype.handleFoldAllTiddlersEvent = function(event) {\\n\\tvar self = this,\\n\\t\\tparamObject = (event.event.paramObject && event.event.paramObject.foldedStatePrefix) ? event.event.paramObject : (event.paramObject || {}),\\n\\t\\tprefix = paramObject.foldedStatePrefix || \\\"$:/state/folded/\\\";\\n\\t$tw.utils.each(this.getStoryList(),function(title) {\\n\\t\\tself.wiki.setText(prefix + title,\\\"text\\\",null,\\\"hide\\\");\\n\\t});\\n};\\n\\nexports.prototype.handleUnfoldAllTiddlersEvent = function(event) {\\n\\tvar self = this,\\n\\t\\tparamObject = (event.event.paramObject && event.event.paramObject.foldedStatePrefix) ? event.event.paramObject : (event.paramObject || {}),\\n\\t\\tprefix = paramObject.foldedStatePrefix;\\n\\t$tw.utils.each(this.getStoryList(),function(title) {\\n\\t\\tself.wiki.setText(prefix + title,\\\"text\\\",null,\\\"show\\\");\\n\\t});\\n};\\n\\n})();\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/BTC/TiddlyFlex/modules/widgets/subclasses/navigator.js\",\"module-type\":\"widget-subclass\"},\"$:/plugins/BTC/TiddlyFlex/modules/widgets/subclasses/droppable.js\":{\"text\":\"/*\\\\\\ntitle: $:/plugins/BTC/TiddlyFlex/modules/widgets/subclasses/droppable.js\\ntype: application/javascript\\nmodule-type: widget-subclass\\n\\nWidget base class\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nexports.baseClass = \\\"droppable\\\";\\n\\n// Specify a different name to make the subclass available as a new widget instead of overwriting the baseclass:\\n// exports.name = \\\"my-enhanced-checkbox\\\";\\n\\nexports.constructor = function(parseTreeNode,options) {\\n\\tthis.initialise(parseTreeNode,options);\\n};\\n\\nexports.prototype = {};\\n\\nexports.prototype.render = function(parent,nextSibling) {\\n\\tvar self = this,\\n\\t\\ttag = this.parseTreeNode.isBlock ? \\\"div\\\" : \\\"span\\\",\\n\\t\\tdomNode;\\n\\t// Remember parent\\n\\tthis.parentDomNode = parent;\\n\\t// Compute attributes and execute state\\n\\tthis.computeAttributes();\\n\\tthis.execute();\\n\\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\\n\\t\\ttag = this.droppableTag;\\n\\t}\\n\\t// Create element and assign classes\\n\\tdomNode = this.document.createElement(tag);\\n\\tthis.domNode = domNode;\\n\\tthis.assignDomNodeClasses();\\n\\t// Add event handlers\\n\\tif(this.droppableEnable) {\\n\\t\\t$tw.utils.addEventListeners(domNode,[\\n\\t\\t\\t{name: \\\"dragenter\\\", handlerObject: this, handlerMethod: \\\"handleDragEnterEvent\\\"},\\n\\t\\t\\t{name: \\\"dragover\\\", handlerObject: this, handlerMethod: \\\"handleDragOverEvent\\\"},\\n\\t\\t\\t{name: \\\"dragleave\\\", handlerObject: this, handlerMethod: \\\"handleDragLeaveEvent\\\"},\\n\\t\\t\\t{name: \\\"drop\\\", handlerObject: this, handlerMethod: \\\"handleDropEvent\\\"},\\n\\t\\t\\t{name: \\\"dragend\\\", handlerObject: this, handlerMethod: \\\"handleDragEndEvent\\\"}\\n\\t\\t]);\\n\\t} else {\\n\\t\\t$tw.utils.addClass(this.domNode,this.disabledClass);\\n\\t}\\n\\t// Insert element\\n\\tparent.insertBefore(domNode,nextSibling);\\n\\tthis.renderChildren(domNode,null);\\n\\tthis.domNodes.push(domNode);\\n\\t// Stack of outstanding enter/leave events\\n\\tthis.currentlyEntered = [];\\n};\\n\\nexports.prototype.handleEvent = function(event) {\\n\\tif(event.type === \\\"dragenter\\\") {\\n\\t\\tif(event.target && event.target !== this.domNode && !$tw.utils.domContains(this.domNode,event.target)) {\\n\\t\\t\\tthis.resetState(null,event);\\n\\t\\t}\\n\\t} else if(event.type === \\\"dragleave\\\") {\\n\\t\\t// Check if drag left the window\\n\\t\\tif(event.relatedTarget === null || (event.relatedTarget && event.relatedTarget.nodeName === \\\"HTML\\\")) {\\n\\t\\t\\tthis.resetState(null,event);\\n\\t\\t}\\n\\t}\\n};\\n\\nexports.prototype.resetState = function(options,event) {\\n\\toptions = options || {};\\n\\tif(this.domNodes[0]) {\\n\\t\\t$tw.utils.removeClass(this.domNodes[0],\\\"tc-dragover\\\");\\n\\t}\\n\\tthis.currentlyEntered = [];\\n\\tthis.document.body.removeEventListener(\\\"dragenter\\\",this,true);\\n\\tthis.document.body.removeEventListener(\\\"dragleave\\\",this,true);\\n\\tif(options.performDragLeaveActions && this.dragLeaveActions) {\\n\\t\\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\\n\\t\\tthis.invokeActionString(this.dragLeaveActions,this,event,{modifier: modifierKey});\\n\\t}\\n\\tif(options.performDragEndActions && this.dragEndActions) {\\n\\t\\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\\n\\t\\tthis.invokeActionString(this.dragEndActions,this,event,{modifier: modifierKey});\\n\\t}\\n};\\n\\nexports.prototype.enterDrag = function(event) {\\n\\tif(this.currentlyEntered.indexOf(event.target) === -1) {\\n\\t\\tthis.currentlyEntered.push(event.target);\\n\\t}\\n\\t// If we're entering for the first time we need to apply highlighting\\n\\t$tw.utils.addClass(this.domNodes[0],\\\"tc-dragover\\\");\\n\\tthis.document.body.addEventListener(\\\"dragenter\\\",this,true);\\n\\tthis.document.body.addEventListener(\\\"dragleave\\\",this,true);\\n\\tif(this.dragEnterActions) {\\n\\t\\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\\n\\t\\tthis.invokeActionString(this.dragEnterActions,this,event,{modifier: modifierKey});\\n\\t}\\n};\\n\\nexports.prototype.leaveDrag = function(event) {\\n\\tvar pos = this.currentlyEntered.indexOf(event.target);\\n\\tif(pos !== -1) {\\n\\t\\tthis.currentlyEntered.splice(pos,1);\\n\\t}\\n\\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\\n\\tif(this.currentlyEntered.length === 0) {\\n\\t\\tthis.resetState({performDragLeaveActions: true},event);\\n\\t}\\n};\\n\\nexports.prototype.handleDragEnterEvent = function(event) {\\n\\tthis.enterDrag(event);\\n\\t// Tell the browser that we're ready to handle the drop\\n\\tevent.preventDefault();\\n\\t// Tell the browser not to ripple the drag up to any parent drop handlers\\n\\tevent.stopPropagation();\\n\\treturn false;\\n};\\n\\nexports.prototype.handleDragOverEvent = function(event) {\\n\\t// Check for being over a TEXTAREA or INPUT\\n\\tif([\\\"TEXTAREA\\\",\\\"INPUT\\\"].indexOf(event.target.tagName) !== -1) {\\n\\t\\treturn false;\\n\\t}\\n\\t// Tell the browser that we're still interested in the drop\\n\\tevent.preventDefault();\\n\\t// Set the drop effect\\n\\tevent.dataTransfer.dropEffect = this.droppableEffect;\\n\\treturn false;\\n};\\n\\nexports.prototype.handleDragLeaveEvent = function(event) {\\n\\tthis.leaveDrag(event);\\n\\treturn false;\\n};\\n\\nexports.prototype.handleDragEndEvent = function(event) {\\n\\tthis.resetState({performDragEndActions: true});\\n};\\n\\nexports.prototype.handleDropEvent = function(event) {\\n\\tvar self = this;\\n\\tthis.leaveDrag(event);\\n\\t// Check for being over a TEXTAREA or INPUT\\n\\tif([\\\"TEXTAREA\\\",\\\"INPUT\\\"].indexOf(event.target.tagName) !== -1) {\\n\\t\\treturn false;\\n\\t}\\n\\tvar dataTransfer = event.dataTransfer;\\n\\t// Remove highlighting\\n\\tthis.resetState(null,event);\\n\\t// Try to import the various data types we understand\\n\\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\\n\\t\\tfieldsArray.forEach(function(fields) {\\n\\t\\t\\tself.performActions(fields.title || fields.text,event);\\n\\t\\t});\\n\\t});\\n\\t// Tell the browser that we handled the drop\\n\\tevent.preventDefault();\\n\\t// Stop the drop ripple up to any parent handlers\\n\\tevent.stopPropagation();\\n\\treturn false;\\n};\\n\\nexports.prototype.performActions = function(title,event) {\\n\\tif(this.droppableActions) {\\n\\t\\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\\n\\t\\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title, modifier: modifierKey});\\n\\t}\\n};\\n\\n/*\\nCompute the internal state of the widget\\n*/\\nexports.prototype.execute = function() {\\n\\tthis.droppableActions = this.getAttribute(\\\"actions\\\");\\n\\tthis.droppableEffect = this.getAttribute(\\\"effect\\\",\\\"copy\\\");\\n\\tthis.droppableTag = this.getAttribute(\\\"tag\\\");\\n\\tthis.droppableEnable = (this.getAttribute(\\\"enable\\\") || \\\"yes\\\") === \\\"yes\\\";\\n\\tthis.disabledClass = this.getAttribute(\\\"disabledClass\\\",\\\"\\\");\\n\\tthis.dragEnterActions = this.getAttribute(\\\"dragenteractions\\\");\\n\\tthis.dragLeaveActions = this.getAttribute(\\\"dragleaveactions\\\");\\n\\tthis.dragEndActions = this.getAttribute(\\\"dragendactions\\\");\\n\\t// Make child widgets\\n\\tthis.makeChildWidgets();\\n};\\n\\n/*\\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\\n*/\\nexports.prototype.refresh = function(changedTiddlers) {\\n\\tvar changedAttributes = this.computeAttributes();\\n\\tif(changedAttributes.tag || changedAttributes.enable || changedAttributes.disabledClass || changedAttributes.actions || changedAttributes.effect || changedAttributes.dragenteractions || changedAttributes.dragleaveactions || changedAttributes.dragendactions) {\\n\\t\\tthis.refreshSelf();\\n\\t\\treturn true;\\n\\t} else if(changedAttributes[\\\"class\\\"]) {\\n\\t\\tthis.assignDomNodeClasses();\\n\\t}\\n\\treturn this.refreshChildren(changedTiddlers);\\n};\\n\\n})();\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/BTC/TiddlyFlex/modules/widgets/subclasses/droppable.js\",\"module-type\":\"widget-subclass\"},\"$:/core/modules/utils/dom/scroller.js\":{\"text\":\"/*\\\\\\ntitle: $:/core/modules/utils/dom/scroller.js\\ntype: application/javascript\\nmodule-type: utils\\n\\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\n/*\\nEvent handler for when the `tm-scroll` event hits the document body\\n*/\\nvar PageScroller = function() {\\n\\tthis.idRequestFrame = null;\\n\\tthis.requestAnimationFrame = window.requestAnimationFrame ||\\n\\t\\twindow.webkitRequestAnimationFrame ||\\n\\t\\twindow.mozRequestAnimationFrame ||\\n\\t\\tfunction(callback) {\\n\\t\\t\\treturn window.setTimeout(callback, 1000/60);\\n\\t\\t};\\n\\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\\n\\t\\twindow.webkitCancelAnimationFrame ||\\n\\t\\twindow.webkitCancelRequestAnimationFrame ||\\n\\t\\twindow.mozCancelAnimationFrame ||\\n\\t\\twindow.mozCancelRequestAnimationFrame ||\\n\\t\\tfunction(id) {\\n\\t\\t\\twindow.clearTimeout(id);\\n\\t\\t};\\n};\\n\\nPageScroller.prototype.isScrolling = function() {\\n\\treturn this.idRequestFrame !== null;\\n}\\n\\nPageScroller.prototype.cancelScroll = function(srcWindow) {\\n\\tif(this.idRequestFrame) {\\n\\t\\tthis.cancelAnimationFrame.call(srcWindow,this.idRequestFrame);\\n\\t\\tthis.idRequestFrame = null;\\n\\t}\\n};\\n\\n/*\\nHandle an event\\n*/\\nPageScroller.prototype.handleEvent = function(event) {\\n\\tif(event.type === \\\"tm-scroll\\\") {\\n\\t\\tvar options = {};\\n\\t\\tif($tw.utils.hop(event.paramObject,\\\"animationDuration\\\")) {\\n\\t\\t\\toptions.animationDuration = event.paramObject.animationDuration;\\n\\t\\t}\\n\\t\\tif(event.paramObject && event.paramObject.selector) {\\n\\t\\t\\tthis.scrollSelectorIntoView(null,event.paramObject.selector,null,options);\\n\\t\\t} else {\\n\\t\\t\\tthis.scrollIntoView(event.target,null,options);\\n\\t\\t}\\n\\t\\treturn false; // Event was handled\\n\\t}\\n\\treturn true;\\n};\\n\\n/*\\nHandle a scroll event hitting the page document\\n*/\\nPageScroller.prototype.scrollIntoView = function(element,callback,options) {\\n\\tvar self = this,\\n\\t\\tduration = $tw.utils.hop(options,\\\"animationDuration\\\") ? parseInt(options.animationDuration) : $tw.utils.getAnimationDuration(),\\n\\t\\tsrcWindow = element ? element.ownerDocument.defaultView : window;\\n\\ttry {\\n\\t\\t$tw.utils.addClass(element,\\\"tc-navigating\\\");\\n\\t\\tvar scrollIntoView = function() {\\n\\t\\t\\telement.scrollIntoView({block: \\\"start\\\", inline: \\\"start\\\"});\\n\\t\\t};\\n\\t\\tthis.requestAnimationFrame.call(srcWindow,scrollIntoView);\\n\\t\\tsetTimeout(function() {\\n\\t\\t\\t$tw.utils.removeClass(element,\\\"tc-navigating\\\");\\n\\t\\t},duration);\\n\\t} catch(e) {\\n\\t\\tconsole.log(e);\\n\\t}\\n};\\n\\nPageScroller.prototype.scrollSelectorIntoView = function(baseElement,selector,callback,options) {\\n\\tbaseElement = baseElement || document;\\n\\tvar element = $tw.utils.querySelectorSafe(selector,baseElement);\\n\\tif(element) {\\n\\t\\tthis.scrollIntoView(element,callback,options);\\n\\t}\\n};\\n\\nexports.PageScroller = PageScroller;\\n\\n})();\\n\",\"type\":\"application/javascript\",\"title\":\"$:/core/modules/utils/dom/scroller.js\",\"module-type\":\"utils\"},\"$:/plugins/BTC/TiddlyFlex/modules/storyviews/tiddlyflex.js\":{\"text\":\"/*\\\\\\ntitle: $:/plugins/BTC/TiddlyFlex/modules/storyviews/tiddlyflex.js\\ntype: application/javascript\\nmodule-type: storyview\\n\\nViews the story as a linear sequence\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nvar easing = \\\"cubic-bezier(0.645, 0.045, 0.355, 1)\\\"; // From http://easings.net/#easeInOutCubic\\n\\nvar ClassicStoryView = function(listWidget) {\\n\\tthis.listWidget = listWidget;\\n};\\n\\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\\n\\tvar duration = $tw.utils.getAnimationDuration()\\n\\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\\n\\tif(listElementIndex === undefined) {\\n\\t\\treturn;\\n\\t}\\n\\tvar listItemWidget = this.listWidget.children[listElementIndex],\\n\\t\\ttargetElement = listItemWidget.findFirstDomNode();\\n\\t// Abandon if the list entry isn't a DOM element (it might be a text node)\\n\\tif(!targetElement || targetElement.nodeType === Node.TEXT_NODE) {\\n\\t\\treturn;\\n\\t}\\n\\tif(duration) {\\n\\t\\t// Scroll the node into view\\n\\t\\tthis.listWidget.dispatchEvent({type: \\\"tm-scroll\\\", target: targetElement});\\n\\t} else {\\n\\t\\ttargetElement.scrollIntoView();\\n\\t}\\n};\\n\\nClassicStoryView.prototype.insert = function(widget) {\\n\\tvar duration = $tw.utils.getAnimationDuration(),\\n\\t\\ttiddlerTitle = widget.parseTreeNode.itemTitle;\\n\\tif(duration && !widget.wiki.tiddlerExists(\\\"$:/state/dragging\\\") && !widget.wiki.tiddlerExists(\\\"$:/state/tiddlyflex/adding/\\\" + tiddlerTitle)) {\\n\\t\\tvar targetElement = widget.findFirstDomNode();\\n\\t\\t// Abandon if the list entry isn't a DOM element (it might be a text node)\\n\\t\\tif(!targetElement || targetElement.nodeType === Node.TEXT_NODE) {\\n\\t\\t\\treturn;\\n\\t\\t}\\n\\t\\t// Get the current height of the tiddler\\n\\t\\tvar computedStyle = window.getComputedStyle(targetElement),\\n\\t\\t\\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\\n\\t\\t\\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\\n\\t\\t\\tcurrHeight = targetElement.offsetHeight + currMarginTop;\\n\\t\\t// Reset the margin once the transition is over\\n\\t\\tsetTimeout(function() {\\n\\t\\t\\t$tw.utils.setStyle(targetElement,[\\n\\t\\t\\t\\t{transition: \\\"none\\\"},\\n\\t\\t\\t\\t{marginBottom: \\\"\\\"}\\n\\t\\t\\t]);\\n\\t\\t},duration);\\n\\t\\t// Set up the initial position of the element\\n\\t\\t$tw.utils.setStyle(targetElement,[\\n\\t\\t\\t{transition: \\\"none\\\"},\\n\\t\\t\\t{marginBottom: (-currHeight) + \\\"px\\\"},\\n\\t\\t\\t{opacity: \\\"0.0\\\"}\\n\\t\\t]);\\n\\t\\t$tw.utils.forceLayout(targetElement);\\n\\t\\t// Transition to the final position\\n\\t\\t$tw.utils.setStyle(targetElement,[\\n\\t\\t\\t{transition: \\\"opacity \\\" + duration + \\\"ms \\\" + easing + \\\", \\\" +\\n\\t\\t\\t\\t\\t\\t\\\"margin-bottom \\\" + duration + \\\"ms \\\" + easing},\\n\\t\\t\\t{marginBottom: currMarginBottom + \\\"px\\\"},\\n\\t\\t\\t{opacity: \\\"1.0\\\"}\\n\\t\\t]);\\n\\t} else if(duration && !widget.wiki.tiddlerExists(\\\"$:/state/dragging\\\") && widget.wiki.tiddlerExists(\\\"$:/state/tiddlyflex/adding/\\\" + tiddlerTitle)) {\\n\\t\\tvar targetElement = widget.findFirstDomNode();\\n\\t\\twidget.wiki.setText(\\\"$:/state/tiddlyflex/adding/\\\" + tiddlerTitle,\\\"height\\\",undefined,targetElement.offsetHeight);\\n\\t\\tsetTimeout(function() {\\n\\t\\t\\twidget.wiki.deleteTiddler(\\\"$:/state/tiddlyflex/adding/\\\" + tiddlerTitle);\\n\\t\\t},duration);\\n\\t}\\n\\tif($tw.wiki.tiddlerExists(\\\"$:/state/dragging\\\")) {\\n\\t\\twidget.wiki.deleteTiddler(\\\"$:/state/dragging\\\");\\n\\t}\\n};\\n\\nClassicStoryView.prototype.remove = function(widget) {\\n\\tvar duration = $tw.utils.getAnimationDuration(),\\n\\t\\ttiddlerTitle = widget.parseTreeNode.itemTitle;\\n\\tif(duration && !widget.wiki.tiddlerExists(\\\"$:/state/dragging\\\") && !widget.wiki.tiddlerExists(\\\"$:/state/tiddlyflex/removing/\\\" + tiddlerTitle)) {\\n\\t\\tvar targetElement = widget.findFirstDomNode(),\\n\\t\\t\\tremoveElement = function() {\\n\\t\\t\\t\\twidget.removeChildDomNodes();\\n\\t\\t\\t};\\n\\t\\t// Abandon if the list entry isn't a DOM element (it might be a text node)\\n\\t\\tif(!targetElement || targetElement.nodeType === Node.TEXT_NODE) {\\n\\t\\t\\tremoveElement();\\n\\t\\t\\treturn;\\n\\t\\t}\\n\\t\\t// Get the current height of the tiddler\\n\\t\\tvar currWidth = targetElement.offsetWidth,\\n\\t\\t\\tcomputedStyle = window.getComputedStyle(targetElement),\\n\\t\\t\\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\\n\\t\\t\\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\\n\\t\\t\\tcurrHeight = targetElement.offsetHeight + currMarginTop;\\n\\t\\t// Remove the dom nodes of the widget at the end of the transition\\n\\t\\tsetTimeout(removeElement,duration);\\n\\t\\t// Animate the closure\\n\\t\\t$tw.utils.setStyle(targetElement,[\\n\\t\\t\\t{transition: \\\"none\\\"},\\n\\t\\t\\t{transform: \\\"translateX(0px)\\\"},\\n\\t\\t\\t{marginBottom: currMarginBottom + \\\"px\\\"},\\n\\t\\t\\t{opacity: \\\"1.0\\\"}\\n\\t\\t]);\\n\\t\\t$tw.utils.forceLayout(targetElement);\\n\\t\\t$tw.utils.setStyle(targetElement,[\\n\\t\\t\\t{transition: $tw.utils.roundTripPropertyName(\\\"transform\\\") + \\\" \\\" + duration + \\\"ms \\\" + easing + \\\", \\\" +\\n\\t\\t\\t\\t\\t\\t\\\"opacity \\\" + duration + \\\"ms \\\" + easing + \\\", \\\" +\\n\\t\\t\\t\\t\\t\\t\\\"margin-bottom \\\" + duration + \\\"ms \\\" + easing},\\n\\t\\t\\t{transform: \\\"translateX(-\\\" + currWidth + \\\"px)\\\"},\\n\\t\\t\\t{marginBottom: (-currHeight) + \\\"px\\\"},\\n\\t\\t\\t{opacity: \\\"0.0\\\"}\\n\\t\\t]);\\n\\t} else if(duration && !widget.wiki.tiddlerExists(\\\"$:/state/dragging\\\") && widget.wiki.tiddlerExists(\\\"$:/state/tiddlyflex/removing/\\\" + tiddlerTitle)) {\\n\\t\\tvar targetElement = widget.findFirstDomNode(),\\n\\t\\t\\tremoveElement = function() {\\n\\t\\t\\t\\twidget.removeChildDomNodes();\\n\\t\\t\\t\\twidget.wiki.deleteTiddler(\\\"$:/state/tiddlyflex/removing/\\\" + tiddlerTitle);\\n\\t\\t\\t};\\n\\t\\twidget.wiki.setText(\\\"$:/state/tiddlyflex/removing/\\\" + tiddlerTitle,\\\"height\\\",undefined,targetElement.offsetHeight);\\n\\t\\tsetTimeout(removeElement,duration);\\n\\t} else {\\n\\t\\twidget.removeChildDomNodes();\\n\\t}\\n};\\n\\nexports.tiddlyflex = ClassicStoryView;\\n\\n})();\\n\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/BTC/TiddlyFlex/modules/storyviews/tiddlyflex.js\",\"module-type\":\"storyview\"},\"$:/core/modules/keyboard.js\":{\"text\":\"/*\\\\\\ntitle: $:/core/modules/keyboard.js\\ntype: application/javascript\\nmodule-type: global\\n\\nKeyboard handling utilities\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nvar namedKeys = {\\n\\t\\\"cancel\\\": 3,\\n\\t\\\"help\\\": 6,\\n\\t\\\"backspace\\\": 8,\\n\\t\\\"tab\\\": 9,\\n\\t\\\"clear\\\": 12,\\n\\t\\\"return\\\": 13,\\n\\t\\\"enter\\\": 13,\\n\\t\\\"pause\\\": 19,\\n\\t\\\"escape\\\": 27,\\n\\t\\\"space\\\": 32,\\n\\t\\\"page_up\\\": 33,\\n\\t\\\"page_down\\\": 34,\\n\\t\\\"end\\\": 35,\\n\\t\\\"home\\\": 36,\\n\\t\\\"left\\\": 37,\\n\\t\\\"up\\\": 38,\\n\\t\\\"right\\\": 39,\\n\\t\\\"down\\\": 40,\\n\\t\\\"printscreen\\\": 44,\\n\\t\\\"insert\\\": 45,\\n\\t\\\"delete\\\": 46,\\n\\t\\\"0\\\": 48,\\n\\t\\\"1\\\": 49,\\n\\t\\\"2\\\": 50,\\n\\t\\\"3\\\": 51,\\n\\t\\\"4\\\": 52,\\n\\t\\\"5\\\": 53,\\n\\t\\\"6\\\": 54,\\n\\t\\\"7\\\": 55,\\n\\t\\\"8\\\": 56,\\n\\t\\\"9\\\": 57,\\n\\t\\\"firefoxsemicolon\\\": 59,\\n\\t\\\"firefoxequals\\\": 61,\\n\\t\\\"a\\\": 65,\\n\\t\\\"b\\\": 66,\\n\\t\\\"c\\\": 67,\\n\\t\\\"d\\\": 68,\\n\\t\\\"e\\\": 69,\\n\\t\\\"f\\\": 70,\\n\\t\\\"g\\\": 71,\\n\\t\\\"h\\\": 72,\\n\\t\\\"i\\\": 73,\\n\\t\\\"j\\\": 74,\\n\\t\\\"k\\\": 75,\\n\\t\\\"l\\\": 76,\\n\\t\\\"m\\\": 77,\\n\\t\\\"n\\\": 78,\\n\\t\\\"o\\\": 79,\\n\\t\\\"p\\\": 80,\\n\\t\\\"q\\\": 81,\\n\\t\\\"r\\\": 82,\\n\\t\\\"s\\\": 83,\\n\\t\\\"t\\\": 84,\\n\\t\\\"u\\\": 85,\\n\\t\\\"v\\\": 86,\\n\\t\\\"w\\\": 87,\\n\\t\\\"x\\\": 88,\\n\\t\\\"y\\\": 89,\\n\\t\\\"z\\\": 90,\\n\\t\\\"numpad0\\\": 96,\\n\\t\\\"numpad1\\\": 97,\\n\\t\\\"numpad2\\\": 98,\\n\\t\\\"numpad3\\\": 99,\\n\\t\\\"numpad4\\\": 100,\\n\\t\\\"numpad5\\\": 101,\\n\\t\\\"numpad6\\\": 102,\\n\\t\\\"numpad7\\\": 103,\\n\\t\\\"numpad8\\\": 104,\\n\\t\\\"numpad9\\\": 105,\\n\\t\\\"multiply\\\": 106,\\n\\t\\\"add\\\": 107,\\n\\t\\\"separator\\\": 108,\\n\\t\\\"subtract\\\": 109,\\n\\t\\\"decimal\\\": 110,\\n\\t\\\"divide\\\": 111,\\n\\t\\\"f1\\\": 112,\\n\\t\\\"f2\\\": 113,\\n\\t\\\"f3\\\": 114,\\n\\t\\\"f4\\\": 115,\\n\\t\\\"f5\\\": 116,\\n\\t\\\"f6\\\": 117,\\n\\t\\\"f7\\\": 118,\\n\\t\\\"f8\\\": 119,\\n\\t\\\"f9\\\": 120,\\n\\t\\\"f10\\\": 121,\\n\\t\\\"f11\\\": 122,\\n\\t\\\"f12\\\": 123,\\n\\t\\\"f13\\\": 124,\\n\\t\\\"f14\\\": 125,\\n\\t\\\"f15\\\": 126,\\n\\t\\\"f16\\\": 127,\\n\\t\\\"f17\\\": 128,\\n\\t\\\"f18\\\": 129,\\n\\t\\\"f19\\\": 130,\\n\\t\\\"f20\\\": 131,\\n\\t\\\"f21\\\": 132,\\n\\t\\\"f22\\\": 133,\\n\\t\\\"f23\\\": 134,\\n\\t\\\"f24\\\": 135,\\n\\t\\\"firefoxminus\\\": 173,\\n\\t\\\"semicolon\\\": 186,\\n\\t\\\"equals\\\": 187,\\n\\t\\\"comma\\\": 188,\\n\\t\\\"dash\\\": 189,\\n\\t\\\"period\\\": 190,\\n\\t\\\"slash\\\": 191,\\n\\t\\\"backquote\\\": 192,\\n\\t\\\"openbracket\\\": 219,\\n\\t\\\"backslash\\\": 220,\\n\\t\\\"closebracket\\\": 221,\\n\\t\\\"quote\\\": 222\\n};\\n\\nfunction KeyboardManager(options) {\\n\\tvar self = this;\\n\\toptions = options || \\\"\\\";\\n\\t// Save the named key hashmap\\n\\tthis.namedKeys = namedKeys;\\n\\t// Create a reverse mapping of code to keyname\\n\\tthis.keyNames = [];\\n\\t$tw.utils.each(namedKeys,function(keyCode,name) {\\n\\t\\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\\n\\t});\\n\\t// Save the platform-specific name of the \\\"meta\\\" key\\n\\tthis.metaKeyName = $tw.platform.isMac ? \\\"cmd-\\\" : \\\"win-\\\";\\n\\tthis.shortcutKeysList = [], // Stores the shortcut-key descriptors\\n\\tthis.shortcutActionList = [], // Stores the corresponding action strings\\n\\tthis.shortcutParsedList = []; // Stores the parsed key descriptors\\n\\tthis.shortcutPriorityList = []; // Stores the parsed shortcut priority\\n\\tthis.lookupNames = [\\\"shortcuts\\\"];\\n\\tthis.lookupNames.push($tw.platform.isMac ? \\\"shortcuts-mac\\\" : \\\"shortcuts-not-mac\\\")\\n\\tthis.lookupNames.push($tw.platform.isWindows ? \\\"shortcuts-windows\\\" : \\\"shortcuts-not-windows\\\");\\n\\tthis.lookupNames.push($tw.platform.isLinux ? \\\"shortcuts-linux\\\" : \\\"shortcuts-not-linux\\\");\\n\\tthis.updateShortcutLists(this.getShortcutTiddlerList());\\n\\t$tw.wiki.addEventListener(\\\"change\\\",function(changes) {\\n\\t\\tself.handleShortcutChanges(changes);\\n\\t});\\n}\\n\\n/*\\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\\n*/\\nKeyboardManager.prototype.getModifierKeys = function() {\\n\\treturn [\\n\\t\\t16, // Shift\\n\\t\\t17, // Ctrl\\n\\t\\t18, // Alt\\n\\t\\t20, // CAPS LOCK\\n\\t\\t91, // Meta (left)\\n\\t\\t93, // Meta (right)\\n\\t\\t224 // Meta (Firefox)\\n\\t]\\n};\\n\\n/*\\nParses a key descriptor into the structure:\\n{\\n\\tkeyCode: numeric keycode\\n\\tshiftKey: boolean\\n\\taltKey: boolean\\n\\tctrlKey: boolean\\n\\tmetaKey: boolean\\n}\\nKey descriptors have the following format:\\n\\tctrl+enter\\n\\tctrl+shift+alt+A\\n*/\\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor,options) {\\n\\tvar components = keyDescriptor.split(/\\\\+|\\\\-/),\\n\\t\\tinfo = {\\n\\t\\t\\tkeyCode: 0,\\n\\t\\t\\tshiftKey: false,\\n\\t\\t\\taltKey: false,\\n\\t\\t\\tctrlKey: false,\\n\\t\\t\\tmetaKey: false\\n\\t\\t};\\n\\tfor(var t=0; t\u003Ccomponents.length; t++) {\\n\\t\\tvar s = components[t].toLowerCase(),\\n\\t\\t\\tc = s.charCodeAt(0);\\n\\t\\t// Look for modifier keys\\n\\t\\tif(s === \\\"ctrl\\\") {\\n\\t\\t\\tinfo.ctrlKey = true;\\n\\t\\t} else if(s === \\\"shift\\\") {\\n\\t\\t\\tinfo.shiftKey = true;\\n\\t\\t} else if(s === \\\"alt\\\") {\\n\\t\\t\\tinfo.altKey = true;\\n\\t\\t} else if(s === \\\"meta\\\" || s === \\\"cmd\\\" || s === \\\"win\\\") {\\n\\t\\t\\tinfo.metaKey = true;\\n\\t\\t}\\n\\t\\t// Replace named keys with their code\\n\\t\\tif(this.namedKeys[s]) {\\n\\t\\t\\tinfo.keyCode = this.namedKeys[s];\\n\\t\\t}\\n\\t}\\n\\tif(options.keyDescriptor) {\\n\\t\\tinfo.keyDescriptor = options.keyDescriptor;\\n\\t}\\n\\tif(info.keyCode) {\\n\\t\\treturn info;\\n\\t} else {\\n\\t\\treturn null;\\n\\t}\\n};\\n\\n/*\\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\\n*/\\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\\n\\tvar self = this;\\n\\toptions = options || {};\\n\\toptions.stack = options.stack || [];\\n\\tvar wiki = options.wiki || $tw.wiki;\\n\\tif(typeof keyDescriptors === \\\"string\\\" && keyDescriptors === \\\"\\\") {\\n\\t\\treturn [];\\n\\t}\\n\\tif(!$tw.utils.isArray(keyDescriptors)) {\\n\\t\\tkeyDescriptors = keyDescriptors.split(\\\" \\\");\\n\\t}\\n\\tvar result = [];\\n\\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\\n\\t\\t// Look for a named shortcut\\n\\t\\tif(keyDescriptor.substr(0,2) === \\\"((\\\" && keyDescriptor.substr(-2,2) === \\\"))\\\") {\\n\\t\\t\\tif(options.stack.indexOf(keyDescriptor) === -1) {\\n\\t\\t\\t\\toptions.stack.push(keyDescriptor);\\n\\t\\t\\t\\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\\n\\t\\t\\t\\t\\tlookupName = function(configName) {\\n\\t\\t\\t\\t\\t\\tvar keyDescriptors = wiki.getTiddlerText(\\\"$:/config/\\\" + configName + \\\"/\\\" + name);\\n\\t\\t\\t\\t\\t\\tif(keyDescriptors) {\\n\\t\\t\\t\\t\\t\\t\\toptions.keyDescriptor = keyDescriptor;\\n\\t\\t\\t\\t\\t\\t\\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t};\\n\\t\\t\\t\\t$tw.utils.each(self.lookupNames,function(platformDescriptor) {\\n\\t\\t\\t\\t\\tlookupName(platformDescriptor);\\n\\t\\t\\t\\t});\\n\\t\\t\\t}\\n\\t\\t} else {\\n\\t\\t\\tresult.push(self.parseKeyDescriptor(keyDescriptor,options));\\n\\t\\t}\\n\\t});\\n\\treturn result;\\n};\\n\\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\\n\\tvar self = this,\\n\\t\\tresult = [];\\n\\t$tw.utils.each(keyInfoArray,function(keyInfo) {\\n\\t\\tif(keyInfo) {\\n\\t\\t\\tresult.push((keyInfo.ctrlKey ? \\\"ctrl-\\\" : \\\"\\\") + \\n\\t\\t\\t\\t (keyInfo.shiftKey ? \\\"shift-\\\" : \\\"\\\") + \\n\\t\\t\\t\\t (keyInfo.altKey ? \\\"alt-\\\" : \\\"\\\") + \\n\\t\\t\\t\\t (keyInfo.metaKey ? self.metaKeyName : \\\"\\\") + \\n\\t\\t\\t\\t (self.keyNames[keyInfo.keyCode]));\\n\\t\\t}\\n\\t});\\n\\treturn result;\\n}\\n\\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\\n\\treturn keyInfo &&\\n\\t\\t\\tevent.keyCode === keyInfo.keyCode && \\n\\t\\t\\tevent.shiftKey === keyInfo.shiftKey && \\n\\t\\t\\tevent.altKey === keyInfo.altKey && \\n\\t\\t\\tevent.ctrlKey === keyInfo.ctrlKey && \\n\\t\\t\\tevent.metaKey === keyInfo.metaKey;\\n};\\n\\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\\n\\treturn (this.getMatchingKeyDescriptor(event,keyInfoArray) !== null);\\n};\\n\\nKeyboardManager.prototype.getMatchingKeyDescriptor = function(event,keyInfoArray) {\\n\\tfor(var t=0; t\u003CkeyInfoArray.length; t++) {\\n\\t\\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\\n\\t\\t\\treturn keyInfoArray[t];\\n\\t\\t}\\n\\t}\\n\\treturn null;\\n};\\n\\nKeyboardManager.prototype.getEventModifierKeyDescriptor = function(event) {\\n\\treturn event.ctrlKey && !event.shiftKey\\t&& !event.altKey && !event.metaKey ? \\\"ctrl\\\" : \\n\\t\\tevent.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey ? \\\"shift\\\" : \\n\\t\\tevent.ctrlKey && event.shiftKey && !event.altKey && !event.metaKey ? \\\"ctrl-shift\\\" : \\n\\t\\tevent.altKey && !event.shiftKey && !event.ctrlKey && !event.metaKey ? \\\"alt\\\" : \\n\\t\\tevent.altKey && event.shiftKey && !event.ctrlKey && !event.metaKey ? \\\"alt-shift\\\" : \\n\\t\\tevent.altKey && event.ctrlKey && !event.shiftKey && !event.metaKey ? \\\"ctrl-alt\\\" : \\n\\t\\tevent.altKey && event.shiftKey && event.ctrlKey && !event.metaKey ? \\\"ctrl-alt-shift\\\" : \\n\\t\\tevent.metaKey && !event.ctrlKey && !event.shiftKey && !event.altKey ? \\\"meta\\\" : \\n\\t\\tevent.metaKey && event.ctrlKey && !event.shiftKey && !event.altKey ? \\\"meta-ctrl\\\" :\\n\\t\\tevent.metaKey && event.ctrlKey && event.shiftKey && !event.altKey ? \\\"meta-ctrl-shift\\\" :\\n\\t\\tevent.metaKey && event.ctrlKey && event.shiftKey && event.altKey ? \\\"meta-ctrl-alt-shift\\\" : \\\"normal\\\";\\n};\\n\\nKeyboardManager.prototype.getShortcutTiddlerList = function() {\\n\\treturn $tw.wiki.getTiddlersWithTag(\\\"$:/tags/KeyboardShortcut\\\");\\n};\\n\\nKeyboardManager.prototype.updateShortcutLists = function(tiddlerList) {\\n\\tthis.shortcutTiddlers = tiddlerList;\\n\\tvar needsOverRide = false;\\n\\tfor(var i=0; i\u003CtiddlerList.length; i++) {\\n\\t\\tvar title = tiddlerList[i],\\n\\t\\t\\ttiddlerFields = $tw.wiki.getTiddler(title).fields;\\n\\t\\tthis.shortcutKeysList[i] = tiddlerFields.key !== undefined ? tiddlerFields.key : undefined;\\n\\t\\tthis.shortcutActionList[i] = tiddlerFields.text;\\n\\t\\tthis.shortcutParsedList[i] = this.shortcutKeysList[i] !== undefined ? this.parseKeyDescriptors(this.shortcutKeysList[i]) : undefined;\\n\\t\\tthis.shortcutPriorityList[i] = tiddlerFields.priority === \\\"yes\\\" ? true : false;\\n\\t\\tif(tiddlerFields.override === \\\"yes\\\") {\\n\\t\\t\\tneedsOverRide = true;\\n\\t\\t}\\n\\t}\\n\\tif(needsOverRide) {\\n\\t\\tfor(var j=0; j\u003CtiddlerList.length; j++) {\\n\\t\\t\\tvar title = tiddlerList[j],\\n\\t\\t\\t\\ttiddlerFields = $tw.wiki.getTiddler(title).fields;\\n\\t\\t\\tif(tiddlerFields.override === \\\"yes\\\") {\\n\\t\\t\\t\\tfor(var k=0; k\u003CtiddlerList.length; k++) {\\n\\t\\t\\t\\t\\tif((k !== j) && (tiddlerFields[\\\"override-title\\\"] === tiddlerList[k])) {\\n\\t\\t\\t\\t\\t\\tthis.shortcutKeysList.splice(k,1);\\n\\t\\t\\t\\t\\t\\tthis.shortcutActionList.splice(k,1);\\n\\t\\t\\t\\t\\t\\tthis.shortcutParsedList.splice(k,1);\\n\\t\\t\\t\\t\\t\\tthis.shortcutPriorityList.splice(k,1);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n};\\n\\n/*\\nevent: the keyboard event object\\noptions:\\n\\tonlyPriority: true if only priority global shortcuts should be invoked\\n*/\\nKeyboardManager.prototype.handleKeydownEvent = function(event, options) {\\n\\toptions = options || {};\\n\\tvar key, action;\\n\\tfor(var i=0; i\u003Cthis.shortcutTiddlers.length; i++) {\\n\\t\\tif(options.onlyPriority && this.shortcutPriorityList[i] !== true) {\\n\\t\\t\\tcontinue;\\n\\t\\t}\\n\\n\\t\\tif(this.shortcutParsedList[i] !== undefined && this.checkKeyDescriptors(event,this.shortcutParsedList[i])) {\\n\\t\\t\\tkey = this.shortcutParsedList[i];\\n\\t\\t\\taction = this.shortcutActionList[i];\\n\\t\\t}\\n\\t}\\n\\tif(key !== undefined) {\\n\\t\\tevent.preventDefault();\\n\\t\\tevent.stopPropagation();\\n\\t\\t$tw.rootWidget.invokeActionString(action,$tw.rootWidget,event);\\n\\t\\treturn true;\\n\\t}\\n\\treturn false;\\n};\\n\\nKeyboardManager.prototype.detectNewShortcuts = function(changedTiddlers) {\\n\\tvar shortcutConfigTiddlers = [],\\n\\t\\thandled = false;\\n\\t$tw.utils.each(this.lookupNames,function(platformDescriptor) {\\n\\t\\tvar descriptorString = \\\"$:/config/\\\" + platformDescriptor + \\\"/\\\";\\n\\t\\tObject.keys(changedTiddlers).forEach(function(configTiddler) {\\n\\t\\t\\tvar configString = configTiddler.substr(0, configTiddler.lastIndexOf(\\\"/\\\") + 1);\\n\\t\\t\\tif(configString === descriptorString) {\\n\\t\\t\\t\\tshortcutConfigTiddlers.push(configTiddler);\\n\\t\\t\\t\\thandled = true;\\n\\t\\t\\t}\\n\\t\\t});\\n\\t});\\n\\tif(handled) {\\n\\t\\treturn $tw.utils.hopArray(changedTiddlers,shortcutConfigTiddlers);\\n\\t} else {\\n\\t\\treturn false;\\n\\t}\\n};\\n\\nKeyboardManager.prototype.handleShortcutChanges = function(changedTiddlers) {\\n\\tvar newList = this.getShortcutTiddlerList();\\n\\tvar hasChanged = $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers) ? true :\\n\\t\\t($tw.utils.hopArray(changedTiddlers,newList) ? true :\\n\\t\\t(this.detectNewShortcuts(changedTiddlers))\\n\\t);\\n\\t// Re-cache shortcuts if something changed\\n\\tif(hasChanged) {\\n\\t\\tthis.updateShortcutLists(newList);\\n\\t}\\n};\\n\\nexports.KeyboardManager = KeyboardManager;\\n\\n})();\",\"type\":\"application/javascript\",\"title\":\"$:/core/modules/keyboard.js\",\"module-type\":\"global\"},\"$:/plugins/BTC/TiddlyFlex/globals/dragndrop\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/globals/dragndrop\",\"tags\":\"$:/tags/Global\",\"text\":\"\\\\procedure tiddlyflex-top-dragenter-actions()\\n\u003C%if [[$:/state/dragging]has[dragenter-count]] %>\\n \\t\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" starting-next-tiddler=\\\"\\\" copying=\\\"\\\" target=\u003C\u003CcurrentTiddler>> margin=\\\"top\\\" nth={{{ [list\u003Ctv-story-list>allbefore\u003CcurrentTiddler>count[]] }}} river=\u003C\u003CtiddlyFlexColumn>> next-tiddler=\\\"\\\" from-index={{{ [list\u003Ctv-story-list>allbefore\u003CcurrentTiddler>count[]] }}} from-story=\u003C\u003Ctv-story-list>> dragenter-count={{{ [[$:/state/dragging]get[dragenter-count]add[1]] }}}/>\\n\u003C% else %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" dragenter-count=\\\"1\\\"/>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-bottom-dragenter-actions()\\n\u003C%if [[$:/state/dragging]has[dragenter-count]] %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" starting-next-tiddler=\\\"\\\" copying=\\\"\\\" target=\u003C\u003CcurrentTiddler>> margin=\\\"bottom\\\" nth={{{ [list\u003Ctv-story-list>allbefore\u003CcurrentTiddler>count[]add[1]] }}} river=\u003C\u003CtiddlyFlexColumn>> next-tiddler=\\\"\\\" from-index={{{ [list\u003Ctv-story-list>allbefore\u003CcurrentTiddler>count[]add[1]] }}} from-story=\u003C\u003Ctv-story-list>> dragenter-count={{{ [[$:/state/dragging]get[dragenter-count]add[1]] }}}/>\\n\u003C% else %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" dragenter-count=\\\"1\\\"/>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-top-drop-actions-inner()\\n\u003C%if [\u003CactionTiddler>!match\u003CcurrentTiddler>] %>\\n\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003CcurrentTiddler>]\\\"/>\\n\\t\u003C%if [\u003Ctv-history-list>get[current-tiddler]match[]] [\u003Ctv-history-list>!has[current-tiddler]] +[limit[1]] %>\\n\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CactionTiddler>>/>\\n\\t\u003C% endif %>\\n\u003C% else %>\\n\\t\u003C$action-deletetiddler $tiddler=\\\"$:/state/drag-handled\\\"/>\u003C$action-deletetiddler $tiddler=\\\"$:/state/dragging\\\"/>\\n\u003C% endif %>\\n\u003C$vars fromStoryList={{$:/state/dragging!!starting-from-story}} fromHistoryList={{$:/state/dragging!!from-history}}>\\n\\t\u003C%if [\u003CfromStoryList>!match\u003Ctv-story-list>] %>\\n\\t\\t\u003C%if [{$:/state/dragging!!is-focused-tiddler}match[TRUE]] %>\\n\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003CfromHistoryList>> current-tiddler={{{ [list\u003CfromStoryList>zth{$:/state/dragging!!starting-from-index}] }}}/>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% endif %>\\n\u003C/$vars>\\n\\\\end\\n\\\\procedure tiddlyflex-top-drop-actions()\\n\u003C$action-setfield $tiddler=\\\"$:/state/drag-handled\\\" text=\\\"yes\\\"/>\\n\u003C$vars prefix=\\\"[[\\\" suffix=\\\"]]\\\">\\n\\t\u003C%if [\u003CactionTiddler>removeprefix\u003Cprefix>removesuffix\u003Csuffix>] %>\\n\\t\\t\u003C$set name=\\\"actionTiddler\\\" value={{{ [\u003CactionTiddler>removeprefix\u003Cprefix>removesuffix\u003Csuffix>] }}}>\\n\\t\\t\\t\u003C\u003Ctiddlyflex-top-drop-actions-inner>>\\n\\t\\t\u003C/$set>\\n\\t\u003C% else %>\\n\\t\\t\u003C\u003Ctiddlyflex-top-drop-actions-inner>>\\n\\t\u003C% endif %>\\n\u003C/$vars>\\n\\\\end\\n\\\\procedure tiddlyflex-bottom-drop-actions-inner()\\n\u003C$set name=\\\"nextTiddler\\\" value={{{ [list\u003Ctv-story-list>after\u003CcurrentTiddler>] }}}>\\n\\t\u003C%if [\u003CnextTiddler>match[]] %>\\n\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"[\u003CactionTiddler>]\\\"/>\\n\\t\\t\u003C$list filter=\\\"[\u003Ctv-history-list>get[current-tiddler]match[]] [\u003Ctv-history-list>!has[current-tiddler]] +[limit[1]]\\\" variable=\\\"ignore\\\">\\n\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CactionTiddler>>/>\\n\\t\\t\u003C/$list>\\n\\t\u003C% else %>\\n\\t\\t\u003C%if [\u003CactionTiddler>!match\u003CnextTiddler>] %>\\n\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003CnextTiddler>]\\\"/>\\n\\t\\t\\t\u003C$list filter=\\\"[\u003Ctv-history-list>get[current-tiddler]match[]] [\u003Ctv-history-list>!has[current-tiddler]] +[limit[1]]\\\" variable=\\\"ignore\\\">\\n\\t\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CactionTiddler>>/>\\n\\t\\t\\t\u003C/$list>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$action-deletetiddler $tiddler=\\\"$:/state/drag-handled\\\"/>\u003C$action-deletetiddler $tiddler=\\\"$:/state/dragging\\\"/>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% endif %>\\n\u003C/$set>\\n\u003C$vars fromStoryList={{$:/state/dragging!!starting-from-story}} fromHistoryList={{$:/state/dragging!!from-history}}>\\n\\t\u003C%if [\u003CfromStoryList>!match\u003Ctv-story-list>] %>\\n\\t\\t\u003C%if [{$:/state/dragging!!is-focused-tiddler}match[TRUE]] %>\\n\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003CfromHistoryList>> current-tiddler={{{ [list\u003CfromStoryList>zth{$:/state/dragging!!starting-from-index}] }}}/>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% endif %>\\n\u003C/$vars>\\n\\\\end\\n\\\\procedure tiddlyflex-bottom-drop-actions()\\n\u003C$action-setfield $tiddler=\\\"$:/state/drag-handled\\\" text=\\\"yes\\\"/>\\n\u003C$vars prefix=\\\"[[\\\" suffix=\\\"]]\\\">\\n\\t\u003C%if [\u003CactionTiddler>removeprefix\u003Cprefix>removesuffix\u003Csuffix>] %>\\n\\t\\t\u003C$set name=\\\"actionTiddler\\\" value={{{ [\u003CactionTiddler>removeprefix\u003Cprefix>removesuffix\u003Csuffix>] }}}>\\n\\t\\t\\t\u003C\u003Ctiddlyflex-bottom-drop-actions-inner>>\\n\\t\\t\u003C/$set>\\n\\t\u003C% else %>\\n\\t\\t\u003C\u003Ctiddlyflex-bottom-drop-actions-inner>>\\n\\t\u003C% endif %>\\n\u003C/$vars>\\n\\\\end\\n\\\\procedure tiddlyflex-drag-start-actions()\\n\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\"\\n\\tnth={{{ [list\u003Ctv-story-list>allbefore\u003CcurrentTiddler>count[]] }}}\\n\\theight=\u003C\u003Ctv-selectednode-height>>\\n\\twidth=\u003C\u003Ctv-selectednode-width>>\\n\\tstart-river=\u003C\u003CtiddlyFlexColumn>>\\n\\tstarting-next-tiddler={{{ [list\u003Ctv-story-list>after\u003CcurrentTiddler>] }}}\\n\\tstarting-from-index={{{ [list\u003Ctv-story-list>allbefore\u003CcurrentTiddler>count[]] }}}\\n\\tstarting-from-story=\u003C\u003Ctv-story-list>>\\n/>\\n\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\"\\n\\tdrag-tiddler=\u003C\u003CcurrentTiddler>>\\n\\tnext-tiddler={{{ [list\u003Ctv-story-list>after\u003CcurrentTiddler>] }}}\\n\\tfrom-index={{{ [list\u003Ctv-story-list>allbefore\u003CcurrentTiddler>count[]] }}}\\n\\tfrom-story=\u003C\u003Ctv-story-list>>\\n\\tfrom-history=\u003C\u003Ctv-history-list>>\\n\\tis-focused-tiddler={{{ [\u003Ctv-history-list>get[current-tiddler]match\u003CcurrentTiddler>then[TRUE]] ~[[FALSE]] }}}\\n\\ttarget={{{ [list\u003Ctv-story-list>after\u003CcurrentTiddler>] }}}\\n/>\\n\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" text=\\\"yes\\\"/>\\n\u003C%if [\u003Cmodifier>!match[ctrl]] %>\\n\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003CcurrentTiddler>]\\\"/>\\n\u003C% else %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" copying=\\\"yes\\\"/>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-drag-end-actions()\\n\u003C%if [[$:/state/drag-handled]is[missing]] %>\\n\\t\u003C$let fromStoryList={{$:/state/dragging!!starting-from-story}} fromIndex={{$:/state/dragging!!starting-from-index}} listBeforeTiddler={{{ [list\u003CfromStoryList>zth\u003CfromIndex>] }}} prefix=\\\"[[\\\" suffix=\\\"]]\\\" actionTiddler={{{ [\u003CactionTiddler>removeprefix\u003Cprefix>removesuffix\u003Csuffix>] :else[\u003CactionTiddler>] }}}>\\n\\t\\t\u003C%if [\u003ClistBeforeTiddler>!is[blank]] %>\\n\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CfromStoryList>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003ClistBeforeTiddler>]\\\"/>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CfromStoryList>> $subfilter=\\\"[\u003CactionTiddler>]\\\"/>\\n\\t\\t\u003C% endif %>\\n\\t\\t\u003C$action-deletetiddler $tiddler=\\\"$:/state/drag-handled\\\"/>\\n\\t\\t\u003C$action-deletetiddler $tiddler=\\\"$:/state/dragging\\\"/>\\n\\t\u003C/$let>\\n\u003C% else %>\\n\\t\u003C$action-deletetiddler $tiddler=\\\"$:/state/drag-handled\\\"/>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-story-droppable-drop-actions()\\n\u003C$action-setfield $tiddler=\\\"$:/state/drag-handled\\\" text=\\\"yes\\\"/>\\n\u003C$vars prefix=\\\"[[\\\" suffix=\\\"]]\\\">\\n\\t\u003C%if [\u003CactionTiddler>removeprefix\u003Cprefix>removesuffix\u003Csuffix>] %>\\n\\t\\t\u003C$set name=\\\"actionTiddler\\\" value={{{ [\u003CactionTiddler>removeprefix\u003Cprefix>removesuffix\u003Csuffix>] }}}>\\n\\t\\t\\t\u003C%if [{$:/config/tiddlyflex/story-river/filter}match[yes]] +[subfilter\u003Ctdff.tiddlyflex-story-river-filter>is[blank]] %>\\n\\t\\t\\t\\t\u003C$set name=\\\"firstStoryTiddler\\\" value={{{ [list\u003Ctv-story-list>nth[1]] }}}>\\n\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003CfirstStoryTiddler>]\\\"/>\\n\\t\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\u003C% elseif [{$:/config/tiddlyflex/story-river/filter}match[yes]] %>\\n\\t\\t\\t\\t\u003C$let lastShownTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[last[]] }}} insertBeforeTiddler={{{ [list\u003Ctv-story-list>after\u003ClastShownTiddler>] }}}>\\n\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003CinsertBeforeTiddler>]\\\"/>\\n\\t\\t\\t\\t\u003C/$let>\\n\\t\\t\\t\u003C% else %>\\n\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"[\u003CactionTiddler>]\\\"/>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$set>\\n\\t\u003C% else %>\\n\\t\\t\u003C%if [{$:/config/tiddlyflex/story-river/filter}match[yes]] +[subfilter\u003Ctdff.tiddlyflex-story-river-filter>is[blank]] %>\\n\\t\\t\\t\u003C$set name=\\\"firstStoryTiddler\\\" value={{{ [list\u003Ctv-story-list>nth[1]] }}}>\\n\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003CfirstStoryTiddler>]\\\"/>\\n\\t\\t\\t\u003C/$set>\\n\\t\\t\u003C% elseif [{$:/config/tiddlyflex/story-river/filter}match[yes]] %>\\n\\t\\t\\t\u003C$let lastShownTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[last[]] }}} insertBeforeTiddler={{{ [list\u003Ctv-story-list>after\u003ClastShownTiddler>] }}}>\\n\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003CinsertBeforeTiddler>]\\\"/>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"[\u003CactionTiddler>]\\\"/>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% endif %>\\n\u003C/$vars>\\n\\\\end\\n\\\\procedure tiddlyflex-story-droppable-dragenter-actions()\\n\u003C%if [[$:/state/dragging]get[dragenter-count]] %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" target=\\\"\\\" starting-next-tiddler=\\\"\\\" copying=\\\"\\\"/>\\n\u003C% else %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" dragenter-count=\\\"1\\\"/>\\n\u003C% endif %>\\n\\\\end\"},\"$:/plugins/BTC/TiddlyFlex/globals/interaction\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/globals/interaction\",\"tags\":\"$:/tags/Global\",\"text\":\"\\\\procedure tiddlyflex-tm-message-navigator(actions)\\n\u003C$navigator story=\u003C\u003Ctv-story-list>> history=\u003C\u003Ctv-history-list>> openLinkFromInsideRiver=\u003C\u003CopenLinkFromInsideRiver>> openLinkFromOutsideRiver=\u003C\u003CopenLinkFromOutsideRiver>> relinkOnRename=\u003C\u003CrelinkOnRename>>>\\n\\t\u003C\u003Cactions>>\\n\u003C/$navigator>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-message-navigator-outside(actions)\\n\u003C$navigator story={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] :map[addprefix[$:/StoryList-]] }}} history={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] :map[addprefix[$:/HistoryList-]] }}} openLinkFromInsideRiver=\u003C\u003CopenLinkFromInsideRiver>> openLinkFromOutsideRiver=\u003C\u003CopenLinkFromOutsideRiver>> relinkOnRename=\u003C\u003CrelinkOnRename>>>\\n\\t\u003C\u003Cactions>>\\n\u003C/$navigator>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-message-actions(message,exclude)\\n\u003C$let\\n\\tnames-event={{{ [enlist\u003Clist-event>] -[enlist\u003Cexclude>] :map:flat[addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}\\n\\tnames-event-paramObject={{{ [enlist\u003Clist-event-paramObject>] -[enlist\u003Cexclude>] :map:flat[addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}\\n\\tvalues-event={{{ [enlist\u003Clist-event>] -[enlist\u003Cexclude>] :map:flat[addprefix[event-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}\\n\\tvalues-event-paramObject={{{ [enlist\u003Clist-event-paramObject>] -[enlist\u003Cexclude>] :map:flat[addprefix[event-paramObject-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}>\\n\\t\u003C$action-log names-event=\u003C\u003Cnames-event>>/>\\n\\t\u003C$action-log values-event=\u003C\u003Cvalues-event>>/>\\n\\t\u003C$action-log names-event-paramObject=\u003C\u003Cnames-event-paramObject>>/>\\n\\t\u003C$action-log values-event-paramObject=\u003C\u003Cvalues-event-paramObject>>/>\\n\\t\u003C%if [enlist\u003Cexclude>match[tiddlerTitle]] %>\\n\\t\\t\u003C$action-sendmessage $message=\u003C\u003Cmessage>> $param={{{ [\u003Cevent-param>!is[blank]!match[]] }}} $names={{{ [enlist\u003Cnames-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Cnames-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}} $values={{{ [enlist\u003Cvalues-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Cvalues-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}/>\\n\\t\u003C% else %>\\n\\t\\t\u003C$action-sendmessage $message=\u003C\u003Cmessage>> $param={{{ [\u003Cevent-param>!is[blank]!match[]] ~[\u003Cevent-tiddlerTitle>] }}} $names={{{ [enlist\u003Cnames-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Cnames-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}} $values={{{ [enlist\u003Cvalues-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Cvalues-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}/>\\n\\t\u003C% endif %>\\n\u003C/$let>\\n\\\\end\\n\\n\\\\procedure tiddlyflex-tm-cancel-tiddler-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-cancel-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-close-all-tiddlers-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-close-all-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-close-other-tiddlers-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-close-other-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-close-tiddler-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-close-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-delete-tiddler-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-delete-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-edit-tiddler-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-edit-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-fold-all-tiddlers-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-fold-all-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-fold-other-tiddlers-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-fold-other-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-fold-tiddler-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-fold-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-home-actions()\\n\\\\procedure actions() \u003C$action-log/>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-navigate-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-navigate-story-river-actions>>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-import-tiddlers-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-import-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-new-tiddler-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-new-tiddler \\\"tiddlerTitle type param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-perform-import-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-perform-import \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-save-tiddler-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-save-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-unfold-all-tiddlers-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-unfold-all-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\n\\\\procedure tiddlyflex-tm-cancel-tiddler-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-cancel-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-close-all-tiddlers-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-close-all-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-close-other-tiddlers-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-close-other-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-close-tiddler-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-close-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-delete-tiddler-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-delete-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-edit-tiddler-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-edit-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-fold-all-tiddlers-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-fold-all-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-fold-other-tiddlers-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-fold-other-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-fold-tiddler-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-fold-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-home-actions-outside()\\n\\\\procedure actions() \u003C$action-log/>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-navigate-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-navigate-story-river-actions>>\\n\u003C$set name=\\\"tiddlyFlexColumn\\\" value={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] }}}>\\n\\t\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\u003C/$set>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-import-tiddlers-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-import-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-new-tiddler-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-new-tiddler \\\"tiddlerTitle type param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-perform-import-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-perform-import \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-save-tiddler-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-save-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-unfold-all-tiddlers-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-unfold-all-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\"},\"$:/plugins/BTC/TiddlyFlex/globals/layout/functions\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/globals/layout/functions\",\"list-before\":\"\",\"tags\":\"$:/tags/Global\",\"text\":\"\\\\procedure tiddlyFlexPrefix() [\\n\\\\procedure tiddlyFlexSuffix() ]\\n\\n\\\\function tiddlyflex-layout() [{$:/layout}match[$:/plugins/BTC/TiddlyFlex/ui/Layout]]\\n\\n\\\\function tdff.tiddlyflex-exclude-columns() [[list]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$:/columns]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ :map:flat]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[addprefix]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$:/StoryList-]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ :map:flat]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[get]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[list]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[enlist-input]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[search:]] ${$(tiddlyflex-story-filter-fields)$}$ +[substitute[]] +[join[]] +[addsuffix[:]] ${$(tiddlyflex-story-filter-flags)$}$ +[substitute[]] +[join[]] +[addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[{$:/temp/search/input}]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[limit]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[1]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[else\u003CcurrentTiddler>removeprefix]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$:/StoryList-]addsuffix[$(tiddlyFlexSuffix)$]substitute[]] +[addprefix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ +]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[join]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[ ]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]]\\n\\n\\\\function tdff.tiddlyflex-enlist-columns() [[list]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$:/columns]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ :map]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[{$:/config/tiddlyflex/story-river/filter}match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>addprefix]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$:/StoryList-]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[get]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[list]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[enlist-input]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[search:]] ${$(tiddlyflex-story-filter-fields)$}$ +[substitute[]] +[join[]] +[addsuffix[:]] ${$(tiddlyflex-story-filter-flags)$}$ +[substitute[]] +[join[]] +[addsuffix[{$:/temp/search/input}]addsuffix[limit]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[1]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>else{$:/config/tiddlyflex/story-river/filter}!match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ +]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[!match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]] +[addprefix[$(tiddlyFlexPrefix)$]substitute[]]\\n\\n\\\\function tdff.tiddlyflex-enlist-columns-first() [[list]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$:/columns]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ :map]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[{$:/config/tiddlyflex/story-river/filter}match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>addprefix]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$:/StoryList-]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[get]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[list]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[enlist-input]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[search:]] ${$(tiddlyflex-story-filter-fields)$}$ +[substitute[]] +[join[]] +[addsuffix[:]] ${$(tiddlyflex-story-filter-flags)$}$ +[substitute[]] +[join[]] +[addsuffix[{$:/temp/search/input}]addsuffix[limit]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[1]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>else{$:/config/tiddlyflex/story-river/filter}!match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ +]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[!match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ +]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[first]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]] +[addprefix[$(tiddlyFlexPrefix)$]substitute[]]\\n\\n\\\\function tiddlyflex-story-filter-fields() [fields[]] :intersection[[$:/config/tiddlyflex/story-river/filter/fields]get[text]!is[blank]!match[]split[,]] +[join[,]] ~[[*]]\\n\\n\\\\function tiddlyflex-story-filter-flags() [[$:/config/tiddlyflex/story-river/filter/flags]get[text]!is[blank]!match[]] ~[[words]]\\n\\n\\\\function tdff.tiddlyflex-story-river-filter-no-draft() [[list]addsuffix[\u003Ctv-story-list>]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ ]addsuffix[:filter]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[{$:/config/tiddlyflex/story-river/filter}match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>!is]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[draft]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[search:]] ${$(tiddlyflex-story-filter-fields)$}$ +[substitute[]] +[join[]] +[addsuffix[:]] ${$(tiddlyflex-story-filter-flags)$}$ +[substitute[]] +[join[]] +[addsuffix[{$:/temp/search/input}]] +[addsuffix[else{$:/config/tiddlyflex/story-river/filter}!match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>]] +[addprefix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]]\\n\\n\\\\function tdff.tiddlyflex-story-river-filter() [[list]addsuffix[\u003Ctv-story-list>]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ ]addsuffix[:filter]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[{$:/config/tiddlyflex/story-river/filter}match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>]addsuffix[search:]] ${$(tiddlyflex-story-filter-fields)$}$ +[substitute[]] +[join[]] +[addsuffix[:]] ${$(tiddlyflex-story-filter-flags)$}$ +[substitute[]] +[join[]] +[addsuffix[{$:/temp/search/input}]] +[addsuffix[else{$:/config/tiddlyflex/story-river/filter}!match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>]] +[addprefix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]]\"},\"$:/plugins/BTC/TiddlyFlex/globals/navigation\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/globals/navigation\",\"tags\":\"$:/tags/Global\",\"text\":\"\\\\define tiddlyflex-navigate-story-river-actions-selector()\\n.tc-tiddlyflex-story-river-$(tiddlyFlexColumn)$ [data-tiddler-title=\\\"$(navigateToCSSEscaped)$\\\"]\\n\\\\end\\n\\\\function tiddlyflex-suppress-navigation() [\u003Cmodifier>match[ctrl]then[true]] [\u003Cmodifier>match[meta]then[true]] +[match[true]] ~false +[limit[1]]\\n\\\\function edit-missing-tiddler() [{$:/config/tiddlyflex/navigation/edit-missing-tiddlers}match[yes]then\u003Cevent-navigateTo>!is[shadow]is[missing]]\\n\\\\procedure tiddlyflex-navigate-story-river-actions-navigate()\\n\u003C$action-sendmessage $message=\\\"tm-navigate\\\" navigateTo=\u003C\u003Cevent-navigateTo>> navigateSuppressNavigation={{{ [function[tiddlyflex-supress-navigation]] }}} navigateFromTitle={{{ [\u003Cevent-navigateFromTitle>!is[blank]!match[]] ~[\u003CtiddlyFlexColumn>addprefix[$:/HistoryList-]get[current-tiddler]] }}}/>\\n\\\\end\\n\\\\procedure tiddlyflex-navigate-story-river-actions-inner-inner()\\n\u003C$let tv-story-list={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>] }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\t\u003C%if [[$:/columns]!contains\u003CtiddlyFlexColumn>] %>\\n\\t\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"[\u003CtiddlyFlexColumn>]\\\"/>\\n\\t\u003C% endif %>\\n\\t\u003C$navigator story=\u003C\u003Ctv-story-list>> history=\u003C\u003Ctv-history-list>> openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-navigate>>\\n\\t\\t\u003C%if [function[edit-missing-tiddler]] %>\\n\\t\\t\\t\u003C$action-sendmessage $message=\\\"tm-edit-tiddler\\\" $param=\u003C\u003Cevent-navigateTo>> $names={{{ [enlist\u003Clist-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}} $values={{{ [enlist\u003Clist-event>addprefix[event-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix[event-paramObject-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}/>\\n\\t\\t\u003C% endif %>\\n\\t\u003C/$navigator>\\n\u003C/$let>\\n\\\\end\\n\\\\procedure tiddlyflex-navigate-story-river-actions-inner()\\n\u003C%if [\u003Cmodifier>match[shift]] %>\\n\\t\u003C$set name=\\\"tiddlyFlexColumn\\\" value={{{ [\u003CtiddlyFlexColumn>add[1]] }}}>\\n\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-inner-inner>>\\n\\t\u003C/$set>\\n\u003C% elseif [\u003Cmodifier>match[alt]] %>\\n\\t\u003C$set name=\\\"tiddlyFlexColumn\\\" value={{{ [\u003CtiddlyFlexColumn>!match[1]subtract[1]] ~1 }}}>\\n\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-inner-inner>>\\n\\t\u003C/$set>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-navigate-story-river-actions()\\n\\\\function tiddlyflex-no-shift-alt() [\u003Cmodifier>!match[shift]then\u003Cmodifier>!match[alt]]\\n\u003C%if [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] +[addprefix[$:/StoryList-]] +[enlist-input[]] +[contains\u003Cevent-navigateTo>] %>\\n\\t\u003C%if [function[tiddlyflex-no-shift-alt]] %>\\n\\t\\t\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\t\\t\\t\u003C$let tv-story-list={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>] }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CtiddlyFlexColumn>] }}} navigateToCSSEscaped={{{ [\u003Cevent-navigateTo>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C%if [\u003Ctv-story-list>contains\u003Cevent-navigateTo>] %>\\n\\t\\t\\t\\t\\t\u003C%if [\u003Cmodifier>!match[ctrl]then\u003Cmodifier>!match[meta]] %>\\n\\t\\t\\t\\t\\t\\t\u003C$action-sendmessage $message=\\\"tm-scroll\\\" selector=\u003C\u003Ctiddlyflex-navigate-story-river-actions-selector>>/>\\n\\t\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\\t\\t\u003C%if [function[edit-missing-tiddler]] %>\\n\\t\\t\\t\\t\\t\\t\u003C$navigator story=\u003C\u003Ctv-story-list>> history=\u003C\u003Ctv-history-list>> openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\\t\\t\\t\\t\\t\u003C$navigator story={{{ [\u003CtiddlyFlexColumn>addprefix[$:/StoryList-]] }}} history={{{ [\u003CtiddlyFlexColumn>addprefix[$:/HistoryList-]] }}} openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-navigate>>\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C$action-sendmessage $message=\\\"tm-edit-tiddler\\\" $param=\u003C\u003Cevent-navigateTo>> $names={{{ [enlist\u003Clist-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}} $values={{{ [enlist\u003Clist-event>addprefix[event-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix[event-paramObject-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}/>\\n\\t\\t\\t\\t\\t\\t\\t\u003C/$navigator>\\n\\t\\t\\t\\t\\t\\t\u003C/$navigator>\\n\\t\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C/$list>\\n\\t\u003C% else %>\\n\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-inner>>\\n\\t\u003C% endif %>\\n\u003C% else %>\\n\\t\u003C%if [function[tiddlyflex-no-shift-alt]] %>\\n\\t\\t\u003C%if [function[edit-missing-tiddler]] %>\\n\\t\\t\\t\u003C$navigator story={{{ [\u003CtiddlyFlexColumn>addprefix[$:/StoryList-]] }}} history={{{ [\u003CtiddlyFlexColumn>addprefix[$:/HistoryList-]] }}} openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-navigate>>\\n\\t\\t\\t\\t\u003C$action-sendmessage $message=\\\"tm-edit-tiddler\\\" $param=\u003C\u003Cevent-navigateTo>> $names={{{ [enlist\u003Clist-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}} $values={{{ [enlist\u003Clist-event>addprefix[event-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix[event-paramObject-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}/>\\n\\t\\t\\t\u003C/$navigator>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$navigator story={{{ [\u003CtiddlyFlexColumn>addprefix[$:/StoryList-]] }}} history={{{ [\u003CtiddlyFlexColumn>addprefix[$:/HistoryList-]] }}} openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-navigate>>\\n\\t\\t\\t\u003C/$navigator>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% else %>\\n\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-inner>>\\n\\t\u003C% endif %>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-cancel-draft-tiddler-actions-draft-of-not-is-missing()\\n\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>!match\u003CtiddlyFlexColumn>]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\t\u003C$set name=\\\"tv-story-list\\\" value={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>!match[$:/StoryList-]] ~$:/StoryList-1 }}}>\\n\\t\\t\u003C%if [\u003Ctv-story-list>contains\u003CcurrentTiddler>] %>\\n\\t\\t\\t\u003C$set name=\\\"index\\\" value={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[allbefore\u003CcurrentTiddler>add[1]] }}}>\\n\\t\\t\\t\\t\u003C$let nextTiddler={{{ [\u003Ctdff.tiddlyflex-story-river-filter>] +[zth\u003Cindex>] }}} viewTiddler={{{ [\u003CcurrentTiddler>get[draft.of]] }}}>\\n\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CviewTiddler>,\u003CnextTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003CcurrentTiddler>]\\\"/>\\n\\t\\t\\t\\t\u003C/$let>\\n\\t\\t\\t\u003C/$set>\\n\\t\\t\u003C% endif %>\\n\\t\u003C/$set>\\n\u003C/$list>\\n\u003C\u003Cdelete-edittemplate-state-tiddlers>>\\n\u003C$navigator story={{{ [\u003CtiddlyFlexColumn>addprefix[$:/StoryList-]] }}} history={{{ [\u003CtiddlyFlexColumn>addprefix[$:/HistoryList-]] }}} openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\u003C$action-sendmessage $message=\\\"tm-cancel-tiddler\\\" $names={{{ [enlist\u003Clist-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}} $values={{{ [enlist\u003Clist-event>addprefix[event-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix[event-paramObject-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}/>/>\\n\u003C/$navigator>\\n\\\\end\\n\\\\procedure tiddlyflex-cancel-draft-tiddler-actions()\\n\u003C%if [\u003CcurrentTiddler>get[draft.of]!is[shadow]is[missing]] %>\\n\\t\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>!match\u003CtiddlyFlexColumn>]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\t\\t\u003C$set name=\\\"tv-story-list\\\" value={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>!match[$:/StoryList-]] ~$:/StoryList-1 }}}>\\n\\t\\t\\t\u003C$list filter=\\\"[\u003Ctv-story-list>contains\u003CcurrentTiddler>]\\\" variable=\\\"ignore\\\">\\n\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003CcurrentTiddler>]\\\"/>\\n\\t\\t\\t\u003C/$list>\\n\\t\\t\u003C/$set>\\n\\t\u003C/$list>\\n\\t\u003C\u003Cdelete-edittemplate-state-tiddlers>>\\n\\t\u003C$let scrollTiddler={{{ [\u003Ctdff.tiddlyflex-story-river-filter>] +[after\u003CcurrentTiddler>] ~[\u003Ctdff.tiddlyflex-story-river-filter>before\u003CcurrentTiddler>] }}}>\\n\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CscrollTiddler>>/>\\n\\t\\t\u003C$action-sendmessage $message=\\\"tm-cancel-tiddler\\\" $names={{{ [enlist\u003Clist-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}} $values={{{ [enlist\u003Clist-event>addprefix[event-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix[event-paramObject-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}/>/>\\n\\t\u003C/$let>\\n\u003C% else %>\\n\\t\u003C\u003Ctiddlyflex-cancel-draft-tiddler-actions-draft-of-not-is-missing>>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-delete-draft-tiddler-actions()\\n\u003C$let deleteTiddlerViewMode={{{ [\u003CcurrentTiddler>get[draft.of]] }}} deleteTiddlerEditMode=\u003C\u003CcurrentTiddler>>>\\n\\t\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>!match\u003CtiddlyFlexColumn>]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\t\\t\u003C$set name=\\\"tv-story-list\\\" value={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>!match[$:/StoryList-1]] ~[[$:/StoryList]] }}}>\\n\\t\\t\\t\u003C%if [\u003Ctv-story-list>contains\u003CdeleteTiddlerViewMode>] %>\\n\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003CdeleteTiddlerViewMode>]\\\"/>\\n\\t\\t\\t\u003C% elseif [\u003Ctv-story-list>contains\u003CdeleteTiddlerEditMode>] %>\\n\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003CdeleteTiddlerEditMode>]\\\"/>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$set>\\n\\t\u003C/$list>\\n\u003C/$let>\\n\u003C\u003Cdelete-edittemplate-state-tiddlers>>\\n\u003C$let scrollTiddler={{{ [\u003Ctdff.tiddlyflex-story-river-filter>] +[after\u003CcurrentTiddler>] ~[\u003Ctdff.tiddlyflex-story-river-filter>before\u003CcurrentTiddler>] }}}>\\n\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CscrollTiddler>>/>\\n\\t\u003C$action-sendmessage $message=\\\"tm-delete-tiddler\\\" $names={{{ [enlist\u003Clist-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}} $values={{{ [enlist\u003Clist-event>addprefix[event-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix[event-paramObject-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}/>/>\\n\u003C/$let>\\n\\\\end\"},\"$:/plugins/BTC/TiddlyFlex/icons/drag-grip\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/icons/drag-grip\",\"text\":\"\u003Csvg width=\\\"1rem\\\" height=\\\"1rem\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" class=\\\"lucide lucide-grip\\\">\u003Ccircle cx=\\\"12\\\" cy=\\\"5\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"19\\\" cy=\\\"5\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"5\\\" cy=\\\"5\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"19\\\" cy=\\\"12\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"5\\\" cy=\\\"12\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"12\\\" cy=\\\"19\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"19\\\" cy=\\\"19\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"5\\\" cy=\\\"19\\\" r=\\\"1\\\"/>\u003C/svg>\"},\"$:/plugins/BTC/TiddlyFlex/icons/feather\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/icons/feather\",\"text\":\"\u003Csvg width=\\\"1rem\\\" height=\\\"1rem\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" class=\\\"feather feather-feather\\\">\u003Cpath d=\\\"M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z\\\">\u003C/path>\u003Cline x1=\\\"16\\\" y1=\\\"8\\\" x2=\\\"2\\\" y2=\\\"22\\\">\u003C/line>\u003Cline x1=\\\"17.5\\\" y1=\\\"15\\\" x2=\\\"9\\\" y2=\\\"15\\\">\u003C/line>\u003C/svg>\"},\"$:/plugins/BTC/TiddlyFlex/icons/filter\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/icons/filter\",\"text\":\"\u003Csvg width=\\\"1rem\\\" height=\\\"1rem\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" class=\\\"lucide lucide-filter\\\">\u003Cpolygon points=\\\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\\\"/>\u003C/svg>\"},\"$:/plugins/BTC/TiddlyFlex/icons/layout\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/icons/layout\",\"text\":\"\u003Csvg width=\\\"1rem\\\" height=\\\"1rem\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" class=\\\"lucide lucide-layout-dashboard\\\">\u003Crect width=\\\"7\\\" height=\\\"9\\\" x=\\\"3\\\" y=\\\"3\\\" rx=\\\"1\\\"/>\u003Crect width=\\\"7\\\" height=\\\"5\\\" x=\\\"14\\\" y=\\\"3\\\" rx=\\\"1\\\"/>\u003Crect width=\\\"7\\\" height=\\\"9\\\" x=\\\"14\\\" y=\\\"12\\\" rx=\\\"1\\\"/>\u003Crect width=\\\"7\\\" height=\\\"5\\\" x=\\\"3\\\" y=\\\"16\\\" rx=\\\"1\\\"/>\u003C/svg>\"},\"$:/plugins/BTC/TiddlyFlex/license\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/license\",\"text\":\"!!! This plugin is distributed under MIT License\\n\\n```\\n\\nMIT License\\n\\nCopyright (c) 2024 Simon Huber\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy\\nof this software and associated documentation files (the \\\"Software\\\"), to deal\\nin the Software without restriction, including without limitation the rights\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the Software is\\nfurnished to do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice shall be included in all\\ncopies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\\nSOFTWARE.\\n\\n```\\n\\n!!! Lucide icons are distributed under ISC License\\n\\n```\\nISC License\\n\\nCopyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2022.\\n\\nPermission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\\n\\n```\"},\"$:/plugins/BTC/TiddlyFlex/privates/navigation\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/privates/navigation\",\"text\":\"\\\\procedure tiddlyflex-focus-flexcontainer() \u003C$action-sendmessage $message=\\\"tm-focus-selector\\\" $param=\\\".tc-tiddlyflex-container\\\" preventScroll=\\\"true\\\"/>\\n\\\\procedure tiddlyflex-keyboard-navigator(actions)\\n\u003C$let currentColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] }}} tv-story-list={{{ [[$:/StoryList-]addsuffix\u003CcurrentColumn>!match[$:/StoryList-]] ~[[$:/StoryList-1]] }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CcurrentColumn>!match[$:/HistoryList-]] ~[[$:/HistoryList-1]] }}} currentTiddler={{{ [\u003Ctv-history-list>get[current-tiddler]] }}}>\\n\\t\u003C$navigator story=\u003C\u003Ctv-story-list>> history=\u003C\u003Ctv-history-list>> openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\u003C\u003Cactions>>\\n\\t\u003C/$navigator>\\n\u003C/$let>\\n\\\\end\\n\\\\procedure tiddlyflex-simple-keyboard-navigator()\\n\u003C$navigator story={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] :map[addprefix[$:/StoryList-]] }}} history={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] :map[addprefix[$:/HistoryList-]] }}} openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\u003C\u003Cactions>>\\n\u003C/$navigator>\\n\\\\end\\n\\\\procedure tiddlyflex-cycle-columns-navigator-inner()\\n\u003C%if [\u003CnextTiddler>is[draft]] %>\\n\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\u003C% else %>\\n\\t\u003C\u003Ctiddlyflex-focus-flexcontainer>>\\n\u003C% endif %>\\n\u003C$navigator story=\u003C\u003Ctv-story-list>> history=\u003C\u003Ctv-history-list>> openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\u003C$action-navigate $to=\u003C\u003CnextTiddler>>/>\\n\u003C/$navigator>\\n\\\\end\\n\\\\define tiddlyflex-cycle-columns-navigator()\\n\u003C$action-setfield $tiddler=\\\"$:/columns\\\" current-column=\u003C\u003CnextColumn>>/>\\n\u003C$set name=\\\"currentHistoryListTiddler\\\" value={{{ [\u003ChistoryList>get[current-tiddler]] }}}>\\n\\t\u003C%if [\u003Ctv-story-list>contains\u003CcurrentHistoryListTiddler>] %>\\n\\t\\t\u003C%if [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[match\u003CcurrentHistoryListTiddler>] %>\\n\\t\\t\\t\u003C$let nextTiddler=\u003C\u003CcurrentHistoryListTiddler>> cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-cycle-columns-navigator-inner>>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$let nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[nth[1]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-cycle-columns-navigator-inner>>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% elseif [\u003Ctv-story-list>!contains\u003CcurrentHistoryListTiddler>] %>\\n\\t\\t\u003C$let nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[nth[1]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\\t\u003C\u003Ctiddlyflex-cycle-columns-navigator-inner>>\\n\\t\\t\u003C/$let>\\n\\t\u003C% endif %>\\n\u003C/$set>\\n\\\\end\\n\\\\procedure tiddlyflex-multi-column-keyboard-navigator()\\n\u003C$let\\n\\tcurrentColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] }}} \\n\\ttv-story-list={{{ [[$:/StoryList-]addsuffix\u003CcurrentColumn>!match[$:/StoryList-]] ~$:/StoryList-1 }}}\\n\\ttv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CcurrentColumn>!match[$:/HistoryList-]] ~$:/HistoryList-1 }}}\\n\\tfocusedTiddler={{{ [\u003Ctv-history-list>get[current-tiddler]] }}}\\n\\tnextStoryCounter={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>after\u003CcurrentColumn>] }}}\\n\\tnextStoryList={{{ [\u003Ctv-story-list>!match[$:/StoryList]removesuffix\u003CcurrentColumn>addsuffix\u003CnextStoryCounter>] ~[[$:/StoryList-2]] }}}\\n\\tnextHistoryList={{{ [\u003Ctv-history-list>!match[$:/HistoryList]removesuffix\u003CcurrentColumn>addsuffix\u003CnextStoryCounter>] ~[[$:/HistoryList-2]] }}}\\n\\tfirstNextStoryTiddler={{{ [list\u003CnextStoryList>first[]] }}}\\n\\tpreviousStoryCounter={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>before\u003CcurrentColumn>] }}}\\n\\tpreviousStoryList={{{ [\u003Ctv-story-list>!match[$:/StoryList-]removesuffix\u003CcurrentColumn>addsuffix\u003CpreviousStoryCounter>] ~$:/StoryList-1 }}}\\n\\tpreviousHistoryList={{{ [\u003Ctv-history-list>!match[$:/HistoryList-]removesuffix\u003CcurrentColumn>addsuffix\u003CpreviousStoryCounter>] ~[[$:/HistoryList]] }}}\\n\\tfirstPreviousStoryTiddler={{{ [list\u003CpreviousStoryList>first[]] }}}\\n>\\n\\t\u003C\u003Cactions>>\\n\u003C/$let>\\n\\\\end\"},\"$:/plugins/BTC/TiddlyFlex/privates/selectors\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/privates/selectors\",\"text\":\"\\\\define tiddlyflex-tiddler-scroll-selector()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n.tc-tiddlyflex-story-river-\u003C\u003CcurrentColumn>> .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"]\\n\\\\end\\n\\\\define tiddlyflex-draft-focus-selector()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n.tc-tiddlyflex-story-river-\u003C\u003CcurrentColumn>> .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"] input.tc-titlebar.tc-edit-texteditor\\n\\\\end\\n\\\\procedure tiddlyflex-focus-draft-tiddler()\\n\u003C$wikify name=\\\"focusSelector\\\" text=\u003C\u003Ctiddlyflex-draft-focus-selector>>>\\n\\t\u003C$action-sendmessage $message=\\\"tm-focus-selector\\\" $param=\u003C\u003CfocusSelector>> preventScroll=\\\"true\\\"/>\\n\u003C/$wikify>\\n\\\\end\\n\\\\procedure tiddlyflex-scroll-to-tiddler()\\n\u003C$wikify name=\\\"scrollSelector\\\" text=\u003C\u003Ctiddlyflex-tiddler-scroll-selector>>>\\n\\t\u003C$action-sendmessage $message=\\\"tm-scroll\\\" selector=\u003C\u003CscrollSelector>>/>\\n\u003C/$wikify>\\n\\\\end\"},\"$:/plugins/BTC/TiddlyFlex/readme\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/readme\",\"text\":\"!!! ~TiddlyFlex\\n\\nThis ''plugin'' provides an alternative [ext[Flexbox|https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox]] Layout for ~TiddlyWiki5\"},\"$:/core/ui/Buttons/control-panel\":{\"title\":\"$:/core/ui/Buttons/control-panel\",\"tags\":\"$:/tags/PageControls\",\"caption\":\"{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}\",\"description\":\"{{$:/language/Buttons/ControlPanel/Hint}}\",\"text\":\"\\\\whitespace trim\\n\\\\define control-panel-button(class)\\n\\\\whitespace trim\\n\u003C$button to=\\\"$:/ControlPanel\\\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\\\"\\\"\\\"$(tv-config-toolbar-class)$ $class$\\\"\\\"\\\">\\n\u003C$list filter=\\\"[\u003Ctv-config-toolbar-icons>match[yes]]\\\">\\n{{$:/core/images/options-button}}\\n\u003C/$list>\\n\u003C$list filter=\\\"[\u003Ctv-config-toolbar-text>match[yes]]\\\">\\n\u003Cspan class=\\\"tc-btn-text\\\">\u003C$text text={{$:/language/Buttons/ControlPanel/Caption}}/>\u003C/span>\\n\u003C/$list>\\n\u003C/$button>\\n\\\\end\\n\\n\u003C%if [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] +[addprefix[$:/StoryList-]] +[enlist-input[]] +[contains[$:/ControlPanel]] %>\\n\\t\u003C\u003Ccontrol-panel-button \\\"tc-selected\\\">>\\n\u003C% else %>\\n\\t\u003C\u003Ccontrol-panel-button>>\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/add-column\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/add-column\",\"tags\":\"$:/tags/TopRightBar\",\"list-before\":\"$:/core/ui/TopBar/menu\",\"text\":\"\\\\whitespace trim\\n\u003C$let columns={{{ [list[$:/columns]count[]!match[0]] ~1 }}} nextColumn={{{ [\u003Ccolumns>add[1]] }}}>\\n\\t\u003C$button class=\\\"tc-btn-invisible\\\">\\n\\t\\t\u003C%if [list[$:/columns]count[]match[0]] %>\\n\\t\\t\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"1\\\"/>\\n\\t\\t\u003C% endif %>\\n\\t\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"[\u003CnextColumn>]\\\"/>\\n\\t\\t{{$:/core/images/plus-button}}\\n\\t\u003C/$button>\\n\u003C/$let>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/dragging\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/dragging\",\"tags\":\"$:/tags/TopRightBar\",\"list-before\":\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/remove-column\",\"text\":\"\\\\whitespace trim\\n\u003C$button class={{{ tc-btn-invisible [{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}match[yes]then[tc-selected]] +[join[ ]] }}}>\\n\\t{{$:/plugins/BTC/TiddlyFlex/icons/drag-grip}}\\n\\t\u003C%if [{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}match[no]] %>\\n\\t\\t\u003C$action-setfield $tiddler=\\\"$:/config/tiddlyflex/story-river/tiddler/drag-enabled\\\" text=\\\"yes\\\"/>\\n\\t\u003C% else %>\\n\\t\\t\u003C$action-deletetiddler $tiddler=\\\"$:/config/tiddlyflex/story-river/tiddler/drag-enabled\\\"/>\\n\\t\u003C% endif %>\\n\u003C/$button>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/filter\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/filter\",\"tags\":\"$:/tags/TopRightBar\",\"list-before\":\"\",\"text\":\"\u003C$button class={{{ [{$:/config/tiddlyflex/story-river/filter}match[yes]then[tc-selected]] tc-btn-invisible +[join[ ]] }}}>\\n\\t\u003C%if [{$:/config/tiddlyflex/story-river/filter}match[yes]] %>\\n\\t\\t\u003C$action-deletetiddler $tiddler=\\\"$:/config/tiddlyflex/story-river/filter\\\"/>\\n\\t\u003C% else %>\\n\\t\\t\u003C$action-setfield $tiddler=\\\"$:/config/tiddlyflex/story-river/filter\\\" text=\\\"yes\\\"/>\\n\\t\u003C% endif %>\\n\\t{{$:/plugins/BTC/TiddlyFlex/icons/filter}}\\n\u003C/$button>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/remove-column\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/remove-column\",\"tags\":\"$:/tags/TopRightBar\",\"list-before\":\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/add-column\",\"text\":\"\\\\procedure remove-column-actions()\\n\u003C$set name=\\\"columnCount\\\" value={{{ [list[$:/columns]count[]] }}}>\\n\\t\u003C$list filter=\\\"[[$:/columns]get[current-column]match\u003CcolumnCount>]\\\">\\n\\t\\t\u003C$action-setfield $tiddler=\\\"$:/columns\\\" current-column={{{ [\u003CcolumnCount>subtract[1]!match[0]] ~1 }}}/>\\n\\t\u003C/$list>\\n\\t\u003C$list filter=\\\"[\u003CcolumnCount>!match[1]]\\\">\\n\\t\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"-[\u003CcolumnCount>]\\\"/>\\n\\t\u003C/$list>\\n\u003C/$set>\\n\\\\end\\n\\\\whitespace trim\\n\u003C$let columns={{{ [list[$:/columns]count[]] ~1 }}}>\\n\\t\u003C$button class=\\\"tc-btn-invisible\\\" actions=\u003C\u003Cremove-column-actions>>>\\n\\t\\t{{$:/core/images/minus-button}}\\n\\t\u003C/$button>\\n\u003C/$let>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Layout\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Layout\",\"tags\":\"$:/tags/Layout\",\"description\":\"A Flexbox Layout\",\"name\":\"~TiddlyFlex\",\"icon\":\"$:/plugins/BTC/TiddlyFlex/icons/layout\",\"code-body\":\"yes\",\"text\":\"\\\\whitespace trim\\n\\\\import [subfilter{$:/core/config/GlobalImportFilter}]\\n\\\\procedure tiddlyflex-hide-sidebar-actions() \u003C$action-setfield $tiddler=\\\"$:/state/sidebar\\\" text=\\\"no\\\"/>\\n\\\\procedure tdfp-tiddlyflex-story-river()\\n\u003C$list filter=\u003C\u003Ctdff.tiddlyflex-enlist-columns>> variable=\\\"tiddlyFlexColumn\\\">\\n\\t\u003C$set name=\\\"transclusion\\\" value=\u003C\u003CtiddlyFlexColumn>>>\\n\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-story-river-wrapper\\\">\\n\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-story-river-header\\\">\\n\\t\\t\\t\\t\u003C$set name=\\\"aboveStoryHeaderTag\\\" value={{{ [[$:/tags/AboveStoryHeader-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\t\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag\u003CaboveStoryHeaderTag>!is[draft]]\\\" variable=\\\"listItem\\\" storyview=\\\"pop\\\">\\n\\t\\t\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\\t\\t\\t\u003C/$list>\\n\\t\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\u003C/div>\\n\\t\\t\\t\u003C$transclude tiddler=\\\"$:/plugins/BTC/TiddlyFlex/ui/Templates/story\\\"/>\\n\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-story-river-footer\\\">\\n\\t\\t\\t\\t\u003C$set name=\\\"belowStoryFooterTag\\\" value={{{ [[$:/tags/BelowStoryFooter-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\t\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag\u003CbelowStoryFooterTag>!is[draft]]\\\" variable=\\\"listItem\\\" storyview=\\\"pop\\\">\\n\\t\\t\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\\t\\t\\t\u003C/$list>\\n\\t\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\u003C/div>\\n\\t\\t\u003C/div>\\n\\t\u003C/$set>\\n\u003C/$list>\\n\\\\end\\n\u003C$vars\\n\\ttv-config-toolbar-icons={{$:/config/Toolbar/Icons}}\\n\\ttv-config-toolbar-text={{$:/config/Toolbar/Text}}\\n\\ttv-config-toolbar-class={{$:/config/Toolbar/ButtonClass}}\\n\\ttv-enable-drag-and-drop={{$:/config/DragAndDrop/Enable}}\\n\\ttv-show-missing-links={{$:/config/MissingLinks}}\\n\\tstoryviewTitle={{$:/view}}\\n\\tlanguageTitle={{{ [{$:/language}get[name]] }}}>\\n\\t\u003Cdiv class={{{ [all[shadows+tiddlers]tag[$:/tags/ClassFilters/PageTemplate/TiddlyFlex]!is[draft]] :map:flat[subfilter{!!text}] tc-page-container tc-tiddlyflex-container [[tc-page-view-]addsuffix\u003CstoryviewTitle>] [[tc-language-]addsuffix\u003ClanguageTitle>] [{$:/state/sidebar}match[yes]then[tc-sidebar-shown]] :and[unique[]join[ ]] }}} tabindex=\\\"0\\\">\\n\\t\\t\u003C$eventcatcher selector=\\\".tc-tiddlyflex-sidebar-shown\\\" $click=\u003C\u003Ctiddlyflex-hide-sidebar-actions>> class=\\\"tc-tiddlyflex-sidebar-shown-eventcatcher\\\">\\n\\t\\t\\t\u003Cdiv class={{{ [{$:/state/sidebar}!match[no]then[tc-tiddlyflex-sidebar-hide tc-btn-invisible tc-tiddlyflex-sidebar-shown]] [{$:/state/sidebar}match[no]then[tc-tiddlyflex-sidebar-hide tc-btn-invisible tc-tiddlyflex-sidebar-hidden]] }}}/>\\n\\t\\t\u003C/$eventcatcher>\\n\\t\\t\u003C$messagecatcher\\n\\t\\t\\t$tm-cancel-tiddler=\u003C\u003Ctiddlyflex-tm-cancel-tiddler-actions-outside>>\\n\\t\\t\\t$tm-close-all-tiddlers=\u003C\u003Ctiddlyflex-tm-close-all-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-close-other-tiddlers=\u003C\u003Ctiddlyflex-tm-close-other-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-close-tiddler=\u003C\u003Ctiddlyflex-tm-close-tiddler-actions-outside>>\\n\\t\\t\\t$tm-delete-tiddler=\u003C\u003Ctiddlyflex-tm-delete-tiddler-actions-outside>>\\n\\t\\t\\t$tm-edit-tiddler=\u003C\u003Ctiddlyflex-tm-edit-tiddler-actions-outside>>\\n\\t\\t\\t$tm-fold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-all-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-fold-other-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-other-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-fold-tiddler=\u003C\u003Ctiddlyflex-tm-fold-tiddler-actions-outside>>\\n\\t\\t\\t$tm-home=\u003C\u003Ctiddlyflex-tm-home-actions-outside>>\\n\\t\\t\\t$tm-navigate=\u003C\u003Ctiddlyflex-tm-navigate-actions-outside>>\\n\\t\\t\\t$tm-new-tiddler=\u003C\u003Ctiddlyflex-tm-new-tiddler-actions-outside>>\\n\\t\\t\\t$tm-perform-import=\u003C\u003Ctiddlyflex-tm-perform-import-actions-outside>>\\n\\t\\t\\t$tm-save-tiddler=\u003C\u003Ctiddlyflex-tm-save-tiddler-actions-outside>>\\n\\t\\t\\t$tm-unfold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-unfold-all-tiddlers-actions-outside>>>\\n\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-header\\\">\\n\\t\\t\\t\\t\u003C$list filter=\\\"[{$:/status/RequireReloadDueToPluginChange}match[yes]then{$:/temp/HidePluginWarning}!match[yes]then[$:/plugins/BTC/TiddlyFlex/ui/Toolbars/PluginReloadWarning]] [all[shadows+tiddlers]tag[$:/tags/TopToolbar]!is[draft]]\\\" variable=\\\"listItem\\\" storyview=\\\"pop\\\">\\n\\t\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\\t\\t\u003C/$list>\\n\\t\\t\\t\u003C/div>\\n\\t\\t\u003C/$messagecatcher>\\n\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-main-wrapper\\\">\\n\\t\\t\\t\u003C$set name=\\\"excludeColumnsSubfilter\\\" value=\u003C\u003Ctiddlyflex-exclude-columns>>>\\n\\t\\t\\t\\t\u003C$messagecatcher\\n\\t\\t\\t\\t\\t$tm-cancel-tiddler=\u003C\u003Ctiddlyflex-tm-cancel-tiddler-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-close-all-tiddlers=\u003C\u003Ctiddlyflex-tm-close-all-tiddlers-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-close-other-tiddlers=\u003C\u003Ctiddlyflex-tm-close-other-tiddlers-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-close-tiddler=\u003C\u003Ctiddlyflex-tm-close-tiddler-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-delete-tiddler=\u003C\u003Ctiddlyflex-tm-delete-tiddler-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-edit-tiddler=\u003C\u003Ctiddlyflex-tm-edit-tiddler-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-fold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-all-tiddlers-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-fold-other-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-other-tiddlers-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-fold-tiddler=\u003C\u003Ctiddlyflex-tm-fold-tiddler-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-home=\u003C\u003Ctiddlyflex-tm-home-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-navigate=\u003C\u003Ctiddlyflex-tm-navigate-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-new-tiddler=\u003C\u003Ctiddlyflex-tm-new-tiddler-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-perform-import=\u003C\u003Ctiddlyflex-tm-perform-import-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-save-tiddler=\u003C\u003Ctiddlyflex-tm-save-tiddler-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-unfold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-unfold-all-tiddlers-actions-outside>>>\\n\\t\\t\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-leftbar\\\">\\n\\t\\t\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/LeftToolbar]!is[draft]]\\\" variable=\\\"listItem\\\" storyview=\\\"pop\\\">\\n\\t\\t\\t\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\\t\\t\\t\\t\u003C/$list>\\n\\t\\t\\t\\t\\t\u003C/div>\\n\\t\\t\\t\\t\u003C/$messagecatcher>\\n\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\u003Cmain class=\\\"tc-tiddlyflex-main\\\">\\n\\t\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-story-river-container\\\">\\n\\t\\t\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-story-river-container-inner\\\">\\n\\t\\t\\t\\t\\t\\t\u003C\u003Ctdfp-tiddlyflex-story-river>>\\n\\t\\t\\t\\t\\t\u003C/div>\\n\\t\\t\\t\\t\u003C/div>\\n\\t\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-sidebar\\\">\\n\\t\\t\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-sidebar-container\\\">\\n\\t\\t\\t\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-sidebar-container-inner\\\">\\n\\t\\t\\t\\t\\t\\t\\t\u003C$set name=\\\"excludeColumnsSubfilter\\\" value=\u003C\u003Ctiddlyflex-exclude-columns>>>\\n\\t\\t\\t\\t\\t\\t\\t\\t{{$:/plugins/BTC/TiddlyFlex/ui/Templates/sidebar}}\\n\\t\\t\\t\\t\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\\t\\t\\t\u003C/div>\\n\\t\\t\\t\\t\\t\u003C/div>\\n\\t\\t\\t\\t\u003C/div>\\n\\t\\t\\t\u003C/main>\\n\\t\\t\u003C/div>\\n\\t\\t\u003C$messagecatcher\\n\\t\\t\\t$tm-cancel-tiddler=\u003C\u003Ctiddlyflex-tm-cancel-tiddler-actions-outside>>\\n\\t\\t\\t$tm-close-all-tiddlers=\u003C\u003Ctiddlyflex-tm-close-all-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-close-other-tiddlers=\u003C\u003Ctiddlyflex-tm-close-other-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-close-tiddler=\u003C\u003Ctiddlyflex-tm-close-tiddler-actions-outside>>\\n\\t\\t\\t$tm-delete-tiddler=\u003C\u003Ctiddlyflex-tm-delete-tiddler-actions-outside>>\\n\\t\\t\\t$tm-edit-tiddler=\u003C\u003Ctiddlyflex-tm-edit-tiddler-actions-outside>>\\n\\t\\t\\t$tm-fold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-all-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-fold-other-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-other-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-fold-tiddler=\u003C\u003Ctiddlyflex-tm-fold-tiddler-actions-outside>>\\n\\t\\t\\t$tm-home=\u003C\u003Ctiddlyflex-tm-home-actions-outside>>\\n\\t\\t\\t$tm-navigate=\u003C\u003Ctiddlyflex-tm-navigate-actions-outside>>\\n\\t\\t\\t$tm-new-tiddler=\u003C\u003Ctiddlyflex-tm-new-tiddler-actions-outside>>\\n\\t\\t\\t$tm-perform-import=\u003C\u003Ctiddlyflex-tm-perform-import-actions-outside>>\\n\\t\\t\\t$tm-save-tiddler=\u003C\u003Ctiddlyflex-tm-save-tiddler-actions-outside>>\\n\\t\\t\\t$tm-unfold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-unfold-all-tiddlers-actions-outside>>>\\n\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-footer\\\">\\n\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/BottomToolbar]!is[draft]]\\\" variable=\\\"listItem\\\" storyview=\\\"pop\\\">\\n\\t\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\\t\\t\u003C/$list>\\n\\t\\t\\t\u003C/div>\\n\\t\\t\u003C/$messagecatcher>\\n\\t\u003C/div>\\n\u003C/$vars>\"},\"$:/core/ui/SideBar/Open\":{\"title\":\"$:/core/ui/SideBar/Open\",\"tags\":\"$:/tags/SideBar\",\"caption\":\"{{$:/language/SideBar/Open/Caption}}\",\"text\":\"\\\\whitespace trim\\n\\\\define lingo-base() $:/language/CloseAll/\\n\\n\\\\define drop-actions()\\n\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003CcurrentTiddler>]\\\"/>\\n\\\\end\\n\\n\\\\define placeholder()\\n\u003Cdiv class=\\\"tc-droppable-placeholder\\\"/>\\n\\\\end\\n\\n\\\\define droppable-item(button)\\n\\\\whitespace trim\\n\u003C$droppable actions=\u003C\u003Cdrop-actions>> enable=\u003C\u003Ctv-allow-drag-and-drop>> tag=\\\"div\\\">\\n\u003C\u003Cplaceholder>>\\n\u003Cdiv>\\n$button$\\n\u003C/div>\\n\u003C/$droppable>\\n\\\\end\\n\\n\\\\procedure tiddlyflex-sidebar-tab-open()\\n\u003Cdiv class=\\\"tc-sidebar-tab-open\\\">\\n\u003C$list filter=\\\"[list\u003Ctv-story-list>]\\\" history=\u003C\u003Ctv-history-list>> storyview=\\\"pop\\\">\\n\u003Cdiv class=\\\"tc-sidebar-tab-open-item\\\">\\n\u003C$macrocall $name=\\\"droppable-item\\\" button=\\\"\u003C$button message='tm-close-tiddler' tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class='tc-btn-invisible tc-btn-mini tc-small-gap-right'>{{$:/core/images/close-button}}\u003C/$button>\u003C$link/>\\\"/>\\n\u003C/div>\\n\u003C/$list>\\n\u003C$tiddler tiddler=\\\"\\\">\\n\u003Cdiv>\\n\u003C$macrocall $name=\\\"droppable-item\\\" button=\\\"\u003C$button message='tm-close-all-tiddlers' class='tc-btn-invisible tc-btn-mini'>\u003C\u003Clingo Button>>\u003C/$button>\\\"/>\\n\u003C/div>\\n\u003C/$tiddler>\\n\u003C/div>\\n\\\\end\\n\\n\u003C%if [function[tiddlyflex-layout]] %>\\n\\t\u003C$let currentColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[[$:/columns]get[current-column]] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] ~1 }}} tv-story-list={{{ [[$:/StoryList-]addsuffix\u003CcurrentColumn>] }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CcurrentColumn>] }}}>\\n\\t\\t\u003C\u003Ctiddlyflex-sidebar-tab-open>>\\n\\t\u003C/$let>\\n\u003C% else %>\\n\\t\u003C\u003Ctiddlyflex-sidebar-tab-open>>\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Templates/EditTemplate\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Templates/EditTemplate\",\"code-body\":\"yes\",\"text\":\"\\\\procedure delete-edittemplate-state-tiddlers()\\n\u003C$set name=\\\"safeNewFieldValueTiddlerPrefix\\\" value=\u003C\u003CnewFieldValueTiddlerPrefix>> emptyValue=\u003C\u003Cqualify \\\"$:/temp/NewFieldValue\\\">> >\\n\\t\u003C$action-deletetiddler $filter=\\\"[\u003CnewFieldNameTiddler>] [prefix[$:/temp/NewFieldValue]prefix\u003CsafeNewFieldValueTiddlerPrefix>] [\u003CnewFieldNameInputTiddler>] [\u003CnewFieldNameSelectionTiddler>] [\u003CnewTagNameTiddler>] [\u003CnewTagNameInputTiddler>] [\u003CnewTagNameSelectionTiddler>] [\u003CtypeInputTiddler>] [\u003CtypeSelectionTiddler>]\\\"/>\\n\u003C/$set>\\n\\\\end\\n\\n\\\\procedure save-tiddler-actions()\\n\\\\whitespace trim\\n\u003C$action-sendmessage $message=\\\"tm-add-tag\\\" $param={{{ [\u003CnewTagNameTiddler>get[text]] }}}/>\\n\u003C$action-sendmessage $message=\\\"tm-add-field\\\" $name={{{ [\u003CnewFieldNameTiddler>get[text]] }}} $value={{{ [\u003CnewFieldNameTiddler>get[text]] :map[subfilter\u003Cget-field-value-tiddler-filter>get[text]] }}}/>\\n\u003C\u003Cdelete-edittemplate-state-tiddlers>>\\n\u003C$action-sendmessage $message=\\\"tm-save-tiddler\\\"/>\\n\\\\end\\n\\n\\\\define cancel-delete-tiddler-actions(message)\\n\u003C%if [[$message$]match[delete]] %>\\n\\t\u003C\u003Ctiddlyflex-delete-draft-tiddler-actions>>\\n\u003C% elseif [[$message$]match[cancel]] %>\\n\\t\u003C\u003Ctiddlyflex-cancel-draft-tiddler-actions>>\\n\u003C% endif %>\\n\\\\end\\n\\n\\\\procedure get-field-value-tiddler-filter() [subfilter\u003Cget-field-editor-filter>sha256[16]addprefix[/]addprefix\u003CnewFieldValueTiddlerPrefix>]\\n\\\\procedure get-field-editor-filter() [\u003CnewFieldNameTiddler>get[text]else[]] :cascade[all[shadows+tiddlers]tag[$:/tags/FieldEditorFilter]!is[draft]get[text]] :and[!is[blank]else{$:/core/ui/EditTemplate/fieldEditor/default}]\\n\\n\\\\whitespace trim\\n\u003Cdiv\\n\\tdata-tiddler-title=\u003C\u003CcurrentTiddler>>\\n\\tdata-tags={{!!tags}}\\n\\tclass={{{ [all[shadows+tiddlers]tag[$:/tags/ClassFilters/TiddlerTemplate]!is[draft]] :map:flat[subfilter{!!text}] tc-tiddler-edit-frame [\u003CcurrentTiddler>is[tiddler]then[tc-tiddler-exists]] [\u003CcurrentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [\u003CcurrentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [\u003CcurrentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [\u003CcurrentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}\\n\\trole=\\\"region\\\"\\n\\taria-label={{$:/language/EditTemplate/Caption}}>\\n\\t\u003C$fieldmangler>\\n\\t\\t\u003C$draggable enable={{{ [{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}match[yes]then[$:/state/story-river/full-screen/]addsuffix\u003CcurrentTiddler>is[missing]then[yes]] ~[[no]] }}} tiddler=\u003C\u003CcurrentTiddler>> startactions=\u003C\u003Ctiddlyflex-drag-start-actions>> endactions=\u003C\u003Ctiddlyflex-drag-end-actions>> class=\\\"tc-tiddler-frame\\\">\\n\\t\\t\\t\u003C$vars\\n\\t\\t\\t\\tstoryTiddler=\u003C\u003CcurrentTiddler>>\\n\\t\\t\\t\\tnewTagNameTiddler=\u003C\u003Cqualify \\\"$:/temp/NewTagName\\\">>\\n\\t\\t\\t\\tnewFieldNameTiddler=\u003C\u003Cqualify \\\"$:/temp/NewFieldName\\\">>\\n\\t\\t\\t\\tnewFieldValueTiddlerPrefix=\u003C\u003Cqualify \\\"$:/temp/NewFieldValue\\\">>\\n\\t\\t\\t\\tnewFieldNameInputTiddler=\u003C\u003Cqualify \\\"$:/temp/NewFieldName/input\\\">>\\n\\t\\t\\t\\tnewFieldNameSelectionTiddler=\u003C\u003Cqualify \\\"$:/temp/NewFieldName/selected-item\\\">>\\n\\t\\t\\t\\tnewTagNameInputTiddler=\u003C\u003Cqualify \\\"$:/temp/NewTagName/input\\\">>\\n\\t\\t\\t\\tnewTagNameSelectionTiddler=\u003C\u003Cqualify \\\"$:/temp/NewTagName/selected-item\\\">>\\n\\t\\t\\t\\ttypeInputTiddler=\u003C\u003Cqualify \\\"$:/temp/Type/input\\\">>\\n\\t\\t\\t\\ttypeSelectionTiddler=\u003C\u003Cqualify \\\"$:/temp/Type/selected-item\\\">>>\\n\\t\\t\\t\\t\u003C$keyboard key=\\\"((cancel-edit-tiddler))\\\" actions=\u003C\u003Ccancel-delete-tiddler-actions \\\"cancel\\\">> tag=\\\"div\\\">\\n\\t\\t\\t\\t\\t\u003C$keyboard key=\\\"((save-tiddler))\\\" actions=\u003C\u003Csave-tiddler-actions>> tag=\\\"div\\\">\\n\\t\\t\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!is[draft]]\\\" variable=\\\"listItem\\\">\\n\\t\\t\\t\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\\t\\t\\t\\t\u003C/$list>\\n\\t\\t\\t\\t\\t\u003C/$keyboard>\\n\\t\\t\\t\\t\u003C/$keyboard>\\n\\t\\t\\t\u003C/$vars>\\n\\t\\t\\t\u003C% if [{$:/state/dragging}match[yes]then{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}match[yes]then[$:/state/story-river/full-screen/]addsuffix\u003CcurrentTiddler>is[missing]] %>\\n\\t\\t\\t\\t\u003C$droppable class=\\\"tc-tiddlyflex-droppable-top-half\\\" actions=\u003C\u003Ctiddlyflex-top-drop-actions>> dragenteractions=\u003C\u003Ctiddlyflex-top-dragenter-actions>>/>\\n\\t\\t\\t\\t\u003C$droppable class=\\\"tc-tiddlyflex-droppable-bottom-half\\\" actions=\u003C\u003Ctiddlyflex-bottom-drop-actions>> dragenteractions=\u003C\u003Ctiddlyflex-bottom-dragenter-actions>>/>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$draggable>\\n\\t\u003C/$fieldmangler>\\n\u003C/div>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Templates/ViewTemplate\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Templates/ViewTemplate\",\"code-body\":\"yes\",\"text\":\"\\\\whitespace trim\\n\\\\define folded-state()\\n$:/state/folded/$(currentTiddler)$\\n\\\\end\\n\\\\define cancel-delete-tiddler-actions(message) \u003C$action-sendmessage $message=\\\"tm-$message$-tiddler\\\"/>\\n\\\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!is[draft]] [all[shadows+tiddlers]tag[$:/tags/Global/View]!is[draft]]\\n\u003C$vars storyTiddler=\u003C\u003CcurrentTiddler>> tiddlerInfoState=\u003C\u003Cqualify \\\"$:/state/popup/tiddler-info\\\">>>\\n\\t\u003Cdiv data-tiddler-title=\u003C\u003CcurrentTiddler>> data-tags={{!!tags}} class={{{ [all[shadows+tiddlers]tag[$:/tags/ClassFilters/TiddlerTemplate]!is[draft]] :map:flat[subfilter{!!text}] tc-tiddler-view-frame [\u003CcurrentTiddler>is[tiddler]then[tc-tiddler-exists]] [\u003CcurrentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [\u003CcurrentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [\u003CcurrentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [\u003CcurrentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [\u003CcurrentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}} role=\\\"article\\\">\\n\\t\\t\u003C$draggable enable={{{ [{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}match[yes]then[$:/state/story-river/full-screen/]addsuffix\u003CcurrentTiddler>is[missing]then[yes]] ~[[no]] }}} tiddler=\u003C\u003CcurrentTiddler>> startactions=\u003C\u003Ctiddlyflex-drag-start-actions>> endactions=\u003C\u003Ctiddlyflex-drag-end-actions>> class=\\\"tc-tiddler-frame\\\">\\n\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!is[draft]]\\\" variable=\\\"listItem\\\">\\n\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\\t\u003C/$list>\\n\\t\\t\\t\u003C% if [{$:/state/dragging}match[yes]then{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}match[yes]then[$:/state/story-river/full-screen/]addsuffix\u003CcurrentTiddler>is[missing]] %>\\n\\t\\t\\t\\t\u003C$droppable class=\\\"tc-tiddlyflex-droppable-top-half\\\" actions=\u003C\u003Ctiddlyflex-top-drop-actions>> dragenteractions=\u003C\u003Ctiddlyflex-top-dragenter-actions>>/>\\n\\t\\t\\t\\t\u003C$droppable class=\\\"tc-tiddlyflex-droppable-bottom-half\\\" actions=\u003C\u003Ctiddlyflex-bottom-drop-actions>> dragenteractions=\u003C\u003Ctiddlyflex-bottom-dragenter-actions>>/>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$draggable>\\n\\t\u003C/div>\\n\u003C/$vars>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Templates/sidebar\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Templates/sidebar\",\"code-body\":\"yes\",\"text\":\"\\\\whitespace trim\\n\\\\define config-title()\\n$:/config/SideBarSegments/Visibility/$(listItem)$\\n\\\\end\\n\\\\function tiddlyflex-current-column() [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]]\\n\u003Cdiv class=\\\"tc-tiddlyflex-sidebar-scrollable\\\">\\n\\n\\t\u003C$messagecatcher $tm-cancel-tiddler=\u003C\u003Ctiddlyflex-tm-cancel-tiddler-actions-outside>>\\n\\t\\t$tm-close-all-tiddlers=\u003C\u003Ctiddlyflex-tm-close-all-tiddlers-actions-outside>>\\n\\t\\t$tm-close-other-tiddlers=\u003C\u003Ctiddlyflex-tm-close-other-tiddlers-actions-outside>>\\n\\t\\t$tm-close-tiddler=\u003C\u003Ctiddlyflex-tm-close-tiddler-actions-outside>>\\n\\t\\t$tm-delete-tiddler=\u003C\u003Ctiddlyflex-tm-delete-tiddler-actions-outside>>\\n\\t\\t$tm-edit-tiddler=\u003C\u003Ctiddlyflex-tm-edit-tiddler-actions-outside>>\\n\\t\\t$tm-fold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-all-tiddlers-actions-outside>>\\n\\t\\t$tm-fold-other-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-other-tiddlers-actions-outside>>\\n\\t\\t$tm-fold-tiddler=\u003C\u003Ctiddlyflex-tm-fold-tiddler-actions-outside>>\\n\\t\\t$tm-home=\u003C\u003Ctiddlyflex-tm-home-actions-outside>>\\n\\t\\t$tm-navigate=\u003C\u003Ctiddlyflex-tm-navigate-actions-outside>>\\n\\t\\t$tm-new-tiddler=\u003C\u003Ctiddlyflex-tm-new-tiddler-actions-outside>>\\n\\t\\t$tm-perform-import=\u003C\u003Ctiddlyflex-tm-perform-import-actions-outside>>\\n\\t\\t$tm-save-tiddler=\u003C\u003Ctiddlyflex-tm-save-tiddler-actions-outside>>\\n\\t\\t$tm-unfold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-unfold-all-tiddlers-actions-outside>>>\\n\\n\\t\\t\u003Cdiv class=\\\"tc-sidebar-header\\\">\\n\\n\\t\\t\\t\u003C$reveal state=\\\"$:/state/sidebar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"yes\\\" animate=\\\"yes\\\">\\n\\n\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n\\n\\t\\t\\t\\t\\t\u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-title>> text=\\\"hide\\\" tag=\\\"div\\\">\\n\\n\\t\\t\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>> mode=\\\"block\\\"/>\\n\\n\\t\\t\\t\\t\\t\u003C/$reveal>\\n\\n\\t\\t\\t\\t\u003C/$list>\\n\\n\\t\\t\\t\u003C/$reveal>\\n\\n\\t\\t\u003C/div>\\n\\n\\t\u003C/$messagecatcher>\\n\\n\u003C/div>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Templates/story\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Templates/story\",\"code-body\":\"yes\",\"text\":\"\\\\whitespace trim\\n\\\\function tiddlyflex-current-column() [\u003CtiddlyFlexColumn>]\\n\\\\procedure tiddlyflex-activate-column-actions()\\n\u003C%if [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] +[!match\u003CtiddlyFlexColumn>] %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/columns\\\" current-column=\u003C\u003CtiddlyFlexColumn>>/>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-filtered-story-list()\\n\\n\u003C$list filter=\u003C\u003Ctdff.tiddlyflex-story-river-filter>> history=\u003C\u003Ctv-history-list>> template=\\\"$:/core/ui/StoryTiddlerTemplate\\\" storyview=\\\"tiddlyflex\\\" emptyMessage={{{ [list\u003Ctv-story-list>limit[1]then[]else{$(emptyMessageTiddler)$}] }}}/>\\n\\n\\\\end\\n\u003Cdiv class={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] +[match\u003CtiddlyFlexColumn>then[tc-tiddlyflex-story-river-active]] [[tc-tiddlyflex-story-river-wrapper-inner]] [[tc-tiddlyflex-story-river-]addsuffix\u003CtiddlyFlexColumn>] :and[unique[]join[ ]] }}}>\\n\\n\\t\u003C$vars tv-story-list={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>] }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CtiddlyFlexColumn>] }}} openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\n\\t\\t\u003C$messagecatcher $tm-import-tiddlers=\u003C\u003Ctiddlyflex-tm-import-tiddlers-actions>>>\\n\\n\\t\\t\\t\u003C$dropzone enable=\u003C\u003Ctv-enable-drag-and-drop>> class={{{ [\u003CtiddlyFlexColumn>!is[blank]addprefix[tc-tiddlyflex-dropzone-]] ~tc-tiddlyflex-dropzone-1 }}} importTitle={{{ [[$:/Import-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\n\\t\\t\\t\\t\u003C$eventcatcher selector=\\\".tc-tiddlyflex-activate-column\\\" $click=\u003C\u003Ctiddlyflex-activate-column-actions>> class=\\\"tc-tiddlyflex-active-column-wrapper\\\">\\n\\n\\t\\t\\t\\t\\t\u003Ca class=\\\"tc-btn-invisible tc-tiddlyflex-activate-column\\\"/>\\n\\n\\t\\t\\t\\t\u003C/$eventcatcher>\\n\\n\\t\\t\\t\\t\u003Csection class=\\\"tc-tiddlyflex-story-river\\\" role=\\\"main\\\">\\n\\n\\t\\t\\t\\t\\t\u003C$messagecatcher\\n\\t\\t\\t\\t\\t\\t$tm-cancel-tiddler=\u003C\u003Ctiddlyflex-tm-cancel-tiddler-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-close-all-tiddlers=\u003C\u003Ctiddlyflex-tm-close-all-tiddlers-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-close-other-tiddlers=\u003C\u003Ctiddlyflex-tm-close-other-tiddlers-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-close-tiddler=\u003C\u003Ctiddlyflex-tm-close-tiddler-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-delete-tiddler=\u003C\u003Ctiddlyflex-tm-delete-tiddler-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-edit-tiddler=\u003C\u003Ctiddlyflex-tm-edit-tiddler-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-fold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-all-tiddlers-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-fold-other-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-other-tiddlers-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-fold-tiddler=\u003C\u003Ctiddlyflex-tm-fold-tiddler-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-home=\u003C\u003Ctiddlyflex-tm-home-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-navigate=\u003C\u003Ctiddlyflex-tm-navigate-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-new-tiddler=\u003C\u003Ctiddlyflex-tm-new-tiddler-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-perform-import=\u003C\u003Ctiddlyflex-tm-perform-import-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-save-tiddler=\u003C\u003Ctiddlyflex-tm-save-tiddler-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-unfold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-unfold-all-tiddlers-actions>>>\\n\\n\\t\\t\\t\\t\\t\\t\u003Csection class=\\\"story-backdrop\\\">\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C$set name=\\\"aboveStoryTag\\\" value={{{ [[$:/tags/AboveStory-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag\u003CaboveStoryTag>!is[draft]]\\\">\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\u003C$transclude/>\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C/$list>\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C/$set>\\n\\n\\t\\t\\t\\t\\t\\t\u003C/section>\\n\\n\\t\\t\\t\\t\\t\\t\u003Csection class=\\\"tc-tiddlyflex-story-river-inner\\\">\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C$set name=\\\"emptyMessageTiddler\\\" value={{{ [[$:/config/EmptyStoryMessage-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-filtered-story-list>>\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C/$set>\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C%if [{$:/state/dragging}match[yes]] %>\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C$droppable class=\\\"tc-tiddlyflex-below-story-river-droppable\\\" actions=\u003C\u003Ctiddlyflex-story-droppable-drop-actions>> dragenteractions=\u003C\u003Ctiddlyflex-story-droppable-dragenter-actions>>/>\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C% endif %>\\n\\n\\t\\t\\t\\t\\t\\t\u003C/section>\\n\\n\\t\\t\\t\\t\\t\\t\u003Csection class=\\\"story-frontdrop\\\">\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C$set name=\\\"belowStoryTag\\\" value={{{ [[$:/tags/BelowStory-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag\u003CbelowStoryTag>!is[draft]]\\\">\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\u003C$transclude/>\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C/$list>\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C/$set>\\n\\n\\t\\t\\t\\t\\t\\t\u003C/section>\\n\\n\\t\\t\\t\\t\\t\u003C/$messagecatcher>\\n\\n\\t\\t\\t\\t\u003C/section>\\n\\n\\t\\t\\t\u003C/$dropzone>\\n\\n\\t\\t\u003C/$messagecatcher>\\n\\n\\t\u003C/$vars>\\n\\n\u003C/div>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Toolbars/PluginReloadWarning\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Toolbars/PluginReloadWarning\",\"text\":\"\\\\define lingo-base() $:/language/\\n\\n\u003Cdiv class=\\\"tc-plugin-reload-warning\\\">\\n\\n\u003C$set name=\\\"tv-config-toolbar-class\\\" value=\\\"\\\">\\n\\n\u003C\u003Clingo PluginReloadWarning>>\u003C$button set=\\\"$:/temp/HidePluginWarning\\\" setTo=\\\"yes\\\" class=\\\"tc-btn-invisible tc-small-gap-left\\\">{{$:/core/images/close-button}}\u003C/$button>\\n\\n\u003C/$set>\\n\\n\u003C/div>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Toolbars/Segments/search\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Toolbars/Segments/search\",\"tags\":\"$:/tags/TopLeftBar\",\"text\":\"{{$:/core/ui/SideBarSegments/search}}\"},\"$:/plugins/BTC/TiddlyFlex/ui/Toolbars/TopToolbar\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Toolbars/TopToolbar\",\"tags\":\"$:/tags/TopToolbar\",\"text\":\"\\\\whitespace trim\\n\u003Cdiv class=\\\"tc-tiddlyflex-top-toolbar\\\">\\n\\t\u003Cdiv class=\\\"tc-tiddlyflex-top-toolbar-left\\\">\\n\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!is[draft]]\\\" variable=\\\"listItem\\\" storyview=\\\"pop\\\">\\n\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\u003C/$list>\\n\\t\u003C/div>\\n\\t\u003Cdiv class=\\\"tc-tiddlyflex-top-toolbar-center\\\">\\n\\n\\t\u003C/div>\\n\\t\u003Cdiv class=\\\"tc-tiddlyflex-top-toolbar-right\\\">\\n\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!is[draft]]\\\" variable=\\\"listItem\\\" storyview=\\\"pop\\\">\\n\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\u003C/$list>\\n\\t\u003C/div>\\n\u003C/div>\"}}}","revision":"0","bag":"default"} +{"title":"$:/plugins/BTC/TiddlyFlex","description":"A Flexbox Layout for TiddlyWiki5","name":"TiddlyFlex","plugin-type":"plugin","author":"Simon Huber","version":"0.0.44","core-version":">=5.3.3","source":"https://github.com/BurningTreeC/TiddlyFlex","list":"readme license","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/add-column\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/add-column\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((add-column))\",\"text\":\"\u003C$let columns={{{ [list[$:/columns]count[]!match[0]] ~1 }}} nextColumn={{{ [\u003Ccolumns>add[1]] }}}>\\n\\t\u003C%if [list[$:/columns]count[]match[0]] %>\\n\\t\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"1\\\"/>\\n\\t\u003C% endif %>\\n\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"[\u003CnextColumn>]\\\"/>\\n\u003C/$let>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/cancel-close-tiddler\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/cancel-close-tiddler\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((cancel-close-tiddler))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/selectors $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure tiddlyflex-tiddler-is-draft-actions-draft-of-not-is-missing()\\n\u003C$list filter=\\\"[list[$:/columns]!match{$:/columns!!current-column}]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\t\u003C$set name=\\\"tv-story-list\\\" value={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>!match[$:/StoryList-]] ~[[$:/StoryList-1]] }}}>\\n\\t\\t\u003C%if [\u003Ctv-story-list>contains\u003Ctiddler>] %>\\n\\t\\t\\t\u003C$set name=\\\"index\\\" value={{{ [list\u003Ctv-story-list>allbefore\u003Ctiddler>add[1]] }}}>\\n\\t\\t\\t\\t\u003C$let nextTiddler={{{ [list\u003Ctv-story-list>zth\u003Cindex>] }}} viewTiddler={{{ [\u003Ctiddler>get[draft.of]] }}}>\\n\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CviewTiddler>,\u003CnextTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003Ctiddler>]\\\"/>\\n\\t\\t\\t\\t\u003C/$let>\\n\\t\\t\\t\u003C/$set>\\n\\t\\t\u003C% endif %>\\n\\t\u003C/$set>\\n\u003C/$list>\\n\\\\end\\n\\\\procedure tiddlyflex-tiddler-is-draft-actions()\\n\u003C% if [\u003Ctiddler>get[draft.of]!is[shadow]is[missing]] %>\\n\\t\u003C$list filter=\\\"[list[$:/columns]!match{$:/columns!!current-column}]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\t\\t\u003C$set name=\\\"tv-story-list\\\" value={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>!match[$:/StoryList-]] ~[[$:/StoryList-1]] }}}>\\n\\t\\t\\t\u003C%if [\u003Ctv-story-list>contains\u003Ctiddler>] %>\\n\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003Ctiddler>]\\\"/>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$set>\\n\\t\u003C/$list>\\n\u003C% else %>\\n\\t\u003C\u003Ctiddlyflex-tiddler-is-draft-actions-draft-of-not-is-missing>>\\n\u003C% endif %>\\n\u003C$set name=\\\"scrollTiddler\\\" value={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003Ctiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003Ctiddler>] }}}>\\n\\t\u003C%if [\u003Ctiddler>get[draft.of]!is[shadow]is[missing]] %>\\n\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CscrollTiddler>>/>\\n\\t\\t\u003C%if [\u003CscrollTiddler>is[draft]] %>\\n\\t\\t\\t\u003C$set name=\\\"cssEscapedTitle\\\" value={{{ [\u003CscrollTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\\t\\t\u003C/$set>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C\u003Ctiddlyflex-focus-flexcontainer>>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% endif %>\\n\\t\u003C$action-sendmessage $message=\\\"tm-cancel-tiddler\\\" $param=\u003C\u003Ctiddler>>/>\\n\u003C/$set>\\n\\\\end\\n\\\\define actions()\\n\u003C$set name=\\\"tiddler\\\" value={{{ [\u003Ctv-history-list>get[current-tiddler]] }}}>\\n\\t\u003C%if [\u003Ctiddler>!is[draft]] %>\\n\\t\\t\u003C$let scrollTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[after\u003Ctiddler>] ~[before\u003Ctiddler>] }}}>\\n\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CscrollTiddler>>/>\\n\\t\\t\\t\u003C$action-sendmessage $message=\\\"tm-close-tiddler\\\" $param=\u003C\u003Ctiddler>>/>\\n\\t\\t\\t\u003C%if [\u003CscrollTiddler>is[draft]] %>\\n\\t\\t\\t\\t\u003C$set name=\\\"cssEscapedTitle\\\" value={{{ [\u003CscrollTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\u003C% else %>\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-focus-flexcontainer>>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$let>\\n\\t\u003C% else %>\\n\\t\\t\u003C\u003Ctiddlyflex-tiddler-is-draft-actions>>\\n\\t\u003C% endif %>\\n\u003C/$set>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/column-down\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/column-down\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((column-down))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/selectors $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\u003C$let currentColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[[$:/columns]get[current-column]] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] ~1 }}} columnCount={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>last[]] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] ~1 }}} nextColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] +[before\u003CcurrentColumn>] ~[\u003CcolumnCount>] }}} tv-story-list={{{ [[$:/StoryList-]addsuffix\u003CnextColumn>] }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CnextColumn>] }}}>\\n\\t\u003C\u003Ctiddlyflex-cycle-columns-navigator>>\\n\u003C/$let>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/column-up\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/column-up\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((column-up))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/selectors $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\u003C$let currentColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[[$:/columns]get[current-column]] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] ~1 }}} nextColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] +[after\u003CcurrentColumn>] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] ~1 }}} tv-story-list={{{ [[$:/StoryList-]addsuffix\u003CnextColumn>] }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CnextColumn>] }}}>\\n\\t\u003C\u003Ctiddlyflex-cycle-columns-navigator>>\\n\u003C/$let>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/dragging\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/dragging\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((dragging))\",\"text\":\"\u003C%if [{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}match[no]] %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/config/tiddlyflex/story-river/tiddler/drag-enabled\\\" text=\\\"yes\\\"/>\\n\u003C% else %>\\n\\t\u003C$action-deletetiddler $tiddler=\\\"$:/config/tiddlyflex/story-river/tiddler/drag-enabled\\\"/>\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/edit-tiddler\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/edit-tiddler\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((edit-tiddler))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\define actions()\\n\u003C%if [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[match\u003CcurrentTiddler>] %>\\n\\t\u003C%if [\u003CcurrentTiddler>!is[draft]] %>\\n\\t\\t\u003C$action-sendmessage $message=\\\"tm-edit-tiddler\\\" $param=\u003C\u003CcurrentTiddler>>/>\\n\\t\u003C% endif %>\\n\u003C% endif %>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/filter-river\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/filter-river\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((filter-river))\",\"text\":\"\u003C%if [{$:/config/tiddlyflex/story-river/filter}!match[yes]] %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/config/tiddlyflex/story-river/filter\\\" text=\\\"yes\\\"/>\\n\u003C% else %>\\n\\t\u003C$action-deletetiddler $tiddler=\\\"$:/config/tiddlyflex/story-river/filter\\\"/>\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-down\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-down\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((move-down))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure actions()\\n\u003C$set name=\\\"nextTiddler\\\" value={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[after\u003CcurrentTiddler>] }}}>\\n\\t\u003C%if [\u003CnextTiddler>!is[blank]!match[]] %>\\n\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore:currentTiddler\u003CnextTiddler>]\\\"/>\\n\\t\u003C% endif %>\\n\u003C/$set>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-left\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-left\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((move-left))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/selectors $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure current-tiddler-is-empty-message()\\n\u003C$action-listops $tiddler=\u003C\u003CpreviousStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CfirstPreviousStoryTiddler>]\\\"/>\\n\u003C$action-setfield $tiddler=\u003C\u003CpreviousHistoryList>> current-tiddler=\u003C\u003CfocusedTiddler>>/>\\n\\\\end\\n\\\\define actions()\\n\u003C$let scrollTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003CfocusedTiddler>] }}}>\\n\\t\u003C%if [\u003CfocusedTiddler>!is[blank]then\u003Ctv-story-list>!match[$:/StoryList-1]] %>\\n\\t\\t\u003C$action-setfield $tiddler={{{ [[$:/state/tiddlyflex/removing/]addsuffix\u003CfocusedTiddler>] }}} direction=\\\"left\\\" column=\u003C\u003CcurrentColumn>>/>\\n\\t\\t\u003C$action-setfield $tiddler={{{ [[$:/state/tiddlyflex/adding/]addsuffix\u003CfocusedTiddler>] }}} direction=\\\"right\\\" column={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>before\u003CcurrentColumn>] }}}/>\\n\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003CfocusedTiddler>] }}}/>\\n\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003CfocusedTiddler>]\\\"/>\\n\\t\\t\u003C%if [\u003CpreviousHistoryList>get[current-tiddler]!match[]] %>\\n\\t\\t\\t\u003C$set name=\\\"previousStoryFocusedTiddler\\\" value={{{ [\u003CpreviousHistoryList>get[current-tiddler]] }}}>\\n\\t\\t\\t\\t\u003C%if [\u003CpreviousStoryList>contains\u003CpreviousStoryFocusedTiddler>] %>\\n\\t\\t\\t\\t\\t\u003C%if [list\u003CpreviousStoryList>search:$(searchFields)$:$(searchFlags)${$:/temp/search/input}match\u003CpreviousStoryFocusedTiddler>then{$:/config/tiddlyflex/story-river/filter}match[yes]] %>\\n\\t\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CpreviousStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CpreviousStoryFocusedTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\u003C% elseif [{$:/config/tiddlyflex/story-river/filter}!match[yes]] %>\\n\\t\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CpreviousStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CpreviousStoryFocusedTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\u003C% else %>\\n\\t\\t\\t\\t\\t\\t\u003C$set name=\\\"firstFilteredStoryTiddler\\\" value={{{ [list\u003CpreviousStoryList>search{$:/temp/search/input}nth[1]] }}}>\\n\\t\\t\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CpreviousStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CfirstFilteredStoryTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003CpreviousHistoryList>> current-tiddler=\u003C\u003CfocusedTiddler>>/>\\n\\t\\t\\t\\t\u003C% else %>\\n\\t\\t\\t\\t\\t\u003C\u003Ccurrent-tiddler-is-empty-message>>\\n\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\u003C/$set>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C\u003Ccurrent-tiddler-is-empty-message>>\\n\\t\\t\u003C% endif %>\\n\\t\\t\u003C%if [{$:/config/tiddlyflex/story-river/follow-current-column}match[yes]] %>\\n\\t\\t\\t\u003C$action-setfield $tiddler=\\\"$:/columns\\\" current-column=\u003C\u003CpreviousStoryCounter>>/>\\n\\t\\t\\t\u003C%if [\u003CfocusedTiddler>is[draft]] %>\\n\\t\\t\\t\\t\u003C$let currentColumn=\u003C\u003CpreviousStoryCounter>> cssEscapedTitle={{{ [\u003CfocusedTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\\t\\t\\t\u003C/$let>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$let currentTiddler={{{ [list\u003Ctv-story-list>after\u003CfocusedTiddler>] ~[list\u003Ctv-story-list>before\u003CfocusedTiddler>] }}} cssEscapedTitle={{{ [\u003CcurrentTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C%if [\u003CcurrentTiddler>is[draft]] %>\\n\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% endif %>\\n\\t\\t\u003C$let currentColumn=\u003C\u003CpreviousStoryCounter>> cssEscapedTitle={{{ [\u003CfocusedTiddler>escapecss[]] }}}>\\n\\t\\t\\t\u003C\u003Ctiddlyflex-scroll-to-tiddler>>\\n\\t\\t\u003C/$let>\\n\\t\u003C% endif %>\\n\u003C/$let>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-multi-column-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-right\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-right\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((move-right))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/selectors $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure current-tiddler-is-empty-message()\\n\u003C$action-listops $tiddler=\u003C\u003CnextStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CfirstNextStoryTiddler>]\\\"/>\\n\u003C$action-setfield $tiddler=\u003C\u003CnextHistoryList>> current-tiddler=\u003C\u003CfocusedTiddler>>/>\\n\\\\end\\n\\\\define actions()\\n\u003C$let scrollTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003CfocusedTiddler>] }}}>\\n\\t\u003C%if [\u003CfocusedTiddler>!is[blank]] %>\\n\\t\\t\u003C%if [[$:/columns]!contains\u003CnextStoryCounter>] %>\\n\\t\\t\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"[\u003CnextStoryCounter>]\\\"/>\\n\\t\\t\\t\u003C$action-setfield $tiddler={{{ [[$:/state/tiddlyflex/removing/]addsuffix\u003CfocusedTiddler>] }}} direction=\\\"right\\\" column=\u003C\u003CcurrentColumn>>/>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$action-setfield $tiddler={{{ [[$:/state/tiddlyflex/removing/]addsuffix\u003CfocusedTiddler>] }}} direction=\\\"right\\\" column=\u003C\u003CcurrentColumn>>/>\\n\\t\\t\\t\u003C$action-setfield $tiddler={{{ [[$:/state/tiddlyflex/adding/]addsuffix\u003CfocusedTiddler>] }}} direction=\\\"left\\\" column={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>after\u003CcurrentColumn>] }}}/>\\n\\t\\t\u003C% endif %>\\n\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003CfocusedTiddler>] }}}/>\\n\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003CfocusedTiddler>]\\\"/>\\n\\t\\t\u003C%if [\u003CnextHistoryList>get[current-tiddler]!match[]] %>\\n\\t\\t\\t\u003C$set name=\\\"nextStoryFocusedTiddler\\\" value={{{ [\u003CnextHistoryList>get[current-tiddler]] }}}>\\n\\t\\t\\t\\t\u003C%if [\u003CnextStoryList>contains\u003CnextStoryFocusedTiddler>] %>\\n\\t\\t\\t\\t\\t\u003C%if [list\u003CnextStoryList>search:$(searchFields)$:$(searchFlags)${$:/temp/search/input}match\u003CnextStoryFocusedTiddler>then{$:/config/tiddlyflex/story-river/filter}match[yes]] %>\\n\\t\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CnextStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CnextStoryFocusedTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\u003C% elseif [{$:/config/tiddlyflex/story-river/filter}!match[yes]] %>\\n\\t\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CnextStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CnextStoryFocusedTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\u003C% else %>\\n\\t\\t\\t\\t\\t\\t\u003C$set name=\\\"firstStoryTiddler\\\" value={{{ [list\u003CnextStoryList>nth[1]] }}}>\\n\\t\\t\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CnextStoryList>> $subfilter=\\\"+[insertbefore\u003CfocusedTiddler>,\u003CfirstStoryTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003CnextHistoryList>> current-tiddler=\u003C\u003CfocusedTiddler>>/>\\n\\t\\t\\t\\t\u003C% else %>\\n\\t\\t\\t\\t\\t\u003C\u003Ccurrent-tiddler-is-empty-message>>\\n\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\u003C/$set>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C\u003Ccurrent-tiddler-is-empty-message>>\\n\\t\\t\u003C% endif %>\\n\\t\\t\u003C%if [{$:/config/tiddlyflex/story-river/follow-current-column}match[yes]] %>\\n\\t\\t\\t\u003C$action-setfield $tiddler=\\\"$:/columns\\\" current-column=\u003C\u003CnextStoryCounter>>/>\\n\\t\\t\\t\u003C%if [\u003CfocusedTiddler>is[draft]] %>\\n\\t\\t\\t\\t\u003C$let currentColumn=\u003C\u003CnextStoryCounter>> cssEscapedTitle={{{ [\u003CfocusedTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\\t\\t\\t\u003C/$let>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\u003C$let currentColumn=\u003C\u003CnextStoryCounter>> cssEscapedTitle={{{ [\u003CfocusedTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-scroll-to-tiddler>>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$let currentTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003CfocusedTiddler>] }}} cssEscapedTitle={{{ [\u003CcurrentTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C%if [\u003CcurrentTiddler>is[draft]] %>\\n\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% endif %>\\n\u003C/$let>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-multi-column-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-up\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/move-up\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((move-up))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\define actions()\\n\u003C$set name=\\\"previousTiddler\\\" value={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[before\u003CcurrentTiddler>] }}}>\\n\\t\u003C%if [\u003CpreviousTiddler>!is[blank]!match[]] %>\\n\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore:previousTiddler\u003CcurrentTiddler>]\\\"/>\\n\\t\u003C% endif %>\\n\u003C/$set>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/navigate-down\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/navigate-down\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((navigate-down))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/selectors $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure actions-inner()\\n\u003C%if [\u003CnextTiddler>!is[blank]!match[]] %>\\n\\t\u003C%if [\u003CnextTiddler>is[draft]] %>\\n\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\u003C% else %>\\n\\t\\t\u003C\u003Ctiddlyflex-focus-flexcontainer>>\\n\\t\u003C% endif %>\\n\\t\u003C$action-navigate $to=\u003C\u003CnextTiddler>>/>\\n\u003C% endif %>\\n\\\\end\\n\\\\define actions()\\n\u003C%if [{$:/config/tiddlyflex/story-river/filter}match[yes]] %>\\n\\t\u003C$set name=\\\"focusedTiddler\\\" value={{{ [\u003Ctv-history-list>get[current-tiddler]] }}}>\\n\\t\\t\u003C%if [subfilter\u003Ctdff.tiddlyflex-story-river-filter>match\u003CfocusedTiddler>] %>\\n\\t\\t\\t\u003C$let nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>nth[1]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Cactions-inner>>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$let nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>nth[1]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Cactions-inner>>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% endif %>\\n\\t\u003C/$set>\\n\u003C% else %>\\n\\t\u003C$let focusedTiddler={{{ [\u003Ctv-history-list>get[current-tiddler]] }}} nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>after\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>nth[1]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\u003C\u003Cactions-inner>>\\n\\t\u003C/$let>\\n\u003C% endif %>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/navigate-up\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/navigate-up\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((navigate-up))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/selectors $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure actions-inner()\\n\u003C%if [\u003CnextTiddler>!is[blank]!match[]] %>\\n\\t\u003C%if [\u003CnextTiddler>is[draft]] %>\\n\\t\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\\t\u003C% else %>\\n\\t\\t\u003C\u003Ctiddlyflex-focus-flexcontainer>>\\n\\t\u003C% endif %>\\n\\t\u003C$action-navigate $to=\u003C\u003CnextTiddler>>/>\\n\u003C% endif %>\\n\\\\end\\n\\\\define actions()\\n\u003C%if [{$:/config/tiddlyflex/story-river/filter}match[yes]] %>\\n\\t\u003C$set name=\\\"focusedTiddler\\\" value={{{ [\u003Ctv-history-list>get[current-tiddler]] }}}>\\n\\t\\t\u003C%if [subfilter\u003Ctdff.tiddlyflex-story-river-filter>match\u003CfocusedTiddler>] %>\\n\\t\\t\\t\u003C$let nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>last[]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Cactions-inner>>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$let nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>last[]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Cactions-inner>>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% endif %>\\n\\t\u003C/$set>\\n\u003C% else %>\\n\\t\u003C$let focusedTiddler={{{ [\u003Ctv-history-list>get[current-tiddler]] }}} nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>before\u003CfocusedTiddler>] ~[subfilter\u003Ctdff.tiddlyflex-story-river-filter>last[]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\u003C\u003Cactions-inner>>\\n\\t\u003C/$let>\\n\u003C% endif %>\\n\\\\end\\n\u003C$macrocall $name=\\\"tiddlyflex-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/new-image\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/new-image\",\"tags\":\"$:/tags/KeyboardShortcut\",\"override\":\"yes\",\"key\":\"((new-image))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure actions()\\n{{$:/core/ui/Actions/new-image}}\\n\\\\end\\n\u003C%if [function[tiddlyflex-layout]] %>\\n\\t\u003C$macrocall $name=\\\"tiddlyflex-simple-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\u003C% else %>\\n\\t\u003C$navigator story=\\\"$:/StoryList\\\" history=\\\"$:/HistoryList\\\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\u003C\u003Cactions>>\\n\\t\u003C/$navigator>\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/new-journal\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/new-journal\",\"tags\":\"$:/tags/KeyboardShortcut\",\"override\":\"yes\",\"key\":\"((new-journal))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure actions()\\n{{$:/core/ui/Actions/new-journal}}\\n\\\\end\\n\u003C%if [function[tiddlyflex-layout]] %>\\n\\t\u003C$macrocall $name=\\\"tiddlyflex-simple-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\u003C% else %>\\n\\t\u003C$navigator story=\\\"$:/StoryList\\\" history=\\\"$:/HistoryList\\\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\u003C\u003Cactions>>\\n\\t\u003C/$navigator>\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/new-tiddler\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/new-tiddler\",\"tags\":\"$:/tags/KeyboardShortcut\",\"override\":\"yes\",\"override-title\":\"$:/core/ui/KeyboardShortcuts/new-tiddler\",\"key\":\"((new-tiddler))\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/privates/navigation $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\\\\procedure actions()\\n{{$:/core/ui/Actions/new-tiddler}}\\n\\\\end\\n\u003C%if [function[tiddlyflex-layout]] %>\\n\\t\u003C$macrocall $name=\\\"tiddlyflex-simple-keyboard-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\u003C% else %>\\n\\t\u003C$navigator story=\\\"$:/StoryList\\\" history=\\\"$:/HistoryList\\\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\u003C\u003Cactions>>\\n\\t\u003C/$navigator>\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/remove-column\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/KeyboardShortcuts/remove-column\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((remove-column))\",\"text\":\"\\\\procedure remove-column-actions()\\n\u003C$set name=\\\"columnCount\\\" value={{{ [list[$:/columns]count[]] }}}>\\n\\t\u003C$list filter=\\\"[[$:/columns]get[current-column]match\u003CcolumnCount>]\\\">\\n\\t\\t\u003C$action-setfield $tiddler=\\\"$:/columns\\\" current-column={{{ [\u003CcolumnCount>subtract[1]!match[0]] ~1 }}}/>\\n\\t\u003C/$list>\\n\\t\u003C$list filter=\\\"[\u003CcolumnCount>!match[1]]\\\">\\n\\t\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"-[\u003CcolumnCount>]\\\"/>\\n\\t\u003C/$list>\\n\u003C/$set>\\n\\\\end\\n\\\\whitespace trim\\n\u003C$let columns={{{ [list[$:/columns]count[]] ~1 }}}>\\n\\t\u003C\u003Cremove-column-actions>>\\n\u003C/$let>\"},\"$:/plugins/BTC/TiddlyFlex/StartupActions/current-tiddlers\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/StartupActions/current-tiddlers\",\"tags\":\"$:/tags/StartupAction/Browser\",\"text\":\"\\\\import $:/plugins/BTC/TiddlyFlex/globals/layout/functions\\n\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>]\\\" variable=\\\"column\\\">\\n\\t\u003C$let tv-story-list={{{ [[$:/StoryList-]addsuffix\u003Ccolumn>!match[$:/StoryList-]] ~$:/StoryList-1 }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003Ccolumn>!match[$:/HistoryList-]] ~$:/HistoryList-1 }}} currentTiddler={{{ [list\u003Ctv-story-list>nth[1]] }}}>\\n\\t\\t\u003C%if [\u003CcurrentTiddler>!is[blank]!match[]] %>\\n\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CcurrentTiddler>>/>\\n\\t\\t\u003C% endif %>\\n\\t\u003C/$let>\\n\u003C/$list>\"},\"$:/config/ShortcutInfo/add-column\":{\"title\":\"$:/config/ShortcutInfo/add-column\",\"text\":\"Add one more column\"},\"$:/config/ShortcutInfo/cancel-close-tiddler\":{\"title\":\"$:/config/ShortcutInfo/cancel-close-tiddler\",\"text\":\"Cancel or close the current tiddler\"},\"$:/config/ShortcutInfo/column-down\":{\"title\":\"$:/config/ShortcutInfo/column-down\",\"text\":\"Select the next column at the left\"},\"$:/config/ShortcutInfo/column-up\":{\"title\":\"$:/config/ShortcutInfo/column-up\",\"text\":\"Select the next column at the right\"},\"$:/config/ShortcutInfo/dragging\":{\"title\":\"$:/config/ShortcutInfo/dragging\",\"text\":\"Toggle dragging on or off\"},\"$:/config/ShortcutInfo/edit-tiddler\":{\"title\":\"$:/config/ShortcutInfo/edit-tiddler\",\"text\":\"Edit the current tiddler\"},\"$:/config/ShortcutInfo/filter-river\":{\"title\":\"$:/config/ShortcutInfo/filter-river\",\"text\":\"Filter the story river by the search input\"},\"$:/config/ShortcutInfo/move-down\":{\"title\":\"$:/config/ShortcutInfo/move-down\",\"text\":\"Move the current tiddler down\"},\"$:/config/ShortcutInfo/move-left\":{\"title\":\"$:/config/ShortcutInfo/move-left\",\"text\":\"Move the current tiddler to the left\"},\"$:/config/ShortcutInfo/move-right\":{\"title\":\"$:/config/ShortcutInfo/move-right\",\"text\":\"Move the current tiddler to the right\"},\"$:/config/ShortcutInfo/move-up\":{\"title\":\"$:/config/ShortcutInfo/move-up\",\"text\":\"Move the current tiddler up\"},\"$:/config/ShortcutInfo/navigate-down\":{\"title\":\"$:/config/ShortcutInfo/navigate-down\",\"text\":\"Navigate down to the next tiddler\"},\"$:/config/ShortcutInfo/navigate-up\":{\"title\":\"$:/config/ShortcutInfo/navigate-up\",\"text\":\"Navigate up to the next tiddler\"},\"$:/config/ShortcutInfo/remove-column\":{\"title\":\"$:/config/ShortcutInfo/remove-column\",\"text\":\"Remove one column\"},\"$:/config/shortcuts/add-column\":{\"title\":\"$:/config/shortcuts/add-column\",\"text\":\"ctrl-alt-N\"},\"$:/config/shortcuts/cancel-close-tiddler\":{\"title\":\"$:/config/shortcuts/cancel-close-tiddler\",\"text\":\"alt-C\"},\"$:/config/shortcuts/column-down\":{\"title\":\"$:/config/shortcuts/column-down\",\"text\":\"alt-Left\"},\"$:/config/shortcuts/column-up\":{\"title\":\"$:/config/shortcuts/column-up\",\"text\":\"alt-Right\"},\"$:/config/shortcuts/dragging\":{\"title\":\"$:/config/shortcuts/dragging\",\"text\":\"alt-D\"},\"$:/config/shortcuts/edit-tiddler\":{\"title\":\"$:/config/shortcuts/edit-tiddler\",\"text\":\"alt-E\"},\"$:/config/shortcuts/filter-river\":{\"title\":\"$:/config/shortcuts/filter-river\",\"text\":\"alt-F\"},\"$:/config/shortcuts/move-down\":{\"title\":\"$:/config/shortcuts/move-down\",\"text\":\"alt-shift-Down\"},\"$:/config/shortcuts/move-left\":{\"title\":\"$:/config/shortcuts/move-left\",\"text\":\"alt-shift-Left\"},\"$:/config/shortcuts/move-right\":{\"title\":\"$:/config/shortcuts/move-right\",\"text\":\"alt-shift-Right\"},\"$:/config/shortcuts/move-up\":{\"title\":\"$:/config/shortcuts/move-up\",\"text\":\"alt-shift-Up\"},\"$:/config/shortcuts/navigate-down\":{\"title\":\"$:/config/shortcuts/navigate-down\",\"text\":\"alt-Down\"},\"$:/config/shortcuts/navigate-up\":{\"title\":\"$:/config/shortcuts/navigate-up\",\"text\":\"alt-Up\"},\"$:/config/shortcuts/remove-column\":{\"title\":\"$:/config/shortcuts/remove-column\",\"text\":\"ctrl-alt-M\"},\"$:/config/tiddlyflex/dragndrop/AnimationDuration\":{\"title\":\"$:/config/tiddlyflex/dragndrop/AnimationDuration\",\"text\":\"175\"},\"$:/config/tiddlyflex/navigation/edit-missing-tiddlers\":{\"title\":\"$:/config/tiddlyflex/navigation/edit-missing-tiddlers\",\"text\":\"no\"},\"$:/config/tiddlyflex/sidebar/width\":{\"title\":\"$:/config/tiddlyflex/sidebar/width\",\"text\":\"30%\"},\"$:/config/tiddlyflex/story-river/filter/fields\":{\"title\":\"$:/config/tiddlyflex/story-river/filter/fields\",\"text\":\"*\"},\"$:/config/tiddlyflex/story-river/filter/flags\":{\"title\":\"$:/config/tiddlyflex/story-river/filter/flags\",\"text\":\"words\"},\"$:/config/tiddlyflex/story-river/filter\":{\"title\":\"$:/config/tiddlyflex/story-river/filter\",\"text\":\"no\"},\"$:/config/tiddlyflex/story-river/follow-current-column\":{\"title\":\"$:/config/tiddlyflex/story-river/follow-current-column\",\"text\":\"yes\"},\"$:/config/tiddlyflex/story-river/padding\":{\"title\":\"$:/config/tiddlyflex/story-river/padding\",\"text\":\"42px\"},\"$:/config/tiddlyflex/story-river/tiddler/EditTemplate/StoryTiddlerTemplateFilter\":{\"title\":\"$:/config/tiddlyflex/story-river/tiddler/EditTemplate/StoryTiddlerTemplateFilter\",\"tags\":\"$:/tags/StoryTiddlerTemplateFilter\",\"list-before\":\"\",\"text\":\"[is[draft]then{$:/layout}match[$:/plugins/BTC/TiddlyFlex/ui/Layout]then[$:/plugins/BTC/TiddlyFlex/ui/Templates/EditTemplate]]\"},\"$:/config/tiddlyflex/story-river/tiddler/ViewTemplate/StoryTiddlerTemplateFilter\":{\"title\":\"$:/config/tiddlyflex/story-river/tiddler/ViewTemplate/StoryTiddlerTemplateFilter\",\"tags\":\"$:/tags/StoryTiddlerTemplateFilter\",\"list-before\":\"\",\"text\":\"[!is[draft]then{$:/layout}match[$:/plugins/BTC/TiddlyFlex/ui/Layout]then[$:/plugins/BTC/TiddlyFlex/ui/Templates/ViewTemplate]]\"},\"$:/config/tiddlyflex/story-river/tiddler/box-shadow-spread\":{\"title\":\"$:/config/tiddlyflex/story-river/tiddler/box-shadow-spread\",\"text\":\"4px\"},\"$:/config/tiddlyflex/story-river/tiddler/drag-enabled\":{\"title\":\"$:/config/tiddlyflex/story-river/tiddler/drag-enabled\",\"text\":\"no\"},\"$:/config/tiddlyflex/story-river/tiddler/margin-bottom\":{\"title\":\"$:/config/tiddlyflex/story-river/tiddler/margin-bottom\",\"text\":\"28px\"},\"$:/plugins/BTC/TiddlyFlex/styles/base\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/base\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\".tc-tiddlyflex-container {\\n\\tdisplay: flex;\\n\\tflex-flow: column;\\n\\tjustify-content: flex-start;\\n\\talign-items: stretch;\\n\\theight: 100vh;\\n\\tmax-height: 100vh;\\n\\twidth: 100vw;\\n\\tmax-width: 100vw;\\n\\toutline: none;\\n\\toverflow: clip;\\n}\\n\\n.tc-tiddlyflex-main-wrapper {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-grow: 1;\\n}\\n\\n.tc-tiddlyflex-main {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-grow; 0;\\n\\tflex-shrink: 1;\\n\\tflex-basis: 100%;\\n\\tmax-height: 100%;\\n\\tposition: relative;\\n}\\n\\n@media (min-width: 992px) {\\n\\n\\t.tc-flex-main {\\n\\t\\toverflow-x: clip;\\n\\t}\\n\\n}\\n\\n.tc-tiddlyflex-header {\\n\\tflex-grow: 0;\\n\\tflex-shrink: 0;\\n\\tbox-shadow: 0 1px 5px -1px \u003C\u003Ccolour tiddlyflex-box-shadow>>;\\n\\tz-index: 999;\\n\\tbackground-color: \u003C\u003Ccolour page-background>>;\\n}\\n\\n.tc-tiddlyflex-footer {\\n\\tflex-grow: 0;\\n\\tflex-shrink: 0;\\n\\tbox-shadow: 0 -1px 5px -1px \u003C\u003Ccolour tiddlyflex-box-shadow>>;\\n\\tz-index: 999;\\n\\tbackground-color: \u003C\u003Ccolour page-background>>;\\n}\\n\\n.tc-tiddlyflex-leftbar {\\n\\tdisplay: flex;\\n\\tflex-grow: 0;\\n\\tflex-shrink: 0;\\n\\tbox-shadow: 1px 0 5px -1px \u003C\u003Ccolour tiddlyflex-box-shadow>>;;\\n\\tz-index: 998;\\n\\tbackground-color: \u003C\u003Ccolour page-background>>;\\n}\\n\\n/***************/\\n/* STORY RIVER */\\n/***************/\\n\\n.tc-tiddlyflex-story-river-container {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: stretch;\\n\\tflex-grow: 1;\\n\\tflex-shrink: 0;\\n\\tflex-basis: calc(100% - {{$:/config/tiddlyflex/sidebar/width}});\\n\\t-webkit-transition: flex-basis {{$:/config/AnimationDuration}}ms;\\n\\ttransition: flex-basis {{$:/config/AnimationDuration}}ms;\\n\\toverflow: hidden;\\n\\tmax-height: 100%;\\n}\\n\\n\u003C% if [{$:/state/sidebar}match[no]] %>\\n\\n.tc-tiddlyflex-story-river-container {\\n\\tflex-basis: 100%;\\n}\\n\\n\u003C% endif %>\\n\\n.tc-tiddlyflex-story-river-container-inner {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tjustify-content: flex-start;\\n\\talign-items: stretch;\\n\\tmax-height: 100%;\\n\\tflex-grow: 1;\\n\\tflex-shrink: 0;\\n}\\n\\n@media (min-width: 992px) {\\n\\n\\t.tc-tiddlyflex-story-river-container-inner {\\n\\t\\toverflow: hidden;\\n\\t\\tflex-basis: 0;\\n\\t}\\n\\n}\\n\\n.tc-tiddlyflex-story-river-wrapper {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tflex-shrink: 0;\\n\\tflex-grow: 1;\\n\\toverflow: hidden;\\n}\\n\\n@media (min-width: 992px) {\\n\\n\\t.tc-tiddlyflex-story-river-wrapper {\\n\\t\\tflex-basis: 0;\\n\\t}\\n\\n}\\n\\n.tc-tiddlyflex-story-river-wrapper-inner {\\n\\tflex-grow: 1;\\n\\tflex-shrink: 1;\\n\\toverflow-y: auto;\\n\\tscroll-behavior: smooth;\\n}\\n\\n@media (min-width: 992px) {\\n\\n\\t.tc-tiddlyflex-story-river-wrapper-inner {\\n\\t\\tflex-basis: 0;\\n\\t}\\n\\n}\\n\\n.tc-tiddlyflex-story-river-wrapper .tc-tiddler-frame {\\n\\twidth: 100%;\\n\\tmargin-bottom: 0;\\n\\t-webkit-box-shadow: 0 0 {{$:/config/tiddlyflex/story-river/tiddler/box-shadow-spread}} \u003C\u003Ccolour tiddlyflex-box-shadow>>;\\n\\tbox-shadow: 0 0 {{$:/config/tiddlyflex/story-river/tiddler/box-shadow-spread}} \u003C\u003Ccolour tiddlyflex-box-shadow>>;\\n}\\n\\n.tc-tiddlyflex-story-river-wrapper-inner .tc-tiddlyflex-story-river {\\n\\tpadding: {{$:/config/tiddlyflex/story-river/padding}};\\n\\tmin-height: 100%;\\n}\\n\\n.tc-tiddlyflex-story-river-inner > .tc-tiddler-view-frame, .tc-tiddlyflex-story-river-inner > .tc-tiddler-edit-frame {\\n\\tmargin-bottom: {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}};\\n}\\n\\n.tc-tiddlyflex-story-river .tc-navigating .tc-tiddler-frame {\\n\\tborder: 2px dashed \u003C\u003Ccolour primary>>;\\n}\\n\\n/***********/\\n/* SIDEBAR */\\n/***********/\\n\\n.tc-tiddlyflex-sidebar {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: stretch;\\n\\tflex-grow: 0;\\n\\tflex-shrink: 0;\\n\\tmax-height: 100%;\\n\\tz-index: 998;\\n\\tbox-shadow: 0px 0px 5px 0px \u003C\u003Ccolour tiddlyflex-box-shadow>>;\\n}\\n\\n@media (min-width: 992px) {\\n\\n\\t.tc-tiddlyflex-sidebar {\\n\\t\\twidth: {{$:/config/tiddlyflex/sidebar/width}};\\n\\t\\ttransition: box-shadow {{$:/config/AnimationDuration}}ms;\\n\\t}\\n\\n}\\n\\n\u003C%if [{$:/state/sidebar}match[no]] %>\\n\\n\\t.tc-tiddlyflex-sidebar {\\n\\t\\tbox-shadow: 0px 0px 0px 0px transparent;\\n\\t}\\n\\n\u003C% endif %>\\n\\n.tc-tiddlyflex-sidebar-container {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tjustify-content: flex-start;\\n\\talign-items: stretch;\\n\\tmax-height: 100%;\\n\\tflex-grow: 1;\\n\\tflex-shrink: 0;\\n}\\n\\n.tc-tiddlyflex-sidebar-container-inner {\\n\\tdisplay: flex;\\n\\tflex-grow: 1;\\n\\tflex-shrink: 0;\\n\\toverflow-y: auto;\\n\\tscroll-behavior: smooth;\\n\\tflex-basis: 0;\\n\\tflex-direction: row;\\n}\\n\\n.tc-tiddlyflex-sidebar-scrollable {\\n\\tpadding-top: 42px;\\n\\tpadding-left: 42px;\\n\\tmin-width: 100%;\\n}\\n\\n.tc-tiddlyflex-sidebar-shown-eventcatcher {\\n\\t-webkit-tap-highlight-color: transparent;\\n\\t-webkit-touch-callout: none;\\n\\t-webkit-user-select: none;\\n\\t-khtml-user-select: none;\\n\\t-moz-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none;\\n}\\n\\n.tc-tiddlyflex-sidebar-hide {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tbottom: 0;\\n\\tright: 0;\\n\\twidth: 100vw;\\n\\theight: 100vh;\\n\\tbackground: 0 0;\\n\\tvisibility: hidden;\\n\\tz-index: 1000;\\n\\tcursor: pointer;\\n\\t-webkit-transition: background {{$:/config/AnimationDuration}}ms {{$:/config/AnimationDuration}}ms, visibility 0s calc(2 * {{$:/config/AnimationDuration}}ms);\\n\\ttransition: background {{$:/config/AnimationDuration}}ms {{$:/config/AnimationDuration}}ms, visibility 0s calc(2 * {{$:/config/AnimationDuration}}ms);\\n}\\n\\n/******************/\\n/* ACTIVE COLUMNS */\\n/******************/\\n\\n.tc-tiddlyflex-story-river-active {\\n\\tbackground: repeating-linear-gradient(\\n\\t\\tto right,\\n\\t\\t\u003C\u003Ccolour page-background>>,\\n\\t\\t\u003C\u003Ccolour page-background>> 10px,\\n\\t\\t\u003C\u003Ccolour tiddler-background>> 10px,\\n\\t\\t\u003C\u003Ccolour tiddler-background>> 20px\\n\\t);\\n}\\n\\n.tc-tiddlyflex-activate-column {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tright: 0;\\n\\theight: 100%;\\n\\tcursor: default;\\n\\tbackground-color: transparent;\\n\\t-webkit-tap-highlight-color: transparent;\\n\\t-webkit-touch-callout: none;\\n\\t-webkit-user-select: none;\\n\\t-khtml-user-select: none;\\n\\t-moz-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none;\\n}\\n\\n/*************/\\n/* DROPZONES */\\n/*************/\\n\\ndiv[class^=\\\"tc-tiddlyflex-dropzone-\\\"] {\\n\\tmin-height: 100%;\\n\\tposition: relative;\\n}\\n\\ndiv[class^=\\\"tc-tiddlyflex-dropzone-\\\"].tc-dragover:before {\\n\\tz-index: 999;\\n\\tdisplay: block;\\n\\tposition: sticky;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tright: 0;\\n\\tbackground: \u003C\u003Ccolour dropzone-background>>;\\n\\ttext-align: center;\\n\\tcontent: \\\"\u003C\u003Clingo DropMessage>>\\\";\\n}\"},\"$:/plugins/BTC/TiddlyFlex/styles/current-tiddler\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/current-tiddler\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"\\\\define tiddlyflex-style-current-tiddler()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(currentColumn)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"]:not(.tc-navigating) > .tc-tiddler-frame {\\n\\tborder: 1px solid \u003C\u003Ccolour tiddlyflex-current-tiddler>>;\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-style-unfocused-tiddlers()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"]:not(.tc-navigating) > .tc-tiddler-frame {\\n\\tborder: 1px solid \u003C\u003Ccolour tiddlyflex-current-tiddler-muted>>;\\n}\\n\\n\\\\end\\n\\n\u003C$let currentColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] }}} historyList={{{ [[$:/HistoryList-]addsuffix\u003CcurrentColumn>!match[$:/HistoryList-]] ~[[$:/HistoryList-1]] }}}>\\n\\n\\t\u003C$set name=\\\"cssEscapedTitle\\\" value={{{ [\u003ChistoryList>get[current-tiddler]escapecss[]] }}}>\\n\\n\\t\\t\u003C\u003Ctiddlyflex-style-current-tiddler>>\\n\\n\\t\u003C/$set>\\n\\n\\t\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>] +[!match\u003CcurrentColumn>]\\\" variable=\\\"column\\\">\\n\\n\\t\\t\u003C$let historyList={{{ [[$:/HistoryList-]addsuffix\u003Ccolumn>!match[$:/HistoryList-]] ~[[$:/HistoryList-1]] }}} cssEscapedTitle={{{ [\u003ChistoryList>get[current-tiddler]escapecss[]] }}}>\\n\\n\\t\\t\\t\u003C\u003Ctiddlyflex-style-unfocused-tiddlers>>\\n\\n\\t\\t\u003C/$let>\\n\\n\\t\u003C/$list>\\n\\n\u003C/$let>\"},\"$:/plugins/BTC/TiddlyFlex/styles/dragndrop\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/dragndrop\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"\\\\define tiddlyflex-tiddler-frame-transitions()\\n\\n.tc-tiddlyflex-story-river-inner > .tc-tiddler-view-frame > .tc-tiddler-frame, .tc-tiddlyflex-story-river-inner > .tc-tiddler-edit-frame > .tc-tiddler-frame {\\n\\ttransition: margin-top {{$:/config/tiddlyflex/dragndrop/AnimationDuration}}ms linear, margin-bottom {{$:/config/tiddlyflex/dragndrop/AnimationDuration}}ms linear;\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-position-start-tiddlers-no-copying()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(startingNextTiddlerCSSEscaped)$\\\"].tc-tiddler-view-frame > .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(startingNextTiddlerCSSEscaped)$\\\"].tc-tiddler-edit-frame > .tc-tiddler-frame {\\n\\ttransition: none;\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(startingNextTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame {\\n\\tmargin-top: calc({{$:/state/dragging!!height}}px + (2 * {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}}) + 2px);\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(startingNextTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame .tc-tiddlyflex-droppable-top-half {\\n\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + {{$:/config/tiddlyflex/story-river/padding}} + {{$:/state/dragging!!height}}px + 2px);\\n\\ttop: calc(-{{$:/state/dragging!!height}}px - (2 * {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}}) - 2px);\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-position-start-tiddlers-no-copying-nth-0()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(startingNextTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame {\\n\\tmargin-top: calc({{$:/state/dragging!!height}}px + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + 2px);\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(startingNextTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame .tc-tiddlyflex-droppable-top-half {\\n\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + {{$:/config/tiddlyflex/story-river/padding}} + {{$:/state/dragging!!height}}px + 2px);\\n\\ttop: calc(-{{$:/state/dragging!!height}}px - {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} - {{$:/config/tiddlyflex/story-river/padding}} - 2px);\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-position-start-tiddlers-copying()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(dragTiddlerCSSEscaped)$\\\"].tc-tiddler-view-frame > .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(dragTiddlerCSSEscaped)$\\\"].tc-tiddler-edit-frame > .tc-tiddler-frame {\\n\\ttransition: none;\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(dragTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame {\\n\\tmargin-top: calc({{$:/state/dragging!!height}}px + (2 * {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}}) + 2px);\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(dragTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame .tc-tiddlyflex-droppable-top-half {\\n\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + {{$:/config/tiddlyflex/story-river/padding}} + {{$:/state/dragging!!height}}px + 2px);\\n\\ttop: calc(-{{$:/state/dragging!!height}}px - (2 * {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}}) - 2px);\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-position-start-tiddlers-copying-nth-0()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(dragTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame {\\n\\tmargin-top: calc({{$:/state/dragging!!height}}px + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + 2px);\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(dragTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame .tc-tiddlyflex-droppable-top-half {\\n\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + {{$:/config/tiddlyflex/story-river/padding}} + {{$:/state/dragging!!height}}px + 2px);\\n\\ttop: calc(-{{$:/state/dragging!!height}}px - {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} - {{$:/config/tiddlyflex/story-river/padding}} - 2px);\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-target-tiddler-margin()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddler-view-frame:not([data-tiddler-title=\\\"$(targetTiddlerCSSEscaped)$\\\"]) .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddler-edit-frame:not([data-tiddler-title=\\\"$(targetTiddlerCSSEscaped)$\\\"]) .tc-tiddler-frame {\\n\\tmargin-top: calc( {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + 2px);\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddler-view-frame:first-of-type:not([data-tiddler-title=\\\"$(targetTiddlerCSSEscaped)$\\\"]) .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(currentRiver)$ .tc-tiddler-edit-frame:first-of-type:not([data-tiddler-title=\\\"$(targetTiddlerCSSEscaped)$\\\"]) .tc-tiddler-frame {\\n\\tmargin-top: 0;\\n}\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(targetTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame {\\n\\tmargin-top: calc({{$:/state/dragging!!height}}px + (2 * {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}}) + 2px);\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-target-tiddler-margin-nth-0()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(currentRiver)$ [data-tiddler-title=\\\"$(targetTiddlerCSSEscaped)$\\\"] .tc-tiddler-frame {\\n\\tmargin-top: calc({{$:/state/dragging!!height}}px + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + 2px);\\n}\\n\\n\\\\end\\n\\n\u003C%if [{$:/state/dragging}match[yes]] %>\\n\\n\\t.tc-tiddlyflex-droppable-top-half {\\n\\t\\tposition: absolute;\\n\\t\\ttop: calc( -{{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} - 2px);\\n\\t\\tleft: calc( -{{$:/config/tiddlyflex/story-river/padding}} - 1px);\\n\\t\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + 2px);\\n\\t\\twidth: calc(100% + (2 * {{$:/config/tiddlyflex/story-river/padding}}) + 2px);\\n\\t\\tdisplay: none;\\n\\t\\tz-index: 501;\\n\\t}\\n\\n\\t.tc-tiddler-view-frame:first-of-type .tc-tiddlyflex-droppable-top-half, .tc-tiddler-edit-frame:first-of-type .tc-tiddlyflex-droppable-top-half {\\n\\t\\ttop: calc( -{{$:/config/tiddlyflex/story-river/padding}} - 2px);\\n\\t\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/padding}} + 2px);\\n\\t}\\n\\n\\t.tc-tiddlyflex-droppable-bottom-half {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 50%;\\n\\t\\tleft: calc( -{{$:/config/tiddlyflex/story-river/padding}} - 1px);\\n\\t\\theight: calc(50% + 2px);\\n\\t\\twidth: calc(100% + (2 * {{$:/config/tiddlyflex/story-river/padding}}) + 2px);\\n\\t\\tz-index: 501;\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t.tc-tiddlyflex-droppable-top-half.tc-dragover {\\n\\t\\theight: calc(50% + (2 * {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}}) + {{$:/state/dragging!!height}}px + 2px);\\n\\t\\ttop: calc(-{{$:/state/dragging!!height}}px - (2 * {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}}) - 2px);\\n\\t}\\n\\n\\t.tc-tiddler-view-frame:first-of-type .tc-tiddlyflex-droppable-top-half.tc-dragover, .tc-tiddler-edit-frame:first-of-type .tc-tiddlyflex-droppable-top-half.tc-dragover {\\n\\t\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + {{$:/config/tiddlyflex/story-river/padding}} + {{$:/state/dragging!!height}}px + 2px);\\n\\t\\ttop: calc(-{{$:/state/dragging!!height}}px - {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} - {{$:/config/tiddlyflex/story-river/padding}} - 2px);\\n\\t}\\n\\n\\t.tc-tiddlyflex-droppable-bottom-half.tc-dragover {\\n\\t\\theight: calc(50% + {{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} + {{$:/state/dragging!!height}}px + 2px);\\n\\t}\\n\\n\\t\u003C%if [{$:/state/dragging}match[yes]] %>\\n\\n\\t\\t.tc-tiddlyflex-droppable-top-half, .tc-tiddlyflex-droppable-bottom-half {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\n\\t\\t\u003C$set name=\\\"dragTiddler\\\" value={{$:/state/dragging!!drag-tiddler}}>\\n\\n\\t\\t\\t\u003C$set name=\\\"dragTiddlerCSSEscaped\\\" value={{{ [\u003CdragTiddler>escapecss[]] }}}>\\n\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-tiddler-frame-transitions>>\\n\\n\\t\\t\\t\u003C/$set>\\n\\n\\t\\t\u003C/$set>\\n\\n\\t\u003C% endif %>\\n\\n\\t\u003C$let currentRiver={{$:/state/dragging!!river}} story={{{ [[$:/StoryList-]addsuffix\u003CcurrentRiver>] }}} targetTiddler={{$:/state/dragging!!target}} nextTiddler={{{ [list\u003Cstory>after\u003CtargetTiddler>] }}} margin={{$:/state/dragging!!margin}} targetTiddlerCSSEscaped={{{ [\u003Cmargin>match[top]then\u003CtargetTiddler>escapecss[]] [\u003Cmargin>match[bottom]then\u003CnextTiddler>escapecss[]] }}}>\\n\\n\\t\\t\u003C\u003Ctiddlyflex-target-tiddler-margin>>\\n\\n\\t\\t\u003C%if [{$:/state/dragging!!nth}match[0]] %>\\n\\n\\t\\t\\t\u003C\u003Ctiddlyflex-target-tiddler-margin-nth-0>>\\n\\n\\t\\t\u003C% endif %>\\n\\n\\t\u003C/$let>\\n\\n\\t.tc-tiddlyflex-below-story-river-droppable {\\n\\t\\tposition: absolute;\\n\\t\\twidth: calc(100% + {{$:/config/tiddlyflex/story-river/padding}});\\n\\t\\theight: calc(100% + {{$:/config/tiddlyflex/story-river/padding}});\\n\\t\\tleft: -{{$:/config/tiddlyflex/story-river/padding}};\\n\\t\\ttop: -{{$:/config/tiddlyflex/story-river/padding}};\\n\\t}\\n\\n\\t\u003C$let currentRiver={{$:/state/dragging!!start-river}} dragTiddler={{$:/state/dragging!!drag-tiddler}} startingNextTiddler={{$:/state/dragging!!starting-next-tiddler}} startingNextTiddlerCSSEscaped={{{ [\u003CstartingNextTiddler>escapecss[]] }}} dragTiddlerCSSEscaped={{{ [\u003CdragTiddler>escapecss[]] }}}>\\n\\n\\t\\t\u003C%if [{$:/state/dragging!!copying}!match[yes]] %>\\n\\n\\t\\t\\t\u003C\u003Ctiddlyflex-position-start-tiddlers-no-copying>>\\n\\n\\t\\t\\t\u003C%if [{$:/state/dragging!!nth}match[0]] %>\\n\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-position-start-tiddlers-no-copying-nth-0>>\\n\\n\\t\\t\\t\u003C% endif %>\\n\\n\\t\\t\u003C% else %>\\n\\n\\t\\t\\t\u003C\u003Ctiddlyflex-position-start-tiddlers-copying>>\\n\\n\\t\\t\\t\u003C%if [{$:/state/dragging!!nth}match[0]] %>\\n\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-position-start-tiddlers-copying-nth-0>>\\n\\n\\t\\t\\t\u003C% endif %>\\n\\n\\t\\t\u003C% endif %>\\n\\n\\t\u003C/$let>\\n\\n\u003C% endif %>\\n\\n\u003C%if [{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}!match[no]] %>\\n\\n\\t.tc-tiddler-frame img, .tc-tiddler-frame a:not(.tc-tiddlylink):not(.tc-tiddlylink-external) {\\n\\t\\t-webkit-user-drag: none;\\n\\t\\t-khtml-user-drag: none;\\n\\t\\t-moz-user-drag: none;\\n\\t\\t-o-user-drag: none;\\n\\t\\tuser-drag: none;\\n\\t\\t-webkit-user-select: none;\\n\\t\\t-khtml-user-select: none;\\n\\t\\t-moz-user-select: none;\\n\\t\\t-o-user-select: none;\\n\\t\\t-ms-user-select: none;\\n\\t\\tuser-select: none;\\n\\t\\ttouch-action: none;\\n\\t\\tpointer-events: none;\\n\\t}\\n\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/styles/icons\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/icons\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"svg.lucide.lucide-layout-dashboard {\\n\\tstroke: \u003C\u003Ccolour foreground>>;\\n\\tstroke-width: 3;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-right svg.lucide {\\n\\tstroke: \u003C\u003Ccolour muted-foreground>>;\\n\\tfill: none;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-right .tc-selected svg.lucide, .tc-tiddlyflex-top-toolbar-right .tc-btn-invisible:hover svg.lucide {\\n\\tstroke: \u003C\u003Ccolour foreground>>;\\n\\tfill: none;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-right .tc-selected svg.lucide.lucide-grip {\\n\\tstroke: \u003C\u003Ccolour primary>>;\\n}\"},\"$:/plugins/BTC/TiddlyFlex/styles/misc\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/misc\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"\u003C%if [function[tiddlyflex-layout]] %>\\n\\n\\t.tc-tiddlyflex-sidebar .tc-sidebar-header {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t.tc-tiddlyflex-top-toolbar .tc-show-sidebar-btn svg.tc-image-chevron-left, .tc-tiddlyflex-top-toolbar .tc-hide-sidebar-btn svg.tc-image-chevron-right {\\n\\t\\ttransform: none;\\n\\t}\\n\\n\\t.tc-modal-wrapper {\\n\\t\\tz-index: 999;\\n\\t}\\n\\n\\t.tc-plugin-reload-warning {\\n\\t\\tposition: relative;\\n\\t\\tpadding-top: 15px;\\n\\t\\tpadding-bottom: 15px;\\n\\t}\\n\\n\\t.tc-plugin-reload-warning p {\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/styles/narrow\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/narrow\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"@media (max-width: 991.98px) {\\n\\n\\t.tc-tiddlyflex-main-wrapper {\\n\\t\\toverflow-x: auto;\\n\\t}\\n\\n\\t.tc-tiddlyflex-main {\\n\\t\\toverflow-x: hidden;\\n\\t}\\n\\n\\t.tc-tiddlyflex-sidebar {\\n\\t\\tposition: fixed;\\n\\t\\ttop:0;\\n\\t\\tright: 0;\\n\\t\\tbottom: 0;\\n\\t\\twidth: 90%;\\n\\t\\tz-index: 1001;\\n\\t\\tbackground-color: \u003C\u003Ccolour page-background>>;\\n\\t\\ttransform: translate3d(0,0,0);\\n\\t\\t-webkit-transition: transform {{$:/config/AnimationDuration}}ms;\\n\\t\\ttransition: transform {{$:/config/AnimationDuration}}ms, box-shadow {{$:/config/AnimationDuration}}ms;\\n\\t}\\n\\n\\t\u003C%if [{$:/state/sidebar}match[no]] %>\\n\\n\\t\\t.tc-tiddlyflex-sidebar {\\n\\t\\t\\ttransform: translate3d(100%,0,0);\\n\\t\\t}\\n\\n\\t\u003C% endif %>\\n\\n\\t.tc-tiddlyflex-leftbar {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t.tc-tiddlyflex-story-river-container-inner {\\n\\t\\toverflow-x: auto;\\n\\t\\twidth: 100vw;\\n\\t\\tscroll-behavior: smooth;\\n\\t\\tscroll-snap-type: x mandatory;\\n\\t}\\n\\n\\t.tc-tiddlyflex-story-river-wrapper {\\n\\t\\twidth: 100vw;\\n\\t\\tflex-basis: 100vw;\\n\\t\\tscroll-snap-align: start;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t.tc-tiddlyflex-sidebar-hide.tc-tiddlyflex-sidebar-shown {\\n\\t\\tvisibility: visible;\\n\\t\\tbackground: rgba(0,0,0,.6);\\n\\t\\t-webkit-transition: background {{$:/config/AnimationDuration}}ms 0s;\\n\\t\\ttransition: background {{$:/config/AnimationDuration}}ms 0s;\\n\\t}\\n\\n}\\n\\n@media (max-width: 767.98px) {\\n\\t\\n\\t.tc-tiddlyflex-top-toolbar .tc-sidebar-lists .tc-search input {\\n\\t\\twidth: 150px;\\n\\t}\\n\\n}\\n\\n@media (max-width: 575.98px) {\\n\\t\\n\\t.tc-tiddlyflex-top-toolbar .tc-sidebar-lists .tc-search input {\\n\\t\\twidth: 100px;\\n\\t}\\n\\n\\t.tc-tiddlyflex-top-toolbar .tc-sidebar-lists .tc-search .tc-image-down-arrow + em {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n}\"},\"$:/plugins/BTC/TiddlyFlex/styles/scroll-margins\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/scroll-margins\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"\\\\define tiddlyflex-scroll-margin-top-story-river-padding()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(tiddlyFlexColumn)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"].tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(tiddlyFlexColumn)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"].tc-tiddler-edit-frame {\\n\\tscroll-margin-top: {{$:/config/tiddlyflex/story-river/padding}};\\n\\tscroll-margin-left: {{$:/config/tiddlyflex/story-river/padding}};\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-scroll-margin-top()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(tiddlyFlexColumn)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"].tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(tiddlyFlexColumn)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"].tc-tiddler-edit-frame {\\n\\tscroll-margin-top: {{{ [{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}compare:number:lteq{$:/config/tiddlyflex/story-river/padding}] ~[{$:/config/tiddlyflex/story-river/padding}] }}};\\n\\tscroll-margin-left: {{$:/config/tiddlyflex/story-river/padding}};\\n}\\n\\n\\\\end\\n\\n\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\n\\t\u003C$set name=\\\"tv-story-list\\\" value={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\n\\t\\t\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[nth[1]]\\\" variable=\\\"tiddler\\\">\\n\\n\\t\\t\\t\u003C$set name=\\\"cssEscapedTitle\\\" value={{{ [\u003Ctiddler>escapecss[]] }}}>\\n\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-scroll-margin-top-story-river-padding>>\\n\\n\\t\\t\\t\u003C/$set>\\n\\n\\t\\t\u003C/$list>\\n\\n\\t\\t\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-story-river-filter>] -[subfilter\u003Ctdff.tiddlyflex-story-river-filter>nth[1]]\\\" variable=\\\"tiddler\\\">\\n\\n\\t\\t\\t\u003C$set name=\\\"cssEscapedTitle\\\" value={{{ [\u003Ctiddler>escapecss[]] }}}>\\n\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-scroll-margin-top>>\\n\\n\\t\\t\\t\u003C/$set>\\n\\n\\t\\t\u003C/$list>\\n\\n\\t\u003C/$set>\\n\\n\u003C/$list>\"},\"$:/plugins/BTC/TiddlyFlex/styles/tiddler-animations\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/tiddler-animations\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"\\\\define tiddlyflex-dont-display-tiddler()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame > .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame > .tc-tiddler-frame {\\n\\tvisibility: hidden;\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-remove-tiddler-animation()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n@keyframes margin-top-remove-$(column)$-$(tiddlerTitleCSSEscaped)$ {\\n\\tfrom {\\n\\t\\tmargin-top: 0%;\\n\\t}\\n\\tto {\\n\\t\\tmargin-top: calc( -{{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} - $(tiddlerHeight)$px);\\n\\t}\\n}\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame > .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame > .tc-tiddler-frame {\\n\\tvisibility: visible;\\n\\t-webkit-animation: slide-out-$(direction)$ {{$:/config/AnimationDuration}}ms linear;\\n\\t-moz-animation: slide-out-$(direction)$ {{$:/config/AnimationDuration}}ms linear;\\n\\tanimation: slide-out-$(direction)$ {{$:/config/AnimationDuration}}ms linear;\\n\\tborder: 1px solid \u003C\u003Ccolour tiddlyflex-current-tiddler>>;\\n}\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame {\\n\\tz-index: 999;\\n}\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame + .tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame + .tc-tiddler-edit-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame + .tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame + .tc-tiddler-edit-frame {\\n\\t-webkit-animation: margin-top-remove-$(column)$-$(tiddlerTitleCSSEscaped)$ {{$:/config/AnimationDuration}}ms linear;\\n\\t-moz-animation: margin-top-remove-$(column)$-$(tiddlerTitleCSSEscaped)$ {{$:/config/AnimationDuration}}ms linear;\\n\\tanimation: margin-top-remove-$(column)$-$(tiddlerTitleCSSEscaped)$ {{$:/config/AnimationDuration}}ms linear;\\n}\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-add-tiddler-animation()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n@keyframes margin-top-add-$(column)$-$(tiddlerTitleCSSEscaped)$ {\\n\\tfrom {\\n\\t\\tmargin-top: calc( -{{$:/config/tiddlyflex/story-river/tiddler/margin-bottom}} - $(tiddlerHeight)$px);\\n\\t}\\n\\tto {\\n\\t\\tmargin-top: 0%;\\n\\t}\\n}\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame > .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame > .tc-tiddler-frame {\\n\\tvisibility: visible;\\n\\t-webkit-animation: slide-in-$(direction)$ {{$:/config/AnimationDuration}}ms linear;\\n\\t-moz-animation: slide-in-$(direction)$ {{$:/config/AnimationDuration}}ms linear;\\n\\tanimation: slide-in-$(direction)$ {{$:/config/AnimationDuration}}ms linear;\\n}\\n\\n\u003C%if [{$:/config/tiddlyflex/story-river/follow-current-column}match[yes]] %>\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame > .tc-tiddler-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame > .tc-tiddler-frame {\\n\\tborder: 1px solid \u003C\u003Ccolour tiddlyflex-current-tiddler>>;\\n}\\n\\n\u003C% endif %>\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame {\\n\\tz-index: 999;\\n}\\n\\n.tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame + .tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-view-frame + .tc-tiddler-edit-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame + .tc-tiddler-view-frame, .tc-tiddlyflex-story-river-$(column)$ .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(tiddlerTitleCSSEscaped)$\\\"].tc-tiddler-edit-frame + .tc-tiddler-edit-frame {\\n\\t-webkit-animation: margin-top-add-$(column)$-$(tiddlerTitleCSSEscaped)$ {{$:/config/AnimationDuration}}ms linear;\\n\\t-moz-animation: margin-top-add-$(column)$-$(tiddlerTitleCSSEscaped)$ {{$:/config/AnimationDuration}}ms linear;\\n\\tanimation: margin-top-add-$(column)$-$(tiddlerTitleCSSEscaped)$ {{$:/config/AnimationDuration}}ms linear;\\n}\\n\\n\\\\end\\n\\n\u003C%if [{$:/config/AnimationDuration}!is[blank]!match[0]] %>\\n\\n\\t@keyframes slide-out-left {\\n\\t\\tfrom {\\n\\t\\t\\ttransform: translateX(0%);\\n\\t\\t}\\n\\t\\tto {\\n\\t\\t\\ttransform: translateX(calc(-100% - (2 * {{$:/config/tiddlyflex/story-river/padding}})));\\n\\t\\t}\\n\\t}\\n\\n\\t@keyframes slide-out-right {\\n\\t\\tfrom {\\n\\t\\t\\ttransform: translateX(0%);\\n\\t\\t}\\n\\t\\tto {\\n\\t\\t\\ttransform: translateX(calc(100% + (2 * {{$:/config/tiddlyflex/story-river/padding}})));\\n\\t\\t}\\n\\t}\\n\\n\\t@keyframes slide-in-left {\\n\\t\\tfrom {\\n\\t\\t\\ttransform: translateX(calc( -100% - (2 * {{$:/config/tiddlyflex/story-river/padding}})));\\n\\t\\t}\\n\\t\\tto {\\n\\t\\t\\ttransform: translateX(0%);\\n\\t\\t}\\n\\t}\\n\\n\\t@keyframes slide-in-right {\\n\\t\\tfrom {\\n\\t\\t\\ttransform: translateX(calc(100% + (2 * {{$:/config/tiddlyflex/story-river/padding}})));\\n\\t\\t}\\n\\t\\tto {\\n\\t\\t\\ttransform: translateX(0%);\\n\\t\\t}\\n\\t}\\n\\n\\t\u003C$list filter=\\\"[all[tiddlers]prefix[$:/state/tiddlyflex/removing/]]\\\" variable=\\\"stateTiddler\\\">\\n\\t\\t\u003C$let tiddlerTitle={{{ [\u003CstateTiddler>removeprefix[$:/state/tiddlyflex/removing/]] }}} tiddlerTitleCSSEscaped={{{ [\u003CtiddlerTitle>escapecss[]] }}} column={{{ [\u003CstateTiddler>get[column]] }}}>\\n\\n\\t\\t\\t\u003C\u003Ctiddlyflex-dont-display-tiddler>>\\n\\n\\t\\t\\t\u003C%if [\u003CstateTiddler>has[height]] %>\\n\\t\\t\\t\\t\u003C$let direction={{{ [\u003CstateTiddler>get[direction]] }}} tiddlerHeight={{{ [\u003CstateTiddler>get[height]] }}}>\\n\\n\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-remove-tiddler-animation>>\\n\\n\\t\\t\\t\\t\\t.tc-tiddlyflex-story-river {\\n\\t\\t\\t\\t\\t\\toverflow-x: clip;\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\u003C/$let>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$let>\\n\\t\u003C/$list>\\n\\t\u003C$list filter=\\\"[all[tiddlers]prefix[$:/state/tiddlyflex/adding/]]\\\" variable=\\\"stateTiddler\\\">\\n\\t\\t\u003C$let tiddlerTitle={{{ [\u003CstateTiddler>removeprefix[$:/state/tiddlyflex/adding/]] }}} tiddlerTitleCSSEscaped={{{ [\u003CtiddlerTitle>escapecss[]] }}} column={{{ [\u003CstateTiddler>get[column]] }}}>\\n\\n\\t\\t\\t\u003C\u003Ctiddlyflex-dont-display-tiddler>>\\n\\n\\t\\t\\t\u003C%if [\u003CstateTiddler>has[height]] %>\\n\\t\\t\\t\\t\u003C$let direction={{{ [\u003CstateTiddler>get[direction]] }}} tiddlerHeight={{{ [\u003CstateTiddler>get[height]] }}}>\\n\\n\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-add-tiddler-animation>>\\n\\n\\t\\t\\t\\t\\t.tc-tiddlyflex-story-river {\\n\\t\\t\\t\\t\\t\\toverflow-x: clip;\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\u003C/$let>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$let>\\n\\t\u003C/$list>\\n\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/styles/toolbars\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/toolbars\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\".tc-tiddlyflex-top-toolbar {\\n\\tdisplay: flex;\\n\\talign-items: stretch;\\n\\tline-height: 2em;\\n}\\n\\n.tc-tiddlyflex-top-toolbar .tc-sidebar-lists.tc-sidebar-search {\\n\\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\\n}\\n\\n.tc-tiddlyflex-top-toolbar .tc-sidebar-lists.tc-sidebar-search .tc-block-dropdown {\\n\\tcolor: \u003C\u003Ccolour muted-foreground>>;\\n}\\n\\n.tc-tiddlyflex-top-toolbar .tc-sidebar-lists.tc-sidebar-search .tc-search > .tc-reveal {\\n\\tfont-size: 0.75rem;\\n}\\n\\n.tc-tiddlyflex-top-toolbar p {\\n\\tmargin: 0;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-left, .tc-tiddlyflex-top-toolbar-right {\\n\\tflex-grow: 0;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-center {\\n\\tflex-grow: 1;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-left {\\n\\tmargin-top: 5px;\\n\\tmargin-bottom: 5px;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-left > div:first-of-type {\\n\\tmargin-left: {{$:/config/tiddlyflex/story-river/padding}};\\n}\\n\\n.tc-tiddlyflex-top-toolbar-right button {\\n\\tmargin-right: 0.5em;\\n\\tvertical-align: bottom;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-right .tc-btn-invisible svg:not(.lucide) {\\n\\tfill: \u003C\u003Ccolour muted-foreground>>;\\n\\tfont-size: 1rem;\\n\\theight: 1rem;\\n\\twidth: 1rem;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-right .tc-btn-invisible:hover svg:not(.lucide), .tc-tiddlyflex-top-toolbar-right .tc-btn-invisible.tc-selected svg:not(.lucide) {\\n\\tfill: \u003C\u003Ccolour foreground>>;\\n}\\n\\n.tc-tiddlyflex-top-toolbar-right .tc-btn-invisible.tc-selected {\\n\\t-webkit-filter: drop-shadow(0px -1px 2px rgba(0,0,0,0.25));\\n\\t-moz-filter: drop-shadow(0px -1px 2px rgba(0,0,0,0.25));\\n\\tfilter: drop-shadow(0px -1px 2px rgba(0,0,0,0.25));\\n}\"},\"$:/plugins/BTC/TiddlyFlex/styles/z-indexes\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/styles/z-indexes\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"\\\\define tiddlyflex-tiddler-z-indexes-inner()\\n\\n\u003C$list filter=\\\"[range\u003CstoryListCount>]\\\">\\n`.tc-tiddlyflex-story-river-`$(tiddlyFlexColumn)$ `.tc-tiddlyflex-story-river-inner > .tc-tiddler-view-frame:nth-child(100n+`\u003C$text text=\u003C\u003CcurrentTiddler>>/>`) > .tc-tiddler-frame`,\\n`.tc-tiddlyflex-story-river-`$(tiddlyFlexColumn)$ `.tc-tiddlyflex-story-river-inner > .tc-tiddler-edit-frame:nth-child(100n+`\u003C$text text=\u003C\u003CcurrentTiddler>>/>`) > .tc-tiddler-frame {\\nz-index: `\u003C$text text={{{ [\u003CstoryListCount>add[501]subtract\u003CcurrentTiddler>] }}}/>`;\\n}\\n`\\n\u003C/$list>\\n\\n\\\\end\\n\\n\\\\define tiddlyflex-tiddler-z-indexes()\\n\\n\u003C$set name=\\\"storyListCount\\\" value={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[count[]] }}}>\\n\\n\\t\u003C\u003Ctiddlyflex-tiddler-z-indexes-inner>>\\n\\n\u003C/$set>\\n\\n\\\\end\\n\\n\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\n\\t\u003C$set name=\\\"tv-story-list\\\" value={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\n\\t\\t\u003C\u003Ctiddlyflex-tiddler-z-indexes>>\\n\\n\\t\u003C/$set>\\n\\n\u003C/$list>\"},\"$:/plugins/BTC/TiddlyFlex/modules/widgets/subclasses/navigator.js\":{\"text\":\"/*\\\\\\ntitle: $:/plugins/BTC/TiddlyFlex/modules/widgets/subclasses/navigator.js\\ntype: application/javascript\\nmodule-type: widget-subclass\\n\\nWidget base class\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nexports.baseClass = \\\"navigator\\\"; // Extend the \u003C$checkbox> widget\\n\\nexports.constructor = function(parseTreeNode,options) {\\n\\tthis.initialise(parseTreeNode,options);\\n};\\n\\nexports.prototype = {};\\n\\nexports.prototype.handleNavigateEvent = function(event) {\\n\\tevent = $tw.hooks.invokeHook(\\\"th-navigating\\\",event);\\n\\tif(event.navigateTo || (event.paramObject && event.paramObject.navigateTo)) {\\n\\t\\tthis.addToStory(event.paramObject && event.paramObject.navigateTo ? event.paramObject.navigateTo : event.navigateTo,event.paramObject && event.paramObject.navigateFromTitle ? event.paramObject.navigateFromTitle : event.navigateFromTitle);\\n\\t\\tif(!event.navigateSuppressNavigation && !(event.paramObject ? (event.paramObject.navigateSuppressNavigation === \\\"true\\\") : false)) {\\n\\t\\t\\tthis.addToHistory((event.paramObject && event.paramObject.navigateTo) ? event.paramObject.navigateTo : event.navigateTo,(event.paramObject && event.paramObject.navigateFromClientRect) ? event.paramObject.navigateFromClientRect : event.navigateFromClientRect);\\n\\t\\t}\\n\\t}\\n\\treturn false;\\n};\\n\\n// Close a specified tiddler\\nexports.prototype.handleCloseTiddlerEvent = function(event) {\\n\\tevent = $tw.hooks.invokeHook(\\\"th-closing-tiddler\\\",event);\\n\\tvar title = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle,\\n\\t\\tstoryList = this.getStoryList();\\n\\t// Look for tiddlers with this title to close\\n\\tthis.removeTitleFromStory(storyList,title);\\n\\tthis.saveStoryList(storyList);\\n\\treturn false;\\n};\\n\\n// Close other tiddlers\\nexports.prototype.handleCloseOtherTiddlersEvent = function(event) {\\n\\tvar title = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle;\\n\\tthis.saveStoryList([title]);\\n\\treturn false;\\n};\\n\\n// Place a tiddler in edit mode\\nexports.prototype.handleEditTiddlerEvent = function(event) {\\n\\tvar editTiddler = $tw.hooks.invokeHook(\\\"th-editing-tiddler\\\",event),\\n\\t win = event.event && event.event.view ? event.event.view : window;\\n\\tif(!editTiddler) {\\n\\t\\treturn false;\\n\\t}\\n\\tvar self = this;\\n\\tfunction isUnmodifiedShadow(title) {\\n\\t\\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\\n\\t}\\n\\tfunction confirmEditShadow(title) {\\n\\t\\treturn win.confirm($tw.language.getString(\\n\\t\\t\\t\\\"ConfirmEditShadowTiddler\\\",\\n\\t\\t\\t{variables:\\n\\t\\t\\t\\t{title: title}\\n\\t\\t\\t}\\n\\t\\t));\\n\\t}\\n\\tvar title = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle;\\n\\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\\n\\t\\treturn false;\\n\\t}\\n\\t// Replace the specified tiddler with a draft in edit mode\\n\\tvar draftTiddler = this.makeDraftTiddler(title);\\n\\t// Update the story and history if required\\n\\tif(!event.paramObject || event.paramObject.suppressNavigation !== \\\"yes\\\") {\\n\\t\\tvar draftTitle = draftTiddler.fields.title,\\n\\t\\t\\tstoryList = this.getStoryList();\\n\\t\\tthis.removeTitleFromStory(storyList,draftTitle);\\n\\t\\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\\n\\t\\tif(!(event.paramObject && (event.paramObject.suppressNavigation === \\\"true\\\"))) {\\n\\t\\t\\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\\n\\t\\t}\\n\\t\\tthis.saveStoryList(storyList);\\n\\t\\treturn false;\\n\\t}\\n};\\n\\n// Delete a tiddler\\nexports.prototype.handleDeleteTiddlerEvent = function(event) {\\n\\t// Get the tiddler we're deleting\\n\\tvar title = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle,\\n\\t\\ttiddler = this.wiki.getTiddler(title),\\n\\t\\tstoryList = this.getStoryList(),\\n\\t\\toriginalTitle = tiddler ? tiddler.fields[\\\"draft.of\\\"] : \\\"\\\",\\n\\t\\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\\n\\t\\tconfirmationTitle,\\n\\t\\twin = event.event && event.event.view ? event.event.view : window;\\n\\t// Check if the tiddler we're deleting is in draft mode\\n\\tif(originalTitle) {\\n\\t\\t// If so, we'll prompt for confirmation referencing the original tiddler\\n\\t\\tconfirmationTitle = originalTitle;\\n\\t} else {\\n\\t\\t// If not a draft, then prompt for confirmation referencing the specified tiddler\\n\\t\\tconfirmationTitle = title;\\n\\t}\\n\\t// Seek confirmation\\n\\tif(((originalTitle && this.wiki.getTiddler(originalTitle)) || (tiddler && ((tiddler.fields.text || \\\"\\\") !== \\\"\\\"))) && !win.confirm($tw.language.getString(\\n\\t\\t\\t\\t\\\"ConfirmDeleteTiddler\\\",\\n\\t\\t\\t\\t{variables:\\n\\t\\t\\t\\t\\t{title: confirmationTitle}\\n\\t\\t\\t\\t}\\n\\t\\t\\t))) {\\n\\t\\treturn false;\\n\\t}\\n\\t// Delete the original tiddler\\n\\tif(originalTitle) {\\n\\t\\tif(originalTiddler) {\\n\\t\\t\\t$tw.hooks.invokeHook(\\\"th-deleting-tiddler\\\",originalTiddler);\\n\\t\\t}\\n\\t\\tthis.wiki.deleteTiddler(originalTitle);\\n\\t\\tthis.removeTitleFromStory(storyList,originalTitle);\\n\\t}\\n\\t// Invoke the hook function and delete this tiddler\\n\\tif(tiddler) {\\n\\t\\t$tw.hooks.invokeHook(\\\"th-deleting-tiddler\\\",tiddler);\\n\\t\\tthis.wiki.deleteTiddler(title);\\t\\n\\t}\\n\\t// Remove the closed tiddler from the story\\n\\tthis.removeTitleFromStory(storyList,title);\\n\\tthis.saveStoryList(storyList);\\n\\t// Trigger an autosave\\n\\t$tw.rootWidget.dispatchEvent({type: \\\"tm-auto-save-wiki\\\"});\\n\\treturn false;\\n};\\n\\n// Take a tiddler out of edit mode without saving the changes\\nexports.prototype.handleCancelTiddlerEvent = function(event) {\\n\\tevent = $tw.hooks.invokeHook(\\\"th-cancelling-tiddler\\\", event);\\n\\tvar win = event.event && event.event.view ? event.event.view : window;\\n\\t// Flip the specified tiddler from draft back to the original\\n\\tvar draftTitle = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle,\\n\\t\\tdraftTiddler = this.wiki.getTiddler(draftTitle),\\n\\t\\toriginalTitle = draftTiddler && draftTiddler.fields[\\\"draft.of\\\"];\\n\\tif(draftTiddler && originalTitle) {\\n\\t\\t// Ask for confirmation if the tiddler text has changed\\n\\t\\tvar isConfirmed = true,\\n\\t\\t\\toriginalTiddler = this.wiki.getTiddler(originalTitle),\\n\\t\\t\\tstoryList = this.getStoryList();\\n\\t\\tif(this.wiki.isDraftModified(draftTitle)) {\\n\\t\\t\\tisConfirmed = win.confirm($tw.language.getString(\\n\\t\\t\\t\\t\\\"ConfirmCancelTiddler\\\",\\n\\t\\t\\t\\t{variables:\\n\\t\\t\\t\\t\\t{title: draftTitle}\\n\\t\\t\\t\\t}\\n\\t\\t\\t));\\n\\t\\t}\\n\\t\\t// Remove the draft tiddler\\n\\t\\tif(isConfirmed) {\\n\\t\\t\\tthis.wiki.deleteTiddler(draftTitle);\\n\\t\\t\\tif(!event.paramObject || event.paramObject.suppressNavigation !== \\\"yes\\\") {\\n\\t\\t\\t\\tif(originalTiddler) {\\n\\t\\t\\t\\t\\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\\n\\t\\t\\t\\t\\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\tthis.removeTitleFromStory(storyList,draftTitle);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tthis.saveStoryList(storyList);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\treturn false;\\n};\\n\\n// Close a specified tiddler\\nexports.prototype.handleCloseTiddlerEvent = function(event) {\\n\\tevent = $tw.hooks.invokeHook(\\\"th-closing-tiddler\\\",event);\\n\\tvar title = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle,\\n\\t\\tstoryList = this.getStoryList();\\n\\t// Look for tiddlers with this title to close\\n\\tthis.removeTitleFromStory(storyList,title);\\n\\tthis.saveStoryList(storyList);\\n\\treturn false;\\n};\\n\\n// Close other tiddlers\\nexports.prototype.handleCloseOtherTiddlersEvent = function(event) {\\n\\tvar title = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle;\\n\\tthis.saveStoryList([title]);\\n\\treturn false;\\n};\\n\\n// Take a tiddler out of edit mode, saving the changes\\nexports.prototype.handleSaveTiddlerEvent = function(event) {\\n\\tvar title = event.param || event.tiddlerTitle || event.paramObject.tiddlerTitle,\\n\\t\\ttiddler = this.wiki.getTiddler(title),\\n\\t\\tstoryList = this.getStoryList(),\\n\\t \\twin = event.event && event.event.view ? event.event.view : window;\\n\\t// Replace the original tiddler with the draft\\n\\tif(tiddler) {\\n\\t\\tvar draftTitle = (tiddler.fields[\\\"draft.title\\\"] || \\\"\\\").trim(),\\n\\t\\t\\tdraftOf = (tiddler.fields[\\\"draft.of\\\"] || \\\"\\\").trim();\\n\\t\\tif(draftTitle) {\\n\\t\\t\\tvar isRename = draftOf !== draftTitle,\\n\\t\\t\\t\\tisConfirmed = true;\\n\\t\\t\\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\\n\\t\\t\\t\\tisConfirmed = win.confirm($tw.language.getString(\\n\\t\\t\\t\\t\\t\\\"ConfirmOverwriteTiddler\\\",\\n\\t\\t\\t\\t\\t{variables:\\n\\t\\t\\t\\t\\t\\t{title: draftTitle}\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t));\\n\\t\\t\\t}\\n\\t\\t\\tif(isConfirmed) {\\n\\t\\t\\t\\t// Create the new tiddler and pass it through the th-saving-tiddler hook\\n\\t\\t\\t\\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\\n\\t\\t\\t\\t\\ttitle: draftTitle,\\n\\t\\t\\t\\t\\t\\\"draft.title\\\": undefined,\\n\\t\\t\\t\\t\\t\\\"draft.of\\\": undefined\\n\\t\\t\\t\\t},this.wiki.getModificationFields());\\n\\t\\t\\t\\tnewTiddler = $tw.hooks.invokeHook(\\\"th-saving-tiddler\\\",newTiddler,tiddler);\\n\\t\\t\\t\\tthis.wiki.addTiddler(newTiddler);\\n\\t\\t\\t\\t// If enabled, relink references to renamed tiddler\\n\\t\\t\\t\\tvar shouldRelink = this.getAttribute(\\\"relinkOnRename\\\",\\\"no\\\").toLowerCase().trim() === \\\"yes\\\";\\n\\t\\t\\t\\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\\n\\t\\t\\t\\t\\tthis.wiki.relinkTiddler(draftOf,draftTitle);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t// Remove the draft tiddler\\n\\t\\t\\t\\tthis.wiki.deleteTiddler(title);\\n\\t\\t\\t\\t// Remove the original tiddler if we're renaming it\\n\\t\\t\\t\\tif(isRename) {\\n\\t\\t\\t\\t\\tthis.wiki.deleteTiddler(draftOf);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t// #2381 always remove new title & old\\n\\t\\t\\t\\tthis.removeTitleFromStory(storyList,draftTitle);\\n\\t\\t\\t\\tthis.removeTitleFromStory(storyList,draftOf);\\n\\t\\t\\t\\tif(!event.paramObject || event.paramObject.suppressNavigation !== \\\"yes\\\") {\\n\\t\\t\\t\\t\\t// Replace the draft in the story with the original\\n\\t\\t\\t\\t\\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\\n\\t\\t\\t\\t\\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\\n\\t\\t\\t\\t\\tif(draftTitle !== this.storyTitle) {\\n\\t\\t\\t\\t\\t\\tthis.saveStoryList(storyList);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t// Trigger an autosave\\n\\t\\t\\t\\t$tw.rootWidget.dispatchEvent({type: \\\"tm-auto-save-wiki\\\"});\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\treturn false;\\n};\\n\\nexports.prototype.handleFoldTiddlerEvent = function(event) {\\n\\tvar paramObject = (event.event.paramObject && event.event.paramObject.foldedState) ? event.event.paramObject : (event.paramObject || {});\\n\\tif(paramObject.foldedState) {\\n\\t\\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\\\"show\\\") === \\\"show\\\" ? \\\"hide\\\" : \\\"show\\\";\\n\\t\\tthis.wiki.setText(paramObject.foldedState,\\\"text\\\",null,foldedState);\\n\\t}\\n};\\n\\nexports.prototype.handleFoldOtherTiddlersEvent = function(event) {\\n\\tvar self = this,\\n\\t\\tparamObject = (event.event.paramObject && event.event.paramObject.foldedStatePrefix) ? event.event.paramObject : (event.paramObject || {}),\\n\\t\\tprefix = paramObject.foldedStatePrefix;\\n\\t$tw.utils.each(this.getStoryList(),function(title) {\\n\\t\\tself.wiki.setText(prefix + title,\\\"text\\\",null,event.param === title ? \\\"show\\\" : \\\"hide\\\");\\n\\t});\\n};\\n\\nexports.prototype.handleFoldAllTiddlersEvent = function(event) {\\n\\tvar self = this,\\n\\t\\tparamObject = (event.event.paramObject && event.event.paramObject.foldedStatePrefix) ? event.event.paramObject : (event.paramObject || {}),\\n\\t\\tprefix = paramObject.foldedStatePrefix || \\\"$:/state/folded/\\\";\\n\\t$tw.utils.each(this.getStoryList(),function(title) {\\n\\t\\tself.wiki.setText(prefix + title,\\\"text\\\",null,\\\"hide\\\");\\n\\t});\\n};\\n\\nexports.prototype.handleUnfoldAllTiddlersEvent = function(event) {\\n\\tvar self = this,\\n\\t\\tparamObject = (event.event.paramObject && event.event.paramObject.foldedStatePrefix) ? event.event.paramObject : (event.paramObject || {}),\\n\\t\\tprefix = paramObject.foldedStatePrefix;\\n\\t$tw.utils.each(this.getStoryList(),function(title) {\\n\\t\\tself.wiki.setText(prefix + title,\\\"text\\\",null,\\\"show\\\");\\n\\t});\\n};\\n\\n})();\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/BTC/TiddlyFlex/modules/widgets/subclasses/navigator.js\",\"module-type\":\"widget-subclass\"},\"$:/plugins/BTC/TiddlyFlex/modules/widgets/subclasses/droppable.js\":{\"text\":\"/*\\\\\\ntitle: $:/plugins/BTC/TiddlyFlex/modules/widgets/subclasses/droppable.js\\ntype: application/javascript\\nmodule-type: widget-subclass\\n\\nWidget base class\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nexports.baseClass = \\\"droppable\\\";\\n\\n// Specify a different name to make the subclass available as a new widget instead of overwriting the baseclass:\\n// exports.name = \\\"my-enhanced-checkbox\\\";\\n\\nexports.constructor = function(parseTreeNode,options) {\\n\\tthis.initialise(parseTreeNode,options);\\n};\\n\\nexports.prototype = {};\\n\\nexports.prototype.render = function(parent,nextSibling) {\\n\\tvar self = this,\\n\\t\\ttag = this.parseTreeNode.isBlock ? \\\"div\\\" : \\\"span\\\",\\n\\t\\tdomNode;\\n\\t// Remember parent\\n\\tthis.parentDomNode = parent;\\n\\t// Compute attributes and execute state\\n\\tthis.computeAttributes();\\n\\tthis.execute();\\n\\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\\n\\t\\ttag = this.droppableTag;\\n\\t}\\n\\t// Create element and assign classes\\n\\tdomNode = this.document.createElement(tag);\\n\\tthis.domNode = domNode;\\n\\tthis.assignDomNodeClasses();\\n\\t// Add event handlers\\n\\tif(this.droppableEnable) {\\n\\t\\t$tw.utils.addEventListeners(domNode,[\\n\\t\\t\\t{name: \\\"dragenter\\\", handlerObject: this, handlerMethod: \\\"handleDragEnterEvent\\\"},\\n\\t\\t\\t{name: \\\"dragover\\\", handlerObject: this, handlerMethod: \\\"handleDragOverEvent\\\"},\\n\\t\\t\\t{name: \\\"dragleave\\\", handlerObject: this, handlerMethod: \\\"handleDragLeaveEvent\\\"},\\n\\t\\t\\t{name: \\\"drop\\\", handlerObject: this, handlerMethod: \\\"handleDropEvent\\\"},\\n\\t\\t\\t{name: \\\"dragend\\\", handlerObject: this, handlerMethod: \\\"handleDragEndEvent\\\"}\\n\\t\\t]);\\n\\t} else {\\n\\t\\t$tw.utils.addClass(this.domNode,this.disabledClass);\\n\\t}\\n\\t// Insert element\\n\\tparent.insertBefore(domNode,nextSibling);\\n\\tthis.renderChildren(domNode,null);\\n\\tthis.domNodes.push(domNode);\\n\\t// Stack of outstanding enter/leave events\\n\\tthis.currentlyEntered = [];\\n};\\n\\nexports.prototype.handleEvent = function(event) {\\n\\tif(event.type === \\\"dragenter\\\") {\\n\\t\\tif(event.target && event.target !== this.domNode && !$tw.utils.domContains(this.domNode,event.target)) {\\n\\t\\t\\tthis.resetState(null,event);\\n\\t\\t}\\n\\t} else if(event.type === \\\"dragleave\\\") {\\n\\t\\t// Check if drag left the window\\n\\t\\tif(event.relatedTarget === null || (event.relatedTarget && event.relatedTarget.nodeName === \\\"HTML\\\")) {\\n\\t\\t\\tthis.resetState(null,event);\\n\\t\\t}\\n\\t}\\n};\\n\\nexports.prototype.resetState = function(options,event) {\\n\\toptions = options || {};\\n\\tif(this.domNodes[0]) {\\n\\t\\t$tw.utils.removeClass(this.domNodes[0],\\\"tc-dragover\\\");\\n\\t}\\n\\tthis.currentlyEntered = [];\\n\\tthis.document.body.removeEventListener(\\\"dragenter\\\",this,true);\\n\\tthis.document.body.removeEventListener(\\\"dragleave\\\",this,true);\\n\\tif(options.performDragLeaveActions && this.dragLeaveActions) {\\n\\t\\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\\n\\t\\tthis.invokeActionString(this.dragLeaveActions,this,event,{modifier: modifierKey});\\n\\t}\\n\\tif(options.performDragEndActions && this.dragEndActions) {\\n\\t\\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\\n\\t\\tthis.invokeActionString(this.dragEndActions,this,event,{modifier: modifierKey});\\n\\t}\\n};\\n\\nexports.prototype.enterDrag = function(event) {\\n\\tif(this.currentlyEntered.indexOf(event.target) === -1) {\\n\\t\\tthis.currentlyEntered.push(event.target);\\n\\t}\\n\\t// If we're entering for the first time we need to apply highlighting\\n\\t$tw.utils.addClass(this.domNodes[0],\\\"tc-dragover\\\");\\n\\tthis.document.body.addEventListener(\\\"dragenter\\\",this,true);\\n\\tthis.document.body.addEventListener(\\\"dragleave\\\",this,true);\\n\\tif(this.dragEnterActions) {\\n\\t\\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\\n\\t\\tthis.invokeActionString(this.dragEnterActions,this,event,{modifier: modifierKey});\\n\\t}\\n};\\n\\nexports.prototype.leaveDrag = function(event) {\\n\\tvar pos = this.currentlyEntered.indexOf(event.target);\\n\\tif(pos !== -1) {\\n\\t\\tthis.currentlyEntered.splice(pos,1);\\n\\t}\\n\\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\\n\\tif(this.currentlyEntered.length === 0) {\\n\\t\\tthis.resetState({performDragLeaveActions: true},event);\\n\\t}\\n};\\n\\nexports.prototype.handleDragEnterEvent = function(event) {\\n\\tthis.enterDrag(event);\\n\\t// Tell the browser that we're ready to handle the drop\\n\\tevent.preventDefault();\\n\\t// Tell the browser not to ripple the drag up to any parent drop handlers\\n\\tevent.stopPropagation();\\n\\treturn false;\\n};\\n\\nexports.prototype.handleDragOverEvent = function(event) {\\n\\t// Check for being over a TEXTAREA or INPUT\\n\\tif([\\\"TEXTAREA\\\",\\\"INPUT\\\"].indexOf(event.target.tagName) !== -1) {\\n\\t\\treturn false;\\n\\t}\\n\\t// Tell the browser that we're still interested in the drop\\n\\tevent.preventDefault();\\n\\t// Set the drop effect\\n\\tevent.dataTransfer.dropEffect = this.droppableEffect;\\n\\treturn false;\\n};\\n\\nexports.prototype.handleDragLeaveEvent = function(event) {\\n\\tthis.leaveDrag(event);\\n\\treturn false;\\n};\\n\\nexports.prototype.handleDragEndEvent = function(event) {\\n\\tthis.resetState({performDragEndActions: true});\\n};\\n\\nexports.prototype.handleDropEvent = function(event) {\\n\\tvar self = this;\\n\\tthis.leaveDrag(event);\\n\\t// Check for being over a TEXTAREA or INPUT\\n\\tif([\\\"TEXTAREA\\\",\\\"INPUT\\\"].indexOf(event.target.tagName) !== -1) {\\n\\t\\treturn false;\\n\\t}\\n\\tvar dataTransfer = event.dataTransfer;\\n\\t// Remove highlighting\\n\\tthis.resetState(null,event);\\n\\t// Try to import the various data types we understand\\n\\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\\n\\t\\tfieldsArray.forEach(function(fields) {\\n\\t\\t\\tself.performActions(fields.title || fields.text,event);\\n\\t\\t});\\n\\t});\\n\\t// Tell the browser that we handled the drop\\n\\tevent.preventDefault();\\n\\t// Stop the drop ripple up to any parent handlers\\n\\tevent.stopPropagation();\\n\\treturn false;\\n};\\n\\nexports.prototype.performActions = function(title,event) {\\n\\tif(this.droppableActions) {\\n\\t\\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\\n\\t\\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title, modifier: modifierKey});\\n\\t}\\n};\\n\\n/*\\nCompute the internal state of the widget\\n*/\\nexports.prototype.execute = function() {\\n\\tthis.droppableActions = this.getAttribute(\\\"actions\\\");\\n\\tthis.droppableEffect = this.getAttribute(\\\"effect\\\",\\\"copy\\\");\\n\\tthis.droppableTag = this.getAttribute(\\\"tag\\\");\\n\\tthis.droppableEnable = (this.getAttribute(\\\"enable\\\") || \\\"yes\\\") === \\\"yes\\\";\\n\\tthis.disabledClass = this.getAttribute(\\\"disabledClass\\\",\\\"\\\");\\n\\tthis.dragEnterActions = this.getAttribute(\\\"dragenteractions\\\");\\n\\tthis.dragLeaveActions = this.getAttribute(\\\"dragleaveactions\\\");\\n\\tthis.dragEndActions = this.getAttribute(\\\"dragendactions\\\");\\n\\t// Make child widgets\\n\\tthis.makeChildWidgets();\\n};\\n\\n/*\\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\\n*/\\nexports.prototype.refresh = function(changedTiddlers) {\\n\\tvar changedAttributes = this.computeAttributes();\\n\\tif(changedAttributes.tag || changedAttributes.enable || changedAttributes.disabledClass || changedAttributes.actions || changedAttributes.effect || changedAttributes.dragenteractions || changedAttributes.dragleaveactions || changedAttributes.dragendactions) {\\n\\t\\tthis.refreshSelf();\\n\\t\\treturn true;\\n\\t} else if(changedAttributes[\\\"class\\\"]) {\\n\\t\\tthis.assignDomNodeClasses();\\n\\t}\\n\\treturn this.refreshChildren(changedTiddlers);\\n};\\n\\n})();\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/BTC/TiddlyFlex/modules/widgets/subclasses/droppable.js\",\"module-type\":\"widget-subclass\"},\"$:/core/modules/utils/dom/scroller.js\":{\"text\":\"/*\\\\\\ntitle: $:/core/modules/utils/dom/scroller.js\\ntype: application/javascript\\nmodule-type: utils\\n\\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\n/*\\nEvent handler for when the `tm-scroll` event hits the document body\\n*/\\nvar PageScroller = function() {\\n\\tthis.idRequestFrame = null;\\n\\tthis.requestAnimationFrame = window.requestAnimationFrame ||\\n\\t\\twindow.webkitRequestAnimationFrame ||\\n\\t\\twindow.mozRequestAnimationFrame ||\\n\\t\\tfunction(callback) {\\n\\t\\t\\treturn window.setTimeout(callback, 1000/60);\\n\\t\\t};\\n\\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\\n\\t\\twindow.webkitCancelAnimationFrame ||\\n\\t\\twindow.webkitCancelRequestAnimationFrame ||\\n\\t\\twindow.mozCancelAnimationFrame ||\\n\\t\\twindow.mozCancelRequestAnimationFrame ||\\n\\t\\tfunction(id) {\\n\\t\\t\\twindow.clearTimeout(id);\\n\\t\\t};\\n};\\n\\nPageScroller.prototype.isScrolling = function() {\\n\\treturn this.idRequestFrame !== null;\\n}\\n\\nPageScroller.prototype.cancelScroll = function(srcWindow) {\\n\\tif(this.idRequestFrame) {\\n\\t\\tthis.cancelAnimationFrame.call(srcWindow,this.idRequestFrame);\\n\\t\\tthis.idRequestFrame = null;\\n\\t}\\n};\\n\\n/*\\nHandle an event\\n*/\\nPageScroller.prototype.handleEvent = function(event) {\\n\\tif(event.type === \\\"tm-scroll\\\") {\\n\\t\\tvar options = {};\\n\\t\\tif($tw.utils.hop(event.paramObject,\\\"animationDuration\\\")) {\\n\\t\\t\\toptions.animationDuration = event.paramObject.animationDuration;\\n\\t\\t}\\n\\t\\tif(event.paramObject && event.paramObject.selector) {\\n\\t\\t\\tthis.scrollSelectorIntoView(null,event.paramObject.selector,null,options);\\n\\t\\t} else {\\n\\t\\t\\tthis.scrollIntoView(event.target,null,options);\\n\\t\\t}\\n\\t\\treturn false; // Event was handled\\n\\t}\\n\\treturn true;\\n};\\n\\n/*\\nHandle a scroll event hitting the page document\\n*/\\nPageScroller.prototype.scrollIntoView = function(element,callback,options) {\\n\\tvar self = this,\\n\\t\\tduration = $tw.utils.hop(options,\\\"animationDuration\\\") ? parseInt(options.animationDuration) : $tw.utils.getAnimationDuration(),\\n\\t\\tsrcWindow = element ? element.ownerDocument.defaultView : window;\\n\\ttry {\\n\\t\\t$tw.utils.addClass(element,\\\"tc-navigating\\\");\\n\\t\\tvar scrollIntoView = function() {\\n\\t\\t\\telement.scrollIntoView({block: \\\"start\\\", inline: \\\"start\\\"});\\n\\t\\t};\\n\\t\\tthis.requestAnimationFrame.call(srcWindow,scrollIntoView);\\n\\t\\tsetTimeout(function() {\\n\\t\\t\\t$tw.utils.removeClass(element,\\\"tc-navigating\\\");\\n\\t\\t},duration);\\n\\t} catch(e) {\\n\\t\\tconsole.log(e);\\n\\t}\\n};\\n\\nPageScroller.prototype.scrollSelectorIntoView = function(baseElement,selector,callback,options) {\\n\\tbaseElement = baseElement || document;\\n\\tvar element = $tw.utils.querySelectorSafe(selector,baseElement);\\n\\tif(element) {\\n\\t\\tthis.scrollIntoView(element,callback,options);\\n\\t}\\n};\\n\\nexports.PageScroller = PageScroller;\\n\\n})();\\n\",\"type\":\"application/javascript\",\"title\":\"$:/core/modules/utils/dom/scroller.js\",\"module-type\":\"utils\"},\"$:/plugins/BTC/TiddlyFlex/modules/storyviews/tiddlyflex.js\":{\"text\":\"/*\\\\\\ntitle: $:/plugins/BTC/TiddlyFlex/modules/storyviews/tiddlyflex.js\\ntype: application/javascript\\nmodule-type: storyview\\n\\nViews the story as a linear sequence\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nvar easing = \\\"cubic-bezier(0.645, 0.045, 0.355, 1)\\\"; // From http://easings.net/#easeInOutCubic\\n\\nvar ClassicStoryView = function(listWidget) {\\n\\tthis.listWidget = listWidget;\\n};\\n\\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\\n\\tvar duration = $tw.utils.getAnimationDuration()\\n\\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\\n\\tif(listElementIndex === undefined) {\\n\\t\\treturn;\\n\\t}\\n\\tvar listItemWidget = this.listWidget.children[listElementIndex],\\n\\t\\ttargetElement = listItemWidget.findFirstDomNode();\\n\\t// Abandon if the list entry isn't a DOM element (it might be a text node)\\n\\tif(!targetElement || targetElement.nodeType === Node.TEXT_NODE) {\\n\\t\\treturn;\\n\\t}\\n\\tif(duration) {\\n\\t\\t// Scroll the node into view\\n\\t\\tthis.listWidget.dispatchEvent({type: \\\"tm-scroll\\\", target: targetElement});\\n\\t} else {\\n\\t\\ttargetElement.scrollIntoView();\\n\\t}\\n};\\n\\nClassicStoryView.prototype.insert = function(widget) {\\n\\tvar duration = $tw.utils.getAnimationDuration(),\\n\\t\\ttiddlerTitle = widget.parseTreeNode.itemTitle;\\n\\tif(duration && !widget.wiki.tiddlerExists(\\\"$:/state/dragging\\\") && !widget.wiki.tiddlerExists(\\\"$:/state/tiddlyflex/adding/\\\" + tiddlerTitle)) {\\n\\t\\tvar targetElement = widget.findFirstDomNode();\\n\\t\\t// Abandon if the list entry isn't a DOM element (it might be a text node)\\n\\t\\tif(!targetElement || targetElement.nodeType === Node.TEXT_NODE) {\\n\\t\\t\\treturn;\\n\\t\\t}\\n\\t\\t// Get the current height of the tiddler\\n\\t\\tvar computedStyle = window.getComputedStyle(targetElement),\\n\\t\\t\\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\\n\\t\\t\\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\\n\\t\\t\\tcurrHeight = targetElement.offsetHeight + currMarginTop;\\n\\t\\t// Reset the margin once the transition is over\\n\\t\\tsetTimeout(function() {\\n\\t\\t\\t$tw.utils.setStyle(targetElement,[\\n\\t\\t\\t\\t{transition: \\\"none\\\"},\\n\\t\\t\\t\\t{marginBottom: \\\"\\\"}\\n\\t\\t\\t]);\\n\\t\\t},duration);\\n\\t\\t// Set up the initial position of the element\\n\\t\\t$tw.utils.setStyle(targetElement,[\\n\\t\\t\\t{transition: \\\"none\\\"},\\n\\t\\t\\t{marginBottom: (-currHeight) + \\\"px\\\"},\\n\\t\\t\\t{opacity: \\\"0.0\\\"}\\n\\t\\t]);\\n\\t\\t$tw.utils.forceLayout(targetElement);\\n\\t\\t// Transition to the final position\\n\\t\\t$tw.utils.setStyle(targetElement,[\\n\\t\\t\\t{transition: \\\"opacity \\\" + duration + \\\"ms \\\" + easing + \\\", \\\" +\\n\\t\\t\\t\\t\\t\\t\\\"margin-bottom \\\" + duration + \\\"ms \\\" + easing},\\n\\t\\t\\t{marginBottom: currMarginBottom + \\\"px\\\"},\\n\\t\\t\\t{opacity: \\\"1.0\\\"}\\n\\t\\t]);\\n\\t} else if(duration && !widget.wiki.tiddlerExists(\\\"$:/state/dragging\\\") && widget.wiki.tiddlerExists(\\\"$:/state/tiddlyflex/adding/\\\" + tiddlerTitle)) {\\n\\t\\tvar targetElement = widget.findFirstDomNode();\\n\\t\\twidget.wiki.setText(\\\"$:/state/tiddlyflex/adding/\\\" + tiddlerTitle,\\\"height\\\",undefined,targetElement.offsetHeight);\\n\\t\\tsetTimeout(function() {\\n\\t\\t\\twidget.wiki.deleteTiddler(\\\"$:/state/tiddlyflex/adding/\\\" + tiddlerTitle);\\n\\t\\t},duration);\\n\\t}\\n\\tif($tw.wiki.tiddlerExists(\\\"$:/state/dragging\\\")) {\\n\\t\\twidget.wiki.deleteTiddler(\\\"$:/state/dragging\\\");\\n\\t}\\n};\\n\\nClassicStoryView.prototype.remove = function(widget) {\\n\\tvar duration = $tw.utils.getAnimationDuration(),\\n\\t\\ttiddlerTitle = widget.parseTreeNode.itemTitle;\\n\\tif(duration && !widget.wiki.tiddlerExists(\\\"$:/state/dragging\\\") && !widget.wiki.tiddlerExists(\\\"$:/state/tiddlyflex/removing/\\\" + tiddlerTitle)) {\\n\\t\\tvar targetElement = widget.findFirstDomNode(),\\n\\t\\t\\tremoveElement = function() {\\n\\t\\t\\t\\twidget.removeChildDomNodes();\\n\\t\\t\\t};\\n\\t\\t// Abandon if the list entry isn't a DOM element (it might be a text node)\\n\\t\\tif(!targetElement || targetElement.nodeType === Node.TEXT_NODE) {\\n\\t\\t\\tremoveElement();\\n\\t\\t\\treturn;\\n\\t\\t}\\n\\t\\t// Get the current height of the tiddler\\n\\t\\tvar currWidth = targetElement.offsetWidth,\\n\\t\\t\\tcomputedStyle = window.getComputedStyle(targetElement),\\n\\t\\t\\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\\n\\t\\t\\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\\n\\t\\t\\tcurrHeight = targetElement.offsetHeight + currMarginTop;\\n\\t\\t// Remove the dom nodes of the widget at the end of the transition\\n\\t\\tsetTimeout(removeElement,duration);\\n\\t\\t// Animate the closure\\n\\t\\t$tw.utils.setStyle(targetElement,[\\n\\t\\t\\t{transition: \\\"none\\\"},\\n\\t\\t\\t{transform: \\\"translateX(0px)\\\"},\\n\\t\\t\\t{marginBottom: currMarginBottom + \\\"px\\\"},\\n\\t\\t\\t{opacity: \\\"1.0\\\"}\\n\\t\\t]);\\n\\t\\t$tw.utils.forceLayout(targetElement);\\n\\t\\t$tw.utils.setStyle(targetElement,[\\n\\t\\t\\t{transition: $tw.utils.roundTripPropertyName(\\\"transform\\\") + \\\" \\\" + duration + \\\"ms \\\" + easing + \\\", \\\" +\\n\\t\\t\\t\\t\\t\\t\\\"opacity \\\" + duration + \\\"ms \\\" + easing + \\\", \\\" +\\n\\t\\t\\t\\t\\t\\t\\\"margin-bottom \\\" + duration + \\\"ms \\\" + easing},\\n\\t\\t\\t{transform: \\\"translateX(-\\\" + currWidth + \\\"px)\\\"},\\n\\t\\t\\t{marginBottom: (-currHeight) + \\\"px\\\"},\\n\\t\\t\\t{opacity: \\\"0.0\\\"}\\n\\t\\t]);\\n\\t} else if(duration && !widget.wiki.tiddlerExists(\\\"$:/state/dragging\\\") && widget.wiki.tiddlerExists(\\\"$:/state/tiddlyflex/removing/\\\" + tiddlerTitle)) {\\n\\t\\tvar targetElement = widget.findFirstDomNode(),\\n\\t\\t\\tremoveElement = function() {\\n\\t\\t\\t\\twidget.removeChildDomNodes();\\n\\t\\t\\t\\twidget.wiki.deleteTiddler(\\\"$:/state/tiddlyflex/removing/\\\" + tiddlerTitle);\\n\\t\\t\\t};\\n\\t\\twidget.wiki.setText(\\\"$:/state/tiddlyflex/removing/\\\" + tiddlerTitle,\\\"height\\\",undefined,targetElement.offsetHeight);\\n\\t\\tsetTimeout(removeElement,duration);\\n\\t} else {\\n\\t\\twidget.removeChildDomNodes();\\n\\t}\\n};\\n\\nexports.tiddlyflex = ClassicStoryView;\\n\\n})();\\n\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/BTC/TiddlyFlex/modules/storyviews/tiddlyflex.js\",\"module-type\":\"storyview\"},\"$:/core/modules/keyboard.js\":{\"text\":\"/*\\\\\\ntitle: $:/core/modules/keyboard.js\\ntype: application/javascript\\nmodule-type: global\\n\\nKeyboard handling utilities\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nvar namedKeys = {\\n\\t\\\"cancel\\\": 3,\\n\\t\\\"help\\\": 6,\\n\\t\\\"backspace\\\": 8,\\n\\t\\\"tab\\\": 9,\\n\\t\\\"clear\\\": 12,\\n\\t\\\"return\\\": 13,\\n\\t\\\"enter\\\": 13,\\n\\t\\\"pause\\\": 19,\\n\\t\\\"escape\\\": 27,\\n\\t\\\"space\\\": 32,\\n\\t\\\"page_up\\\": 33,\\n\\t\\\"page_down\\\": 34,\\n\\t\\\"end\\\": 35,\\n\\t\\\"home\\\": 36,\\n\\t\\\"left\\\": 37,\\n\\t\\\"up\\\": 38,\\n\\t\\\"right\\\": 39,\\n\\t\\\"down\\\": 40,\\n\\t\\\"printscreen\\\": 44,\\n\\t\\\"insert\\\": 45,\\n\\t\\\"delete\\\": 46,\\n\\t\\\"0\\\": 48,\\n\\t\\\"1\\\": 49,\\n\\t\\\"2\\\": 50,\\n\\t\\\"3\\\": 51,\\n\\t\\\"4\\\": 52,\\n\\t\\\"5\\\": 53,\\n\\t\\\"6\\\": 54,\\n\\t\\\"7\\\": 55,\\n\\t\\\"8\\\": 56,\\n\\t\\\"9\\\": 57,\\n\\t\\\"firefoxsemicolon\\\": 59,\\n\\t\\\"firefoxequals\\\": 61,\\n\\t\\\"a\\\": 65,\\n\\t\\\"b\\\": 66,\\n\\t\\\"c\\\": 67,\\n\\t\\\"d\\\": 68,\\n\\t\\\"e\\\": 69,\\n\\t\\\"f\\\": 70,\\n\\t\\\"g\\\": 71,\\n\\t\\\"h\\\": 72,\\n\\t\\\"i\\\": 73,\\n\\t\\\"j\\\": 74,\\n\\t\\\"k\\\": 75,\\n\\t\\\"l\\\": 76,\\n\\t\\\"m\\\": 77,\\n\\t\\\"n\\\": 78,\\n\\t\\\"o\\\": 79,\\n\\t\\\"p\\\": 80,\\n\\t\\\"q\\\": 81,\\n\\t\\\"r\\\": 82,\\n\\t\\\"s\\\": 83,\\n\\t\\\"t\\\": 84,\\n\\t\\\"u\\\": 85,\\n\\t\\\"v\\\": 86,\\n\\t\\\"w\\\": 87,\\n\\t\\\"x\\\": 88,\\n\\t\\\"y\\\": 89,\\n\\t\\\"z\\\": 90,\\n\\t\\\"numpad0\\\": 96,\\n\\t\\\"numpad1\\\": 97,\\n\\t\\\"numpad2\\\": 98,\\n\\t\\\"numpad3\\\": 99,\\n\\t\\\"numpad4\\\": 100,\\n\\t\\\"numpad5\\\": 101,\\n\\t\\\"numpad6\\\": 102,\\n\\t\\\"numpad7\\\": 103,\\n\\t\\\"numpad8\\\": 104,\\n\\t\\\"numpad9\\\": 105,\\n\\t\\\"multiply\\\": 106,\\n\\t\\\"add\\\": 107,\\n\\t\\\"separator\\\": 108,\\n\\t\\\"subtract\\\": 109,\\n\\t\\\"decimal\\\": 110,\\n\\t\\\"divide\\\": 111,\\n\\t\\\"f1\\\": 112,\\n\\t\\\"f2\\\": 113,\\n\\t\\\"f3\\\": 114,\\n\\t\\\"f4\\\": 115,\\n\\t\\\"f5\\\": 116,\\n\\t\\\"f6\\\": 117,\\n\\t\\\"f7\\\": 118,\\n\\t\\\"f8\\\": 119,\\n\\t\\\"f9\\\": 120,\\n\\t\\\"f10\\\": 121,\\n\\t\\\"f11\\\": 122,\\n\\t\\\"f12\\\": 123,\\n\\t\\\"f13\\\": 124,\\n\\t\\\"f14\\\": 125,\\n\\t\\\"f15\\\": 126,\\n\\t\\\"f16\\\": 127,\\n\\t\\\"f17\\\": 128,\\n\\t\\\"f18\\\": 129,\\n\\t\\\"f19\\\": 130,\\n\\t\\\"f20\\\": 131,\\n\\t\\\"f21\\\": 132,\\n\\t\\\"f22\\\": 133,\\n\\t\\\"f23\\\": 134,\\n\\t\\\"f24\\\": 135,\\n\\t\\\"firefoxminus\\\": 173,\\n\\t\\\"semicolon\\\": 186,\\n\\t\\\"equals\\\": 187,\\n\\t\\\"comma\\\": 188,\\n\\t\\\"dash\\\": 189,\\n\\t\\\"period\\\": 190,\\n\\t\\\"slash\\\": 191,\\n\\t\\\"backquote\\\": 192,\\n\\t\\\"openbracket\\\": 219,\\n\\t\\\"backslash\\\": 220,\\n\\t\\\"closebracket\\\": 221,\\n\\t\\\"quote\\\": 222\\n};\\n\\nfunction KeyboardManager(options) {\\n\\tvar self = this;\\n\\toptions = options || \\\"\\\";\\n\\t// Save the named key hashmap\\n\\tthis.namedKeys = namedKeys;\\n\\t// Create a reverse mapping of code to keyname\\n\\tthis.keyNames = [];\\n\\t$tw.utils.each(namedKeys,function(keyCode,name) {\\n\\t\\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\\n\\t});\\n\\t// Save the platform-specific name of the \\\"meta\\\" key\\n\\tthis.metaKeyName = $tw.platform.isMac ? \\\"cmd-\\\" : \\\"win-\\\";\\n\\tthis.shortcutKeysList = [], // Stores the shortcut-key descriptors\\n\\tthis.shortcutActionList = [], // Stores the corresponding action strings\\n\\tthis.shortcutParsedList = []; // Stores the parsed key descriptors\\n\\tthis.shortcutPriorityList = []; // Stores the parsed shortcut priority\\n\\tthis.lookupNames = [\\\"shortcuts\\\"];\\n\\tthis.lookupNames.push($tw.platform.isMac ? \\\"shortcuts-mac\\\" : \\\"shortcuts-not-mac\\\")\\n\\tthis.lookupNames.push($tw.platform.isWindows ? \\\"shortcuts-windows\\\" : \\\"shortcuts-not-windows\\\");\\n\\tthis.lookupNames.push($tw.platform.isLinux ? \\\"shortcuts-linux\\\" : \\\"shortcuts-not-linux\\\");\\n\\tthis.updateShortcutLists(this.getShortcutTiddlerList());\\n\\t$tw.wiki.addEventListener(\\\"change\\\",function(changes) {\\n\\t\\tself.handleShortcutChanges(changes);\\n\\t});\\n}\\n\\n/*\\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\\n*/\\nKeyboardManager.prototype.getModifierKeys = function() {\\n\\treturn [\\n\\t\\t16, // Shift\\n\\t\\t17, // Ctrl\\n\\t\\t18, // Alt\\n\\t\\t20, // CAPS LOCK\\n\\t\\t91, // Meta (left)\\n\\t\\t93, // Meta (right)\\n\\t\\t224 // Meta (Firefox)\\n\\t]\\n};\\n\\n/*\\nParses a key descriptor into the structure:\\n{\\n\\tkeyCode: numeric keycode\\n\\tshiftKey: boolean\\n\\taltKey: boolean\\n\\tctrlKey: boolean\\n\\tmetaKey: boolean\\n}\\nKey descriptors have the following format:\\n\\tctrl+enter\\n\\tctrl+shift+alt+A\\n*/\\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor,options) {\\n\\tvar components = keyDescriptor.split(/\\\\+|\\\\-/),\\n\\t\\tinfo = {\\n\\t\\t\\tkeyCode: 0,\\n\\t\\t\\tshiftKey: false,\\n\\t\\t\\taltKey: false,\\n\\t\\t\\tctrlKey: false,\\n\\t\\t\\tmetaKey: false\\n\\t\\t};\\n\\tfor(var t=0; t\u003Ccomponents.length; t++) {\\n\\t\\tvar s = components[t].toLowerCase(),\\n\\t\\t\\tc = s.charCodeAt(0);\\n\\t\\t// Look for modifier keys\\n\\t\\tif(s === \\\"ctrl\\\") {\\n\\t\\t\\tinfo.ctrlKey = true;\\n\\t\\t} else if(s === \\\"shift\\\") {\\n\\t\\t\\tinfo.shiftKey = true;\\n\\t\\t} else if(s === \\\"alt\\\") {\\n\\t\\t\\tinfo.altKey = true;\\n\\t\\t} else if(s === \\\"meta\\\" || s === \\\"cmd\\\" || s === \\\"win\\\") {\\n\\t\\t\\tinfo.metaKey = true;\\n\\t\\t}\\n\\t\\t// Replace named keys with their code\\n\\t\\tif(this.namedKeys[s]) {\\n\\t\\t\\tinfo.keyCode = this.namedKeys[s];\\n\\t\\t}\\n\\t}\\n\\tif(options.keyDescriptor) {\\n\\t\\tinfo.keyDescriptor = options.keyDescriptor;\\n\\t}\\n\\tif(info.keyCode) {\\n\\t\\treturn info;\\n\\t} else {\\n\\t\\treturn null;\\n\\t}\\n};\\n\\n/*\\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\\n*/\\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\\n\\tvar self = this;\\n\\toptions = options || {};\\n\\toptions.stack = options.stack || [];\\n\\tvar wiki = options.wiki || $tw.wiki;\\n\\tif(typeof keyDescriptors === \\\"string\\\" && keyDescriptors === \\\"\\\") {\\n\\t\\treturn [];\\n\\t}\\n\\tif(!$tw.utils.isArray(keyDescriptors)) {\\n\\t\\tkeyDescriptors = keyDescriptors.split(\\\" \\\");\\n\\t}\\n\\tvar result = [];\\n\\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\\n\\t\\t// Look for a named shortcut\\n\\t\\tif(keyDescriptor.substr(0,2) === \\\"((\\\" && keyDescriptor.substr(-2,2) === \\\"))\\\") {\\n\\t\\t\\tif(options.stack.indexOf(keyDescriptor) === -1) {\\n\\t\\t\\t\\toptions.stack.push(keyDescriptor);\\n\\t\\t\\t\\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\\n\\t\\t\\t\\t\\tlookupName = function(configName) {\\n\\t\\t\\t\\t\\t\\tvar keyDescriptors = wiki.getTiddlerText(\\\"$:/config/\\\" + configName + \\\"/\\\" + name);\\n\\t\\t\\t\\t\\t\\tif(keyDescriptors) {\\n\\t\\t\\t\\t\\t\\t\\toptions.keyDescriptor = keyDescriptor;\\n\\t\\t\\t\\t\\t\\t\\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t};\\n\\t\\t\\t\\t$tw.utils.each(self.lookupNames,function(platformDescriptor) {\\n\\t\\t\\t\\t\\tlookupName(platformDescriptor);\\n\\t\\t\\t\\t});\\n\\t\\t\\t}\\n\\t\\t} else {\\n\\t\\t\\tresult.push(self.parseKeyDescriptor(keyDescriptor,options));\\n\\t\\t}\\n\\t});\\n\\treturn result;\\n};\\n\\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\\n\\tvar self = this,\\n\\t\\tresult = [];\\n\\t$tw.utils.each(keyInfoArray,function(keyInfo) {\\n\\t\\tif(keyInfo) {\\n\\t\\t\\tresult.push((keyInfo.ctrlKey ? \\\"ctrl-\\\" : \\\"\\\") + \\n\\t\\t\\t\\t (keyInfo.shiftKey ? \\\"shift-\\\" : \\\"\\\") + \\n\\t\\t\\t\\t (keyInfo.altKey ? \\\"alt-\\\" : \\\"\\\") + \\n\\t\\t\\t\\t (keyInfo.metaKey ? self.metaKeyName : \\\"\\\") + \\n\\t\\t\\t\\t (self.keyNames[keyInfo.keyCode]));\\n\\t\\t}\\n\\t});\\n\\treturn result;\\n}\\n\\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\\n\\treturn keyInfo &&\\n\\t\\t\\tevent.keyCode === keyInfo.keyCode && \\n\\t\\t\\tevent.shiftKey === keyInfo.shiftKey && \\n\\t\\t\\tevent.altKey === keyInfo.altKey && \\n\\t\\t\\tevent.ctrlKey === keyInfo.ctrlKey && \\n\\t\\t\\tevent.metaKey === keyInfo.metaKey;\\n};\\n\\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\\n\\treturn (this.getMatchingKeyDescriptor(event,keyInfoArray) !== null);\\n};\\n\\nKeyboardManager.prototype.getMatchingKeyDescriptor = function(event,keyInfoArray) {\\n\\tfor(var t=0; t\u003CkeyInfoArray.length; t++) {\\n\\t\\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\\n\\t\\t\\treturn keyInfoArray[t];\\n\\t\\t}\\n\\t}\\n\\treturn null;\\n};\\n\\nKeyboardManager.prototype.getEventModifierKeyDescriptor = function(event) {\\n\\treturn event.ctrlKey && !event.shiftKey\\t&& !event.altKey && !event.metaKey ? \\\"ctrl\\\" : \\n\\t\\tevent.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey ? \\\"shift\\\" : \\n\\t\\tevent.ctrlKey && event.shiftKey && !event.altKey && !event.metaKey ? \\\"ctrl-shift\\\" : \\n\\t\\tevent.altKey && !event.shiftKey && !event.ctrlKey && !event.metaKey ? \\\"alt\\\" : \\n\\t\\tevent.altKey && event.shiftKey && !event.ctrlKey && !event.metaKey ? \\\"alt-shift\\\" : \\n\\t\\tevent.altKey && event.ctrlKey && !event.shiftKey && !event.metaKey ? \\\"ctrl-alt\\\" : \\n\\t\\tevent.altKey && event.shiftKey && event.ctrlKey && !event.metaKey ? \\\"ctrl-alt-shift\\\" : \\n\\t\\tevent.metaKey && !event.ctrlKey && !event.shiftKey && !event.altKey ? \\\"meta\\\" : \\n\\t\\tevent.metaKey && event.ctrlKey && !event.shiftKey && !event.altKey ? \\\"meta-ctrl\\\" :\\n\\t\\tevent.metaKey && event.ctrlKey && event.shiftKey && !event.altKey ? \\\"meta-ctrl-shift\\\" :\\n\\t\\tevent.metaKey && event.ctrlKey && event.shiftKey && event.altKey ? \\\"meta-ctrl-alt-shift\\\" : \\\"normal\\\";\\n};\\n\\nKeyboardManager.prototype.getShortcutTiddlerList = function() {\\n\\treturn $tw.wiki.getTiddlersWithTag(\\\"$:/tags/KeyboardShortcut\\\");\\n};\\n\\nKeyboardManager.prototype.updateShortcutLists = function(tiddlerList) {\\n\\tthis.shortcutTiddlers = tiddlerList;\\n\\tvar needsOverRide = false;\\n\\tfor(var i=0; i\u003CtiddlerList.length; i++) {\\n\\t\\tvar title = tiddlerList[i],\\n\\t\\t\\ttiddlerFields = $tw.wiki.getTiddler(title).fields;\\n\\t\\tthis.shortcutKeysList[i] = tiddlerFields.key !== undefined ? tiddlerFields.key : undefined;\\n\\t\\tthis.shortcutActionList[i] = tiddlerFields.text;\\n\\t\\tthis.shortcutParsedList[i] = this.shortcutKeysList[i] !== undefined ? this.parseKeyDescriptors(this.shortcutKeysList[i]) : undefined;\\n\\t\\tthis.shortcutPriorityList[i] = tiddlerFields.priority === \\\"yes\\\" ? true : false;\\n\\t\\tif(tiddlerFields.override === \\\"yes\\\") {\\n\\t\\t\\tneedsOverRide = true;\\n\\t\\t}\\n\\t}\\n\\tif(needsOverRide) {\\n\\t\\tfor(var j=0; j\u003CtiddlerList.length; j++) {\\n\\t\\t\\tvar title = tiddlerList[j],\\n\\t\\t\\t\\ttiddlerFields = $tw.wiki.getTiddler(title).fields;\\n\\t\\t\\tif(tiddlerFields.override === \\\"yes\\\") {\\n\\t\\t\\t\\tfor(var k=0; k\u003CtiddlerList.length; k++) {\\n\\t\\t\\t\\t\\tif((k !== j) && (tiddlerFields[\\\"override-title\\\"] === tiddlerList[k])) {\\n\\t\\t\\t\\t\\t\\tthis.shortcutKeysList.splice(k,1);\\n\\t\\t\\t\\t\\t\\tthis.shortcutActionList.splice(k,1);\\n\\t\\t\\t\\t\\t\\tthis.shortcutParsedList.splice(k,1);\\n\\t\\t\\t\\t\\t\\tthis.shortcutPriorityList.splice(k,1);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n};\\n\\n/*\\nevent: the keyboard event object\\noptions:\\n\\tonlyPriority: true if only priority global shortcuts should be invoked\\n*/\\nKeyboardManager.prototype.handleKeydownEvent = function(event, options) {\\n\\toptions = options || {};\\n\\tvar key, action;\\n\\tfor(var i=0; i\u003Cthis.shortcutTiddlers.length; i++) {\\n\\t\\tif(options.onlyPriority && this.shortcutPriorityList[i] !== true) {\\n\\t\\t\\tcontinue;\\n\\t\\t}\\n\\n\\t\\tif(this.shortcutParsedList[i] !== undefined && this.checkKeyDescriptors(event,this.shortcutParsedList[i])) {\\n\\t\\t\\tkey = this.shortcutParsedList[i];\\n\\t\\t\\taction = this.shortcutActionList[i];\\n\\t\\t}\\n\\t}\\n\\tif(key !== undefined) {\\n\\t\\tevent.preventDefault();\\n\\t\\tevent.stopPropagation();\\n\\t\\t$tw.rootWidget.invokeActionString(action,$tw.rootWidget,event);\\n\\t\\treturn true;\\n\\t}\\n\\treturn false;\\n};\\n\\nKeyboardManager.prototype.detectNewShortcuts = function(changedTiddlers) {\\n\\tvar shortcutConfigTiddlers = [],\\n\\t\\thandled = false;\\n\\t$tw.utils.each(this.lookupNames,function(platformDescriptor) {\\n\\t\\tvar descriptorString = \\\"$:/config/\\\" + platformDescriptor + \\\"/\\\";\\n\\t\\tObject.keys(changedTiddlers).forEach(function(configTiddler) {\\n\\t\\t\\tvar configString = configTiddler.substr(0, configTiddler.lastIndexOf(\\\"/\\\") + 1);\\n\\t\\t\\tif(configString === descriptorString) {\\n\\t\\t\\t\\tshortcutConfigTiddlers.push(configTiddler);\\n\\t\\t\\t\\thandled = true;\\n\\t\\t\\t}\\n\\t\\t});\\n\\t});\\n\\tif(handled) {\\n\\t\\treturn $tw.utils.hopArray(changedTiddlers,shortcutConfigTiddlers);\\n\\t} else {\\n\\t\\treturn false;\\n\\t}\\n};\\n\\nKeyboardManager.prototype.handleShortcutChanges = function(changedTiddlers) {\\n\\tvar newList = this.getShortcutTiddlerList();\\n\\tvar hasChanged = $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers) ? true :\\n\\t\\t($tw.utils.hopArray(changedTiddlers,newList) ? true :\\n\\t\\t(this.detectNewShortcuts(changedTiddlers))\\n\\t);\\n\\t// Re-cache shortcuts if something changed\\n\\tif(hasChanged) {\\n\\t\\tthis.updateShortcutLists(newList);\\n\\t}\\n};\\n\\nexports.KeyboardManager = KeyboardManager;\\n\\n})();\",\"type\":\"application/javascript\",\"title\":\"$:/core/modules/keyboard.js\",\"module-type\":\"global\"},\"$:/plugins/BTC/TiddlyFlex/globals/dragndrop\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/globals/dragndrop\",\"tags\":\"$:/tags/Global\",\"text\":\"\\\\procedure tiddlyflex-top-dragenter-actions()\\n\u003C%if [[$:/state/dragging]has[dragenter-count]] %>\\n \\t\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" starting-next-tiddler=\\\"\\\" copying=\\\"\\\" target=\u003C\u003CcurrentTiddler>> margin=\\\"top\\\" nth={{{ [list\u003Ctv-story-list>allbefore\u003CcurrentTiddler>count[]] }}} river=\u003C\u003CtiddlyFlexColumn>> next-tiddler=\\\"\\\" from-index={{{ [list\u003Ctv-story-list>allbefore\u003CcurrentTiddler>count[]] }}} from-story=\u003C\u003Ctv-story-list>> dragenter-count={{{ [[$:/state/dragging]get[dragenter-count]add[1]] }}}/>\\n\u003C% else %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" dragenter-count=\\\"1\\\"/>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-bottom-dragenter-actions()\\n\u003C%if [[$:/state/dragging]has[dragenter-count]] %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" starting-next-tiddler=\\\"\\\" copying=\\\"\\\" target=\u003C\u003CcurrentTiddler>> margin=\\\"bottom\\\" nth={{{ [list\u003Ctv-story-list>allbefore\u003CcurrentTiddler>count[]add[1]] }}} river=\u003C\u003CtiddlyFlexColumn>> next-tiddler=\\\"\\\" from-index={{{ [list\u003Ctv-story-list>allbefore\u003CcurrentTiddler>count[]add[1]] }}} from-story=\u003C\u003Ctv-story-list>> dragenter-count={{{ [[$:/state/dragging]get[dragenter-count]add[1]] }}}/>\\n\u003C% else %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" dragenter-count=\\\"1\\\"/>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-top-drop-actions-inner()\\n\u003C%if [\u003CactionTiddler>!match\u003CcurrentTiddler>] %>\\n\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003CcurrentTiddler>]\\\"/>\\n\\t\u003C%if [\u003Ctv-history-list>get[current-tiddler]match[]] [\u003Ctv-history-list>!has[current-tiddler]] +[limit[1]] %>\\n\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CactionTiddler>>/>\\n\\t\u003C% endif %>\\n\u003C% else %>\\n\\t\u003C$action-deletetiddler $tiddler=\\\"$:/state/drag-handled\\\"/>\u003C$action-deletetiddler $tiddler=\\\"$:/state/dragging\\\"/>\\n\u003C% endif %>\\n\u003C$vars fromStoryList={{$:/state/dragging!!starting-from-story}} fromHistoryList={{$:/state/dragging!!from-history}}>\\n\\t\u003C%if [\u003CfromStoryList>!match\u003Ctv-story-list>] %>\\n\\t\\t\u003C%if [{$:/state/dragging!!is-focused-tiddler}match[TRUE]] %>\\n\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003CfromHistoryList>> current-tiddler={{{ [list\u003CfromStoryList>zth{$:/state/dragging!!starting-from-index}] }}}/>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% endif %>\\n\u003C/$vars>\\n\\\\end\\n\\\\procedure tiddlyflex-top-drop-actions()\\n\u003C$action-setfield $tiddler=\\\"$:/state/drag-handled\\\" text=\\\"yes\\\"/>\\n\u003C$vars prefix=\\\"[[\\\" suffix=\\\"]]\\\">\\n\\t\u003C%if [\u003CactionTiddler>removeprefix\u003Cprefix>removesuffix\u003Csuffix>] %>\\n\\t\\t\u003C$set name=\\\"actionTiddler\\\" value={{{ [\u003CactionTiddler>removeprefix\u003Cprefix>removesuffix\u003Csuffix>] }}}>\\n\\t\\t\\t\u003C\u003Ctiddlyflex-top-drop-actions-inner>>\\n\\t\\t\u003C/$set>\\n\\t\u003C% else %>\\n\\t\\t\u003C\u003Ctiddlyflex-top-drop-actions-inner>>\\n\\t\u003C% endif %>\\n\u003C/$vars>\\n\\\\end\\n\\\\procedure tiddlyflex-bottom-drop-actions-inner()\\n\u003C$set name=\\\"nextTiddler\\\" value={{{ [list\u003Ctv-story-list>after\u003CcurrentTiddler>] }}}>\\n\\t\u003C%if [\u003CnextTiddler>match[]] %>\\n\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"[\u003CactionTiddler>]\\\"/>\\n\\t\\t\u003C$list filter=\\\"[\u003Ctv-history-list>get[current-tiddler]match[]] [\u003Ctv-history-list>!has[current-tiddler]] +[limit[1]]\\\" variable=\\\"ignore\\\">\\n\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CactionTiddler>>/>\\n\\t\\t\u003C/$list>\\n\\t\u003C% else %>\\n\\t\\t\u003C%if [\u003CactionTiddler>!match\u003CnextTiddler>] %>\\n\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003CnextTiddler>]\\\"/>\\n\\t\\t\\t\u003C$list filter=\\\"[\u003Ctv-history-list>get[current-tiddler]match[]] [\u003Ctv-history-list>!has[current-tiddler]] +[limit[1]]\\\" variable=\\\"ignore\\\">\\n\\t\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CactionTiddler>>/>\\n\\t\\t\\t\u003C/$list>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$action-deletetiddler $tiddler=\\\"$:/state/drag-handled\\\"/>\u003C$action-deletetiddler $tiddler=\\\"$:/state/dragging\\\"/>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% endif %>\\n\u003C/$set>\\n\u003C$vars fromStoryList={{$:/state/dragging!!starting-from-story}} fromHistoryList={{$:/state/dragging!!from-history}}>\\n\\t\u003C%if [\u003CfromStoryList>!match\u003Ctv-story-list>] %>\\n\\t\\t\u003C%if [{$:/state/dragging!!is-focused-tiddler}match[TRUE]] %>\\n\\t\\t\\t\u003C$action-setfield $tiddler=\u003C\u003CfromHistoryList>> current-tiddler={{{ [list\u003CfromStoryList>zth{$:/state/dragging!!starting-from-index}] }}}/>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% endif %>\\n\u003C/$vars>\\n\\\\end\\n\\\\procedure tiddlyflex-bottom-drop-actions()\\n\u003C$action-setfield $tiddler=\\\"$:/state/drag-handled\\\" text=\\\"yes\\\"/>\\n\u003C$vars prefix=\\\"[[\\\" suffix=\\\"]]\\\">\\n\\t\u003C%if [\u003CactionTiddler>removeprefix\u003Cprefix>removesuffix\u003Csuffix>] %>\\n\\t\\t\u003C$set name=\\\"actionTiddler\\\" value={{{ [\u003CactionTiddler>removeprefix\u003Cprefix>removesuffix\u003Csuffix>] }}}>\\n\\t\\t\\t\u003C\u003Ctiddlyflex-bottom-drop-actions-inner>>\\n\\t\\t\u003C/$set>\\n\\t\u003C% else %>\\n\\t\\t\u003C\u003Ctiddlyflex-bottom-drop-actions-inner>>\\n\\t\u003C% endif %>\\n\u003C/$vars>\\n\\\\end\\n\\\\procedure tiddlyflex-drag-start-actions()\\n\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\"\\n\\tnth={{{ [list\u003Ctv-story-list>allbefore\u003CcurrentTiddler>count[]] }}}\\n\\theight=\u003C\u003Ctv-selectednode-height>>\\n\\twidth=\u003C\u003Ctv-selectednode-width>>\\n\\tstart-river=\u003C\u003CtiddlyFlexColumn>>\\n\\tstarting-next-tiddler={{{ [list\u003Ctv-story-list>after\u003CcurrentTiddler>] }}}\\n\\tstarting-from-index={{{ [list\u003Ctv-story-list>allbefore\u003CcurrentTiddler>count[]] }}}\\n\\tstarting-from-story=\u003C\u003Ctv-story-list>>\\n/>\\n\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\"\\n\\tdrag-tiddler=\u003C\u003CcurrentTiddler>>\\n\\tnext-tiddler={{{ [list\u003Ctv-story-list>after\u003CcurrentTiddler>] }}}\\n\\tfrom-index={{{ [list\u003Ctv-story-list>allbefore\u003CcurrentTiddler>count[]] }}}\\n\\tfrom-story=\u003C\u003Ctv-story-list>>\\n\\tfrom-history=\u003C\u003Ctv-history-list>>\\n\\tis-focused-tiddler={{{ [\u003Ctv-history-list>get[current-tiddler]match\u003CcurrentTiddler>then[TRUE]] ~[[FALSE]] }}}\\n\\ttarget={{{ [list\u003Ctv-story-list>after\u003CcurrentTiddler>] }}}\\n/>\\n\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" text=\\\"yes\\\"/>\\n\u003C%if [\u003Cmodifier>!match[ctrl]] %>\\n\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003CcurrentTiddler>]\\\"/>\\n\u003C% else %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" copying=\\\"yes\\\"/>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-drag-end-actions()\\n\u003C%if [[$:/state/drag-handled]is[missing]] %>\\n\\t\u003C$let fromStoryList={{$:/state/dragging!!starting-from-story}} fromIndex={{$:/state/dragging!!starting-from-index}} listBeforeTiddler={{{ [list\u003CfromStoryList>zth\u003CfromIndex>] }}} prefix=\\\"[[\\\" suffix=\\\"]]\\\" actionTiddler={{{ [\u003CactionTiddler>removeprefix\u003Cprefix>removesuffix\u003Csuffix>] :else[\u003CactionTiddler>] }}}>\\n\\t\\t\u003C%if [\u003ClistBeforeTiddler>!is[blank]] %>\\n\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CfromStoryList>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003ClistBeforeTiddler>]\\\"/>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003CfromStoryList>> $subfilter=\\\"[\u003CactionTiddler>]\\\"/>\\n\\t\\t\u003C% endif %>\\n\\t\\t\u003C$action-deletetiddler $tiddler=\\\"$:/state/drag-handled\\\"/>\\n\\t\\t\u003C$action-deletetiddler $tiddler=\\\"$:/state/dragging\\\"/>\\n\\t\u003C/$let>\\n\u003C% else %>\\n\\t\u003C$action-deletetiddler $tiddler=\\\"$:/state/drag-handled\\\"/>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-story-droppable-drop-actions()\\n\u003C$action-setfield $tiddler=\\\"$:/state/drag-handled\\\" text=\\\"yes\\\"/>\\n\u003C$vars prefix=\\\"[[\\\" suffix=\\\"]]\\\">\\n\\t\u003C%if [\u003CactionTiddler>removeprefix\u003Cprefix>removesuffix\u003Csuffix>] %>\\n\\t\\t\u003C$set name=\\\"actionTiddler\\\" value={{{ [\u003CactionTiddler>removeprefix\u003Cprefix>removesuffix\u003Csuffix>] }}}>\\n\\t\\t\\t\u003C%if [{$:/config/tiddlyflex/story-river/filter}match[yes]] +[subfilter\u003Ctdff.tiddlyflex-story-river-filter>is[blank]] %>\\n\\t\\t\\t\\t\u003C$set name=\\\"firstStoryTiddler\\\" value={{{ [list\u003Ctv-story-list>nth[1]] }}}>\\n\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003CfirstStoryTiddler>]\\\"/>\\n\\t\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\u003C% elseif [{$:/config/tiddlyflex/story-river/filter}match[yes]] %>\\n\\t\\t\\t\\t\u003C$let lastShownTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[last[]] }}} insertBeforeTiddler={{{ [list\u003Ctv-story-list>after\u003ClastShownTiddler>] }}}>\\n\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003CinsertBeforeTiddler>]\\\"/>\\n\\t\\t\\t\\t\u003C/$let>\\n\\t\\t\\t\u003C% else %>\\n\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"[\u003CactionTiddler>]\\\"/>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$set>\\n\\t\u003C% else %>\\n\\t\\t\u003C%if [{$:/config/tiddlyflex/story-river/filter}match[yes]] +[subfilter\u003Ctdff.tiddlyflex-story-river-filter>is[blank]] %>\\n\\t\\t\\t\u003C$set name=\\\"firstStoryTiddler\\\" value={{{ [list\u003Ctv-story-list>nth[1]] }}}>\\n\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003CfirstStoryTiddler>]\\\"/>\\n\\t\\t\\t\u003C/$set>\\n\\t\\t\u003C% elseif [{$:/config/tiddlyflex/story-river/filter}match[yes]] %>\\n\\t\\t\\t\u003C$let lastShownTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[last[]] }}} insertBeforeTiddler={{{ [list\u003Ctv-story-list>after\u003ClastShownTiddler>] }}}>\\n\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003CinsertBeforeTiddler>]\\\"/>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"[\u003CactionTiddler>]\\\"/>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% endif %>\\n\u003C/$vars>\\n\\\\end\\n\\\\procedure tiddlyflex-story-droppable-dragenter-actions()\\n\u003C%if [[$:/state/dragging]get[dragenter-count]] %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" target=\\\"\\\" starting-next-tiddler=\\\"\\\" copying=\\\"\\\"/>\\n\u003C% else %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/state/dragging\\\" dragenter-count=\\\"1\\\"/>\\n\u003C% endif %>\\n\\\\end\"},\"$:/plugins/BTC/TiddlyFlex/globals/interaction\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/globals/interaction\",\"tags\":\"$:/tags/Global\",\"text\":\"\\\\procedure tiddlyflex-tm-message-navigator(actions)\\n\u003C$navigator story=\u003C\u003Ctv-story-list>> history=\u003C\u003Ctv-history-list>> openLinkFromInsideRiver=\u003C\u003CopenLinkFromInsideRiver>> openLinkFromOutsideRiver=\u003C\u003CopenLinkFromOutsideRiver>> relinkOnRename=\u003C\u003CrelinkOnRename>>>\\n\\t\u003C\u003Cactions>>\\n\u003C/$navigator>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-message-navigator-outside(actions)\\n\u003C$navigator story={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] :map[addprefix[$:/StoryList-]] }}} history={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] :map[addprefix[$:/HistoryList-]] }}} openLinkFromInsideRiver=\u003C\u003CopenLinkFromInsideRiver>> openLinkFromOutsideRiver=\u003C\u003CopenLinkFromOutsideRiver>> relinkOnRename=\u003C\u003CrelinkOnRename>>>\\n\\t\u003C\u003Cactions>>\\n\u003C/$navigator>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-message-actions(message,exclude)\\n\u003C$let\\n\\tnames-event={{{ [enlist\u003Clist-event>] -[enlist\u003Cexclude>] :map:flat[addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}\\n\\tnames-event-paramObject={{{ [enlist\u003Clist-event-paramObject>] :map:flat[addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}\\n\\tvalues-event={{{ [enlist\u003Clist-event>] -[enlist\u003Cexclude>] :map:flat[addprefix[event-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}\\n\\tvalues-event-paramObject={{{ [enlist\u003Clist-event-paramObject>] :map:flat[addprefix[event-paramObject-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}>\\n\\t\u003C!--\u003C$action-log names-event=\u003C\u003Cnames-event>>/>\\n\\t\u003C$action-log values-event=\u003C\u003Cvalues-event>>/>\\n\\t\u003C$action-log names-event-paramObject=\u003C\u003Cnames-event-paramObject>>/>\\n\\t\u003C$action-log values-event-paramObject=\u003C\u003Cvalues-event-paramObject>>/>-->\\n\\t\u003C%if [enlist\u003Cexclude>match[tiddlerTitle]] %>\\n\\t\\t\u003C$action-sendmessage $message=\u003C\u003Cmessage>> $param={{{ [\u003Cevent-param>!is[blank]!match[]] ~[[]] }}} $names={{{ [\u003Cnames-event>] [\u003Cnames-event-paramObject>] +[join[ ]] }}} $values={{{ [\u003Cvalues-event>] [\u003Cvalues-event-paramObject>] +[join[ ]] }}}/>\\n\\t\u003C% else %>\\n\\t\\t\u003C$action-sendmessage $message=\u003C\u003Cmessage>> $param={{{ [\u003Cevent-param>!is[blank]!match[]] ~[\u003Cevent-tiddlerTitle>!is[blank]!match[]] }}} $names={{{ [\u003Cnames-event>] [\u003Cnames-event-paramObject>] +[join[ ]] }}} $values={{{ [\u003Cvalues-event>] [\u003Cvalues-event-paramObject>] +[join[ ]] }}}/>\\n\\t\u003C% endif %>\\n\u003C/$let>\\n\\\\end\\n\\n\\\\procedure tiddlyflex-tm-cancel-tiddler-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-cancel-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-close-all-tiddlers-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-close-all-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-close-other-tiddlers-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-close-other-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-close-tiddler-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-close-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-delete-tiddler-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-delete-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-edit-tiddler-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-edit-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-fold-all-tiddlers-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-fold-all-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-fold-other-tiddlers-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-fold-other-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-fold-tiddler-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-fold-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-home-actions()\\n\\\\procedure actions() \u003C$action-log/>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-navigate-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-navigate-story-river-actions>>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-import-tiddlers-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-import-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-new-tiddler-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-new-tiddler \\\"tiddlerTitle type param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-perform-import-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-perform-import \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-save-tiddler-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-save-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-unfold-all-tiddlers-actions()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-unfold-all-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\n\\\\procedure tiddlyflex-tm-cancel-tiddler-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-cancel-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-close-all-tiddlers-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-close-all-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-close-other-tiddlers-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-close-other-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-close-tiddler-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-close-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-delete-tiddler-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-delete-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-edit-tiddler-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-edit-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-fold-all-tiddlers-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-fold-all-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-fold-other-tiddlers-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-fold-other-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-fold-tiddler-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-fold-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-home-actions-outside()\\n\\\\procedure actions() \u003C$action-log/>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-navigate-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-navigate-story-river-actions>>\\n\u003C$set name=\\\"tiddlyFlexColumn\\\" value={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] }}}>\\n\\t\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\u003C/$set>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-import-tiddlers-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-import-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-new-tiddler-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-new-tiddler \\\"tiddlerTitle type param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-perform-import-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-perform-import \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-save-tiddler-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-save-tiddler \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\\n\\\\procedure tiddlyflex-tm-unfold-all-tiddlers-actions-outside()\\n\\\\procedure actions() \u003C\u003Ctiddlyflex-tm-message-actions tm-unfold-all-tiddlers \\\"param\\\">>\\n\u003C$macrocall $name=\\\"tiddlyflex-tm-message-navigator-outside\\\" actions=\u003C\u003Cactions>>/>\\n\\\\end\"},\"$:/plugins/BTC/TiddlyFlex/globals/layout/functions\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/globals/layout/functions\",\"list-before\":\"\",\"tags\":\"$:/tags/Global\",\"text\":\"\\\\procedure tiddlyFlexPrefix() [\\n\\\\procedure tiddlyFlexSuffix() ]\\n\\n\\\\function tiddlyflex-layout() [{$:/layout}match[$:/plugins/BTC/TiddlyFlex/ui/Layout]]\\n\\n\\\\function tdff.tiddlyflex-exclude-columns() [[list]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$:/columns]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ :map:flat]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[addprefix]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$:/StoryList-]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ :map:flat]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[get]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[list]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[enlist-input]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[search:]] ${$(tiddlyflex-story-filter-fields)$}$ +[substitute[]] +[join[]] +[addsuffix[:]] ${$(tiddlyflex-story-filter-flags)$}$ +[substitute[]] +[join[]] +[addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[{$:/temp/search/input}]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[limit]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[1]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[else\u003CcurrentTiddler>removeprefix]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$:/StoryList-]addsuffix[$(tiddlyFlexSuffix)$]substitute[]] +[addprefix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ +]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[join]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[ ]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]]\\n\\n\\\\function tdff.tiddlyflex-enlist-columns() [[list]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$:/columns]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ :map]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[{$:/config/tiddlyflex/story-river/filter}match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>addprefix]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$:/StoryList-]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[get]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[list]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[enlist-input]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[search:]] ${$(tiddlyflex-story-filter-fields)$}$ +[substitute[]] +[join[]] +[addsuffix[:]] ${$(tiddlyflex-story-filter-flags)$}$ +[substitute[]] +[join[]] +[addsuffix[{$:/temp/search/input}]addsuffix[limit]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[1]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>else{$:/config/tiddlyflex/story-river/filter}!match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ +]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[!match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]] +[addprefix[$(tiddlyFlexPrefix)$]substitute[]]\\n\\n\\\\function tdff.tiddlyflex-enlist-columns-first() [[list]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$:/columns]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ :map]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[{$:/config/tiddlyflex/story-river/filter}match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>addprefix]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$:/StoryList-]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[get]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[list]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[enlist-input]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[search:]] ${$(tiddlyflex-story-filter-fields)$}$ +[substitute[]] +[join[]] +[addsuffix[:]] ${$(tiddlyflex-story-filter-flags)$}$ +[substitute[]] +[join[]] +[addsuffix[{$:/temp/search/input}]addsuffix[limit]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[1]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>else{$:/config/tiddlyflex/story-river/filter}!match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ +]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[!match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ +]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[first]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]] +[addprefix[$(tiddlyFlexPrefix)$]substitute[]]\\n\\n\\\\function tiddlyflex-story-filter-fields() [fields[]] :intersection[[$:/config/tiddlyflex/story-river/filter/fields]get[text]!is[blank]!match[]split[,]] +[join[,]] ~[[*]]\\n\\n\\\\function tiddlyflex-story-filter-flags() [[$:/config/tiddlyflex/story-river/filter/flags]get[text]!is[blank]!match[]] ~[[words]]\\n\\n\\\\function tdff.tiddlyflex-story-river-filter-no-draft() [[list]addsuffix[\u003Ctv-story-list>]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ ]addsuffix[:filter]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[{$:/config/tiddlyflex/story-river/filter}match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>!is]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[draft]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[search:]] ${$(tiddlyflex-story-filter-fields)$}$ +[substitute[]] +[join[]] +[addsuffix[:]] ${$(tiddlyflex-story-filter-flags)$}$ +[substitute[]] +[join[]] +[addsuffix[{$:/temp/search/input}]] +[addsuffix[else{$:/config/tiddlyflex/story-river/filter}!match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>]] +[addprefix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]]\\n\\n\\\\function tdff.tiddlyflex-story-river-filter() [[list]addsuffix[\u003Ctv-story-list>]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[ ]addsuffix[:filter]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[{$:/config/tiddlyflex/story-river/filter}match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>]addsuffix[search:]] ${$(tiddlyflex-story-filter-fields)$}$ +[substitute[]] +[join[]] +[addsuffix[:]] ${$(tiddlyflex-story-filter-flags)$}$ +[substitute[]] +[join[]] +[addsuffix[{$:/temp/search/input}]] +[addsuffix[else{$:/config/tiddlyflex/story-river/filter}!match]addsuffix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[yes]addsuffix[$(tiddlyFlexSuffix)$]substitute[]addsuffix[then\u003CcurrentTiddler>]] +[addprefix[$(tiddlyFlexPrefix)$]substitute[]addsuffix[$(tiddlyFlexSuffix)$]substitute[]]\"},\"$:/plugins/BTC/TiddlyFlex/globals/navigation\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/globals/navigation\",\"tags\":\"$:/tags/Global\",\"text\":\"\\\\define tiddlyflex-navigate-story-river-actions-selector()\\n.tc-tiddlyflex-story-river-$(tiddlyFlexColumn)$ [data-tiddler-title=\\\"$(navigateToCSSEscaped)$\\\"]\\n\\\\end\\n\\\\function tiddlyflex-suppress-navigation() [\u003Cmodifier>match[ctrl]then[true]] [\u003Cmodifier>match[meta]then[true]] +[match[true]] ~false +[limit[1]]\\n\\\\function edit-missing-tiddler() [{$:/config/tiddlyflex/navigation/edit-missing-tiddlers}match[yes]then\u003Cevent-navigateTo>!is[shadow]is[missing]]\\n\\\\procedure tiddlyflex-navigate-story-river-actions-navigate()\\n\u003C$action-sendmessage $message=\\\"tm-navigate\\\" navigateTo=\u003C\u003Cevent-navigateTo>> navigateSuppressNavigation={{{ [function[tiddlyflex-supress-navigation]] }}} navigateFromTitle={{{ [\u003Cevent-navigateFromTitle>!is[blank]!match[]] ~[\u003CtiddlyFlexColumn>addprefix[$:/HistoryList-]get[current-tiddler]] }}}/>\\n\\\\end\\n\\\\procedure tiddlyflex-navigate-story-river-actions-inner-inner()\\n\u003C$let tv-story-list={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>] }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\t\u003C%if [[$:/columns]!contains\u003CtiddlyFlexColumn>] %>\\n\\t\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"[\u003CtiddlyFlexColumn>]\\\"/>\\n\\t\u003C% endif %>\\n\\t\u003C$navigator story=\u003C\u003Ctv-story-list>> history=\u003C\u003Ctv-history-list>> openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-navigate>>\\n\\t\\t\u003C%if [function[edit-missing-tiddler]] %>\\n\\t\\t\\t\u003C$action-sendmessage $message=\\\"tm-edit-tiddler\\\" $param=\u003C\u003Cevent-navigateTo>> $names={{{ [enlist\u003Clist-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}} $values={{{ [enlist\u003Clist-event>addprefix[event-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix[event-paramObject-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}/>\\n\\t\\t\u003C% endif %>\\n\\t\u003C/$navigator>\\n\u003C/$let>\\n\\\\end\\n\\\\procedure tiddlyflex-navigate-story-river-actions-inner()\\n\u003C%if [\u003Cmodifier>match[shift]] %>\\n\\t\u003C$set name=\\\"tiddlyFlexColumn\\\" value={{{ [\u003CtiddlyFlexColumn>add[1]] }}}>\\n\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-inner-inner>>\\n\\t\u003C/$set>\\n\u003C% elseif [\u003Cmodifier>match[alt]] %>\\n\\t\u003C$set name=\\\"tiddlyFlexColumn\\\" value={{{ [\u003CtiddlyFlexColumn>!match[1]subtract[1]] ~1 }}}>\\n\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-inner-inner>>\\n\\t\u003C/$set>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-navigate-story-river-actions()\\n\\\\function tiddlyflex-no-shift-alt() [\u003Cmodifier>!match[shift]then\u003Cmodifier>!match[alt]]\\n\u003C%if [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] +[addprefix[$:/StoryList-]] +[enlist-input[]] +[contains\u003Cevent-navigateTo>] %>\\n\\t\u003C%if [function[tiddlyflex-no-shift-alt]] %>\\n\\t\\t\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\t\\t\\t\u003C$let tv-story-list={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>] }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CtiddlyFlexColumn>] }}} navigateToCSSEscaped={{{ [\u003Cevent-navigateTo>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C%if [\u003Ctv-story-list>contains\u003Cevent-navigateTo>] %>\\n\\t\\t\\t\\t\\t\u003C%if [\u003Cmodifier>!match[ctrl]then\u003Cmodifier>!match[meta]] %>\\n\\t\\t\\t\\t\\t\\t\u003C$action-sendmessage $message=\\\"tm-scroll\\\" selector=\u003C\u003Ctiddlyflex-navigate-story-river-actions-selector>>/>\\n\\t\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\\t\\t\u003C%if [function[edit-missing-tiddler]] %>\\n\\t\\t\\t\\t\\t\\t\u003C$navigator story=\u003C\u003Ctv-story-list>> history=\u003C\u003Ctv-history-list>> openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\\t\\t\\t\\t\\t\u003C$navigator story={{{ [\u003CtiddlyFlexColumn>addprefix[$:/StoryList-]] }}} history={{{ [\u003CtiddlyFlexColumn>addprefix[$:/HistoryList-]] }}} openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-navigate>>\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C$action-sendmessage $message=\\\"tm-edit-tiddler\\\" $param=\u003C\u003Cevent-navigateTo>> $names={{{ [enlist\u003Clist-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}} $values={{{ [enlist\u003Clist-event>addprefix[event-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix[event-paramObject-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}/>\\n\\t\\t\\t\\t\\t\\t\\t\u003C/$navigator>\\n\\t\\t\\t\\t\\t\\t\u003C/$navigator>\\n\\t\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\\t\u003C% endif %>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C/$list>\\n\\t\u003C% else %>\\n\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-inner>>\\n\\t\u003C% endif %>\\n\u003C% else %>\\n\\t\u003C%if [function[tiddlyflex-no-shift-alt]] %>\\n\\t\\t\u003C%if [function[edit-missing-tiddler]] %>\\n\\t\\t\\t\u003C$navigator story={{{ [\u003CtiddlyFlexColumn>addprefix[$:/StoryList-]] }}} history={{{ [\u003CtiddlyFlexColumn>addprefix[$:/HistoryList-]] }}} openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-navigate>>\\n\\t\\t\\t\\t\u003C$action-sendmessage $message=\\\"tm-edit-tiddler\\\" $param=\u003C\u003Cevent-navigateTo>> $names={{{ [enlist\u003Clist-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}} $values={{{ [enlist\u003Clist-event>addprefix[event-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix[event-paramObject-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}/>\\n\\t\\t\\t\u003C/$navigator>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$navigator story={{{ [\u003CtiddlyFlexColumn>addprefix[$:/StoryList-]] }}} history={{{ [\u003CtiddlyFlexColumn>addprefix[$:/HistoryList-]] }}} openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-navigate>>\\n\\t\\t\\t\u003C/$navigator>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% else %>\\n\\t\\t\u003C\u003Ctiddlyflex-navigate-story-river-actions-inner>>\\n\\t\u003C% endif %>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-cancel-draft-tiddler-actions-draft-of-not-is-missing()\\n\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>!match\u003CtiddlyFlexColumn>]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\t\u003C$set name=\\\"tv-story-list\\\" value={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>!match[$:/StoryList-]] ~$:/StoryList-1 }}}>\\n\\t\\t\u003C%if [\u003Ctv-story-list>contains\u003CcurrentTiddler>] %>\\n\\t\\t\\t\u003C$set name=\\\"index\\\" value={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[allbefore\u003CcurrentTiddler>add[1]] }}}>\\n\\t\\t\\t\\t\u003C$let nextTiddler={{{ [\u003Ctdff.tiddlyflex-story-river-filter>] +[zth\u003Cindex>] }}} viewTiddler={{{ [\u003CcurrentTiddler>get[draft.of]] }}}>\\n\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CviewTiddler>,\u003CnextTiddler>]\\\"/>\\n\\t\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003CcurrentTiddler>]\\\"/>\\n\\t\\t\\t\\t\u003C/$let>\\n\\t\\t\\t\u003C/$set>\\n\\t\\t\u003C% endif %>\\n\\t\u003C/$set>\\n\u003C/$list>\\n\u003C\u003Cdelete-edittemplate-state-tiddlers>>\\n\u003C$navigator story={{{ [\u003CtiddlyFlexColumn>addprefix[$:/StoryList-]] }}} history={{{ [\u003CtiddlyFlexColumn>addprefix[$:/HistoryList-]] }}} openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\u003C$action-sendmessage $message=\\\"tm-cancel-tiddler\\\" $names={{{ [enlist\u003Clist-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}} $values={{{ [enlist\u003Clist-event>addprefix[event-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix[event-paramObject-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}/>/>\\n\u003C/$navigator>\\n\\\\end\\n\\\\procedure tiddlyflex-cancel-draft-tiddler-actions()\\n\u003C%if [\u003CcurrentTiddler>get[draft.of]!is[shadow]is[missing]] %>\\n\\t\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>!match\u003CtiddlyFlexColumn>]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\t\\t\u003C$set name=\\\"tv-story-list\\\" value={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>!match[$:/StoryList-]] ~$:/StoryList-1 }}}>\\n\\t\\t\\t\u003C$list filter=\\\"[\u003Ctv-story-list>contains\u003CcurrentTiddler>]\\\" variable=\\\"ignore\\\">\\n\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003CcurrentTiddler>]\\\"/>\\n\\t\\t\\t\u003C/$list>\\n\\t\\t\u003C/$set>\\n\\t\u003C/$list>\\n\\t\u003C\u003Cdelete-edittemplate-state-tiddlers>>\\n\\t\u003C$let scrollTiddler={{{ [\u003Ctdff.tiddlyflex-story-river-filter>] +[after\u003CcurrentTiddler>] ~[\u003Ctdff.tiddlyflex-story-river-filter>before\u003CcurrentTiddler>] }}}>\\n\\t\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CscrollTiddler>>/>\\n\\t\\t\u003C$action-sendmessage $message=\\\"tm-cancel-tiddler\\\" $names={{{ [enlist\u003Clist-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}} $values={{{ [enlist\u003Clist-event>addprefix[event-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix[event-paramObject-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}/>/>\\n\\t\u003C/$let>\\n\u003C% else %>\\n\\t\u003C\u003Ctiddlyflex-cancel-draft-tiddler-actions-draft-of-not-is-missing>>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-delete-draft-tiddler-actions()\\n\u003C$let deleteTiddlerViewMode={{{ [\u003CcurrentTiddler>get[draft.of]] }}} deleteTiddlerEditMode=\u003C\u003CcurrentTiddler>>>\\n\\t\u003C$list filter=\\\"[subfilter\u003Ctdff.tiddlyflex-enlist-columns>!match\u003CtiddlyFlexColumn>]\\\" variable=\\\"tiddlyFlexColumn\\\">\\n\\t\\t\u003C$set name=\\\"tv-story-list\\\" value={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>!match[$:/StoryList-1]] ~[[$:/StoryList]] }}}>\\n\\t\\t\\t\u003C%if [\u003Ctv-story-list>contains\u003CdeleteTiddlerViewMode>] %>\\n\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003CdeleteTiddlerViewMode>]\\\"/>\\n\\t\\t\\t\u003C% elseif [\u003Ctv-story-list>contains\u003CdeleteTiddlerEditMode>] %>\\n\\t\\t\\t\\t\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"-[\u003CdeleteTiddlerEditMode>]\\\"/>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$set>\\n\\t\u003C/$list>\\n\u003C/$let>\\n\u003C\u003Cdelete-edittemplate-state-tiddlers>>\\n\u003C$let scrollTiddler={{{ [\u003Ctdff.tiddlyflex-story-river-filter>] +[after\u003CcurrentTiddler>] ~[\u003Ctdff.tiddlyflex-story-river-filter>before\u003CcurrentTiddler>] }}}>\\n\\t\u003C$action-setfield $tiddler=\u003C\u003Ctv-history-list>> current-tiddler=\u003C\u003CscrollTiddler>>/>\\n\\t\u003C$action-sendmessage $message=\\\"tm-delete-tiddler\\\" $names={{{ [enlist\u003Clist-event>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}} $values={{{ [enlist\u003Clist-event>addprefix[event-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] [enlist\u003Clist-event-paramObject>addprefix[event-paramObject-]getvariable[]addprefix\u003CtiddlyFlexPrefix>addprefix\u003CtiddlyFlexPrefix>addsuffix\u003CtiddlyFlexSuffix>addsuffix\u003CtiddlyFlexSuffix>] +[join[ ]] }}}/>/>\\n\u003C/$let>\\n\\\\end\"},\"$:/plugins/BTC/TiddlyFlex/icons/drag-grip\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/icons/drag-grip\",\"text\":\"\u003Csvg width=\\\"1rem\\\" height=\\\"1rem\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" class=\\\"lucide lucide-grip\\\">\u003Ccircle cx=\\\"12\\\" cy=\\\"5\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"19\\\" cy=\\\"5\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"5\\\" cy=\\\"5\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"19\\\" cy=\\\"12\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"5\\\" cy=\\\"12\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"12\\\" cy=\\\"19\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"19\\\" cy=\\\"19\\\" r=\\\"1\\\"/>\u003Ccircle cx=\\\"5\\\" cy=\\\"19\\\" r=\\\"1\\\"/>\u003C/svg>\"},\"$:/plugins/BTC/TiddlyFlex/icons/feather\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/icons/feather\",\"text\":\"\u003Csvg width=\\\"1rem\\\" height=\\\"1rem\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" class=\\\"feather feather-feather\\\">\u003Cpath d=\\\"M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z\\\">\u003C/path>\u003Cline x1=\\\"16\\\" y1=\\\"8\\\" x2=\\\"2\\\" y2=\\\"22\\\">\u003C/line>\u003Cline x1=\\\"17.5\\\" y1=\\\"15\\\" x2=\\\"9\\\" y2=\\\"15\\\">\u003C/line>\u003C/svg>\"},\"$:/plugins/BTC/TiddlyFlex/icons/filter\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/icons/filter\",\"text\":\"\u003Csvg width=\\\"1rem\\\" height=\\\"1rem\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" class=\\\"lucide lucide-filter\\\">\u003Cpolygon points=\\\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\\\"/>\u003C/svg>\"},\"$:/plugins/BTC/TiddlyFlex/icons/layout\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/icons/layout\",\"text\":\"\u003Csvg width=\\\"1rem\\\" height=\\\"1rem\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" class=\\\"lucide lucide-layout-dashboard\\\">\u003Crect width=\\\"7\\\" height=\\\"9\\\" x=\\\"3\\\" y=\\\"3\\\" rx=\\\"1\\\"/>\u003Crect width=\\\"7\\\" height=\\\"5\\\" x=\\\"14\\\" y=\\\"3\\\" rx=\\\"1\\\"/>\u003Crect width=\\\"7\\\" height=\\\"9\\\" x=\\\"14\\\" y=\\\"12\\\" rx=\\\"1\\\"/>\u003Crect width=\\\"7\\\" height=\\\"5\\\" x=\\\"3\\\" y=\\\"16\\\" rx=\\\"1\\\"/>\u003C/svg>\"},\"$:/plugins/BTC/TiddlyFlex/license\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/license\",\"text\":\"!!! This plugin is distributed under MIT License\\n\\n```\\n\\nMIT License\\n\\nCopyright (c) 2024 Simon Huber\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy\\nof this software and associated documentation files (the \\\"Software\\\"), to deal\\nin the Software without restriction, including without limitation the rights\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the Software is\\nfurnished to do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice shall be included in all\\ncopies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\\nSOFTWARE.\\n\\n```\\n\\n!!! Lucide icons are distributed under ISC License\\n\\n```\\nISC License\\n\\nCopyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2022.\\n\\nPermission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\\n\\n```\"},\"$:/plugins/BTC/TiddlyFlex/privates/navigation\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/privates/navigation\",\"text\":\"\\\\procedure tiddlyflex-focus-flexcontainer() \u003C$action-sendmessage $message=\\\"tm-focus-selector\\\" $param=\\\".tc-tiddlyflex-container\\\" preventScroll=\\\"true\\\"/>\\n\\\\procedure tiddlyflex-keyboard-navigator(actions)\\n\u003C$let currentColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] }}} tv-story-list={{{ [[$:/StoryList-]addsuffix\u003CcurrentColumn>!match[$:/StoryList-]] ~[[$:/StoryList-1]] }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CcurrentColumn>!match[$:/HistoryList-]] ~[[$:/HistoryList-1]] }}} currentTiddler={{{ [\u003Ctv-history-list>get[current-tiddler]] }}}>\\n\\t\u003C$navigator story=\u003C\u003Ctv-story-list>> history=\u003C\u003Ctv-history-list>> openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\\t\u003C\u003Cactions>>\\n\\t\u003C/$navigator>\\n\u003C/$let>\\n\\\\end\\n\\\\procedure tiddlyflex-simple-keyboard-navigator()\\n\u003C$navigator story={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] :map[addprefix[$:/StoryList-]] }}} history={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] :map[addprefix[$:/HistoryList-]] }}} openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\u003C\u003Cactions>>\\n\u003C/$navigator>\\n\\\\end\\n\\\\procedure tiddlyflex-cycle-columns-navigator-inner()\\n\u003C%if [\u003CnextTiddler>is[draft]] %>\\n\\t\u003C\u003Ctiddlyflex-focus-draft-tiddler>>\\n\u003C% else %>\\n\\t\u003C\u003Ctiddlyflex-focus-flexcontainer>>\\n\u003C% endif %>\\n\u003C$navigator story=\u003C\u003Ctv-story-list>> history=\u003C\u003Ctv-history-list>> openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\t\u003C$action-navigate $to=\u003C\u003CnextTiddler>>/>\\n\u003C/$navigator>\\n\\\\end\\n\\\\define tiddlyflex-cycle-columns-navigator()\\n\u003C$action-setfield $tiddler=\\\"$:/columns\\\" current-column=\u003C\u003CnextColumn>>/>\\n\u003C$set name=\\\"currentHistoryListTiddler\\\" value={{{ [\u003ChistoryList>get[current-tiddler]] }}}>\\n\\t\u003C%if [\u003Ctv-story-list>contains\u003CcurrentHistoryListTiddler>] %>\\n\\t\\t\u003C%if [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[match\u003CcurrentHistoryListTiddler>] %>\\n\\t\\t\\t\u003C$let nextTiddler=\u003C\u003CcurrentHistoryListTiddler>> cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-cycle-columns-navigator-inner>>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% else %>\\n\\t\\t\\t\u003C$let nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[nth[1]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\\t\\t\u003C\u003Ctiddlyflex-cycle-columns-navigator-inner>>\\n\\t\\t\\t\u003C/$let>\\n\\t\\t\u003C% endif %>\\n\\t\u003C% elseif [\u003Ctv-story-list>!contains\u003CcurrentHistoryListTiddler>] %>\\n\\t\\t\u003C$let nextTiddler={{{ [subfilter\u003Ctdff.tiddlyflex-story-river-filter>] +[nth[1]] }}} cssEscapedTitle={{{ [\u003CnextTiddler>escapecss[]] }}}>\\n\\t\\t\\t\u003C\u003Ctiddlyflex-cycle-columns-navigator-inner>>\\n\\t\\t\u003C/$let>\\n\\t\u003C% endif %>\\n\u003C/$set>\\n\\\\end\\n\\\\procedure tiddlyflex-multi-column-keyboard-navigator()\\n\u003C$let\\n\\tcurrentColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] }}} \\n\\ttv-story-list={{{ [[$:/StoryList-]addsuffix\u003CcurrentColumn>!match[$:/StoryList-]] ~$:/StoryList-1 }}}\\n\\ttv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CcurrentColumn>!match[$:/HistoryList-]] ~$:/HistoryList-1 }}}\\n\\tfocusedTiddler={{{ [\u003Ctv-history-list>get[current-tiddler]] }}}\\n\\tnextStoryCounter={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>after\u003CcurrentColumn>] }}}\\n\\tnextStoryList={{{ [\u003Ctv-story-list>!match[$:/StoryList]removesuffix\u003CcurrentColumn>addsuffix\u003CnextStoryCounter>] ~[[$:/StoryList-2]] }}}\\n\\tnextHistoryList={{{ [\u003Ctv-history-list>!match[$:/HistoryList]removesuffix\u003CcurrentColumn>addsuffix\u003CnextStoryCounter>] ~[[$:/HistoryList-2]] }}}\\n\\tfirstNextStoryTiddler={{{ [list\u003CnextStoryList>first[]] }}}\\n\\tpreviousStoryCounter={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>before\u003CcurrentColumn>] }}}\\n\\tpreviousStoryList={{{ [\u003Ctv-story-list>!match[$:/StoryList-]removesuffix\u003CcurrentColumn>addsuffix\u003CpreviousStoryCounter>] ~$:/StoryList-1 }}}\\n\\tpreviousHistoryList={{{ [\u003Ctv-history-list>!match[$:/HistoryList-]removesuffix\u003CcurrentColumn>addsuffix\u003CpreviousStoryCounter>] ~[[$:/HistoryList]] }}}\\n\\tfirstPreviousStoryTiddler={{{ [list\u003CpreviousStoryList>first[]] }}}\\n>\\n\\t\u003C\u003Cactions>>\\n\u003C/$let>\\n\\\\end\"},\"$:/plugins/BTC/TiddlyFlex/privates/selectors\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/privates/selectors\",\"text\":\"\\\\define tiddlyflex-tiddler-scroll-selector()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n.tc-tiddlyflex-story-river-\u003C\u003CcurrentColumn>> .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"]\\n\\\\end\\n\\\\define tiddlyflex-draft-focus-selector()\\n\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n.tc-tiddlyflex-story-river-\u003C\u003CcurrentColumn>> .tc-tiddlyflex-story-river-inner > [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"] input.tc-titlebar.tc-edit-texteditor\\n\\\\end\\n\\\\procedure tiddlyflex-focus-draft-tiddler()\\n\u003C$wikify name=\\\"focusSelector\\\" text=\u003C\u003Ctiddlyflex-draft-focus-selector>>>\\n\\t\u003C$action-sendmessage $message=\\\"tm-focus-selector\\\" $param=\u003C\u003CfocusSelector>> preventScroll=\\\"true\\\"/>\\n\u003C/$wikify>\\n\\\\end\\n\\\\procedure tiddlyflex-scroll-to-tiddler()\\n\u003C$wikify name=\\\"scrollSelector\\\" text=\u003C\u003Ctiddlyflex-tiddler-scroll-selector>>>\\n\\t\u003C$action-sendmessage $message=\\\"tm-scroll\\\" selector=\u003C\u003CscrollSelector>>/>\\n\u003C/$wikify>\\n\\\\end\"},\"$:/plugins/BTC/TiddlyFlex/readme\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/readme\",\"text\":\"!!! ~TiddlyFlex\\n\\nThis ''plugin'' provides an alternative [ext[Flexbox|https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox]] Layout for ~TiddlyWiki5\"},\"$:/core/ui/Buttons/control-panel\":{\"title\":\"$:/core/ui/Buttons/control-panel\",\"tags\":\"$:/tags/PageControls\",\"caption\":\"{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}\",\"description\":\"{{$:/language/Buttons/ControlPanel/Hint}}\",\"text\":\"\\\\whitespace trim\\n\\\\define control-panel-button(class)\\n\\\\whitespace trim\\n\u003C$button to=\\\"$:/ControlPanel\\\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\\\"\\\"\\\"$(tv-config-toolbar-class)$ $class$\\\"\\\"\\\">\\n\u003C$list filter=\\\"[\u003Ctv-config-toolbar-icons>match[yes]]\\\">\\n{{$:/core/images/options-button}}\\n\u003C/$list>\\n\u003C$list filter=\\\"[\u003Ctv-config-toolbar-text>match[yes]]\\\">\\n\u003Cspan class=\\\"tc-btn-text\\\">\u003C$text text={{$:/language/Buttons/ControlPanel/Caption}}/>\u003C/span>\\n\u003C/$list>\\n\u003C/$button>\\n\\\\end\\n\\n\u003C%if [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] +[addprefix[$:/StoryList-]] +[enlist-input[]] +[contains[$:/ControlPanel]] %>\\n\\t\u003C\u003Ccontrol-panel-button \\\"tc-selected\\\">>\\n\u003C% else %>\\n\\t\u003C\u003Ccontrol-panel-button>>\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/add-column\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/add-column\",\"tags\":\"$:/tags/TopRightBar\",\"list-before\":\"$:/core/ui/TopBar/menu\",\"text\":\"\\\\whitespace trim\\n\u003C$let columns={{{ [list[$:/columns]count[]!match[0]] ~1 }}} nextColumn={{{ [\u003Ccolumns>add[1]] }}}>\\n\\t\u003C$button class=\\\"tc-btn-invisible\\\">\\n\\t\\t\u003C%if [list[$:/columns]count[]match[0]] %>\\n\\t\\t\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"1\\\"/>\\n\\t\\t\u003C% endif %>\\n\\t\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"[\u003CnextColumn>]\\\"/>\\n\\t\\t{{$:/core/images/plus-button}}\\n\\t\u003C/$button>\\n\u003C/$let>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/dragging\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/dragging\",\"tags\":\"$:/tags/TopRightBar\",\"list-before\":\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/remove-column\",\"text\":\"\\\\whitespace trim\\n\u003C$button class={{{ tc-btn-invisible [{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}match[yes]then[tc-selected]] +[join[ ]] }}}>\\n\\t{{$:/plugins/BTC/TiddlyFlex/icons/drag-grip}}\\n\\t\u003C%if [{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}match[no]] %>\\n\\t\\t\u003C$action-setfield $tiddler=\\\"$:/config/tiddlyflex/story-river/tiddler/drag-enabled\\\" text=\\\"yes\\\"/>\\n\\t\u003C% else %>\\n\\t\\t\u003C$action-deletetiddler $tiddler=\\\"$:/config/tiddlyflex/story-river/tiddler/drag-enabled\\\"/>\\n\\t\u003C% endif %>\\n\u003C/$button>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/filter\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/filter\",\"tags\":\"$:/tags/TopRightBar\",\"list-before\":\"\",\"text\":\"\u003C$button class={{{ [{$:/config/tiddlyflex/story-river/filter}match[yes]then[tc-selected]] tc-btn-invisible +[join[ ]] }}}>\\n\\t\u003C%if [{$:/config/tiddlyflex/story-river/filter}match[yes]] %>\\n\\t\\t\u003C$action-deletetiddler $tiddler=\\\"$:/config/tiddlyflex/story-river/filter\\\"/>\\n\\t\u003C% else %>\\n\\t\\t\u003C$action-setfield $tiddler=\\\"$:/config/tiddlyflex/story-river/filter\\\" text=\\\"yes\\\"/>\\n\\t\u003C% endif %>\\n\\t{{$:/plugins/BTC/TiddlyFlex/icons/filter}}\\n\u003C/$button>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/remove-column\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/remove-column\",\"tags\":\"$:/tags/TopRightBar\",\"list-before\":\"$:/plugins/BTC/TiddlyFlex/ui/Buttons/TopToolbar/add-column\",\"text\":\"\\\\procedure remove-column-actions()\\n\u003C$set name=\\\"columnCount\\\" value={{{ [list[$:/columns]count[]] }}}>\\n\\t\u003C$list filter=\\\"[[$:/columns]get[current-column]match\u003CcolumnCount>]\\\">\\n\\t\\t\u003C$action-setfield $tiddler=\\\"$:/columns\\\" current-column={{{ [\u003CcolumnCount>subtract[1]!match[0]] ~1 }}}/>\\n\\t\u003C/$list>\\n\\t\u003C$list filter=\\\"[\u003CcolumnCount>!match[1]]\\\">\\n\\t\\t\u003C$action-listops $tiddler=\\\"$:/columns\\\" $subfilter=\\\"-[\u003CcolumnCount>]\\\"/>\\n\\t\u003C/$list>\\n\u003C/$set>\\n\\\\end\\n\\\\whitespace trim\\n\u003C$let columns={{{ [list[$:/columns]count[]] ~1 }}}>\\n\\t\u003C$button class=\\\"tc-btn-invisible\\\" actions=\u003C\u003Cremove-column-actions>>>\\n\\t\\t{{$:/core/images/minus-button}}\\n\\t\u003C/$button>\\n\u003C/$let>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Layout\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Layout\",\"tags\":\"$:/tags/Layout\",\"description\":\"A Flexbox Layout\",\"name\":\"~TiddlyFlex\",\"icon\":\"$:/plugins/BTC/TiddlyFlex/icons/layout\",\"code-body\":\"yes\",\"text\":\"\\\\whitespace trim\\n\\\\import [subfilter{$:/core/config/GlobalImportFilter}]\\n\\\\procedure tiddlyflex-hide-sidebar-actions() \u003C$action-setfield $tiddler=\\\"$:/state/sidebar\\\" text=\\\"no\\\"/>\\n\\\\procedure tdfp-tiddlyflex-story-river()\\n\u003C$list filter=\u003C\u003Ctdff.tiddlyflex-enlist-columns>> variable=\\\"tiddlyFlexColumn\\\">\\n\\t\u003C$set name=\\\"transclusion\\\" value=\u003C\u003CtiddlyFlexColumn>>>\\n\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-story-river-wrapper\\\">\\n\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-story-river-header\\\">\\n\\t\\t\\t\\t\u003C$set name=\\\"aboveStoryHeaderTag\\\" value={{{ [[$:/tags/AboveStoryHeader-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\t\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag\u003CaboveStoryHeaderTag>!is[draft]]\\\" variable=\\\"listItem\\\" storyview=\\\"pop\\\">\\n\\t\\t\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\\t\\t\\t\u003C/$list>\\n\\t\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\u003C/div>\\n\\t\\t\\t\u003C$transclude tiddler=\\\"$:/plugins/BTC/TiddlyFlex/ui/Templates/story\\\"/>\\n\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-story-river-footer\\\">\\n\\t\\t\\t\\t\u003C$set name=\\\"belowStoryFooterTag\\\" value={{{ [[$:/tags/BelowStoryFooter-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\t\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag\u003CbelowStoryFooterTag>!is[draft]]\\\" variable=\\\"listItem\\\" storyview=\\\"pop\\\">\\n\\t\\t\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\\t\\t\\t\u003C/$list>\\n\\t\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\u003C/div>\\n\\t\\t\u003C/div>\\n\\t\u003C/$set>\\n\u003C/$list>\\n\\\\end\\n\u003C$vars\\n\\ttv-config-toolbar-icons={{$:/config/Toolbar/Icons}}\\n\\ttv-config-toolbar-text={{$:/config/Toolbar/Text}}\\n\\ttv-config-toolbar-class={{$:/config/Toolbar/ButtonClass}}\\n\\ttv-enable-drag-and-drop={{$:/config/DragAndDrop/Enable}}\\n\\ttv-show-missing-links={{$:/config/MissingLinks}}\\n\\tstoryviewTitle={{$:/view}}\\n\\tlanguageTitle={{{ [{$:/language}get[name]] }}}>\\n\\t\u003Cdiv class={{{ [all[shadows+tiddlers]tag[$:/tags/ClassFilters/PageTemplate/TiddlyFlex]!is[draft]] :map:flat[subfilter{!!text}] tc-page-container tc-tiddlyflex-container [[tc-page-view-]addsuffix\u003CstoryviewTitle>] [[tc-language-]addsuffix\u003ClanguageTitle>] [{$:/state/sidebar}match[yes]then[tc-sidebar-shown]] :and[unique[]join[ ]] }}} tabindex=\\\"0\\\">\\n\\t\\t\u003C$eventcatcher selector=\\\".tc-tiddlyflex-sidebar-shown\\\" $click=\u003C\u003Ctiddlyflex-hide-sidebar-actions>> class=\\\"tc-tiddlyflex-sidebar-shown-eventcatcher\\\">\\n\\t\\t\\t\u003Cdiv class={{{ [{$:/state/sidebar}!match[no]then[tc-tiddlyflex-sidebar-hide tc-btn-invisible tc-tiddlyflex-sidebar-shown]] [{$:/state/sidebar}match[no]then[tc-tiddlyflex-sidebar-hide tc-btn-invisible tc-tiddlyflex-sidebar-hidden]] }}}/>\\n\\t\\t\u003C/$eventcatcher>\\n\\t\\t\u003C$messagecatcher\\n\\t\\t\\t$tm-cancel-tiddler=\u003C\u003Ctiddlyflex-tm-cancel-tiddler-actions-outside>>\\n\\t\\t\\t$tm-close-all-tiddlers=\u003C\u003Ctiddlyflex-tm-close-all-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-close-other-tiddlers=\u003C\u003Ctiddlyflex-tm-close-other-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-close-tiddler=\u003C\u003Ctiddlyflex-tm-close-tiddler-actions-outside>>\\n\\t\\t\\t$tm-delete-tiddler=\u003C\u003Ctiddlyflex-tm-delete-tiddler-actions-outside>>\\n\\t\\t\\t$tm-edit-tiddler=\u003C\u003Ctiddlyflex-tm-edit-tiddler-actions-outside>>\\n\\t\\t\\t$tm-fold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-all-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-fold-other-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-other-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-fold-tiddler=\u003C\u003Ctiddlyflex-tm-fold-tiddler-actions-outside>>\\n\\t\\t\\t$tm-home=\u003C\u003Ctiddlyflex-tm-home-actions-outside>>\\n\\t\\t\\t$tm-navigate=\u003C\u003Ctiddlyflex-tm-navigate-actions-outside>>\\n\\t\\t\\t$tm-new-tiddler=\u003C\u003Ctiddlyflex-tm-new-tiddler-actions-outside>>\\n\\t\\t\\t$tm-perform-import=\u003C\u003Ctiddlyflex-tm-perform-import-actions-outside>>\\n\\t\\t\\t$tm-save-tiddler=\u003C\u003Ctiddlyflex-tm-save-tiddler-actions-outside>>\\n\\t\\t\\t$tm-unfold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-unfold-all-tiddlers-actions-outside>>>\\n\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-header\\\">\\n\\t\\t\\t\\t\u003C$list filter=\\\"[{$:/status/RequireReloadDueToPluginChange}match[yes]then{$:/temp/HidePluginWarning}!match[yes]then[$:/plugins/BTC/TiddlyFlex/ui/Toolbars/PluginReloadWarning]] [all[shadows+tiddlers]tag[$:/tags/TopToolbar]!is[draft]]\\\" variable=\\\"listItem\\\" storyview=\\\"pop\\\">\\n\\t\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\\t\\t\u003C/$list>\\n\\t\\t\\t\u003C/div>\\n\\t\\t\u003C/$messagecatcher>\\n\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-main-wrapper\\\">\\n\\t\\t\\t\u003C$set name=\\\"excludeColumnsSubfilter\\\" value=\u003C\u003Ctiddlyflex-exclude-columns>>>\\n\\t\\t\\t\\t\u003C$messagecatcher\\n\\t\\t\\t\\t\\t$tm-cancel-tiddler=\u003C\u003Ctiddlyflex-tm-cancel-tiddler-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-close-all-tiddlers=\u003C\u003Ctiddlyflex-tm-close-all-tiddlers-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-close-other-tiddlers=\u003C\u003Ctiddlyflex-tm-close-other-tiddlers-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-close-tiddler=\u003C\u003Ctiddlyflex-tm-close-tiddler-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-delete-tiddler=\u003C\u003Ctiddlyflex-tm-delete-tiddler-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-edit-tiddler=\u003C\u003Ctiddlyflex-tm-edit-tiddler-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-fold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-all-tiddlers-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-fold-other-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-other-tiddlers-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-fold-tiddler=\u003C\u003Ctiddlyflex-tm-fold-tiddler-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-home=\u003C\u003Ctiddlyflex-tm-home-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-navigate=\u003C\u003Ctiddlyflex-tm-navigate-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-new-tiddler=\u003C\u003Ctiddlyflex-tm-new-tiddler-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-perform-import=\u003C\u003Ctiddlyflex-tm-perform-import-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-save-tiddler=\u003C\u003Ctiddlyflex-tm-save-tiddler-actions-outside>>\\n\\t\\t\\t\\t\\t$tm-unfold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-unfold-all-tiddlers-actions-outside>>>\\n\\t\\t\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-leftbar\\\">\\n\\t\\t\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/LeftToolbar]!is[draft]]\\\" variable=\\\"listItem\\\" storyview=\\\"pop\\\">\\n\\t\\t\\t\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\\t\\t\\t\\t\u003C/$list>\\n\\t\\t\\t\\t\\t\u003C/div>\\n\\t\\t\\t\\t\u003C/$messagecatcher>\\n\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\u003Cmain class=\\\"tc-tiddlyflex-main\\\">\\n\\t\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-story-river-container\\\">\\n\\t\\t\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-story-river-container-inner\\\">\\n\\t\\t\\t\\t\\t\\t\u003C\u003Ctdfp-tiddlyflex-story-river>>\\n\\t\\t\\t\\t\\t\u003C/div>\\n\\t\\t\\t\\t\u003C/div>\\n\\t\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-sidebar\\\">\\n\\t\\t\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-sidebar-container\\\">\\n\\t\\t\\t\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-sidebar-container-inner\\\">\\n\\t\\t\\t\\t\\t\\t\\t\u003C$set name=\\\"excludeColumnsSubfilter\\\" value=\u003C\u003Ctiddlyflex-exclude-columns>>>\\n\\t\\t\\t\\t\\t\\t\\t\\t{{$:/plugins/BTC/TiddlyFlex/ui/Templates/sidebar}}\\n\\t\\t\\t\\t\\t\\t\\t\u003C/$set>\\n\\t\\t\\t\\t\\t\\t\u003C/div>\\n\\t\\t\\t\\t\\t\u003C/div>\\n\\t\\t\\t\\t\u003C/div>\\n\\t\\t\\t\u003C/main>\\n\\t\\t\u003C/div>\\n\\t\\t\u003C$messagecatcher\\n\\t\\t\\t$tm-cancel-tiddler=\u003C\u003Ctiddlyflex-tm-cancel-tiddler-actions-outside>>\\n\\t\\t\\t$tm-close-all-tiddlers=\u003C\u003Ctiddlyflex-tm-close-all-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-close-other-tiddlers=\u003C\u003Ctiddlyflex-tm-close-other-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-close-tiddler=\u003C\u003Ctiddlyflex-tm-close-tiddler-actions-outside>>\\n\\t\\t\\t$tm-delete-tiddler=\u003C\u003Ctiddlyflex-tm-delete-tiddler-actions-outside>>\\n\\t\\t\\t$tm-edit-tiddler=\u003C\u003Ctiddlyflex-tm-edit-tiddler-actions-outside>>\\n\\t\\t\\t$tm-fold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-all-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-fold-other-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-other-tiddlers-actions-outside>>\\n\\t\\t\\t$tm-fold-tiddler=\u003C\u003Ctiddlyflex-tm-fold-tiddler-actions-outside>>\\n\\t\\t\\t$tm-home=\u003C\u003Ctiddlyflex-tm-home-actions-outside>>\\n\\t\\t\\t$tm-navigate=\u003C\u003Ctiddlyflex-tm-navigate-actions-outside>>\\n\\t\\t\\t$tm-new-tiddler=\u003C\u003Ctiddlyflex-tm-new-tiddler-actions-outside>>\\n\\t\\t\\t$tm-perform-import=\u003C\u003Ctiddlyflex-tm-perform-import-actions-outside>>\\n\\t\\t\\t$tm-save-tiddler=\u003C\u003Ctiddlyflex-tm-save-tiddler-actions-outside>>\\n\\t\\t\\t$tm-unfold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-unfold-all-tiddlers-actions-outside>>>\\n\\t\\t\\t\u003Cdiv class=\\\"tc-tiddlyflex-footer\\\">\\n\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/BottomToolbar]!is[draft]]\\\" variable=\\\"listItem\\\" storyview=\\\"pop\\\">\\n\\t\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\\t\\t\u003C/$list>\\n\\t\\t\\t\u003C/div>\\n\\t\\t\u003C/$messagecatcher>\\n\\t\u003C/div>\\n\u003C/$vars>\"},\"$:/core/ui/SideBar/Open\":{\"title\":\"$:/core/ui/SideBar/Open\",\"tags\":\"$:/tags/SideBar\",\"caption\":\"{{$:/language/SideBar/Open/Caption}}\",\"text\":\"\\\\whitespace trim\\n\\\\define lingo-base() $:/language/CloseAll/\\n\\n\\\\define drop-actions()\\n\u003C$action-listops $tiddler=\u003C\u003Ctv-story-list>> $subfilter=\\\"+[insertbefore\u003CactionTiddler>,\u003CcurrentTiddler>]\\\"/>\\n\\\\end\\n\\n\\\\define placeholder()\\n\u003Cdiv class=\\\"tc-droppable-placeholder\\\"/>\\n\\\\end\\n\\n\\\\define droppable-item(button)\\n\\\\whitespace trim\\n\u003C$droppable actions=\u003C\u003Cdrop-actions>> enable=\u003C\u003Ctv-allow-drag-and-drop>> tag=\\\"div\\\">\\n\u003C\u003Cplaceholder>>\\n\u003Cdiv>\\n$button$\\n\u003C/div>\\n\u003C/$droppable>\\n\\\\end\\n\\n\\\\procedure tiddlyflex-sidebar-tab-open()\\n\u003Cdiv class=\\\"tc-sidebar-tab-open\\\">\\n\u003C$list filter=\\\"[list\u003Ctv-story-list>]\\\" history=\u003C\u003Ctv-history-list>> storyview=\\\"pop\\\">\\n\u003Cdiv class=\\\"tc-sidebar-tab-open-item\\\">\\n\u003C$macrocall $name=\\\"droppable-item\\\" button=\\\"\u003C$button message='tm-close-tiddler' tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class='tc-btn-invisible tc-btn-mini tc-small-gap-right'>{{$:/core/images/close-button}}\u003C/$button>\u003C$link/>\\\"/>\\n\u003C/div>\\n\u003C/$list>\\n\u003C$tiddler tiddler=\\\"\\\">\\n\u003Cdiv>\\n\u003C$macrocall $name=\\\"droppable-item\\\" button=\\\"\u003C$button message='tm-close-all-tiddlers' class='tc-btn-invisible tc-btn-mini'>\u003C\u003Clingo Button>>\u003C/$button>\\\"/>\\n\u003C/div>\\n\u003C/$tiddler>\\n\u003C/div>\\n\\\\end\\n\\n\u003C%if [function[tiddlyflex-layout]] %>\\n\\t\u003C$let currentColumn={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[[$:/columns]get[current-column]] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] ~1 }}} tv-story-list={{{ [[$:/StoryList-]addsuffix\u003CcurrentColumn>] }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CcurrentColumn>] }}}>\\n\\t\\t\u003C\u003Ctiddlyflex-sidebar-tab-open>>\\n\\t\u003C/$let>\\n\u003C% else %>\\n\\t\u003C\u003Ctiddlyflex-sidebar-tab-open>>\\n\u003C% endif %>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Templates/EditTemplate\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Templates/EditTemplate\",\"code-body\":\"yes\",\"text\":\"\\\\procedure delete-edittemplate-state-tiddlers()\\n\u003C$set name=\\\"safeNewFieldValueTiddlerPrefix\\\" value=\u003C\u003CnewFieldValueTiddlerPrefix>> emptyValue=\u003C\u003Cqualify \\\"$:/temp/NewFieldValue\\\">> >\\n\\t\u003C$action-deletetiddler $filter=\\\"[\u003CnewFieldNameTiddler>] [prefix[$:/temp/NewFieldValue]prefix\u003CsafeNewFieldValueTiddlerPrefix>] [\u003CnewFieldNameInputTiddler>] [\u003CnewFieldNameSelectionTiddler>] [\u003CnewTagNameTiddler>] [\u003CnewTagNameInputTiddler>] [\u003CnewTagNameSelectionTiddler>] [\u003CtypeInputTiddler>] [\u003CtypeSelectionTiddler>]\\\"/>\\n\u003C/$set>\\n\\\\end\\n\\n\\\\procedure save-tiddler-actions()\\n\\\\whitespace trim\\n\u003C$action-sendmessage $message=\\\"tm-add-tag\\\" $param={{{ [\u003CnewTagNameTiddler>get[text]] }}}/>\\n\u003C$action-sendmessage $message=\\\"tm-add-field\\\" $name={{{ [\u003CnewFieldNameTiddler>get[text]] }}} $value={{{ [\u003CnewFieldNameTiddler>get[text]] :map[subfilter\u003Cget-field-value-tiddler-filter>get[text]] }}}/>\\n\u003C\u003Cdelete-edittemplate-state-tiddlers>>\\n\u003C$action-sendmessage $message=\\\"tm-save-tiddler\\\"/>\\n\\\\end\\n\\n\\\\define cancel-delete-tiddler-actions(message)\\n\u003C%if [[$message$]match[delete]] %>\\n\\t\u003C\u003Ctiddlyflex-delete-draft-tiddler-actions>>\\n\u003C% elseif [[$message$]match[cancel]] %>\\n\\t\u003C\u003Ctiddlyflex-cancel-draft-tiddler-actions>>\\n\u003C% endif %>\\n\\\\end\\n\\n\\\\procedure get-field-value-tiddler-filter() [subfilter\u003Cget-field-editor-filter>sha256[16]addprefix[/]addprefix\u003CnewFieldValueTiddlerPrefix>]\\n\\\\procedure get-field-editor-filter() [\u003CnewFieldNameTiddler>get[text]else[]] :cascade[all[shadows+tiddlers]tag[$:/tags/FieldEditorFilter]!is[draft]get[text]] :and[!is[blank]else{$:/core/ui/EditTemplate/fieldEditor/default}]\\n\\n\\\\whitespace trim\\n\u003Cdiv\\n\\tdata-tiddler-title=\u003C\u003CcurrentTiddler>>\\n\\tdata-tags={{!!tags}}\\n\\tclass={{{ [all[shadows+tiddlers]tag[$:/tags/ClassFilters/TiddlerTemplate]!is[draft]] :map:flat[subfilter{!!text}] tc-tiddler-edit-frame [\u003CcurrentTiddler>is[tiddler]then[tc-tiddler-exists]] [\u003CcurrentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [\u003CcurrentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [\u003CcurrentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [\u003CcurrentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}\\n\\trole=\\\"region\\\"\\n\\taria-label={{$:/language/EditTemplate/Caption}}>\\n\\t\u003C$fieldmangler>\\n\\t\\t\u003C$draggable enable={{{ [{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}match[yes]then[$:/state/story-river/full-screen/]addsuffix\u003CcurrentTiddler>is[missing]then[yes]] ~[[no]] }}} tiddler=\u003C\u003CcurrentTiddler>> startactions=\u003C\u003Ctiddlyflex-drag-start-actions>> endactions=\u003C\u003Ctiddlyflex-drag-end-actions>> class=\\\"tc-tiddler-frame\\\">\\n\\t\\t\\t\u003C$vars\\n\\t\\t\\t\\tstoryTiddler=\u003C\u003CcurrentTiddler>>\\n\\t\\t\\t\\tnewTagNameTiddler=\u003C\u003Cqualify \\\"$:/temp/NewTagName\\\">>\\n\\t\\t\\t\\tnewFieldNameTiddler=\u003C\u003Cqualify \\\"$:/temp/NewFieldName\\\">>\\n\\t\\t\\t\\tnewFieldValueTiddlerPrefix=\u003C\u003Cqualify \\\"$:/temp/NewFieldValue\\\">>\\n\\t\\t\\t\\tnewFieldNameInputTiddler=\u003C\u003Cqualify \\\"$:/temp/NewFieldName/input\\\">>\\n\\t\\t\\t\\tnewFieldNameSelectionTiddler=\u003C\u003Cqualify \\\"$:/temp/NewFieldName/selected-item\\\">>\\n\\t\\t\\t\\tnewTagNameInputTiddler=\u003C\u003Cqualify \\\"$:/temp/NewTagName/input\\\">>\\n\\t\\t\\t\\tnewTagNameSelectionTiddler=\u003C\u003Cqualify \\\"$:/temp/NewTagName/selected-item\\\">>\\n\\t\\t\\t\\ttypeInputTiddler=\u003C\u003Cqualify \\\"$:/temp/Type/input\\\">>\\n\\t\\t\\t\\ttypeSelectionTiddler=\u003C\u003Cqualify \\\"$:/temp/Type/selected-item\\\">>>\\n\\t\\t\\t\\t\u003C$keyboard key=\\\"((cancel-edit-tiddler))\\\" actions=\u003C\u003Ccancel-delete-tiddler-actions \\\"cancel\\\">> tag=\\\"div\\\">\\n\\t\\t\\t\\t\\t\u003C$keyboard key=\\\"((save-tiddler))\\\" actions=\u003C\u003Csave-tiddler-actions>> tag=\\\"div\\\">\\n\\t\\t\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!is[draft]]\\\" variable=\\\"listItem\\\">\\n\\t\\t\\t\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\\t\\t\\t\\t\u003C/$list>\\n\\t\\t\\t\\t\\t\u003C/$keyboard>\\n\\t\\t\\t\\t\u003C/$keyboard>\\n\\t\\t\\t\u003C/$vars>\\n\\t\\t\\t\u003C% if [{$:/state/dragging}match[yes]then{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}match[yes]then[$:/state/story-river/full-screen/]addsuffix\u003CcurrentTiddler>is[missing]] %>\\n\\t\\t\\t\\t\u003C$droppable class=\\\"tc-tiddlyflex-droppable-top-half\\\" actions=\u003C\u003Ctiddlyflex-top-drop-actions>> dragenteractions=\u003C\u003Ctiddlyflex-top-dragenter-actions>>/>\\n\\t\\t\\t\\t\u003C$droppable class=\\\"tc-tiddlyflex-droppable-bottom-half\\\" actions=\u003C\u003Ctiddlyflex-bottom-drop-actions>> dragenteractions=\u003C\u003Ctiddlyflex-bottom-dragenter-actions>>/>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$draggable>\\n\\t\u003C/$fieldmangler>\\n\u003C/div>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Templates/ViewTemplate\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Templates/ViewTemplate\",\"code-body\":\"yes\",\"text\":\"\\\\whitespace trim\\n\\\\define folded-state()\\n$:/state/folded/$(currentTiddler)$\\n\\\\end\\n\\\\define cancel-delete-tiddler-actions(message) \u003C$action-sendmessage $message=\\\"tm-$message$-tiddler\\\"/>\\n\\\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!is[draft]] [all[shadows+tiddlers]tag[$:/tags/Global/View]!is[draft]]\\n\u003C$vars storyTiddler=\u003C\u003CcurrentTiddler>> tiddlerInfoState=\u003C\u003Cqualify \\\"$:/state/popup/tiddler-info\\\">>>\\n\\t\u003Cdiv data-tiddler-title=\u003C\u003CcurrentTiddler>> data-tags={{!!tags}} class={{{ [all[shadows+tiddlers]tag[$:/tags/ClassFilters/TiddlerTemplate]!is[draft]] :map:flat[subfilter{!!text}] tc-tiddler-view-frame [\u003CcurrentTiddler>is[tiddler]then[tc-tiddler-exists]] [\u003CcurrentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [\u003CcurrentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [\u003CcurrentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [\u003CcurrentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [\u003CcurrentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}} role=\\\"article\\\">\\n\\t\\t\u003C$draggable enable={{{ [{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}match[yes]then[$:/state/story-river/full-screen/]addsuffix\u003CcurrentTiddler>is[missing]then[yes]] ~[[no]] }}} tiddler=\u003C\u003CcurrentTiddler>> startactions=\u003C\u003Ctiddlyflex-drag-start-actions>> endactions=\u003C\u003Ctiddlyflex-drag-end-actions>> class=\\\"tc-tiddler-frame\\\">\\n\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!is[draft]]\\\" variable=\\\"listItem\\\">\\n\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\\t\u003C/$list>\\n\\t\\t\\t\u003C% if [{$:/state/dragging}match[yes]then{$:/config/tiddlyflex/story-river/tiddler/drag-enabled}match[yes]then[$:/state/story-river/full-screen/]addsuffix\u003CcurrentTiddler>is[missing]] %>\\n\\t\\t\\t\\t\u003C$droppable class=\\\"tc-tiddlyflex-droppable-top-half\\\" actions=\u003C\u003Ctiddlyflex-top-drop-actions>> dragenteractions=\u003C\u003Ctiddlyflex-top-dragenter-actions>>/>\\n\\t\\t\\t\\t\u003C$droppable class=\\\"tc-tiddlyflex-droppable-bottom-half\\\" actions=\u003C\u003Ctiddlyflex-bottom-drop-actions>> dragenteractions=\u003C\u003Ctiddlyflex-bottom-dragenter-actions>>/>\\n\\t\\t\\t\u003C% endif %>\\n\\t\\t\u003C/$draggable>\\n\\t\u003C/div>\\n\u003C/$vars>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Templates/sidebar\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Templates/sidebar\",\"code-body\":\"yes\",\"text\":\"\\\\whitespace trim\\n\\\\define config-title()\\n$:/config/SideBarSegments/Visibility/$(listItem)$\\n\\\\end\\n\\\\function tiddlyflex-current-column() [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]]\\n\u003Cdiv class=\\\"tc-tiddlyflex-sidebar-scrollable\\\">\\n\\n\\t\u003C$messagecatcher $tm-cancel-tiddler=\u003C\u003Ctiddlyflex-tm-cancel-tiddler-actions-outside>>\\n\\t\\t$tm-close-all-tiddlers=\u003C\u003Ctiddlyflex-tm-close-all-tiddlers-actions-outside>>\\n\\t\\t$tm-close-other-tiddlers=\u003C\u003Ctiddlyflex-tm-close-other-tiddlers-actions-outside>>\\n\\t\\t$tm-close-tiddler=\u003C\u003Ctiddlyflex-tm-close-tiddler-actions-outside>>\\n\\t\\t$tm-delete-tiddler=\u003C\u003Ctiddlyflex-tm-delete-tiddler-actions-outside>>\\n\\t\\t$tm-edit-tiddler=\u003C\u003Ctiddlyflex-tm-edit-tiddler-actions-outside>>\\n\\t\\t$tm-fold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-all-tiddlers-actions-outside>>\\n\\t\\t$tm-fold-other-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-other-tiddlers-actions-outside>>\\n\\t\\t$tm-fold-tiddler=\u003C\u003Ctiddlyflex-tm-fold-tiddler-actions-outside>>\\n\\t\\t$tm-home=\u003C\u003Ctiddlyflex-tm-home-actions-outside>>\\n\\t\\t$tm-navigate=\u003C\u003Ctiddlyflex-tm-navigate-actions-outside>>\\n\\t\\t$tm-new-tiddler=\u003C\u003Ctiddlyflex-tm-new-tiddler-actions-outside>>\\n\\t\\t$tm-perform-import=\u003C\u003Ctiddlyflex-tm-perform-import-actions-outside>>\\n\\t\\t$tm-save-tiddler=\u003C\u003Ctiddlyflex-tm-save-tiddler-actions-outside>>\\n\\t\\t$tm-unfold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-unfold-all-tiddlers-actions-outside>>>\\n\\n\\t\\t\u003Cdiv class=\\\"tc-sidebar-header\\\">\\n\\n\\t\\t\\t\u003C$reveal state=\\\"$:/state/sidebar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"yes\\\" animate=\\\"yes\\\">\\n\\n\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n\\n\\t\\t\\t\\t\\t\u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-title>> text=\\\"hide\\\" tag=\\\"div\\\">\\n\\n\\t\\t\\t\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>> mode=\\\"block\\\"/>\\n\\n\\t\\t\\t\\t\\t\u003C/$reveal>\\n\\n\\t\\t\\t\\t\u003C/$list>\\n\\n\\t\\t\\t\u003C/$reveal>\\n\\n\\t\\t\u003C/div>\\n\\n\\t\u003C/$messagecatcher>\\n\\n\u003C/div>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Templates/story\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Templates/story\",\"code-body\":\"yes\",\"text\":\"\\\\whitespace trim\\n\\\\function tiddlyflex-current-column() [\u003CtiddlyFlexColumn>]\\n\\\\procedure tiddlyflex-activate-column-actions()\\n\u003C%if [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] +[!match\u003CtiddlyFlexColumn>] %>\\n\\t\u003C$action-setfield $tiddler=\\\"$:/columns\\\" current-column=\u003C\u003CtiddlyFlexColumn>>/>\\n\u003C% endif %>\\n\\\\end\\n\\\\procedure tiddlyflex-filtered-story-list()\\n\\n\u003C$list filter=\u003C\u003Ctdff.tiddlyflex-story-river-filter>> history=\u003C\u003Ctv-history-list>> template=\\\"$:/core/ui/StoryTiddlerTemplate\\\" storyview=\\\"tiddlyflex\\\" emptyMessage={{{ [list\u003Ctv-story-list>limit[1]then[]else{$(emptyMessageTiddler)$}] }}}/>\\n\\n\\\\end\\n\u003Cdiv class={{{ [subfilter\u003Ctdff.tiddlyflex-enlist-columns>] :intersection[{$:/columns!!current-column}] ~[subfilter\u003Ctdff.tiddlyflex-enlist-columns>first[]] +[match\u003CtiddlyFlexColumn>then[tc-tiddlyflex-story-river-active]] [[tc-tiddlyflex-story-river-wrapper-inner]] [[tc-tiddlyflex-story-river-]addsuffix\u003CtiddlyFlexColumn>] :and[unique[]join[ ]] }}}>\\n\\n\\t\u003C$vars tv-story-list={{{ [[$:/StoryList-]addsuffix\u003CtiddlyFlexColumn>] }}} tv-history-list={{{ [[$:/HistoryList-]addsuffix\u003CtiddlyFlexColumn>] }}} openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\n\\t\\t\u003C$messagecatcher $tm-import-tiddlers=\u003C\u003Ctiddlyflex-tm-import-tiddlers-actions>>>\\n\\n\\t\\t\\t\u003C$dropzone enable=\u003C\u003Ctv-enable-drag-and-drop>> class={{{ [\u003CtiddlyFlexColumn>!is[blank]addprefix[tc-tiddlyflex-dropzone-]] ~tc-tiddlyflex-dropzone-1 }}} importTitle={{{ [[$:/Import-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\n\\t\\t\\t\\t\u003C$eventcatcher selector=\\\".tc-tiddlyflex-activate-column\\\" $click=\u003C\u003Ctiddlyflex-activate-column-actions>> class=\\\"tc-tiddlyflex-active-column-wrapper\\\">\\n\\n\\t\\t\\t\\t\\t\u003Ca class=\\\"tc-btn-invisible tc-tiddlyflex-activate-column\\\"/>\\n\\n\\t\\t\\t\\t\u003C/$eventcatcher>\\n\\n\\t\\t\\t\\t\u003Csection class=\\\"tc-tiddlyflex-story-river\\\" role=\\\"main\\\">\\n\\n\\t\\t\\t\\t\\t\u003C$messagecatcher\\n\\t\\t\\t\\t\\t\\t$tm-cancel-tiddler=\u003C\u003Ctiddlyflex-tm-cancel-tiddler-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-close-all-tiddlers=\u003C\u003Ctiddlyflex-tm-close-all-tiddlers-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-close-other-tiddlers=\u003C\u003Ctiddlyflex-tm-close-other-tiddlers-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-close-tiddler=\u003C\u003Ctiddlyflex-tm-close-tiddler-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-delete-tiddler=\u003C\u003Ctiddlyflex-tm-delete-tiddler-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-edit-tiddler=\u003C\u003Ctiddlyflex-tm-edit-tiddler-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-fold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-all-tiddlers-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-fold-other-tiddlers=\u003C\u003Ctiddlyflex-tm-fold-other-tiddlers-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-fold-tiddler=\u003C\u003Ctiddlyflex-tm-fold-tiddler-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-home=\u003C\u003Ctiddlyflex-tm-home-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-navigate=\u003C\u003Ctiddlyflex-tm-navigate-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-new-tiddler=\u003C\u003Ctiddlyflex-tm-new-tiddler-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-perform-import=\u003C\u003Ctiddlyflex-tm-perform-import-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-save-tiddler=\u003C\u003Ctiddlyflex-tm-save-tiddler-actions>>\\n\\t\\t\\t\\t\\t\\t$tm-unfold-all-tiddlers=\u003C\u003Ctiddlyflex-tm-unfold-all-tiddlers-actions>>>\\n\\n\\t\\t\\t\\t\\t\\t\u003Csection class=\\\"story-backdrop\\\">\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C$set name=\\\"aboveStoryTag\\\" value={{{ [[$:/tags/AboveStory-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag\u003CaboveStoryTag>!is[draft]]\\\">\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\u003C$transclude/>\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C/$list>\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C/$set>\\n\\n\\t\\t\\t\\t\\t\\t\u003C/section>\\n\\n\\t\\t\\t\\t\\t\\t\u003Csection class=\\\"tc-tiddlyflex-story-river-inner\\\">\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C$set name=\\\"emptyMessageTiddler\\\" value={{{ [[$:/config/EmptyStoryMessage-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C\u003Ctiddlyflex-filtered-story-list>>\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C/$set>\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C%if [{$:/state/dragging}match[yes]] %>\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C$droppable class=\\\"tc-tiddlyflex-below-story-river-droppable\\\" actions=\u003C\u003Ctiddlyflex-story-droppable-drop-actions>> dragenteractions=\u003C\u003Ctiddlyflex-story-droppable-dragenter-actions>>/>\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C% endif %>\\n\\n\\t\\t\\t\\t\\t\\t\u003C/section>\\n\\n\\t\\t\\t\\t\\t\\t\u003Csection class=\\\"story-frontdrop\\\">\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C$set name=\\\"belowStoryTag\\\" value={{{ [[$:/tags/BelowStory-]addsuffix\u003CtiddlyFlexColumn>] }}}>\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag\u003CbelowStoryTag>!is[draft]]\\\">\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\u003C$transclude/>\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\u003C/$list>\\n\\n\\t\\t\\t\\t\\t\\t\\t\u003C/$set>\\n\\n\\t\\t\\t\\t\\t\\t\u003C/section>\\n\\n\\t\\t\\t\\t\\t\u003C/$messagecatcher>\\n\\n\\t\\t\\t\\t\u003C/section>\\n\\n\\t\\t\\t\u003C/$dropzone>\\n\\n\\t\\t\u003C/$messagecatcher>\\n\\n\\t\u003C/$vars>\\n\\n\u003C/div>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Toolbars/PluginReloadWarning\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Toolbars/PluginReloadWarning\",\"text\":\"\\\\define lingo-base() $:/language/\\n\\n\u003Cdiv class=\\\"tc-plugin-reload-warning\\\">\\n\\n\u003C$set name=\\\"tv-config-toolbar-class\\\" value=\\\"\\\">\\n\\n\u003C\u003Clingo PluginReloadWarning>>\u003C$button set=\\\"$:/temp/HidePluginWarning\\\" setTo=\\\"yes\\\" class=\\\"tc-btn-invisible tc-small-gap-left\\\">{{$:/core/images/close-button}}\u003C/$button>\\n\\n\u003C/$set>\\n\\n\u003C/div>\"},\"$:/plugins/BTC/TiddlyFlex/ui/Toolbars/Segments/search\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Toolbars/Segments/search\",\"tags\":\"$:/tags/TopLeftBar\",\"text\":\"{{$:/core/ui/SideBarSegments/search}}\"},\"$:/plugins/BTC/TiddlyFlex/ui/Toolbars/TopToolbar\":{\"title\":\"$:/plugins/BTC/TiddlyFlex/ui/Toolbars/TopToolbar\",\"tags\":\"$:/tags/TopToolbar\",\"text\":\"\\\\whitespace trim\\n\u003Cdiv class=\\\"tc-tiddlyflex-top-toolbar\\\">\\n\\t\u003Cdiv class=\\\"tc-tiddlyflex-top-toolbar-left\\\">\\n\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!is[draft]]\\\" variable=\\\"listItem\\\" storyview=\\\"pop\\\">\\n\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\u003C/$list>\\n\\t\u003C/div>\\n\\t\u003Cdiv class=\\\"tc-tiddlyflex-top-toolbar-center\\\">\\n\\n\\t\u003C/div>\\n\\t\u003Cdiv class=\\\"tc-tiddlyflex-top-toolbar-right\\\">\\n\\t\\t\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!is[draft]]\\\" variable=\\\"listItem\\\" storyview=\\\"pop\\\">\\n\\t\\t\\t\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\\n\\t\\t\u003C/$list>\\n\\t\u003C/div>\\n\u003C/div>\"}}}","revision":"0","bag":"default"} , {"title":"$:/plugins/tiddlywiki/highlight","name":"Highlight","description":"Highlight.js syntax highlighting","author":"Joao Bolila","list":"readme usage license","version":"5.3.4-prerelease","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/config/HighlightPlugin/TypeMappings/application/javascript\":{\"title\":\"$:/config/HighlightPlugin/TypeMappings/application/javascript\",\"text\":\"javascript\"},\"$:/config/HighlightPlugin/TypeMappings/application/json\":{\"title\":\"$:/config/HighlightPlugin/TypeMappings/application/json\",\"text\":\"json\"},\"$:/config/HighlightPlugin/TypeMappings/text/css\":{\"title\":\"$:/config/HighlightPlugin/TypeMappings/text/css\",\"text\":\"css\"},\"$:/config/HighlightPlugin/TypeMappings/text/html\":{\"title\":\"$:/config/HighlightPlugin/TypeMappings/text/html\",\"text\":\"html\"},\"$:/config/HighlightPlugin/TypeMappings/image/svg+xml\":{\"title\":\"$:/config/HighlightPlugin/TypeMappings/image/svg+xml\",\"text\":\"xml\"},\"$:/config/HighlightPlugin/TypeMappings/text/x-markdown\":{\"title\":\"$:/config/HighlightPlugin/TypeMappings/text/x-markdown\",\"text\":\"markdown\"},\"$:/config/HighlightPlugin/TypeMappings/text/markdown\":{\"title\":\"$:/config/HighlightPlugin/TypeMappings/text/markdown\",\"text\":\"markdown\"},\"$:/plugins/tiddlywiki/highlight/highlight.js\":{\"text\":\"var hljs = require(\\\"$:/plugins/tiddlywiki/highlight/highlight.js\\\");\\n/*!\\n Highlight.js v11.4.0 (git: 2d0e7c1094)\\n (c) 2006-2022 Ivan Sagalaev and other contributors\\n License: BSD-3-Clause\\n */\\nvar hljs=function(){\\\"use strict\\\";var e={exports:{}};function t(e){\\nreturn e instanceof Map?e.clear=e.delete=e.set=()=>{\\nthrow Error(\\\"map is read-only\\\")}:e instanceof Set&&(e.add=e.clear=e.delete=()=>{\\nthrow Error(\\\"set is read-only\\\")\\n}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((n=>{var i=e[n]\\n;\\\"object\\\"!=typeof i||Object.isFrozen(i)||t(i)})),e}\\ne.exports=t,e.exports.default=t;var n=e.exports;class i{constructor(e){\\nvoid 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}\\nignoreMatch(){this.isMatchIgnored=!0}}function r(e){\\nreturn e.replace(/&/g,\\\"&\\\").replace(/\u003C/g,\\\"<\\\").replace(/>/g,\\\">\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\")\\n}function s(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t]\\n;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const o=e=>!!e.kind\\n;class a{constructor(e,t){\\nthis.buffer=\\\"\\\",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){\\nthis.buffer+=r(e)}openNode(e){if(!o(e))return;let t=e.kind\\n;t=e.sublanguage?\\\"language-\\\"+t:((e,{prefix:t})=>{if(e.includes(\\\".\\\")){\\nconst n=e.split(\\\".\\\")\\n;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${\\\"_\\\".repeat(t+1)}`))].join(\\\" \\\")\\n}return`${t}${e}`})(t,{prefix:this.classPrefix}),this.span(t)}closeNode(e){\\no(e)&&(this.buffer+=\\\"\u003C/span>\\\")}value(){return this.buffer}span(e){\\nthis.buffer+=`\u003Cspan class=\\\"${e}\\\">`}}class c{constructor(){this.rootNode={\\nchildren:[]},this.stack=[this.rootNode]}get top(){\\nreturn this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){\\nthis.top.children.push(e)}openNode(e){const t={kind:e,children:[]}\\n;this.add(t),this.stack.push(t)}closeNode(){\\nif(this.stack.length>1)return this.stack.pop()}closeAllNodes(){\\nfor(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}\\nwalk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){\\nreturn\\\"string\\\"==typeof t?e.addText(t):t.children&&(e.openNode(t),\\nt.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){\\n\\\"string\\\"!=typeof e&&e.children&&(e.children.every((e=>\\\"string\\\"==typeof e))?e.children=[e.children.join(\\\"\\\")]:e.children.forEach((e=>{\\nc._collapse(e)})))}}class l extends c{constructor(e){super(),this.options=e}\\naddKeyword(e,t){\\\"\\\"!==e&&(this.openNode(t),this.addText(e),this.closeNode())}\\naddText(e){\\\"\\\"!==e&&this.add(e)}addSublanguage(e,t){const n=e.root\\n;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){\\nreturn new a(this,this.options).value()}finalize(){return!0}}function g(e){\\nreturn e?\\\"string\\\"==typeof e?e:e.source:null}function d(e){return f(\\\"(?=\\\",e,\\\")\\\")}\\nfunction u(e){return f(\\\"(?:\\\",e,\\\")*\\\")}function h(e){return f(\\\"(?:\\\",e,\\\")?\\\")}\\nfunction f(...e){return e.map((e=>g(e))).join(\\\"\\\")}function p(...e){const t=(e=>{\\nconst t=e[e.length-1]\\n;return\\\"object\\\"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}\\n})(e);return\\\"(\\\"+(t.capture?\\\"\\\":\\\"?:\\\")+e.map((e=>g(e))).join(\\\"|\\\")+\\\")\\\"}\\nfunction b(e){return RegExp(e.toString()+\\\"|\\\").exec(\\\"\\\").length-1}\\nconst m=/\\\\[(?:[^\\\\\\\\\\\\]]|\\\\\\\\.)*\\\\]|\\\\(\\\\??|\\\\\\\\([1-9][0-9]*)|\\\\\\\\./\\n;function E(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n\\n;let i=g(e),r=\\\"\\\";for(;i.length>0;){const e=m.exec(i);if(!e){r+=i;break}\\nr+=i.substring(0,e.index),\\ni=i.substring(e.index+e[0].length),\\\"\\\\\\\\\\\"===e[0][0]&&e[1]?r+=\\\"\\\\\\\\\\\"+(Number(e[1])+t):(r+=e[0],\\n\\\"(\\\"===e[0]&&n++)}return r})).map((e=>`(${e})`)).join(t)}\\nconst x=\\\"[a-zA-Z]\\\\\\\\w*\\\",w=\\\"[a-zA-Z_]\\\\\\\\w*\\\",y=\\\"\\\\\\\\b\\\\\\\\d+(\\\\\\\\.\\\\\\\\d+)?\\\",_=\\\"(-?)(\\\\\\\\b0[xX][a-fA-F0-9]+|(\\\\\\\\b\\\\\\\\d+(\\\\\\\\.\\\\\\\\d*)?|\\\\\\\\.\\\\\\\\d+)([eE][-+]?\\\\\\\\d+)?)\\\",v=\\\"\\\\\\\\b(0b[01]+)\\\",k={\\nbegin:\\\"\\\\\\\\\\\\\\\\[\\\\\\\\s\\\\\\\\S]\\\",relevance:0},O={scope:\\\"string\\\",begin:\\\"'\\\",end:\\\"'\\\",\\nillegal:\\\"\\\\\\\\n\\\",contains:[k]},N={scope:\\\"string\\\",begin:'\\\"',end:'\\\"',illegal:\\\"\\\\\\\\n\\\",\\ncontains:[k]},M=(e,t,n={})=>{const i=s({scope:\\\"comment\\\",begin:e,end:t,\\ncontains:[]},n);i.contains.push({scope:\\\"doctag\\\",\\nbegin:\\\"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)\\\",\\nend:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})\\n;const r=p(\\\"I\\\",\\\"a\\\",\\\"is\\\",\\\"so\\\",\\\"us\\\",\\\"to\\\",\\\"at\\\",\\\"if\\\",\\\"in\\\",\\\"it\\\",\\\"on\\\",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/)\\n;return i.contains.push({begin:f(/[ ]+/,\\\"(\\\",r,/[.]?[:]?([.][ ]|[ ])/,\\\"){3}\\\")}),i\\n},S=M(\\\"//\\\",\\\"$\\\"),R=M(\\\"/\\\\\\\\*\\\",\\\"\\\\\\\\*/\\\"),j=M(\\\"#\\\",\\\"$\\\");var A=Object.freeze({\\n__proto__:null,MATCH_NOTHING_RE:/\\\\b\\\\B/,IDENT_RE:x,UNDERSCORE_IDENT_RE:w,\\nNUMBER_RE:y,C_NUMBER_RE:_,BINARY_NUMBER_RE:v,\\nRE_STARTERS_RE:\\\"!|!=|!==|%|%=|&|&&|&=|\\\\\\\\*|\\\\\\\\*=|\\\\\\\\+|\\\\\\\\+=|,|-|-=|/=|/|:|;|\u003C\u003C|\u003C\u003C=|\u003C=|\u003C|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\\\\\?|\\\\\\\\[|\\\\\\\\{|\\\\\\\\(|\\\\\\\\^|\\\\\\\\^=|\\\\\\\\||\\\\\\\\|=|\\\\\\\\|\\\\\\\\||~\\\",\\nSHEBANG:(e={})=>{const t=/^#![ ]*\\\\//\\n;return e.binary&&(e.begin=f(t,/.*\\\\b/,e.binary,/\\\\b.*/)),s({scope:\\\"meta\\\",begin:t,\\nend:/$/,relevance:0,\\\"on:begin\\\":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},\\nBACKSLASH_ESCAPE:k,APOS_STRING_MODE:O,QUOTE_STRING_MODE:N,PHRASAL_WORDS_MODE:{\\nbegin:/\\\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\\\b/\\n},COMMENT:M,C_LINE_COMMENT_MODE:S,C_BLOCK_COMMENT_MODE:R,HASH_COMMENT_MODE:j,\\nNUMBER_MODE:{scope:\\\"number\\\",begin:y,relevance:0},C_NUMBER_MODE:{scope:\\\"number\\\",\\nbegin:_,relevance:0},BINARY_NUMBER_MODE:{scope:\\\"number\\\",begin:v,relevance:0},\\nREGEXP_MODE:{begin:/(?=\\\\/[^/\\\\n]*\\\\/)/,contains:[{scope:\\\"regexp\\\",begin:/\\\\//,\\nend:/\\\\/[gimuy]*/,illegal:/\\\\n/,contains:[k,{begin:/\\\\[/,end:/\\\\]/,relevance:0,\\ncontains:[k]}]}]},TITLE_MODE:{scope:\\\"title\\\",begin:x,relevance:0},\\nUNDERSCORE_TITLE_MODE:{scope:\\\"title\\\",begin:w,relevance:0},METHOD_GUARD:{\\nbegin:\\\"\\\\\\\\.\\\\\\\\s*[a-zA-Z_]\\\\\\\\w*\\\",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{\\n\\\"on:begin\\\":(e,t)=>{t.data._beginMatch=e[1]},\\\"on:end\\\":(e,t)=>{\\nt.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function I(e,t){\\n\\\".\\\"===e.input[e.index-1]&&t.ignoreMatch()}function T(e,t){\\nvoid 0!==e.className&&(e.scope=e.className,delete e.className)}function L(e,t){\\nt&&e.beginKeywords&&(e.begin=\\\"\\\\\\\\b(\\\"+e.beginKeywords.split(\\\" \\\").join(\\\"|\\\")+\\\")(?!\\\\\\\\.)(?=\\\\\\\\b|\\\\\\\\s)\\\",\\ne.__beforeBegin=I,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,\\nvoid 0===e.relevance&&(e.relevance=0))}function B(e,t){\\nArray.isArray(e.illegal)&&(e.illegal=p(...e.illegal))}function D(e,t){\\nif(e.match){\\nif(e.begin||e.end)throw Error(\\\"begin & end are not supported with match\\\")\\n;e.begin=e.match,delete e.match}}function H(e,t){\\nvoid 0===e.relevance&&(e.relevance=1)}const P=(e,t)=>{if(!e.beforeMatch)return\\n;if(e.starts)throw Error(\\\"beforeMatch cannot be used with starts\\\")\\n;const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]\\n})),e.keywords=n.keywords,e.begin=f(n.beforeMatch,d(n.begin)),e.starts={\\nrelevance:0,contains:[Object.assign(n,{endsParent:!0})]\\n},e.relevance=0,delete n.beforeMatch\\n},C=[\\\"of\\\",\\\"and\\\",\\\"for\\\",\\\"in\\\",\\\"not\\\",\\\"or\\\",\\\"if\\\",\\\"then\\\",\\\"parent\\\",\\\"list\\\",\\\"value\\\"]\\n;function $(e,t,n=\\\"keyword\\\"){const i=Object.create(null)\\n;return\\\"string\\\"==typeof e?r(n,e.split(\\\" \\\")):Array.isArray(e)?r(n,e):Object.keys(e).forEach((n=>{\\nObject.assign(i,$(e[n],t,n))})),i;function r(e,n){\\nt&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split(\\\"|\\\")\\n;i[n[0]]=[e,U(n[0],n[1])]}))}}function U(e,t){\\nreturn t?Number(t):(e=>C.includes(e.toLowerCase()))(e)?0:1}const z={},K=e=>{\\nconsole.error(e)},W=(e,...t)=>{console.log(\\\"WARN: \\\"+e,...t)},X=(e,t)=>{\\nz[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),z[`${e}/${t}`]=!0)\\n},G=Error();function Z(e,t,{key:n}){let i=0;const r=e[n],s={},o={}\\n;for(let e=1;e\u003C=t.length;e++)o[e+i]=r[e],s[e+i]=!0,i+=b(t[e-1])\\n;e[n]=o,e[n]._emit=s,e[n]._multi=!0}function F(e){(e=>{\\ne.scope&&\\\"object\\\"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,\\ndelete e.scope)})(e),\\\"string\\\"==typeof e.beginScope&&(e.beginScope={\\n_wrap:e.beginScope}),\\\"string\\\"==typeof e.endScope&&(e.endScope={_wrap:e.endScope\\n}),(e=>{if(Array.isArray(e.begin)){\\nif(e.skip||e.excludeBegin||e.returnBegin)throw K(\\\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\\\"),\\nG\\n;if(\\\"object\\\"!=typeof e.beginScope||null===e.beginScope)throw K(\\\"beginScope must be object\\\"),\\nG;Z(e,e.begin,{key:\\\"beginScope\\\"}),e.begin=E(e.begin,{joinWith:\\\"\\\"})}})(e),(e=>{\\nif(Array.isArray(e.end)){\\nif(e.skip||e.excludeEnd||e.returnEnd)throw K(\\\"skip, excludeEnd, returnEnd not compatible with endScope: {}\\\"),\\nG\\n;if(\\\"object\\\"!=typeof e.endScope||null===e.endScope)throw K(\\\"endScope must be object\\\"),\\nG;Z(e,e.end,{key:\\\"endScope\\\"}),e.end=E(e.end,{joinWith:\\\"\\\"})}})(e)}function V(e){\\nfunction t(t,n){\\nreturn RegExp(g(t),\\\"m\\\"+(e.case_insensitive?\\\"i\\\":\\\"\\\")+(e.unicodeRegex?\\\"u\\\":\\\"\\\")+(n?\\\"g\\\":\\\"\\\"))\\n}class n{constructor(){\\nthis.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}\\naddRule(e,t){\\nt.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),\\nthis.matchAt+=b(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null)\\n;const e=this.regexes.map((e=>e[1]));this.matcherRe=t(E(e,{joinWith:\\\"|\\\"\\n}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex\\n;const t=this.matcherRe.exec(e);if(!t)return null\\n;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n]\\n;return t.splice(0,n),Object.assign(t,i)}}class i{constructor(){\\nthis.rules=[],this.multiRegexes=[],\\nthis.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){\\nif(this.multiRegexes[e])return this.multiRegexes[e];const t=new n\\n;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),\\nt.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){\\nreturn 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){\\nthis.rules.push([e,t]),\\\"begin\\\"===t.type&&this.count++}exec(e){\\nconst t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex\\n;let n=t.exec(e)\\n;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{\\nconst t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}\\nreturn n&&(this.regexIndex+=n.position+1,\\nthis.regexIndex===this.count&&this.considerAll()),n}}\\nif(e.compilerExtensions||(e.compilerExtensions=[]),\\ne.contains&&e.contains.includes(\\\"self\\\"))throw Error(\\\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\\\")\\n;return e.classNameAliases=s(e.classNameAliases||{}),function n(r,o){const a=r\\n;if(r.isCompiled)return a\\n;[T,D,F,P].forEach((e=>e(r,o))),e.compilerExtensions.forEach((e=>e(r,o))),\\nr.__beforeBegin=null,[L,B,H].forEach((e=>e(r,o))),r.isCompiled=!0;let c=null\\n;return\\\"object\\\"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords),\\nc=r.keywords.$pattern,\\ndelete r.keywords.$pattern),c=c||/\\\\w+/,r.keywords&&(r.keywords=$(r.keywords,e.case_insensitive)),\\na.keywordPatternRe=t(c,!0),\\no&&(r.begin||(r.begin=/\\\\B|\\\\b/),a.beginRe=t(a.begin),r.end||r.endsWithParent||(r.end=/\\\\B|\\\\b/),\\nr.end&&(a.endRe=t(a.end)),\\na.terminatorEnd=g(a.end)||\\\"\\\",r.endsWithParent&&o.terminatorEnd&&(a.terminatorEnd+=(r.end?\\\"|\\\":\\\"\\\")+o.terminatorEnd)),\\nr.illegal&&(a.illegalRe=t(r.illegal)),\\nr.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>s(e,{\\nvariants:null},t)))),e.cachedVariants?e.cachedVariants:q(e)?s(e,{\\nstarts:e.starts?s(e.starts):null\\n}):Object.isFrozen(e)?s(e):e))(\\\"self\\\"===e?r:e)))),r.contains.forEach((e=>{n(e,a)\\n})),r.starts&&n(r.starts,o),a.matcher=(e=>{const t=new i\\n;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:\\\"begin\\\"\\n}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:\\\"end\\\"\\n}),e.illegal&&t.addRule(e.illegal,{type:\\\"illegal\\\"}),t})(a),a}(e)}function q(e){\\nreturn!!e&&(e.endsWithParent||q(e.starts))}class J extends Error{\\nconstructor(e,t){super(e),this.name=\\\"HTMLInjectionError\\\",this.html=t}}\\nconst Y=r,Q=s,ee=Symbol(\\\"nomatch\\\");var te=(e=>{\\nconst t=Object.create(null),r=Object.create(null),s=[];let o=!0\\n;const a=\\\"Could not find the language '{}', did you forget to load/include a language module?\\\",c={\\ndisableAutodetect:!0,name:\\\"Plain text\\\",contains:[]};let g={\\nignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,\\nlanguageDetectRe:/\\\\blang(?:uage)?-([\\\\w-]+)\\\\b/i,classPrefix:\\\"hljs-\\\",\\ncssSelector:\\\"pre code\\\",languages:null,__emitter:l};function b(e){\\nreturn g.noHighlightRe.test(e)}function m(e,t,n){let i=\\\"\\\",r=\\\"\\\"\\n;\\\"object\\\"==typeof t?(i=e,\\nn=t.ignoreIllegals,r=t.language):(X(\\\"10.7.0\\\",\\\"highlight(lang, code, ...args) has been deprecated.\\\"),\\nX(\\\"10.7.0\\\",\\\"Please use highlight(code, options) instead.\\\\nhttps://github.com/highlightjs/highlight.js/issues/2277\\\"),\\nr=e,i=t),void 0===n&&(n=!0);const s={code:i,language:r};N(\\\"before:highlight\\\",s)\\n;const o=s.result?s.result:E(s.language,s.code,n)\\n;return o.code=s.code,N(\\\"after:highlight\\\",o),o}function E(e,n,r,s){\\nconst c=Object.create(null);function l(){if(!O.keywords)return void M.addText(S)\\n;let e=0;O.keywordPatternRe.lastIndex=0;let t=O.keywordPatternRe.exec(S),n=\\\"\\\"\\n;for(;t;){n+=S.substring(e,t.index)\\n;const r=y.case_insensitive?t[0].toLowerCase():t[0],s=(i=r,O.keywords[i]);if(s){\\nconst[e,i]=s\\n;if(M.addText(n),n=\\\"\\\",c[r]=(c[r]||0)+1,c[r]\u003C=7&&(R+=i),e.startsWith(\\\"_\\\"))n+=t[0];else{\\nconst n=y.classNameAliases[e]||e;M.addKeyword(t[0],n)}}else n+=t[0]\\n;e=O.keywordPatternRe.lastIndex,t=O.keywordPatternRe.exec(S)}var i\\n;n+=S.substr(e),M.addText(n)}function d(){null!=O.subLanguage?(()=>{\\nif(\\\"\\\"===S)return;let e=null;if(\\\"string\\\"==typeof O.subLanguage){\\nif(!t[O.subLanguage])return void M.addText(S)\\n;e=E(O.subLanguage,S,!0,N[O.subLanguage]),N[O.subLanguage]=e._top\\n}else e=x(S,O.subLanguage.length?O.subLanguage:null)\\n;O.relevance>0&&(R+=e.relevance),M.addSublanguage(e._emitter,e.language)\\n})():l(),S=\\\"\\\"}function u(e,t){let n=1;for(;void 0!==t[n];){if(!e._emit[n]){n++\\n;continue}const i=y.classNameAliases[e[n]]||e[n],r=t[n]\\n;i?M.addKeyword(r,i):(S=r,l(),S=\\\"\\\"),n++}}function h(e,t){\\nreturn e.scope&&\\\"string\\\"==typeof e.scope&&M.openNode(y.classNameAliases[e.scope]||e.scope),\\ne.beginScope&&(e.beginScope._wrap?(M.addKeyword(S,y.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),\\nS=\\\"\\\"):e.beginScope._multi&&(u(e.beginScope,t),S=\\\"\\\")),O=Object.create(e,{parent:{\\nvalue:O}}),O}function f(e,t,n){let r=((e,t)=>{const n=e&&e.exec(t)\\n;return n&&0===n.index})(e.endRe,n);if(r){if(e[\\\"on:end\\\"]){const n=new i(e)\\n;e[\\\"on:end\\\"](t,n),n.isMatchIgnored&&(r=!1)}if(r){\\nfor(;e.endsParent&&e.parent;)e=e.parent;return e}}\\nif(e.endsWithParent)return f(e.parent,t,n)}function p(e){\\nreturn 0===O.matcher.regexIndex?(S+=e[0],1):(I=!0,0)}function b(e){\\nconst t=e[0],i=n.substr(e.index),r=f(O,e,i);if(!r)return ee;const s=O\\n;O.endScope&&O.endScope._wrap?(d(),\\nM.addKeyword(t,O.endScope._wrap)):O.endScope&&O.endScope._multi?(d(),\\nu(O.endScope,e)):s.skip?S+=t:(s.returnEnd||s.excludeEnd||(S+=t),\\nd(),s.excludeEnd&&(S=t));do{\\nO.scope&&M.closeNode(),O.skip||O.subLanguage||(R+=O.relevance),O=O.parent\\n}while(O!==r.parent);return r.starts&&h(r.starts,e),s.returnEnd?0:t.length}\\nlet m={};function w(t,s){const a=s&&s[0];if(S+=t,null==a)return d(),0\\n;if(\\\"begin\\\"===m.type&&\\\"end\\\"===s.type&&m.index===s.index&&\\\"\\\"===a){\\nif(S+=n.slice(s.index,s.index+1),!o){const t=Error(`0 width match regex (${e})`)\\n;throw t.languageName=e,t.badRule=m.rule,t}return 1}\\nif(m=s,\\\"begin\\\"===s.type)return(e=>{\\nconst t=e[0],n=e.rule,r=new i(n),s=[n.__beforeBegin,n[\\\"on:begin\\\"]]\\n;for(const n of s)if(n&&(n(e,r),r.isMatchIgnored))return p(t)\\n;return n.skip?S+=t:(n.excludeBegin&&(S+=t),\\nd(),n.returnBegin||n.excludeBegin||(S=t)),h(n,e),n.returnBegin?0:t.length})(s)\\n;if(\\\"illegal\\\"===s.type&&!r){\\nconst e=Error('Illegal lexeme \\\"'+a+'\\\" for mode \\\"'+(O.scope||\\\"\u003Cunnamed>\\\")+'\\\"')\\n;throw e.mode=O,e}if(\\\"end\\\"===s.type){const e=b(s);if(e!==ee)return e}\\nif(\\\"illegal\\\"===s.type&&\\\"\\\"===a)return 1\\n;if(A>1e5&&A>3*s.index)throw Error(\\\"potential infinite loop, way more iterations than matches\\\")\\n;return S+=a,a.length}const y=v(e)\\n;if(!y)throw K(a.replace(\\\"{}\\\",e)),Error('Unknown language: \\\"'+e+'\\\"')\\n;const _=V(y);let k=\\\"\\\",O=s||_;const N={},M=new g.__emitter(g);(()=>{const e=[]\\n;for(let t=O;t!==y;t=t.parent)t.scope&&e.unshift(t.scope)\\n;e.forEach((e=>M.openNode(e)))})();let S=\\\"\\\",R=0,j=0,A=0,I=!1;try{\\nfor(O.matcher.considerAll();;){\\nA++,I?I=!1:O.matcher.considerAll(),O.matcher.lastIndex=j\\n;const e=O.matcher.exec(n);if(!e)break;const t=w(n.substring(j,e.index),e)\\n;j=e.index+t}return w(n.substr(j)),M.closeAllNodes(),M.finalize(),k=M.toHTML(),{\\nlanguage:e,value:k,relevance:R,illegal:!1,_emitter:M,_top:O}}catch(t){\\nif(t.message&&t.message.includes(\\\"Illegal\\\"))return{language:e,value:Y(n),\\nillegal:!0,relevance:0,_illegalBy:{message:t.message,index:j,\\ncontext:n.slice(j-100,j+100),mode:t.mode,resultSoFar:k},_emitter:M};if(o)return{\\nlanguage:e,value:Y(n),illegal:!1,relevance:0,errorRaised:t,_emitter:M,_top:O}\\n;throw t}}function x(e,n){n=n||g.languages||Object.keys(t);const i=(e=>{\\nconst t={value:Y(e),illegal:!1,relevance:0,_top:c,_emitter:new g.__emitter(g)}\\n;return t._emitter.addText(e),t})(e),r=n.filter(v).filter(O).map((t=>E(t,e,!1)))\\n;r.unshift(i);const s=r.sort(((e,t)=>{\\nif(e.relevance!==t.relevance)return t.relevance-e.relevance\\n;if(e.language&&t.language){if(v(e.language).supersetOf===t.language)return 1\\n;if(v(t.language).supersetOf===e.language)return-1}return 0})),[o,a]=s,l=o\\n;return l.secondBest=a,l}function w(e){let t=null;const n=(e=>{\\nlet t=e.className+\\\" \\\";t+=e.parentNode?e.parentNode.className:\\\"\\\"\\n;const n=g.languageDetectRe.exec(t);if(n){const t=v(n[1])\\n;return t||(W(a.replace(\\\"{}\\\",n[1])),\\nW(\\\"Falling back to no-highlight mode for this block.\\\",e)),t?n[1]:\\\"no-highlight\\\"}\\nreturn t.split(/\\\\s+/).find((e=>b(e)||v(e)))})(e);if(b(n))return\\n;if(N(\\\"before:highlightElement\\\",{el:e,language:n\\n}),e.children.length>0&&(g.ignoreUnescapedHTML||(console.warn(\\\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\\\"),\\nconsole.warn(\\\"https://github.com/highlightjs/highlight.js/wiki/security\\\"),\\nconsole.warn(\\\"The element with unescaped HTML:\\\"),\\nconsole.warn(e)),g.throwUnescapedHTML))throw new J(\\\"One of your code blocks includes unescaped HTML.\\\",e.innerHTML)\\n;t=e;const i=t.textContent,s=n?m(i,{language:n,ignoreIllegals:!0}):x(i)\\n;e.innerHTML=s.value,((e,t,n)=>{const i=t&&r[t]||n\\n;e.classList.add(\\\"hljs\\\"),e.classList.add(\\\"language-\\\"+i)\\n})(e,n,s.language),e.result={language:s.language,re:s.relevance,\\nrelevance:s.relevance},s.secondBest&&(e.secondBest={\\nlanguage:s.secondBest.language,relevance:s.secondBest.relevance\\n}),N(\\\"after:highlightElement\\\",{el:e,result:s,text:i})}let y=!1;function _(){\\n\\\"loading\\\"!==document.readyState?document.querySelectorAll(g.cssSelector).forEach(w):y=!0\\n}function v(e){return e=(e||\\\"\\\").toLowerCase(),t[e]||t[r[e]]}\\nfunction k(e,{languageName:t}){\\\"string\\\"==typeof e&&(e=[e]),e.forEach((e=>{\\nr[e.toLowerCase()]=t}))}function O(e){const t=v(e)\\n;return t&&!t.disableAutodetect}function N(e,t){const n=e;s.forEach((e=>{\\ne[n]&&e[n](t)}))}\\n\\\"undefined\\\"!=typeof window&&window.addEventListener&&window.addEventListener(\\\"DOMContentLoaded\\\",(()=>{\\ny&&_()}),!1),Object.assign(e,{highlight:m,highlightAuto:x,highlightAll:_,\\nhighlightElement:w,\\nhighlightBlock:e=>(X(\\\"10.7.0\\\",\\\"highlightBlock will be removed entirely in v12.0\\\"),\\nX(\\\"10.7.0\\\",\\\"Please use highlightElement now.\\\"),w(e)),configure:e=>{g=Q(g,e)},\\ninitHighlighting:()=>{\\n_(),X(\\\"10.6.0\\\",\\\"initHighlighting() deprecated. Use highlightAll() now.\\\")},\\ninitHighlightingOnLoad:()=>{\\n_(),X(\\\"10.6.0\\\",\\\"initHighlightingOnLoad() deprecated. Use highlightAll() now.\\\")\\n},registerLanguage:(n,i)=>{let r=null;try{r=i(e)}catch(e){\\nif(K(\\\"Language definition for '{}' could not be registered.\\\".replace(\\\"{}\\\",n)),\\n!o)throw e;K(e),r=c}\\nr.name||(r.name=n),t[n]=r,r.rawDefinition=i.bind(null,e),r.aliases&&k(r.aliases,{\\nlanguageName:n})},unregisterLanguage:e=>{delete t[e]\\n;for(const t of Object.keys(r))r[t]===e&&delete r[t]},\\nlistLanguages:()=>Object.keys(t),getLanguage:v,registerAliases:k,\\nautoDetection:O,inherit:Q,addPlugin:e=>{(e=>{\\ne[\\\"before:highlightBlock\\\"]&&!e[\\\"before:highlightElement\\\"]&&(e[\\\"before:highlightElement\\\"]=t=>{\\ne[\\\"before:highlightBlock\\\"](Object.assign({block:t.el},t))\\n}),e[\\\"after:highlightBlock\\\"]&&!e[\\\"after:highlightElement\\\"]&&(e[\\\"after:highlightElement\\\"]=t=>{\\ne[\\\"after:highlightBlock\\\"](Object.assign({block:t.el},t))})})(e),s.push(e)}\\n}),e.debugMode=()=>{o=!1},e.safeMode=()=>{o=!0\\n},e.versionString=\\\"11.4.0\\\",e.regex={concat:f,lookahead:d,either:p,optional:h,\\nanyNumberOfTimes:u};for(const e in A)\\\"object\\\"==typeof A[e]&&n(A[e])\\n;return Object.assign(e,A),e})({});return te}()\\n;\\\"object\\\"==typeof exports&&\\\"undefined\\\"!=typeof module&&(module.exports=hljs);/*! `c` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const n=e.regex,t=e.COMMENT(\\\"//\\\",\\\"$\\\",{\\ncontains:[{begin:/\\\\\\\\\\\\n/}]\\n}),s=\\\"[a-zA-Z_]\\\\\\\\w*::\\\",a=\\\"(decltype\\\\\\\\(auto\\\\\\\\)|\\\"+n.optional(s)+\\\"[a-zA-Z_]\\\\\\\\w*\\\"+n.optional(\\\"\u003C[^\u003C>]+>\\\")+\\\")\\\",r={\\nclassName:\\\"type\\\",variants:[{begin:\\\"\\\\\\\\b[a-z\\\\\\\\d_]*_t\\\\\\\\b\\\"},{\\nmatch:/\\\\batomic_[a-z]{3,6}\\\\b/}]},i={className:\\\"string\\\",variants:[{\\nbegin:'(u8?|U|L)?\\\"',end:'\\\"',illegal:\\\"\\\\\\\\n\\\",contains:[e.BACKSLASH_ESCAPE]},{\\nbegin:\\\"(u8?|U|L)?'(\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\\\\\S)|.)\\\",\\nend:\\\"'\\\",illegal:\\\".\\\"},e.END_SAME_AS_BEGIN({\\nbegin:/(?:u8?|U|L)?R\\\"([^()\\\\\\\\ ]{0,16})\\\\(/,end:/\\\\)([^()\\\\\\\\ ]{0,16})\\\"/})]},l={\\nclassName:\\\"number\\\",variants:[{begin:\\\"\\\\\\\\b(0b[01']+)\\\"},{\\nbegin:\\\"(-?)\\\\\\\\b([\\\\\\\\d']+(\\\\\\\\.[\\\\\\\\d']*)?|\\\\\\\\.[\\\\\\\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)\\\"\\n},{\\nbegin:\\\"(-?)(\\\\\\\\b0[xX][a-fA-F0-9']+|(\\\\\\\\b[\\\\\\\\d']+(\\\\\\\\.[\\\\\\\\d']*)?|\\\\\\\\.[\\\\\\\\d']+)([eE][-+]?[\\\\\\\\d']+)?)\\\"\\n}],relevance:0},o={className:\\\"meta\\\",begin:/#\\\\s*[a-z]+\\\\b/,end:/$/,keywords:{\\nkeyword:\\\"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include\\\"\\n},contains:[{begin:/\\\\\\\\\\\\n/,relevance:0},e.inherit(i,{className:\\\"string\\\"}),{\\nclassName:\\\"string\\\",begin:/\u003C.*?>/},t,e.C_BLOCK_COMMENT_MODE]},c={\\nclassName:\\\"title\\\",begin:n.optional(s)+e.IDENT_RE,relevance:0\\n},d=n.optional(s)+e.IDENT_RE+\\\"\\\\\\\\s*\\\\\\\\(\\\",u={\\nkeyword:[\\\"asm\\\",\\\"auto\\\",\\\"break\\\",\\\"case\\\",\\\"continue\\\",\\\"default\\\",\\\"do\\\",\\\"else\\\",\\\"enum\\\",\\\"extern\\\",\\\"for\\\",\\\"fortran\\\",\\\"goto\\\",\\\"if\\\",\\\"inline\\\",\\\"register\\\",\\\"restrict\\\",\\\"return\\\",\\\"sizeof\\\",\\\"struct\\\",\\\"switch\\\",\\\"typedef\\\",\\\"union\\\",\\\"volatile\\\",\\\"while\\\",\\\"_Alignas\\\",\\\"_Alignof\\\",\\\"_Atomic\\\",\\\"_Generic\\\",\\\"_Noreturn\\\",\\\"_Static_assert\\\",\\\"_Thread_local\\\",\\\"alignas\\\",\\\"alignof\\\",\\\"noreturn\\\",\\\"static_assert\\\",\\\"thread_local\\\",\\\"_Pragma\\\"],\\ntype:[\\\"float\\\",\\\"double\\\",\\\"signed\\\",\\\"unsigned\\\",\\\"int\\\",\\\"short\\\",\\\"long\\\",\\\"char\\\",\\\"void\\\",\\\"_Bool\\\",\\\"_Complex\\\",\\\"_Imaginary\\\",\\\"_Decimal32\\\",\\\"_Decimal64\\\",\\\"_Decimal128\\\",\\\"const\\\",\\\"static\\\",\\\"complex\\\",\\\"bool\\\",\\\"imaginary\\\"],\\nliteral:\\\"true false NULL\\\",\\nbuilt_in:\\\"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr\\\"\\n},g=[o,r,t,e.C_BLOCK_COMMENT_MODE,l,i],m={variants:[{begin:/=/,end:/;/},{\\nbegin:/\\\\(/,end:/\\\\)/},{beginKeywords:\\\"new throw return else\\\",end:/;/}],\\nkeywords:u,contains:g.concat([{begin:/\\\\(/,end:/\\\\)/,keywords:u,\\ncontains:g.concat([\\\"self\\\"]),relevance:0}]),relevance:0},p={\\nbegin:\\\"(\\\"+a+\\\"[\\\\\\\\*&\\\\\\\\s]+)+\\\"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,\\nkeywords:u,illegal:/[^\\\\w\\\\s\\\\*&:\u003C>.]/,contains:[{begin:\\\"decltype\\\\\\\\(auto\\\\\\\\)\\\",\\nkeywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[e.inherit(c,{\\nclassName:\\\"title.function\\\"})],relevance:0},{relevance:0,match:/,/},{\\nclassName:\\\"params\\\",begin:/\\\\(/,end:/\\\\)/,keywords:u,relevance:0,\\ncontains:[t,e.C_BLOCK_COMMENT_MODE,i,l,r,{begin:/\\\\(/,end:/\\\\)/,keywords:u,\\nrelevance:0,contains:[\\\"self\\\",t,e.C_BLOCK_COMMENT_MODE,i,l,r]}]\\n},r,t,e.C_BLOCK_COMMENT_MODE,o]};return{name:\\\"C\\\",aliases:[\\\"h\\\"],keywords:u,\\ndisableAutodetect:!0,illegal:\\\"\u003C/\\\",contains:[].concat(m,p,g,[o,{\\nbegin:e.IDENT_RE+\\\"::\\\",keywords:u},{className:\\\"class\\\",\\nbeginKeywords:\\\"enum class struct union\\\",end:/[{;:\u003C>=]/,contains:[{\\nbeginKeywords:\\\"final class struct\\\"},e.TITLE_MODE]}]),exports:{preprocessor:o,\\nstrings:i,keywords:u}}}})();hljs.registerLanguage(\\\"c\\\",e)})();/*! `xml` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{\\nconst a=e.regex,n=a.concat(/[A-Z_]/,a.optional(/[A-Z0-9_.-]*:/),/[A-Z0-9_.-]*/),s={\\nclassName:\\\"symbol\\\",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},t={begin:/\\\\s/,\\ncontains:[{className:\\\"keyword\\\",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\\\\n/}]\\n},i=e.inherit(t,{begin:/\\\\(/,end:/\\\\)/}),c=e.inherit(e.APOS_STRING_MODE,{\\nclassName:\\\"string\\\"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:\\\"string\\\"}),r={\\nendsWithParent:!0,illegal:/\u003C/,relevance:0,contains:[{className:\\\"attr\\\",\\nbegin:/[A-Za-z0-9._:-]+/,relevance:0},{begin:/=\\\\s*/,relevance:0,contains:[{\\nclassName:\\\"string\\\",endsParent:!0,variants:[{begin:/\\\"/,end:/\\\"/,contains:[s]},{\\nbegin:/'/,end:/'/,contains:[s]},{begin:/[^\\\\s\\\"'=\u003C>`]+/}]}]}]};return{\\nname:\\\"HTML, XML\\\",\\naliases:[\\\"html\\\",\\\"xhtml\\\",\\\"rss\\\",\\\"atom\\\",\\\"xjb\\\",\\\"xsd\\\",\\\"xsl\\\",\\\"plist\\\",\\\"wsf\\\",\\\"svg\\\"],\\ncase_insensitive:!0,contains:[{className:\\\"meta\\\",begin:/\u003C![a-z]/,end:/>/,\\nrelevance:10,contains:[t,l,c,i,{begin:/\\\\[/,end:/\\\\]/,contains:[{className:\\\"meta\\\",\\nbegin:/\u003C![a-z]/,end:/>/,contains:[t,i,l,c]}]}]},e.COMMENT(/\u003C!--/,/-->/,{\\nrelevance:10}),{begin:/\u003C!\\\\[CDATA\\\\[/,end:/\\\\]\\\\]>/,relevance:10},s,{\\nclassName:\\\"meta\\\",begin:/\u003C\\\\?xml/,end:/\\\\?>/,relevance:10},{className:\\\"tag\\\",\\nbegin:/\u003Cstyle(?=\\\\s|>)/,end:/>/,keywords:{name:\\\"style\\\"},contains:[r],starts:{\\nend:/\u003C\\\\/style>/,returnEnd:!0,subLanguage:[\\\"css\\\",\\\"xml\\\"]}},{className:\\\"tag\\\",\\nbegin:/\u003Cscript(?=\\\\s|>)/,end:/>/,keywords:{name:\\\"script\\\"},contains:[r],starts:{\\nend:/\u003C\\\\/script>/,returnEnd:!0,subLanguage:[\\\"javascript\\\",\\\"handlebars\\\",\\\"xml\\\"]}},{\\nclassName:\\\"tag\\\",begin:/\u003C>|\u003C\\\\/>/},{className:\\\"tag\\\",\\nbegin:a.concat(/\u003C/,a.lookahead(a.concat(n,a.either(/\\\\/>/,/>/,/\\\\s/)))),\\nend:/\\\\/?>/,contains:[{className:\\\"name\\\",begin:n,relevance:0,starts:r}]},{\\nclassName:\\\"tag\\\",begin:a.concat(/\u003C\\\\//,a.lookahead(a.concat(n,/>/))),contains:[{\\nclassName:\\\"name\\\",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}\\n})();hljs.registerLanguage(\\\"xml\\\",e)})();/*! `markdown` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const n={begin:/\u003C\\\\/?[A-Za-z_]/,\\nend:\\\">\\\",subLanguage:\\\"xml\\\",relevance:0},a={variants:[{begin:/\\\\[.+?\\\\]\\\\[.*?\\\\]/,\\nrelevance:0},{\\nbegin:/\\\\[.+?\\\\]\\\\(((data|javascript|mailto):|(?:http|ftp)s?:\\\\/\\\\/).*?\\\\)/,\\nrelevance:2},{\\nbegin:e.regex.concat(/\\\\[.+?\\\\]\\\\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\\\\/\\\\/.*?\\\\)/),\\nrelevance:2},{begin:/\\\\[.+?\\\\]\\\\([./?&#].*?\\\\)/,relevance:1},{\\nbegin:/\\\\[.*?\\\\]\\\\(.*?\\\\)/,relevance:0}],returnBegin:!0,contains:[{match:/\\\\[(?=\\\\])/\\n},{className:\\\"string\\\",relevance:0,begin:\\\"\\\\\\\\[\\\",end:\\\"\\\\\\\\]\\\",excludeBegin:!0,\\nreturnEnd:!0},{className:\\\"link\\\",relevance:0,begin:\\\"\\\\\\\\]\\\\\\\\(\\\",end:\\\"\\\\\\\\)\\\",\\nexcludeBegin:!0,excludeEnd:!0},{className:\\\"symbol\\\",relevance:0,begin:\\\"\\\\\\\\]\\\\\\\\[\\\",\\nend:\\\"\\\\\\\\]\\\",excludeBegin:!0,excludeEnd:!0}]},i={className:\\\"strong\\\",contains:[],\\nvariants:[{begin:/_{2}/,end:/_{2}/},{begin:/\\\\*{2}/,end:/\\\\*{2}/}]},s={\\nclassName:\\\"emphasis\\\",contains:[],variants:[{begin:/\\\\*(?!\\\\*)/,end:/\\\\*/},{\\nbegin:/_(?!_)/,end:/_/,relevance:0}]};i.contains.push(s),s.contains.push(i)\\n;let c=[n,a]\\n;return i.contains=i.contains.concat(c),s.contains=s.contains.concat(c),\\nc=c.concat(i,s),{name:\\\"Markdown\\\",aliases:[\\\"md\\\",\\\"mkdown\\\",\\\"mkd\\\"],contains:[{\\nclassName:\\\"section\\\",variants:[{begin:\\\"^#{1,6}\\\",end:\\\"$\\\",contains:c},{\\nbegin:\\\"(?=^.+?\\\\\\\\n[=-]{2,}$)\\\",contains:[{begin:\\\"^[=-]*$\\\"},{begin:\\\"^\\\",end:\\\"\\\\\\\\n\\\",\\ncontains:c}]}]},n,{className:\\\"bullet\\\",begin:\\\"^[ \\\\t]*([*+-]|(\\\\\\\\d+\\\\\\\\.))(?=\\\\\\\\s+)\\\",\\nend:\\\"\\\\\\\\s+\\\",excludeEnd:!0},i,s,{className:\\\"quote\\\",begin:\\\"^>\\\\\\\\s+\\\",contains:c,\\nend:\\\"$\\\"},{className:\\\"code\\\",variants:[{begin:\\\"(`{3,})[^`](.|\\\\\\\\n)*?\\\\\\\\1`*[ ]*\\\"},{\\nbegin:\\\"(~{3,})[^~](.|\\\\\\\\n)*?\\\\\\\\1~*[ ]*\\\"},{begin:\\\"```\\\",end:\\\"```+[ ]*$\\\"},{\\nbegin:\\\"~~~\\\",end:\\\"~~~+[ ]*$\\\"},{begin:\\\"`.+?`\\\"},{begin:\\\"(?=^( {4}|\\\\\\\\t))\\\",\\ncontains:[{begin:\\\"^( {4}|\\\\\\\\t)\\\",end:\\\"(\\\\\\\\n)$\\\"}],relevance:0}]},{\\nbegin:\\\"^[-\\\\\\\\*]{3,}\\\",end:\\\"$\\\"},a,{begin:/^\\\\[[^\\\\n]+\\\\]:/,returnBegin:!0,contains:[{\\nclassName:\\\"symbol\\\",begin:/\\\\[/,end:/\\\\]/,excludeBegin:!0,excludeEnd:!0},{\\nclassName:\\\"link\\\",begin:/:\\\\s*/,end:/$/,excludeBegin:!0}]}]}}})()\\n;hljs.registerLanguage(\\\"markdown\\\",e)})();/*! `bash` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const s=e.regex,t={},n={begin:/\\\\$\\\\{/,\\nend:/\\\\}/,contains:[\\\"self\\\",{begin:/:-/,contains:[t]}]};Object.assign(t,{\\nclassName:\\\"variable\\\",variants:[{\\nbegin:s.concat(/\\\\$[\\\\w\\\\d#@][\\\\w\\\\d_]*/,\\\"(?![\\\\\\\\w\\\\\\\\d])(?![$])\\\")},n]});const a={\\nclassName:\\\"subst\\\",begin:/\\\\$\\\\(/,end:/\\\\)/,contains:[e.BACKSLASH_ESCAPE]},i={\\nbegin:/\u003C\u003C-?\\\\s*(?=\\\\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\\\\w+)/,\\nend:/(\\\\w+)/,className:\\\"string\\\"})]}},c={className:\\\"string\\\",begin:/\\\"/,end:/\\\"/,\\ncontains:[e.BACKSLASH_ESCAPE,t,a]};a.contains.push(c);const o={begin:/\\\\$\\\\(\\\\(/,\\nend:/\\\\)\\\\)/,contains:[{begin:/\\\\d+#[0-9a-f]+/,className:\\\"number\\\"},e.NUMBER_MODE,t]\\n},r=e.SHEBANG({binary:\\\"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)\\\",relevance:10\\n}),l={className:\\\"function\\\",begin:/\\\\w[\\\\w\\\\d_]*\\\\s*\\\\(\\\\s*\\\\)\\\\s*\\\\{/,returnBegin:!0,\\ncontains:[e.inherit(e.TITLE_MODE,{begin:/\\\\w[\\\\w\\\\d_]*/})],relevance:0};return{\\nname:\\\"Bash\\\",aliases:[\\\"sh\\\"],keywords:{$pattern:/\\\\b[a-z._-]+\\\\b/,\\nkeyword:[\\\"if\\\",\\\"then\\\",\\\"else\\\",\\\"elif\\\",\\\"fi\\\",\\\"for\\\",\\\"while\\\",\\\"in\\\",\\\"do\\\",\\\"done\\\",\\\"case\\\",\\\"esac\\\",\\\"function\\\"],\\nliteral:[\\\"true\\\",\\\"false\\\"],\\nbuilt_in:[\\\"break\\\",\\\"cd\\\",\\\"continue\\\",\\\"eval\\\",\\\"exec\\\",\\\"exit\\\",\\\"export\\\",\\\"getopts\\\",\\\"hash\\\",\\\"pwd\\\",\\\"readonly\\\",\\\"return\\\",\\\"shift\\\",\\\"test\\\",\\\"times\\\",\\\"trap\\\",\\\"umask\\\",\\\"unset\\\",\\\"alias\\\",\\\"bind\\\",\\\"builtin\\\",\\\"caller\\\",\\\"command\\\",\\\"declare\\\",\\\"echo\\\",\\\"enable\\\",\\\"help\\\",\\\"let\\\",\\\"local\\\",\\\"logout\\\",\\\"mapfile\\\",\\\"printf\\\",\\\"read\\\",\\\"readarray\\\",\\\"source\\\",\\\"type\\\",\\\"typeset\\\",\\\"ulimit\\\",\\\"unalias\\\",\\\"set\\\",\\\"shopt\\\",\\\"autoload\\\",\\\"bg\\\",\\\"bindkey\\\",\\\"bye\\\",\\\"cap\\\",\\\"chdir\\\",\\\"clone\\\",\\\"comparguments\\\",\\\"compcall\\\",\\\"compctl\\\",\\\"compdescribe\\\",\\\"compfiles\\\",\\\"compgroups\\\",\\\"compquote\\\",\\\"comptags\\\",\\\"comptry\\\",\\\"compvalues\\\",\\\"dirs\\\",\\\"disable\\\",\\\"disown\\\",\\\"echotc\\\",\\\"echoti\\\",\\\"emulate\\\",\\\"fc\\\",\\\"fg\\\",\\\"float\\\",\\\"functions\\\",\\\"getcap\\\",\\\"getln\\\",\\\"history\\\",\\\"integer\\\",\\\"jobs\\\",\\\"kill\\\",\\\"limit\\\",\\\"log\\\",\\\"noglob\\\",\\\"popd\\\",\\\"print\\\",\\\"pushd\\\",\\\"pushln\\\",\\\"rehash\\\",\\\"sched\\\",\\\"setcap\\\",\\\"setopt\\\",\\\"stat\\\",\\\"suspend\\\",\\\"ttyctl\\\",\\\"unfunction\\\",\\\"unhash\\\",\\\"unlimit\\\",\\\"unsetopt\\\",\\\"vared\\\",\\\"wait\\\",\\\"whence\\\",\\\"where\\\",\\\"which\\\",\\\"zcompile\\\",\\\"zformat\\\",\\\"zftp\\\",\\\"zle\\\",\\\"zmodload\\\",\\\"zparseopts\\\",\\\"zprof\\\",\\\"zpty\\\",\\\"zregexparse\\\",\\\"zsocket\\\",\\\"zstyle\\\",\\\"ztcp\\\",\\\"chcon\\\",\\\"chgrp\\\",\\\"chown\\\",\\\"chmod\\\",\\\"cp\\\",\\\"dd\\\",\\\"df\\\",\\\"dir\\\",\\\"dircolors\\\",\\\"ln\\\",\\\"ls\\\",\\\"mkdir\\\",\\\"mkfifo\\\",\\\"mknod\\\",\\\"mktemp\\\",\\\"mv\\\",\\\"realpath\\\",\\\"rm\\\",\\\"rmdir\\\",\\\"shred\\\",\\\"sync\\\",\\\"touch\\\",\\\"truncate\\\",\\\"vdir\\\",\\\"b2sum\\\",\\\"base32\\\",\\\"base64\\\",\\\"cat\\\",\\\"cksum\\\",\\\"comm\\\",\\\"csplit\\\",\\\"cut\\\",\\\"expand\\\",\\\"fmt\\\",\\\"fold\\\",\\\"head\\\",\\\"join\\\",\\\"md5sum\\\",\\\"nl\\\",\\\"numfmt\\\",\\\"od\\\",\\\"paste\\\",\\\"ptx\\\",\\\"pr\\\",\\\"sha1sum\\\",\\\"sha224sum\\\",\\\"sha256sum\\\",\\\"sha384sum\\\",\\\"sha512sum\\\",\\\"shuf\\\",\\\"sort\\\",\\\"split\\\",\\\"sum\\\",\\\"tac\\\",\\\"tail\\\",\\\"tr\\\",\\\"tsort\\\",\\\"unexpand\\\",\\\"uniq\\\",\\\"wc\\\",\\\"arch\\\",\\\"basename\\\",\\\"chroot\\\",\\\"date\\\",\\\"dirname\\\",\\\"du\\\",\\\"echo\\\",\\\"env\\\",\\\"expr\\\",\\\"factor\\\",\\\"groups\\\",\\\"hostid\\\",\\\"id\\\",\\\"link\\\",\\\"logname\\\",\\\"nice\\\",\\\"nohup\\\",\\\"nproc\\\",\\\"pathchk\\\",\\\"pinky\\\",\\\"printenv\\\",\\\"printf\\\",\\\"pwd\\\",\\\"readlink\\\",\\\"runcon\\\",\\\"seq\\\",\\\"sleep\\\",\\\"stat\\\",\\\"stdbuf\\\",\\\"stty\\\",\\\"tee\\\",\\\"test\\\",\\\"timeout\\\",\\\"tty\\\",\\\"uname\\\",\\\"unlink\\\",\\\"uptime\\\",\\\"users\\\",\\\"who\\\",\\\"whoami\\\",\\\"yes\\\"]\\n},contains:[r,e.SHEBANG(),l,o,e.HASH_COMMENT_MODE,i,{match:/(\\\\/[a-z._-]+)+/},c,{\\nclassName:\\\"\\\",begin:/\\\\\\\\\\\"/},{className:\\\"string\\\",begin:/'/,end:/'/},t]}}})()\\n;hljs.registerLanguage(\\\"bash\\\",e)})();/*! `dockerfile` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>({name:\\\"Dockerfile\\\",aliases:[\\\"docker\\\"],\\ncase_insensitive:!0,\\nkeywords:[\\\"from\\\",\\\"maintainer\\\",\\\"expose\\\",\\\"env\\\",\\\"arg\\\",\\\"user\\\",\\\"onbuild\\\",\\\"stopsignal\\\"],\\ncontains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{\\nbeginKeywords:\\\"run cmd entrypoint volume add copy workdir label healthcheck shell\\\",\\nstarts:{end:/[^\\\\\\\\]$/,subLanguage:\\\"bash\\\"}}],illegal:\\\"\u003C/\\\"})})()\\n;hljs.registerLanguage(\\\"dockerfile\\\",e)})();/*! `kotlin` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\"\\n;var e=\\\"\\\\\\\\.([0-9](_*[0-9])*)\\\",n=\\\"[0-9a-fA-F](_*[0-9a-fA-F])*\\\",a={\\nclassName:\\\"number\\\",variants:[{\\nbegin:`(\\\\\\\\b([0-9](_*[0-9])*)((${e})|\\\\\\\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\\\\\\\b`\\n},{begin:`\\\\\\\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\\\\\\\b|\\\\\\\\.([fFdD]\\\\\\\\b)?)`},{\\nbegin:`(${e})[fFdD]?\\\\\\\\b`},{begin:\\\"\\\\\\\\b([0-9](_*[0-9])*)[fFdD]\\\\\\\\b\\\"},{\\nbegin:`\\\\\\\\b0[xX]((${n})\\\\\\\\.?|(${n})?\\\\\\\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\\\\\\\b`\\n},{begin:\\\"\\\\\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\\\\\b\\\"},{begin:`\\\\\\\\b0[xX](${n})[lL]?\\\\\\\\b`},{\\nbegin:\\\"\\\\\\\\b0(_*[0-7])*[lL]?\\\\\\\\b\\\"},{begin:\\\"\\\\\\\\b0[bB][01](_*[01])*[lL]?\\\\\\\\b\\\"}],\\nrelevance:0};return e=>{const n={\\nkeyword:\\\"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual\\\",\\nbuilt_in:\\\"Byte Short Char Int Long Boolean Float Double Void Unit Nothing\\\",\\nliteral:\\\"true false null\\\"},i={className:\\\"symbol\\\",begin:e.UNDERSCORE_IDENT_RE+\\\"@\\\"\\n},s={className:\\\"subst\\\",begin:/\\\\$\\\\{/,end:/\\\\}/,contains:[e.C_NUMBER_MODE]},t={\\nclassName:\\\"variable\\\",begin:\\\"\\\\\\\\$\\\"+e.UNDERSCORE_IDENT_RE},r={className:\\\"string\\\",\\nvariants:[{begin:'\\\"\\\"\\\"',end:'\\\"\\\"\\\"(?=[^\\\"])',contains:[t,s]},{begin:\\\"'\\\",end:\\\"'\\\",\\nillegal:/\\\\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'\\\"',end:'\\\"',illegal:/\\\\n/,\\ncontains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={\\nclassName:\\\"meta\\\",\\nbegin:\\\"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\\\\\\\s*:(?:\\\\\\\\s*\\\"+e.UNDERSCORE_IDENT_RE+\\\")?\\\"\\n},c={className:\\\"meta\\\",begin:\\\"@\\\"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\\\\(/,\\nend:/\\\\)/,contains:[e.inherit(r,{className:\\\"string\\\"})]}]\\n},o=a,b=e.COMMENT(\\\"/\\\\\\\\*\\\",\\\"\\\\\\\\*/\\\",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={\\nvariants:[{className:\\\"type\\\",begin:e.UNDERSCORE_IDENT_RE},{begin:/\\\\(/,end:/\\\\)/,\\ncontains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d],\\n{name:\\\"Kotlin\\\",aliases:[\\\"kt\\\",\\\"kts\\\"],keywords:n,\\ncontains:[e.COMMENT(\\\"/\\\\\\\\*\\\\\\\\*\\\",\\\"\\\\\\\\*/\\\",{relevance:0,contains:[{className:\\\"doctag\\\",\\nbegin:\\\"@[A-Za-z]+\\\"}]}),e.C_LINE_COMMENT_MODE,b,{className:\\\"keyword\\\",\\nbegin:/\\\\b(break|continue|return|this)\\\\b/,starts:{contains:[{className:\\\"symbol\\\",\\nbegin:/@\\\\w+/}]}},i,l,c,{className:\\\"function\\\",beginKeywords:\\\"fun\\\",end:\\\"[(]|$\\\",\\nreturnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{\\nbegin:e.UNDERSCORE_IDENT_RE+\\\"\\\\\\\\s*\\\\\\\\(\\\",returnBegin:!0,relevance:0,\\ncontains:[e.UNDERSCORE_TITLE_MODE]},{className:\\\"type\\\",begin:/\u003C/,end:/>/,\\nkeywords:\\\"reified\\\",relevance:0},{className:\\\"params\\\",begin:/\\\\(/,end:/\\\\)/,\\nendsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\\\\/]/,\\nendsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0\\n},e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{className:\\\"class\\\",\\nbeginKeywords:\\\"class interface trait\\\",end:/[:\\\\{(]|$/,excludeEnd:!0,\\nillegal:\\\"extends implements\\\",contains:[{\\nbeginKeywords:\\\"public protected internal private constructor\\\"\\n},e.UNDERSCORE_TITLE_MODE,{className:\\\"type\\\",begin:/\u003C/,end:/>/,excludeBegin:!0,\\nexcludeEnd:!0,relevance:0},{className:\\\"type\\\",begin:/[,:]\\\\s*/,end:/[\u003C\\\\(,]|$/,\\nexcludeBegin:!0,returnEnd:!0},l,c]},r,{className:\\\"meta\\\",begin:\\\"^#!/usr/bin/env\\\",\\nend:\\\"$\\\",illegal:\\\"\\\\n\\\"},o]}}})();hljs.registerLanguage(\\\"kotlin\\\",e)})();/*! `typescript` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\"\\n;const e=\\\"[A-Za-z$_][0-9A-Za-z$_]*\\\",n=[\\\"as\\\",\\\"in\\\",\\\"of\\\",\\\"if\\\",\\\"for\\\",\\\"while\\\",\\\"finally\\\",\\\"var\\\",\\\"new\\\",\\\"function\\\",\\\"do\\\",\\\"return\\\",\\\"void\\\",\\\"else\\\",\\\"break\\\",\\\"catch\\\",\\\"instanceof\\\",\\\"with\\\",\\\"throw\\\",\\\"case\\\",\\\"default\\\",\\\"try\\\",\\\"switch\\\",\\\"continue\\\",\\\"typeof\\\",\\\"delete\\\",\\\"let\\\",\\\"yield\\\",\\\"const\\\",\\\"class\\\",\\\"debugger\\\",\\\"async\\\",\\\"await\\\",\\\"static\\\",\\\"import\\\",\\\"from\\\",\\\"export\\\",\\\"extends\\\"],a=[\\\"true\\\",\\\"false\\\",\\\"null\\\",\\\"undefined\\\",\\\"NaN\\\",\\\"Infinity\\\"],t=[\\\"Object\\\",\\\"Function\\\",\\\"Boolean\\\",\\\"Symbol\\\",\\\"Math\\\",\\\"Date\\\",\\\"Number\\\",\\\"BigInt\\\",\\\"String\\\",\\\"RegExp\\\",\\\"Array\\\",\\\"Float32Array\\\",\\\"Float64Array\\\",\\\"Int8Array\\\",\\\"Uint8Array\\\",\\\"Uint8ClampedArray\\\",\\\"Int16Array\\\",\\\"Int32Array\\\",\\\"Uint16Array\\\",\\\"Uint32Array\\\",\\\"BigInt64Array\\\",\\\"BigUint64Array\\\",\\\"Set\\\",\\\"Map\\\",\\\"WeakSet\\\",\\\"WeakMap\\\",\\\"ArrayBuffer\\\",\\\"SharedArrayBuffer\\\",\\\"Atomics\\\",\\\"DataView\\\",\\\"JSON\\\",\\\"Promise\\\",\\\"Generator\\\",\\\"GeneratorFunction\\\",\\\"AsyncFunction\\\",\\\"Reflect\\\",\\\"Proxy\\\",\\\"Intl\\\",\\\"WebAssembly\\\"],s=[\\\"Error\\\",\\\"EvalError\\\",\\\"InternalError\\\",\\\"RangeError\\\",\\\"ReferenceError\\\",\\\"SyntaxError\\\",\\\"TypeError\\\",\\\"URIError\\\"],r=[\\\"setInterval\\\",\\\"setTimeout\\\",\\\"clearInterval\\\",\\\"clearTimeout\\\",\\\"require\\\",\\\"exports\\\",\\\"eval\\\",\\\"isFinite\\\",\\\"isNaN\\\",\\\"parseFloat\\\",\\\"parseInt\\\",\\\"decodeURI\\\",\\\"decodeURIComponent\\\",\\\"encodeURI\\\",\\\"encodeURIComponent\\\",\\\"escape\\\",\\\"unescape\\\"],c=[\\\"arguments\\\",\\\"this\\\",\\\"super\\\",\\\"console\\\",\\\"window\\\",\\\"document\\\",\\\"localStorage\\\",\\\"module\\\",\\\"global\\\"],i=[].concat(r,t,s)\\n;function o(o){const l=o.regex,d=e,b={begin:/\u003C[A-Za-z0-9\\\\\\\\._:-]+/,\\nend:/\\\\/[A-Za-z0-9\\\\\\\\._:-]+>|\\\\/>/,isTrulyOpeningTag:(e,n)=>{\\nconst a=e[0].length+e.index,t=e.input[a]\\n;if(\\\"\u003C\\\"===t||\\\",\\\"===t)return void n.ignoreMatch();let s\\n;\\\">\\\"===t&&(((e,{after:n})=>{const a=\\\"\u003C/\\\"+e[0].slice(1)\\n;return-1!==e.input.indexOf(a,n)})(e,{after:a\\n})||n.ignoreMatch()),(s=e.input.substr(a).match(/^\\\\s+extends\\\\s+/))&&0===s.index&&n.ignoreMatch()\\n}},g={$pattern:e,keyword:n,literal:a,built_in:i,\\\"variable.language\\\":c\\n},u=\\\"\\\\\\\\.([0-9](_?[0-9])*)\\\",m=\\\"0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*\\\",E={\\nclassName:\\\"number\\\",variants:[{\\nbegin:`(\\\\\\\\b(${m})((${u})|\\\\\\\\.)?|(${u}))[eE][+-]?([0-9](_?[0-9])*)\\\\\\\\b`},{\\nbegin:`\\\\\\\\b(${m})\\\\\\\\b((${u})\\\\\\\\b|\\\\\\\\.)?|(${u})\\\\\\\\b`},{\\nbegin:\\\"\\\\\\\\b(0|[1-9](_?[0-9])*)n\\\\\\\\b\\\"},{\\nbegin:\\\"\\\\\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\\\\\b\\\"},{\\nbegin:\\\"\\\\\\\\b0[bB][0-1](_?[0-1])*n?\\\\\\\\b\\\"},{begin:\\\"\\\\\\\\b0[oO][0-7](_?[0-7])*n?\\\\\\\\b\\\"},{\\nbegin:\\\"\\\\\\\\b0[0-7]+n?\\\\\\\\b\\\"}],relevance:0},y={className:\\\"subst\\\",begin:\\\"\\\\\\\\$\\\\\\\\{\\\",\\nend:\\\"\\\\\\\\}\\\",keywords:g,contains:[]},A={begin:\\\"html`\\\",end:\\\"\\\",starts:{end:\\\"`\\\",\\nreturnEnd:!1,contains:[o.BACKSLASH_ESCAPE,y],subLanguage:\\\"xml\\\"}},p={\\nbegin:\\\"css`\\\",end:\\\"\\\",starts:{end:\\\"`\\\",returnEnd:!1,\\ncontains:[o.BACKSLASH_ESCAPE,y],subLanguage:\\\"css\\\"}},_={className:\\\"string\\\",\\nbegin:\\\"`\\\",end:\\\"`\\\",contains:[o.BACKSLASH_ESCAPE,y]},f={className:\\\"comment\\\",\\nvariants:[o.COMMENT(/\\\\/\\\\*\\\\*(?!\\\\/)/,\\\"\\\\\\\\*/\\\",{relevance:0,contains:[{\\nbegin:\\\"(?=@[A-Za-z]+)\\\",relevance:0,contains:[{className:\\\"doctag\\\",\\nbegin:\\\"@[A-Za-z]+\\\"},{className:\\\"type\\\",begin:\\\"\\\\\\\\{\\\",end:\\\"\\\\\\\\}\\\",excludeEnd:!0,\\nexcludeBegin:!0,relevance:0},{className:\\\"variable\\\",begin:d+\\\"(?=\\\\\\\\s*(-)|$)\\\",\\nendsParent:!0,relevance:0},{begin:/(?=[^\\\\n])\\\\s/,relevance:0}]}]\\n}),o.C_BLOCK_COMMENT_MODE,o.C_LINE_COMMENT_MODE]\\n},N=[o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,A,p,_,E];y.contains=N.concat({\\nbegin:/\\\\{/,end:/\\\\}/,keywords:g,contains:[\\\"self\\\"].concat(N)})\\n;const h=[].concat(f,y.contains),v=h.concat([{begin:/\\\\(/,end:/\\\\)/,keywords:g,\\ncontains:[\\\"self\\\"].concat(h)}]),S={className:\\\"params\\\",begin:/\\\\(/,end:/\\\\)/,\\nexcludeBegin:!0,excludeEnd:!0,keywords:g,contains:v},w={variants:[{\\nmatch:[/class/,/\\\\s+/,d,/\\\\s+/,/extends/,/\\\\s+/,l.concat(d,\\\"(\\\",l.concat(/\\\\./,d),\\\")*\\\")],\\nscope:{1:\\\"keyword\\\",3:\\\"title.class\\\",5:\\\"keyword\\\",7:\\\"title.class.inherited\\\"}},{\\nmatch:[/class/,/\\\\s+/,d],scope:{1:\\\"keyword\\\",3:\\\"title.class\\\"}}]},R={relevance:0,\\nmatch:l.either(/\\\\bJSON/,/\\\\b[A-Z][a-z]+([A-Z][a-z]*|\\\\d)*/,/\\\\b[A-Z]{2,}([A-Z][a-z]+|\\\\d)+([A-Z][a-z]*)*/,/\\\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\\\d)*([A-Z][a-z]*)*/),\\nclassName:\\\"title.class\\\",keywords:{_:[...t,...s]}},x={variants:[{\\nmatch:[/function/,/\\\\s+/,d,/(?=\\\\s*\\\\()/]},{match:[/function/,/\\\\s*(?=\\\\()/]}],\\nclassName:{1:\\\"keyword\\\",3:\\\"title.function\\\"},label:\\\"func.def\\\",contains:[S],\\nillegal:/%/},k={\\nmatch:l.concat(/\\\\b/,(O=[...r,\\\"super\\\"],l.concat(\\\"(?!\\\",O.join(\\\"|\\\"),\\\")\\\")),d,l.lookahead(/\\\\(/)),\\nclassName:\\\"title.function\\\",relevance:0};var O;const I={\\nbegin:l.concat(/\\\\./,l.lookahead(l.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,\\nexcludeBegin:!0,keywords:\\\"prototype\\\",className:\\\"property\\\",relevance:0},C={\\nmatch:[/get|set/,/\\\\s+/,d,/(?=\\\\()/],className:{1:\\\"keyword\\\",3:\\\"title.function\\\"},\\ncontains:[{begin:/\\\\(\\\\)/},S]\\n},T=\\\"(\\\\\\\\([^()]*(\\\\\\\\([^()]*(\\\\\\\\([^()]*\\\\\\\\)[^()]*)*\\\\\\\\)[^()]*)*\\\\\\\\)|\\\"+o.UNDERSCORE_IDENT_RE+\\\")\\\\\\\\s*=>\\\",M={\\nmatch:[/const|var|let/,/\\\\s+/,d,/\\\\s*/,/=\\\\s*/,/(async\\\\s*)?/,l.lookahead(T)],\\nkeywords:\\\"async\\\",className:{1:\\\"keyword\\\",3:\\\"title.function\\\"},contains:[S]}\\n;return{name:\\\"Javascript\\\",aliases:[\\\"js\\\",\\\"jsx\\\",\\\"mjs\\\",\\\"cjs\\\"],keywords:g,exports:{\\nPARAMS_CONTAINS:v,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/,\\ncontains:[o.SHEBANG({label:\\\"shebang\\\",binary:\\\"node\\\",relevance:5}),{\\nlabel:\\\"use_strict\\\",className:\\\"meta\\\",relevance:10,\\nbegin:/^\\\\s*['\\\"]use (strict|asm)['\\\"]/\\n},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,A,p,_,f,E,R,{className:\\\"attr\\\",\\nbegin:d+l.lookahead(\\\":\\\"),relevance:0},M,{\\nbegin:\\\"(\\\"+o.RE_STARTERS_RE+\\\"|\\\\\\\\b(case|return|throw)\\\\\\\\b)\\\\\\\\s*\\\",\\nkeywords:\\\"return throw case\\\",relevance:0,contains:[f,o.REGEXP_MODE,{\\nclassName:\\\"function\\\",begin:T,returnBegin:!0,end:\\\"\\\\\\\\s*=>\\\",contains:[{\\nclassName:\\\"params\\\",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{\\nclassName:null,begin:/\\\\(\\\\s*\\\\)/,skip:!0},{begin:/\\\\(/,end:/\\\\)/,excludeBegin:!0,\\nexcludeEnd:!0,keywords:g,contains:v}]}]},{begin:/,/,relevance:0},{match:/\\\\s+/,\\nrelevance:0},{variants:[{begin:\\\"\u003C>\\\",end:\\\"\u003C/>\\\"},{\\nmatch:/\u003C[A-Za-z0-9\\\\\\\\._:-]+\\\\s*\\\\/>/},{begin:b.begin,\\n\\\"on:begin\\\":b.isTrulyOpeningTag,end:b.end}],subLanguage:\\\"xml\\\",contains:[{\\nbegin:b.begin,end:b.end,skip:!0,contains:[\\\"self\\\"]}]}]},x,{\\nbeginKeywords:\\\"while if switch catch for\\\"},{\\nbegin:\\\"\\\\\\\\b(?!function)\\\"+o.UNDERSCORE_IDENT_RE+\\\"\\\\\\\\([^()]*(\\\\\\\\([^()]*(\\\\\\\\([^()]*\\\\\\\\)[^()]*)*\\\\\\\\)[^()]*)*\\\\\\\\)\\\\\\\\s*\\\\\\\\{\\\",\\nreturnBegin:!0,label:\\\"func.def\\\",contains:[S,o.inherit(o.TITLE_MODE,{begin:d,\\nclassName:\\\"title.function\\\"})]},{match:/\\\\.\\\\.\\\\./,relevance:0},I,{match:\\\"\\\\\\\\$\\\"+d,\\nrelevance:0},{match:[/\\\\bconstructor(?=\\\\s*\\\\()/],className:{1:\\\"title.function\\\"},\\ncontains:[S]},k,{relevance:0,match:/\\\\b[A-Z][A-Z_0-9]+\\\\b/,\\nclassName:\\\"variable.constant\\\"},w,C,{match:/\\\\$[(.]/}]}}return t=>{\\nconst s=o(t),r=[\\\"any\\\",\\\"void\\\",\\\"number\\\",\\\"boolean\\\",\\\"string\\\",\\\"object\\\",\\\"never\\\",\\\"enum\\\"],l={\\nbeginKeywords:\\\"namespace\\\",end:/\\\\{/,excludeEnd:!0,\\ncontains:[s.exports.CLASS_REFERENCE]},d={beginKeywords:\\\"interface\\\",end:/\\\\{/,\\nexcludeEnd:!0,keywords:{keyword:\\\"interface extends\\\",built_in:r},\\ncontains:[s.exports.CLASS_REFERENCE]},b={$pattern:e,\\nkeyword:n.concat([\\\"type\\\",\\\"namespace\\\",\\\"typedef\\\",\\\"interface\\\",\\\"public\\\",\\\"private\\\",\\\"protected\\\",\\\"implements\\\",\\\"declare\\\",\\\"abstract\\\",\\\"readonly\\\"]),\\nliteral:a,built_in:i.concat(r),\\\"variable.language\\\":c},g={className:\\\"meta\\\",\\nbegin:\\\"@[A-Za-z$_][0-9A-Za-z$_]*\\\"},u=(e,n,a)=>{\\nconst t=e.contains.findIndex((e=>e.label===n))\\n;if(-1===t)throw Error(\\\"can not find mode to replace\\\");e.contains.splice(t,1,a)}\\n;return Object.assign(s.keywords,b),\\ns.exports.PARAMS_CONTAINS.push(g),s.contains=s.contains.concat([g,l,d]),\\nu(s,\\\"shebang\\\",t.SHEBANG()),u(s,\\\"use_strict\\\",{className:\\\"meta\\\",relevance:10,\\nbegin:/^\\\\s*['\\\"]use strict['\\\"]/\\n}),s.contains.find((e=>\\\"func.def\\\"===e.label)).relevance=0,Object.assign(s,{\\nname:\\\"TypeScript\\\",aliases:[\\\"ts\\\",\\\"tsx\\\"]}),s}})()\\n;hljs.registerLanguage(\\\"typescript\\\",e)})();/*! `python` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{\\nconst n=e.regex,a=/[\\\\p{XID_Start}_]\\\\p{XID_Continue}*/u,i=[\\\"and\\\",\\\"as\\\",\\\"assert\\\",\\\"async\\\",\\\"await\\\",\\\"break\\\",\\\"class\\\",\\\"continue\\\",\\\"def\\\",\\\"del\\\",\\\"elif\\\",\\\"else\\\",\\\"except\\\",\\\"finally\\\",\\\"for\\\",\\\"from\\\",\\\"global\\\",\\\"if\\\",\\\"import\\\",\\\"in\\\",\\\"is\\\",\\\"lambda\\\",\\\"nonlocal|10\\\",\\\"not\\\",\\\"or\\\",\\\"pass\\\",\\\"raise\\\",\\\"return\\\",\\\"try\\\",\\\"while\\\",\\\"with\\\",\\\"yield\\\"],s={\\n$pattern:/[A-Za-z]\\\\w+|__\\\\w+__/,keyword:i,\\nbuilt_in:[\\\"__import__\\\",\\\"abs\\\",\\\"all\\\",\\\"any\\\",\\\"ascii\\\",\\\"bin\\\",\\\"bool\\\",\\\"breakpoint\\\",\\\"bytearray\\\",\\\"bytes\\\",\\\"callable\\\",\\\"chr\\\",\\\"classmethod\\\",\\\"compile\\\",\\\"complex\\\",\\\"delattr\\\",\\\"dict\\\",\\\"dir\\\",\\\"divmod\\\",\\\"enumerate\\\",\\\"eval\\\",\\\"exec\\\",\\\"filter\\\",\\\"float\\\",\\\"format\\\",\\\"frozenset\\\",\\\"getattr\\\",\\\"globals\\\",\\\"hasattr\\\",\\\"hash\\\",\\\"help\\\",\\\"hex\\\",\\\"id\\\",\\\"input\\\",\\\"int\\\",\\\"isinstance\\\",\\\"issubclass\\\",\\\"iter\\\",\\\"len\\\",\\\"list\\\",\\\"locals\\\",\\\"map\\\",\\\"max\\\",\\\"memoryview\\\",\\\"min\\\",\\\"next\\\",\\\"object\\\",\\\"oct\\\",\\\"open\\\",\\\"ord\\\",\\\"pow\\\",\\\"print\\\",\\\"property\\\",\\\"range\\\",\\\"repr\\\",\\\"reversed\\\",\\\"round\\\",\\\"set\\\",\\\"setattr\\\",\\\"slice\\\",\\\"sorted\\\",\\\"staticmethod\\\",\\\"str\\\",\\\"sum\\\",\\\"super\\\",\\\"tuple\\\",\\\"type\\\",\\\"vars\\\",\\\"zip\\\"],\\nliteral:[\\\"__debug__\\\",\\\"Ellipsis\\\",\\\"False\\\",\\\"None\\\",\\\"NotImplemented\\\",\\\"True\\\"],\\ntype:[\\\"Any\\\",\\\"Callable\\\",\\\"Coroutine\\\",\\\"Dict\\\",\\\"List\\\",\\\"Literal\\\",\\\"Generic\\\",\\\"Optional\\\",\\\"Sequence\\\",\\\"Set\\\",\\\"Tuple\\\",\\\"Type\\\",\\\"Union\\\"]\\n},t={className:\\\"meta\\\",begin:/^(>>>|\\\\.\\\\.\\\\.) /},r={className:\\\"subst\\\",begin:/\\\\{/,\\nend:/\\\\}/,keywords:s,illegal:/#/},l={begin:/\\\\{\\\\{/,relevance:0},b={\\nclassName:\\\"string\\\",contains:[e.BACKSLASH_ESCAPE],variants:[{\\nbegin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,\\ncontains:[e.BACKSLASH_ESCAPE,t],relevance:10},{\\nbegin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?\\\"\\\"\\\"/,end:/\\\"\\\"\\\"/,\\ncontains:[e.BACKSLASH_ESCAPE,t],relevance:10},{\\nbegin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,\\ncontains:[e.BACKSLASH_ESCAPE,t,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])\\\"\\\"\\\"/,\\nend:/\\\"\\\"\\\"/,contains:[e.BACKSLASH_ESCAPE,t,l,r]},{begin:/([uU]|[rR])'/,end:/'/,\\nrelevance:10},{begin:/([uU]|[rR])\\\"/,end:/\\\"/,relevance:10},{\\nbegin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])\\\"/,\\nend:/\\\"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,\\ncontains:[e.BACKSLASH_ESCAPE,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])\\\"/,end:/\\\"/,\\ncontains:[e.BACKSLASH_ESCAPE,l,r]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]\\n},o=\\\"[0-9](_?[0-9])*\\\",c=`(\\\\\\\\b(${o}))?\\\\\\\\.(${o})|\\\\\\\\b(${o})\\\\\\\\.`,d=\\\"\\\\\\\\b|\\\"+i.join(\\\"|\\\"),g={\\nclassName:\\\"number\\\",relevance:0,variants:[{\\nbegin:`(\\\\\\\\b(${o})|(${c}))[eE][+-]?(${o})[jJ]?(?=${d})`},{begin:`(${c})[jJ]?`},{\\nbegin:`\\\\\\\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{\\nbegin:`\\\\\\\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\\\\\\\b0[oO](_?[0-7])+[lL]?(?=${d})`\\n},{begin:`\\\\\\\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\\\\\\\b(${o})[jJ](?=${d})`\\n}]},p={className:\\\"comment\\\",begin:n.lookahead(/# type:/),end:/$/,keywords:s,\\ncontains:[{begin:/# type:/},{begin:/#/,end:/\\\\b\\\\B/,endsWithParent:!0}]},m={\\nclassName:\\\"params\\\",variants:[{className:\\\"\\\",begin:/\\\\(\\\\s*\\\\)/,skip:!0},{begin:/\\\\(/,\\nend:/\\\\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,\\ncontains:[\\\"self\\\",t,g,b,e.HASH_COMMENT_MODE]}]};return r.contains=[b,g,t],{\\nname:\\\"Python\\\",aliases:[\\\"py\\\",\\\"gyp\\\",\\\"ipython\\\"],unicodeRegex:!0,keywords:s,\\nillegal:/(\u003C\\\\/|->|\\\\?)|=>/,contains:[t,g,{begin:/\\\\bself\\\\b/},{beginKeywords:\\\"if\\\",\\nrelevance:0},b,p,e.HASH_COMMENT_MODE,{match:[/\\\\bdef/,/\\\\s+/,a],scope:{\\n1:\\\"keyword\\\",3:\\\"title.function\\\"},contains:[m]},{variants:[{\\nmatch:[/\\\\bclass/,/\\\\s+/,a,/\\\\s*/,/\\\\(\\\\s*/,a,/\\\\s*\\\\)/]},{match:[/\\\\bclass/,/\\\\s+/,a]}],\\nscope:{1:\\\"keyword\\\",3:\\\"title.class\\\",6:\\\"title.class.inherited\\\"}},{\\nclassName:\\\"meta\\\",begin:/^[\\\\t ]*@/,end:/(?=#)|$/,contains:[g,m,b]}]}}})()\\n;hljs.registerLanguage(\\\"python\\\",e)})();/*! `python-repl` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var a=(()=>{\\\"use strict\\\";return a=>({aliases:[\\\"pycon\\\"],contains:[{\\nclassName:\\\"meta\\\",starts:{end:/ |$/,starts:{end:\\\"$\\\",subLanguage:\\\"python\\\"}},\\nvariants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\\\\.\\\\.\\\\.(?=[ ]|$)/}]}]})})()\\n;hljs.registerLanguage(\\\"python-repl\\\",a)})();/*! `php` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{\\nconst t=e.regex,r=\\\"[a-zA-Z0-9_\\\\x7f-\\\\xff]*(?![A-Za-z0-9])(?![$]))\\\",a=t.concat(\\\"([a-zA-Z_\\\\\\\\x7f-\\\\\\\\xff]\\\",r),n=t.concat(\\\"([A-Z]\\\",r),o={\\nscope:\\\"variable\\\",match:\\\"\\\\\\\\$+\\\"+a},c={scope:\\\"subst\\\",variants:[{begin:/\\\\$\\\\w+/},{\\nbegin:/\\\\{\\\\$/,end:/\\\\}/}]},i=e.inherit(e.APOS_STRING_MODE,{illegal:null\\n}),l=\\\"[ \\\\t\\\\n]\\\",s={scope:\\\"string\\\",variants:[e.inherit(e.QUOTE_STRING_MODE,{\\nillegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(c)\\n}),i,e.END_SAME_AS_BEGIN({begin:/\u003C\u003C\u003C[ \\\\t]*(\\\\w+)\\\\n/,end:/[ \\\\t]*(\\\\w+)\\\\b/,\\ncontains:e.QUOTE_STRING_MODE.contains.concat(c)})]},p={scope:\\\"number\\\",\\nvariants:[{begin:\\\"\\\\\\\\b0[bB][01]+(?:_[01]+)*\\\\\\\\b\\\"},{\\nbegin:\\\"\\\\\\\\b0[oO][0-7]+(?:_[0-7]+)*\\\\\\\\b\\\"},{\\nbegin:\\\"\\\\\\\\b0[xX][\\\\\\\\da-fA-F]+(?:_[\\\\\\\\da-fA-F]+)*\\\\\\\\b\\\"},{\\nbegin:\\\"(?:\\\\\\\\b\\\\\\\\d+(?:_\\\\\\\\d+)*(\\\\\\\\.(?:\\\\\\\\d+(?:_\\\\\\\\d+)*))?|\\\\\\\\B\\\\\\\\.\\\\\\\\d+)(?:[eE][+-]?\\\\\\\\d+)?\\\"\\n}],relevance:0\\n},_=[\\\"__CLASS__\\\",\\\"__DIR__\\\",\\\"__FILE__\\\",\\\"__FUNCTION__\\\",\\\"__COMPILER_HALT_OFFSET__\\\",\\\"__LINE__\\\",\\\"__METHOD__\\\",\\\"__NAMESPACE__\\\",\\\"__TRAIT__\\\",\\\"die\\\",\\\"echo\\\",\\\"exit\\\",\\\"include\\\",\\\"include_once\\\",\\\"print\\\",\\\"require\\\",\\\"require_once\\\",\\\"array\\\",\\\"abstract\\\",\\\"and\\\",\\\"as\\\",\\\"binary\\\",\\\"bool\\\",\\\"boolean\\\",\\\"break\\\",\\\"callable\\\",\\\"case\\\",\\\"catch\\\",\\\"class\\\",\\\"clone\\\",\\\"const\\\",\\\"continue\\\",\\\"declare\\\",\\\"default\\\",\\\"do\\\",\\\"double\\\",\\\"else\\\",\\\"elseif\\\",\\\"empty\\\",\\\"enddeclare\\\",\\\"endfor\\\",\\\"endforeach\\\",\\\"endif\\\",\\\"endswitch\\\",\\\"endwhile\\\",\\\"enum\\\",\\\"eval\\\",\\\"extends\\\",\\\"final\\\",\\\"finally\\\",\\\"float\\\",\\\"for\\\",\\\"foreach\\\",\\\"from\\\",\\\"global\\\",\\\"goto\\\",\\\"if\\\",\\\"implements\\\",\\\"instanceof\\\",\\\"insteadof\\\",\\\"int\\\",\\\"integer\\\",\\\"interface\\\",\\\"isset\\\",\\\"iterable\\\",\\\"list\\\",\\\"match|0\\\",\\\"mixed\\\",\\\"new\\\",\\\"never\\\",\\\"object\\\",\\\"or\\\",\\\"private\\\",\\\"protected\\\",\\\"public\\\",\\\"readonly\\\",\\\"real\\\",\\\"return\\\",\\\"string\\\",\\\"switch\\\",\\\"throw\\\",\\\"trait\\\",\\\"try\\\",\\\"unset\\\",\\\"use\\\",\\\"var\\\",\\\"void\\\",\\\"while\\\",\\\"xor\\\",\\\"yield\\\"],d=[\\\"Error|0\\\",\\\"AppendIterator\\\",\\\"ArgumentCountError\\\",\\\"ArithmeticError\\\",\\\"ArrayIterator\\\",\\\"ArrayObject\\\",\\\"AssertionError\\\",\\\"BadFunctionCallException\\\",\\\"BadMethodCallException\\\",\\\"CachingIterator\\\",\\\"CallbackFilterIterator\\\",\\\"CompileError\\\",\\\"Countable\\\",\\\"DirectoryIterator\\\",\\\"DivisionByZeroError\\\",\\\"DomainException\\\",\\\"EmptyIterator\\\",\\\"ErrorException\\\",\\\"Exception\\\",\\\"FilesystemIterator\\\",\\\"FilterIterator\\\",\\\"GlobIterator\\\",\\\"InfiniteIterator\\\",\\\"InvalidArgumentException\\\",\\\"IteratorIterator\\\",\\\"LengthException\\\",\\\"LimitIterator\\\",\\\"LogicException\\\",\\\"MultipleIterator\\\",\\\"NoRewindIterator\\\",\\\"OutOfBoundsException\\\",\\\"OutOfRangeException\\\",\\\"OuterIterator\\\",\\\"OverflowException\\\",\\\"ParentIterator\\\",\\\"ParseError\\\",\\\"RangeException\\\",\\\"RecursiveArrayIterator\\\",\\\"RecursiveCachingIterator\\\",\\\"RecursiveCallbackFilterIterator\\\",\\\"RecursiveDirectoryIterator\\\",\\\"RecursiveFilterIterator\\\",\\\"RecursiveIterator\\\",\\\"RecursiveIteratorIterator\\\",\\\"RecursiveRegexIterator\\\",\\\"RecursiveTreeIterator\\\",\\\"RegexIterator\\\",\\\"RuntimeException\\\",\\\"SeekableIterator\\\",\\\"SplDoublyLinkedList\\\",\\\"SplFileInfo\\\",\\\"SplFileObject\\\",\\\"SplFixedArray\\\",\\\"SplHeap\\\",\\\"SplMaxHeap\\\",\\\"SplMinHeap\\\",\\\"SplObjectStorage\\\",\\\"SplObserver\\\",\\\"SplPriorityQueue\\\",\\\"SplQueue\\\",\\\"SplStack\\\",\\\"SplSubject\\\",\\\"SplTempFileObject\\\",\\\"TypeError\\\",\\\"UnderflowException\\\",\\\"UnexpectedValueException\\\",\\\"UnhandledMatchError\\\",\\\"ArrayAccess\\\",\\\"BackedEnum\\\",\\\"Closure\\\",\\\"Fiber\\\",\\\"Generator\\\",\\\"Iterator\\\",\\\"IteratorAggregate\\\",\\\"Serializable\\\",\\\"Stringable\\\",\\\"Throwable\\\",\\\"Traversable\\\",\\\"UnitEnum\\\",\\\"WeakReference\\\",\\\"WeakMap\\\",\\\"Directory\\\",\\\"__PHP_Incomplete_Class\\\",\\\"parent\\\",\\\"php_user_filter\\\",\\\"self\\\",\\\"static\\\",\\\"stdClass\\\"],b={\\nkeyword:_,literal:(e=>{const t=[];return[\\\"false\\\",\\\"null\\\",\\\"true\\\"].forEach((e=>{\\nt.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase())\\n})),t})(),built_in:d},u=e=>e.map((e=>e.replace(/\\\\|\\\\d+$/,\\\"\\\"))),E={variants:[{\\nmatch:[/new/,t.concat(l,\\\"+\\\"),t.concat(\\\"(?!\\\",u(d).join(\\\"\\\\\\\\b|\\\"),\\\"\\\\\\\\b)\\\"),t.concat(/\\\\\\\\?/,a),t.concat(l,\\\"*\\\",/\\\\(/)],\\nscope:{1:\\\"keyword\\\",4:\\\"title.class\\\"}}]},g={relevance:0,\\nmatch:[/\\\\b/,t.concat(\\\"(?!fn\\\\\\\\b|function\\\\\\\\b|\\\",u(_).join(\\\"\\\\\\\\b|\\\"),\\\"|\\\",u(d).join(\\\"\\\\\\\\b|\\\"),\\\"\\\\\\\\b)\\\"),a,t.concat(l,\\\"*\\\"),t.lookahead(/(?=\\\\()/)],\\nscope:{3:\\\"title.function.invoke\\\"}},I=t.concat(a,\\\"\\\\\\\\b(?!\\\\\\\\()\\\"),h={variants:[{\\nmatch:[t.concat(/::/,t.lookahead(/(?!class\\\\b)/)),I],scope:{2:\\\"variable.constant\\\"\\n}},{match:[/::/,/class/],scope:{2:\\\"variable.language\\\"}},{\\nmatch:[n,t.concat(\\\"::\\\",t.lookahead(/(?!class\\\\b)/))],scope:{1:\\\"title.class\\\"}},{\\nmatch:[n,/::/,/class/],scope:{1:\\\"title.class\\\",3:\\\"variable.language\\\"}}]};return{\\ncase_insensitive:!1,keywords:b,\\ncontains:[e.HASH_COMMENT_MODE,e.COMMENT(\\\"//\\\",\\\"$\\\"),e.COMMENT(\\\"/\\\\\\\\*\\\",\\\"\\\\\\\\*/\\\",{\\ncontains:[{scope:\\\"doctag\\\",match:\\\"@[A-Za-z]+\\\"}]}),{match:/__halt_compiler\\\\(\\\\);/,\\nkeywords:\\\"__halt_compiler\\\",starts:{scope:\\\"comment\\\",end:e.MATCH_NOTHING_RE,\\ncontains:[{match:/\\\\?>/,scope:\\\"meta\\\",endsParent:!0}]}},{scope:\\\"meta\\\",variants:[{\\nbegin:/\u003C\\\\?php/,relevance:10},{begin:/\u003C\\\\?[=]?/},{begin:/\\\\?>/}]},{\\nscope:\\\"variable.language\\\",match:/\\\\$this\\\\b/},o,g,h,{\\nmatch:[/const/,/\\\\s/,a,/\\\\s*=/],scope:{1:\\\"keyword\\\",3:\\\"variable.constant\\\"}},E,{\\nscope:\\\"function\\\",relevance:0,beginKeywords:\\\"fn function\\\",end:/[;{]/,\\nexcludeEnd:!0,illegal:\\\"[$%\\\\\\\\[]\\\",contains:[{beginKeywords:\\\"use\\\"\\n},e.UNDERSCORE_TITLE_MODE,{begin:\\\"=>\\\",endsParent:!0},{scope:\\\"params\\\",\\nbegin:\\\"\\\\\\\\(\\\",end:\\\"\\\\\\\\)\\\",excludeBegin:!0,excludeEnd:!0,keywords:b,\\ncontains:[\\\"self\\\",o,h,e.C_BLOCK_COMMENT_MODE,s,p]}]},{scope:\\\"class\\\",variants:[{\\nbeginKeywords:\\\"enum\\\",illegal:/[($\\\"]/},{beginKeywords:\\\"class interface trait\\\",\\nillegal:/[:($\\\"]/}],relevance:0,end:/\\\\{/,excludeEnd:!0,contains:[{\\nbeginKeywords:\\\"extends implements\\\"},e.UNDERSCORE_TITLE_MODE]},{\\nbeginKeywords:\\\"namespace\\\",relevance:0,end:\\\";\\\",illegal:/[.']/,\\ncontains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:\\\"title.class\\\"})]},{\\nbeginKeywords:\\\"use\\\",relevance:0,end:\\\";\\\",contains:[{\\nmatch:/\\\\b(as|const|function)\\\\b/,scope:\\\"keyword\\\"},e.UNDERSCORE_TITLE_MODE]},s,p]}\\n}})();hljs.registerLanguage(\\\"php\\\",e)})();/*! `scss` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\"\\n;const e=[\\\"a\\\",\\\"abbr\\\",\\\"address\\\",\\\"article\\\",\\\"aside\\\",\\\"audio\\\",\\\"b\\\",\\\"blockquote\\\",\\\"body\\\",\\\"button\\\",\\\"canvas\\\",\\\"caption\\\",\\\"cite\\\",\\\"code\\\",\\\"dd\\\",\\\"del\\\",\\\"details\\\",\\\"dfn\\\",\\\"div\\\",\\\"dl\\\",\\\"dt\\\",\\\"em\\\",\\\"fieldset\\\",\\\"figcaption\\\",\\\"figure\\\",\\\"footer\\\",\\\"form\\\",\\\"h1\\\",\\\"h2\\\",\\\"h3\\\",\\\"h4\\\",\\\"h5\\\",\\\"h6\\\",\\\"header\\\",\\\"hgroup\\\",\\\"html\\\",\\\"i\\\",\\\"iframe\\\",\\\"img\\\",\\\"input\\\",\\\"ins\\\",\\\"kbd\\\",\\\"label\\\",\\\"legend\\\",\\\"li\\\",\\\"main\\\",\\\"mark\\\",\\\"menu\\\",\\\"nav\\\",\\\"object\\\",\\\"ol\\\",\\\"p\\\",\\\"q\\\",\\\"quote\\\",\\\"samp\\\",\\\"section\\\",\\\"span\\\",\\\"strong\\\",\\\"summary\\\",\\\"sup\\\",\\\"table\\\",\\\"tbody\\\",\\\"td\\\",\\\"textarea\\\",\\\"tfoot\\\",\\\"th\\\",\\\"thead\\\",\\\"time\\\",\\\"tr\\\",\\\"ul\\\",\\\"var\\\",\\\"video\\\"],t=[\\\"any-hover\\\",\\\"any-pointer\\\",\\\"aspect-ratio\\\",\\\"color\\\",\\\"color-gamut\\\",\\\"color-index\\\",\\\"device-aspect-ratio\\\",\\\"device-height\\\",\\\"device-width\\\",\\\"display-mode\\\",\\\"forced-colors\\\",\\\"grid\\\",\\\"height\\\",\\\"hover\\\",\\\"inverted-colors\\\",\\\"monochrome\\\",\\\"orientation\\\",\\\"overflow-block\\\",\\\"overflow-inline\\\",\\\"pointer\\\",\\\"prefers-color-scheme\\\",\\\"prefers-contrast\\\",\\\"prefers-reduced-motion\\\",\\\"prefers-reduced-transparency\\\",\\\"resolution\\\",\\\"scan\\\",\\\"scripting\\\",\\\"update\\\",\\\"width\\\",\\\"min-width\\\",\\\"max-width\\\",\\\"min-height\\\",\\\"max-height\\\"],i=[\\\"active\\\",\\\"any-link\\\",\\\"blank\\\",\\\"checked\\\",\\\"current\\\",\\\"default\\\",\\\"defined\\\",\\\"dir\\\",\\\"disabled\\\",\\\"drop\\\",\\\"empty\\\",\\\"enabled\\\",\\\"first\\\",\\\"first-child\\\",\\\"first-of-type\\\",\\\"fullscreen\\\",\\\"future\\\",\\\"focus\\\",\\\"focus-visible\\\",\\\"focus-within\\\",\\\"has\\\",\\\"host\\\",\\\"host-context\\\",\\\"hover\\\",\\\"indeterminate\\\",\\\"in-range\\\",\\\"invalid\\\",\\\"is\\\",\\\"lang\\\",\\\"last-child\\\",\\\"last-of-type\\\",\\\"left\\\",\\\"link\\\",\\\"local-link\\\",\\\"not\\\",\\\"nth-child\\\",\\\"nth-col\\\",\\\"nth-last-child\\\",\\\"nth-last-col\\\",\\\"nth-last-of-type\\\",\\\"nth-of-type\\\",\\\"only-child\\\",\\\"only-of-type\\\",\\\"optional\\\",\\\"out-of-range\\\",\\\"past\\\",\\\"placeholder-shown\\\",\\\"read-only\\\",\\\"read-write\\\",\\\"required\\\",\\\"right\\\",\\\"root\\\",\\\"scope\\\",\\\"target\\\",\\\"target-within\\\",\\\"user-invalid\\\",\\\"valid\\\",\\\"visited\\\",\\\"where\\\"],r=[\\\"after\\\",\\\"backdrop\\\",\\\"before\\\",\\\"cue\\\",\\\"cue-region\\\",\\\"first-letter\\\",\\\"first-line\\\",\\\"grammar-error\\\",\\\"marker\\\",\\\"part\\\",\\\"placeholder\\\",\\\"selection\\\",\\\"slotted\\\",\\\"spelling-error\\\"],o=[\\\"align-content\\\",\\\"align-items\\\",\\\"align-self\\\",\\\"all\\\",\\\"animation\\\",\\\"animation-delay\\\",\\\"animation-direction\\\",\\\"animation-duration\\\",\\\"animation-fill-mode\\\",\\\"animation-iteration-count\\\",\\\"animation-name\\\",\\\"animation-play-state\\\",\\\"animation-timing-function\\\",\\\"backface-visibility\\\",\\\"background\\\",\\\"background-attachment\\\",\\\"background-clip\\\",\\\"background-color\\\",\\\"background-image\\\",\\\"background-origin\\\",\\\"background-position\\\",\\\"background-repeat\\\",\\\"background-size\\\",\\\"border\\\",\\\"border-bottom\\\",\\\"border-bottom-color\\\",\\\"border-bottom-left-radius\\\",\\\"border-bottom-right-radius\\\",\\\"border-bottom-style\\\",\\\"border-bottom-width\\\",\\\"border-collapse\\\",\\\"border-color\\\",\\\"border-image\\\",\\\"border-image-outset\\\",\\\"border-image-repeat\\\",\\\"border-image-slice\\\",\\\"border-image-source\\\",\\\"border-image-width\\\",\\\"border-left\\\",\\\"border-left-color\\\",\\\"border-left-style\\\",\\\"border-left-width\\\",\\\"border-radius\\\",\\\"border-right\\\",\\\"border-right-color\\\",\\\"border-right-style\\\",\\\"border-right-width\\\",\\\"border-spacing\\\",\\\"border-style\\\",\\\"border-top\\\",\\\"border-top-color\\\",\\\"border-top-left-radius\\\",\\\"border-top-right-radius\\\",\\\"border-top-style\\\",\\\"border-top-width\\\",\\\"border-width\\\",\\\"bottom\\\",\\\"box-decoration-break\\\",\\\"box-shadow\\\",\\\"box-sizing\\\",\\\"break-after\\\",\\\"break-before\\\",\\\"break-inside\\\",\\\"caption-side\\\",\\\"caret-color\\\",\\\"clear\\\",\\\"clip\\\",\\\"clip-path\\\",\\\"clip-rule\\\",\\\"color\\\",\\\"column-count\\\",\\\"column-fill\\\",\\\"column-gap\\\",\\\"column-rule\\\",\\\"column-rule-color\\\",\\\"column-rule-style\\\",\\\"column-rule-width\\\",\\\"column-span\\\",\\\"column-width\\\",\\\"columns\\\",\\\"contain\\\",\\\"content\\\",\\\"content-visibility\\\",\\\"counter-increment\\\",\\\"counter-reset\\\",\\\"cue\\\",\\\"cue-after\\\",\\\"cue-before\\\",\\\"cursor\\\",\\\"direction\\\",\\\"display\\\",\\\"empty-cells\\\",\\\"filter\\\",\\\"flex\\\",\\\"flex-basis\\\",\\\"flex-direction\\\",\\\"flex-flow\\\",\\\"flex-grow\\\",\\\"flex-shrink\\\",\\\"flex-wrap\\\",\\\"float\\\",\\\"flow\\\",\\\"font\\\",\\\"font-display\\\",\\\"font-family\\\",\\\"font-feature-settings\\\",\\\"font-kerning\\\",\\\"font-language-override\\\",\\\"font-size\\\",\\\"font-size-adjust\\\",\\\"font-smoothing\\\",\\\"font-stretch\\\",\\\"font-style\\\",\\\"font-synthesis\\\",\\\"font-variant\\\",\\\"font-variant-caps\\\",\\\"font-variant-east-asian\\\",\\\"font-variant-ligatures\\\",\\\"font-variant-numeric\\\",\\\"font-variant-position\\\",\\\"font-variation-settings\\\",\\\"font-weight\\\",\\\"gap\\\",\\\"glyph-orientation-vertical\\\",\\\"grid\\\",\\\"grid-area\\\",\\\"grid-auto-columns\\\",\\\"grid-auto-flow\\\",\\\"grid-auto-rows\\\",\\\"grid-column\\\",\\\"grid-column-end\\\",\\\"grid-column-start\\\",\\\"grid-gap\\\",\\\"grid-row\\\",\\\"grid-row-end\\\",\\\"grid-row-start\\\",\\\"grid-template\\\",\\\"grid-template-areas\\\",\\\"grid-template-columns\\\",\\\"grid-template-rows\\\",\\\"hanging-punctuation\\\",\\\"height\\\",\\\"hyphens\\\",\\\"icon\\\",\\\"image-orientation\\\",\\\"image-rendering\\\",\\\"image-resolution\\\",\\\"ime-mode\\\",\\\"isolation\\\",\\\"justify-content\\\",\\\"left\\\",\\\"letter-spacing\\\",\\\"line-break\\\",\\\"line-height\\\",\\\"list-style\\\",\\\"list-style-image\\\",\\\"list-style-position\\\",\\\"list-style-type\\\",\\\"margin\\\",\\\"margin-bottom\\\",\\\"margin-left\\\",\\\"margin-right\\\",\\\"margin-top\\\",\\\"marks\\\",\\\"mask\\\",\\\"mask-border\\\",\\\"mask-border-mode\\\",\\\"mask-border-outset\\\",\\\"mask-border-repeat\\\",\\\"mask-border-slice\\\",\\\"mask-border-source\\\",\\\"mask-border-width\\\",\\\"mask-clip\\\",\\\"mask-composite\\\",\\\"mask-image\\\",\\\"mask-mode\\\",\\\"mask-origin\\\",\\\"mask-position\\\",\\\"mask-repeat\\\",\\\"mask-size\\\",\\\"mask-type\\\",\\\"max-height\\\",\\\"max-width\\\",\\\"min-height\\\",\\\"min-width\\\",\\\"mix-blend-mode\\\",\\\"nav-down\\\",\\\"nav-index\\\",\\\"nav-left\\\",\\\"nav-right\\\",\\\"nav-up\\\",\\\"none\\\",\\\"normal\\\",\\\"object-fit\\\",\\\"object-position\\\",\\\"opacity\\\",\\\"order\\\",\\\"orphans\\\",\\\"outline\\\",\\\"outline-color\\\",\\\"outline-offset\\\",\\\"outline-style\\\",\\\"outline-width\\\",\\\"overflow\\\",\\\"overflow-wrap\\\",\\\"overflow-x\\\",\\\"overflow-y\\\",\\\"padding\\\",\\\"padding-bottom\\\",\\\"padding-left\\\",\\\"padding-right\\\",\\\"padding-top\\\",\\\"page-break-after\\\",\\\"page-break-before\\\",\\\"page-break-inside\\\",\\\"pause\\\",\\\"pause-after\\\",\\\"pause-before\\\",\\\"perspective\\\",\\\"perspective-origin\\\",\\\"pointer-events\\\",\\\"position\\\",\\\"quotes\\\",\\\"resize\\\",\\\"rest\\\",\\\"rest-after\\\",\\\"rest-before\\\",\\\"right\\\",\\\"row-gap\\\",\\\"scroll-margin\\\",\\\"scroll-margin-block\\\",\\\"scroll-margin-block-end\\\",\\\"scroll-margin-block-start\\\",\\\"scroll-margin-bottom\\\",\\\"scroll-margin-inline\\\",\\\"scroll-margin-inline-end\\\",\\\"scroll-margin-inline-start\\\",\\\"scroll-margin-left\\\",\\\"scroll-margin-right\\\",\\\"scroll-margin-top\\\",\\\"scroll-padding\\\",\\\"scroll-padding-block\\\",\\\"scroll-padding-block-end\\\",\\\"scroll-padding-block-start\\\",\\\"scroll-padding-bottom\\\",\\\"scroll-padding-inline\\\",\\\"scroll-padding-inline-end\\\",\\\"scroll-padding-inline-start\\\",\\\"scroll-padding-left\\\",\\\"scroll-padding-right\\\",\\\"scroll-padding-top\\\",\\\"scroll-snap-align\\\",\\\"scroll-snap-stop\\\",\\\"scroll-snap-type\\\",\\\"shape-image-threshold\\\",\\\"shape-margin\\\",\\\"shape-outside\\\",\\\"speak\\\",\\\"speak-as\\\",\\\"src\\\",\\\"tab-size\\\",\\\"table-layout\\\",\\\"text-align\\\",\\\"text-align-all\\\",\\\"text-align-last\\\",\\\"text-combine-upright\\\",\\\"text-decoration\\\",\\\"text-decoration-color\\\",\\\"text-decoration-line\\\",\\\"text-decoration-style\\\",\\\"text-emphasis\\\",\\\"text-emphasis-color\\\",\\\"text-emphasis-position\\\",\\\"text-emphasis-style\\\",\\\"text-indent\\\",\\\"text-justify\\\",\\\"text-orientation\\\",\\\"text-overflow\\\",\\\"text-rendering\\\",\\\"text-shadow\\\",\\\"text-transform\\\",\\\"text-underline-position\\\",\\\"top\\\",\\\"transform\\\",\\\"transform-box\\\",\\\"transform-origin\\\",\\\"transform-style\\\",\\\"transition\\\",\\\"transition-delay\\\",\\\"transition-duration\\\",\\\"transition-property\\\",\\\"transition-timing-function\\\",\\\"unicode-bidi\\\",\\\"vertical-align\\\",\\\"visibility\\\",\\\"voice-balance\\\",\\\"voice-duration\\\",\\\"voice-family\\\",\\\"voice-pitch\\\",\\\"voice-range\\\",\\\"voice-rate\\\",\\\"voice-stress\\\",\\\"voice-volume\\\",\\\"white-space\\\",\\\"widows\\\",\\\"width\\\",\\\"will-change\\\",\\\"word-break\\\",\\\"word-spacing\\\",\\\"word-wrap\\\",\\\"writing-mode\\\",\\\"z-index\\\"].reverse()\\n;return a=>{const n=(e=>({IMPORTANT:{scope:\\\"meta\\\",begin:\\\"!important\\\"},\\nBLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:\\\"number\\\",\\nbegin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\\\b/},FUNCTION_DISPATCH:{\\nclassName:\\\"built_in\\\",begin:/[\\\\w-]+(?=\\\\()/},ATTRIBUTE_SELECTOR_MODE:{\\nscope:\\\"selector-attr\\\",begin:/\\\\[/,end:/\\\\]/,illegal:\\\"$\\\",\\ncontains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{\\nscope:\\\"number\\\",\\nbegin:e.NUMBER_RE+\\\"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\\\",\\nrelevance:0},CSS_VARIABLE:{className:\\\"attr\\\",begin:/--[A-Za-z][A-Za-z0-9_-]*/}\\n}))(a),l=r,s=i,d=\\\"@[a-z-]+\\\",c={className:\\\"variable\\\",\\nbegin:\\\"(\\\\\\\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\\\\\\\b\\\"};return{name:\\\"SCSS\\\",case_insensitive:!0,\\nillegal:\\\"[=/|']\\\",\\ncontains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{\\nclassName:\\\"selector-id\\\",begin:\\\"#[A-Za-z0-9_-]+\\\",relevance:0},{\\nclassName:\\\"selector-class\\\",begin:\\\"\\\\\\\\.[A-Za-z0-9_-]+\\\",relevance:0\\n},n.ATTRIBUTE_SELECTOR_MODE,{className:\\\"selector-tag\\\",\\nbegin:\\\"\\\\\\\\b(\\\"+e.join(\\\"|\\\")+\\\")\\\\\\\\b\\\",relevance:0},{className:\\\"selector-pseudo\\\",\\nbegin:\\\":(\\\"+s.join(\\\"|\\\")+\\\")\\\"},{className:\\\"selector-pseudo\\\",\\nbegin:\\\":(:)?(\\\"+l.join(\\\"|\\\")+\\\")\\\"},c,{begin:/\\\\(/,end:/\\\\)/,\\ncontains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:\\\"attribute\\\",\\nbegin:\\\"\\\\\\\\b(\\\"+o.join(\\\"|\\\")+\\\")\\\\\\\\b\\\"},{\\nbegin:\\\"\\\\\\\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\\\\\\\b\\\"\\n},{begin:/:/,end:/[;}{]/,\\ncontains:[n.BLOCK_COMMENT,c,n.HEXCOLOR,n.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.IMPORTANT]\\n},{begin:\\\"@(page|font-face)\\\",keywords:{$pattern:d,keyword:\\\"@page @font-face\\\"}},{\\nbegin:\\\"@\\\",end:\\\"[{;]\\\",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,\\nkeyword:\\\"and or not only\\\",attribute:t.join(\\\" \\\")},contains:[{begin:d,\\nclassName:\\\"keyword\\\"},{begin:/[a-z-]+(?=:)/,className:\\\"attribute\\\"\\n},c,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE]\\n},n.FUNCTION_DISPATCH]}}})();hljs.registerLanguage(\\\"scss\\\",e)})();/*! `latex` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const n=[{begin:/\\\\^{6}[0-9a-f]{6}/},{\\nbegin:/\\\\^{5}[0-9a-f]{5}/},{begin:/\\\\^{4}[0-9a-f]{4}/},{begin:/\\\\^{3}[0-9a-f]{3}/\\n},{begin:/\\\\^{2}[0-9a-f]{2}/},{begin:/\\\\^{2}[\\\\u0000-\\\\u007f]/}],a=[{\\nclassName:\\\"keyword\\\",begin:/\\\\\\\\/,relevance:0,contains:[{endsParent:!0,\\nbegin:e.regex.either(...[\\\"(?:NeedsTeXFormat|RequirePackage|GetIdInfo)\\\",\\\"Provides(?:Expl)?(?:Package|Class|File)\\\",\\\"(?:DeclareOption|ProcessOptions)\\\",\\\"(?:documentclass|usepackage|input|include)\\\",\\\"makeat(?:letter|other)\\\",\\\"ExplSyntax(?:On|Off)\\\",\\\"(?:new|renew|provide)?command\\\",\\\"(?:re)newenvironment\\\",\\\"(?:New|Renew|Provide|Declare)(?:Expandable)?DocumentCommand\\\",\\\"(?:New|Renew|Provide|Declare)DocumentEnvironment\\\",\\\"(?:(?:e|g|x)?def|let)\\\",\\\"(?:begin|end)\\\",\\\"(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph)\\\",\\\"caption\\\",\\\"(?:label|(?:eq|page|name)?ref|(?:paren|foot|super)?cite)\\\",\\\"(?:alpha|beta|[Gg]amma|[Dd]elta|(?:var)?epsilon|zeta|eta|[Tt]heta|vartheta)\\\",\\\"(?:iota|(?:var)?kappa|[Ll]ambda|mu|nu|[Xx]i|[Pp]i|varpi|(?:var)rho)\\\",\\\"(?:[Ss]igma|varsigma|tau|[Uu]psilon|[Pp]hi|varphi|chi|[Pp]si|[Oo]mega)\\\",\\\"(?:frac|sum|prod|lim|infty|times|sqrt|leq|geq|left|right|middle|[bB]igg?)\\\",\\\"(?:[lr]angle|q?quad|[lcvdi]?dots|d?dot|hat|tilde|bar)\\\"].map((e=>e+\\\"(?![a-zA-Z@:_])\\\")))\\n},{endsParent:!0,\\nbegin:RegExp([\\\"(?:__)?[a-zA-Z]{2,}_[a-zA-Z](?:_?[a-zA-Z])+:[a-zA-Z]*\\\",\\\"[lgc]__?[a-zA-Z](?:_?[a-zA-Z])*_[a-zA-Z]{2,}\\\",\\\"[qs]__?[a-zA-Z](?:_?[a-zA-Z])+\\\",\\\"use(?:_i)?:[a-zA-Z]*\\\",\\\"(?:else|fi|or):\\\",\\\"(?:if|cs|exp):w\\\",\\\"(?:hbox|vbox):n\\\",\\\"::[a-zA-Z]_unbraced\\\",\\\"::[a-zA-Z:]\\\"].map((e=>e+\\\"(?![a-zA-Z:_])\\\")).join(\\\"|\\\"))\\n},{endsParent:!0,variants:n},{endsParent:!0,relevance:0,variants:[{\\nbegin:/[a-zA-Z@]+/},{begin:/[^a-zA-Z@]?/}]}]},{className:\\\"params\\\",relevance:0,\\nbegin:/#+\\\\d?/},{variants:n},{className:\\\"built_in\\\",relevance:0,begin:/[$&^_]/},{\\nclassName:\\\"meta\\\",begin:/% ?!(T[eE]X|tex|BIB|bib)/,end:\\\"$\\\",relevance:10\\n},e.COMMENT(\\\"%\\\",\\\"$\\\",{relevance:0})],i={begin:/\\\\{/,end:/\\\\}/,relevance:0,\\ncontains:[\\\"self\\\",...a]},t=e.inherit(i,{relevance:0,endsParent:!0,\\ncontains:[i,...a]}),r={begin:/\\\\[/,end:/\\\\]/,endsParent:!0,relevance:0,\\ncontains:[i,...a]},s={begin:/\\\\s+/,relevance:0},c=[t],l=[r],o=(e,n)=>({\\ncontains:[s],starts:{relevance:0,contains:e,starts:n}}),d=(e,n)=>({\\nbegin:\\\"\\\\\\\\\\\\\\\\\\\"+e+\\\"(?![a-zA-Z@:_])\\\",keywords:{$pattern:/\\\\\\\\[a-zA-Z]+/,keyword:\\\"\\\\\\\\\\\"+e\\n},relevance:0,contains:[s],starts:n}),g=(n,a)=>e.inherit({\\nbegin:\\\"\\\\\\\\\\\\\\\\begin(?=[ \\\\t]*(\\\\\\\\r?\\\\\\\\n[ \\\\t]*)?\\\\\\\\{\\\"+n+\\\"\\\\\\\\})\\\",keywords:{\\n$pattern:/\\\\\\\\[a-zA-Z]+/,keyword:\\\"\\\\\\\\begin\\\"},relevance:0\\n},o(c,a)),m=(n=\\\"string\\\")=>e.END_SAME_AS_BEGIN({className:n,begin:/(.|\\\\r?\\\\n)/,\\nend:/(.|\\\\r?\\\\n)/,excludeBegin:!0,excludeEnd:!0,endsParent:!0}),b=e=>({\\nclassName:\\\"string\\\",end:\\\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{\\\"+e+\\\"\\\\\\\\})\\\"}),p=(e=\\\"string\\\")=>({relevance:0,\\nbegin:/\\\\{/,starts:{endsParent:!0,contains:[{className:e,end:/(?=\\\\})/,\\nendsParent:!0,contains:[{begin:/\\\\{/,end:/\\\\}/,relevance:0,contains:[\\\"self\\\"]}]}]}\\n});return{name:\\\"LaTeX\\\",aliases:[\\\"tex\\\"],\\ncontains:[...[\\\"verb\\\",\\\"lstinline\\\"].map((e=>d(e,{contains:[m()]}))),d(\\\"mint\\\",o(c,{\\ncontains:[m()]})),d(\\\"mintinline\\\",o(c,{contains:[p(),m()]})),d(\\\"url\\\",{\\ncontains:[p(\\\"link\\\"),p(\\\"link\\\")]}),d(\\\"hyperref\\\",{contains:[p(\\\"link\\\")]\\n}),d(\\\"href\\\",o(l,{contains:[p(\\\"link\\\")]\\n})),...[].concat(...[\\\"\\\",\\\"\\\\\\\\*\\\"].map((e=>[g(\\\"verbatim\\\"+e,b(\\\"verbatim\\\"+e)),g(\\\"filecontents\\\"+e,o(c,b(\\\"filecontents\\\"+e))),...[\\\"\\\",\\\"B\\\",\\\"L\\\"].map((n=>g(n+\\\"Verbatim\\\"+e,o(l,b(n+\\\"Verbatim\\\"+e)))))]))),g(\\\"minted\\\",o(l,o(c,b(\\\"minted\\\")))),...a]\\n}}})();hljs.registerLanguage(\\\"latex\\\",e)})();/*! `vbnet` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{\\nconst n=e.regex,t=/\\\\d{1,2}\\\\/\\\\d{1,2}\\\\/\\\\d{4}/,a=/\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}/,i=/(\\\\d|1[012])(:\\\\d+){0,2} *(AM|PM)/,s=/\\\\d{1,2}(:\\\\d{1,2}){1,2}/,r={\\nclassName:\\\"literal\\\",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{\\nbegin:n.concat(/# */,s,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{\\nbegin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,s),/ *#/)}]\\n},l=e.COMMENT(/'''/,/$/,{contains:[{className:\\\"doctag\\\",begin:/\u003C\\\\/?/,end:/>/}]\\n}),o=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\\\\t ]|^)REM(?=\\\\s)/}]})\\n;return{name:\\\"Visual Basic .NET\\\",aliases:[\\\"vb\\\"],case_insensitive:!0,\\nclassNameAliases:{label:\\\"symbol\\\"},keywords:{\\nkeyword:\\\"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield\\\",\\nbuilt_in:\\\"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort\\\",\\ntype:\\\"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort\\\",\\nliteral:\\\"true false nothing\\\"},\\nillegal:\\\"//|\\\\\\\\{|\\\\\\\\}|endif|gosub|variant|wend|^\\\\\\\\$ \\\",contains:[{\\nclassName:\\\"string\\\",begin:/\\\"(\\\"\\\"|[^/n])\\\"C\\\\b/},{className:\\\"string\\\",begin:/\\\"/,\\nend:/\\\"/,illegal:/\\\\n/,contains:[{begin:/\\\"\\\"/}]},r,{className:\\\"number\\\",relevance:0,\\nvariants:[{begin:/\\\\b\\\\d[\\\\d_]*((\\\\.[\\\\d_]+(E[+-]?[\\\\d_]+)?)|(E[+-]?[\\\\d_]+))[RFD@!#]?/\\n},{begin:/\\\\b\\\\d[\\\\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\\\\dA-F_]+((U?[SIL])|[%&])?/},{\\nbegin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{\\nclassName:\\\"label\\\",begin:/^\\\\w+:/},l,o,{className:\\\"meta\\\",\\nbegin:/[\\\\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\\\\b/,\\nend:/$/,keywords:{\\nkeyword:\\\"const disable else elseif enable end externalsource if region then\\\"},\\ncontains:[o]}]}}})();hljs.registerLanguage(\\\"vbnet\\\",e)})();/*! `diff` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const a=e.regex;return{name:\\\"Diff\\\",\\naliases:[\\\"patch\\\"],contains:[{className:\\\"meta\\\",relevance:10,\\nmatch:a.either(/^@@ +-\\\\d+,\\\\d+ +\\\\+\\\\d+,\\\\d+ +@@/,/^\\\\*\\\\*\\\\* +\\\\d+,\\\\d+ +\\\\*\\\\*\\\\*\\\\*$/,/^--- +\\\\d+,\\\\d+ +----$/)\\n},{className:\\\"comment\\\",variants:[{\\nbegin:a.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\\\\*{3} /,/^\\\\+{3}/,/^diff --git/),\\nend:/$/},{match:/^\\\\*{15}$/}]},{className:\\\"addition\\\",begin:/^\\\\+/,end:/$/},{\\nclassName:\\\"deletion\\\",begin:/^-/,end:/$/},{className:\\\"addition\\\",begin:/^!/,\\nend:/$/}]}}})();hljs.registerLanguage(\\\"diff\\\",e)})();/*! `makefile` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const i={className:\\\"variable\\\",\\nvariants:[{begin:\\\"\\\\\\\\$\\\\\\\\(\\\"+e.UNDERSCORE_IDENT_RE+\\\"\\\\\\\\)\\\",\\ncontains:[e.BACKSLASH_ESCAPE]},{begin:/\\\\$[@%\u003C?\\\\^\\\\+\\\\*]/}]},a={className:\\\"string\\\",\\nbegin:/\\\"/,end:/\\\"/,contains:[e.BACKSLASH_ESCAPE,i]},n={className:\\\"variable\\\",\\nbegin:/\\\\$\\\\([\\\\w-]+\\\\s/,end:/\\\\)/,keywords:{\\nbuilt_in:\\\"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value\\\"\\n},contains:[i]},s={begin:\\\"^\\\"+e.UNDERSCORE_IDENT_RE+\\\"\\\\\\\\s*(?=[:+?]?=)\\\"},r={\\nclassName:\\\"section\\\",begin:/^[^\\\\s]+:/,end:/$/,contains:[i]};return{\\nname:\\\"Makefile\\\",aliases:[\\\"mk\\\",\\\"mak\\\",\\\"make\\\"],keywords:{$pattern:/[\\\\w-]+/,\\nkeyword:\\\"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath\\\"\\n},contains:[e.HASH_COMMENT_MODE,i,a,n,s,{className:\\\"meta\\\",begin:/^\\\\.PHONY:/,\\nend:/$/,keywords:{$pattern:/[\\\\.\\\\w]+/,keyword:\\\".PHONY\\\"}},r]}}})()\\n;hljs.registerLanguage(\\\"makefile\\\",e)})();/*! `lua` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const t=\\\"\\\\\\\\[=*\\\\\\\\[\\\",a=\\\"\\\\\\\\]=*\\\\\\\\]\\\",n={\\nbegin:t,end:a,contains:[\\\"self\\\"]\\n},o=[e.COMMENT(\\\"--(?!\\\\\\\\[=*\\\\\\\\[)\\\",\\\"$\\\"),e.COMMENT(\\\"--\\\\\\\\[=*\\\\\\\\[\\\",a,{contains:[n],\\nrelevance:10})];return{name:\\\"Lua\\\",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,\\nliteral:\\\"true false nil\\\",\\nkeyword:\\\"and break do else elseif end for goto if in local not or repeat return then until while\\\",\\nbuilt_in:\\\"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove\\\"\\n},contains:o.concat([{className:\\\"function\\\",beginKeywords:\\\"function\\\",end:\\\"\\\\\\\\)\\\",\\ncontains:[e.inherit(e.TITLE_MODE,{\\nbegin:\\\"([_a-zA-Z]\\\\\\\\w*\\\\\\\\.)*([_a-zA-Z]\\\\\\\\w*:)?[_a-zA-Z]\\\\\\\\w*\\\"}),{className:\\\"params\\\",\\nbegin:\\\"\\\\\\\\(\\\",endsWithParent:!0,contains:o}].concat(o)\\n},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:\\\"string\\\",\\nbegin:t,end:a,contains:[n],relevance:5}])}}})();hljs.registerLanguage(\\\"lua\\\",e)\\n})();/*! `csharp` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const n={\\nkeyword:[\\\"abstract\\\",\\\"as\\\",\\\"base\\\",\\\"break\\\",\\\"case\\\",\\\"catch\\\",\\\"class\\\",\\\"const\\\",\\\"continue\\\",\\\"do\\\",\\\"else\\\",\\\"event\\\",\\\"explicit\\\",\\\"extern\\\",\\\"finally\\\",\\\"fixed\\\",\\\"for\\\",\\\"foreach\\\",\\\"goto\\\",\\\"if\\\",\\\"implicit\\\",\\\"in\\\",\\\"interface\\\",\\\"internal\\\",\\\"is\\\",\\\"lock\\\",\\\"namespace\\\",\\\"new\\\",\\\"operator\\\",\\\"out\\\",\\\"override\\\",\\\"params\\\",\\\"private\\\",\\\"protected\\\",\\\"public\\\",\\\"readonly\\\",\\\"record\\\",\\\"ref\\\",\\\"return\\\",\\\"sealed\\\",\\\"sizeof\\\",\\\"stackalloc\\\",\\\"static\\\",\\\"struct\\\",\\\"switch\\\",\\\"this\\\",\\\"throw\\\",\\\"try\\\",\\\"typeof\\\",\\\"unchecked\\\",\\\"unsafe\\\",\\\"using\\\",\\\"virtual\\\",\\\"void\\\",\\\"volatile\\\",\\\"while\\\"].concat([\\\"add\\\",\\\"alias\\\",\\\"and\\\",\\\"ascending\\\",\\\"async\\\",\\\"await\\\",\\\"by\\\",\\\"descending\\\",\\\"equals\\\",\\\"from\\\",\\\"get\\\",\\\"global\\\",\\\"group\\\",\\\"init\\\",\\\"into\\\",\\\"join\\\",\\\"let\\\",\\\"nameof\\\",\\\"not\\\",\\\"notnull\\\",\\\"on\\\",\\\"or\\\",\\\"orderby\\\",\\\"partial\\\",\\\"remove\\\",\\\"select\\\",\\\"set\\\",\\\"unmanaged\\\",\\\"value|0\\\",\\\"var\\\",\\\"when\\\",\\\"where\\\",\\\"with\\\",\\\"yield\\\"]),\\nbuilt_in:[\\\"bool\\\",\\\"byte\\\",\\\"char\\\",\\\"decimal\\\",\\\"delegate\\\",\\\"double\\\",\\\"dynamic\\\",\\\"enum\\\",\\\"float\\\",\\\"int\\\",\\\"long\\\",\\\"nint\\\",\\\"nuint\\\",\\\"object\\\",\\\"sbyte\\\",\\\"short\\\",\\\"string\\\",\\\"ulong\\\",\\\"uint\\\",\\\"ushort\\\"],\\nliteral:[\\\"default\\\",\\\"false\\\",\\\"null\\\",\\\"true\\\"]},a=e.inherit(e.TITLE_MODE,{\\nbegin:\\\"[a-zA-Z](\\\\\\\\.?\\\\\\\\w)*\\\"}),i={className:\\\"number\\\",variants:[{\\nbegin:\\\"\\\\\\\\b(0b[01']+)\\\"},{\\nbegin:\\\"(-?)\\\\\\\\b([\\\\\\\\d']+(\\\\\\\\.[\\\\\\\\d']*)?|\\\\\\\\.[\\\\\\\\d']+)(u|U|l|L|ul|UL|f|F|b|B)\\\"},{\\nbegin:\\\"(-?)(\\\\\\\\b0[xX][a-fA-F0-9']+|(\\\\\\\\b[\\\\\\\\d']+(\\\\\\\\.[\\\\\\\\d']*)?|\\\\\\\\.[\\\\\\\\d']+)([eE][-+]?[\\\\\\\\d']+)?)\\\"\\n}],relevance:0},s={className:\\\"string\\\",begin:'@\\\"',end:'\\\"',contains:[{begin:'\\\"\\\"'}]\\n},t=e.inherit(s,{illegal:/\\\\n/}),r={className:\\\"subst\\\",begin:/\\\\{/,end:/\\\\}/,\\nkeywords:n},l=e.inherit(r,{illegal:/\\\\n/}),c={className:\\\"string\\\",begin:/\\\\$\\\"/,\\nend:'\\\"',illegal:/\\\\n/,contains:[{begin:/\\\\{\\\\{/},{begin:/\\\\}\\\\}/\\n},e.BACKSLASH_ESCAPE,l]},o={className:\\\"string\\\",begin:/\\\\$@\\\"/,end:'\\\"',contains:[{\\nbegin:/\\\\{\\\\{/},{begin:/\\\\}\\\\}/},{begin:'\\\"\\\"'},r]},d=e.inherit(o,{illegal:/\\\\n/,\\ncontains:[{begin:/\\\\{\\\\{/},{begin:/\\\\}\\\\}/},{begin:'\\\"\\\"'},l]})\\n;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE],\\nl.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{\\nillegal:/\\\\n/})];const g={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]\\n},E={begin:\\\"\u003C\\\",end:\\\">\\\",contains:[{beginKeywords:\\\"in out\\\"},a]\\n},_=e.IDENT_RE+\\\"(\u003C\\\"+e.IDENT_RE+\\\"(\\\\\\\\s*,\\\\\\\\s*\\\"+e.IDENT_RE+\\\")*>)?(\\\\\\\\[\\\\\\\\])?\\\",b={\\nbegin:\\\"@\\\"+e.IDENT_RE,relevance:0};return{name:\\\"C#\\\",aliases:[\\\"cs\\\",\\\"c#\\\"],\\nkeywords:n,illegal:/::/,contains:[e.COMMENT(\\\"///\\\",\\\"$\\\",{returnBegin:!0,\\ncontains:[{className:\\\"doctag\\\",variants:[{begin:\\\"///\\\",relevance:0},{\\nbegin:\\\"\\\\x3c!--|--\\\\x3e\\\"},{begin:\\\"\u003C/?\\\",end:\\\">\\\"}]}]\\n}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:\\\"meta\\\",begin:\\\"#\\\",\\nend:\\\"$\\\",keywords:{\\nkeyword:\\\"if else elif endif define undef warning error line region endregion pragma checksum\\\"\\n}},g,i,{beginKeywords:\\\"class interface\\\",relevance:0,end:/[{;=]/,\\nillegal:/[^\\\\s:,]/,contains:[{beginKeywords:\\\"where class\\\"\\n},a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:\\\"namespace\\\",\\nrelevance:0,end:/[{;=]/,illegal:/[^\\\\s:]/,\\ncontains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{\\nbeginKeywords:\\\"record\\\",relevance:0,end:/[{;=]/,illegal:/[^\\\\s:]/,\\ncontains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:\\\"meta\\\",\\nbegin:\\\"^\\\\\\\\s*\\\\\\\\[(?=[\\\\\\\\w])\\\",excludeBegin:!0,end:\\\"\\\\\\\\]\\\",excludeEnd:!0,contains:[{\\nclassName:\\\"string\\\",begin:/\\\"/,end:/\\\"/}]},{\\nbeginKeywords:\\\"new return throw await else\\\",relevance:0},{className:\\\"function\\\",\\nbegin:\\\"(\\\"+_+\\\"\\\\\\\\s+)+\\\"+e.IDENT_RE+\\\"\\\\\\\\s*(\u003C[^=]+>\\\\\\\\s*)?\\\\\\\\(\\\",returnBegin:!0,\\nend:/\\\\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{\\nbeginKeywords:\\\"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial\\\",\\nrelevance:0},{begin:e.IDENT_RE+\\\"\\\\\\\\s*(\u003C[^=]+>\\\\\\\\s*)?\\\\\\\\(\\\",returnBegin:!0,\\ncontains:[e.TITLE_MODE,E],relevance:0},{match:/\\\\(\\\\)/},{className:\\\"params\\\",\\nbegin:/\\\\(/,end:/\\\\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,\\ncontains:[g,i,e.C_BLOCK_COMMENT_MODE]\\n},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})()\\n;hljs.registerLanguage(\\\"csharp\\\",e)})();/*! `json` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>({name:\\\"JSON\\\",contains:[{\\nclassName:\\\"attr\\\",begin:/\\\"(\\\\\\\\.|[^\\\\\\\\\\\"\\\\r\\\\n])*\\\"(?=\\\\s*:)/,relevance:1.01},{\\nmatch:/[{}[\\\\],:]/,className:\\\"punctuation\\\",relevance:0},e.QUOTE_STRING_MODE,{\\nbeginKeywords:\\\"true false null\\\"\\n},e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:\\\"\\\\\\\\S\\\"})\\n})();hljs.registerLanguage(\\\"json\\\",e)})();/*! `nginx` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const n=e.regex,a={\\nclassName:\\\"variable\\\",variants:[{begin:/\\\\$\\\\d+/},{begin:/\\\\$\\\\{\\\\w+\\\\}/},{\\nbegin:n.concat(/[$@]/,e.UNDERSCORE_IDENT_RE)}]},s={endsWithParent:!0,keywords:{\\n$pattern:/[a-z_]{2,}|\\\\/dev\\\\/poll/,\\nliteral:[\\\"on\\\",\\\"off\\\",\\\"yes\\\",\\\"no\\\",\\\"true\\\",\\\"false\\\",\\\"none\\\",\\\"blocked\\\",\\\"debug\\\",\\\"info\\\",\\\"notice\\\",\\\"warn\\\",\\\"error\\\",\\\"crit\\\",\\\"select\\\",\\\"break\\\",\\\"last\\\",\\\"permanent\\\",\\\"redirect\\\",\\\"kqueue\\\",\\\"rtsig\\\",\\\"epoll\\\",\\\"poll\\\",\\\"/dev/poll\\\"]\\n},relevance:0,illegal:\\\"=>\\\",contains:[e.HASH_COMMENT_MODE,{className:\\\"string\\\",\\ncontains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:/\\\"/,end:/\\\"/},{begin:/'/,end:/'/\\n}]},{begin:\\\"([a-z]+):/\\\",end:\\\"\\\\\\\\s\\\",endsWithParent:!0,excludeEnd:!0,contains:[a]\\n},{className:\\\"regexp\\\",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:\\\"\\\\\\\\s\\\\\\\\^\\\",\\nend:\\\"\\\\\\\\s|\\\\\\\\{|;\\\",returnEnd:!0},{begin:\\\"~\\\\\\\\*?\\\\\\\\s+\\\",end:\\\"\\\\\\\\s|\\\\\\\\{|;\\\",returnEnd:!0},{\\nbegin:\\\"\\\\\\\\*(\\\\\\\\.[a-z\\\\\\\\-]+)+\\\"},{begin:\\\"([a-z\\\\\\\\-]+\\\\\\\\.)+\\\\\\\\*\\\"}]},{className:\\\"number\\\",\\nbegin:\\\"\\\\\\\\b\\\\\\\\d{1,3}\\\\\\\\.\\\\\\\\d{1,3}\\\\\\\\.\\\\\\\\d{1,3}\\\\\\\\.\\\\\\\\d{1,3}(:\\\\\\\\d{1,5})?\\\\\\\\b\\\"},{\\nclassName:\\\"number\\\",begin:\\\"\\\\\\\\b\\\\\\\\d+[kKmMgGdshdwy]?\\\\\\\\b\\\",relevance:0},a]};return{\\nname:\\\"Nginx config\\\",aliases:[\\\"nginxconf\\\"],contains:[e.HASH_COMMENT_MODE,{\\nbeginKeywords:\\\"upstream location\\\",end:/;|\\\\{/,contains:s.contains,keywords:{\\nsection:\\\"upstream location\\\"}},{className:\\\"section\\\",\\nbegin:n.concat(e.UNDERSCORE_IDENT_RE+n.lookahead(/\\\\s+\\\\{/)),relevance:0},{\\nbegin:n.lookahead(e.UNDERSCORE_IDENT_RE+\\\"\\\\\\\\s\\\"),end:\\\";|\\\\\\\\{\\\",contains:[{\\nclassName:\\\"attribute\\\",begin:e.UNDERSCORE_IDENT_RE,starts:s}],relevance:0}],\\nillegal:\\\"[^\\\\\\\\s\\\\\\\\}\\\\\\\\{]\\\"}}})();hljs.registerLanguage(\\\"nginx\\\",e)})();/*! `ruby` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{\\nconst n=e.regex,a=\\\"([a-zA-Z_]\\\\\\\\w*[!?=]?|[-+~]@|\u003C\u003C|>>|=~|===?|\u003C=>|[\u003C>]=?|\\\\\\\\*\\\\\\\\*|[-/+%^&*~`|]|\\\\\\\\[\\\\\\\\]=?)\\\",i={\\nkeyword:\\\"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__\\\",\\nbuilt_in:\\\"proc lambda\\\",literal:\\\"true false nil\\\"},s={className:\\\"doctag\\\",\\nbegin:\\\"@[A-Za-z]+\\\"},b={begin:\\\"#\u003C\\\",end:\\\">\\\"},r=[e.COMMENT(\\\"#\\\",\\\"$\\\",{contains:[s]\\n}),e.COMMENT(\\\"^=begin\\\",\\\"^=end\\\",{contains:[s],relevance:10\\n}),e.COMMENT(\\\"^__END__\\\",\\\"\\\\\\\\n$\\\")],c={className:\\\"subst\\\",begin:/#\\\\{/,end:/\\\\}/,\\nkeywords:i},t={className:\\\"string\\\",contains:[e.BACKSLASH_ESCAPE,c],variants:[{\\nbegin:/'/,end:/'/},{begin:/\\\"/,end:/\\\"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\\\\(/,\\nend:/\\\\)/},{begin:/%[qQwWx]?\\\\[/,end:/\\\\]/},{begin:/%[qQwWx]?\\\\{/,end:/\\\\}/},{\\nbegin:/%[qQwWx]?\u003C/,end:/>/},{begin:/%[qQwWx]?\\\\//,end:/\\\\//},{begin:/%[qQwWx]?%/,\\nend:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\\\\|/,end:/\\\\|/},{\\nbegin:/\\\\B\\\\?(\\\\\\\\\\\\d{1,3})/},{begin:/\\\\B\\\\?(\\\\\\\\x[A-Fa-f0-9]{1,2})/},{\\nbegin:/\\\\B\\\\?(\\\\\\\\u\\\\{?[A-Fa-f0-9]{1,6}\\\\}?)/},{\\nbegin:/\\\\B\\\\?(\\\\\\\\M-\\\\\\\\C-|\\\\\\\\M-\\\\\\\\c|\\\\\\\\c\\\\\\\\M-|\\\\\\\\M-|\\\\\\\\C-\\\\\\\\M-)[\\\\x20-\\\\x7e]/},{\\nbegin:/\\\\B\\\\?\\\\\\\\(c|C-)[\\\\x20-\\\\x7e]/},{begin:/\\\\B\\\\?\\\\\\\\?\\\\S/},{\\nbegin:n.concat(/\u003C\u003C[-~]?'?/,n.lookahead(/(\\\\w+)(?=\\\\W)[^\\\\n]*\\\\n(?:[^\\\\n]*\\\\n)*?\\\\s*\\\\1\\\\b/)),\\ncontains:[e.END_SAME_AS_BEGIN({begin:/(\\\\w+)/,end:/(\\\\w+)/,\\ncontains:[e.BACKSLASH_ESCAPE,c]})]}]},d=\\\"[0-9](_?[0-9])*\\\",g={className:\\\"number\\\",\\nrelevance:0,variants:[{\\nbegin:`\\\\\\\\b([1-9](_?[0-9])*|0)(\\\\\\\\.(${d}))?([eE][+-]?(${d})|r)?i?\\\\\\\\b`},{\\nbegin:\\\"\\\\\\\\b0[dD][0-9](_?[0-9])*r?i?\\\\\\\\b\\\"},{begin:\\\"\\\\\\\\b0[bB][0-1](_?[0-1])*r?i?\\\\\\\\b\\\"\\n},{begin:\\\"\\\\\\\\b0[oO][0-7](_?[0-7])*r?i?\\\\\\\\b\\\"},{\\nbegin:\\\"\\\\\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\\\\\\\b\\\"},{\\nbegin:\\\"\\\\\\\\b0(_?[0-7])+r?i?\\\\\\\\b\\\"}]},l={className:\\\"params\\\",begin:\\\"\\\\\\\\(\\\",end:\\\"\\\\\\\\)\\\",\\nendsParent:!0,keywords:i},o=[t,{className:\\\"class\\\",beginKeywords:\\\"class module\\\",\\nend:\\\"$|;\\\",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{\\nbegin:\\\"[A-Za-z_]\\\\\\\\w*(::\\\\\\\\w+)*(\\\\\\\\?|!)?\\\"}),{begin:\\\"\u003C\\\\\\\\s*\\\",contains:[{\\nbegin:\\\"(\\\"+e.IDENT_RE+\\\"::)?\\\"+e.IDENT_RE,relevance:0}]}].concat(r)},{\\nclassName:\\\"function\\\",begin:n.concat(/def\\\\s+/,n.lookahead(a+\\\"\\\\\\\\s*(\\\\\\\\(|;|$)\\\")),\\nrelevance:0,keywords:\\\"def\\\",end:\\\"$|;\\\",contains:[e.inherit(e.TITLE_MODE,{begin:a\\n}),l].concat(r)},{begin:e.IDENT_RE+\\\"::\\\"},{className:\\\"symbol\\\",\\nbegin:e.UNDERSCORE_IDENT_RE+\\\"(!|\\\\\\\\?)?:\\\",relevance:0},{className:\\\"symbol\\\",\\nbegin:\\\":(?!\\\\\\\\s)\\\",contains:[t,{begin:a}],relevance:0},g,{className:\\\"variable\\\",\\nbegin:\\\"(\\\\\\\\$\\\\\\\\W)|((\\\\\\\\$|@@?)(\\\\\\\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])\\\"},{\\nclassName:\\\"params\\\",begin:/\\\\|/,end:/\\\\|/,relevance:0,keywords:i},{\\nbegin:\\\"(\\\"+e.RE_STARTERS_RE+\\\"|unless)\\\\\\\\s*\\\",keywords:\\\"unless\\\",contains:[{\\nclassName:\\\"regexp\\\",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\\\\n/,variants:[{\\nbegin:\\\"/\\\",end:\\\"/[a-z]*\\\"},{begin:/%r\\\\{/,end:/\\\\}[a-z]*/},{begin:\\\"%r\\\\\\\\(\\\",\\nend:\\\"\\\\\\\\)[a-z]*\\\"},{begin:\\\"%r!\\\",end:\\\"![a-z]*\\\"},{begin:\\\"%r\\\\\\\\[\\\",end:\\\"\\\\\\\\][a-z]*\\\"}]\\n}].concat(b,r),relevance:0}].concat(b,r);c.contains=o,l.contains=o;const _=[{\\nbegin:/^\\\\s*=>/,starts:{end:\\\"$\\\",contains:o}},{className:\\\"meta\\\",\\nbegin:\\\"^([>?]>|[\\\\\\\\w#]+\\\\\\\\(\\\\\\\\w+\\\\\\\\):\\\\\\\\d+:\\\\\\\\d+>|(\\\\\\\\w+-)?\\\\\\\\d+\\\\\\\\.\\\\\\\\d+\\\\\\\\.\\\\\\\\d+(p\\\\\\\\d+)?[^\\\\\\\\d][^>]+>)(?=[ ])\\\",\\nstarts:{end:\\\"$\\\",contains:o}}];return r.unshift(b),{name:\\\"Ruby\\\",\\naliases:[\\\"rb\\\",\\\"gemspec\\\",\\\"podspec\\\",\\\"thor\\\",\\\"irb\\\"],keywords:i,illegal:/\\\\/\\\\*/,\\ncontains:[e.SHEBANG({binary:\\\"ruby\\\"})].concat(_).concat(r).concat(o)}}})()\\n;hljs.registerLanguage(\\\"ruby\\\",e)})();/*! `yaml` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{\\nconst n=\\\"true false yes no null\\\",a=\\\"[\\\\\\\\w#;/?:@&=+$,.~*'()[\\\\\\\\]]+\\\",s={\\nclassName:\\\"string\\\",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/\\\"/,end:/\\\"/\\n},{begin:/\\\\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:\\\"template-variable\\\",\\nvariants:[{begin:/\\\\{\\\\{/,end:/\\\\}\\\\}/},{begin:/%\\\\{/,end:/\\\\}/}]}]},i=e.inherit(s,{\\nvariants:[{begin:/'/,end:/'/},{begin:/\\\"/,end:/\\\"/},{begin:/[^\\\\s,{}[\\\\]]+/}]}),l={\\nend:\\\",\\\",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\\\\{/,\\nend:/\\\\}/,contains:[l],illegal:\\\"\\\\\\\\n\\\",relevance:0},g={begin:\\\"\\\\\\\\[\\\",end:\\\"\\\\\\\\]\\\",\\ncontains:[l],illegal:\\\"\\\\\\\\n\\\",relevance:0},b=[{className:\\\"attr\\\",variants:[{\\nbegin:\\\"\\\\\\\\w[\\\\\\\\w :\\\\\\\\/.-]*:(?=[ \\\\t]|$)\\\"},{begin:'\\\"\\\\\\\\w[\\\\\\\\w :\\\\\\\\/.-]*\\\":(?=[ \\\\t]|$)'},{\\nbegin:\\\"'\\\\\\\\w[\\\\\\\\w :\\\\\\\\/.-]*':(?=[ \\\\t]|$)\\\"}]},{className:\\\"meta\\\",begin:\\\"^---\\\\\\\\s*$\\\",\\nrelevance:10},{className:\\\"string\\\",\\nbegin:\\\"[\\\\\\\\|>]([1-9]?[+-])?[ ]*\\\\\\\\n( +)[^ ][^\\\\\\\\n]*\\\\\\\\n(\\\\\\\\2[^\\\\\\\\n]+\\\\\\\\n?)*\\\"},{\\nbegin:\\\"\u003C%[%=-]?\\\",end:\\\"[%-]?%>\\\",subLanguage:\\\"ruby\\\",excludeBegin:!0,excludeEnd:!0,\\nrelevance:0},{className:\\\"type\\\",begin:\\\"!\\\\\\\\w+!\\\"+a},{className:\\\"type\\\",\\nbegin:\\\"!\u003C\\\"+a+\\\">\\\"},{className:\\\"type\\\",begin:\\\"!\\\"+a},{className:\\\"type\\\",begin:\\\"!!\\\"+a\\n},{className:\\\"meta\\\",begin:\\\"&\\\"+e.UNDERSCORE_IDENT_RE+\\\"$\\\"},{className:\\\"meta\\\",\\nbegin:\\\"\\\\\\\\*\\\"+e.UNDERSCORE_IDENT_RE+\\\"$\\\"},{className:\\\"bullet\\\",begin:\\\"-(?=[ ]|$)\\\",\\nrelevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{\\nclassName:\\\"number\\\",\\nbegin:\\\"\\\\\\\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\\\\\\\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\\\\\\\.[0-9]*)?([ \\\\\\\\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\\\\\\\b\\\"\\n},{className:\\\"number\\\",begin:e.C_NUMBER_RE+\\\"\\\\\\\\b\\\",relevance:0},t,g,s],r=[...b]\\n;return r.pop(),r.push(i),l.contains=r,{name:\\\"YAML\\\",case_insensitive:!0,\\naliases:[\\\"yml\\\"],contains:b}}})();hljs.registerLanguage(\\\"yaml\\\",e)})();/*! `php-template` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var n=(()=>{\\\"use strict\\\";return n=>({name:\\\"PHP template\\\",\\nsubLanguage:\\\"xml\\\",contains:[{begin:/\u003C\\\\?(php|=)?/,end:/\\\\?>/,subLanguage:\\\"php\\\",\\ncontains:[{begin:\\\"/\\\\\\\\*\\\",end:\\\"\\\\\\\\*/\\\",skip:!0},{begin:'b\\\"',end:'\\\"',skip:!0},{\\nbegin:\\\"b'\\\",end:\\\"'\\\",skip:!0},n.inherit(n.APOS_STRING_MODE,{illegal:null,\\nclassName:null,contains:null,skip:!0}),n.inherit(n.QUOTE_STRING_MODE,{\\nillegal:null,className:null,contains:null,skip:!0})]}]})})()\\n;hljs.registerLanguage(\\\"php-template\\\",n)})();/*! `sql` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{\\nconst r=e.regex,t=e.COMMENT(\\\"--\\\",\\\"$\\\"),n=[\\\"true\\\",\\\"false\\\",\\\"unknown\\\"],a=[\\\"bigint\\\",\\\"binary\\\",\\\"blob\\\",\\\"boolean\\\",\\\"char\\\",\\\"character\\\",\\\"clob\\\",\\\"date\\\",\\\"dec\\\",\\\"decfloat\\\",\\\"decimal\\\",\\\"float\\\",\\\"int\\\",\\\"integer\\\",\\\"interval\\\",\\\"nchar\\\",\\\"nclob\\\",\\\"national\\\",\\\"numeric\\\",\\\"real\\\",\\\"row\\\",\\\"smallint\\\",\\\"time\\\",\\\"timestamp\\\",\\\"varchar\\\",\\\"varying\\\",\\\"varbinary\\\"],i=[\\\"abs\\\",\\\"acos\\\",\\\"array_agg\\\",\\\"asin\\\",\\\"atan\\\",\\\"avg\\\",\\\"cast\\\",\\\"ceil\\\",\\\"ceiling\\\",\\\"coalesce\\\",\\\"corr\\\",\\\"cos\\\",\\\"cosh\\\",\\\"count\\\",\\\"covar_pop\\\",\\\"covar_samp\\\",\\\"cume_dist\\\",\\\"dense_rank\\\",\\\"deref\\\",\\\"element\\\",\\\"exp\\\",\\\"extract\\\",\\\"first_value\\\",\\\"floor\\\",\\\"json_array\\\",\\\"json_arrayagg\\\",\\\"json_exists\\\",\\\"json_object\\\",\\\"json_objectagg\\\",\\\"json_query\\\",\\\"json_table\\\",\\\"json_table_primitive\\\",\\\"json_value\\\",\\\"lag\\\",\\\"last_value\\\",\\\"lead\\\",\\\"listagg\\\",\\\"ln\\\",\\\"log\\\",\\\"log10\\\",\\\"lower\\\",\\\"max\\\",\\\"min\\\",\\\"mod\\\",\\\"nth_value\\\",\\\"ntile\\\",\\\"nullif\\\",\\\"percent_rank\\\",\\\"percentile_cont\\\",\\\"percentile_disc\\\",\\\"position\\\",\\\"position_regex\\\",\\\"power\\\",\\\"rank\\\",\\\"regr_avgx\\\",\\\"regr_avgy\\\",\\\"regr_count\\\",\\\"regr_intercept\\\",\\\"regr_r2\\\",\\\"regr_slope\\\",\\\"regr_sxx\\\",\\\"regr_sxy\\\",\\\"regr_syy\\\",\\\"row_number\\\",\\\"sin\\\",\\\"sinh\\\",\\\"sqrt\\\",\\\"stddev_pop\\\",\\\"stddev_samp\\\",\\\"substring\\\",\\\"substring_regex\\\",\\\"sum\\\",\\\"tan\\\",\\\"tanh\\\",\\\"translate\\\",\\\"translate_regex\\\",\\\"treat\\\",\\\"trim\\\",\\\"trim_array\\\",\\\"unnest\\\",\\\"upper\\\",\\\"value_of\\\",\\\"var_pop\\\",\\\"var_samp\\\",\\\"width_bucket\\\"],s=[\\\"create table\\\",\\\"insert into\\\",\\\"primary key\\\",\\\"foreign key\\\",\\\"not null\\\",\\\"alter table\\\",\\\"add constraint\\\",\\\"grouping sets\\\",\\\"on overflow\\\",\\\"character set\\\",\\\"respect nulls\\\",\\\"ignore nulls\\\",\\\"nulls first\\\",\\\"nulls last\\\",\\\"depth first\\\",\\\"breadth first\\\"],o=i,c=[\\\"abs\\\",\\\"acos\\\",\\\"all\\\",\\\"allocate\\\",\\\"alter\\\",\\\"and\\\",\\\"any\\\",\\\"are\\\",\\\"array\\\",\\\"array_agg\\\",\\\"array_max_cardinality\\\",\\\"as\\\",\\\"asensitive\\\",\\\"asin\\\",\\\"asymmetric\\\",\\\"at\\\",\\\"atan\\\",\\\"atomic\\\",\\\"authorization\\\",\\\"avg\\\",\\\"begin\\\",\\\"begin_frame\\\",\\\"begin_partition\\\",\\\"between\\\",\\\"bigint\\\",\\\"binary\\\",\\\"blob\\\",\\\"boolean\\\",\\\"both\\\",\\\"by\\\",\\\"call\\\",\\\"called\\\",\\\"cardinality\\\",\\\"cascaded\\\",\\\"case\\\",\\\"cast\\\",\\\"ceil\\\",\\\"ceiling\\\",\\\"char\\\",\\\"char_length\\\",\\\"character\\\",\\\"character_length\\\",\\\"check\\\",\\\"classifier\\\",\\\"clob\\\",\\\"close\\\",\\\"coalesce\\\",\\\"collate\\\",\\\"collect\\\",\\\"column\\\",\\\"commit\\\",\\\"condition\\\",\\\"connect\\\",\\\"constraint\\\",\\\"contains\\\",\\\"convert\\\",\\\"copy\\\",\\\"corr\\\",\\\"corresponding\\\",\\\"cos\\\",\\\"cosh\\\",\\\"count\\\",\\\"covar_pop\\\",\\\"covar_samp\\\",\\\"create\\\",\\\"cross\\\",\\\"cube\\\",\\\"cume_dist\\\",\\\"current\\\",\\\"current_catalog\\\",\\\"current_date\\\",\\\"current_default_transform_group\\\",\\\"current_path\\\",\\\"current_role\\\",\\\"current_row\\\",\\\"current_schema\\\",\\\"current_time\\\",\\\"current_timestamp\\\",\\\"current_path\\\",\\\"current_role\\\",\\\"current_transform_group_for_type\\\",\\\"current_user\\\",\\\"cursor\\\",\\\"cycle\\\",\\\"date\\\",\\\"day\\\",\\\"deallocate\\\",\\\"dec\\\",\\\"decimal\\\",\\\"decfloat\\\",\\\"declare\\\",\\\"default\\\",\\\"define\\\",\\\"delete\\\",\\\"dense_rank\\\",\\\"deref\\\",\\\"describe\\\",\\\"deterministic\\\",\\\"disconnect\\\",\\\"distinct\\\",\\\"double\\\",\\\"drop\\\",\\\"dynamic\\\",\\\"each\\\",\\\"element\\\",\\\"else\\\",\\\"empty\\\",\\\"end\\\",\\\"end_frame\\\",\\\"end_partition\\\",\\\"end-exec\\\",\\\"equals\\\",\\\"escape\\\",\\\"every\\\",\\\"except\\\",\\\"exec\\\",\\\"execute\\\",\\\"exists\\\",\\\"exp\\\",\\\"external\\\",\\\"extract\\\",\\\"false\\\",\\\"fetch\\\",\\\"filter\\\",\\\"first_value\\\",\\\"float\\\",\\\"floor\\\",\\\"for\\\",\\\"foreign\\\",\\\"frame_row\\\",\\\"free\\\",\\\"from\\\",\\\"full\\\",\\\"function\\\",\\\"fusion\\\",\\\"get\\\",\\\"global\\\",\\\"grant\\\",\\\"group\\\",\\\"grouping\\\",\\\"groups\\\",\\\"having\\\",\\\"hold\\\",\\\"hour\\\",\\\"identity\\\",\\\"in\\\",\\\"indicator\\\",\\\"initial\\\",\\\"inner\\\",\\\"inout\\\",\\\"insensitive\\\",\\\"insert\\\",\\\"int\\\",\\\"integer\\\",\\\"intersect\\\",\\\"intersection\\\",\\\"interval\\\",\\\"into\\\",\\\"is\\\",\\\"join\\\",\\\"json_array\\\",\\\"json_arrayagg\\\",\\\"json_exists\\\",\\\"json_object\\\",\\\"json_objectagg\\\",\\\"json_query\\\",\\\"json_table\\\",\\\"json_table_primitive\\\",\\\"json_value\\\",\\\"lag\\\",\\\"language\\\",\\\"large\\\",\\\"last_value\\\",\\\"lateral\\\",\\\"lead\\\",\\\"leading\\\",\\\"left\\\",\\\"like\\\",\\\"like_regex\\\",\\\"listagg\\\",\\\"ln\\\",\\\"local\\\",\\\"localtime\\\",\\\"localtimestamp\\\",\\\"log\\\",\\\"log10\\\",\\\"lower\\\",\\\"match\\\",\\\"match_number\\\",\\\"match_recognize\\\",\\\"matches\\\",\\\"max\\\",\\\"member\\\",\\\"merge\\\",\\\"method\\\",\\\"min\\\",\\\"minute\\\",\\\"mod\\\",\\\"modifies\\\",\\\"module\\\",\\\"month\\\",\\\"multiset\\\",\\\"national\\\",\\\"natural\\\",\\\"nchar\\\",\\\"nclob\\\",\\\"new\\\",\\\"no\\\",\\\"none\\\",\\\"normalize\\\",\\\"not\\\",\\\"nth_value\\\",\\\"ntile\\\",\\\"null\\\",\\\"nullif\\\",\\\"numeric\\\",\\\"octet_length\\\",\\\"occurrences_regex\\\",\\\"of\\\",\\\"offset\\\",\\\"old\\\",\\\"omit\\\",\\\"on\\\",\\\"one\\\",\\\"only\\\",\\\"open\\\",\\\"or\\\",\\\"order\\\",\\\"out\\\",\\\"outer\\\",\\\"over\\\",\\\"overlaps\\\",\\\"overlay\\\",\\\"parameter\\\",\\\"partition\\\",\\\"pattern\\\",\\\"per\\\",\\\"percent\\\",\\\"percent_rank\\\",\\\"percentile_cont\\\",\\\"percentile_disc\\\",\\\"period\\\",\\\"portion\\\",\\\"position\\\",\\\"position_regex\\\",\\\"power\\\",\\\"precedes\\\",\\\"precision\\\",\\\"prepare\\\",\\\"primary\\\",\\\"procedure\\\",\\\"ptf\\\",\\\"range\\\",\\\"rank\\\",\\\"reads\\\",\\\"real\\\",\\\"recursive\\\",\\\"ref\\\",\\\"references\\\",\\\"referencing\\\",\\\"regr_avgx\\\",\\\"regr_avgy\\\",\\\"regr_count\\\",\\\"regr_intercept\\\",\\\"regr_r2\\\",\\\"regr_slope\\\",\\\"regr_sxx\\\",\\\"regr_sxy\\\",\\\"regr_syy\\\",\\\"release\\\",\\\"result\\\",\\\"return\\\",\\\"returns\\\",\\\"revoke\\\",\\\"right\\\",\\\"rollback\\\",\\\"rollup\\\",\\\"row\\\",\\\"row_number\\\",\\\"rows\\\",\\\"running\\\",\\\"savepoint\\\",\\\"scope\\\",\\\"scroll\\\",\\\"search\\\",\\\"second\\\",\\\"seek\\\",\\\"select\\\",\\\"sensitive\\\",\\\"session_user\\\",\\\"set\\\",\\\"show\\\",\\\"similar\\\",\\\"sin\\\",\\\"sinh\\\",\\\"skip\\\",\\\"smallint\\\",\\\"some\\\",\\\"specific\\\",\\\"specifictype\\\",\\\"sql\\\",\\\"sqlexception\\\",\\\"sqlstate\\\",\\\"sqlwarning\\\",\\\"sqrt\\\",\\\"start\\\",\\\"static\\\",\\\"stddev_pop\\\",\\\"stddev_samp\\\",\\\"submultiset\\\",\\\"subset\\\",\\\"substring\\\",\\\"substring_regex\\\",\\\"succeeds\\\",\\\"sum\\\",\\\"symmetric\\\",\\\"system\\\",\\\"system_time\\\",\\\"system_user\\\",\\\"table\\\",\\\"tablesample\\\",\\\"tan\\\",\\\"tanh\\\",\\\"then\\\",\\\"time\\\",\\\"timestamp\\\",\\\"timezone_hour\\\",\\\"timezone_minute\\\",\\\"to\\\",\\\"trailing\\\",\\\"translate\\\",\\\"translate_regex\\\",\\\"translation\\\",\\\"treat\\\",\\\"trigger\\\",\\\"trim\\\",\\\"trim_array\\\",\\\"true\\\",\\\"truncate\\\",\\\"uescape\\\",\\\"union\\\",\\\"unique\\\",\\\"unknown\\\",\\\"unnest\\\",\\\"update\\\",\\\"upper\\\",\\\"user\\\",\\\"using\\\",\\\"value\\\",\\\"values\\\",\\\"value_of\\\",\\\"var_pop\\\",\\\"var_samp\\\",\\\"varbinary\\\",\\\"varchar\\\",\\\"varying\\\",\\\"versioning\\\",\\\"when\\\",\\\"whenever\\\",\\\"where\\\",\\\"width_bucket\\\",\\\"window\\\",\\\"with\\\",\\\"within\\\",\\\"without\\\",\\\"year\\\",\\\"add\\\",\\\"asc\\\",\\\"collation\\\",\\\"desc\\\",\\\"final\\\",\\\"first\\\",\\\"last\\\",\\\"view\\\"].filter((e=>!i.includes(e))),l={\\nbegin:r.concat(/\\\\b/,r.either(...o),/\\\\s*\\\\(/),relevance:0,keywords:{built_in:o}}\\n;return{name:\\\"SQL\\\",case_insensitive:!0,illegal:/[{}]|\u003C\\\\//,keywords:{\\n$pattern:/\\\\b[\\\\w\\\\.]+/,keyword:((e,{exceptions:r,when:t}={})=>{const n=t\\n;return r=r||[],e.map((e=>e.match(/\\\\|\\\\d+$/)||r.includes(e)?e:n(e)?e+\\\"|0\\\":e))\\n})(c,{when:e=>e.length\u003C3}),literal:n,type:a,\\nbuilt_in:[\\\"current_catalog\\\",\\\"current_date\\\",\\\"current_default_transform_group\\\",\\\"current_path\\\",\\\"current_role\\\",\\\"current_schema\\\",\\\"current_transform_group_for_type\\\",\\\"current_user\\\",\\\"session_user\\\",\\\"system_time\\\",\\\"system_user\\\",\\\"current_time\\\",\\\"localtime\\\",\\\"current_timestamp\\\",\\\"localtimestamp\\\"]\\n},contains:[{begin:r.either(...s),relevance:0,keywords:{$pattern:/[\\\\w\\\\.]+/,\\nkeyword:c.concat(s),literal:n,type:a}},{className:\\\"type\\\",\\nbegin:r.either(\\\"double precision\\\",\\\"large object\\\",\\\"with timezone\\\",\\\"without timezone\\\")\\n},l,{className:\\\"variable\\\",begin:/@[a-z0-9]+/},{className:\\\"string\\\",variants:[{\\nbegin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/\\\"/,end:/\\\"/,contains:[{\\nbegin:/\\\"\\\"/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:\\\"operator\\\",\\nbegin:/[-+*/=%^~]|&&?|\\\\|\\\\|?|!=?|\u003C(?:=>?|\u003C|>)?|>[>=]?/,relevance:0}]}}})()\\n;hljs.registerLanguage(\\\"sql\\\",e)})();/*! `objectivec` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={\\n$pattern:n,keyword:[\\\"@interface\\\",\\\"@class\\\",\\\"@protocol\\\",\\\"@implementation\\\"]}\\n;return{name:\\\"Objective-C\\\",\\naliases:[\\\"mm\\\",\\\"objc\\\",\\\"obj-c\\\",\\\"obj-c++\\\",\\\"objective-c++\\\"],keywords:{$pattern:n,\\nkeyword:[\\\"int\\\",\\\"float\\\",\\\"while\\\",\\\"char\\\",\\\"export\\\",\\\"sizeof\\\",\\\"typedef\\\",\\\"const\\\",\\\"struct\\\",\\\"for\\\",\\\"union\\\",\\\"unsigned\\\",\\\"long\\\",\\\"volatile\\\",\\\"static\\\",\\\"bool\\\",\\\"mutable\\\",\\\"if\\\",\\\"do\\\",\\\"return\\\",\\\"goto\\\",\\\"void\\\",\\\"enum\\\",\\\"else\\\",\\\"break\\\",\\\"extern\\\",\\\"asm\\\",\\\"case\\\",\\\"short\\\",\\\"default\\\",\\\"double\\\",\\\"register\\\",\\\"explicit\\\",\\\"signed\\\",\\\"typename\\\",\\\"this\\\",\\\"switch\\\",\\\"continue\\\",\\\"wchar_t\\\",\\\"inline\\\",\\\"readonly\\\",\\\"assign\\\",\\\"readwrite\\\",\\\"self\\\",\\\"@synchronized\\\",\\\"id\\\",\\\"typeof\\\",\\\"nonatomic\\\",\\\"super\\\",\\\"unichar\\\",\\\"IBOutlet\\\",\\\"IBAction\\\",\\\"strong\\\",\\\"weak\\\",\\\"copy\\\",\\\"in\\\",\\\"out\\\",\\\"inout\\\",\\\"bycopy\\\",\\\"byref\\\",\\\"oneway\\\",\\\"__strong\\\",\\\"__weak\\\",\\\"__block\\\",\\\"__autoreleasing\\\",\\\"@private\\\",\\\"@protected\\\",\\\"@public\\\",\\\"@try\\\",\\\"@property\\\",\\\"@end\\\",\\\"@throw\\\",\\\"@catch\\\",\\\"@finally\\\",\\\"@autoreleasepool\\\",\\\"@synthesize\\\",\\\"@dynamic\\\",\\\"@selector\\\",\\\"@optional\\\",\\\"@required\\\",\\\"@encode\\\",\\\"@package\\\",\\\"@import\\\",\\\"@defs\\\",\\\"@compatibility_alias\\\",\\\"__bridge\\\",\\\"__bridge_transfer\\\",\\\"__bridge_retained\\\",\\\"__bridge_retain\\\",\\\"__covariant\\\",\\\"__contravariant\\\",\\\"__kindof\\\",\\\"_Nonnull\\\",\\\"_Nullable\\\",\\\"_Null_unspecified\\\",\\\"__FUNCTION__\\\",\\\"__PRETTY_FUNCTION__\\\",\\\"__attribute__\\\",\\\"getter\\\",\\\"setter\\\",\\\"retain\\\",\\\"unsafe_unretained\\\",\\\"nonnull\\\",\\\"nullable\\\",\\\"null_unspecified\\\",\\\"null_resettable\\\",\\\"class\\\",\\\"instancetype\\\",\\\"NS_DESIGNATED_INITIALIZER\\\",\\\"NS_UNAVAILABLE\\\",\\\"NS_REQUIRES_SUPER\\\",\\\"NS_RETURNS_INNER_POINTER\\\",\\\"NS_INLINE\\\",\\\"NS_AVAILABLE\\\",\\\"NS_DEPRECATED\\\",\\\"NS_ENUM\\\",\\\"NS_OPTIONS\\\",\\\"NS_SWIFT_UNAVAILABLE\\\",\\\"NS_ASSUME_NONNULL_BEGIN\\\",\\\"NS_ASSUME_NONNULL_END\\\",\\\"NS_REFINED_FOR_SWIFT\\\",\\\"NS_SWIFT_NAME\\\",\\\"NS_SWIFT_NOTHROW\\\",\\\"NS_DURING\\\",\\\"NS_HANDLER\\\",\\\"NS_ENDHANDLER\\\",\\\"NS_VALUERETURN\\\",\\\"NS_VOIDRETURN\\\"],\\nliteral:[\\\"false\\\",\\\"true\\\",\\\"FALSE\\\",\\\"TRUE\\\",\\\"nil\\\",\\\"YES\\\",\\\"NO\\\",\\\"NULL\\\"],\\nbuilt_in:[\\\"BOOL\\\",\\\"dispatch_once_t\\\",\\\"dispatch_queue_t\\\",\\\"dispatch_sync\\\",\\\"dispatch_async\\\",\\\"dispatch_once\\\"]\\n},illegal:\\\"\u003C/\\\",contains:[{className:\\\"built_in\\\",\\nbegin:\\\"\\\\\\\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\\\\\\\w+\\\"\\n},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{\\nclassName:\\\"string\\\",variants:[{begin:'@\\\"',end:'\\\"',illegal:\\\"\\\\\\\\n\\\",\\ncontains:[e.BACKSLASH_ESCAPE]}]},{className:\\\"meta\\\",begin:/#\\\\s*[a-z]+\\\\b/,end:/$/,\\nkeywords:{\\nkeyword:\\\"if else elif endif define undef warning error line pragma ifdef ifndef include\\\"\\n},contains:[{begin:/\\\\\\\\\\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{\\nclassName:\\\"string\\\"}),{className:\\\"string\\\",begin:/\u003C.*?>/,end:/$/,illegal:\\\"\\\\\\\\n\\\"\\n},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:\\\"class\\\",\\nbegin:\\\"(\\\"+_.keyword.join(\\\"|\\\")+\\\")\\\\\\\\b\\\",end:/(\\\\{|$)/,excludeEnd:!0,keywords:_,\\ncontains:[e.UNDERSCORE_TITLE_MODE]},{begin:\\\"\\\\\\\\.\\\"+e.UNDERSCORE_IDENT_RE,\\nrelevance:0}]}}})();hljs.registerLanguage(\\\"objectivec\\\",e)})();/*! `cpp` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const t=e.regex,a=e.COMMENT(\\\"//\\\",\\\"$\\\",{\\ncontains:[{begin:/\\\\\\\\\\\\n/}]\\n}),n=\\\"[a-zA-Z_]\\\\\\\\w*::\\\",r=\\\"(?!struct)(decltype\\\\\\\\(auto\\\\\\\\)|\\\"+t.optional(n)+\\\"[a-zA-Z_]\\\\\\\\w*\\\"+t.optional(\\\"\u003C[^\u003C>]+>\\\")+\\\")\\\",i={\\nclassName:\\\"type\\\",begin:\\\"\\\\\\\\b[a-z\\\\\\\\d_]*_t\\\\\\\\b\\\"},s={className:\\\"string\\\",variants:[{\\nbegin:'(u8?|U|L)?\\\"',end:'\\\"',illegal:\\\"\\\\\\\\n\\\",contains:[e.BACKSLASH_ESCAPE]},{\\nbegin:\\\"(u8?|U|L)?'(\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\\\\\S)|.)\\\",\\nend:\\\"'\\\",illegal:\\\".\\\"},e.END_SAME_AS_BEGIN({\\nbegin:/(?:u8?|U|L)?R\\\"([^()\\\\\\\\ ]{0,16})\\\\(/,end:/\\\\)([^()\\\\\\\\ ]{0,16})\\\"/})]},c={\\nclassName:\\\"number\\\",variants:[{begin:\\\"\\\\\\\\b(0b[01']+)\\\"},{\\nbegin:\\\"(-?)\\\\\\\\b([\\\\\\\\d']+(\\\\\\\\.[\\\\\\\\d']*)?|\\\\\\\\.[\\\\\\\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)\\\"\\n},{\\nbegin:\\\"(-?)(\\\\\\\\b0[xX][a-fA-F0-9']+|(\\\\\\\\b[\\\\\\\\d']+(\\\\\\\\.[\\\\\\\\d']*)?|\\\\\\\\.[\\\\\\\\d']+)([eE][-+]?[\\\\\\\\d']+)?)\\\"\\n}],relevance:0},o={className:\\\"meta\\\",begin:/#\\\\s*[a-z]+\\\\b/,end:/$/,keywords:{\\nkeyword:\\\"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include\\\"\\n},contains:[{begin:/\\\\\\\\\\\\n/,relevance:0},e.inherit(s,{className:\\\"string\\\"}),{\\nclassName:\\\"string\\\",begin:/\u003C.*?>/},a,e.C_BLOCK_COMMENT_MODE]},l={\\nclassName:\\\"title\\\",begin:t.optional(n)+e.IDENT_RE,relevance:0\\n},d=t.optional(n)+e.IDENT_RE+\\\"\\\\\\\\s*\\\\\\\\(\\\",u={\\ntype:[\\\"bool\\\",\\\"char\\\",\\\"char16_t\\\",\\\"char32_t\\\",\\\"char8_t\\\",\\\"double\\\",\\\"float\\\",\\\"int\\\",\\\"long\\\",\\\"short\\\",\\\"void\\\",\\\"wchar_t\\\",\\\"unsigned\\\",\\\"signed\\\",\\\"const\\\",\\\"static\\\"],\\nkeyword:[\\\"alignas\\\",\\\"alignof\\\",\\\"and\\\",\\\"and_eq\\\",\\\"asm\\\",\\\"atomic_cancel\\\",\\\"atomic_commit\\\",\\\"atomic_noexcept\\\",\\\"auto\\\",\\\"bitand\\\",\\\"bitor\\\",\\\"break\\\",\\\"case\\\",\\\"catch\\\",\\\"class\\\",\\\"co_await\\\",\\\"co_return\\\",\\\"co_yield\\\",\\\"compl\\\",\\\"concept\\\",\\\"const_cast|10\\\",\\\"consteval\\\",\\\"constexpr\\\",\\\"constinit\\\",\\\"continue\\\",\\\"decltype\\\",\\\"default\\\",\\\"delete\\\",\\\"do\\\",\\\"dynamic_cast|10\\\",\\\"else\\\",\\\"enum\\\",\\\"explicit\\\",\\\"export\\\",\\\"extern\\\",\\\"false\\\",\\\"final\\\",\\\"for\\\",\\\"friend\\\",\\\"goto\\\",\\\"if\\\",\\\"import\\\",\\\"inline\\\",\\\"module\\\",\\\"mutable\\\",\\\"namespace\\\",\\\"new\\\",\\\"noexcept\\\",\\\"not\\\",\\\"not_eq\\\",\\\"nullptr\\\",\\\"operator\\\",\\\"or\\\",\\\"or_eq\\\",\\\"override\\\",\\\"private\\\",\\\"protected\\\",\\\"public\\\",\\\"reflexpr\\\",\\\"register\\\",\\\"reinterpret_cast|10\\\",\\\"requires\\\",\\\"return\\\",\\\"sizeof\\\",\\\"static_assert\\\",\\\"static_cast|10\\\",\\\"struct\\\",\\\"switch\\\",\\\"synchronized\\\",\\\"template\\\",\\\"this\\\",\\\"thread_local\\\",\\\"throw\\\",\\\"transaction_safe\\\",\\\"transaction_safe_dynamic\\\",\\\"true\\\",\\\"try\\\",\\\"typedef\\\",\\\"typeid\\\",\\\"typename\\\",\\\"union\\\",\\\"using\\\",\\\"virtual\\\",\\\"volatile\\\",\\\"while\\\",\\\"xor\\\",\\\"xor_eq\\\"],\\nliteral:[\\\"NULL\\\",\\\"false\\\",\\\"nullopt\\\",\\\"nullptr\\\",\\\"true\\\"],built_in:[\\\"_Pragma\\\"],\\n_type_hints:[\\\"any\\\",\\\"auto_ptr\\\",\\\"barrier\\\",\\\"binary_semaphore\\\",\\\"bitset\\\",\\\"complex\\\",\\\"condition_variable\\\",\\\"condition_variable_any\\\",\\\"counting_semaphore\\\",\\\"deque\\\",\\\"false_type\\\",\\\"future\\\",\\\"imaginary\\\",\\\"initializer_list\\\",\\\"istringstream\\\",\\\"jthread\\\",\\\"latch\\\",\\\"lock_guard\\\",\\\"multimap\\\",\\\"multiset\\\",\\\"mutex\\\",\\\"optional\\\",\\\"ostringstream\\\",\\\"packaged_task\\\",\\\"pair\\\",\\\"promise\\\",\\\"priority_queue\\\",\\\"queue\\\",\\\"recursive_mutex\\\",\\\"recursive_timed_mutex\\\",\\\"scoped_lock\\\",\\\"set\\\",\\\"shared_future\\\",\\\"shared_lock\\\",\\\"shared_mutex\\\",\\\"shared_timed_mutex\\\",\\\"shared_ptr\\\",\\\"stack\\\",\\\"string_view\\\",\\\"stringstream\\\",\\\"timed_mutex\\\",\\\"thread\\\",\\\"true_type\\\",\\\"tuple\\\",\\\"unique_lock\\\",\\\"unique_ptr\\\",\\\"unordered_map\\\",\\\"unordered_multimap\\\",\\\"unordered_multiset\\\",\\\"unordered_set\\\",\\\"variant\\\",\\\"vector\\\",\\\"weak_ptr\\\",\\\"wstring\\\",\\\"wstring_view\\\"]\\n},p={className:\\\"function.dispatch\\\",relevance:0,keywords:{\\n_hint:[\\\"abort\\\",\\\"abs\\\",\\\"acos\\\",\\\"apply\\\",\\\"as_const\\\",\\\"asin\\\",\\\"atan\\\",\\\"atan2\\\",\\\"calloc\\\",\\\"ceil\\\",\\\"cerr\\\",\\\"cin\\\",\\\"clog\\\",\\\"cos\\\",\\\"cosh\\\",\\\"cout\\\",\\\"declval\\\",\\\"endl\\\",\\\"exchange\\\",\\\"exit\\\",\\\"exp\\\",\\\"fabs\\\",\\\"floor\\\",\\\"fmod\\\",\\\"forward\\\",\\\"fprintf\\\",\\\"fputs\\\",\\\"free\\\",\\\"frexp\\\",\\\"fscanf\\\",\\\"future\\\",\\\"invoke\\\",\\\"isalnum\\\",\\\"isalpha\\\",\\\"iscntrl\\\",\\\"isdigit\\\",\\\"isgraph\\\",\\\"islower\\\",\\\"isprint\\\",\\\"ispunct\\\",\\\"isspace\\\",\\\"isupper\\\",\\\"isxdigit\\\",\\\"labs\\\",\\\"launder\\\",\\\"ldexp\\\",\\\"log\\\",\\\"log10\\\",\\\"make_pair\\\",\\\"make_shared\\\",\\\"make_shared_for_overwrite\\\",\\\"make_tuple\\\",\\\"make_unique\\\",\\\"malloc\\\",\\\"memchr\\\",\\\"memcmp\\\",\\\"memcpy\\\",\\\"memset\\\",\\\"modf\\\",\\\"move\\\",\\\"pow\\\",\\\"printf\\\",\\\"putchar\\\",\\\"puts\\\",\\\"realloc\\\",\\\"scanf\\\",\\\"sin\\\",\\\"sinh\\\",\\\"snprintf\\\",\\\"sprintf\\\",\\\"sqrt\\\",\\\"sscanf\\\",\\\"std\\\",\\\"stderr\\\",\\\"stdin\\\",\\\"stdout\\\",\\\"strcat\\\",\\\"strchr\\\",\\\"strcmp\\\",\\\"strcpy\\\",\\\"strcspn\\\",\\\"strlen\\\",\\\"strncat\\\",\\\"strncmp\\\",\\\"strncpy\\\",\\\"strpbrk\\\",\\\"strrchr\\\",\\\"strspn\\\",\\\"strstr\\\",\\\"swap\\\",\\\"tan\\\",\\\"tanh\\\",\\\"terminate\\\",\\\"to_underlying\\\",\\\"tolower\\\",\\\"toupper\\\",\\\"vfprintf\\\",\\\"visit\\\",\\\"vprintf\\\",\\\"vsprintf\\\"]\\n},\\nbegin:t.concat(/\\\\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(\u003C[^\u003C>]+>|)\\\\s*\\\\(/))\\n},_=[p,o,i,a,e.C_BLOCK_COMMENT_MODE,c,s],m={variants:[{begin:/=/,end:/;/},{\\nbegin:/\\\\(/,end:/\\\\)/},{beginKeywords:\\\"new throw return else\\\",end:/;/}],\\nkeywords:u,contains:_.concat([{begin:/\\\\(/,end:/\\\\)/,keywords:u,\\ncontains:_.concat([\\\"self\\\"]),relevance:0}]),relevance:0},g={className:\\\"function\\\",\\nbegin:\\\"(\\\"+r+\\\"[\\\\\\\\*&\\\\\\\\s]+)+\\\"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,\\nkeywords:u,illegal:/[^\\\\w\\\\s\\\\*&:\u003C>.]/,contains:[{begin:\\\"decltype\\\\\\\\(auto\\\\\\\\)\\\",\\nkeywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[l],relevance:0},{\\nbegin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,c]},{\\nrelevance:0,match:/,/},{className:\\\"params\\\",begin:/\\\\(/,end:/\\\\)/,keywords:u,\\nrelevance:0,contains:[a,e.C_BLOCK_COMMENT_MODE,s,c,i,{begin:/\\\\(/,end:/\\\\)/,\\nkeywords:u,relevance:0,contains:[\\\"self\\\",a,e.C_BLOCK_COMMENT_MODE,s,c,i]}]\\n},i,a,e.C_BLOCK_COMMENT_MODE,o]};return{name:\\\"C++\\\",\\naliases:[\\\"cc\\\",\\\"c++\\\",\\\"h++\\\",\\\"hpp\\\",\\\"hh\\\",\\\"hxx\\\",\\\"cxx\\\"],keywords:u,illegal:\\\"\u003C/\\\",\\nclassNameAliases:{\\\"function.dispatch\\\":\\\"built_in\\\"},\\ncontains:[].concat(m,g,p,_,[o,{\\nbegin:\\\"\\\\\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\\\\\\\s*\u003C(?!\u003C)\\\",\\nend:\\\">\\\",keywords:u,contains:[\\\"self\\\",i]},{begin:e.IDENT_RE+\\\"::\\\",keywords:u},{\\nmatch:[/\\\\b(?:enum(?:\\\\s+(?:class|struct))?|class|struct|union)/,/\\\\s+/,/\\\\w+/],\\nclassName:{1:\\\"keyword\\\",3:\\\"title.class\\\"}}])}}})();hljs.registerLanguage(\\\"cpp\\\",e)\\n})();/*! `apache` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const n={className:\\\"number\\\",\\nbegin:/\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}(:\\\\d{1,5})?/};return{\\nname:\\\"Apache config\\\",aliases:[\\\"apacheconf\\\"],case_insensitive:!0,\\ncontains:[e.HASH_COMMENT_MODE,{className:\\\"section\\\",begin:/\u003C\\\\/?/,end:/>/,\\ncontains:[n,{className:\\\"number\\\",begin:/:\\\\d{1,5}/\\n},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:\\\"attribute\\\",\\nbegin:/\\\\w+/,relevance:0,keywords:{\\n_:[\\\"order\\\",\\\"deny\\\",\\\"allow\\\",\\\"setenv\\\",\\\"rewriterule\\\",\\\"rewriteengine\\\",\\\"rewritecond\\\",\\\"documentroot\\\",\\\"sethandler\\\",\\\"errordocument\\\",\\\"loadmodule\\\",\\\"options\\\",\\\"header\\\",\\\"listen\\\",\\\"serverroot\\\",\\\"servername\\\"]\\n},starts:{end:/$/,relevance:0,keywords:{literal:\\\"on off all deny allow\\\"},\\ncontains:[{className:\\\"meta\\\",begin:/\\\\s\\\\[/,end:/\\\\]$/},{className:\\\"variable\\\",\\nbegin:/[\\\\$%]\\\\{/,end:/\\\\}/,contains:[\\\"self\\\",{className:\\\"number\\\",begin:/[$%]\\\\d+/}]\\n},n,{className:\\\"number\\\",begin:/\\\\b\\\\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\\\\S/}}\\n})();hljs.registerLanguage(\\\"apache\\\",e)})();/*! `plaintext` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var t=(()=>{\\\"use strict\\\";return t=>({name:\\\"Plain text\\\",\\naliases:[\\\"text\\\",\\\"txt\\\"],disableAutodetect:!0})})()\\n;hljs.registerLanguage(\\\"plaintext\\\",t)})();/*! `shell` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var s=(()=>{\\\"use strict\\\";return s=>({name:\\\"Shell Session\\\",\\naliases:[\\\"console\\\",\\\"shellsession\\\"],contains:[{className:\\\"meta\\\",\\nbegin:/^\\\\s{0,3}[/~\\\\w\\\\d[\\\\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\\\\\\\](?=\\\\s*$)/,\\nsubLanguage:\\\"bash\\\"}}]})})();hljs.registerLanguage(\\\"shell\\\",s)})();/*! `r` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{\\nconst a=e.regex,n=/(?:(?:[a-zA-Z]|\\\\.[._a-zA-Z])[._a-zA-Z0-9]*)|\\\\.(?!\\\\d)/,i=a.either(/0[xX][0-9a-fA-F]+\\\\.[0-9a-fA-F]*[pP][+-]?\\\\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\\\\d+)?[Li]?/,/(?:\\\\d+(?:\\\\.\\\\d*)?|\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?[Li]?/),s=/[=!\u003C>:]=|\\\\|\\\\||&&|:::?|\u003C-|\u003C\u003C-|->>|->|\\\\|>|[-+*\\\\/?!$&|:\u003C=>@^~]|\\\\*\\\\*/,t=a.either(/[()]/,/[{}]/,/\\\\[\\\\[/,/[[\\\\]]/,/\\\\\\\\/,/,/)\\n;return{name:\\\"R\\\",keywords:{$pattern:n,\\nkeyword:\\\"function if in break next repeat else for while\\\",\\nliteral:\\\"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10\\\",\\nbuilt_in:\\\"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm\\\"\\n},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:\\\"doctag\\\",match:/@examples/,\\nstarts:{end:a.lookahead(a.either(/\\\\n^#'\\\\s*(?=@[a-zA-Z]+)/,/\\\\n^(?!#')/)),\\nendsParent:!0}},{scope:\\\"doctag\\\",begin:\\\"@param\\\",end:/$/,contains:[{\\nscope:\\\"variable\\\",variants:[{match:n},{match:/`(?:\\\\\\\\.|[^`\\\\\\\\])+`/}],endsParent:!0\\n}]},{scope:\\\"doctag\\\",match:/@[a-zA-Z]+/},{scope:\\\"keyword\\\",match:/\\\\\\\\[a-zA-Z]+/}]\\n}),e.HASH_COMMENT_MODE,{scope:\\\"string\\\",contains:[e.BACKSLASH_ESCAPE],\\nvariants:[e.END_SAME_AS_BEGIN({begin:/[rR]\\\"(-*)\\\\(/,end:/\\\\)(-*)\\\"/\\n}),e.END_SAME_AS_BEGIN({begin:/[rR]\\\"(-*)\\\\{/,end:/\\\\}(-*)\\\"/\\n}),e.END_SAME_AS_BEGIN({begin:/[rR]\\\"(-*)\\\\[/,end:/\\\\](-*)\\\"/\\n}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\\\\(/,end:/\\\\)(-*)'/\\n}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\\\\{/,end:/\\\\}(-*)'/\\n}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\\\\[/,end:/\\\\](-*)'/}),{begin:'\\\"',end:'\\\"',\\nrelevance:0},{begin:\\\"'\\\",end:\\\"'\\\",relevance:0}]},{relevance:0,variants:[{scope:{\\n1:\\\"operator\\\",2:\\\"number\\\"},match:[s,i]},{scope:{1:\\\"operator\\\",2:\\\"number\\\"},\\nmatch:[/%[^%]*%/,i]},{scope:{1:\\\"punctuation\\\",2:\\\"number\\\"},match:[t,i]},{scope:{\\n2:\\\"number\\\"},match:[/[^a-zA-Z0-9._]|^/,i]}]},{scope:{3:\\\"operator\\\"},\\nmatch:[n,/\\\\s+/,/\u003C-/,/\\\\s+/]},{scope:\\\"operator\\\",relevance:0,variants:[{match:s},{\\nmatch:/%[^%]*%/}]},{scope:\\\"punctuation\\\",relevance:0,match:t},{begin:\\\"`\\\",end:\\\"`\\\",\\ncontains:[{begin:/\\\\\\\\./}]}]}}})();hljs.registerLanguage(\\\"r\\\",e)})();/*! `ini` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const n=e.regex,a={className:\\\"number\\\",\\nrelevance:0,variants:[{begin:/([+-]+)?[\\\\d]+_[\\\\d_]+/},{begin:e.NUMBER_RE}]\\n},s=e.COMMENT();s.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const i={\\nclassName:\\\"variable\\\",variants:[{begin:/\\\\$[\\\\w\\\\d\\\"][\\\\w\\\\d_]*/},{begin:/\\\\$\\\\{(.*?)\\\\}/\\n}]},t={className:\\\"literal\\\",begin:/\\\\bon|off|true|false|yes|no\\\\b/},r={\\nclassName:\\\"string\\\",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:\\\"'''\\\",\\nend:\\\"'''\\\",relevance:10},{begin:'\\\"\\\"\\\"',end:'\\\"\\\"\\\"',relevance:10},{begin:'\\\"',end:'\\\"'\\n},{begin:\\\"'\\\",end:\\\"'\\\"}]},l={begin:/\\\\[/,end:/\\\\]/,contains:[s,t,i,r,a,\\\"self\\\"],\\nrelevance:0},c=n.either(/[A-Za-z0-9_-]+/,/\\\"(\\\\\\\\\\\"|[^\\\"])*\\\"/,/'[^']*'/);return{\\nname:\\\"TOML, also INI\\\",aliases:[\\\"toml\\\"],case_insensitive:!0,illegal:/\\\\S/,\\ncontains:[s,{className:\\\"section\\\",begin:/\\\\[+/,end:/\\\\]+/},{\\nbegin:n.concat(c,\\\"(\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\",c,\\\")*\\\",n.lookahead(/\\\\s*=\\\\s*[^#\\\\s]/)),\\nclassName:\\\"attr\\\",starts:{end:/$/,contains:[s,l,t,i,r,a]}}]}}})()\\n;hljs.registerLanguage(\\\"ini\\\",e)})();/*! `less` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\"\\n;const e=[\\\"a\\\",\\\"abbr\\\",\\\"address\\\",\\\"article\\\",\\\"aside\\\",\\\"audio\\\",\\\"b\\\",\\\"blockquote\\\",\\\"body\\\",\\\"button\\\",\\\"canvas\\\",\\\"caption\\\",\\\"cite\\\",\\\"code\\\",\\\"dd\\\",\\\"del\\\",\\\"details\\\",\\\"dfn\\\",\\\"div\\\",\\\"dl\\\",\\\"dt\\\",\\\"em\\\",\\\"fieldset\\\",\\\"figcaption\\\",\\\"figure\\\",\\\"footer\\\",\\\"form\\\",\\\"h1\\\",\\\"h2\\\",\\\"h3\\\",\\\"h4\\\",\\\"h5\\\",\\\"h6\\\",\\\"header\\\",\\\"hgroup\\\",\\\"html\\\",\\\"i\\\",\\\"iframe\\\",\\\"img\\\",\\\"input\\\",\\\"ins\\\",\\\"kbd\\\",\\\"label\\\",\\\"legend\\\",\\\"li\\\",\\\"main\\\",\\\"mark\\\",\\\"menu\\\",\\\"nav\\\",\\\"object\\\",\\\"ol\\\",\\\"p\\\",\\\"q\\\",\\\"quote\\\",\\\"samp\\\",\\\"section\\\",\\\"span\\\",\\\"strong\\\",\\\"summary\\\",\\\"sup\\\",\\\"table\\\",\\\"tbody\\\",\\\"td\\\",\\\"textarea\\\",\\\"tfoot\\\",\\\"th\\\",\\\"thead\\\",\\\"time\\\",\\\"tr\\\",\\\"ul\\\",\\\"var\\\",\\\"video\\\"],t=[\\\"any-hover\\\",\\\"any-pointer\\\",\\\"aspect-ratio\\\",\\\"color\\\",\\\"color-gamut\\\",\\\"color-index\\\",\\\"device-aspect-ratio\\\",\\\"device-height\\\",\\\"device-width\\\",\\\"display-mode\\\",\\\"forced-colors\\\",\\\"grid\\\",\\\"height\\\",\\\"hover\\\",\\\"inverted-colors\\\",\\\"monochrome\\\",\\\"orientation\\\",\\\"overflow-block\\\",\\\"overflow-inline\\\",\\\"pointer\\\",\\\"prefers-color-scheme\\\",\\\"prefers-contrast\\\",\\\"prefers-reduced-motion\\\",\\\"prefers-reduced-transparency\\\",\\\"resolution\\\",\\\"scan\\\",\\\"scripting\\\",\\\"update\\\",\\\"width\\\",\\\"min-width\\\",\\\"max-width\\\",\\\"min-height\\\",\\\"max-height\\\"],i=[\\\"active\\\",\\\"any-link\\\",\\\"blank\\\",\\\"checked\\\",\\\"current\\\",\\\"default\\\",\\\"defined\\\",\\\"dir\\\",\\\"disabled\\\",\\\"drop\\\",\\\"empty\\\",\\\"enabled\\\",\\\"first\\\",\\\"first-child\\\",\\\"first-of-type\\\",\\\"fullscreen\\\",\\\"future\\\",\\\"focus\\\",\\\"focus-visible\\\",\\\"focus-within\\\",\\\"has\\\",\\\"host\\\",\\\"host-context\\\",\\\"hover\\\",\\\"indeterminate\\\",\\\"in-range\\\",\\\"invalid\\\",\\\"is\\\",\\\"lang\\\",\\\"last-child\\\",\\\"last-of-type\\\",\\\"left\\\",\\\"link\\\",\\\"local-link\\\",\\\"not\\\",\\\"nth-child\\\",\\\"nth-col\\\",\\\"nth-last-child\\\",\\\"nth-last-col\\\",\\\"nth-last-of-type\\\",\\\"nth-of-type\\\",\\\"only-child\\\",\\\"only-of-type\\\",\\\"optional\\\",\\\"out-of-range\\\",\\\"past\\\",\\\"placeholder-shown\\\",\\\"read-only\\\",\\\"read-write\\\",\\\"required\\\",\\\"right\\\",\\\"root\\\",\\\"scope\\\",\\\"target\\\",\\\"target-within\\\",\\\"user-invalid\\\",\\\"valid\\\",\\\"visited\\\",\\\"where\\\"],r=[\\\"after\\\",\\\"backdrop\\\",\\\"before\\\",\\\"cue\\\",\\\"cue-region\\\",\\\"first-letter\\\",\\\"first-line\\\",\\\"grammar-error\\\",\\\"marker\\\",\\\"part\\\",\\\"placeholder\\\",\\\"selection\\\",\\\"slotted\\\",\\\"spelling-error\\\"],o=[\\\"align-content\\\",\\\"align-items\\\",\\\"align-self\\\",\\\"all\\\",\\\"animation\\\",\\\"animation-delay\\\",\\\"animation-direction\\\",\\\"animation-duration\\\",\\\"animation-fill-mode\\\",\\\"animation-iteration-count\\\",\\\"animation-name\\\",\\\"animation-play-state\\\",\\\"animation-timing-function\\\",\\\"backface-visibility\\\",\\\"background\\\",\\\"background-attachment\\\",\\\"background-clip\\\",\\\"background-color\\\",\\\"background-image\\\",\\\"background-origin\\\",\\\"background-position\\\",\\\"background-repeat\\\",\\\"background-size\\\",\\\"border\\\",\\\"border-bottom\\\",\\\"border-bottom-color\\\",\\\"border-bottom-left-radius\\\",\\\"border-bottom-right-radius\\\",\\\"border-bottom-style\\\",\\\"border-bottom-width\\\",\\\"border-collapse\\\",\\\"border-color\\\",\\\"border-image\\\",\\\"border-image-outset\\\",\\\"border-image-repeat\\\",\\\"border-image-slice\\\",\\\"border-image-source\\\",\\\"border-image-width\\\",\\\"border-left\\\",\\\"border-left-color\\\",\\\"border-left-style\\\",\\\"border-left-width\\\",\\\"border-radius\\\",\\\"border-right\\\",\\\"border-right-color\\\",\\\"border-right-style\\\",\\\"border-right-width\\\",\\\"border-spacing\\\",\\\"border-style\\\",\\\"border-top\\\",\\\"border-top-color\\\",\\\"border-top-left-radius\\\",\\\"border-top-right-radius\\\",\\\"border-top-style\\\",\\\"border-top-width\\\",\\\"border-width\\\",\\\"bottom\\\",\\\"box-decoration-break\\\",\\\"box-shadow\\\",\\\"box-sizing\\\",\\\"break-after\\\",\\\"break-before\\\",\\\"break-inside\\\",\\\"caption-side\\\",\\\"caret-color\\\",\\\"clear\\\",\\\"clip\\\",\\\"clip-path\\\",\\\"clip-rule\\\",\\\"color\\\",\\\"column-count\\\",\\\"column-fill\\\",\\\"column-gap\\\",\\\"column-rule\\\",\\\"column-rule-color\\\",\\\"column-rule-style\\\",\\\"column-rule-width\\\",\\\"column-span\\\",\\\"column-width\\\",\\\"columns\\\",\\\"contain\\\",\\\"content\\\",\\\"content-visibility\\\",\\\"counter-increment\\\",\\\"counter-reset\\\",\\\"cue\\\",\\\"cue-after\\\",\\\"cue-before\\\",\\\"cursor\\\",\\\"direction\\\",\\\"display\\\",\\\"empty-cells\\\",\\\"filter\\\",\\\"flex\\\",\\\"flex-basis\\\",\\\"flex-direction\\\",\\\"flex-flow\\\",\\\"flex-grow\\\",\\\"flex-shrink\\\",\\\"flex-wrap\\\",\\\"float\\\",\\\"flow\\\",\\\"font\\\",\\\"font-display\\\",\\\"font-family\\\",\\\"font-feature-settings\\\",\\\"font-kerning\\\",\\\"font-language-override\\\",\\\"font-size\\\",\\\"font-size-adjust\\\",\\\"font-smoothing\\\",\\\"font-stretch\\\",\\\"font-style\\\",\\\"font-synthesis\\\",\\\"font-variant\\\",\\\"font-variant-caps\\\",\\\"font-variant-east-asian\\\",\\\"font-variant-ligatures\\\",\\\"font-variant-numeric\\\",\\\"font-variant-position\\\",\\\"font-variation-settings\\\",\\\"font-weight\\\",\\\"gap\\\",\\\"glyph-orientation-vertical\\\",\\\"grid\\\",\\\"grid-area\\\",\\\"grid-auto-columns\\\",\\\"grid-auto-flow\\\",\\\"grid-auto-rows\\\",\\\"grid-column\\\",\\\"grid-column-end\\\",\\\"grid-column-start\\\",\\\"grid-gap\\\",\\\"grid-row\\\",\\\"grid-row-end\\\",\\\"grid-row-start\\\",\\\"grid-template\\\",\\\"grid-template-areas\\\",\\\"grid-template-columns\\\",\\\"grid-template-rows\\\",\\\"hanging-punctuation\\\",\\\"height\\\",\\\"hyphens\\\",\\\"icon\\\",\\\"image-orientation\\\",\\\"image-rendering\\\",\\\"image-resolution\\\",\\\"ime-mode\\\",\\\"isolation\\\",\\\"justify-content\\\",\\\"left\\\",\\\"letter-spacing\\\",\\\"line-break\\\",\\\"line-height\\\",\\\"list-style\\\",\\\"list-style-image\\\",\\\"list-style-position\\\",\\\"list-style-type\\\",\\\"margin\\\",\\\"margin-bottom\\\",\\\"margin-left\\\",\\\"margin-right\\\",\\\"margin-top\\\",\\\"marks\\\",\\\"mask\\\",\\\"mask-border\\\",\\\"mask-border-mode\\\",\\\"mask-border-outset\\\",\\\"mask-border-repeat\\\",\\\"mask-border-slice\\\",\\\"mask-border-source\\\",\\\"mask-border-width\\\",\\\"mask-clip\\\",\\\"mask-composite\\\",\\\"mask-image\\\",\\\"mask-mode\\\",\\\"mask-origin\\\",\\\"mask-position\\\",\\\"mask-repeat\\\",\\\"mask-size\\\",\\\"mask-type\\\",\\\"max-height\\\",\\\"max-width\\\",\\\"min-height\\\",\\\"min-width\\\",\\\"mix-blend-mode\\\",\\\"nav-down\\\",\\\"nav-index\\\",\\\"nav-left\\\",\\\"nav-right\\\",\\\"nav-up\\\",\\\"none\\\",\\\"normal\\\",\\\"object-fit\\\",\\\"object-position\\\",\\\"opacity\\\",\\\"order\\\",\\\"orphans\\\",\\\"outline\\\",\\\"outline-color\\\",\\\"outline-offset\\\",\\\"outline-style\\\",\\\"outline-width\\\",\\\"overflow\\\",\\\"overflow-wrap\\\",\\\"overflow-x\\\",\\\"overflow-y\\\",\\\"padding\\\",\\\"padding-bottom\\\",\\\"padding-left\\\",\\\"padding-right\\\",\\\"padding-top\\\",\\\"page-break-after\\\",\\\"page-break-before\\\",\\\"page-break-inside\\\",\\\"pause\\\",\\\"pause-after\\\",\\\"pause-before\\\",\\\"perspective\\\",\\\"perspective-origin\\\",\\\"pointer-events\\\",\\\"position\\\",\\\"quotes\\\",\\\"resize\\\",\\\"rest\\\",\\\"rest-after\\\",\\\"rest-before\\\",\\\"right\\\",\\\"row-gap\\\",\\\"scroll-margin\\\",\\\"scroll-margin-block\\\",\\\"scroll-margin-block-end\\\",\\\"scroll-margin-block-start\\\",\\\"scroll-margin-bottom\\\",\\\"scroll-margin-inline\\\",\\\"scroll-margin-inline-end\\\",\\\"scroll-margin-inline-start\\\",\\\"scroll-margin-left\\\",\\\"scroll-margin-right\\\",\\\"scroll-margin-top\\\",\\\"scroll-padding\\\",\\\"scroll-padding-block\\\",\\\"scroll-padding-block-end\\\",\\\"scroll-padding-block-start\\\",\\\"scroll-padding-bottom\\\",\\\"scroll-padding-inline\\\",\\\"scroll-padding-inline-end\\\",\\\"scroll-padding-inline-start\\\",\\\"scroll-padding-left\\\",\\\"scroll-padding-right\\\",\\\"scroll-padding-top\\\",\\\"scroll-snap-align\\\",\\\"scroll-snap-stop\\\",\\\"scroll-snap-type\\\",\\\"shape-image-threshold\\\",\\\"shape-margin\\\",\\\"shape-outside\\\",\\\"speak\\\",\\\"speak-as\\\",\\\"src\\\",\\\"tab-size\\\",\\\"table-layout\\\",\\\"text-align\\\",\\\"text-align-all\\\",\\\"text-align-last\\\",\\\"text-combine-upright\\\",\\\"text-decoration\\\",\\\"text-decoration-color\\\",\\\"text-decoration-line\\\",\\\"text-decoration-style\\\",\\\"text-emphasis\\\",\\\"text-emphasis-color\\\",\\\"text-emphasis-position\\\",\\\"text-emphasis-style\\\",\\\"text-indent\\\",\\\"text-justify\\\",\\\"text-orientation\\\",\\\"text-overflow\\\",\\\"text-rendering\\\",\\\"text-shadow\\\",\\\"text-transform\\\",\\\"text-underline-position\\\",\\\"top\\\",\\\"transform\\\",\\\"transform-box\\\",\\\"transform-origin\\\",\\\"transform-style\\\",\\\"transition\\\",\\\"transition-delay\\\",\\\"transition-duration\\\",\\\"transition-property\\\",\\\"transition-timing-function\\\",\\\"unicode-bidi\\\",\\\"vertical-align\\\",\\\"visibility\\\",\\\"voice-balance\\\",\\\"voice-duration\\\",\\\"voice-family\\\",\\\"voice-pitch\\\",\\\"voice-range\\\",\\\"voice-rate\\\",\\\"voice-stress\\\",\\\"voice-volume\\\",\\\"white-space\\\",\\\"widows\\\",\\\"width\\\",\\\"will-change\\\",\\\"word-break\\\",\\\"word-spacing\\\",\\\"word-wrap\\\",\\\"writing-mode\\\",\\\"z-index\\\"].reverse(),n=i.concat(r)\\n;return a=>{const s=(e=>({IMPORTANT:{scope:\\\"meta\\\",begin:\\\"!important\\\"},\\nBLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:\\\"number\\\",\\nbegin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\\\b/},FUNCTION_DISPATCH:{\\nclassName:\\\"built_in\\\",begin:/[\\\\w-]+(?=\\\\()/},ATTRIBUTE_SELECTOR_MODE:{\\nscope:\\\"selector-attr\\\",begin:/\\\\[/,end:/\\\\]/,illegal:\\\"$\\\",\\ncontains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{\\nscope:\\\"number\\\",\\nbegin:e.NUMBER_RE+\\\"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\\\",\\nrelevance:0},CSS_VARIABLE:{className:\\\"attr\\\",begin:/--[A-Za-z][A-Za-z0-9_-]*/}\\n}))(a),l=n,d=\\\"([\\\\\\\\w-]+|@\\\\\\\\{[\\\\\\\\w-]+\\\\\\\\})\\\",c=[],g=[],m=e=>({className:\\\"string\\\",\\nbegin:\\\"~?\\\"+e+\\\".*?\\\"+e}),p=(e,t,i)=>({className:e,begin:t,relevance:i}),b={\\n$pattern:/[a-z-]+/,keyword:\\\"and or not only\\\",attribute:t.join(\\\" \\\")},u={\\nbegin:\\\"\\\\\\\\(\\\",end:\\\"\\\\\\\\)\\\",contains:g,keywords:b,relevance:0}\\n;g.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,m(\\\"'\\\"),m('\\\"'),s.CSS_NUMBER_MODE,{\\nbegin:\\\"(url|data-uri)\\\\\\\\(\\\",starts:{className:\\\"string\\\",end:\\\"[\\\\\\\\)\\\\\\\\n]\\\",\\nexcludeEnd:!0}\\n},s.HEXCOLOR,u,p(\\\"variable\\\",\\\"@@?[\\\\\\\\w-]+\\\",10),p(\\\"variable\\\",\\\"@\\\\\\\\{[\\\\\\\\w-]+\\\\\\\\}\\\"),p(\\\"built_in\\\",\\\"~?`[^`]*?`\\\"),{\\nclassName:\\\"attribute\\\",begin:\\\"[\\\\\\\\w-]+\\\\\\\\s*:\\\",end:\\\":\\\",returnBegin:!0,excludeEnd:!0\\n},s.IMPORTANT);const h=g.concat({begin:/\\\\{/,end:/\\\\}/,contains:c}),f={\\nbeginKeywords:\\\"when\\\",endsWithParent:!0,contains:[{beginKeywords:\\\"and not\\\"\\n}].concat(g)},v={begin:d+\\\"\\\\\\\\s*:\\\",returnBegin:!0,end:/[;}]/,relevance:0,\\ncontains:[{begin:/-(webkit|moz|ms|o)-/},s.CSS_VARIABLE,{className:\\\"attribute\\\",\\nbegin:\\\"\\\\\\\\b(\\\"+o.join(\\\"|\\\")+\\\")\\\\\\\\b\\\",end:/(?=:)/,starts:{endsWithParent:!0,\\nillegal:\\\"[\u003C=$]\\\",relevance:0,contains:g}}]},w={className:\\\"keyword\\\",\\nbegin:\\\"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\\\\\\\b\\\",\\nstarts:{end:\\\"[;{}]\\\",keywords:b,returnEnd:!0,contains:g,relevance:0}},k={\\nclassName:\\\"variable\\\",variants:[{begin:\\\"@[\\\\\\\\w-]+\\\\\\\\s*:\\\",relevance:15},{\\nbegin:\\\"@[\\\\\\\\w-]+\\\"}],starts:{end:\\\"[;}]\\\",returnEnd:!0,contains:h}},y={variants:[{\\nbegin:\\\"[\\\\\\\\.#:&\\\\\\\\[>]\\\",end:\\\"[;{}]\\\"},{begin:d,end:/\\\\{/}],returnBegin:!0,\\nreturnEnd:!0,illegal:\\\"[\u003C='$\\\\\\\"]\\\",relevance:0,\\ncontains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,f,p(\\\"keyword\\\",\\\"all\\\\\\\\b\\\"),p(\\\"variable\\\",\\\"@\\\\\\\\{[\\\\\\\\w-]+\\\\\\\\}\\\"),{\\nbegin:\\\"\\\\\\\\b(\\\"+e.join(\\\"|\\\")+\\\")\\\\\\\\b\\\",className:\\\"selector-tag\\\"\\n},s.CSS_NUMBER_MODE,p(\\\"selector-tag\\\",d,0),p(\\\"selector-id\\\",\\\"#\\\"+d),p(\\\"selector-class\\\",\\\"\\\\\\\\.\\\"+d,0),p(\\\"selector-tag\\\",\\\"&\\\",0),s.ATTRIBUTE_SELECTOR_MODE,{\\nclassName:\\\"selector-pseudo\\\",begin:\\\":(\\\"+i.join(\\\"|\\\")+\\\")\\\"},{\\nclassName:\\\"selector-pseudo\\\",begin:\\\":(:)?(\\\"+r.join(\\\"|\\\")+\\\")\\\"},{begin:/\\\\(/,\\nend:/\\\\)/,relevance:0,contains:h},{begin:\\\"!important\\\"},s.FUNCTION_DISPATCH]},x={\\nbegin:`[\\\\\\\\w-]+:(:)?(${l.join(\\\"|\\\")})`,returnBegin:!0,contains:[y]}\\n;return c.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,w,k,x,v,y),{\\nname:\\\"Less\\\",case_insensitive:!0,illegal:\\\"[=>'/\u003C($\\\\\\\"]\\\",contains:c}}})()\\n;hljs.registerLanguage(\\\"less\\\",e)})();/*! `fortran` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const n=e.regex,a={\\nvariants:[e.COMMENT(\\\"!\\\",\\\"$\\\",{relevance:0}),e.COMMENT(\\\"^C[ ]\\\",\\\"$\\\",{relevance:0\\n}),e.COMMENT(\\\"^C$\\\",\\\"$\\\",{relevance:0})]\\n},t=/(_[a-z_\\\\d]+)?/,i=/([de][+-]?\\\\d+)?/,c={className:\\\"number\\\",variants:[{\\nbegin:n.concat(/\\\\b\\\\d+/,/\\\\.(\\\\d*)/,i,t)},{begin:n.concat(/\\\\b\\\\d+/,i,t)},{\\nbegin:n.concat(/\\\\.\\\\d+/,i,t)}],relevance:0},o={className:\\\"function\\\",\\nbeginKeywords:\\\"subroutine function program\\\",illegal:\\\"[${=\\\\\\\\n]\\\",\\ncontains:[e.UNDERSCORE_TITLE_MODE,{className:\\\"params\\\",begin:\\\"\\\\\\\\(\\\",end:\\\"\\\\\\\\)\\\"}]}\\n;return{name:\\\"Fortran\\\",case_insensitive:!0,aliases:[\\\"f90\\\",\\\"f95\\\"],keywords:{\\nkeyword:[\\\"kind\\\",\\\"do\\\",\\\"concurrent\\\",\\\"local\\\",\\\"shared\\\",\\\"while\\\",\\\"private\\\",\\\"call\\\",\\\"intrinsic\\\",\\\"where\\\",\\\"elsewhere\\\",\\\"type\\\",\\\"endtype\\\",\\\"endmodule\\\",\\\"endselect\\\",\\\"endinterface\\\",\\\"end\\\",\\\"enddo\\\",\\\"endif\\\",\\\"if\\\",\\\"forall\\\",\\\"endforall\\\",\\\"only\\\",\\\"contains\\\",\\\"default\\\",\\\"return\\\",\\\"stop\\\",\\\"then\\\",\\\"block\\\",\\\"endblock\\\",\\\"endassociate\\\",\\\"public\\\",\\\"subroutine|10\\\",\\\"function\\\",\\\"program\\\",\\\".and.\\\",\\\".or.\\\",\\\".not.\\\",\\\".le.\\\",\\\".eq.\\\",\\\".ge.\\\",\\\".gt.\\\",\\\".lt.\\\",\\\"goto\\\",\\\"save\\\",\\\"else\\\",\\\"use\\\",\\\"module\\\",\\\"select\\\",\\\"case\\\",\\\"access\\\",\\\"blank\\\",\\\"direct\\\",\\\"exist\\\",\\\"file\\\",\\\"fmt\\\",\\\"form\\\",\\\"formatted\\\",\\\"iostat\\\",\\\"name\\\",\\\"named\\\",\\\"nextrec\\\",\\\"number\\\",\\\"opened\\\",\\\"rec\\\",\\\"recl\\\",\\\"sequential\\\",\\\"status\\\",\\\"unformatted\\\",\\\"unit\\\",\\\"continue\\\",\\\"format\\\",\\\"pause\\\",\\\"cycle\\\",\\\"exit\\\",\\\"c_null_char\\\",\\\"c_alert\\\",\\\"c_backspace\\\",\\\"c_form_feed\\\",\\\"flush\\\",\\\"wait\\\",\\\"decimal\\\",\\\"round\\\",\\\"iomsg\\\",\\\"synchronous\\\",\\\"nopass\\\",\\\"non_overridable\\\",\\\"pass\\\",\\\"protected\\\",\\\"volatile\\\",\\\"abstract\\\",\\\"extends\\\",\\\"import\\\",\\\"non_intrinsic\\\",\\\"value\\\",\\\"deferred\\\",\\\"generic\\\",\\\"final\\\",\\\"enumerator\\\",\\\"class\\\",\\\"associate\\\",\\\"bind\\\",\\\"enum\\\",\\\"c_int\\\",\\\"c_short\\\",\\\"c_long\\\",\\\"c_long_long\\\",\\\"c_signed_char\\\",\\\"c_size_t\\\",\\\"c_int8_t\\\",\\\"c_int16_t\\\",\\\"c_int32_t\\\",\\\"c_int64_t\\\",\\\"c_int_least8_t\\\",\\\"c_int_least16_t\\\",\\\"c_int_least32_t\\\",\\\"c_int_least64_t\\\",\\\"c_int_fast8_t\\\",\\\"c_int_fast16_t\\\",\\\"c_int_fast32_t\\\",\\\"c_int_fast64_t\\\",\\\"c_intmax_t\\\",\\\"C_intptr_t\\\",\\\"c_float\\\",\\\"c_double\\\",\\\"c_long_double\\\",\\\"c_float_complex\\\",\\\"c_double_complex\\\",\\\"c_long_double_complex\\\",\\\"c_bool\\\",\\\"c_char\\\",\\\"c_null_ptr\\\",\\\"c_null_funptr\\\",\\\"c_new_line\\\",\\\"c_carriage_return\\\",\\\"c_horizontal_tab\\\",\\\"c_vertical_tab\\\",\\\"iso_c_binding\\\",\\\"c_loc\\\",\\\"c_funloc\\\",\\\"c_associated\\\",\\\"c_f_pointer\\\",\\\"c_ptr\\\",\\\"c_funptr\\\",\\\"iso_fortran_env\\\",\\\"character_storage_size\\\",\\\"error_unit\\\",\\\"file_storage_size\\\",\\\"input_unit\\\",\\\"iostat_end\\\",\\\"iostat_eor\\\",\\\"numeric_storage_size\\\",\\\"output_unit\\\",\\\"c_f_procpointer\\\",\\\"ieee_arithmetic\\\",\\\"ieee_support_underflow_control\\\",\\\"ieee_get_underflow_mode\\\",\\\"ieee_set_underflow_mode\\\",\\\"newunit\\\",\\\"contiguous\\\",\\\"recursive\\\",\\\"pad\\\",\\\"position\\\",\\\"action\\\",\\\"delim\\\",\\\"readwrite\\\",\\\"eor\\\",\\\"advance\\\",\\\"nml\\\",\\\"interface\\\",\\\"procedure\\\",\\\"namelist\\\",\\\"include\\\",\\\"sequence\\\",\\\"elemental\\\",\\\"pure\\\",\\\"impure\\\",\\\"integer\\\",\\\"real\\\",\\\"character\\\",\\\"complex\\\",\\\"logical\\\",\\\"codimension\\\",\\\"dimension\\\",\\\"allocatable|10\\\",\\\"parameter\\\",\\\"external\\\",\\\"implicit|10\\\",\\\"none\\\",\\\"double\\\",\\\"precision\\\",\\\"assign\\\",\\\"intent\\\",\\\"optional\\\",\\\"pointer\\\",\\\"target\\\",\\\"in\\\",\\\"out\\\",\\\"common\\\",\\\"equivalence\\\",\\\"data\\\"],\\nliteral:[\\\".False.\\\",\\\".True.\\\"],\\nbuilt_in:[\\\"alog\\\",\\\"alog10\\\",\\\"amax0\\\",\\\"amax1\\\",\\\"amin0\\\",\\\"amin1\\\",\\\"amod\\\",\\\"cabs\\\",\\\"ccos\\\",\\\"cexp\\\",\\\"clog\\\",\\\"csin\\\",\\\"csqrt\\\",\\\"dabs\\\",\\\"dacos\\\",\\\"dasin\\\",\\\"datan\\\",\\\"datan2\\\",\\\"dcos\\\",\\\"dcosh\\\",\\\"ddim\\\",\\\"dexp\\\",\\\"dint\\\",\\\"dlog\\\",\\\"dlog10\\\",\\\"dmax1\\\",\\\"dmin1\\\",\\\"dmod\\\",\\\"dnint\\\",\\\"dsign\\\",\\\"dsin\\\",\\\"dsinh\\\",\\\"dsqrt\\\",\\\"dtan\\\",\\\"dtanh\\\",\\\"float\\\",\\\"iabs\\\",\\\"idim\\\",\\\"idint\\\",\\\"idnint\\\",\\\"ifix\\\",\\\"isign\\\",\\\"max0\\\",\\\"max1\\\",\\\"min0\\\",\\\"min1\\\",\\\"sngl\\\",\\\"algama\\\",\\\"cdabs\\\",\\\"cdcos\\\",\\\"cdexp\\\",\\\"cdlog\\\",\\\"cdsin\\\",\\\"cdsqrt\\\",\\\"cqabs\\\",\\\"cqcos\\\",\\\"cqexp\\\",\\\"cqlog\\\",\\\"cqsin\\\",\\\"cqsqrt\\\",\\\"dcmplx\\\",\\\"dconjg\\\",\\\"derf\\\",\\\"derfc\\\",\\\"dfloat\\\",\\\"dgamma\\\",\\\"dimag\\\",\\\"dlgama\\\",\\\"iqint\\\",\\\"qabs\\\",\\\"qacos\\\",\\\"qasin\\\",\\\"qatan\\\",\\\"qatan2\\\",\\\"qcmplx\\\",\\\"qconjg\\\",\\\"qcos\\\",\\\"qcosh\\\",\\\"qdim\\\",\\\"qerf\\\",\\\"qerfc\\\",\\\"qexp\\\",\\\"qgamma\\\",\\\"qimag\\\",\\\"qlgama\\\",\\\"qlog\\\",\\\"qlog10\\\",\\\"qmax1\\\",\\\"qmin1\\\",\\\"qmod\\\",\\\"qnint\\\",\\\"qsign\\\",\\\"qsin\\\",\\\"qsinh\\\",\\\"qsqrt\\\",\\\"qtan\\\",\\\"qtanh\\\",\\\"abs\\\",\\\"acos\\\",\\\"aimag\\\",\\\"aint\\\",\\\"anint\\\",\\\"asin\\\",\\\"atan\\\",\\\"atan2\\\",\\\"char\\\",\\\"cmplx\\\",\\\"conjg\\\",\\\"cos\\\",\\\"cosh\\\",\\\"exp\\\",\\\"ichar\\\",\\\"index\\\",\\\"int\\\",\\\"log\\\",\\\"log10\\\",\\\"max\\\",\\\"min\\\",\\\"nint\\\",\\\"sign\\\",\\\"sin\\\",\\\"sinh\\\",\\\"sqrt\\\",\\\"tan\\\",\\\"tanh\\\",\\\"print\\\",\\\"write\\\",\\\"dim\\\",\\\"lge\\\",\\\"lgt\\\",\\\"lle\\\",\\\"llt\\\",\\\"mod\\\",\\\"nullify\\\",\\\"allocate\\\",\\\"deallocate\\\",\\\"adjustl\\\",\\\"adjustr\\\",\\\"all\\\",\\\"allocated\\\",\\\"any\\\",\\\"associated\\\",\\\"bit_size\\\",\\\"btest\\\",\\\"ceiling\\\",\\\"count\\\",\\\"cshift\\\",\\\"date_and_time\\\",\\\"digits\\\",\\\"dot_product\\\",\\\"eoshift\\\",\\\"epsilon\\\",\\\"exponent\\\",\\\"floor\\\",\\\"fraction\\\",\\\"huge\\\",\\\"iand\\\",\\\"ibclr\\\",\\\"ibits\\\",\\\"ibset\\\",\\\"ieor\\\",\\\"ior\\\",\\\"ishft\\\",\\\"ishftc\\\",\\\"lbound\\\",\\\"len_trim\\\",\\\"matmul\\\",\\\"maxexponent\\\",\\\"maxloc\\\",\\\"maxval\\\",\\\"merge\\\",\\\"minexponent\\\",\\\"minloc\\\",\\\"minval\\\",\\\"modulo\\\",\\\"mvbits\\\",\\\"nearest\\\",\\\"pack\\\",\\\"present\\\",\\\"product\\\",\\\"radix\\\",\\\"random_number\\\",\\\"random_seed\\\",\\\"range\\\",\\\"repeat\\\",\\\"reshape\\\",\\\"rrspacing\\\",\\\"scale\\\",\\\"scan\\\",\\\"selected_int_kind\\\",\\\"selected_real_kind\\\",\\\"set_exponent\\\",\\\"shape\\\",\\\"size\\\",\\\"spacing\\\",\\\"spread\\\",\\\"sum\\\",\\\"system_clock\\\",\\\"tiny\\\",\\\"transpose\\\",\\\"trim\\\",\\\"ubound\\\",\\\"unpack\\\",\\\"verify\\\",\\\"achar\\\",\\\"iachar\\\",\\\"transfer\\\",\\\"dble\\\",\\\"entry\\\",\\\"dprod\\\",\\\"cpu_time\\\",\\\"command_argument_count\\\",\\\"get_command\\\",\\\"get_command_argument\\\",\\\"get_environment_variable\\\",\\\"is_iostat_end\\\",\\\"ieee_arithmetic\\\",\\\"ieee_support_underflow_control\\\",\\\"ieee_get_underflow_mode\\\",\\\"ieee_set_underflow_mode\\\",\\\"is_iostat_eor\\\",\\\"move_alloc\\\",\\\"new_line\\\",\\\"selected_char_kind\\\",\\\"same_type_as\\\",\\\"extends_type_of\\\",\\\"acosh\\\",\\\"asinh\\\",\\\"atanh\\\",\\\"bessel_j0\\\",\\\"bessel_j1\\\",\\\"bessel_jn\\\",\\\"bessel_y0\\\",\\\"bessel_y1\\\",\\\"bessel_yn\\\",\\\"erf\\\",\\\"erfc\\\",\\\"erfc_scaled\\\",\\\"gamma\\\",\\\"log_gamma\\\",\\\"hypot\\\",\\\"norm2\\\",\\\"atomic_define\\\",\\\"atomic_ref\\\",\\\"execute_command_line\\\",\\\"leadz\\\",\\\"trailz\\\",\\\"storage_size\\\",\\\"merge_bits\\\",\\\"bge\\\",\\\"bgt\\\",\\\"ble\\\",\\\"blt\\\",\\\"dshiftl\\\",\\\"dshiftr\\\",\\\"findloc\\\",\\\"iall\\\",\\\"iany\\\",\\\"iparity\\\",\\\"image_index\\\",\\\"lcobound\\\",\\\"ucobound\\\",\\\"maskl\\\",\\\"maskr\\\",\\\"num_images\\\",\\\"parity\\\",\\\"popcnt\\\",\\\"poppar\\\",\\\"shifta\\\",\\\"shiftl\\\",\\\"shiftr\\\",\\\"this_image\\\",\\\"sync\\\",\\\"change\\\",\\\"team\\\",\\\"co_broadcast\\\",\\\"co_max\\\",\\\"co_min\\\",\\\"co_sum\\\",\\\"co_reduce\\\"]\\n},illegal:/\\\\/\\\\*/,contains:[{className:\\\"string\\\",relevance:0,\\nvariants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},o,{begin:/^C\\\\s*=(?!=)/,\\nrelevance:0},a,c]}}})();hljs.registerLanguage(\\\"fortran\\\",e)})();/*! `css` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\"\\n;const e=[\\\"a\\\",\\\"abbr\\\",\\\"address\\\",\\\"article\\\",\\\"aside\\\",\\\"audio\\\",\\\"b\\\",\\\"blockquote\\\",\\\"body\\\",\\\"button\\\",\\\"canvas\\\",\\\"caption\\\",\\\"cite\\\",\\\"code\\\",\\\"dd\\\",\\\"del\\\",\\\"details\\\",\\\"dfn\\\",\\\"div\\\",\\\"dl\\\",\\\"dt\\\",\\\"em\\\",\\\"fieldset\\\",\\\"figcaption\\\",\\\"figure\\\",\\\"footer\\\",\\\"form\\\",\\\"h1\\\",\\\"h2\\\",\\\"h3\\\",\\\"h4\\\",\\\"h5\\\",\\\"h6\\\",\\\"header\\\",\\\"hgroup\\\",\\\"html\\\",\\\"i\\\",\\\"iframe\\\",\\\"img\\\",\\\"input\\\",\\\"ins\\\",\\\"kbd\\\",\\\"label\\\",\\\"legend\\\",\\\"li\\\",\\\"main\\\",\\\"mark\\\",\\\"menu\\\",\\\"nav\\\",\\\"object\\\",\\\"ol\\\",\\\"p\\\",\\\"q\\\",\\\"quote\\\",\\\"samp\\\",\\\"section\\\",\\\"span\\\",\\\"strong\\\",\\\"summary\\\",\\\"sup\\\",\\\"table\\\",\\\"tbody\\\",\\\"td\\\",\\\"textarea\\\",\\\"tfoot\\\",\\\"th\\\",\\\"thead\\\",\\\"time\\\",\\\"tr\\\",\\\"ul\\\",\\\"var\\\",\\\"video\\\"],t=[\\\"any-hover\\\",\\\"any-pointer\\\",\\\"aspect-ratio\\\",\\\"color\\\",\\\"color-gamut\\\",\\\"color-index\\\",\\\"device-aspect-ratio\\\",\\\"device-height\\\",\\\"device-width\\\",\\\"display-mode\\\",\\\"forced-colors\\\",\\\"grid\\\",\\\"height\\\",\\\"hover\\\",\\\"inverted-colors\\\",\\\"monochrome\\\",\\\"orientation\\\",\\\"overflow-block\\\",\\\"overflow-inline\\\",\\\"pointer\\\",\\\"prefers-color-scheme\\\",\\\"prefers-contrast\\\",\\\"prefers-reduced-motion\\\",\\\"prefers-reduced-transparency\\\",\\\"resolution\\\",\\\"scan\\\",\\\"scripting\\\",\\\"update\\\",\\\"width\\\",\\\"min-width\\\",\\\"max-width\\\",\\\"min-height\\\",\\\"max-height\\\"],i=[\\\"active\\\",\\\"any-link\\\",\\\"blank\\\",\\\"checked\\\",\\\"current\\\",\\\"default\\\",\\\"defined\\\",\\\"dir\\\",\\\"disabled\\\",\\\"drop\\\",\\\"empty\\\",\\\"enabled\\\",\\\"first\\\",\\\"first-child\\\",\\\"first-of-type\\\",\\\"fullscreen\\\",\\\"future\\\",\\\"focus\\\",\\\"focus-visible\\\",\\\"focus-within\\\",\\\"has\\\",\\\"host\\\",\\\"host-context\\\",\\\"hover\\\",\\\"indeterminate\\\",\\\"in-range\\\",\\\"invalid\\\",\\\"is\\\",\\\"lang\\\",\\\"last-child\\\",\\\"last-of-type\\\",\\\"left\\\",\\\"link\\\",\\\"local-link\\\",\\\"not\\\",\\\"nth-child\\\",\\\"nth-col\\\",\\\"nth-last-child\\\",\\\"nth-last-col\\\",\\\"nth-last-of-type\\\",\\\"nth-of-type\\\",\\\"only-child\\\",\\\"only-of-type\\\",\\\"optional\\\",\\\"out-of-range\\\",\\\"past\\\",\\\"placeholder-shown\\\",\\\"read-only\\\",\\\"read-write\\\",\\\"required\\\",\\\"right\\\",\\\"root\\\",\\\"scope\\\",\\\"target\\\",\\\"target-within\\\",\\\"user-invalid\\\",\\\"valid\\\",\\\"visited\\\",\\\"where\\\"],o=[\\\"after\\\",\\\"backdrop\\\",\\\"before\\\",\\\"cue\\\",\\\"cue-region\\\",\\\"first-letter\\\",\\\"first-line\\\",\\\"grammar-error\\\",\\\"marker\\\",\\\"part\\\",\\\"placeholder\\\",\\\"selection\\\",\\\"slotted\\\",\\\"spelling-error\\\"],r=[\\\"align-content\\\",\\\"align-items\\\",\\\"align-self\\\",\\\"all\\\",\\\"animation\\\",\\\"animation-delay\\\",\\\"animation-direction\\\",\\\"animation-duration\\\",\\\"animation-fill-mode\\\",\\\"animation-iteration-count\\\",\\\"animation-name\\\",\\\"animation-play-state\\\",\\\"animation-timing-function\\\",\\\"backface-visibility\\\",\\\"background\\\",\\\"background-attachment\\\",\\\"background-clip\\\",\\\"background-color\\\",\\\"background-image\\\",\\\"background-origin\\\",\\\"background-position\\\",\\\"background-repeat\\\",\\\"background-size\\\",\\\"border\\\",\\\"border-bottom\\\",\\\"border-bottom-color\\\",\\\"border-bottom-left-radius\\\",\\\"border-bottom-right-radius\\\",\\\"border-bottom-style\\\",\\\"border-bottom-width\\\",\\\"border-collapse\\\",\\\"border-color\\\",\\\"border-image\\\",\\\"border-image-outset\\\",\\\"border-image-repeat\\\",\\\"border-image-slice\\\",\\\"border-image-source\\\",\\\"border-image-width\\\",\\\"border-left\\\",\\\"border-left-color\\\",\\\"border-left-style\\\",\\\"border-left-width\\\",\\\"border-radius\\\",\\\"border-right\\\",\\\"border-right-color\\\",\\\"border-right-style\\\",\\\"border-right-width\\\",\\\"border-spacing\\\",\\\"border-style\\\",\\\"border-top\\\",\\\"border-top-color\\\",\\\"border-top-left-radius\\\",\\\"border-top-right-radius\\\",\\\"border-top-style\\\",\\\"border-top-width\\\",\\\"border-width\\\",\\\"bottom\\\",\\\"box-decoration-break\\\",\\\"box-shadow\\\",\\\"box-sizing\\\",\\\"break-after\\\",\\\"break-before\\\",\\\"break-inside\\\",\\\"caption-side\\\",\\\"caret-color\\\",\\\"clear\\\",\\\"clip\\\",\\\"clip-path\\\",\\\"clip-rule\\\",\\\"color\\\",\\\"column-count\\\",\\\"column-fill\\\",\\\"column-gap\\\",\\\"column-rule\\\",\\\"column-rule-color\\\",\\\"column-rule-style\\\",\\\"column-rule-width\\\",\\\"column-span\\\",\\\"column-width\\\",\\\"columns\\\",\\\"contain\\\",\\\"content\\\",\\\"content-visibility\\\",\\\"counter-increment\\\",\\\"counter-reset\\\",\\\"cue\\\",\\\"cue-after\\\",\\\"cue-before\\\",\\\"cursor\\\",\\\"direction\\\",\\\"display\\\",\\\"empty-cells\\\",\\\"filter\\\",\\\"flex\\\",\\\"flex-basis\\\",\\\"flex-direction\\\",\\\"flex-flow\\\",\\\"flex-grow\\\",\\\"flex-shrink\\\",\\\"flex-wrap\\\",\\\"float\\\",\\\"flow\\\",\\\"font\\\",\\\"font-display\\\",\\\"font-family\\\",\\\"font-feature-settings\\\",\\\"font-kerning\\\",\\\"font-language-override\\\",\\\"font-size\\\",\\\"font-size-adjust\\\",\\\"font-smoothing\\\",\\\"font-stretch\\\",\\\"font-style\\\",\\\"font-synthesis\\\",\\\"font-variant\\\",\\\"font-variant-caps\\\",\\\"font-variant-east-asian\\\",\\\"font-variant-ligatures\\\",\\\"font-variant-numeric\\\",\\\"font-variant-position\\\",\\\"font-variation-settings\\\",\\\"font-weight\\\",\\\"gap\\\",\\\"glyph-orientation-vertical\\\",\\\"grid\\\",\\\"grid-area\\\",\\\"grid-auto-columns\\\",\\\"grid-auto-flow\\\",\\\"grid-auto-rows\\\",\\\"grid-column\\\",\\\"grid-column-end\\\",\\\"grid-column-start\\\",\\\"grid-gap\\\",\\\"grid-row\\\",\\\"grid-row-end\\\",\\\"grid-row-start\\\",\\\"grid-template\\\",\\\"grid-template-areas\\\",\\\"grid-template-columns\\\",\\\"grid-template-rows\\\",\\\"hanging-punctuation\\\",\\\"height\\\",\\\"hyphens\\\",\\\"icon\\\",\\\"image-orientation\\\",\\\"image-rendering\\\",\\\"image-resolution\\\",\\\"ime-mode\\\",\\\"isolation\\\",\\\"justify-content\\\",\\\"left\\\",\\\"letter-spacing\\\",\\\"line-break\\\",\\\"line-height\\\",\\\"list-style\\\",\\\"list-style-image\\\",\\\"list-style-position\\\",\\\"list-style-type\\\",\\\"margin\\\",\\\"margin-bottom\\\",\\\"margin-left\\\",\\\"margin-right\\\",\\\"margin-top\\\",\\\"marks\\\",\\\"mask\\\",\\\"mask-border\\\",\\\"mask-border-mode\\\",\\\"mask-border-outset\\\",\\\"mask-border-repeat\\\",\\\"mask-border-slice\\\",\\\"mask-border-source\\\",\\\"mask-border-width\\\",\\\"mask-clip\\\",\\\"mask-composite\\\",\\\"mask-image\\\",\\\"mask-mode\\\",\\\"mask-origin\\\",\\\"mask-position\\\",\\\"mask-repeat\\\",\\\"mask-size\\\",\\\"mask-type\\\",\\\"max-height\\\",\\\"max-width\\\",\\\"min-height\\\",\\\"min-width\\\",\\\"mix-blend-mode\\\",\\\"nav-down\\\",\\\"nav-index\\\",\\\"nav-left\\\",\\\"nav-right\\\",\\\"nav-up\\\",\\\"none\\\",\\\"normal\\\",\\\"object-fit\\\",\\\"object-position\\\",\\\"opacity\\\",\\\"order\\\",\\\"orphans\\\",\\\"outline\\\",\\\"outline-color\\\",\\\"outline-offset\\\",\\\"outline-style\\\",\\\"outline-width\\\",\\\"overflow\\\",\\\"overflow-wrap\\\",\\\"overflow-x\\\",\\\"overflow-y\\\",\\\"padding\\\",\\\"padding-bottom\\\",\\\"padding-left\\\",\\\"padding-right\\\",\\\"padding-top\\\",\\\"page-break-after\\\",\\\"page-break-before\\\",\\\"page-break-inside\\\",\\\"pause\\\",\\\"pause-after\\\",\\\"pause-before\\\",\\\"perspective\\\",\\\"perspective-origin\\\",\\\"pointer-events\\\",\\\"position\\\",\\\"quotes\\\",\\\"resize\\\",\\\"rest\\\",\\\"rest-after\\\",\\\"rest-before\\\",\\\"right\\\",\\\"row-gap\\\",\\\"scroll-margin\\\",\\\"scroll-margin-block\\\",\\\"scroll-margin-block-end\\\",\\\"scroll-margin-block-start\\\",\\\"scroll-margin-bottom\\\",\\\"scroll-margin-inline\\\",\\\"scroll-margin-inline-end\\\",\\\"scroll-margin-inline-start\\\",\\\"scroll-margin-left\\\",\\\"scroll-margin-right\\\",\\\"scroll-margin-top\\\",\\\"scroll-padding\\\",\\\"scroll-padding-block\\\",\\\"scroll-padding-block-end\\\",\\\"scroll-padding-block-start\\\",\\\"scroll-padding-bottom\\\",\\\"scroll-padding-inline\\\",\\\"scroll-padding-inline-end\\\",\\\"scroll-padding-inline-start\\\",\\\"scroll-padding-left\\\",\\\"scroll-padding-right\\\",\\\"scroll-padding-top\\\",\\\"scroll-snap-align\\\",\\\"scroll-snap-stop\\\",\\\"scroll-snap-type\\\",\\\"shape-image-threshold\\\",\\\"shape-margin\\\",\\\"shape-outside\\\",\\\"speak\\\",\\\"speak-as\\\",\\\"src\\\",\\\"tab-size\\\",\\\"table-layout\\\",\\\"text-align\\\",\\\"text-align-all\\\",\\\"text-align-last\\\",\\\"text-combine-upright\\\",\\\"text-decoration\\\",\\\"text-decoration-color\\\",\\\"text-decoration-line\\\",\\\"text-decoration-style\\\",\\\"text-emphasis\\\",\\\"text-emphasis-color\\\",\\\"text-emphasis-position\\\",\\\"text-emphasis-style\\\",\\\"text-indent\\\",\\\"text-justify\\\",\\\"text-orientation\\\",\\\"text-overflow\\\",\\\"text-rendering\\\",\\\"text-shadow\\\",\\\"text-transform\\\",\\\"text-underline-position\\\",\\\"top\\\",\\\"transform\\\",\\\"transform-box\\\",\\\"transform-origin\\\",\\\"transform-style\\\",\\\"transition\\\",\\\"transition-delay\\\",\\\"transition-duration\\\",\\\"transition-property\\\",\\\"transition-timing-function\\\",\\\"unicode-bidi\\\",\\\"vertical-align\\\",\\\"visibility\\\",\\\"voice-balance\\\",\\\"voice-duration\\\",\\\"voice-family\\\",\\\"voice-pitch\\\",\\\"voice-range\\\",\\\"voice-rate\\\",\\\"voice-stress\\\",\\\"voice-volume\\\",\\\"white-space\\\",\\\"widows\\\",\\\"width\\\",\\\"will-change\\\",\\\"word-break\\\",\\\"word-spacing\\\",\\\"word-wrap\\\",\\\"writing-mode\\\",\\\"z-index\\\"].reverse()\\n;return a=>{const n=a.regex,l=(e=>({IMPORTANT:{scope:\\\"meta\\\",begin:\\\"!important\\\"},\\nBLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:\\\"number\\\",\\nbegin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\\\b/},FUNCTION_DISPATCH:{\\nclassName:\\\"built_in\\\",begin:/[\\\\w-]+(?=\\\\()/},ATTRIBUTE_SELECTOR_MODE:{\\nscope:\\\"selector-attr\\\",begin:/\\\\[/,end:/\\\\]/,illegal:\\\"$\\\",\\ncontains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{\\nscope:\\\"number\\\",\\nbegin:e.NUMBER_RE+\\\"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\\\",\\nrelevance:0},CSS_VARIABLE:{className:\\\"attr\\\",begin:/--[A-Za-z][A-Za-z0-9_-]*/}\\n}))(a),s=[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE];return{name:\\\"CSS\\\",\\ncase_insensitive:!0,illegal:/[=|'\\\\$]/,keywords:{keyframePosition:\\\"from to\\\"},\\nclassNameAliases:{keyframePosition:\\\"selector-tag\\\"},contains:[l.BLOCK_COMMENT,{\\nbegin:/-(webkit|moz|ms|o)-(?=[a-z])/},l.CSS_NUMBER_MODE,{\\nclassName:\\\"selector-id\\\",begin:/#[A-Za-z0-9_-]+/,relevance:0},{\\nclassName:\\\"selector-class\\\",begin:\\\"\\\\\\\\.[a-zA-Z-][a-zA-Z0-9_-]*\\\",relevance:0\\n},l.ATTRIBUTE_SELECTOR_MODE,{className:\\\"selector-pseudo\\\",variants:[{\\nbegin:\\\":(\\\"+i.join(\\\"|\\\")+\\\")\\\"},{begin:\\\":(:)?(\\\"+o.join(\\\"|\\\")+\\\")\\\"}]},l.CSS_VARIABLE,{\\nclassName:\\\"attribute\\\",begin:\\\"\\\\\\\\b(\\\"+r.join(\\\"|\\\")+\\\")\\\\\\\\b\\\"},{begin:/:/,end:/[;}{]/,\\ncontains:[l.BLOCK_COMMENT,l.HEXCOLOR,l.IMPORTANT,l.CSS_NUMBER_MODE,...s,{\\nbegin:/(url|data-uri)\\\\(/,end:/\\\\)/,relevance:0,keywords:{built_in:\\\"url data-uri\\\"\\n},contains:[{className:\\\"string\\\",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]\\n},l.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:\\\"[{;]\\\",relevance:0,\\nillegal:/:/,contains:[{className:\\\"keyword\\\",begin:/@-?\\\\w[\\\\w]*(-\\\\w+)*/},{\\nbegin:/\\\\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{\\n$pattern:/[a-z-]+/,keyword:\\\"and or not only\\\",attribute:t.join(\\\" \\\")},contains:[{\\nbegin:/[a-z-]+(?=:)/,className:\\\"attribute\\\"},...s,l.CSS_NUMBER_MODE]}]},{\\nclassName:\\\"selector-tag\\\",begin:\\\"\\\\\\\\b(\\\"+e.join(\\\"|\\\")+\\\")\\\\\\\\b\\\"}]}}})()\\n;hljs.registerLanguage(\\\"css\\\",e)})();/*! `perl` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{\\nconst n=e.regex,t=/[dualxmsipngr]{0,12}/,r={$pattern:/[\\\\w.]+/,\\nkeyword:\\\"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0\\\"\\n},s={className:\\\"subst\\\",begin:\\\"[$@]\\\\\\\\{\\\",end:\\\"\\\\\\\\}\\\",keywords:r},i={begin:/->\\\\{/,\\nend:/\\\\}/},a={variants:[{begin:/\\\\$\\\\d/},{\\nbegin:n.concat(/[$%@](\\\\^\\\\w\\\\b|#\\\\w+(::\\\\w+)*|\\\\{\\\\w+\\\\}|\\\\w+(::\\\\w*)*)/,\\\"(?![A-Za-z])(?![@$%])\\\")\\n},{begin:/[$%@][^\\\\s\\\\w{]/,relevance:0}]\\n},c=[e.BACKSLASH_ESCAPE,s,a],o=[/!/,/\\\\//,/\\\\|/,/\\\\?/,/'/,/\\\"/,/#/],g=(e,r,s=\\\"\\\\\\\\1\\\")=>{\\nconst i=\\\"\\\\\\\\1\\\"===s?s:n.concat(s,r)\\n;return n.concat(n.concat(\\\"(?:\\\",e,\\\")\\\"),r,/(?:\\\\\\\\.|[^\\\\\\\\\\\\/])*?/,i,/(?:\\\\\\\\.|[^\\\\\\\\\\\\/])*?/,s,t)\\n},l=(e,r,s)=>n.concat(n.concat(\\\"(?:\\\",e,\\\")\\\"),r,/(?:\\\\\\\\.|[^\\\\\\\\\\\\/])*?/,s,t),d=[a,e.HASH_COMMENT_MODE,e.COMMENT(/^=\\\\w/,/=cut/,{\\nendsWithParent:!0}),i,{className:\\\"string\\\",contains:c,variants:[{\\nbegin:\\\"q[qwxr]?\\\\\\\\s*\\\\\\\\(\\\",end:\\\"\\\\\\\\)\\\",relevance:5},{begin:\\\"q[qwxr]?\\\\\\\\s*\\\\\\\\[\\\",\\nend:\\\"\\\\\\\\]\\\",relevance:5},{begin:\\\"q[qwxr]?\\\\\\\\s*\\\\\\\\{\\\",end:\\\"\\\\\\\\}\\\",relevance:5},{\\nbegin:\\\"q[qwxr]?\\\\\\\\s*\\\\\\\\|\\\",end:\\\"\\\\\\\\|\\\",relevance:5},{begin:\\\"q[qwxr]?\\\\\\\\s*\u003C\\\",end:\\\">\\\",\\nrelevance:5},{begin:\\\"qw\\\\\\\\s+q\\\",end:\\\"q\\\",relevance:5},{begin:\\\"'\\\",end:\\\"'\\\",\\ncontains:[e.BACKSLASH_ESCAPE]},{begin:'\\\"',end:'\\\"'},{begin:\\\"`\\\",end:\\\"`\\\",\\ncontains:[e.BACKSLASH_ESCAPE]},{begin:/\\\\{\\\\w+\\\\}/,relevance:0},{\\nbegin:\\\"-?\\\\\\\\w+\\\\\\\\s*=>\\\",relevance:0}]},{className:\\\"number\\\",\\nbegin:\\\"(\\\\\\\\b0[0-7_]+)|(\\\\\\\\b0x[0-9a-fA-F_]+)|(\\\\\\\\b[1-9][0-9_]*(\\\\\\\\.[0-9_]+)?)|[0_]\\\\\\\\b\\\",\\nrelevance:0},{\\nbegin:\\\"(\\\\\\\\/\\\\\\\\/|\\\"+e.RE_STARTERS_RE+\\\"|\\\\\\\\b(split|return|print|reverse|grep)\\\\\\\\b)\\\\\\\\s*\\\",\\nkeywords:\\\"split return print reverse grep\\\",relevance:0,\\ncontains:[e.HASH_COMMENT_MODE,{className:\\\"regexp\\\",variants:[{\\nbegin:g(\\\"s|tr|y\\\",n.either(...o,{capture:!0}))},{begin:g(\\\"s|tr|y\\\",\\\"\\\\\\\\(\\\",\\\"\\\\\\\\)\\\")},{\\nbegin:g(\\\"s|tr|y\\\",\\\"\\\\\\\\[\\\",\\\"\\\\\\\\]\\\")},{begin:g(\\\"s|tr|y\\\",\\\"\\\\\\\\{\\\",\\\"\\\\\\\\}\\\")}],relevance:2},{\\nclassName:\\\"regexp\\\",variants:[{begin:/(m|qr)\\\\/\\\\//,relevance:0},{\\nbegin:l(\\\"(?:m|qr)?\\\",/\\\\//,/\\\\//)},{begin:l(\\\"m|qr\\\",n.either(...o,{capture:!0\\n}),/\\\\1/)},{begin:l(\\\"m|qr\\\",/\\\\(/,/\\\\)/)},{begin:l(\\\"m|qr\\\",/\\\\[/,/\\\\]/)},{\\nbegin:l(\\\"m|qr\\\",/\\\\{/,/\\\\}/)}]}]},{className:\\\"function\\\",beginKeywords:\\\"sub\\\",\\nend:\\\"(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\))?[;{]\\\",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{\\nbegin:\\\"-\\\\\\\\w\\\\\\\\b\\\",relevance:0},{begin:\\\"^__DATA__$\\\",end:\\\"^__END__$\\\",\\nsubLanguage:\\\"mojolicious\\\",contains:[{begin:\\\"^@@.*\\\",end:\\\"$\\\",className:\\\"comment\\\"}]\\n}];return s.contains=d,i.contains=d,{name:\\\"Perl\\\",aliases:[\\\"pl\\\",\\\"pm\\\"],keywords:r,\\ncontains:d}}})();hljs.registerLanguage(\\\"perl\\\",e)})();/*! `swift` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";function e(e){\\nreturn e?\\\"string\\\"==typeof e?e:e.source:null}function a(e){return t(\\\"(?=\\\",e,\\\")\\\")}\\nfunction t(...a){return a.map((a=>e(a))).join(\\\"\\\")}function n(...a){const t=(e=>{\\nconst a=e[e.length-1]\\n;return\\\"object\\\"==typeof a&&a.constructor===Object?(e.splice(e.length-1,1),a):{}\\n})(a);return\\\"(\\\"+(t.capture?\\\"\\\":\\\"?:\\\")+a.map((a=>e(a))).join(\\\"|\\\")+\\\")\\\"}\\nconst i=e=>t(/\\\\b/,e,/\\\\w$/.test(e)?/\\\\b/:/\\\\B/),s=[\\\"Protocol\\\",\\\"Type\\\"].map(i),u=[\\\"init\\\",\\\"self\\\"].map(i),c=[\\\"Any\\\",\\\"Self\\\"],r=[\\\"actor\\\",\\\"associatedtype\\\",\\\"async\\\",\\\"await\\\",/as\\\\?/,/as!/,\\\"as\\\",\\\"break\\\",\\\"case\\\",\\\"catch\\\",\\\"class\\\",\\\"continue\\\",\\\"convenience\\\",\\\"default\\\",\\\"defer\\\",\\\"deinit\\\",\\\"didSet\\\",\\\"do\\\",\\\"dynamic\\\",\\\"else\\\",\\\"enum\\\",\\\"extension\\\",\\\"fallthrough\\\",/fileprivate\\\\(set\\\\)/,\\\"fileprivate\\\",\\\"final\\\",\\\"for\\\",\\\"func\\\",\\\"get\\\",\\\"guard\\\",\\\"if\\\",\\\"import\\\",\\\"indirect\\\",\\\"infix\\\",/init\\\\?/,/init!/,\\\"inout\\\",/internal\\\\(set\\\\)/,\\\"internal\\\",\\\"in\\\",\\\"is\\\",\\\"isolated\\\",\\\"nonisolated\\\",\\\"lazy\\\",\\\"let\\\",\\\"mutating\\\",\\\"nonmutating\\\",/open\\\\(set\\\\)/,\\\"open\\\",\\\"operator\\\",\\\"optional\\\",\\\"override\\\",\\\"postfix\\\",\\\"precedencegroup\\\",\\\"prefix\\\",/private\\\\(set\\\\)/,\\\"private\\\",\\\"protocol\\\",/public\\\\(set\\\\)/,\\\"public\\\",\\\"repeat\\\",\\\"required\\\",\\\"rethrows\\\",\\\"return\\\",\\\"set\\\",\\\"some\\\",\\\"static\\\",\\\"struct\\\",\\\"subscript\\\",\\\"super\\\",\\\"switch\\\",\\\"throws\\\",\\\"throw\\\",/try\\\\?/,/try!/,\\\"try\\\",\\\"typealias\\\",/unowned\\\\(safe\\\\)/,/unowned\\\\(unsafe\\\\)/,\\\"unowned\\\",\\\"var\\\",\\\"weak\\\",\\\"where\\\",\\\"while\\\",\\\"willSet\\\"],o=[\\\"false\\\",\\\"nil\\\",\\\"true\\\"],l=[\\\"assignment\\\",\\\"associativity\\\",\\\"higherThan\\\",\\\"left\\\",\\\"lowerThan\\\",\\\"none\\\",\\\"right\\\"],m=[\\\"#colorLiteral\\\",\\\"#column\\\",\\\"#dsohandle\\\",\\\"#else\\\",\\\"#elseif\\\",\\\"#endif\\\",\\\"#error\\\",\\\"#file\\\",\\\"#fileID\\\",\\\"#fileLiteral\\\",\\\"#filePath\\\",\\\"#function\\\",\\\"#if\\\",\\\"#imageLiteral\\\",\\\"#keyPath\\\",\\\"#line\\\",\\\"#selector\\\",\\\"#sourceLocation\\\",\\\"#warn_unqualified_access\\\",\\\"#warning\\\"],p=[\\\"abs\\\",\\\"all\\\",\\\"any\\\",\\\"assert\\\",\\\"assertionFailure\\\",\\\"debugPrint\\\",\\\"dump\\\",\\\"fatalError\\\",\\\"getVaList\\\",\\\"isKnownUniquelyReferenced\\\",\\\"max\\\",\\\"min\\\",\\\"numericCast\\\",\\\"pointwiseMax\\\",\\\"pointwiseMin\\\",\\\"precondition\\\",\\\"preconditionFailure\\\",\\\"print\\\",\\\"readLine\\\",\\\"repeatElement\\\",\\\"sequence\\\",\\\"stride\\\",\\\"swap\\\",\\\"swift_unboxFromSwiftValueWithType\\\",\\\"transcode\\\",\\\"type\\\",\\\"unsafeBitCast\\\",\\\"unsafeDowncast\\\",\\\"withExtendedLifetime\\\",\\\"withUnsafeMutablePointer\\\",\\\"withUnsafePointer\\\",\\\"withVaList\\\",\\\"withoutActuallyEscaping\\\",\\\"zip\\\"],d=n(/[/=\\\\-+!*%\u003C>&|^~?]/,/[\\\\u00A1-\\\\u00A7]/,/[\\\\u00A9\\\\u00AB]/,/[\\\\u00AC\\\\u00AE]/,/[\\\\u00B0\\\\u00B1]/,/[\\\\u00B6\\\\u00BB\\\\u00BF\\\\u00D7\\\\u00F7]/,/[\\\\u2016-\\\\u2017]/,/[\\\\u2020-\\\\u2027]/,/[\\\\u2030-\\\\u203E]/,/[\\\\u2041-\\\\u2053]/,/[\\\\u2055-\\\\u205E]/,/[\\\\u2190-\\\\u23FF]/,/[\\\\u2500-\\\\u2775]/,/[\\\\u2794-\\\\u2BFF]/,/[\\\\u2E00-\\\\u2E7F]/,/[\\\\u3001-\\\\u3003]/,/[\\\\u3008-\\\\u3020]/,/[\\\\u3030]/),F=n(d,/[\\\\u0300-\\\\u036F]/,/[\\\\u1DC0-\\\\u1DFF]/,/[\\\\u20D0-\\\\u20FF]/,/[\\\\uFE00-\\\\uFE0F]/,/[\\\\uFE20-\\\\uFE2F]/),b=t(d,F,\\\"*\\\"),h=n(/[a-zA-Z_]/,/[\\\\u00A8\\\\u00AA\\\\u00AD\\\\u00AF\\\\u00B2-\\\\u00B5\\\\u00B7-\\\\u00BA]/,/[\\\\u00BC-\\\\u00BE\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u00FF]/,/[\\\\u0100-\\\\u02FF\\\\u0370-\\\\u167F\\\\u1681-\\\\u180D\\\\u180F-\\\\u1DBF]/,/[\\\\u1E00-\\\\u1FFF]/,/[\\\\u200B-\\\\u200D\\\\u202A-\\\\u202E\\\\u203F-\\\\u2040\\\\u2054\\\\u2060-\\\\u206F]/,/[\\\\u2070-\\\\u20CF\\\\u2100-\\\\u218F\\\\u2460-\\\\u24FF\\\\u2776-\\\\u2793]/,/[\\\\u2C00-\\\\u2DFF\\\\u2E80-\\\\u2FFF]/,/[\\\\u3004-\\\\u3007\\\\u3021-\\\\u302F\\\\u3031-\\\\u303F\\\\u3040-\\\\uD7FF]/,/[\\\\uF900-\\\\uFD3D\\\\uFD40-\\\\uFDCF\\\\uFDF0-\\\\uFE1F\\\\uFE30-\\\\uFE44]/,/[\\\\uFE47-\\\\uFEFE\\\\uFF00-\\\\uFFFD]/),f=n(h,/\\\\d/,/[\\\\u0300-\\\\u036F\\\\u1DC0-\\\\u1DFF\\\\u20D0-\\\\u20FF\\\\uFE20-\\\\uFE2F]/),w=t(h,f,\\\"*\\\"),y=t(/[A-Z]/,f,\\\"*\\\"),g=[\\\"autoclosure\\\",t(/convention\\\\(/,n(\\\"swift\\\",\\\"block\\\",\\\"c\\\"),/\\\\)/),\\\"discardableResult\\\",\\\"dynamicCallable\\\",\\\"dynamicMemberLookup\\\",\\\"escaping\\\",\\\"frozen\\\",\\\"GKInspectable\\\",\\\"IBAction\\\",\\\"IBDesignable\\\",\\\"IBInspectable\\\",\\\"IBOutlet\\\",\\\"IBSegueAction\\\",\\\"inlinable\\\",\\\"main\\\",\\\"nonobjc\\\",\\\"NSApplicationMain\\\",\\\"NSCopying\\\",\\\"NSManaged\\\",t(/objc\\\\(/,w,/\\\\)/),\\\"objc\\\",\\\"objcMembers\\\",\\\"propertyWrapper\\\",\\\"requires_stored_property_inits\\\",\\\"resultBuilder\\\",\\\"testable\\\",\\\"UIApplicationMain\\\",\\\"unknown\\\",\\\"usableFromInline\\\"],E=[\\\"iOS\\\",\\\"iOSApplicationExtension\\\",\\\"macOS\\\",\\\"macOSApplicationExtension\\\",\\\"macCatalyst\\\",\\\"macCatalystApplicationExtension\\\",\\\"watchOS\\\",\\\"watchOSApplicationExtension\\\",\\\"tvOS\\\",\\\"tvOSApplicationExtension\\\",\\\"swift\\\"]\\n;return e=>{const d={match:/\\\\s+/,relevance:0},h=e.COMMENT(\\\"/\\\\\\\\*\\\",\\\"\\\\\\\\*/\\\",{\\ncontains:[\\\"self\\\"]}),v=[e.C_LINE_COMMENT_MODE,h],A={match:[/\\\\./,n(...s,...u)],\\nclassName:{2:\\\"keyword\\\"}},N={match:t(/\\\\./,n(...r)),relevance:0\\n},C=r.filter((e=>\\\"string\\\"==typeof e)).concat([\\\"_|0\\\"]),D={variants:[{\\nclassName:\\\"keyword\\\",\\nmatch:n(...r.filter((e=>\\\"string\\\"!=typeof e)).concat(c).map(i),...u)}]},k={\\n$pattern:n(/\\\\b\\\\w+/,/#\\\\w+/),keyword:C.concat(m),literal:o},B=[A,N,D],_=[{\\nmatch:t(/\\\\./,n(...p)),relevance:0},{className:\\\"built_in\\\",\\nmatch:t(/\\\\b/,n(...p),/(?=\\\\()/)}],S={match:/->/,relevance:0},M=[S,{\\nclassName:\\\"operator\\\",relevance:0,variants:[{match:b},{match:`\\\\\\\\.(\\\\\\\\.|${F})+`}]\\n}],x=\\\"([0-9a-fA-F]_*)+\\\",I={className:\\\"number\\\",relevance:0,variants:[{\\nmatch:\\\"\\\\\\\\b(([0-9]_*)+)(\\\\\\\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\\\\\\\b\\\"},{\\nmatch:`\\\\\\\\b0x(${x})(\\\\\\\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\\\\\\\b`},{\\nmatch:/\\\\b0o([0-7]_*)+\\\\b/},{match:/\\\\b0b([01]_*)+\\\\b/}]},L=(e=\\\"\\\")=>({\\nclassName:\\\"subst\\\",variants:[{match:t(/\\\\\\\\/,e,/[0\\\\\\\\tnr\\\"']/)},{\\nmatch:t(/\\\\\\\\/,e,/u\\\\{[0-9a-fA-F]{1,8}\\\\}/)}]}),O=(e=\\\"\\\")=>({className:\\\"subst\\\",\\nmatch:t(/\\\\\\\\/,e,/[\\\\t ]*(?:[\\\\r\\\\n]|\\\\r\\\\n)/)}),T=(e=\\\"\\\")=>({className:\\\"subst\\\",\\nlabel:\\\"interpol\\\",begin:t(/\\\\\\\\/,e,/\\\\(/),end:/\\\\)/}),$=(e=\\\"\\\")=>({begin:t(e,/\\\"\\\"\\\"/),\\nend:t(/\\\"\\\"\\\"/,e),contains:[L(e),O(e),T(e)]}),j=(e=\\\"\\\")=>({begin:t(e,/\\\"/),\\nend:t(/\\\"/,e),contains:[L(e),T(e)]}),P={className:\\\"string\\\",\\nvariants:[$(),$(\\\"#\\\"),$(\\\"##\\\"),$(\\\"###\\\"),j(),j(\\\"#\\\"),j(\\\"##\\\"),j(\\\"###\\\")]},K={\\nmatch:t(/`/,w,/`/)},z=[K,{className:\\\"variable\\\",match:/\\\\$\\\\d+/},{\\nclassName:\\\"variable\\\",match:`\\\\\\\\$${f}+`}],q=[{match:/(@|#(un)?)available/,\\nclassName:\\\"keyword\\\",starts:{contains:[{begin:/\\\\(/,end:/\\\\)/,keywords:E,\\ncontains:[...M,I,P]}]}},{className:\\\"keyword\\\",match:t(/@/,n(...g))},{\\nclassName:\\\"meta\\\",match:t(/@/,w)}],U={match:a(/\\\\b[A-Z]/),relevance:0,contains:[{\\nclassName:\\\"type\\\",\\nmatch:t(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,\\\"+\\\")\\n},{className:\\\"type\\\",match:y,relevance:0},{match:/[?!]+/,relevance:0},{\\nmatch:/\\\\.\\\\.\\\\./,relevance:0},{match:t(/\\\\s+&\\\\s+/,a(y)),relevance:0}]},Z={\\nbegin:/\u003C/,end:/>/,keywords:k,contains:[...v,...B,...q,S,U]};U.contains.push(Z)\\n;const V={begin:/\\\\(/,end:/\\\\)/,relevance:0,keywords:k,contains:[\\\"self\\\",{\\nmatch:t(w,/\\\\s*:/),keywords:\\\"_|0\\\",relevance:0\\n},...v,...B,..._,...M,I,P,...z,...q,U]},W={begin:/\u003C/,end:/>/,contains:[...v,U]\\n},G={begin:/\\\\(/,end:/\\\\)/,keywords:k,contains:[{\\nbegin:n(a(t(w,/\\\\s*:/)),a(t(w,/\\\\s+/,w,/\\\\s*:/))),end:/:/,relevance:0,contains:[{\\nclassName:\\\"keyword\\\",match:/\\\\b_\\\\b/},{className:\\\"params\\\",match:w}]\\n},...v,...B,...M,I,P,...q,U,V],endsParent:!0,illegal:/[\\\"']/},R={\\nmatch:[/func/,/\\\\s+/,n(K.match,w,b)],className:{1:\\\"keyword\\\",3:\\\"title.function\\\"},\\ncontains:[W,G,d],illegal:[/\\\\[/,/%/]},X={\\nmatch:[/\\\\b(?:subscript|init[?!]?)/,/\\\\s*(?=[\u003C(])/],className:{1:\\\"keyword\\\"},\\ncontains:[W,G,d],illegal:/\\\\[|%/},H={match:[/operator/,/\\\\s+/,b],className:{\\n1:\\\"keyword\\\",3:\\\"title\\\"}},J={begin:[/precedencegroup/,/\\\\s+/,y],className:{\\n1:\\\"keyword\\\",3:\\\"title\\\"},contains:[U],keywords:[...l,...o],end:/}/}\\n;for(const e of P.variants){const a=e.contains.find((e=>\\\"interpol\\\"===e.label))\\n;a.keywords=k;const t=[...B,..._,...M,I,P,...z];a.contains=[...t,{begin:/\\\\(/,\\nend:/\\\\)/,contains:[\\\"self\\\",...t]}]}return{name:\\\"Swift\\\",keywords:k,\\ncontains:[...v,R,X,{beginKeywords:\\\"struct protocol class extension enum actor\\\",\\nend:\\\"\\\\\\\\{\\\",excludeEnd:!0,keywords:k,contains:[e.inherit(e.TITLE_MODE,{\\nclassName:\\\"title.class\\\",begin:/[A-Za-z$_][\\\\u00C0-\\\\u02B80-9A-Za-z$_]*/}),...B]\\n},H,J,{beginKeywords:\\\"import\\\",end:/$/,contains:[...v],relevance:0\\n},...B,..._,...M,I,P,...z,...q,U,V]}}})();hljs.registerLanguage(\\\"swift\\\",e)})();/*! `go` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const n={\\nkeyword:[\\\"break\\\",\\\"case\\\",\\\"chan\\\",\\\"const\\\",\\\"continue\\\",\\\"default\\\",\\\"defer\\\",\\\"else\\\",\\\"fallthrough\\\",\\\"for\\\",\\\"func\\\",\\\"go\\\",\\\"goto\\\",\\\"if\\\",\\\"import\\\",\\\"interface\\\",\\\"map\\\",\\\"package\\\",\\\"range\\\",\\\"return\\\",\\\"select\\\",\\\"struct\\\",\\\"switch\\\",\\\"type\\\",\\\"var\\\"],\\ntype:[\\\"bool\\\",\\\"byte\\\",\\\"complex64\\\",\\\"complex128\\\",\\\"error\\\",\\\"float32\\\",\\\"float64\\\",\\\"int8\\\",\\\"int16\\\",\\\"int32\\\",\\\"int64\\\",\\\"string\\\",\\\"uint8\\\",\\\"uint16\\\",\\\"uint32\\\",\\\"uint64\\\",\\\"int\\\",\\\"uint\\\",\\\"uintptr\\\",\\\"rune\\\"],\\nliteral:[\\\"true\\\",\\\"false\\\",\\\"iota\\\",\\\"nil\\\"],\\nbuilt_in:[\\\"append\\\",\\\"cap\\\",\\\"close\\\",\\\"complex\\\",\\\"copy\\\",\\\"imag\\\",\\\"len\\\",\\\"make\\\",\\\"new\\\",\\\"panic\\\",\\\"print\\\",\\\"println\\\",\\\"real\\\",\\\"recover\\\",\\\"delete\\\"]\\n};return{name:\\\"Go\\\",aliases:[\\\"golang\\\"],keywords:n,illegal:\\\"\u003C/\\\",\\ncontains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:\\\"string\\\",\\nvariants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:\\\"`\\\",end:\\\"`\\\"}]},{\\nclassName:\\\"number\\\",variants:[{begin:e.C_NUMBER_RE+\\\"[i]\\\",relevance:1\\n},e.C_NUMBER_MODE]},{begin:/:=/},{className:\\\"function\\\",beginKeywords:\\\"func\\\",\\nend:\\\"\\\\\\\\s*(\\\\\\\\{|$)\\\",excludeEnd:!0,contains:[e.TITLE_MODE,{className:\\\"params\\\",\\nbegin:/\\\\(/,end:/\\\\)/,endsParent:!0,keywords:n,illegal:/[\\\"']/}]}]}}})()\\n;hljs.registerLanguage(\\\"go\\\",e)})();/*! `javascript` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\"\\n;const e=\\\"[A-Za-z$_][0-9A-Za-z$_]*\\\",n=[\\\"as\\\",\\\"in\\\",\\\"of\\\",\\\"if\\\",\\\"for\\\",\\\"while\\\",\\\"finally\\\",\\\"var\\\",\\\"new\\\",\\\"function\\\",\\\"do\\\",\\\"return\\\",\\\"void\\\",\\\"else\\\",\\\"break\\\",\\\"catch\\\",\\\"instanceof\\\",\\\"with\\\",\\\"throw\\\",\\\"case\\\",\\\"default\\\",\\\"try\\\",\\\"switch\\\",\\\"continue\\\",\\\"typeof\\\",\\\"delete\\\",\\\"let\\\",\\\"yield\\\",\\\"const\\\",\\\"class\\\",\\\"debugger\\\",\\\"async\\\",\\\"await\\\",\\\"static\\\",\\\"import\\\",\\\"from\\\",\\\"export\\\",\\\"extends\\\"],a=[\\\"true\\\",\\\"false\\\",\\\"null\\\",\\\"undefined\\\",\\\"NaN\\\",\\\"Infinity\\\"],t=[\\\"Object\\\",\\\"Function\\\",\\\"Boolean\\\",\\\"Symbol\\\",\\\"Math\\\",\\\"Date\\\",\\\"Number\\\",\\\"BigInt\\\",\\\"String\\\",\\\"RegExp\\\",\\\"Array\\\",\\\"Float32Array\\\",\\\"Float64Array\\\",\\\"Int8Array\\\",\\\"Uint8Array\\\",\\\"Uint8ClampedArray\\\",\\\"Int16Array\\\",\\\"Int32Array\\\",\\\"Uint16Array\\\",\\\"Uint32Array\\\",\\\"BigInt64Array\\\",\\\"BigUint64Array\\\",\\\"Set\\\",\\\"Map\\\",\\\"WeakSet\\\",\\\"WeakMap\\\",\\\"ArrayBuffer\\\",\\\"SharedArrayBuffer\\\",\\\"Atomics\\\",\\\"DataView\\\",\\\"JSON\\\",\\\"Promise\\\",\\\"Generator\\\",\\\"GeneratorFunction\\\",\\\"AsyncFunction\\\",\\\"Reflect\\\",\\\"Proxy\\\",\\\"Intl\\\",\\\"WebAssembly\\\"],s=[\\\"Error\\\",\\\"EvalError\\\",\\\"InternalError\\\",\\\"RangeError\\\",\\\"ReferenceError\\\",\\\"SyntaxError\\\",\\\"TypeError\\\",\\\"URIError\\\"],r=[\\\"setInterval\\\",\\\"setTimeout\\\",\\\"clearInterval\\\",\\\"clearTimeout\\\",\\\"require\\\",\\\"exports\\\",\\\"eval\\\",\\\"isFinite\\\",\\\"isNaN\\\",\\\"parseFloat\\\",\\\"parseInt\\\",\\\"decodeURI\\\",\\\"decodeURIComponent\\\",\\\"encodeURI\\\",\\\"encodeURIComponent\\\",\\\"escape\\\",\\\"unescape\\\"],c=[\\\"arguments\\\",\\\"this\\\",\\\"super\\\",\\\"console\\\",\\\"window\\\",\\\"document\\\",\\\"localStorage\\\",\\\"module\\\",\\\"global\\\"],i=[].concat(r,t,s)\\n;return o=>{const l=o.regex,b=e,d={begin:/\u003C[A-Za-z0-9\\\\\\\\._:-]+/,\\nend:/\\\\/[A-Za-z0-9\\\\\\\\._:-]+>|\\\\/>/,isTrulyOpeningTag:(e,n)=>{\\nconst a=e[0].length+e.index,t=e.input[a]\\n;if(\\\"\u003C\\\"===t||\\\",\\\"===t)return void n.ignoreMatch();let s\\n;\\\">\\\"===t&&(((e,{after:n})=>{const a=\\\"\u003C/\\\"+e[0].slice(1)\\n;return-1!==e.input.indexOf(a,n)})(e,{after:a\\n})||n.ignoreMatch()),(s=e.input.substr(a).match(/^\\\\s+extends\\\\s+/))&&0===s.index&&n.ignoreMatch()\\n}},g={$pattern:e,keyword:n,literal:a,built_in:i,\\\"variable.language\\\":c\\n},u=\\\"\\\\\\\\.([0-9](_?[0-9])*)\\\",m=\\\"0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*\\\",E={\\nclassName:\\\"number\\\",variants:[{\\nbegin:`(\\\\\\\\b(${m})((${u})|\\\\\\\\.)?|(${u}))[eE][+-]?([0-9](_?[0-9])*)\\\\\\\\b`},{\\nbegin:`\\\\\\\\b(${m})\\\\\\\\b((${u})\\\\\\\\b|\\\\\\\\.)?|(${u})\\\\\\\\b`},{\\nbegin:\\\"\\\\\\\\b(0|[1-9](_?[0-9])*)n\\\\\\\\b\\\"},{\\nbegin:\\\"\\\\\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\\\\\b\\\"},{\\nbegin:\\\"\\\\\\\\b0[bB][0-1](_?[0-1])*n?\\\\\\\\b\\\"},{begin:\\\"\\\\\\\\b0[oO][0-7](_?[0-7])*n?\\\\\\\\b\\\"},{\\nbegin:\\\"\\\\\\\\b0[0-7]+n?\\\\\\\\b\\\"}],relevance:0},A={className:\\\"subst\\\",begin:\\\"\\\\\\\\$\\\\\\\\{\\\",\\nend:\\\"\\\\\\\\}\\\",keywords:g,contains:[]},y={begin:\\\"html`\\\",end:\\\"\\\",starts:{end:\\\"`\\\",\\nreturnEnd:!1,contains:[o.BACKSLASH_ESCAPE,A],subLanguage:\\\"xml\\\"}},N={\\nbegin:\\\"css`\\\",end:\\\"\\\",starts:{end:\\\"`\\\",returnEnd:!1,\\ncontains:[o.BACKSLASH_ESCAPE,A],subLanguage:\\\"css\\\"}},_={className:\\\"string\\\",\\nbegin:\\\"`\\\",end:\\\"`\\\",contains:[o.BACKSLASH_ESCAPE,A]},f={className:\\\"comment\\\",\\nvariants:[o.COMMENT(/\\\\/\\\\*\\\\*(?!\\\\/)/,\\\"\\\\\\\\*/\\\",{relevance:0,contains:[{\\nbegin:\\\"(?=@[A-Za-z]+)\\\",relevance:0,contains:[{className:\\\"doctag\\\",\\nbegin:\\\"@[A-Za-z]+\\\"},{className:\\\"type\\\",begin:\\\"\\\\\\\\{\\\",end:\\\"\\\\\\\\}\\\",excludeEnd:!0,\\nexcludeBegin:!0,relevance:0},{className:\\\"variable\\\",begin:b+\\\"(?=\\\\\\\\s*(-)|$)\\\",\\nendsParent:!0,relevance:0},{begin:/(?=[^\\\\n])\\\\s/,relevance:0}]}]\\n}),o.C_BLOCK_COMMENT_MODE,o.C_LINE_COMMENT_MODE]\\n},h=[o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,y,N,_,E];A.contains=h.concat({\\nbegin:/\\\\{/,end:/\\\\}/,keywords:g,contains:[\\\"self\\\"].concat(h)})\\n;const v=[].concat(f,A.contains),p=v.concat([{begin:/\\\\(/,end:/\\\\)/,keywords:g,\\ncontains:[\\\"self\\\"].concat(v)}]),S={className:\\\"params\\\",begin:/\\\\(/,end:/\\\\)/,\\nexcludeBegin:!0,excludeEnd:!0,keywords:g,contains:p},w={variants:[{\\nmatch:[/class/,/\\\\s+/,b,/\\\\s+/,/extends/,/\\\\s+/,l.concat(b,\\\"(\\\",l.concat(/\\\\./,b),\\\")*\\\")],\\nscope:{1:\\\"keyword\\\",3:\\\"title.class\\\",5:\\\"keyword\\\",7:\\\"title.class.inherited\\\"}},{\\nmatch:[/class/,/\\\\s+/,b],scope:{1:\\\"keyword\\\",3:\\\"title.class\\\"}}]},R={relevance:0,\\nmatch:l.either(/\\\\bJSON/,/\\\\b[A-Z][a-z]+([A-Z][a-z]*|\\\\d)*/,/\\\\b[A-Z]{2,}([A-Z][a-z]+|\\\\d)+([A-Z][a-z]*)*/,/\\\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\\\d)*([A-Z][a-z]*)*/),\\nclassName:\\\"title.class\\\",keywords:{_:[...t,...s]}},O={variants:[{\\nmatch:[/function/,/\\\\s+/,b,/(?=\\\\s*\\\\()/]},{match:[/function/,/\\\\s*(?=\\\\()/]}],\\nclassName:{1:\\\"keyword\\\",3:\\\"title.function\\\"},label:\\\"func.def\\\",contains:[S],\\nillegal:/%/},k={\\nmatch:l.concat(/\\\\b/,(I=[...r,\\\"super\\\"],l.concat(\\\"(?!\\\",I.join(\\\"|\\\"),\\\")\\\")),b,l.lookahead(/\\\\(/)),\\nclassName:\\\"title.function\\\",relevance:0};var I;const x={\\nbegin:l.concat(/\\\\./,l.lookahead(l.concat(b,/(?![0-9A-Za-z$_(])/))),end:b,\\nexcludeBegin:!0,keywords:\\\"prototype\\\",className:\\\"property\\\",relevance:0},T={\\nmatch:[/get|set/,/\\\\s+/,b,/(?=\\\\()/],className:{1:\\\"keyword\\\",3:\\\"title.function\\\"},\\ncontains:[{begin:/\\\\(\\\\)/},S]\\n},C=\\\"(\\\\\\\\([^()]*(\\\\\\\\([^()]*(\\\\\\\\([^()]*\\\\\\\\)[^()]*)*\\\\\\\\)[^()]*)*\\\\\\\\)|\\\"+o.UNDERSCORE_IDENT_RE+\\\")\\\\\\\\s*=>\\\",M={\\nmatch:[/const|var|let/,/\\\\s+/,b,/\\\\s*/,/=\\\\s*/,/(async\\\\s*)?/,l.lookahead(C)],\\nkeywords:\\\"async\\\",className:{1:\\\"keyword\\\",3:\\\"title.function\\\"},contains:[S]}\\n;return{name:\\\"Javascript\\\",aliases:[\\\"js\\\",\\\"jsx\\\",\\\"mjs\\\",\\\"cjs\\\"],keywords:g,exports:{\\nPARAMS_CONTAINS:p,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/,\\ncontains:[o.SHEBANG({label:\\\"shebang\\\",binary:\\\"node\\\",relevance:5}),{\\nlabel:\\\"use_strict\\\",className:\\\"meta\\\",relevance:10,\\nbegin:/^\\\\s*['\\\"]use (strict|asm)['\\\"]/\\n},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,y,N,_,f,E,R,{className:\\\"attr\\\",\\nbegin:b+l.lookahead(\\\":\\\"),relevance:0},M,{\\nbegin:\\\"(\\\"+o.RE_STARTERS_RE+\\\"|\\\\\\\\b(case|return|throw)\\\\\\\\b)\\\\\\\\s*\\\",\\nkeywords:\\\"return throw case\\\",relevance:0,contains:[f,o.REGEXP_MODE,{\\nclassName:\\\"function\\\",begin:C,returnBegin:!0,end:\\\"\\\\\\\\s*=>\\\",contains:[{\\nclassName:\\\"params\\\",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{\\nclassName:null,begin:/\\\\(\\\\s*\\\\)/,skip:!0},{begin:/\\\\(/,end:/\\\\)/,excludeBegin:!0,\\nexcludeEnd:!0,keywords:g,contains:p}]}]},{begin:/,/,relevance:0},{match:/\\\\s+/,\\nrelevance:0},{variants:[{begin:\\\"\u003C>\\\",end:\\\"\u003C/>\\\"},{\\nmatch:/\u003C[A-Za-z0-9\\\\\\\\._:-]+\\\\s*\\\\/>/},{begin:d.begin,\\n\\\"on:begin\\\":d.isTrulyOpeningTag,end:d.end}],subLanguage:\\\"xml\\\",contains:[{\\nbegin:d.begin,end:d.end,skip:!0,contains:[\\\"self\\\"]}]}]},O,{\\nbeginKeywords:\\\"while if switch catch for\\\"},{\\nbegin:\\\"\\\\\\\\b(?!function)\\\"+o.UNDERSCORE_IDENT_RE+\\\"\\\\\\\\([^()]*(\\\\\\\\([^()]*(\\\\\\\\([^()]*\\\\\\\\)[^()]*)*\\\\\\\\)[^()]*)*\\\\\\\\)\\\\\\\\s*\\\\\\\\{\\\",\\nreturnBegin:!0,label:\\\"func.def\\\",contains:[S,o.inherit(o.TITLE_MODE,{begin:b,\\nclassName:\\\"title.function\\\"})]},{match:/\\\\.\\\\.\\\\./,relevance:0},x,{match:\\\"\\\\\\\\$\\\"+b,\\nrelevance:0},{match:[/\\\\bconstructor(?=\\\\s*\\\\()/],className:{1:\\\"title.function\\\"},\\ncontains:[S]},k,{relevance:0,match:/\\\\b[A-Z][A-Z_0-9]+\\\\b/,\\nclassName:\\\"variable.constant\\\"},w,T,{match:/\\\\$[(.]/}]}}})()\\n;hljs.registerLanguage(\\\"javascript\\\",e)})();/*! `rust` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\";return e=>{const t=e.regex,n={\\nclassName:\\\"title.function.invoke\\\",relevance:0,\\nbegin:t.concat(/\\\\b/,/(?!let\\\\b)/,e.IDENT_RE,t.lookahead(/\\\\s*\\\\(/))\\n},a=\\\"([ui](8|16|32|64|128|size)|f(32|64))?\\\",i=[\\\"drop \\\",\\\"Copy\\\",\\\"Send\\\",\\\"Sized\\\",\\\"Sync\\\",\\\"Drop\\\",\\\"Fn\\\",\\\"FnMut\\\",\\\"FnOnce\\\",\\\"ToOwned\\\",\\\"Clone\\\",\\\"Debug\\\",\\\"PartialEq\\\",\\\"PartialOrd\\\",\\\"Eq\\\",\\\"Ord\\\",\\\"AsRef\\\",\\\"AsMut\\\",\\\"Into\\\",\\\"From\\\",\\\"Default\\\",\\\"Iterator\\\",\\\"Extend\\\",\\\"IntoIterator\\\",\\\"DoubleEndedIterator\\\",\\\"ExactSizeIterator\\\",\\\"SliceConcatExt\\\",\\\"ToString\\\",\\\"assert!\\\",\\\"assert_eq!\\\",\\\"bitflags!\\\",\\\"bytes!\\\",\\\"cfg!\\\",\\\"col!\\\",\\\"concat!\\\",\\\"concat_idents!\\\",\\\"debug_assert!\\\",\\\"debug_assert_eq!\\\",\\\"env!\\\",\\\"panic!\\\",\\\"file!\\\",\\\"format!\\\",\\\"format_args!\\\",\\\"include_bin!\\\",\\\"include_str!\\\",\\\"line!\\\",\\\"local_data_key!\\\",\\\"module_path!\\\",\\\"option_env!\\\",\\\"print!\\\",\\\"println!\\\",\\\"select!\\\",\\\"stringify!\\\",\\\"try!\\\",\\\"unimplemented!\\\",\\\"unreachable!\\\",\\\"vec!\\\",\\\"write!\\\",\\\"writeln!\\\",\\\"macro_rules!\\\",\\\"assert_ne!\\\",\\\"debug_assert_ne!\\\"]\\n;return{name:\\\"Rust\\\",aliases:[\\\"rs\\\"],keywords:{$pattern:e.IDENT_RE+\\\"!?\\\",\\ntype:[\\\"i8\\\",\\\"i16\\\",\\\"i32\\\",\\\"i64\\\",\\\"i128\\\",\\\"isize\\\",\\\"u8\\\",\\\"u16\\\",\\\"u32\\\",\\\"u64\\\",\\\"u128\\\",\\\"usize\\\",\\\"f32\\\",\\\"f64\\\",\\\"str\\\",\\\"char\\\",\\\"bool\\\",\\\"Box\\\",\\\"Option\\\",\\\"Result\\\",\\\"String\\\",\\\"Vec\\\"],\\nkeyword:[\\\"abstract\\\",\\\"as\\\",\\\"async\\\",\\\"await\\\",\\\"become\\\",\\\"box\\\",\\\"break\\\",\\\"const\\\",\\\"continue\\\",\\\"crate\\\",\\\"do\\\",\\\"dyn\\\",\\\"else\\\",\\\"enum\\\",\\\"extern\\\",\\\"false\\\",\\\"final\\\",\\\"fn\\\",\\\"for\\\",\\\"if\\\",\\\"impl\\\",\\\"in\\\",\\\"let\\\",\\\"loop\\\",\\\"macro\\\",\\\"match\\\",\\\"mod\\\",\\\"move\\\",\\\"mut\\\",\\\"override\\\",\\\"priv\\\",\\\"pub\\\",\\\"ref\\\",\\\"return\\\",\\\"self\\\",\\\"Self\\\",\\\"static\\\",\\\"struct\\\",\\\"super\\\",\\\"trait\\\",\\\"true\\\",\\\"try\\\",\\\"type\\\",\\\"typeof\\\",\\\"unsafe\\\",\\\"unsized\\\",\\\"use\\\",\\\"virtual\\\",\\\"where\\\",\\\"while\\\",\\\"yield\\\"],\\nliteral:[\\\"true\\\",\\\"false\\\",\\\"Some\\\",\\\"None\\\",\\\"Ok\\\",\\\"Err\\\"],built_in:i},illegal:\\\"\u003C/\\\",\\ncontains:[e.C_LINE_COMMENT_MODE,e.COMMENT(\\\"/\\\\\\\\*\\\",\\\"\\\\\\\\*/\\\",{contains:[\\\"self\\\"]\\n}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?\\\"/,illegal:null}),{\\nclassName:\\\"string\\\",variants:[{begin:/b?r(#*)\\\"(.|\\\\n)*?\\\"\\\\1(?!#)/},{\\nbegin:/b?'\\\\\\\\?(x\\\\w{2}|u\\\\w{4}|U\\\\w{8}|.)'/}]},{className:\\\"symbol\\\",\\nbegin:/'[a-zA-Z_][a-zA-Z0-9_]*/},{className:\\\"number\\\",variants:[{\\nbegin:\\\"\\\\\\\\b0b([01_]+)\\\"+a},{begin:\\\"\\\\\\\\b0o([0-7_]+)\\\"+a},{\\nbegin:\\\"\\\\\\\\b0x([A-Fa-f0-9_]+)\\\"+a},{\\nbegin:\\\"\\\\\\\\b(\\\\\\\\d[\\\\\\\\d_]*(\\\\\\\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)\\\"+a}],relevance:0},{\\nbegin:[/fn/,/\\\\s+/,e.UNDERSCORE_IDENT_RE],className:{1:\\\"keyword\\\",\\n3:\\\"title.function\\\"}},{className:\\\"meta\\\",begin:\\\"#!?\\\\\\\\[\\\",end:\\\"\\\\\\\\]\\\",contains:[{\\nclassName:\\\"string\\\",begin:/\\\"/,end:/\\\"/}]},{\\nbegin:[/let/,/\\\\s+/,/(?:mut\\\\s+)?/,e.UNDERSCORE_IDENT_RE],className:{1:\\\"keyword\\\",\\n3:\\\"keyword\\\",4:\\\"variable\\\"}},{\\nbegin:[/for/,/\\\\s+/,e.UNDERSCORE_IDENT_RE,/\\\\s+/,/in/],className:{1:\\\"keyword\\\",\\n3:\\\"variable\\\",5:\\\"keyword\\\"}},{begin:[/type/,/\\\\s+/,e.UNDERSCORE_IDENT_RE],\\nclassName:{1:\\\"keyword\\\",3:\\\"title.class\\\"}},{\\nbegin:[/(?:trait|enum|struct|union|impl|for)/,/\\\\s+/,e.UNDERSCORE_IDENT_RE],\\nclassName:{1:\\\"keyword\\\",3:\\\"title.class\\\"}},{begin:e.IDENT_RE+\\\"::\\\",keywords:{\\nkeyword:\\\"Self\\\",built_in:i}},{className:\\\"punctuation\\\",begin:\\\"->\\\"},n]}}})()\\n;hljs.registerLanguage(\\\"rust\\\",e)})();/*! `java` grammar compiled for Highlight.js 11.4.0 */\\n(()=>{var e=(()=>{\\\"use strict\\\"\\n;var e=\\\"\\\\\\\\.([0-9](_*[0-9])*)\\\",a=\\\"[0-9a-fA-F](_*[0-9a-fA-F])*\\\",n={\\nclassName:\\\"number\\\",variants:[{\\nbegin:`(\\\\\\\\b([0-9](_*[0-9])*)((${e})|\\\\\\\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\\\\\\\b`\\n},{begin:`\\\\\\\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\\\\\\\b|\\\\\\\\.([fFdD]\\\\\\\\b)?)`},{\\nbegin:`(${e})[fFdD]?\\\\\\\\b`},{begin:\\\"\\\\\\\\b([0-9](_*[0-9])*)[fFdD]\\\\\\\\b\\\"},{\\nbegin:`\\\\\\\\b0[xX]((${a})\\\\\\\\.?|(${a})?\\\\\\\\.(${a}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\\\\\\\b`\\n},{begin:\\\"\\\\\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\\\\\b\\\"},{begin:`\\\\\\\\b0[xX](${a})[lL]?\\\\\\\\b`},{\\nbegin:\\\"\\\\\\\\b0(_*[0-7])*[lL]?\\\\\\\\b\\\"},{begin:\\\"\\\\\\\\b0[bB][01](_*[01])*[lL]?\\\\\\\\b\\\"}],\\nrelevance:0};function s(e,a,n){return-1===n?\\\"\\\":e.replace(a,(t=>s(e,a,n-1)))}\\nreturn e=>{e.regex\\n;const a=\\\"[\\\\xc0-\\\\u02b8a-zA-Z_$][\\\\xc0-\\\\u02b8a-zA-Z_$0-9]*\\\",t=a+s(\\\"(?:\u003C\\\"+a+\\\"~~~(?:\\\\\\\\s*,\\\\\\\\s*\\\"+a+\\\"~~~)*>)?\\\",/~~~/g,2),i={\\nkeyword:[\\\"synchronized\\\",\\\"abstract\\\",\\\"private\\\",\\\"var\\\",\\\"static\\\",\\\"if\\\",\\\"const \\\",\\\"for\\\",\\\"while\\\",\\\"strictfp\\\",\\\"finally\\\",\\\"protected\\\",\\\"import\\\",\\\"native\\\",\\\"final\\\",\\\"void\\\",\\\"enum\\\",\\\"else\\\",\\\"break\\\",\\\"transient\\\",\\\"catch\\\",\\\"instanceof\\\",\\\"volatile\\\",\\\"case\\\",\\\"assert\\\",\\\"package\\\",\\\"default\\\",\\\"public\\\",\\\"try\\\",\\\"switch\\\",\\\"continue\\\",\\\"throws\\\",\\\"protected\\\",\\\"public\\\",\\\"private\\\",\\\"module\\\",\\\"requires\\\",\\\"exports\\\",\\\"do\\\",\\\"sealed\\\"],\\nliteral:[\\\"false\\\",\\\"true\\\",\\\"null\\\"],\\ntype:[\\\"char\\\",\\\"boolean\\\",\\\"long\\\",\\\"float\\\",\\\"int\\\",\\\"byte\\\",\\\"short\\\",\\\"double\\\"],\\nbuilt_in:[\\\"super\\\",\\\"this\\\"]},r={className:\\\"meta\\\",begin:\\\"@\\\"+a,contains:[{\\nbegin:/\\\\(/,end:/\\\\)/,contains:[\\\"self\\\"]}]},l={className:\\\"params\\\",begin:/\\\\(/,\\nend:/\\\\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0}\\n;return{name:\\\"Java\\\",aliases:[\\\"jsp\\\"],keywords:i,illegal:/\u003C\\\\/|#/,\\ncontains:[e.COMMENT(\\\"/\\\\\\\\*\\\\\\\\*\\\",\\\"\\\\\\\\*/\\\",{relevance:0,contains:[{begin:/\\\\w+@/,\\nrelevance:0},{className:\\\"doctag\\\",begin:\\\"@[A-Za-z]+\\\"}]}),{\\nbegin:/import java\\\\.[a-z]+\\\\./,keywords:\\\"import\\\",relevance:2\\n},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/\\\"\\\"\\\"/,end:/\\\"\\\"\\\"/,\\nclassName:\\\"string\\\",contains:[e.BACKSLASH_ESCAPE]\\n},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{\\nmatch:[/\\\\b(?:class|interface|enum|extends|implements|new)/,/\\\\s+/,a],className:{\\n1:\\\"keyword\\\",3:\\\"title.class\\\"}},{match:/non-sealed/,scope:\\\"keyword\\\"},{\\nbegin:[a,/\\\\s+/,a,/\\\\s+/,/=/],className:{1:\\\"type\\\",3:\\\"variable\\\",5:\\\"operator\\\"}},{\\nbegin:[/record/,/\\\\s+/,a],className:{1:\\\"keyword\\\",3:\\\"title.class\\\"},\\ncontains:[l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{\\nbeginKeywords:\\\"new throw return else\\\",relevance:0},{\\nbegin:[\\\"(?:\\\"+t+\\\"\\\\\\\\s+)\\\",e.UNDERSCORE_IDENT_RE,/\\\\s*(?=\\\\()/],className:{\\n2:\\\"title.function\\\"},keywords:i,contains:[{className:\\\"params\\\",begin:/\\\\(/,\\nend:/\\\\)/,keywords:i,relevance:0,\\ncontains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,n,e.C_BLOCK_COMMENT_MODE]\\n},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},n,r]}}})()\\n;hljs.registerLanguage(\\\"java\\\",e)})();\\nexports.hljs = hljs;\\n\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/tiddlywiki/highlight/highlight.js\",\"module-type\":\"library\"},\"$:/plugins/tiddlywiki/highlight/highlight.css\":{\"text\":\"/*!\\n Theme: Default\\n Description: Original highlight.js style\\n Author: (c) Ivan Sagalaev \u003Cmaniac@softwaremaniacs.org>\\n Maintainer: @highlightjs/core-team\\n Website: https://highlightjs.org/\\n License: see project LICENSE\\n Touched: 2021\\n*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#f3f3f3;color:#444}.hljs-comment{color:#697070}.hljs-punctuation,.hljs-tag{color:#444a}.hljs-tag .hljs-attr,.hljs-tag .hljs-name{color:#444}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{font-weight:700}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#800}.hljs-section,.hljs-title{color:#800;font-weight:700}.hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#ab5656}.hljs-literal{color:#695}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}\",\"type\":\"text/css\",\"title\":\"$:/plugins/tiddlywiki/highlight/highlight.css\",\"tags\":\"[[$:/tags/Stylesheet]]\"},\"$:/plugins/tiddlywiki/highlight/highlightblock.js\":{\"title\":\"$:/plugins/tiddlywiki/highlight/highlightblock.js\",\"text\":\"/*\\\\\\ntitle: $:/plugins/tiddlywiki/highlight/highlightblock.js\\ntype: application/javascript\\nmodule-type: widget\\n\\nWraps up the fenced code blocks parser for highlight and use in TiddlyWiki5\\n\\n\\\\*/\\n(function() {\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nvar TYPE_MAPPINGS_BASE = \\\"$:/config/HighlightPlugin/TypeMappings/\\\";\\n\\nvar CodeBlockWidget = require(\\\"$:/core/modules/widgets/codeblock.js\\\").codeblock;\\n\\nvar hljs = require(\\\"$:/plugins/tiddlywiki/highlight/highlight.js\\\");\\n\\nif(hljs.getLanguage !== undefined) {\\n\\t// load language definitions\\n\\t$tw.utils.each($tw.modules.types[\\\"highlight\\\"],function(moduleInfo,moduleName) {\\n\\t\\t$tw.utils.evalSandboxed(moduleInfo.definition,{hljs:hljs, exports:{}},moduleName);\\n\\t});\\n\\t\\n\\tCodeBlockWidget.prototype.postRender = function() {\\n\\t\\tvar domNode = this.domNodes[0],\\n\\t\\t\\tlanguage = this.language,\\n\\t\\t\\ttiddler = this.wiki.getTiddler(TYPE_MAPPINGS_BASE + language);\\n\\t\\tif(tiddler) {\\n\\t\\t\\tlanguage = tiddler.fields.text || \\\"\\\";\\n\\t\\t}\\n\\t\\tif(language && hljs.getLanguage(language)) {\\n\\t\\t\\tdomNode.className = \\\"hljs\\\";\\n\\t\\t\\tdomNode.children[0].className = language.toLowerCase() + \\\" hljs\\\";\\n\\t\\t\\tif($tw.browser && !domNode.isTiddlyWikiFakeDom) {\\n\\t\\t\\t\\thljs.highlightElement(domNode.children[0]);\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tvar text = domNode.textContent;\\n\\t\\t\\t\\tdomNode.children[0].innerHTML = hljs.highlight(text,{language: language, ignoreIllegals: true}).value;\\n\\t\\t\\t\\t// If we're using the fakedom then specially save the original raw text\\n\\t\\t\\t\\tif(domNode.isTiddlyWikiFakeDom) {\\n\\t\\t\\t\\t\\tdomNode.children[0].textInnerHTML = text;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t};\\n}\\t\\n\\n})();\\n\",\"type\":\"application/javascript\",\"module-type\":\"widget\"},\"$:/plugins/tiddlywiki/highlight/license\":{\"title\":\"$:/plugins/tiddlywiki/highlight/license\",\"type\":\"text/plain\",\"text\":\"Copyright (c) 2006, Ivan Sagalaev\\nAll rights reserved.\\nRedistribution and use in source and binary forms, with or without\\nmodification, are permitted provided that the following conditions are met:\\n\\n * Redistributions of source code must retain the above copyright\\n notice, this list of conditions and the following disclaimer.\\n * Redistributions in binary form must reproduce the above copyright\\n notice, this list of conditions and the following disclaimer in the\\n documentation and/or other materials provided with the distribution.\\n * Neither the name of highlight.js nor the names of its contributors\\n may be used to endorse or promote products derived from this software\\n without specific prior written permission.\\n\\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY\\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\\nDISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY\\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n\"},\"$:/plugins/tiddlywiki/highlight/readme\":{\"title\":\"$:/plugins/tiddlywiki/highlight/readme\",\"text\":\"\\\\define highlightVersion() 11.4.0\\n\\nThis plugin provides syntax highlighting of code blocks using version \u003C\u003ChighlightVersion>> of [[highlight.js|https://github.com/isagalaev/highlight.js]] from Ivan Sagalaev. This plugin does not work on browsers that do not fully support ~JavaScript ES6 (2015). If you need highlight.js running on those legacy browsers, you would need to install the \\\"Highlight (Legacy)\\\" plugin instead. Here's a [[ES6 compatibility table|https://caniuse.com/?search=es6]].\\n\\n! Built-in Language Brushes\\n\\nThe plugin includes support for the following common languages (referred to as \\\"brushes\\\" by highlight.js):\\n\\n* bash\\n* c\\n* cpp\\n* csharp\\n* css\\n* diff\\n* go\\n* html, xml\\n* java\\n* javascript\\n* json\\n* kotlin\\n* less\\n* lua\\n* makefile\\n* markdown\\n* objectivec\\n* perl\\n* php\\n* plaintext\\n* python\\n* R\\n* ruby\\n* rust\\n* scss\\n* sql\\n* shell session\\n* swift\\n* toml, ini\\n* typescript\\n* visual basic .net\\n* yaml\\n\\nAnd these additional ones:\\n\\n* apache config\\n* dockerfile\\n* fortran\\n* latex\\n* nginx config\\n\\nThe mapping between a MIME type and a highlight.js language specifier is accomplished via mapping tiddlers whose titles start with `$:/config/HighlightPlugin/TypeMappings/`.\\n\"},\"$:/plugins/tiddlywiki/highlight/styles\":{\"title\":\"$:/plugins/tiddlywiki/highlight/styles\",\"tags\":\"[[$:/tags/Stylesheet]]\",\"text\":\"pre.hljs {\\n padding: 0;\\n}\\n\\npre code.hljs {\\n padding: 0.5em;\\n}\\n\\n.hljs {\\n background: \u003C\u003Ccolour tiddler-editor-background>>;\\n color: \u003C\u003Ccolour foreground>>;\\n -webkit-text-size-adjust:none;\\n}\\n\\n.hljs-comment,\\n.hljs-quote {\\n color: #93a1a1;\\n}\\n\\n/* Solarized Green */\\n.hljs-keyword,\\n.hljs-selector-tag,\\n.hljs-addition {\\n color: #859900;\\n}\\n\\n/* Solarized Cyan */\\n.hljs-number,\\n.hljs-string,\\n.hljs-meta .hljs-string,\\n.hljs-literal,\\n.hljs-doctag,\\n.hljs-regexp {\\n color: #2aa198;\\n}\\n\\n/* Solarized Blue */\\n.hljs-title,\\n.hljs-section,\\n.hljs-name,\\n.hljs-selector-id,\\n.hljs-selector-class {\\n color: #268bd2;\\n}\\n\\n/* Solarized Yellow */\\n.hljs-attribute,\\n.hljs-attr,\\n.hljs-variable,\\n.hljs-template-variable,\\n.hljs-class .hljs-title,\\n.hljs-type {\\n color: #b58900;\\n}\\n\\n/* Solarized Orange */\\n.hljs-symbol,\\n.hljs-bullet,\\n.hljs-subst,\\n.hljs-meta,\\n.hljs-meta .hljs-keyword,\\n.hljs-selector-attr,\\n.hljs-selector-pseudo,\\n.hljs-link {\\n color: #cb4b16;\\n}\\n\\n/* Solarized Red */\\n.hljs-built_in,\\n.hljs-deletion {\\n color: #dc322f;\\n}\\n\\n.hljs-formula {\\n background: #eee8d5;\\n}\\n\\n.hljs-emphasis {\\n font-style: italic;\\n}\\n\\n.hljs-strong {\\n font-weight: bold;\\n}\\n\"},\"$:/plugins/tiddlywiki/highlight/usage\":{\"title\":\"$:/plugins/tiddlywiki/highlight/usage\",\"text\":\"\\\\import $:/plugins/tiddlywiki/highlight/readme\\n\\n\\\\define jsDelivrLink() https://www.jsdelivr.com/package/gh/highlightjs/cdn-release?path=build%2Flanguages&version=$(highlightVersion)$\\n\\\\define unpkgLink() https://unpkg.com/browse/@highlightjs/cdn-assets@$(highlightVersion)$/languages/\\n\\n! Usage\\n\\nSyntax highlighting is triggered when you add language information to code blocks defined with triple backticks or with the `\u003C$codeblock>` widget. For fenced code blocks, specify the code's language immediately after the first set of backticks:\\n\\n```\\n ```js\\n var a = b + c; // Highlighted as JavaScript\\n ```\\n```\\n\\n! Adding Themes\\n\\nYou can add themes from highlight.js by copying the CSS to a new tiddler and tagging it with [[$:/tags/Stylesheet]]. The available themes can be found on GitHub:\\n\\nhttps://github.com/isagalaev/highlight.js/tree/master/src/styles\\n\\n! Supporting Additional Languages\\n\\nThe [[highlight.js|https://github.com/highlightjs/highlight.js]] project supports many languages. Only a subset of these languages are supported by the plugin. You can change the language set using either of the following methods:\\n\\n!! Browser-based Method\\n\\nYou can import language definitions into \u003C$text text=\\\"JavaScript\\\"/> tiddlers, with their `module-type` set to \\\"highlight\\\".\\n\\nFirst, locate the language file(s) you need. You can fetch the files from the following CDNs:\\n\\n* \u003Ca href=\u003C\u003CjsDelivrLink>>>jsDelivr\u003C/a>\\n* \u003Ca href=\u003C\u003CunpkgLink>>>unpkg\u003C/a>\\n\\nThen, click the button below to create a \\\"highlight\\\" module. Copy and paste the content of a language file into the the text area. Give your tiddler a meaningful title so you can keep track of the languages you've installed. You may choose to either create one tiddler per language or lump all language definitions into one tiddler. Save and reload your wiki.\\n\\n\u003C$button tooltip=\\\"add new languages\\\" aria-label=\\\"add new languages\\\" >\\n\u003C$action-createtiddler $basetitle=\\\"highlight-language.js\\\" text=\\\"\\\" type=\\\"application/javascript\\\" module-type=\\\"highlight\\\">\\n\u003C$action-sendmessage $message=\\\"tm-edit-tiddler\\\" $param=\u003C\u003CcreateTiddler-title>>/>\\n\u003C/$action-createtiddler>\\nAdd New Language(s)\\n\u003C/$button>\\n\\n!!! Keeping Your Language Definitions Up-to-date\\n\\nRemember to update installed languages whenever this plugin is upgraded: \\n\\n\u003Cul>\\n\u003C$list filter=\\\"[[highlight]modules[]]\\\" emptyMessage=\\\"\\\"\\\"\u003Cli>(none installed)\u003C/li>\\\"\\\"\\\">\\n\u003Cli>\u003C$link>\u003C\u003CcurrentTiddler>>\u003C/$link>\u003C/li>\\n\u003C/$list>\\n\u003C/ul>\\n\\n!! Via \u003C$text text=\\\"TiddlyWiki\\\"/> on Node.js\\n\\nYou can replace the supplied highlight.js library with a custom version:\\n\\n# Go to the highlight.js project [[download page|https://highlightjs.org/download/]], select the language definitions to include, and press the Download button to download a zip archive containing customised support files for a highlight.js syntax highlighting server.\\n# Locate the `highlight.min.js` file in the highlight plugin -- on a stock Debian 8 system running Tiddlywiki5 under node-js, it is in `/usr/local/lib/node_modules/tiddlywiki/plugins/tiddlywiki/highlight/files/`.\\n# Replace the plugin `highlight.min.js` file located in step 2 with the one from the downloaded archive obtained in step 1.\\n# Restart the ~TiddlyWiki server.\"}}}","revision":"0","bag":"default"} , @@ -256,7 +256,7 @@ , {"title":"$:/StoryList-1","created":"20240223133846487","list":"About Drag&Drop [[Ceci n’est pas une pipe.]]","modified":"20240303072406712","type":"text/vnd.tiddlywiki","revision":"0","bag":"default"} , -{"title":"$:/StoryList-2","created":"20240223125619775","list":"[[Filter the story lists]] [[Star me on GitHub]] [[Keyboard Shortcuts]] [[Tiddler Links]] [[Some Settings]] [[Headers & Footers]]","modified":"20240303082837064","type":"text/vnd.tiddlywiki","revision":"0","bag":"default"} +{"title":"$:/StoryList-2","created":"20240223125619775","list":"[[Filter the story lists]] [[Star me on GitHub]] [[Keyboard Shortcuts]] [[Tiddler Links]] [[Some Settings]] [[Headers & Footers]]","modified":"20240303091746839","type":"text/vnd.tiddlywiki","revision":"0","bag":"default"} , {"title":"$:/StoryList-3","created":"20240227195544397","list":"","modified":"20240303033403610","type":"text/vnd.tiddlywiki","revision":"0","bag":"default"} ,