From f5c480dcea5dbfa235673bad851697a0cb4aec3f Mon Sep 17 00:00:00 2001 From: Leon van Kammen Date: Fri, 12 Jul 2024 16:19:24 +0000 Subject: [PATCH] doc update --- index.html | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/index.html b/index.html index be8460f..4f9b89d 100644 --- a/index.html +++ b/index.html @@ -754,6 +754,8 @@ Error message and password prompt
  • AFRAME template
  • +
  • automatic reflection mapping
  • +
  • centralized.png
  • changing object materials
  • @@ -973,7 +975,7 @@ Error message and password prompt {"created":"20151007165524815","text":"yes","bag":"default","revision":"0","type":"text/vnd.tiddlywiki","title":"$:/config/HideSidebarOnStartup","tags":"","modified":"20230504174422977","creator":"Tobias Beer"}, {"created":"20230424093821723","text":"yes","tags":"","title":"$:/config/HtmlParser/DisableSandbox","modified":"20230424142930452"}, {"created":"20230424140117603","text":"allowvr allowfullscreen allow-scripts","tags":"","title":"$:/config/HtmlParser/SandboxTokens","modified":"20230424142737213"}, -{"created":"20230423174843715","title":"$:/config/Manager/Filter","text":"Example Model Br","modified":"20240711105232976"}, +{"created":"20230423174843715","title":"$:/config/Manager/Filter","text":"topmenu","modified":"20240712161223682"}, {"created":"20230423164137536","text":"","title":"$:/config/Manager/System","modified":"20240130120918487"}, {"created":"20230425162854560","title":"$:/config/Navigation/UpdateAddressBar","text":"permalink","modified":"20230427180247389"}, {"created":"20230424152601270","text":"hide","title":"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/control-panel","modified":"20230424152601270"}, @@ -1017,8 +1019,8 @@ Error message and password prompt {"created":"20230425164931250","title":"$:/state/folded/AFRAME template","text":"show","modified":"20230425164935940"}, {"created":"20230425164931250","title":"$:/state/folded/GLSL shader template","text":"show","modified":"20230425164939576"}, {"created":"20230424142403302","text":"checked","title":"$:/state/import/select-all","modified":"20230424142404392"}, -{"created":"20230423163640468","title":"$:/state/notebook-sidebar","text":"no","modified":"20240711105328396"}, -{"created":"20230423163641722","title":"$:/state/notebook-sidebar-section","text":"","modified":"20240711105309653"}, +{"created":"20230423163640468","title":"$:/state/notebook-sidebar","text":"yes","modified":"20240712161453232"}, +{"created":"20230423163641722","title":"$:/state/notebook-sidebar-section","text":"","modified":"20240712161854619"}, {"created":"20230427102758222","title":"$:/state/plugin-info--1887569658-$:/plugins/ihm/tidgraph--50210113","text":"documentation","modified":"20230427102759911"}, {"created":"20230427092525294","title":"$:/state/plugin-info--391242618-$:/plugins/tiddlywiki/browser-storage","text":"yes","modified":"20230427092525375"}, {"created":"20230427093219686","title":"$:/state/plugin-info--391242618-$:/plugins/tiddlywiki/browser-storage--605768392","text":"settings","modified":"20230427094141558"}, @@ -1026,7 +1028,7 @@ Error message and password prompt {"created":"20240627123502664","title":"$:/state/plugin-info-1605320774-$:/themes/nico/notebook--1711715474","text":"contents","modified":"20240627123505187"}, {"created":"20230424093627704","title":"$:/state/plugin-info-833095967-Draft of '$:/core'---1604322978","text":"readme","modified":"20230424093629208"}, {"created":"20230423163649566","title":"$:/state/showeditpreview","text":"no","modified":"20240517185422529"}, -{"created":"20230504174435745","title":"$:/state/sidebar","text":"no","modified":"20240711104648207"}, +{"created":"20230504174435745","title":"$:/state/sidebar","text":"no","modified":"20240712161204724"}, {"created":"20230423163453188","title":"$:/state/tab--1963855381","text":"$:/core/ui/ControlPanel/Theme","modified":"20240627122836293"}, {"created":"20230427092954391","title":"$:/state/tab--2112689675","text":"$:/core/ui/ControlPanel/Basics","modified":"20230523124903522"}, {"created":"20230424093058379","title":"$:/state/tab--697582678","text":"$:/core/ui/ControlPanel/Settings/TiddlyWiki","modified":"20230427093030201"}, @@ -1041,7 +1043,7 @@ Error message and password prompt {"created":"20230523125601870","title":"$:/state/toc/Examples-AFRAME-698730194","text":"open","modified":"20230523125608228"}, {"created":"20230523125556071","title":"$:/state/toc/Examples-THREE-698730194","text":"open","modified":"20230523125631521"}, {"created":"20231128144137514","title":"$:/state/toc/Reference-📜 XR Fragments--403145756","text":"open","modified":"20240610173013289"}, -{"created":"20240206123716994","title":"$:/state/toc/Reference-📡 by feature (heuristics)--403145756","text":"close","modified":"20240626100631254"}, +{"created":"20240206123716994","title":"$:/state/toc/Reference-📡 by feature (heuristics)--403145756","text":"close","modified":"20240712161852143"}, {"created":"20240131105439636","title":"$:/state/toc/Reference-📡 feature heuristics--403145756","text":"close","modified":"20240206123704992"}, {"created":"20240105115853354","title":"$:/state/toc/Reference-🧰 libraries--403145756","text":"open","modified":"20240130120742104"}, {"created":"20230622104314194","title":"$:/state/toc/Reference-js/AFRAME--403145756","text":"open","modified":"20230622104328631"}, @@ -1059,7 +1061,7 @@ Error message and password prompt {"created":"20230622104329622","title":"$:/state/toc/Reference/js/AFRAME-THREE.js--403145756","text":"open","modified":"20230622104329622"}, {"created":"20230622111759784","title":"$:/state/toc/Reference/The parser-THREE.js--403145756","text":"open","modified":"20230622111759784"}, {"title":"$:/status/RequireReloadDueToPluginChange","text":"no"}, -{"title":"$:/StoryList","text":"","list":"[[XR Fragments]]"}, +{"title":"$:/StoryList","created":"20240712161220658","text":"","list":"[[XR Fragments]]","modified":"20240712161504205"}, {"created":"20230423163445948","title":"$:/theme","text":"$:/themes/nico/notebook","modified":"20240627122838288"}, {"created":"20240627122947980","text":"{\n \"tiddlers\": {\n \"$:/themes/nico/notebook/LICENSE\": {\n \"title\": \"$:/themes/nico/notebook/LICENSE\",\n \"created\": \"20200419141443144\",\n \"modified\": \"20210118213330307\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\nMIT License Copyright (c) 2020 [[Nicolas Petton|https://nicolas.petton.fr]] nicolas@petton.fr\\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 furnished\\nto do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice (including the next\\nparagraph) shall be included in all copies or substantial portions of the\\nSoftware.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\\nOR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF\\nOR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\"\n },\n \"$:/themes/nico/notebook/themetweaks\": {\n \"title\": \"$:/themes/nico/notebook/themetweaks\",\n \"created\": \"20201217172915960\",\n \"modified\": \"20210123211851680\",\n \"tags\": \"$:/tags/ControlPanel/Appearance\",\n \"caption\": \"{{$:/language/ThemeTweaks/ThemeTweaks}}\",\n \"text\": \"\\\\define lingo-base() $:/language/ThemeTweaks/\\n\\nYou can tweak certain aspects of the ''Notebook'' theme.\\n\\n! \u003C\u003Clingo Options>>\\n\\n|\u003C$link to=\\\"$:/themes/nico/notebook/options/stickytitles\\\">\u003C\u003Clingo Options/StickyTitles>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Options/StickyTitles/Hint>>// |\u003C$select tiddler=\\\"$:/themes/nico/notebook/options/stickytitles\\\">\u003Coption value=\\\"no\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"yes\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/options/codewrapping\\\">\u003C\u003Clingo Options/CodeWrapping>>\u003C/$link> |\u003C$select tiddler=\\\"$:/themes/tiddlywiki/vanilla/options/codewrapping\\\">\u003Coption value=\\\"pre\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"pre-wrap\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\\\">Reveal tiddler controls on mouseover\u003C/$link> |\u003C$select tiddler=\\\"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\\\">\u003Coption value=\\\"no\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"yes\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n\\n! \u003C\u003Clingo Settings>>\\n\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/fontfamily\\\">\u003C\u003Clingo Settings/FontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/fontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/codefontfamily\\\">\u003C\u003Clingo Settings/CodeFontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/codefontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/editorfontfamily\\\">\u003C\u003Clingo Settings/EditorFontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/editorfontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n\\n! \u003C\u003Clingo Metrics>>\\n\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\\\">\u003C\u003Clingo Metrics/FontSize>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\\\">\u003C\u003Clingo Metrics/LineHeight>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\\\">\u003C\u003Clingo Metrics/BodyFontSize>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/bodyfontsize\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\\\">\u003C\u003Clingo Metrics/BodyLineHeight>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/bodylineheight\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\\\">\u003C\u003Clingo Metrics/SidebarBreakpoint>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Metrics/SidebarBreakpoint/Hint>>// |^\u003C$edit-text tiddler=\\\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/metrics/sidebar-width\\\">\u003C\u003Clingo Metrics/SidebarWidth>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Metrics/SidebarWidth/Hint>>// |^\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/sidebar-width\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/metrics/story-width\\\">\u003C\u003Clingo Metrics/StoryWidth>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Metrics/StoryWidth/Hint>>// |^\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/story-width\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n\\n\"\n },\n \"$:/themes/nico/notebook/base\": {\n \"title\": \"$:/themes/nico/notebook/base\",\n \"created\": \"20200419141443144\",\n \"modified\": \"20210120224227503\",\n \"tags\": \"$:/tags/Stylesheet\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\\n\\n\\\\define if-sidebar(text)\\n \u003C$reveal state=\\\"$:/state/notebook-sidebar\\\" type=\\\"match\\\" text=\\\"yes\\\">\\n $text$\\n \u003C/$reveal>\\n\\\\end\\n\\n\\\\define if-reveal-tiddler-controls-on-hover(text)\\n \u003C$reveal state=\\\"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\\\" type=\\\"match\\\" text=\\\"yes\\\">\\n $text$\\n \u003C/$reveal>\\n\\\\end\\n \\n/* Top and bottom bars */\\n\\n/* Hide the top-right bar */\\n.tc-topbar.tc-topbar-right {\\n display: none;\\n}\\n\\ndiv.tc-sidebar-header {\\n padding: 0;\\n min-height: 0;\\n}\\n\\n.tc-story-river {\\n padding: 6px 0 !important;\\n width: 100% !important;\\n max-width: {{$:/themes/nico/notebook/metrics/story-width}} !important;\\n margin: 0 auto !important;\\n margin-top: 34px !important;\\n}\\n\\ndiv.tc-tiddler-frame {\\n width: 100%;\\n margin: 20px 0;\\n background: \u003C\u003Ccolour tiddler-background>>;\\n box-shadow: 0 5px 20px rgba(0,0,0, 0.12);\\n border-radius: 6px;\\n padding: 42px 60px 60px 60px;\\n}\\n\\nh1.tc-site-title {\\n margin-top: 14px;\\n font-size: 1.5em !important;\\n}\\n\\n.nc-bar {\\n padding: 10px;\\n height: {{$:/themes/nico/notebook/metrics/topbar-height}};\\n background: \u003C\u003Ccolour page-background>>;\\n display: flex;\\n justify-content: space-between;\\n}\\n\\n.nc-topbar-wrapper {\\n position: fixed;\\n top: 0;\\n left: 0;\\n right: 0;\\n /* The z-index needs to be above the z-index used in tiddlers in zoomin view */\\n z-index: 501;\\n}\\n\\n.nc-bar.nc-topbar {\\n top: 0;\\n background: \u003C\u003Ccolour page-background>>ee;\\n max-width: calc({{$:/themes/nico/notebook/metrics/story-width}} + 40px);\\n padding: 10px 20px;\\n margin: 0 auto;\\n}\\n\\n.nc-bar.nc-bottombar {\\n position: fixed;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n /* The z-index needs to be above the z-index used in tiddlers in zoomin view */\\n z-index: 501;\\n}\\n\\n.nc-bar .left svg {\\n fill: \u003C\u003Ccolour sidebar-controls-foreground>>;\\n}\\n\\n.nc-bar input[type=\\\"search\\\"] {\\n width: 200px;\\n padding: .6em 1em;\\n margin-top: -.2em;\\n background: \u003C\u003Ccolour sidebar-button-foreground>>44;\\n color: \u003C\u003Ccolour foreground>>cc;\\n transition: all ease-in .2s;\\n border: 1px solid transparent;\\n outline: 0;\\n}\\n\\n.nc-bar input[type=\\\"search\\\"]:focus {\\n width: 300px;\\n background: \u003C\u003Ccolour tiddler-background>>;\\n color: \u003C\u003Ccolour foreground>>;\\n border: 1px solid \u003C\u003Ccolour primary>>;\\n box-shadow: 0 0 .2rem 0 \u003C\u003Ccolour primary>>;\\n}\\n\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button {\\n -webkit-appearance: auto;\\n}\\n\\n.nc-bar .tc-block-dropdown.tc-search-drop-down {\\n margin-left: 0;\\n width: 400px;\\n border: 0;\\n box-shadow: 0 0 6px 0 rgba(0,0,0,.2);\\n border-radius: 6px;\\n padding: 20px 0;\\n}\\n\\n.nc-bar p {\\n margin: 0;\\n}\\n\\n.nc-bar .tc-page-controls {\\n margin-top: 0;\\n}\\n\\n.nc-bar .tc-page-controls button {\\n margin-right: .8em;\\n}\\n\\n.nc-bar .tc-page-controls button .tc-btn-text {\\n font-size: 14px;\\n}\\n\\n.nc-bar .tc-block-dropdown {\\n max-height: 70vh;\\n overflow: auto;\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-topbar {\\n display: none;\\n }\\n\\n .tc-story-river {\\n padding: 0 !important;\\n margin-top: 0 !important;\\n margin-bottom: 60px !important;\\n }\\n\\n div.tc-tiddler-frame {\\n margin: 0;\\n box-shadow: none;\\n border-radius: 0;\\n border-top: 0;\\n }\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-bottombar {\\n display: none;\\n }\\n}\\n\\n@media(max-width: 1100px) {\\n .nc-bar input[type=\\\"search\\\"] {\\n width: 200px;\\n }\\n}\\n\\n/* Sidebar */\\n\\n@keyframes sidebar-appear {\\n 0% {\\n left: -{{$:/themes/nico/notebook/metrics/sidebar-width}};\\n }\\n 100% {\\n left: 0;\\n }\\n}\\n\\n\u003C\u003Cif-sidebar \\\"\\\"\\\"\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-sidebar {\\n animation: sidebar-appear .14s;\\n padding-top: 10px;\\n }\\n}\\n\\\"\\\"\\\">>\\n\\n.nc-sidebar {\\n background: \u003C\u003Ccolour tiddler-background>>;\\n border-right: 1px solid \u003C\u003Ccolour tiddler-border>>;\\n width: {{$:/themes/nico/notebook/metrics/sidebar-width}};\\n overflow-y: auto;\\n overflow-x: hidden;\\n z-index: 100;\\n}\\n\\n.nc-sidebar .segment {\\n border-bottom: 1px solid rgba(0,0,0,.1);\\n}\\n\\n.nc-sidebar ol {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n line-height: 1.8em;\\n}\\n\\n.nc-sidebar ol ol {\\n padding-left: 18px;\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .mobile-only {\\n display: none;\\n }\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .desktop-only {\\n display: none;\\n }\\n}\\n\\n.nc-sidebar h1.tc-site-title {\\n margin: 0;\\n}\\n\\n.nc-sidebar p {\\n margin: 6px 0;\\n}\\n\\n.nc-sidebar .tc-site-subtitle {\\n color: \u003C\u003Ccolour site-title-foreground>>;\\n}\\n\\n.nc-sidebar .section .label {\\n padding: 2px 0;\\n color: \u003C\u003Ccolour site-title-foreground>>;\\n fill: \u003C\u003Ccolour site-title-foreground>>;\\n font-weight: bold;\\n line-height: 1.6em;\\n display: block;\\n width: 100%;\\n text-align: left;\\n padding: 8px 15px;\\n border-radius: 0;\\n}\\n\\n.nc-sidebar .section:not(.open) .label:hover {\\n background: rgba(0,0,0,.06);\\n}\\n\\n.nc-sidebar .section.open .label {\\n color: \u003C\u003Ccolour tiddler-background>>;\\n fill: \u003C\u003Ccolour tiddler-background>>;\\n background: \u003C\u003Ccolour primary>>;\\n border-bottom: 1px solid rgba(0,0,0,.1);\\n}\\n\\n.nc-sidebar .section .label .caret {\\n display: inline-block;\\n width: 15px;\\n float: right;\\n}\\n\\n.nc-sidebar .content {\\n padding: 6px 15px;\\n font-size: 1em;\\n}\\n\\n.nc-sidebar .tc-tiddlylink {\\n color: \u003C\u003Ccolour primary>>;\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-sidebar {\\n position: fixed;\\n left: 0;\\n top: 0;\\n bottom: 0;\\n }\\n}\\n\\n\u003C\u003Cif-sidebar \\\"\\\"\\\"\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n @keyframes sidebar-slide {\\n 0% {\\n left: -100vw;\\n }\\n 100% {\\n left: 0;\\n }\\n }\\n .nc-sidebar {\\n overflow: auto;\\n position: fixed;\\n width: 100%;\\n left: 0;\\n top: 0;\\n bottom: 48px;\\n z-index: 3000;\\n animation: sidebar-slide ease-in .2s;\\n animation-fill-mode: forwards;\\n }\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .tc-page-container {\\n margin-left: {{$:/themes/nico/notebook/metrics/sidebar-width}} !important;\\n }\\n\\n .nc-topbar-wrapper {\\n left: {{$:/themes/nico/notebook/metrics/sidebar-width}};\\n }\\n}\\n\\\"\\\"\\\">>\\n\\n/* Animate the hamburger button */\\n\\n@keyframes menu-bars-1 {\\n 0% {}\\n 100% {\\n transform: rotate(-45deg) translateY(-10px) translateX(-6px);\\n fill: \u003C\u003Ccolour foreground>>;\\n }\\n}\\n\\n@keyframes menu-bars-2 {\\n 0% {}\\n 100% { opacity: 0; }\\n}\\n\\n@keyframes menu-bars-3 {\\n 0% {}\\n 100% {\\n transform: rotate(45deg) translateY(6px) translateX(2px);\\n fill: \u003C\u003Ccolour foreground>>;\\n }\\n}\\n\\n.sidebar-toggle {\\n /* position: fixed; */\\n /* top: 6px; */\\n /* left: 6px; */\\n /* z-index: 600; */\\n /* padding: 4px; */\\n /* border-radius: 8px; */\\n margin-right: 10px;\\n transition: all ease-in-out .2s;\\n fill: \u003C\u003Ccolour sidebar-controls-foreground>>;\\n}\\n\\n.sidebar-toggle:hover,\\n.sidebar-toggle.open {\\n fill: \u003C\u003Ccolour sidebar-controls-foreground-hover>>;\\n}\\n\\n/* @media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { */\\n/* .sidebar-toggle { */\\n/* top: auto; */\\n/* bottom: 10px; */\\n/* left: 10px; */\\n/* } */\\n/* } */\\n\\n.sidebar-toggle .bars .bar {\\n transform: rotate(0) translateY(0) translateX(0);\\n opacity: 1;\\n transform-origin: 20px 10px;\\n transition: transform 0.4s ease-in-out, opacity 0.2s ease-in-out, fill .4s ease-in-out;\\n}\\n\\n.sidebar-toggle .bars .bar:nth-of-type(3) {\\n transform-origin: 20px 20px;\\n}\\n\\n.sidebar-toggle.open .bars .bar:nth-of-type(1) {\\n animation: menu-bars-1 .6s;\\n animation-fill-mode: forwards;\\n}\\n.sidebar-toggle.open .bars .bar:nth-of-type(2) {\\n animation: menu-bars-2 .6s;\\n animation-fill-mode: forwards;\\n}\\n.sidebar-toggle.open .bars .bar:nth-of-type(3) {\\n animation: menu-bars-3 .6s;\\n animation-fill-mode: forwards;\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n div.tc-tiddler-frame {\\n padding: 14px;\\n }\\n}\\n\\n/* Inputs */\\n\\ninput, textarea {\\n transition: border .14s ease-in-out;\\n background: \u003C\u003Ccolour tiddler-editor-background>>;\\n border: 1px solid \u003C\u003Ccolour tiddler-editor-border>>;\\n padding: .5em;\\n border-radius: 4px;\\n}\\n\\ninput:focus, textarea:focus {\\n box-shadow: 0 0 0.2rem 0 \u003C\u003Ccolour primary>>;\\n outline: 0;\\n border-color: \u003C\u003Ccolour primary>>;\\n}\\n\\nbutton {\\n border-radius: 1.5em;\\n border: 1px solid #ccc;\\n background: \u003C\u003Ccolour tiddler-background>>;\\n padding: .3em 1em;\\n cursor: pointer;\\n transition: box-shadow ease-in .1s;\\n color: \u003C\u003Ccolor foreground>>;\\n}\\n\\nbutton:focus, button:active {\\n outline: 0 none;\\n}\\n\\nbutton.tc-btn-invisible {\\n border-radius: 0;\\n}\\n\\n.tc-editor-toolbar button,\\n.tc-editor-toolbar button.tc-btn-invisible {\\n border-radius: 3px;\\n background: \u003C\u003Ccolour tiddler-editor-background>>;\\n color: \u003C\u003Ccolour foreground>>;\\n fill: \u003C\u003Ccolour foreground>>;\\n border: 1px solid \u003C\u003Ccolour tiddler-editor-border>>;\\n}\\n\\n.tc-editor-toolbar button:hover,\\n.tc-editor-toolbar button:active {\\n border-color: \u003C\u003Ccolour primary>>;\\n background: \u003C\u003Ccolour primary>>;\\n color: \u003C\u003Ccolour background>>;\\n fill: \u003C\u003Ccolour background>>;\\n}\\n\\n.tc-tiddler-frame input.tc-edit-texteditor,\\n.tc-tiddler-frame textarea.tc-edit-texteditor,\\n.tc-tiddler-frame iframe.tc-edit-texteditor {\\n transition: border .14s ease-in-out;\\n border: 1px solid \u003C\u003Ccolour tiddler-editor-border>>;\\n background: \u003C\u003Ccolour tiddler-editor-background>>;\\n padding: 4px;\\n border-radius: 4px;\\n}\\n\\n.tc-tiddler-frame input.tc-edit-texteditor:focus,\\n.tc-tiddler-frame textarea.tc-edit-texteditor:focus,\\n.tc-tiddler-frame iframe.tc-edit-texteditor:focus {\\n box-shadow: 0 0 0.2rem 0 \u003C\u003Ccolour primary>>;\\n outline: 0;\\n border-color: \u003C\u003Ccolour primary>>;\\n}\\n\\n.tc-tiddler-controls .tc-btn-text {\\n font-size: 16px;\\n}\\n\\n\u003C\u003Cif-reveal-tiddler-controls-on-hover \\\"\\\"\\\"\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .tc-tiddler-frame .tc-tiddler-controls svg {\\n opacity: 0;\\n transition: all .2s ease-in;\\n }\\n\\n .tc-tiddler-controls svg.tc-image-close-button,\\n .tc-tiddler-controls .py-toggle-todo-button svg,\\n .tc-tiddler-controls svg.tc-image-done-button,\\n .tc-tiddler-frame .tc-tiddler-controls:hover svg {\\n opacity: 1;\\n }\\n\\n .tc-tiddler-controls .py-toggle-todo-button .done svg {\\n fill: #2da562;\\n }\\n}\\n\\\"\\\"\\\">>\\n\\nbutton.tc-tag-label, span.tc-tag-label {\\n padding: 0.3em 1em !important;\\n}\\n\\n/* Fonts */\\n\\nhtml, body {\\n font-family: {{$:/themes/nico/notebook/settings/fontfamily}};\\n}\\n\\n.tc-tiddler-frame input.tc-edit-texteditor,\\n.tc-tiddler-frame textarea.tc-edit-texteditor,\\n.tc-tiddler-frame iframe.tc-edit-texteditor {\\n font-family: {{$:/themes/nico/notebook/settings/editorfontfamily}};\\n}\\n\\npre, code {\\n font-family: {{$:/themes/nico/notebook/settings/codefontfamily}};\\n}\\n\\n.tc-titlebar, .tc-site-title {\\n font-size: 28px !important;\\n line-height: 34px !important;\\n font-weight: 600 !important;\\n letter-spacing: -0.5px !important;\\n}\\n\\nh1, h2, h3, h4, h5, h6 {\\n font-weight: 600;\\n}\\n\\n.tc-tiddler-body h1,\\n.tc-tiddler-body h2,\\n.tc-tiddler-preview-preview h1,\\n.tc-tiddler-preview-preview h2 {\\n font-weight: bold;\\n}\\n\\ndiv.tc-tiddler-frame .tc-tiddler-body {\\n font-size: {{$:/themes/nico/notebook/metrics/bodyfontsize}};\\n line-height: {{$:/themes/nico/notebook/metrics/bodylineheight}};\\n}\\n\\n/* Tabs */\\n\\ndiv.tc-tab-buttons {\\n margin-bottom: -4px;\\n}\\n\\ndiv.tc-tab-buttons button {\\n font-weight: bold;\\n font-size: 1.2em;\\n line-height: 1em;\\n padding: .6em .8em .4em .8em;\\n border: 0;\\n border-radius: 0;\\n background: transparent;\\n cursor: pointer;\\n transition: background ease-in .2s;\\n}\\n\\ndiv.tc-tab-buttons button:hover {\\n background: rgba(0,0,0,.03);\\n}\\n\\ndiv.tc-tab-buttons button.tc-tab-selected {\\n border: 0;\\n background: transparent;\\n border-bottom: 4px solid \u003C\u003Ccolour primary>>;\\n}\\n\\n/* Dropdowns */\\n\\n@keyframes pop {\\n 0% {\\n transform: scale(0.8);\\n opacity: 0;\\n }\\n\\n 80% {\\n transform: scale(1.03);\\n opacity: 1;\\n }\\n\\n 100% {\\n transform: scale(1);\\n opacity: 1;\\n }\\n}\\n\\n.tc-drop-down {\\n box-shadow: 0 0 10px rgba(0,0,0,.2);\\n border-radius: 6px;\\n padding: 10px 0 !important;\\n animation: pop .15s ease-in forwards;\\n}\\n\\n.tc-drop-down a, .tc-drop-down button {\\n padding: 3px 15px !important;\\n}\\n\\n.tc-search-results {\\n line-height: 2em;\\n}\\n\\n.tc-search-results em {\\n font-weight: bold;\\n font-style: normal;\\n}\\n\\n/* Draft list */\\n\\n.tc-drafts-list {\\n font-size: .9em;\\n left: auto;\\n right: 0;\\n}\\n\\n.tc-drafts-list a {\\n padding: 6px 12px;\\n font-weight: bold;\\n border-top-left-radius: 6px;\\n border-top-right-radius: 6px;\\n display: inline-block;\\n}\\n\\n.nc-refs {\\n color: #888;\\n font-size: .9em;\\n}\\n\\n.nc-refs h4 {\\n margin-bottom: 4px;\\n}\\n\\n.nc-post-created {\\n color: #acacac;\\n font-size: .8em;\\n}\\n\"\n },\n \"$:/themes/nico/notebook/changelog\": {\n \"title\": \"$:/themes/nico/notebook/changelog\",\n \"caption\": \"ChangeLog\",\n \"created\": \"20201217180707912\",\n \"modified\": \"20210202214001915\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"! 1.4.1\\n\\n!! Fixes\\n\\n* Fix the transclusion mode of sidebar sections\\n* Fix section title rendering for tiddlers without a caption field\\n* Fix the colour of links in the sidebar when using Notebook palettes with Vanilla\\n\\n! 1.4.0\\n\\n!! Features\\n\\n* New redesigned topbar layout\\n* Add a configuration setting for the story width\\n* Add support for keyboard navigation in the search dropdown\\n\\n! 1.3.6\\n\\n!! Improvements\\n\\n* Improve the style of tabs\\n* New animation for drop-downs\\n* Use a lighter page background colour in the beige palette\\n\\n!! Fixes\\n\\n* Fix the default ctrl+shift+F shortcut for focusing the search input\\n\\n! 1.3.5\\n\\n!! Features\\n\\n* Add an option to reveal tiddler controls on mouseover\\n\\n! 1.3.4\\n\\n!! Improvements\\n\\n* Add a keyboard shortcut (alt+shift+s) to toggle Notebook sidebar\\n* Add missing colours to tiddler editor fields in the dark palette\\n\\n!! Fixes\\n\\n* Fix the size of toolbar button labels when the $:/config/Toolbar/Text is set to yes\\n\\n! 1.3.3\\n\\n!! Improvements\\n\\n* Make the sidebar more generic by using the default sidebar sections\\n\\n! 1.3.2\\n\\n!! Improvements\\n\\n* Add colours for messages in the dark palette\\n* Add colours for notification in the dark palette\\n* Set colours for messages in the beige palette\\n\\n! 1.3.1\\n\\n!! Features\\n\\n* New font family settings distinct from the Vanilla theme\\n\\n!! Improvements\\n\\n* Use a slightly lighter colour as the search input background\\n* Improve contrast of sidebar buttons in the dark palette\\n\\n!! Fixes\\n\\n* Fix tiddler control button colours in all three palettes\\n* Fix tab colours in palette-dark\\n\\n! 1.3.0\\n\\n!! Improvements\\n\\n* New dark colour palette\\n* Use a darker color for tiddler subtitles\\n* Add back the WebKit search cancel button in search inputs\\n\\n!! Fixes\\n\\n* Fix the z-index of the topbar for the zoomin story view\\n* Fix the font weight of tiddler titles in edit mode\\n\\n! 1.2.0\\n\\n!! Improvements\\n\\n* Better support for dark colour palettes\\n\\n!! Fixes\\n\\n* Fix rendering of overflowing/wrapping text in the sidebar\\n\\n! 1.1.0\\n\\n!! Features\\n\\n* New theme tweaks tab dedicated to Notebook in the control panel\\n* Inputs in the edit template are now styled consistently with other inputs\\n\\n!! Fixes\\n\\n* Fixes the position of sticky tiddler titles when the option is turned on\\n\"\n },\n \"$:/config/ShortcutInfo/notebook-focus-search\": {\n \"title\": \"$:/config/ShortcutInfo/notebook-focus-search\",\n \"text\": \"Focus on the topbar search field\"\n },\n \"$:/config/shortcuts/notebook-focus-search\": {\n \"title\": \"$:/config/shortcuts/notebook-focus-search\",\n \"text\": \"ctrl+shift+F\"\n },\n \"$:/config/Search/AutoFocus\": {\n \"title\": \"$:/config/Search/AutoFocus\",\n \"text\": \"false\"\n },\n \"$:/config/shortcuts/sidebar-search\": {\n \"title\": \"$:/config/shortcuts/sidebar-search\",\n \"text\": \"\"\n },\n \"$:/themes/nico/notebook/images/bars\": {\n \"title\": \"$:/themes/nico/notebook/images/bars\",\n \"created\": \"20200428212322206\",\n \"modified\": \"20201210210231235\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg class=\\\"bars\\\" height=\\\"21pt\\\" viewBox=\\\"0 0 42 42\\\" enable-background=\\\"new 0 0 32 22.5\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n \u003Cg class=\\\"svg-menu-toggle\\\" sketch:type=\\\"MSLayerGroup\\\">\\n \u003Crect class=\\\"bar\\\" x=\\\"8\\\" y=\\\"28\\\" width=\\\"26\\\" height=\\\"4\\\">\u003C/rect>\\n \u003Crect class=\\\"bar\\\" x=\\\"8\\\" y=\\\"19\\\" width=\\\"26\\\" height=\\\"4\\\">\u003C/rect>\\n \u003Crect class=\\\"bar\\\" x=\\\"8\\\" y=\\\"10\\\" width=\\\"26\\\" height=\\\"4\\\">\u003C/rect>\\n \u003C/g>\\n\u003C/svg>\\n\"\n },\n \"$:/themes/nico/notebook/images/caret-down\": {\n \"title\": \"$:/themes/nico/notebook/images/caret-down\",\n \"created\": \"20200429194348688\",\n \"modified\": \"20201210210230919\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg width=\\\"6pt\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\">\u003Cpath d=\\\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\\\"/>\u003C/svg>\\n\"\n },\n \"$:/themes/nico/notebook/images/caret-right\": {\n \"title\": \"$:/themes/nico/notebook/images/caret-right\",\n \"created\": \"20200429194305719\",\n \"modified\": \"20201210210230909\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg width=\\\"4pt\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 192 512\\\">\u003Cpath d=\\\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\\\"/>\u003C/svg>\\n\"\n },\n \"$:/themes/nico/notebook/images/color-switch\": {\n \"title\": \"$:/themes/nico/notebook/images/color-switch\",\n \"created\": \"20201210170859810\",\n \"creator\": \"nico\",\n \"modified\": \"20201210205606403\",\n \"modifier\": \"nico\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg width=\\\"20px\\\" height=\\\"20px\\\" viewBox=\\\"0 0 16 16\\\" class=\\\"bi bi-circle-half\\\" fill=\\\"currentColor\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n \u003Cpath fill-rule=\\\"evenodd\\\" d=\\\"M8 15V1a7 7 0 1 1 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z\\\"/>\\n\u003C/svg\\n\"\n },\n \"$:/themes/nico/notebook/metrics/bodyfontsize\": {\n \"title\": \"$:/themes/nico/notebook/metrics/bodyfontsize\",\n \"created\": \"20200428203454207\",\n \"modified\": \"20201210205606363\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"15px\\n\"\n },\n \"$:/themes/nico/notebook/metrics/bodylineheight\": {\n \"title\": \"$:/themes/nico/notebook/metrics/bodylineheight\",\n \"created\": \"20200428203454207\",\n \"modified\": \"20201210205606363\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"22px\"\n },\n \"$:/themes/nico/notebook/metrics/sidebar-width\": {\n \"title\": \"$:/themes/nico/notebook/metrics/sidebar-width\",\n \"created\": \"20200429144554294\",\n \"modified\": \"20201210210231246\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"350px\\n\"\n },\n \"$:/themes/nico/notebook/metrics/story-width\": {\n \"title\": \"$:/themes/nico/notebook/metrics/story-width\",\n \"created\": \"20210123210054185\",\n \"modified\": \"20210123211911688\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"800px\\n\"\n },\n \"$:/themes/nico/notebook/metrics/topbar-height\": {\n \"title\": \"$:/themes/nico/notebook/metrics/topbar-height\",\n \"created\": \"20200428203454207\",\n \"modified\": \"20201210205606363\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"52px\\n\"\n },\n \"$:/themes/nico/notebook/options/stickytitles\": {\n \"title\": \"$:/themes/nico/notebook/options/stickytitles\",\n \"text\": \"no\"\n },\n \"$:/themes/nico/notebook/options/codewrapping\": {\n \"title\": \"$:/themes/nico/notebook/options/codewrapping\",\n \"text\": \"pre-wrap\"\n },\n \"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\": {\n \"title\": \"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\",\n \"text\": \"no\"\n },\n \"$:/core/ui/PageTemplate/sidebar\": {\n \"title\": \"$:/core/ui/PageTemplate/sidebar\",\n \"created\": \"20200430072116835\",\n \"modified\": \"20201217174129501\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\whitespace trim\\n\\\\define config-title()\\n$:/config/SideBarSegments/Visibility/$(listItem)$\\n\\\\end\\n\\nOverwritten by $:/themes/nico/notebook so that the default sidebar does not get rendered.\\n\"\n },\n \"$:/themes/tiddlywiki/vanilla/themetweaks\": {\n \"title\": \"$:/themes/tiddlywiki/vanilla/themetweaks\",\n \"caption\": \"{{$:/language/ThemeTweaks/ThemeTweaks}}\",\n \"created\": \"20201217163834291\",\n \"modified\": \"20201217163914434\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"Overwritten by $:/themes/nico/notebook so that the Vanilla theme tweaks do not appear in the control panel. \"\n },\n \"$:/themes/nico/notebook/palettes/palette-beige\": {\n \"title\": \"$:/themes/nico/notebook/palettes/palette-beige\",\n \"text\": \"alert-background: #ffe476\\nalert-border: #b99e2f\\nalert-highlight: #881122\\nalert-muted-foreground: #b99e2f\\nbackground: #ffffff\\nblockquote-bar: \u003C\u003Ccolour muted-foreground>>\\nbutton-background:\\nbutton-foreground:\\nbutton-border:\\ncode-background: #f7f7f9\\ncode-border: #e1e1e8\\ncode-foreground: #dd1144\\ndirty-indicator: #c63636\\ndownload-background: #66cccc\\ndownload-foreground: \u003C\u003Ccolour background>>\\ndragger-background: \u003C\u003Ccolour foreground>>\\ndragger-foreground: \u003C\u003Ccolour background>>\\ndropdown-background: \u003C\u003Ccolour background>>\\ndropdown-border: #ddd\\ndropdown-tab-background-selected: #fff\\ndropdown-tab-background: #ececec\\ndropzone-background: #da8548\\nexternal-link-background-hover: inherit\\nexternal-link-background-visited: inherit\\nexternal-link-background: inherit\\nexternal-link-foreground-hover: inherit\\nexternal-link-foreground-visited: #0000aa\\nexternal-link-foreground: #0000ee\\nforeground: #3F3B3B\\nmessage-background: #e6f5e8\\nmessage-border: #2b5532\\nmessage-foreground: #2b5532\\nmodal-backdrop: \u003C\u003Ccolour foreground>>\\nmodal-background: \u003C\u003Ccolour background>>\\nmodal-border: #999999\\nmodal-footer-background: #f5f5f5\\nmodal-footer-border: #dddddd\\nmodal-header-border: #eeeeee\\nmuted-foreground: #999999\\nnotification-background: #ffffdd\\nnotification-border: #999999\\npage-background: #f5f5ee\\npre-background: #f6f6f6\\npre-border: #cccccc\\nprimary: #7f4bca\\nselect-tag-background:\\nselect-tag-foreground:\\nsidebar-button-foreground: #a6a69c\\nsidebar-controls-foreground-hover: #000000\\nsidebar-controls-foreground: \u003C\u003Ccolour sidebar-button-foreground>>\\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\\nsidebar-foreground: #acacac\\nsidebar-muted-foreground-hover: #444444\\nsidebar-muted-foreground: #c0c0c0\\nsidebar-tab-background-selected: #ffffff\\nsidebar-tab-background: \u003C\u003Ccolour tab-background>>\\nsidebar-tab-border-selected: \u003C\u003Ccolour tab-border-selected>>\\nsidebar-tab-border: \u003C\u003Ccolour tab-border>>\\nsidebar-tab-divider: \u003C\u003Ccolour tab-divider>>\\nsidebar-tab-foreground-selected: \u003C\u003Ccolour tab-foreground-selected>>\\nsidebar-tab-foreground: \u003C\u003Ccolour tab-foreground>>\\nsidebar-tiddler-link-foreground-hover: \u003C\u003Ccolour primary>>\\nsidebar-tiddler-link-foreground: \u003C\u003Ccolour tab-foreground>>\\nsite-title-foreground: #353748\\nstatic-alert-foreground: #aaaaaa\\ntab-background-selected: #ffffff\\ntab-background: #eeeeee\\ntab-border-selected: #cccccc\\ntab-border: #cccccc\\ntab-divider: #d8d8d8\\ntab-foreground-selected: \u003C\u003Ccolour foreground>>\\ntab-foreground: #888888\\ntable-border: #dddddd\\ntable-footer-background: #a8a8a8\\ntable-header-background: #f0f0f0\\ntag-background: #ffeedd\\ntag-foreground: #000\\ntiddler-background: \u003C\u003Ccolour background>>\\ntiddler-border: #dbdbc7;\\ntiddler-controls-foreground-hover: #888888;\\ntiddler-controls-foreground-selected: #888888;\\ntiddler-controls-foreground: #cccccc\\ntiddler-editor-background: \u003C\u003Ccolour background>>\\ntiddler-editor-border-image: #ffffff\\ntiddler-editor-border: rgba(0,0,0,.2)\\ntiddler-editor-fields-even: #e0e8e0\\ntiddler-editor-fields-odd: #f0f4f0\\ntiddler-info-background: #f8f8f8\\ntiddler-info-border: #dddddd\\ntiddler-info-tab-background: #f8f8f8\\ntiddler-link-background: \u003C\u003Ccolour background>>\\ntiddler-link-foreground: \u003C\u003Ccolour primary>>\\ntiddler-subtitle-foreground: #aaaaaa\\ntiddler-title-foreground: #333\\ntoolbar-new-button:\\ntoolbar-options-button:\\ntoolbar-save-button:\\ntoolbar-info-button:\\ntoolbar-edit-button:\\ntoolbar-close-button:\\ntoolbar-delete-button:\\ntoolbar-cancel-button:\\ntoolbar-done-button:\\nuntagged-background: #999999\\nvery-muted-foreground: #888888\\n\",\n \"type\": \"application/x-tiddler-dictionary\",\n \"description\": \"A beige colour palette for Notebook\",\n \"name\": \"Notebook Beige\",\n \"tags\": \"$:/tags/Palette $:/tags/notebook/Palette\"\n },\n \"$:/themes/nico/notebook/palettes/palette-dark\": {\n \"title\": \"$:/themes/nico/notebook/palettes/palette-dark\",\n \"text\": \"alert-background: #643b43\\nalert-border: #3f181f\\nalert-highlight: #881122\\nalert-muted-foreground: #bc8b94\\nbackground: #383e49\\nblockquote-bar: \u003C\u003Ccolour muted-foreground>>\\nbutton-background:\\nbutton-border:\\nbutton-foreground:\\ncode-background: #2c323b\\ncode-border: #111\\ncode-foreground: #dd1144\\ndirty-indicator: #c63636\\ndownload-background: #98be65\\ndownload-foreground: \u003C\u003Ccolour background>>\\ndragger-background: \u003C\u003Ccolour foreground>>\\ndragger-foreground: \u003C\u003Ccolour background>>\\ndropdown-background: \u003C\u003Ccolour background>>\\ndropdown-border: #111\\ndropdown-tab-background-selected: #fff\\ndropdown-tab-background: #ececec\\ndropzone-background: #da8548\\nexternal-link-background-hover: inherit\\nexternal-link-background-visited: inherit\\nexternal-link-background: inherit\\nexternal-link-foreground-hover: inherit\\nexternal-link-foreground-visited: #61afef\\nexternal-link-foreground: #c678dd\\nforeground: #c8ced8\\nmessage-background: #2c323e\\nmessage-border: #111\\nmessage-foreground: #d5e2f1\\nmodal-backdrop: \u003C\u003Ccolour foreground>>\\nmodal-background: \u003C\u003Ccolour background>>\\nmodal-border: #999999\\nmodal-footer-background: #f5f5f5\\nmodal-footer-border: #dddddd\\nmodal-header-border: #eeeeee\\nmuted-foreground: #999999\\nnotification-background: #3a5e39\\nnotification-border: #192c19\\npage-background: #262b33\\npre-background: \u003C\u003Ccolour page-background>>\\npre-border: \u003C\u003Ccolour tiddler-border>>\\nprimary: #bf93ff\\nselect-tag-background:\\nselect-tag-foreground:\\nsidebar-button-foreground: #5e646f\\nsidebar-controls-foreground-hover: #cad2e5\\nsidebar-controls-foreground: \u003C\u003Ccolour sidebar-button-foreground>>\\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\\nsidebar-foreground: #cad2e5\\nsidebar-muted-foreground-hover: #444444\\nsidebar-muted-foreground: #c0c0c0\\nsidebar-tab-background-selected: \u003C\u003Ccolour tab-background-selected>>\\nsidebar-tab-background: \u003C\u003Ccolour tab-background>>\\nsidebar-tab-border-selected: \u003C\u003Ccolour tab-border-selected>>\\nsidebar-tab-border: \u003C\u003Ccolour tab-border>>\\nsidebar-tab-divider: \u003C\u003Ccolour tab-divider>>\\nsidebar-tab-foreground-selected: \u003C\u003Ccolour tab-foreground-selected>>\\nsidebar-tab-foreground: \u003C\u003Ccolour tab-foreground>>\\nsidebar-tiddler-link-foreground-hover: \u003C\u003Ccolour primary>>\\nsidebar-tiddler-link-foreground: \u003C\u003Ccolour tab-foreground>>\\nsite-title-foreground: \u003C\u003Ccolour foreground>>\\nstatic-alert-foreground: #aaaaaa\\ntab-background-selected: \u003C\u003Ccolour background>>\\ntab-background: \u003C\u003Ccolour page-background>>\\ntab-border-selected: \u003C\u003Ccolour foreground>>\\ntab-border: #cad2e5\\ntab-divider: #cad2e5\\ntab-foreground-selected: #ecf2ff\\ntab-foreground: #cad2e5\\ntable-border: #aaaaaa\\ntable-footer-background: #a8a8a8\\ntable-header-background: #262b33\\ntag-background: #fcb671\\ntag-foreground: #000\\ntiddler-background: \u003C\u003Ccolour background>>\\ntiddler-border: #111\\ntiddler-controls-foreground-hover: #cad2e5\\ntiddler-controls-foreground-selected: #cad2e5\\ntiddler-controls-foreground: #5e646f\\ntiddler-editor-background: \u003C\u003Ccolour background>>\\ntiddler-editor-border-image: #ffffff\\ntiddler-editor-border: rgba(255, 255, 255, 0.3)\\ntiddler-editor-fields-even: \u003C\u003Ccolour background>>\\ntiddler-editor-fields-odd: #2c323b\\ntiddler-info-background: #f8f8f8\\ntiddler-info-border: #dddddd\\ntiddler-info-tab-background: #f8f8f8\\ntiddler-link-background: \u003C\u003Ccolour background>>\\ntiddler-link-foreground: \u003C\u003Ccolour primary>>\\ntiddler-subtitle-foreground: #aaaaaa\\ntiddler-title-foreground: \u003C\u003Ccolour foreground>>\\ntoolbar-cancel-button:\\ntoolbar-close-button:\\ntoolbar-delete-button:\\ntoolbar-done-button:\\ntoolbar-edit-button:\\ntoolbar-info-button:\\ntoolbar-new-button:\\ntoolbar-options-button:\\ntoolbar-save-button:\\nuntagged-background: #999999\\nvery-muted-foreground: #888888\\n\",\n \"type\": \"application/x-tiddler-dictionary\",\n \"description\": \"A dark colour palette for Notebook\",\n \"name\": \"Notebook Dark\",\n \"tags\": \"$:/tags/Palette $:/tags/notebook/Palette\"\n },\n \"$:/themes/nico/notebook/palettes/palette-grey\": {\n \"title\": \"$:/themes/nico/notebook/palettes/palette-grey\",\n \"text\": \"alert-background: #ffe476\\nalert-border: #b99e2f\\nalert-highlight: #881122\\nalert-muted-foreground: #b99e2f\\nbackground: #ffffff\\nblockquote-bar: \u003C\u003Ccolour muted-foreground>>\\nbutton-background:\\nbutton-foreground:\\nbutton-border:\\ncode-background: #f7f7f9\\ncode-border: #e1e1e8\\ncode-foreground: #dd1144\\ndirty-indicator: #c63636\\ndownload-background: #66cccc\\ndownload-foreground: \u003C\u003Ccolour background>>\\ndragger-background: \u003C\u003Ccolour foreground>>\\ndragger-foreground: \u003C\u003Ccolour background>>\\ndropdown-background: \u003C\u003Ccolour background>>\\ndropdown-border: #ddd\\ndropdown-tab-background-selected: #fff\\ndropdown-tab-background: #ececec\\ndropzone-background: #da8548\\nexternal-link-background-hover: inherit\\nexternal-link-background-visited: inherit\\nexternal-link-background: inherit\\nexternal-link-foreground-hover: inherit\\nexternal-link-foreground-visited: #0000aa\\nexternal-link-foreground: #0000ee\\nforeground: #283c46\\nmessage-background: #ecf2ff\\nmessage-border: #cfd6e6\\nmessage-foreground: #547599\\nmodal-backdrop: \u003C\u003Ccolour foreground>>\\nmodal-background: \u003C\u003Ccolour background>>\\nmodal-border: #999999\\nmodal-footer-background: #f5f5f5\\nmodal-footer-border: #dddddd\\nmodal-header-border: #eeeeee\\nmuted-foreground: #999999\\nnotification-background: #ffffdd\\nnotification-border: #999999\\npage-background: #f4f4f4\\npre-background: #f6f6f6\\npre-border: #cccccc\\nprimary: #127edd\\nselect-tag-background:\\nselect-tag-foreground:\\nsidebar-button-foreground: #a6a69c\\nsidebar-controls-foreground-hover: #000000\\nsidebar-controls-foreground: \u003C\u003Ccolour sidebar-button-foreground>>\\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\\nsidebar-foreground: #acacac\\nsidebar-muted-foreground-hover: #444444\\nsidebar-muted-foreground: #c0c0c0\\nsidebar-tab-background-selected: #ffffff\\nsidebar-tab-background: \u003C\u003Ccolour tab-background>>\\nsidebar-tab-border-selected: \u003C\u003Ccolour tab-border-selected>>\\nsidebar-tab-border: \u003C\u003Ccolour tab-border>>\\nsidebar-tab-divider: \u003C\u003Ccolour tab-divider>>\\nsidebar-tab-foreground-selected: \u003C\u003Ccolour tab-foreground-selected>>\\nsidebar-tab-foreground: \u003C\u003Ccolour tab-foreground>>\\nsidebar-tiddler-link-foreground-hover: \u003C\u003Ccolour primary>>\\nsidebar-tiddler-link-foreground: \u003C\u003Ccolour tab-foreground>>\\nsite-title-foreground: #353748\\nstatic-alert-foreground: #aaaaaa\\ntab-background-selected: #ffffff\\ntab-background: #eeeeee\\ntab-border-selected: #cccccc\\ntab-border: #cccccc\\ntab-divider: #d8d8d8\\ntab-foreground-selected: \u003C\u003Ccolour foreground>>\\ntab-foreground: #888888\\ntable-border: #dddddd\\ntable-footer-background: #a8a8a8\\ntable-header-background: #f0f0f0\\ntag-background: #ffeedd\\ntag-foreground: #000\\ntiddler-background: \u003C\u003Ccolour background>>\\ntiddler-border: #ddd\\ntiddler-controls-foreground-hover: #888888;\\ntiddler-controls-foreground-selected: #888888;\\ntiddler-controls-foreground: #cccccc\\ntiddler-editor-background: \u003C\u003Ccolour background>>\\ntiddler-editor-border-image: #ffffff\\ntiddler-editor-border: rgba(0,0,0,.2)\\ntiddler-editor-fields-even: #e0e8e0\\ntiddler-editor-fields-odd: #f0f4f0\\ntiddler-info-background: #f8f8f8\\ntiddler-info-border: #dddddd\\ntiddler-info-tab-background: #f8f8f8\\ntiddler-link-background: \u003C\u003Ccolour background>>\\ntiddler-link-foreground: \u003C\u003Ccolour primary>>\\ntiddler-subtitle-foreground: #aaaaaa\\ntiddler-title-foreground: #333\\ntoolbar-new-button:\\ntoolbar-options-button:\\ntoolbar-save-button:\\ntoolbar-info-button:\\ntoolbar-edit-button:\\ntoolbar-close-button:\\ntoolbar-delete-button:\\ntoolbar-cancel-button:\\ntoolbar-done-button:\\nuntagged-background: #999999\\nvery-muted-foreground: #888888\\n\",\n \"type\": \"application/x-tiddler-dictionary\",\n \"description\": \"A grey color palette for Notebook\",\n \"name\": \"Notebook Grey\",\n \"tags\": \"$:/tags/Palette $:/tags/notebook/Palette\"\n },\n \"$:/themes/nico/notebook/settings/codefontfamily\": {\n \"title\": \"$:/themes/nico/notebook/settings/codefontfamily\",\n \"created\": \"20210101213404232\",\n \"modified\": \"20210101214210227\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\"Fira Mono\\\",\\\"Liberation Mono\\\",Menlo,Courier,monospace\\n\"\n },\n \"$:/themes/nico/notebook/settings/fontfamily\": {\n \"title\": \"$:/themes/nico/notebook/settings/fontfamily\",\n \"created\": \"20210101213404232\",\n \"modified\": \"20210101213411800\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\"Segoe UI\\\",Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\"\\n\"\n },\n \"$:/themes/nico/notebook/shortcuts/notebook-focus-search\": {\n \"title\": \"$:/themes/nico/notebook/shortcuts/notebook-focus-search\",\n \"created\": \"20201210122048919\",\n \"key\": \"((notebook-focus-search))\",\n \"modified\": \"20210115130024907\",\n \"tags\": \"$:/tags/KeyboardShortcut\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$action-sendmessage $message=\\\"tm-focus-selector\\\" $param=\\\".nc-topbar input\\\"/>\\n\"\n },\n \"$:/themes/nico/notebook/shortcuts/toggle-sidebar\": {\n \"title\": \"$:/themes/nico/notebook/shortcuts/toggle-sidebar\",\n \"created\": \"20210115130000707\",\n \"key\": \"((toggle-sidebar))\",\n \"modified\": \"20210115130021883\",\n \"tags\": \"$:/tags/KeyboardShortcut\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$list\\n filter=\\\"[[$:/state/notebook-sidebar]is[missing]] [{$:/state/notebook-sidebar}removeprefix[yes]]\\\"\\n emptyMessage=\\\"\\\"\\\"\u003C$action-setfield $tiddler=\\\"$:/state/notebook-sidebar\\\" text=\\\"yes\\\"/>\\\"\\\"\\\"\\n>\\n \u003C$action-setfield $tiddler=\\\"$:/state/notebook-sidebar\\\" text=\\\"no\\\"/>\\n\u003C/$list>\\n\"\n },\n \"$:/themes/nico/notebook/stickytitles\": {\n \"title\": \"$:/themes/nico/notebook/stickytitles\",\n \"created\": \"20201217172915960\",\n \"modified\": \"20201217180034682\",\n \"tags\": \"$:/tags/Stylesheet\",\n \"text\": \"\u003C$reveal state=\\\"$:/themes/nico/notebook/options/stickytitles\\\" type=\\\"match\\\" text=\\\"yes\\\">\\n\\n.tc-tiddler-title {\\n position: -webkit-sticky;\\n position: -moz-sticky;\\n position: -o-sticky;\\n position: -ms-sticky;\\n position: sticky;\\n top: {{$:/themes/nico/notebook/metrics/topbar-height}};\\n background: \u003C\u003Ccolour tiddler-background>>;\\n z-index: 500;\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .tc-tiddler-title {\\n top: 0;\\n }\\n}\\n\\n\u003C$list filter=\\\"[range[100]]\\\">\\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`\u003C$text text=\u003C\u003CcurrentTiddler>>/>`) {\\nz-index: `\u003C$text text={{{ [[200]subtract\u003CcurrentTiddler>] }}}/>`;\\n}\\n`\\n\u003C/$list>\\n\u003C/$reveal>\\n\"\n },\n \"$:/themes/nico/notebook/tags/Sidebar\": {\n \"title\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"created\": \"20200429164516951\",\n \"list\": \"$:/themes/nico/notebook/ui/Buttons/menu $:/themes/nico/notebook/ui/Sidebar/Headings $:/themes/nico/notebook/ui/Sidebar/Search $:/themes/nico/notebook/Sidebar/Sections\",\n \"modified\": \"20201210205606504\",\n \"type\": \"text/vnd.tiddlywiki\"\n },\n \"$:/themes/nico/notebook/tags/SidebarSection\": {\n \"title\": \"$:/themes/nico/notebook/tags/SidebarSection\",\n \"created\": \"20200429201017275\",\n \"list\": \"$:/themes/nico/notebook/ui/Sidebar/Open $:/themes/nico/notebook/ui/Sidebar/Recent $:/themes/nico/notebook/ui/Sidebar/Tools $:/themes/nico/notebook/ui/Sidebar/More\",\n \"modified\": \"20201210215658901\",\n \"type\": \"text/vnd.tiddlywiki\"\n },\n \"$:/themes/nico/notebook/ui/Bottombar\": {\n \"title\": \"$:/themes/nico/notebook/ui/Bottombar\",\n \"created\": \"20200429113453340\",\n \"modified\": \"20201210210230886\",\n \"tags\": \"$:/tags/PageTemplate\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$reveal state=\\\"$:/state/notebook-bottombar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"yes\\\" retain=\\\"yes\\\" animate=\\\"yes\\\">\\n \u003Cdiv class=\\\"nc-bar nc-bottombar\\\">\\n \u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/NotebookTopbar]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n \u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-title>> text=\\\"hide\\\" tag=\\\"div\\\">\\n \u003C$transclude tiddler=\u003C\u003ClistItem>> mode=\\\"block\\\"/>\\n \u003C/$reveal>\\n \u003C/$list>\\n \u003Cdiv class=\\\"left\\\">\\n {{$:/themes/nico/notebook/ui/Buttons/menu}}\\n \u003C/div>\\n \u003Cdiv class=\\\"right\\\">\\n {{$:/core/ui/SideBarSegments/page-controls}}\\n \u003C/div>\\n \u003C/div>\\n\u003C/$reveal>\\n\\n\"\n },\n \"$:/themes/nico/notebook/ui/Buttons/SwitchPalette\": {\n \"title\": \"$:/themes/nico/notebook/ui/Buttons/SwitchPalette\",\n \"created\": \"20201210171047824\",\n \"description\": \"Toggle between grey/beige colour palette\",\n \"modified\": \"20210118213335643\",\n \"tags\": \"$:/tags/PageControls\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Cspan class=\\\"desktop-only\\\">\\n \u003C$vars\\n palettes=\\\"[all[tiddlers+shadows]tag[$:/tags/notebook/Palette]]\\\"\\n popupTiddler=\u003C\u003Cqualify \\\"$:/state/notebook/palette-dropdown\\\">>\\n >\\n \u003C$button\\n popup=\u003C\u003CpopupTiddler>>\\n tooltip=\\\"Switch colours\\\"\\n aria-label=\\\"Switch colours\\\"\\n class=\u003C\u003Ctv-config-toolbar-class>>\\n >\\n \u003C$list filter=\\\"[\u003Ctv-config-toolbar-icons>match[yes]]\\\">\\n\\t{{$:/themes/nico/notebook/images/color-switch}}\\n \u003C/$list>\\n\\n \u003C$list filter=\\\"[\u003Ctv-config-toolbar-text>match[yes]]\\\">\\n\\t\u003Cspan class=\\\"tc-btn-text\\\">Switch colours\u003C/span>\\n \u003C/$list>\\n\\n \u003C$reveal state=\u003C\u003CpopupTiddler>> type=\\\"popup\\\" position=\\\"belowleft\\\" class=\\\"tc-drop-down\\\">\\n\\t\u003C$list filter=\u003C\u003Cpalettes>>>\\n\\t \u003C$button class=\\\"tc-btn-invisible\\\">\\n\\t {{!!name}}\\n\\t \u003C$action-setfield $tiddler=\\\"$:/palette\\\" text={{!!title}}/>\\n\\t \u003C/$button>\\n\\t\u003C/$list>\\n \u003C/$reveal>\\n\\n \u003C/$button>\\n \u003C/$vars>\\n\u003C/span>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Buttons/menu\": {\n \"title\": \"$:/themes/nico/notebook/ui/Buttons/menu\",\n \"created\": \"20200429115248943\",\n \"modified\": \"20210124211756417\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$reveal state=\\\"$:/state/notebook-sidebar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"no\\\" retain=\\\"yes\\\" animate=\\\"no\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar\\\" setTo=\\\"no\\\" tooltip=\\\"Toggle menu\\\" class=\\\"tc-btn-invisible sidebar-toggle open\\\">\\n {{$:/themes/nico/notebook/images/bars}}\\n \u003C/$button>\\n\u003C/$reveal>\\n\\n\u003C$reveal type=\\\"nomatch\\\" state=\\\"$:/state/notebook-sidebar\\\" text=\\\"yes\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar\\\" setTo=\\\"yes\\\" tooltip=\\\"Toggle menu\\\" class=\\\"tc-btn-invisible sidebar-toggle\\\">\\n {{$:/themes/nico/notebook/images/bars}}\\n \u003C/$button>\\n\u003C/$reveal>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Search\": {\n \"title\": \"$:/themes/nico/notebook/ui/Search\",\n \"created\": \"20200429191943257\",\n \"modified\": \"20210126170723413\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\define advanced-search-actions()\\n\u003C$action-setfield $tiddler=\\\"$:/temp/advancedsearch/input\\\" text={{$:/temp/notebook-search}}/>\\n\u003C$action-setfield $tiddler=\\\"$:/temp/advancedsearch/refresh\\\" text=\\\"yes\\\"/>\\n\u003C$action-navigate $to=\\\"$:/AdvancedSearch\\\"/>\\n\\\\end\\n\\n\\\\define input-accept-actions()\\n\u003C$list filter=\\\"[\u003C__tiddler__>get[text]!is[missing]] ~[\u003C__tiddler__>get[text]is[shadow]]\\\">\\n \u003C$action-navigate $to={{{ [\u003C__tiddler__>get[text]] }}}/>\\n \u003C$action-deletetiddler $filter=\\\"[[$:/temp/search]] [\u003CsearchTiddler>] [\u003CsearchListState>]\\\"/>\\n\u003C/$list>\\n\\\\end\\n\\n\\\\define cancel-search-actions()\\n\u003C$list filter=\\\"[\u003CsearchTiddler>get[text]!match{$:/temp/search}]\\\" emptyMessage=\\\"\\\"\\\"\u003C$action-deletetiddler $filter=\\\"[[$:/temp/search]] [\u003CsearchTiddler>] [\u003CsearchListState>]\\\"/>\\\"\\\"\\\">\\n \u003C$action-setfield $tiddler=\\\"$:/temp/search\\\" text={{{ [\u003CsearchTiddler>get[text]] }}}/>\\n \u003C$action-setfield $tiddler=\\\"$:/temp/search/refresh\\\" text=\\\"yes\\\"/>\u003C/$list>\\n\\\\end\\n\\n\u003C$vars editTiddler=\\\"$:/temp/search\\\"\\n searchTiddler=\\\"$:/temp/search/input\\\"\\n searchListState=\u003C\u003Cqualify \\\"$:/state/search-list/selected-item\\\">>>\\n \u003C$macrocall $name=\\\"keyboard-driven-input\\\"\\n\\t tiddler=\u003C\u003CeditTiddler>>\\n\\t storeTitle=\u003C\u003CsearchTiddler>>\\n\\t selectionStateTitle=\u003C\u003CsearchListState>>\\n\\t refreshTitle=\\\"$:/temp/search/refresh\\\"\\n\\t type=\\\"search\\\"\\n\\t tag=\\\"input\\\"\\n\\t focus={{$:/config/Search/AutoFocus}}\\n\\t focusPopup=\\\"$:/state/popup/notebook-search\\\"\\n\\t class=\\\"tc-popup-handle\\\"\\n\\t filterMinLength={{$:/config/Search/MinLength}}\\n\\t placeholder=\\\"Search...\\\"\\n\\t inputAcceptActions=\u003C\u003Cinput-accept-actions>>\\n\\t inputCancelActions=\u003C\u003Ccancel-search-actions>>\\n\\t cancelPopups=\\\"yes\\\"\\n\\t configTiddlerFilter=\\\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\\\"\\n\\t />\\n \u003C$button\\n tooltip={{$:/language/Buttons/AdvancedSearch/Hint}}\\n aria-label={{$:/language/Buttons/AdvancedSearch/Caption}}\\n class=\\\"tc-btn-invisible tc-page-controls\\\"\\n >\\n {{$:/core/images/advanced-search-button}}\\n \u003C\u003Cadvanced-search-actions>>\\n \u003C/$button>\\n \u003C$reveal tag=\\\"div\\\" class=\\\"tc-block-dropdown-wrapper\\\" state=\\\"$:/state/popup/notebook-search\\\" type=\\\"nomatch\\\" text=\\\"\\\" default=\\\"\\\">\\n \u003C$list filter=\\\"[\u003CsearchTiddler>get[text]minlength{$:/config/Search/MinLength}limit[1]]\\\" emptyMessage=\\\"\\\" variable=\\\"listItem\\\">\\n \u003Cdiv class=\\\"tc-block-dropdown tc-search-drop-down\\\">\\n \u003C$tiddler tiddler=\u003C\u003CconfigTiddler>>>\\n {{$:/themes/nico/notebook/ui/Sidebar/SearchResults}}\\n \u003C/$tiddler>\\n \u003C/div>\\n \u003C/$list>\\n \u003C/$reveal>\\n\u003C/$vars>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/Headings\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/Headings\",\n \"created\": \"20200429160014174\",\n \"modified\": \"20201210210231267\",\n \"tags\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Cdiv class=\\\"segment\\\">\\n \u003Cdiv class=\\\"content\\\">\\n \u003Ch1 class=\\\"tc-site-title\\\">\\n {{$:/SiteTitle}}\\n \u003C/h1>\\n \u003Cdiv class=\\\"tc-site-subtitle\\\">\\n {{$:/SiteSubtitle}}\\n \u003C/div>\\n \u003C/div>\\n\u003C/div>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/Search\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/Search\",\n \"created\": \"20200429191943257\",\n \"modified\": \"20210124220152702\",\n \"tags\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Cdiv class=\\\"mobile-only\\\">\\n \u003Cdiv class=\\\"segment\\\">\\n \u003Cdiv class=\\\"content search\\\">\\n {{$:/themes/nico/notebook/ui/Search}}\\n \u003C/div>\\n \u003C/div>\\n\u003C/div>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/SearchResults\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/SearchResults\",\n \"created\": \"20200429191943257\",\n \"modified\": \"20210126164631418\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\define searchResultList()\\n \u003Csmall>{{$:/language/Search/Matches/Title}}\u003C/small>\\n\\n \u003C$list filter=\\\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\\\">\\n \u003Cspan class={{{[\u003CcurrentTiddler>addsuffix[-primaryList]] -[\u003CsearchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\\n \u003C$transclude tiddler=\\\"$:/core/ui/ListItemTemplate\\\"/>\\n \u003C/span>\\n \u003C/$list>\\n\\n \u003Csmall>{{$:/language/Search/Matches/All}}\u003C/small>\\n\\n \u003C$list filter=\\\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\\\">\\n \u003Cspan class={{{[\u003CcurrentTiddler>addsuffix[-secondaryList]] -[\u003CsearchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\\n \u003C$transclude tiddler=\\\"$:/core/ui/ListItemTemplate\\\"/>\\n \u003C/span>\\n \u003C/$list>\\n\\\\end\\n\\n\u003Cdiv class=\\\"tc-search-results\\\">\\n \u003C\u003CsearchResultList>>\\n\u003C/div>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/SectionTemplate\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/SectionTemplate\",\n \"created\": \"20200429161226897\",\n \"modified\": \"20210202213859460\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\define sidebarHeading()\\n\u003C$vars tv-wikilinks=\\\"no\\\">\\n \u003C$transclude field=\\\"caption\\\">\\n \u003C$view field=\\\"title\\\"/>\\n \u003C/$transclude>\\n\u003C/$vars>\\n\\\\end\\n\\n\u003C$reveal state=\\\"$:/state/notebook-sidebar-section\\\" type=\\\"match\\\" text=\u003C\u003CcurrentTiddler>> default=\\\"no\\\" animate=\\\"no\\\">\\n \u003Cdiv class=\\\"segment section open\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar-section\\\" setTo=\\\"\\\" class=\\\"tc-btn-invisible label\\\">\\n \u003C\u003CsidebarHeading>>\\n \u003Cspan class=\\\"caret\\\">{{$:/themes/nico/notebook/images/caret-down}}\u003C/span>\\n \u003C/$button>\\n \u003Cdiv class=\\\"content\\\">\\n \u003C$transclude $tiddler=\u003C\u003CcurrentTiddler>> mode=\\\"block\\\"/>\\n \u003C/div>\\n \u003C/div>\\n\u003C/$reveal>\\n\u003C$reveal state=\\\"$:/state/notebook-sidebar-section\\\" type=\\\"nomatch\\\" text=\u003C\u003CcurrentTiddler>> default=\\\"yes\\\" animate=\\\"no\\\">\\n \u003Cdiv class=\\\"segment section\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar-section\\\" setTo=\u003C\u003CcurrentTiddler>> class=\\\"tc-btn-invisible label\\\">\\n \u003C\u003CsidebarHeading>>\\n \u003Cspan class=\\\"caret\\\">{{$:/themes/nico/notebook/images/caret-right}}\u003C/span>\\n \u003C/$button>\\n \u003C/div>\\n\u003C/$reveal>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/Sections\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/Sections\",\n \"created\": \"20200429163239707\",\n \"modified\": \"20210112213620486\",\n \"tags\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$list filter=\\\"[all[shadows+tiddlers]!has[draft.of]tag[$:/tags/SideBar]]\\\">\\n {{||$:/themes/nico/notebook/ui/Sidebar/SectionTemplate}}\\n\u003C/$list>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar\",\n \"created\": \"20200428201218885\",\n \"modified\": \"20210112213605486\",\n \"tags\": \"$:/tags/PageTemplate\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\whitespace trim\\n\\\\define config-title()\\n$:/config/SideBarSegments/Visibility/$(listItem)$\\n\\\\end\\n\\n\u003C$reveal state=\\\"$:/state/notebook-sidebar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"no\\\" retain=\\\"yes\\\" animate=\\\"no\\\">\\n \u003C$scrollable fallthrough=\\\"no\\\">\\n \u003Cdiv class=\\\"nc-sidebar\\\">\\n \u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/themes/nico/notebook/tags/Sidebar]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n \u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-title>> text=\\\"hide\\\" tag=\\\"div\\\">\\n \u003C$transclude tiddler=\u003C\u003ClistItem>> mode=\\\"inline\\\"/>\\n \u003C/$reveal>\\n \u003C/$list>\\n \u003C/div>\\n \u003C/$scrollable>\\n\u003C/$reveal>\\n\\n\"\n },\n \"$:/themes/nico/notebook/ui/Topbar\": {\n \"title\": \"$:/themes/nico/notebook/ui/Topbar\",\n \"created\": \"20200428203101797\",\n \"modified\": \"20210124213834458\",\n \"tags\": \"$:/tags/PageTemplate\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$reveal state=\\\"$:/state/notebook-topbar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"yes\\\" retain=\\\"yes\\\" animate=\\\"yes\\\">\\n \u003Cdiv class=\\\"nc-topbar-wrapper\\\">\\n \u003Cdiv class=\\\"nc-bar nc-topbar tc-adjust-top-of-scroll\\\">\\n \u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/NotebookTopbar]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n \u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-title>> text=\\\"hide\\\" tag=\\\"div\\\">\\n \u003C$transclude tiddler=\u003C\u003ClistItem>> mode=\\\"block\\\"/>\\n \u003C/$reveal>\\n \u003C/$list>\\n \u003Cdiv class=\\\"left\\\">\\n\\t{{$:/themes/nico/notebook/ui/Buttons/menu}}\\n {{$:/themes/nico/notebook/ui/Search}}\\n \u003C/div>\\n \u003Cdiv class=\\\"right\\\">\\n {{$:/core/ui/SideBarSegments/page-controls}}\\n \u003C/div>\\n \u003C/div>\\n \u003C/div>\\n\u003C/$reveal>\\n\\n\"\n }\n }\n}","bag":"default","revision":"0","version":"1.4.1","type":"application/json","title":"$:/themes/nico/notebook","source":"https://github.com/NicolasPetton/Notebook","plugin-type":"theme","name":"Notebook theme","list":"LICENSE changelog","description":"A clean, uncluttered TiddlyWiki theme","dependents":"$:/themes/tiddlywiki/vanilla $:/plugins/nico/notebook-mobile","core-version":">=5.1.22","author":"NicolasPetton","modified":"20240627123010609"}, {"created":"20200429144554294","title":"$:/themes/nico/notebook/metrics/sidebar-width","modified":"20230423163514560","tags":"","type":"text/vnd.tiddlywiki","text":"300px"}, @@ -1075,7 +1077,7 @@ Error message and password prompt {"created":"20230427081708927","text":"\u003C!-- sandboxify textareas with class 'sandboxify' -->\n\u003Cscript>\n\nfunction sandboxify() { \n let run = (t) => {\n let $res = t.parentElement.children[1]\n function log(res){\n\t\t if( !$res ) return\n $res.innerHTML = typeof res == 'string' ? res : JSON.stringify(res,null,2)\n }\n let _log = console.log\n console.log = log\n try{\n eval(t.value); \n }catch(e){ log(e) }finally{ console.log = _log }\n } \n const textareas = document.querySelectorAll(\"textarea.sandboxify\");\n textareas.forEach(t => {\n t.addEventListener(\"input\", function (event) {\n\t\t if( String(t.className).match(/noresult/) ) return\n try {\n run(t)\n } catch (error) {\n console.error(error);\n }\n });\n run(t)\n }); \n}\n\n// call sandboxify once on page load\nsandboxify();\n\n// set up a MutationObserver to call sandboxify on any new textareas added to the DOM\nconst observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.addedNodes && mutation.addedNodes.length > 0) {\n const addedNodes = mutation.addedNodes;\n addedNodes.forEach(addedNode => {\n if (addedNode.tagName === \"TEXTAREA\" && addedNode.classList.contains(\"sandboxify\")) {\n sandboxify();\n }\n });\n }\n });\n});\n\nobserver.observe(document, { childList: true, subtree: true });\n\u003C/script>","tags":"$:/tags/RawMarkup","title":"$:/webxr-notebook/sandboxify.js","modified":"20230627100108337"}, {"created":"20230427072514129","text":"\u003C!-- scriptie-talkie-embed.js -->\n\u003Cscript>\n\n(function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=\"function\"==typeof require&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw Error(\"Cannot find module '\"+n+\"'\")}var u=t[n]={exports:{}};e[n][0](function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}for(var r=\"function\"==typeof require&&require,s=0;n.length>s;s++)i(n[s]);return i})({1:[function(require){\"use strict\";var scriptieTalkieEmbed=require(\"../../\");scriptieTalkieEmbed()},{\"../../\":2}],3:[function(require,module,exports){\"use strict\";module.exports=function(textarea){var opts={},data=textarea.getAttribute(\"data-scriptie-talkie\");if(!data)return opts;try{opts=eval(\"(\"+data+\")\")}catch(e){console.error(e)}finally{return opts}}},{}],4:[function(require,module){\"use strict\";function trimEmpty(lines){for(;lines.length&&!lines[0].trim().length;)lines.shift();for(;lines.length&&!lines[lines.length-1].trim().length;)lines.length--}function leftAlign(lines){var indent=-1;if(lines.filter(function(line){return line.trim().length}).forEach(function(line){for(var lineIndent=0,col=0;\" \"===line.charAt(col++);)lineIndent++;indent=-1===indent?lineIndent:Math.min(indent,lineIndent)}),!indent)return lines;for(var i=0;lines.length>i;i++)lines[i]=lines[i].slice(indent)}module.exports=function(textarea,addRows){addRows=addRows||0;var lines=textarea.textContent.split(\"\\n\");return trimEmpty(lines),leftAlign(lines),textarea.rows=Math.max(lines.length+addRows,1),textarea.textContent=lines.join(\"\\n\"),lines}},{}],5:[function(require,module){\"use strict\";function replaceElement(replaceEl,withEl){replaceEl.parentNode.replaceChild(withEl,replaceEl)}var format=require(\"util\").format;module.exports=function(textarea,opts){opts=opts||{};var minHeight=opts.minHeight||150,maxHeight=opts.maxHeight||600,minWidth=opts.minWidth||600,textareaWidth=textarea.clientWidth,width=Math.max(minWidth,textareaWidth),height=textarea.clientHeight+50;height=Math.max(minHeight,height),height=Math.min(maxHeight,height);var container=document.createElement(\"div\");return container.setAttribute(\"class\",\"scriptie-talkie-container\"),container.setAttribute(\"style\",format(\"width: %spx; height: %spx\",width,height)),replaceElement(textarea,container),container}},{util:6}],7:[function(require,module){\"use strict\";module.exports=function(container){var link=document.createElement(\"a\");return link.setAttribute(\"class\",\"scriptie-talkie-link\"),window.link=link,container.appendChild(link),link.textContent=\"full view\",link}},{}],8:[function(require,module){\"use script\";module.exports=function(){var head=document.getElementsByTagName(\"head\")[0],style=document.createElement(\"style\");style.type=\"text/css\",style.styleSheet?style.styleSheet.cssText=css:style.appendChild(document.createTextNode(css)),head.appendChild(style)};var css=[\"textarea.scriptie-talkie {\",\" visibility: hidden;\",\" display : block;\",\"}\",\".scriptie-talkie-container {\",\" position: relative; \",\" margin: 10px 0px;\",\"}\",\".scriptie-talkie-editor,\",\".scriptie-talkie-terminal {\",\" position: absolute;\",\" top: 0;\",\" bottom: 0;\",\" height: 100%;\",\" width: 50%;\",\"}\",\".scriptie-talkie-editor {\",\" left: 0;\",\" right: 50%;\",\"}\",\".scriptie-talkie-link {\",\" position : absolute;\",\" bottom : 1px;\",\" right : 4px;\",\" font-size : 14px;\",\" color : yellowgreen;\",\" z-index : 1;\",\"}\",\"textarea.scriptie-talkie, \",\".scriptie-talkie-terminal,\",\".scriptie-talkie-editor {\",\" /* text area needs same font to determine editor size correctly */\",\" font-size : 14px;\",\" font-family : Terminus,Consolas,Profont,Monaco,Inconsolata,Inconsolata-g,\",' Unifont,Lime,\"ClearlyU PUA\",Clean,\"DejaVu Sans Mono\",\"Lucida Console\",',' \"Bitstream Vera Sans Mono\",Freemono,\"Liberation Mono\",Dina,Anka,Droid Sans Mono,',' Anonymous Pro,Proggy fonts,Envy Code R,Gamow,Courier,\"Courier New\",Terminal,monospace;',\"}\",\".scriptie-talkie-terminal {\",\" background : black;\",\" right: 0;\",\" left: 50%;\",\" overflow: auto\",\"}\",\"/* tweak the ace editor a bit since we will never have >99 lines and need to save space */\",\".scriptie-talkie-editor .ace_gutter-cell ,\",\".scriptie-talkie-editor .ace_folding-enabled > .ace_gutter-cell { \",\" padding-left: 20px;\",\" padding-right: 5px;\",\"}\"].join(\"\\n\")},{}],9:[function(require,module){\"use strict\";var qs=require(\"querystring\"),scriptieTalkieUrl=\"http://thlorenz.github.io/scriptie-talkie\";module.exports=function(code){return scriptieTalkieUrl+\"?\"+qs.stringify({code:code})}},{querystring:10}],2:[function(require,module){\"use strict\";function harvest(scripties){for(var textarea,res=[],len=scripties.length,i=0;len>i;i++)textarea=scripties.item(i),res.push(textarea);return res}function sizeTerminalToRowsAndAdjust(container,lines){var evaluatedLines=evaluateScript(lines.join(\"\\n\")),term=createTerminal(container,{lines:evaluatedLines});return container.style.height=term.height+\"px\",term}function talkify(textareas){loadStyles(),textareas.forEach(function(textarea){function evaluate(){var code=editor.getValue();terminal.reset(),link.setAttribute(\"href\",linkTo(code)),evaluateScript(code,terminal.writeln.bind(terminal))}var term,lines=prepareTextarea(textarea,-3),config=getTextareaConfig(textarea),container=createContainer(textarea),link=createLink(container);term=config.sizeToEditor?createTerminal(container):sizeTerminalToRowsAndAdjust(container,lines);var edit=createEditor(container,textarea.textContent,config),terminal=term.terminal,editor=edit.editor;editor.on(\"change\",debounce(evaluate,400,!1)),editor.clearSelection(),evaluate()})}var debounce=require(\"debounce\"),getTextareaConfig=require(\"./lib/get-textarea-config\"),prepareTextarea=require(\"./lib/prepare-textarea\"),createContainer=require(\"./lib/create-container\"),createEditor=require(\"./lib/create-editor\"),createTerminal=require(\"./lib/create-terminal\"),createLink=require(\"./lib/create-link\"),evaluateScript=require(\"./lib/evaluate-script\"),loadStyles=require(\"./lib/load-styles\"),linkTo=require(\"./lib/link-to\");module.exports=function(){var wantScripties=document.getElementsByClassName(\"scriptie-talkie\"),textareas=harvest(wantScripties);textareas.length&&talkify(textareas)},window.scriptieTalkieEmbed=module.exports},{\"./lib/get-textarea-config\":3,\"./lib/prepare-textarea\":4,\"./lib/create-container\":5,\"./lib/create-editor\":11,\"./lib/create-terminal\":12,\"./lib/create-link\":7,\"./lib/evaluate-script\":13,\"./lib/load-styles\":8,\"./lib/link-to\":9,debounce:14}],6:[function(require,module,exports){function isArray(ar){return ar instanceof Array||Array.isArray(ar)||ar&&ar!==Object.prototype&&isArray(ar.__proto__)}function isRegExp(re){return re instanceof RegExp||\"object\"==typeof re&&\"[object RegExp]\"===Object.prototype.toString.call(re)}function isDate(d){if(d instanceof Date)return!0;if(\"object\"!=typeof d)return!1;var properties=Date.prototype&&Object_getOwnPropertyNames(Date.prototype),proto=d.__proto__&&Object_getOwnPropertyNames(d.__proto__);return JSON.stringify(proto)===JSON.stringify(properties)}require(\"events\"),exports.isArray=isArray,exports.isDate=function(obj){return\"[object Date]\"===Object.prototype.toString.call(obj)},exports.isRegExp=function(obj){return\"[object RegExp]\"===Object.prototype.toString.call(obj)},exports.print=function(){},exports.puts=function(){},exports.debug=function(){},exports.inspect=function(obj,showHidden,depth,colors){function format(value,recurseTimes){if(value&&\"function\"==typeof value.inspect&&value!==exports&&(!value.constructor||value.constructor.prototype!==value))return value.inspect(recurseTimes);switch(typeof value){case\"undefined\":return stylize(\"undefined\",\"undefined\");case\"string\":var simple=\"'\"+JSON.stringify(value).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return stylize(simple,\"string\");case\"number\":return stylize(\"\"+value,\"number\");case\"boolean\":return stylize(\"\"+value,\"boolean\")}if(null===value)return stylize(\"null\",\"null\");var visible_keys=Object_keys(value),keys=showHidden?Object_getOwnPropertyNames(value):visible_keys;if(\"function\"==typeof value&&0===keys.length){if(isRegExp(value))return stylize(\"\"+value,\"regexp\");var name=value.name?\": \"+value.name:\"\";return stylize(\"[Function\"+name+\"]\",\"special\")}if(isDate(value)&&0===keys.length)return stylize(value.toUTCString(),\"date\");var base,type,braces;if(isArray(value)?(type=\"Array\",braces=[\"[\",\"]\"]):(type=\"Object\",braces=[\"{\",\"}\"]),\"function\"==typeof value){var n=value.name?\": \"+value.name:\"\";base=isRegExp(value)?\" \"+value:\" [Function\"+n+\"]\"}else base=\"\";if(isDate(value)&&(base=\" \"+value.toUTCString()),0===keys.length)return braces[0]+base+braces[1];if(0>recurseTimes)return isRegExp(value)?stylize(\"\"+value,\"regexp\"):stylize(\"[Object]\",\"special\");seen.push(value);var output=keys.map(function(key){var name,str;if(value.__lookupGetter__&&(value.__lookupGetter__(key)?str=value.__lookupSetter__(key)?stylize(\"[Getter/Setter]\",\"special\"):stylize(\"[Getter]\",\"special\"):value.__lookupSetter__(key)&&(str=stylize(\"[Setter]\",\"special\"))),0>visible_keys.indexOf(key)&&(name=\"[\"+key+\"]\"),str||(0>seen.indexOf(value[key])?(str=null===recurseTimes?format(value[key]):format(value[key],recurseTimes-1),str.indexOf(\"\\n\")>-1&&(str=isArray(value)?str.split(\"\\n\").map(function(line){return\" \"+line}).join(\"\\n\").substr(2):\"\\n\"+str.split(\"\\n\").map(function(line){return\" \"+line}).join(\"\\n\"))):str=stylize(\"[Circular]\",\"special\")),name===void 0){if(\"Array\"===type&&key.match(/^\\d+$/))return str;name=JSON.stringify(\"\"+key),name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(name=name.substr(1,name.length-2),name=stylize(name,\"name\")):(name=name.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),name=stylize(name,\"string\"))}return name+\": \"+str});seen.pop();var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf(\"\\n\")>=0&&numLinesEst++,prev+cur.length+1},0);return output=length>50?braces[0]+(\"\"===base?\"\":base+\"\\n \")+\" \"+output.join(\",\\n \")+\" \"+braces[1]:braces[0]+base+\" \"+output.join(\", \")+\" \"+braces[1]}var seen=[],stylize=function(str,styleType){var styles={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},style={special:\"cyan\",number:\"blue\",\"boolean\":\"yellow\",undefined:\"grey\",\"null\":\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"}[styleType];return style?\"\u001b[\"+styles[style][0]+\"m\"+str+\"\u001b[\"+styles[style][1]+\"m\":str};return colors||(stylize=function(str){return str}),format(obj,depth===void 0?2:depth)},exports.log=function(){},exports.pump=null;var Object_keys=Object.keys||function(obj){var res=[];for(var key in obj)res.push(key);return res},Object_getOwnPropertyNames=Object.getOwnPropertyNames||function(obj){var res=[];for(var key in obj)Object.hasOwnProperty.call(obj,key)&&res.push(key);return res},Object_create=Object.create||function(prototype,properties){var object;if(null===prototype)object={__proto__:null};else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return properties!==void 0&&Object.defineProperties&&Object.defineProperties(object,properties),object};exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object_create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})};var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(\"string\"!=typeof f){for(var objects=[],i=0;arguments.length>i;i++)objects.push(exports.inspect(arguments[i]));return objects.join(\" \")}for(var i=1,args=arguments,len=args.length,str=(f+\"\").replace(formatRegExp,function(x){if(\"%%\"===x)return\"%\";if(i>=len)return x;switch(x){case\"%s\":return args[i++]+\"\";case\"%d\":return Number(args[i++]);case\"%j\":return JSON.stringify(args[i++]);default:return x}}),x=args[i];len>i;x=args[++i])str+=null===x||\"object\"!=typeof x?\" \"+x:\" \"+exports.inspect(x);return str}},{events:15}],10:[function(require,module,exports){function stringifyString(str,prefix){if(!prefix)throw new TypeError(\"stringify expects an object\");return prefix+\"=\"+encodeURIComponent(str)}function stringifyArray(arr,prefix){var ret=[];if(!prefix)throw new TypeError(\"stringify expects an object\");for(var i=0;arr.length>i;i++)ret.push(stringify(arr[i],prefix+\"[]\"));return ret.join(\"&\")}function stringifyObject(obj,prefix){for(var key,ret=[],keys=objectKeys(obj),i=0,len=keys.length;len>i;++i)key=keys[i],ret.push(stringify(obj[key],prefix?prefix+\"[\"+encodeURIComponent(key)+\"]\":encodeURIComponent(key)));return ret.join(\"&\")}function set(obj,key,val){var v=obj[key];void 0===v?obj[key]=val:isArray(v)?v.push(val):obj[key]=[v,val]}function lastBraceInKey(str){for(var brace,c,len=str.length,i=0;len>i;++i)if(c=str[i],\"]\"==c&&(brace=!1),\"[\"==c&&(brace=!0),\"=\"==c&&!brace)return i}var isArray=\"function\"==typeof Array.isArray?Array.isArray:function(xs){return\"[object Array]\"===Object.prototype.toString.call(xs)},objectKeys=Object.keys||function objectKeys(object){if(object!==Object(object))throw new TypeError(\"Invalid object\");var keys=[];for(var key in object)object.hasOwnProperty(key)&&(keys[keys.length]=key);return keys};exports.version=\"0.3.1\";var toString=Object.prototype.toString,notint=/[^0-9]/;exports.parse=function(str){function promote(parent,key){if(0==parent[key].length)return parent[key]={};var t={};for(var i in parent[key])t[i]=parent[key][i];return parent[key]=t,t}return null==str||\"\"==str?{}:(str+\"\").split(\"&\").reduce(function(ret,pair){function parse(parts,parent,key){var part=parts.shift();part?(obj=parent[key]=parent[key]||[],\"]\"==part?isArray(obj)?\"\"!=val&&obj.push(val):\"object\"==typeof obj?obj[objectKeys(obj).length]=val:obj=parent[key]=[parent[key],val]:~part.indexOf(\"]\")?(part=part.substr(0,part.length-1),notint.test(part)&&isArray(obj)&&(obj=promote(parent,key)),parse(parts,obj,part)):(notint.test(part)&&isArray(obj)&&(obj=promote(parent,key)),parse(parts,obj,part))):isArray(parent[key])?parent[key].push(val):parent[key]=\"object\"==typeof parent[key]?val:parent[key]===void 0?val:[parent[key],val]}try{pair=decodeURIComponent(pair.replace(/\\+/g,\" \"))}catch(e){}var eql=pair.indexOf(\"=\"),brace=lastBraceInKey(pair),key=pair.substr(0,brace||eql),val=pair.substr(brace||eql,pair.length),val=val.substr(val.indexOf(\"=\")+1,val.length),parent=ret;if(\"\"==key&&(key=pair,val=\"\"),~key.indexOf(\"]\")){var parts=key.split(\"[\");parts.length,parse(parts,parent,\"base\")}else{if(notint.test(key)&&isArray(parent.base)){var t={};for(var k in parent.base)t[k]=parent.base[k];parent.base=t}set(parent.base,key,val)}return ret},{base:{}}).base};var stringify=exports.stringify=function(obj,prefix){return isArray(obj)?stringifyArray(obj,prefix):\"[object Object]\"==toString.call(obj)?stringifyObject(obj,prefix):\"string\"==typeof obj?stringifyString(obj,prefix):prefix}},{}],14:[function(require,module){module.exports=function(func,threshold,execAsap){var timeout;return!1!==execAsap&&(execAsap=!0),function(){function delayed(){execAsap||func.apply(obj,args),timeout=null}var obj=this,args=arguments;timeout?clearTimeout(timeout):execAsap&&func.apply(obj,args),timeout=setTimeout(delayed,threshold||100)}}},{}],16:[function(require,module){var process=module.exports={};process.nextTick=function(){var canSetImmediate=\"undefined\"!=typeof window&&window.setImmediate,canPost=\"undefined\"!=typeof window&&window.postMessage&&window.addEventListener;if(canSetImmediate)return function(f){return window.setImmediate(f)};if(canPost){var queue=[];return window.addEventListener(\"message\",function(ev){if(ev.source===window&&\"process-tick\"===ev.data&&(ev.stopPropagation(),queue.length>0)){var fn=queue.shift();fn()}},!0),function(fn){queue.push(fn),window.postMessage(\"process-tick\",\"*\")}}return function(fn){setTimeout(fn,0)}}(),process.title=\"browser\",process.browser=!0,process.env={},process.argv=[],process.binding=function(){throw Error(\"process.binding is not supported\")},process.cwd=function(){return\"/\"},process.chdir=function(){throw Error(\"process.chdir is not supported\")}},{}],15:[function(require,module,exports){(function(process){function indexOf(xs,x){if(xs.indexOf)return xs.indexOf(x);for(var i=0;xs.length>i;i++)if(x===xs[i])return i;return-1}process.EventEmitter||(process.EventEmitter=function(){});var EventEmitter=exports.EventEmitter=process.EventEmitter,isArray=\"function\"==typeof Array.isArray?Array.isArray:function(xs){return\"[object Array]\"===Object.prototype.toString.call(xs)},defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){this._events||(this._events={}),this._events.maxListeners=n},EventEmitter.prototype.emit=function(type){if(\"error\"===type&&(!this._events||!this._events.error||isArray(this._events.error)&&!this._events.error.length))throw arguments[1]instanceof Error?arguments[1]:Error(\"Uncaught, unspecified 'error' event.\");if(!this._events)return!1;var handler=this._events[type];if(!handler)return!1;if(\"function\"==typeof handler){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:var args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}return!0}if(isArray(handler)){for(var args=Array.prototype.slice.call(arguments,1),listeners=handler.slice(),i=0,l=listeners.length;l>i;i++)listeners[i].apply(this,args);return!0}return!1},EventEmitter.prototype.addListener=function(type,listener){if(\"function\"!=typeof listener)throw Error(\"addListener only takes instances of Function\");if(this._events||(this._events={}),this.emit(\"newListener\",type,listener),this._events[type])if(isArray(this._events[type])){if(!this._events[type].warned){var m;m=void 0!==this._events.maxListeners?this._events.maxListeners:defaultMaxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[type].length),console.trace())}this._events[type].push(listener)}else this._events[type]=[this._events[type],listener];else this._events[type]=listener;return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){var self=this;return self.on(type,function g(){self.removeListener(type,g),listener.apply(this,arguments)}),this},EventEmitter.prototype.removeListener=function(type,listener){if(\"function\"!=typeof listener)throw Error(\"removeListener only takes instances of Function\");if(!this._events||!this._events[type])return this;var list=this._events[type];if(isArray(list)){var i=indexOf(list,listener);if(0>i)return this;list.splice(i,1),0==list.length&&delete this._events[type]}else this._events[type]===listener&&delete this._events[type];return this},EventEmitter.prototype.removeAllListeners=function(type){return 0===arguments.length?(this._events={},this):(type&&this._events&&this._events[type]&&(this._events[type]=null),this)},EventEmitter.prototype.listeners=function(type){return this._events||(this._events={}),this._events[type]||(this._events[type]=[]),isArray(this._events[type])||(this._events[type]=[this._events[type]]),this._events[type]}})(require(\"__browserify_process\"))},{__browserify_process:16}],17:[function(){ace.define(\"ace/theme/monokai\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(acequire,exports){exports.isDark=!0,exports.cssClass=\"ace-monokai\",exports.cssText=\".ace-monokai .ace_gutter {background: #2F3129;color: #8F908A}.ace-monokai .ace_print-margin {width: 1px;background: #555651}.ace-monokai .ace_scroller {background-color: #272822}.ace-monokai .ace_text-layer {color: #F8F8F2}.ace-monokai .ace_cursor {border-left: 2px solid #F8F8F0}.ace-monokai .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #F8F8F0}.ace-monokai .ace_marker-layer .ace_selection {background: #49483E}.ace-monokai.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #272822;border-radius: 2px}.ace-monokai .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-monokai .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E}.ace-monokai .ace_marker-layer .ace_active-line {background: #202020}.ace-monokai .ace_gutter-active-line {background-color: #272727}.ace-monokai .ace_marker-layer .ace_selected-word {border: 1px solid #49483E}.ace-monokai .ace_invisible {color: #52524d}.ace-monokai .ace_entity.ace_name.ace_tag,.ace-monokai .ace_keyword,.ace-monokai .ace_meta,.ace-monokai .ace_storage {color: #F92672}.ace-monokai .ace_constant.ace_character,.ace-monokai .ace_constant.ace_language,.ace-monokai .ace_constant.ace_numeric,.ace-monokai .ace_constant.ace_other {color: #AE81FF}.ace-monokai .ace_invalid {color: #F8F8F0;background-color: #F92672}.ace-monokai .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}.ace-monokai .ace_support.ace_constant,.ace-monokai .ace_support.ace_function {color: #66D9EF}.ace-monokai .ace_fold {background-color: #A6E22E;border-color: #F8F8F2}.ace-monokai .ace_storage.ace_type,.ace-monokai .ace_support.ace_class,.ace-monokai .ace_support.ace_type {font-style: italic;color: #66D9EF}.ace-monokai .ace_entity.ace_name.ace_function,.ace-monokai .ace_entity.ace_other,.ace-monokai .ace_variable {color: #A6E22E}.ace-monokai .ace_variable.ace_parameter {font-style: italic;color: #FD971F}.ace-monokai .ace_string {color: #E6DB74}.ace-monokai .ace_comment {color: #75715E}.ace-monokai .ace_markup.ace_underline {text-decoration: underline}.ace-monokai .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ11D6z7Bq1ar/ABCKBG6g04U2AAAAAElFTkSuQmCC) right repeat-y}\";var dom=acequire(\"../lib/dom\");dom.importCssString(exports.cssText,exports.cssClass)})},{}],18:[function(require){(function(){ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/tokenizer\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),TextMode=acequire(\"./text\").Mode,Tokenizer=acequire(\"../tokenizer\").Tokenizer,JavaScriptHighlightRules=acequire(\"./javascript_highlight_rules\").JavaScriptHighlightRules,MatchingBraceOutdent=acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;acequire(\"../range\").Range;var WorkerClient=acequire(\"../worker/worker_client\").WorkerClient,CstyleBehaviour=acequire(\"./behaviour/cstyle\").CstyleBehaviour,CStyleFoldMode=acequire(\"./folding/cstyle\").FoldMode,Mode=function(){this.$tokenizer=new Tokenizer((new JavaScriptHighlightRules).getRules()),this.$outdent=new MatchingBraceOutdent,this.$behaviour=new CstyleBehaviour,this.foldingRules=new CStyleFoldMode};oop.inherits(Mode,TextMode),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(state,line,tab){var indent=this.$getIndent(line),tokenizedLine=this.$tokenizer.getLineTokens(line,state),tokens=tokenizedLine.tokens,endState=tokenizedLine.state;if(tokens.length&&\"comment\"==tokens[tokens.length-1].type)return indent;if(\"start\"==state||\"no_regex\"==state){var match=line.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);match&&(indent+=tab)}else if(\"doc-start\"==state){if(\"start\"==endState||\"no_regex\"==endState)return\"\";var match=line.match(/^\\s*(\\/?)\\*/);match&&(match[1]&&(indent+=\" \"),indent+=\"* \")}return indent},this.checkOutdent=function(state,line,input){return this.$outdent.checkOutdent(line,input)},this.autoOutdent=function(state,doc,row){this.$outdent.autoOutdent(doc,row)},this.createWorker=function(session){var worker=new WorkerClient([\"ace\"],require(\"../worker/javascript\"),\"JavaScriptWorker\");return worker.attachToDocument(session.getDocument()),worker.on(\"jslint\",function(results){session.setAnnotations(results.data)}),worker.on(\"terminate\",function(){session.clearAnnotations()}),worker}}.call(Mode.prototype),exports.Mode=Mode}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),DocCommentHighlightRules=acequire(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,TextHighlightRules=acequire(\"./text_highlight_rules\").TextHighlightRules,JavaScriptHighlightRules=function(){var keywordMapper=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),kwBeforeRe=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",identifierRe=\"[a-zA-Z\\\\$_¡-￿][a-zA-Z\\\\d\\\\$_¡-￿]*\\\\b\",escapedRe=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[{token:\"comment\",regex:/\\/\\/.*$/},DocCommentHighlightRules.getStartRule(\"doc-start\"),{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0[xX][0-9a-fA-F]+\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+identifierRe+\")(\\\\.)(prototype)(\\\\.)(\"+identifierRe+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+identifierRe+\")(\\\\.)(\"+identifierRe+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+identifierRe+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+identifierRe+\")(\\\\.)(\"+identifierRe+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+identifierRe+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+identifierRe+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+kwBeforeRe+\")\\\\b\",next:\"start\"},{token:[\"punctuation.operator\",\"support.function\"],regex:/(\\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:[\"punctuation.operator\",\"support.function.dom\"],regex:/(\\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:[\"punctuation.operator\",\"support.constant\"],regex:/(\\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|timeEnd|assert)\\b/},{token:keywordMapper,regex:identifierRe},{token:\"keyword.operator\",regex:/--|\\+\\+|[!$%&*+\\-~]|===|==|=|!=|!==|\u003C=|>=|\u003C\u003C=|>>=|>>>=|\u003C>|\u003C|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=/,next:\"start\"},{token:\"punctuation.operator\",regex:/\\?|\\:|\\,|\\;|\\./,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"keyword.operator\",regex:/\\/=?/,next:\"start\"},{token:\"comment\",regex:/^#!.*$/}],start:[DocCommentHighlightRules.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment_regex_allowed\"},{token:\"comment\",regex:\"\\\\/\\\\/.*$\",next:\"start\"},{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/\\\\w*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:identifierRe},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],comment_regex_allowed:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"no_regex\"},{defaultToken:\"comment\"}],qqstring:[{token:\"constant.language.escape\",regex:escapedRe},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:escapedRe},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]},this.embedRules(DocCommentHighlightRules,\"doc-\",[DocCommentHighlightRules.getEndRule(\"no_regex\")])\n};oop.inherits(JavaScriptHighlightRules,TextHighlightRules),exports.JavaScriptHighlightRules=JavaScriptHighlightRules}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),TextHighlightRules=acequire(\"./text_highlight_rules\").TextHighlightRules,DocCommentHighlightRules=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},{token:\"comment.doc.tag\",regex:\"\\\\bTODO\\\\b\"},{defaultToken:\"comment.doc\"}]}};oop.inherits(DocCommentHighlightRules,TextHighlightRules),DocCommentHighlightRules.getStartRule=function(start){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:start}},DocCommentHighlightRules.getEndRule=function(start){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:start}},exports.DocCommentHighlightRules=DocCommentHighlightRules}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(acequire,exports){var Range=acequire(\"../range\").Range,MatchingBraceOutdent=function(){};(function(){this.checkOutdent=function(line,input){return/^\\s+$/.test(line)?/^\\s*\\}/.test(input):!1},this.autoOutdent=function(doc,row){var line=doc.getLine(row),match=line.match(/^(\\s*\\})/);if(!match)return 0;var column=match[1].length,openBracePos=doc.findMatchingBracket({row:row,column:column});if(!openBracePos||openBracePos.row==row)return 0;var indent=this.$getIndent(doc.getLine(openBracePos.row));doc.replace(new Range(row,0,row,column-1),indent)},this.$getIndent=function(line){return line.match(/^\\s*/)[0]}}).call(MatchingBraceOutdent.prototype),exports.MatchingBraceOutdent=MatchingBraceOutdent}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(acequire,exports){var oop=acequire(\"../../lib/oop\"),Behaviour=acequire(\"../behaviour\").Behaviour,TokenIterator=acequire(\"../../token_iterator\").TokenIterator,lang=acequire(\"../../lib/lang\"),SAFE_INSERT_IN_TOKENS=[\"text\",\"paren.rparen\",\"punctuation.operator\"],SAFE_INSERT_BEFORE_TOKENS=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],autoInsertedBrackets=0,autoInsertedRow=-1,autoInsertedLineEnd=\"\",maybeInsertedBrackets=0,maybeInsertedRow=-1,maybeInsertedLineStart=\"\",maybeInsertedLineEnd=\"\",CstyleBehaviour=function(){CstyleBehaviour.isSaneInsertion=function(editor,session){var cursor=editor.getCursorPosition(),iterator=new TokenIterator(session,cursor.row,cursor.column);if(!this.$matchTokenType(iterator.getCurrentToken()||\"text\",SAFE_INSERT_IN_TOKENS)){var iterator2=new TokenIterator(session,cursor.row,cursor.column+1);if(!this.$matchTokenType(iterator2.getCurrentToken()||\"text\",SAFE_INSERT_IN_TOKENS))return!1}return iterator.stepForward(),iterator.getCurrentTokenRow()!==cursor.row||this.$matchTokenType(iterator.getCurrentToken()||\"text\",SAFE_INSERT_BEFORE_TOKENS)},CstyleBehaviour.$matchTokenType=function(token,types){return types.indexOf(token.type||token)>-1},CstyleBehaviour.recordAutoInsert=function(editor,session,bracket){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row);this.isAutoInsertedClosing(cursor,line,autoInsertedLineEnd[0])||(autoInsertedBrackets=0),autoInsertedRow=cursor.row,autoInsertedLineEnd=bracket+line.substr(cursor.column),autoInsertedBrackets++},CstyleBehaviour.recordMaybeInsert=function(editor,session,bracket){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row);this.isMaybeInsertedClosing(cursor,line)||(maybeInsertedBrackets=0),maybeInsertedRow=cursor.row,maybeInsertedLineStart=line.substr(0,cursor.column)+bracket,maybeInsertedLineEnd=line.substr(cursor.column),maybeInsertedBrackets++},CstyleBehaviour.isAutoInsertedClosing=function(cursor,line,bracket){return autoInsertedBrackets>0&&cursor.row===autoInsertedRow&&bracket===autoInsertedLineEnd[0]&&line.substr(cursor.column)===autoInsertedLineEnd},CstyleBehaviour.isMaybeInsertedClosing=function(cursor,line){return maybeInsertedBrackets>0&&cursor.row===maybeInsertedRow&&line.substr(cursor.column)===maybeInsertedLineEnd&&line.substr(0,cursor.column)==maybeInsertedLineStart},CstyleBehaviour.popAutoInsertedClosing=function(){autoInsertedLineEnd=autoInsertedLineEnd.substr(1),autoInsertedBrackets--},CstyleBehaviour.clearMaybeInsertedClosing=function(){maybeInsertedBrackets=0,maybeInsertedRow=-1},this.add(\"braces\",\"insertion\",function(state,action,editor,session,text){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row);if(\"{\"==text){var selection=editor.getSelectionRange(),selected=session.doc.getTextRange(selection);if(\"\"!==selected&&\"{\"!==selected&&editor.getWrapBehavioursEnabled())return{text:\"{\"+selected+\"}\",selection:!1};if(CstyleBehaviour.isSaneInsertion(editor,session))return/[\\]\\}\\)]/.test(line[cursor.column])?(CstyleBehaviour.recordAutoInsert(editor,session,\"}\"),{text:\"{}\",selection:[1,1]}):(CstyleBehaviour.recordMaybeInsert(editor,session,\"{\"),{text:\"{\",selection:[1,1]})}else if(\"}\"==text){var rightChar=line.substring(cursor.column,cursor.column+1);if(\"}\"==rightChar){var matching=session.$findOpeningBracket(\"}\",{column:cursor.column+1,row:cursor.row});if(null!==matching&&CstyleBehaviour.isAutoInsertedClosing(cursor,line,text))return CstyleBehaviour.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else if(\"\\n\"==text||\"\\r\\n\"==text){var closing=\"\";CstyleBehaviour.isMaybeInsertedClosing(cursor,line)&&(closing=lang.stringRepeat(\"}\",maybeInsertedBrackets),CstyleBehaviour.clearMaybeInsertedClosing());var rightChar=line.substring(cursor.column,cursor.column+1);if(\"}\"==rightChar||\"\"!==closing){var openBracePos=session.findMatchingBracket({row:cursor.row,column:cursor.column},\"}\");if(!openBracePos)return null;var indent=this.getNextLineIndent(state,line.substring(0,cursor.column),session.getTabString()),next_indent=this.$getIndent(line);return{text:\"\\n\"+indent+\"\\n\"+next_indent+closing,selection:[1,indent.length,1,indent.length]}}}}),this.add(\"braces\",\"deletion\",function(state,action,editor,session,range){var selected=session.doc.getTextRange(range);if(!range.isMultiLine()&&\"{\"==selected){var line=session.doc.getLine(range.start.row),rightChar=line.substring(range.end.column,range.end.column+1);if(\"}\"==rightChar)return range.end.column++,range;maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(state,action,editor,session,text){if(\"(\"==text){var selection=editor.getSelectionRange(),selected=session.doc.getTextRange(selection);if(\"\"!==selected&&editor.getWrapBehavioursEnabled())return{text:\"(\"+selected+\")\",selection:!1};if(CstyleBehaviour.isSaneInsertion(editor,session))return CstyleBehaviour.recordAutoInsert(editor,session,\")\"),{text:\"()\",selection:[1,1]}}else if(\")\"==text){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row),rightChar=line.substring(cursor.column,cursor.column+1);if(\")\"==rightChar){var matching=session.$findOpeningBracket(\")\",{column:cursor.column+1,row:cursor.row});if(null!==matching&&CstyleBehaviour.isAutoInsertedClosing(cursor,line,text))return CstyleBehaviour.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(state,action,editor,session,range){var selected=session.doc.getTextRange(range);if(!range.isMultiLine()&&\"(\"==selected){var line=session.doc.getLine(range.start.row),rightChar=line.substring(range.start.column+1,range.start.column+2);if(\")\"==rightChar)return range.end.column++,range}}),this.add(\"brackets\",\"insertion\",function(state,action,editor,session,text){if(\"[\"==text){var selection=editor.getSelectionRange(),selected=session.doc.getTextRange(selection);if(\"\"!==selected&&editor.getWrapBehavioursEnabled())return{text:\"[\"+selected+\"]\",selection:!1};if(CstyleBehaviour.isSaneInsertion(editor,session))return CstyleBehaviour.recordAutoInsert(editor,session,\"]\"),{text:\"[]\",selection:[1,1]}}else if(\"]\"==text){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row),rightChar=line.substring(cursor.column,cursor.column+1);if(\"]\"==rightChar){var matching=session.$findOpeningBracket(\"]\",{column:cursor.column+1,row:cursor.row});if(null!==matching&&CstyleBehaviour.isAutoInsertedClosing(cursor,line,text))return CstyleBehaviour.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(state,action,editor,session,range){var selected=session.doc.getTextRange(range);if(!range.isMultiLine()&&\"[\"==selected){var line=session.doc.getLine(range.start.row),rightChar=line.substring(range.start.column+1,range.start.column+2);if(\"]\"==rightChar)return range.end.column++,range}}),this.add(\"string_dquotes\",\"insertion\",function(state,action,editor,session,text){if('\"'==text||\"'\"==text){var quote=text,selection=editor.getSelectionRange(),selected=session.doc.getTextRange(selection);if(\"\"!==selected&&\"'\"!==selected&&'\"'!=selected&&editor.getWrapBehavioursEnabled())return{text:quote+selected+quote,selection:!1};var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row),leftChar=line.substring(cursor.column-1,cursor.column);if(\"\\\\\"==leftChar)return null;for(var token,tokens=session.getTokens(selection.start.row),col=0,quotepos=-1,x=0;tokens.length>x&&(token=tokens[x],\"string\"==token.type?quotepos=-1:0>quotepos&&(quotepos=token.value.indexOf(quote)),!(token.value.length+col>selection.start.column));x++)col+=tokens[x].value.length;if(!token||0>quotepos&&\"comment\"!==token.type&&(\"string\"!==token.type||selection.start.column!==token.value.length+col-1&&token.value.lastIndexOf(quote)===token.value.length-1)){if(!CstyleBehaviour.isSaneInsertion(editor,session))return;return{text:quote+quote,selection:[1,1]}}if(token&&\"string\"===token.type){var rightChar=line.substring(cursor.column,cursor.column+1);if(rightChar==quote)return{text:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(state,action,editor,session,range){var selected=session.doc.getTextRange(range);if(!range.isMultiLine()&&('\"'==selected||\"'\"==selected)){var line=session.doc.getLine(range.start.row),rightChar=line.substring(range.start.column+1,range.start.column+2);if(rightChar==selected)return range.end.column++,range}})};oop.inherits(CstyleBehaviour,Behaviour),exports.CstyleBehaviour=CstyleBehaviour}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(acequire,exports){var oop=acequire(\"../../lib/oop\");acequire(\"../../range\").Range;var BaseFoldMode=acequire(\"./fold_mode\").FoldMode,FoldMode=exports.FoldMode=function(commentRegex){commentRegex&&(this.foldingStartMarker=RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+commentRegex.start)),this.foldingStopMarker=RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+commentRegex.end)))};oop.inherits(FoldMode,BaseFoldMode),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.getFoldWidgetRange=function(session,foldStyle,row){var line=session.getLine(row),match=line.match(this.foldingStartMarker);if(match){var i=match.index;return match[1]?this.openingBracketBlock(session,match[1],row,i):session.getCommentFoldRange(row,i+match[0].length,1)}if(\"markbeginend\"===foldStyle){var match=line.match(this.foldingStopMarker);if(match){var i=match.index+match[0].length;return match[1]?this.closingBracketBlock(session,match[1],row,i):session.getCommentFoldRange(row,i,-1)}}}}.call(FoldMode.prototype)})})()},{\"../worker/javascript\":19}],11:[function(require,module){\"use strict\";var ace=require(\"brace\");require(\"brace/mode/javascript\"),require(\"brace/theme/monokai\"),module.exports=function(container,src){var editorContainer=document.createElement(\"div\");editorContainer.setAttribute(\"class\",\"scriptie-talkie-editor\"),container.appendChild(editorContainer);var editor=ace.edit(editorContainer),session=editor.getSession();return editor.setTheme(\"ace/theme/monokai\"),session.setMode(\"ace/mode/javascript\"),session.$tabSize=2,editor.$highlightActiveLine=!1,editor.setValue(src),{container:editorContainer,editor:editor}}},{\"brace/mode/javascript\":18,\"brace/theme/monokai\":17,brace:20}],12:[function(require,module){\"use strict\";function appendTerminal(terminalContainer,lines){var terminal=hypernal();return lines&&lines.forEach(function(line){terminal.writeln(line)}),terminal.appendTo(terminalContainer),terminal}function appendTerminalAndGetHeight(terminalContainer,lines){var terminal=appendTerminal(terminalContainer,lines),height=terminal.element.clientHeight;return{terminal:terminal,height:height}}var hypernal=require(\"hypernal\");module.exports=function(container,opts){opts=opts||{};var height,terminal,terminalContainer=document.createElement(\"div\");if(terminalContainer.setAttribute(\"class\",\"scriptie-talkie-terminal\"),container.appendChild(terminalContainer),opts.lines){var appended=appendTerminalAndGetHeight(terminalContainer,opts.lines);terminal=appended.terminal,height=appended.height}else terminal=appendTerminal(terminalContainer);return{container:terminalContainer,terminal:terminal,height:height}}},{hypernal:21}],13:[function(require,module){\"use strict\";var scriptieTalkie=require(\"scriptie-talkie\");module.exports=function(script,writeln){var lines=[];if(writeln=writeln||function(){},!script.trim().length)return lines;try{lines=scriptieTalkie(script),lines.forEach(function(line){writeln(line)})}catch(e){if(console.log(e.stack),console.error(\"\"+e),e instanceof ReferenceError&&/Trying to access object from destroyed plug-in/.test(e.message)){var msg=\"Looks like your iPad Safari browser doesn't like what scriptie talkie is doing.\\nPlease try another device and/or browser, i.e. chrome works everywhere, even on iPad.\";writeln(msg)}else e.inner?(writeln(\"unable to parse the current code, looks like you have an error on: \"),writeln(\"line: \"+e.inner.lineNumber+\" column: \"+e.inner.column)):(writeln(\"\"+e),writeln(e.stack))}return lines}},{\"scriptie-talkie\":22}],19:[function(require,module){(function(){module.exports.id=\"ace/mode/javascript_worker\",module.exports.src='\"no use strict\";(function(window){void 0!==window.window&&window.document||(window.console={log:function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})},error:function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})}},window.window=window,window.ace=window,window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return normalizeModule(parentId,chunks[0])+\"!\"+normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=base+\"/\"+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/\\\\/\\\\.\\\\//,\"/\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\"\")}}return moduleName},window.acequire=function(parentId,id){if(!id.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");id=normalizeModule(parentId,id);var module=acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;var chunks=id.split(\"/\");chunks[0]=acequire.tlns[chunks[0]]||chunks[0];var path=chunks.join(\"/\")+\".js\";return acequire.id=id,importScripts(path),acequire(parentId,id)},acequire.modules={},acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\"string\"!=typeof id&&(deps=id,id=acequire.id)):1==arguments.length&&(factory=id,id=acequire.id),0!==id.indexOf(\"text!\")){var req=function(deps,factory){return acequire(id,deps,factory)};acequire.modules[id]={factory:function(){var module={exports:{}},returnExports=factory(req,module.exports,module);return returnExports&&(module.exports=returnExports),module}}}},window.initBaseUrls=function initBaseUrls(topLevelNamespaces){acequire.tlns=topLevelNamespaces},window.initSender=function initSender(){var EventEmitter=acequire(null,\"ace/lib/event_emitter\").EventEmitter,oop=acequire(null,\"ace/lib/oop\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\"call\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\"event\",name:name,data:data})}}.call(Sender.prototype),new Sender},window.main=null,window.sender=null,window.onmessage=function(e){var msg=e.data;if(msg.command){if(!main[msg.command])throw Error(\"Unknown command:\"+msg.command);main[msg.command].apply(main,msg.args)}else if(msg.init){initBaseUrls(msg.tlns),acequire(null,\"ace/lib/fixoldbrowsers\"),sender=initSender();var clazz=acequire(null,msg.module)[msg.classname];main=new clazz(sender)}else msg.event&&sender&&sender._emit(msg.event,msg.data)})})(this),ace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"],function(acequire){acequire(\"./regexp\"),acequire(\"./es5-shim\")}),ace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"],function(){function getNativeFlags(regex){return(regex.global?\"g\":\"\")+(regex.ignoreCase?\"i\":\"\")+(regex.multiline?\"m\":\"\")+(regex.extended?\"x\":\"\")+(regex.sticky?\"y\":\"\")}function indexOf(array,item,from){if(Array.prototype.indexOf)return array.indexOf(item,from);for(var i=from||0;array.length>i;i++)if(array[i]===item)return i;return-1}var real={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},compliantExecNpcg=void 0===real.exec.call(/()??/,\"\")[1],compliantLastIndexIncrement=function(){var x=/^/g;return real.test.call(x,\"\"),!x.lastIndex}();compliantLastIndexIncrement&&compliantExecNpcg||(RegExp.prototype.exec=function(str){var name,r2,match=real.exec.apply(this,arguments);if(\"string\"==typeof str&&match){if(!compliantExecNpcg&&match.length>1&&indexOf(match,\"\")>-1&&(r2=RegExp(this.source,real.replace.call(getNativeFlags(this),\"g\",\"\")),real.replace.call(str.slice(match.index),r2,function(){for(var i=1;arguments.length-2>i;i++)void 0===arguments[i]&&(match[i]=void 0)})),this._xregexp&&this._xregexp.captureNames)for(var i=1;match.length>i;i++)name=this._xregexp.captureNames[i-1],name&&(match[name]=match[i]);!compliantLastIndexIncrement&&this.global&&!match[0].length&&this.lastIndex>match.index&&this.lastIndex--}return match},compliantLastIndexIncrement||(RegExp.prototype.test=function(str){var match=real.exec.call(this,str);return match&&this.global&&!match[0].length&&this.lastIndex>match.index&&this.lastIndex--,!!match}))}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != \\'object\\'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\\\n\u000b\\\\f\\\\r  ᠎              \\\\u2028\\\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can\\'t convert \"+o+\" to object\");return Object(o)}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault);for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners)for(var i=0;listeners.length>i;i++)listeners[i](e,this)},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){if(this._defaultHandlers=this._defaultHandlers||{},this._defaultHandlers[eventName])throw Error(\"The default handler for \\'\"+eventName+\"\\' is already set\");this._defaultHandlers[eventName]=callback},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){exports.inherits=function(){var tempCtor=function(){};return function(ctor,superCtor){tempCtor.prototype=superCtor.prototype,ctor.super_=superCtor.prototype,ctor.prototype=new tempCtor,ctor.prototype.constructor=ctor}}(),exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/mode/javascript_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/javascript/jshint\"],function(acequire,exports,module){function startRegex(arr){return RegExp(\"^(\"+arr.join(\"|\")+\")\")}var oop=acequire(\"../lib/oop\"),Mirror=acequire(\"../worker/mirror\").Mirror,lint=acequire(\"./javascript/jshint\").JSHINT,disabledWarningsRe=startRegex([\"Bad for in variable \\'(.+)\\'.\",\\'Missing \"use strict\"\\']),errorsRe=startRegex([\"Unexpected\",\"Expected \",\"Confusing (plus|minus)\",\"\\\\\\\\{a\\\\\\\\} unterminated regular expression\",\"Unclosed \",\"Unmatched \",\"Unbegun comment\",\"Bad invocation\",\"Missing space after\",\"Missing operator at\"]),infoRe=startRegex([\"Expected an assignment\",\"Bad escapement of EOL\",\"Unexpected comma\",\"Unexpected space\",\"Missing radix parameter.\",\"A leading decimal point can\",\"\\\\\\\\[\\'{a}\\'\\\\\\\\] is better written in dot notation.\",\"\\'{a}\\' used out of scope\"]),JavaScriptWorker=exports.JavaScriptWorker=function(sender){Mirror.call(this,sender),this.setTimeout(500),this.setOptions()};oop.inherits(JavaScriptWorker,Mirror),function(){this.setOptions=function(options){this.options=options||{es5:!0,esnext:!0,devel:!0,browser:!0,node:!0,laxcomma:!0,laxbreak:!0,lastsemic:!0,onevar:!1,passfail:!1,maxerr:100,expr:!0,multistr:!0,globalstrict:!0},this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.changeOptions=function(newOptions){oop.mixin(this.options,newOptions),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.isValidJS=function(str){try{eval(\"throw 0;\"+str)}catch(e){if(0===e)return!0}return!1},this.onUpdate=function(){var value=this.doc.getValue();if(value=value.replace(/^#!.*\\\\n/,\"\\\\n\"),!value)return this.sender.emit(\"jslint\",[]),void 0;var errors=[],maxErrorLevel=this.isValidJS(value)?\"warning\":\"error\";lint(value,this.options);for(var results=lint.errors,errorAdded=!1,i=0;results.length>i;i++){var error=results[i];if(error){var raw=error.raw,type=\"warning\";if(\"Missing semicolon.\"==raw){var str=error.evidence.substr(error.character);str=str.charAt(str.search(/\\\\S/)),\"error\"==maxErrorLevel&&str&&/[\\\\w\\\\d{([\\'\"]/.test(str)?(error.reason=\\'Missing \";\" before statement\\',type=\"error\"):type=\"info\"}else{if(disabledWarningsRe.test(raw))continue;infoRe.test(raw)?type=\"info\":errorsRe.test(raw)?(errorAdded=!0,type=maxErrorLevel):\"\\'{a}\\' is not defined.\"==raw?type=\"warning\":\"\\'{a}\\' is defined but never used.\"==raw&&(type=\"info\")}errors.push({row:error.line-1,column:error.character-1,text:error.reason,type:type,raw:raw})}}this.sender.emit(\"jslint\",errors)}}.call(JavaScriptWorker.prototype)}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/document\",\"ace/lib/lang\"],function(acequire,exports){var Document=acequire(\"../document\").Document,lang=acequire(\"../lib/lang\"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(\"\"),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on(\"change\",function(e){doc.applyDeltas([e.data]),deferredUpdate.schedule(_self.$timeout)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){}}).call(Mirror.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(text){this.$lines=[],0==text.length?this.$lines=[\"\"]:Array.isArray(text)?this.insertLines(0,text):this.insert({row:0,column:0},text)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength();this.remove(new Range(0,0,len,this.getLine(len-1).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==\"aaa\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\"\\\\n\").split(\"\\\\n\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\"\\\\n\"},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\\\r\\\\n\";case\"unix\":return\"\\\\n\";default:return this.$autoNewLine}},this.$autoNewLine=\"\\\\n\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode)},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\\\r\\\\n\"==text||\"\\\\r\"==text||\"\\\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){if(range.start.row==range.end.row)return this.$lines[range.start.row].substring(range.start.column,range.end.column);var lines=this.getLines(range.start.row+1,range.end.row-1);return lines.unshift((this.$lines[range.start.row]||\"\").substring(range.start.column)),lines.push((this.$lines[range.end.row]||\"\").substring(0,range.end.column)),lines.join(this.getNewLineCharacter())},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):0>position.row&&(position.row=0),position},this.insert=function(position,text){if(!text||0===text.length)return position;position=this.$clipPosition(position),1>=this.getLength()&&this.$detectNewLine(text);var lines=this.$split(text),firstLine=lines.splice(0,1)[0],lastLine=0==lines.length?null:lines.splice(lines.length-1,1)[0];return position=this.insertInLine(position,firstLine),null!==lastLine&&(position=this.insertNewLine(position),position=this.insertLines(position.row,lines),position=this.insertInLine(position,lastLine||\"\")),position},this.insertLines=function(row,lines){if(0==lines.length)return{row:row,column:0};if(lines.length>65535){var end=this.insertLines(row,lines.slice(65535));lines=lines.slice(0,65535)}var args=[row,0];args.push.apply(args,lines),this.$lines.splice.apply(this.$lines,args);var range=new Range(row,0,row+lines.length,0),delta={action:\"insertLines\",range:range,lines:lines};return this._emit(\"change\",{data:delta}),end||range.end},this.insertNewLine=function(position){position=this.$clipPosition(position);var line=this.$lines[position.row]||\"\";this.$lines[position.row]=line.substring(0,position.column),this.$lines.splice(position.row+1,0,line.substring(position.column,line.length));var end={row:position.row+1,column:0},delta={action:\"insertText\",range:Range.fromPoints(position,end),text:this.getNewLineCharacter()};return this._emit(\"change\",{data:delta}),end},this.insertInLine=function(position,text){if(0==text.length)return position;var line=this.$lines[position.row]||\"\";this.$lines[position.row]=line.substring(0,position.column)+text+line.substring(position.column);var end={row:position.row,column:position.column+text.length},delta={action:\"insertText\",range:Range.fromPoints(position,end),text:text};return this._emit(\"change\",{data:delta}),end},this.remove=function(range){if(range.start=this.$clipPosition(range.start),range.end=this.$clipPosition(range.end),range.isEmpty())return range.start;var firstRow=range.start.row,lastRow=range.end.row;if(range.isMultiLine()){var firstFullRow=0==range.start.column?firstRow:firstRow+1,lastFullRow=lastRow-1;range.end.column>0&&this.removeInLine(lastRow,0,range.end.column),lastFullRow>=firstFullRow&&this.removeLines(firstFullRow,lastFullRow),firstFullRow!=firstRow&&(this.removeInLine(firstRow,range.start.column,this.getLine(firstRow).length),this.removeNewLine(range.start.row))}else this.removeInLine(firstRow,range.start.column,range.end.column);return range.start},this.removeInLine=function(row,startColumn,endColumn){if(startColumn!=endColumn){var range=new Range(row,startColumn,row,endColumn),line=this.getLine(row),removed=line.substring(startColumn,endColumn),newLine=line.substring(0,startColumn)+line.substring(endColumn,line.length);this.$lines.splice(row,1,newLine);var delta={action:\"removeText\",range:range,text:removed};return this._emit(\"change\",{data:delta}),range.start}},this.removeLines=function(firstRow,lastRow){var range=new Range(firstRow,0,lastRow+1,0),removed=this.$lines.splice(firstRow,lastRow-firstRow+1),delta={action:\"removeLines\",range:range,nl:this.getNewLineCharacter(),lines:removed};return this._emit(\"change\",{data:delta}),removed},this.removeNewLine=function(row){var firstLine=this.getLine(row),secondLine=this.getLine(row+1),range=new Range(row,firstLine.length,row+1,0),line=firstLine+secondLine;this.$lines.splice(row,2,line);var delta={action:\"removeText\",range:range,text:this.getNewLineCharacter()};this._emit(\"change\",{data:delta})},this.replace=function(range,text){if(0==text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;if(this.remove(range),text)var end=this.insert(range.start,text);else end=range.start;return end},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);\"insertLines\"==delta.action?this.insertLines(range.start.row,delta.lines):\"insertText\"==delta.action?this.insert(range.start,delta.text):\"removeLines\"==delta.action?this.removeLines(range.start.row,range.end.row-1):\"removeText\"==delta.action&&this.remove(range)}},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);\"insertLines\"==delta.action?this.removeLines(range.start.row,range.end.row-1):\"insertText\"==delta.action?this.remove(range):\"removeLines\"==delta.action?this.insertLines(range.start.row,delta.lines):\"removeText\"==delta.action&&this.insert(range.start,delta.text)}},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length;return index+newlineLength*i+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)\\n},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.document=doc,column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column),this.$onChange=this.onChange.bind(this),doc.on(\"change\",this.$onChange)};(function(){oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(e){var delta=e.data,range=delta.range;if(!(range.start.row==range.end.row&&range.start.row!=this.row||range.start.row>this.row||range.start.row==this.row&&range.start.column>this.column)){var row=this.row,column=this.column,start=range.start,end=range.end;\"insertText\"===delta.action?start.row===row&&column>=start.column?start.row===end.row?column+=end.column-start.column:(column-=start.column,row+=end.row-start.row):start.row!==end.row&&row>start.row&&(row+=end.row-start.row):\"insertLines\"===delta.action?row>=start.row&&(row+=end.row-start.row):\"removeText\"===delta.action?start.row===row&&column>start.column?column=end.column>=column?start.column:Math.max(0,column-(end.column-start.column)):start.row!==end.row&&row>start.row?(end.row===row&&(column=Math.max(0,column-end.column)+start.column),row-=end.row-start.row):end.row===row&&(row-=end.row-start.row,column=Math.max(0,column-end.column)+start.column):\"removeLines\"==delta.action&&row>=start.row&&(row>=end.row?row-=end.row-start.row:(row=start.row,column=0)),this.setPosition(row,column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._emit(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function(obj){if(\"object\"!=typeof obj)return obj;var copy=obj.constructor();for(var key in obj)copy[key]=\"object\"==typeof obj[key]?this.deepCopy(obj[key]):obj[key];return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\"\\\\\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/\\'/g,\"'\").replace(/\u003C/g,\"<\")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)};return _self.delay=_self,_self.schedule=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||0))},_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define(\"ace/mode/javascript/jshint\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var JSHINT=function(){function F(){}function is_own(object,name){return Object.prototype.hasOwnProperty.call(object,name)}function checkOption(name,t){void 0===valOptions[name]&&void 0===boolOptions[name]&&warning(\"Bad option: \\'\"+name+\"\\'.\",t)}function isString(obj){return\"[object String]\"===Object.prototype.toString.call(obj)}function isAlpha(str){return str>=\"a\"&&\"z￿\">=str||str>=\"A\"&&\"Z￿\">=str}function isDigit(str){return str>=\"0\"&&\"9\">=str}function isIdentifier(token,value){return token?token.identifier&&token.value===value?!0:!1:!1}function supplant(str,data){return str.replace(/\\\\{([^{}]*)\\\\}/g,function(a,b){var r=data[b];return\"string\"==typeof r||\"number\"==typeof r?r:a})}function combine(t,o){var n;for(n in o)is_own(o,n)&&!is_own(JSHINT.blacklist,n)&&(t[n]=o[n])}function updatePredefined(){Object.keys(JSHINT.blacklist).forEach(function(key){delete predefined[key]})}function assume(){option.couch&&combine(predefined,couch),option.rhino&&combine(predefined,rhino),option.prototypejs&&combine(predefined,prototypejs),option.node&&(combine(predefined,node),option.globalstrict=!0),option.devel&&combine(predefined,devel),option.dojo&&combine(predefined,dojo),option.browser&&combine(predefined,browser),option.nonstandard&&combine(predefined,nonstandard),option.jquery&&combine(predefined,jquery),option.mootools&&combine(predefined,mootools),option.worker&&combine(predefined,worker),option.wsh&&combine(predefined,wsh),option.esnext&&useESNextSyntax(),option.globalstrict&&option.strict!==!1&&(option.strict=!0),option.yui&&combine(predefined,yui)}function quit(message,line,chr){var percentage=Math.floor(100*(line/lines.length));throw{name:\"JSHintError\",line:line,character:chr,message:message+\" (\"+percentage+\"% scanned).\",raw:message}}function isundef(scope,m,t,a){return JSHINT.undefs.push([scope,m,t,a])}function warning(m,t,a,b,c,d){var ch,l,w;return t=t||nexttoken,\"(end)\"===t.id&&(t=token),l=t.line||0,ch=t.from||0,w={id:\"(error)\",raw:m,evidence:lines[l-1]||\"\",line:l,character:ch,scope:JSHINT.scope,a:a,b:b,c:c,d:d},w.reason=supplant(m,w),JSHINT.errors.push(w),option.passfail&&quit(\"Stopping. \",l,ch),warnings+=1,warnings>=option.maxerr&&quit(\"Too many errors.\",l,ch),w}function warningAt(m,l,ch,a,b,c,d){return warning(m,{line:l,from:ch},a,b,c,d)}function error(m,t,a,b,c,d){warning(m,t,a,b,c,d)}function errorAt(m,l,ch,a,b,c,d){return error(m,{line:l,from:ch},a,b,c,d)}function addInternalSrc(elem,src){var i;return i={id:\"(internal)\",elem:elem,value:src},JSHINT.internals.push(i),i}function addlabel(t,type,token){\"hasOwnProperty\"===t&&warning(\"\\'hasOwnProperty\\' is a really bad name.\"),\"exception\"===type&&is_own(funct[\"(context)\"],t)&&(funct[t]===!0||option.node||warning(\"Value of \\'{a}\\' may be overwritten in IE.\",nexttoken,t)),is_own(funct,t)&&!funct[\"(global)\"]&&(funct[t]===!0?option.latedef&&warning(\"\\'{a}\\' was used before it was defined.\",nexttoken,t):option.shadow||\"exception\"===type||warning(\"\\'{a}\\' is already defined.\",nexttoken,t)),funct[t]=type,token&&(funct[\"(tokens)\"][t]=token),funct[\"(global)\"]?(global[t]=funct,is_own(implied,t)&&(option.latedef&&warning(\"\\'{a}\\' was used before it was defined.\",nexttoken,t),delete implied[t])):scope[t]=funct}function doOption(){var b,obj,filter,t,tn,v,minus,nt=nexttoken,o=nt.value,quotmarkValue=option.quotmark,predef={};switch(o){case\"*/\":error(\"Unbegun comment.\");break;case\"/*members\":case\"/*member\":o=\"/*members\",membersOnly||(membersOnly={}),obj=membersOnly,option.quotmark=!1;break;case\"/*jshint\":case\"/*jslint\":obj=option,filter=boolOptions;break;case\"/*global\":obj=predef;break;default:error(\"What?\")}for(t=lex.token();;){minus=!1;for(var breakOuterLoop;;){if(\"special\"===t.type&&\"*/\"===t.value){breakOuterLoop=!0;break}if(\"(endline)\"!==t.id&&\",\"!==t.id)break;t=lex.token()}if(breakOuterLoop)break;if(\"/*global\"===o&&\"-\"===t.value&&(minus=!0,t=lex.token()),\"(string)\"!==t.type&&\"(identifier)\"!==t.type&&\"/*members\"!==o&&error(\"Bad option.\",t),v=lex.token(),\":\"===v.id){v=lex.token(),obj===membersOnly&&error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",t,\"*/\",\":\"),\"/*jshint\"===o&&checkOption(t.value,t);var numericVals=[\"maxstatements\",\"maxparams\",\"maxdepth\",\"maxcomplexity\",\"maxerr\",\"maxlen\",\"indent\"];if(numericVals.indexOf(t.value)>-1&&(\"/*jshint\"===o||\"/*jslint\"===o))b=+v.value,(\"number\"!=typeof b||!isFinite(b)||0>=b||Math.floor(b)!==b)&&error(\"Expected a small integer and instead saw \\'{a}\\'.\",v,v.value),\"indent\"===t.value&&(obj.white=!0),obj[t.value]=b;else if(\"validthis\"===t.value)funct[\"(global)\"]?error(\"Option \\'validthis\\' can\\'t be used in a global scope.\"):\"true\"===v.value||\"false\"===v.value?obj[t.value]=\"true\"===v.value:error(\"Bad option value.\",v);else if(\"quotmark\"===t.value&&\"/*jshint\"===o)switch(v.value){case\"true\":obj.quotmark=!0;break;case\"false\":obj.quotmark=!1;break;case\"double\":case\"single\":obj.quotmark=v.value;break;default:error(\"Bad option value.\",v)}else\"true\"===v.value||\"false\"===v.value?(\"/*jslint\"===o?(tn=renamedOptions[t.value]||t.value,obj[tn]=\"true\"===v.value,void 0!==invertedOptions[tn]&&(obj[tn]=!obj[tn])):obj[t.value]=\"true\"===v.value,\"newcap\"===t.value&&(obj[\"(explicitNewcap)\"]=!0)):error(\"Bad option value.\",v);t=lex.token()}else(\"/*jshint\"===o||\"/*jslint\"===o)&&error(\"Missing option value.\",t),obj[t.value]=!1,\"/*global\"===o&&minus===!0&&(JSHINT.blacklist[t.value]=t.value,updatePredefined()),t=v}\"/*members\"===o&&(option.quotmark=quotmarkValue),combine(predefined,predef);for(var key in predef)is_own(predef,key)&&(declared[key]=nt);filter&&assume()}function peek(p){for(var t,i=p||0,j=0;i>=j;)t=lookahead[j],t||(t=lookahead[j]=lex.token()),j+=1;return t}function advance(id,t){switch(token.id){case\"(number)\":\".\"===nexttoken.id&&warning(\"A dot following a number can be confused with a decimal point.\",token);break;case\"-\":(\"-\"===nexttoken.id||\"--\"===nexttoken.id)&&warning(\"Confusing minusses.\");break;case\"+\":(\"+\"===nexttoken.id||\"++\"===nexttoken.id)&&warning(\"Confusing plusses.\")}for((\"(string)\"===token.type||token.identifier)&&(anonname=token.value),id&&nexttoken.id!==id&&(t?\"(end)\"===nexttoken.id?warning(\"Unmatched \\'{a}\\'.\",t,t.id):warning(\"Expected \\'{a}\\' to match \\'{b}\\' from line {c} and instead saw \\'{d}\\'.\",nexttoken,id,t.id,t.line,nexttoken.value):(\"(identifier)\"!==nexttoken.type||nexttoken.value!==id)&&warning(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,id,nexttoken.value)),prevtoken=token,token=nexttoken;;){if(nexttoken=lookahead.shift()||lex.token(),\"(end)\"===nexttoken.id||\"(error)\"===nexttoken.id)return;if(\"special\"===nexttoken.type)doOption();else if(\"(endline)\"!==nexttoken.id)break}}function expression(rbp,initial){var left,isArray=!1,isObject=!1;if(\"(end)\"===nexttoken.id&&error(\"Unexpected early end of program.\",token),advance(),initial&&(anonname=\"anonymous\",funct[\"(verb)\"]=token.value),initial===!0&&token.fud)left=token.fud();else{if(token.nud)left=token.nud();else{if(\"(number)\"===nexttoken.type&&\".\"===token.id)return warning(\"A leading decimal point can be confused with a dot: \\'.{a}\\'.\",token,nexttoken.value),advance(),token;error(\"Expected an identifier and instead saw \\'{a}\\'.\",token,token.id)}for(;nexttoken.lbp>rbp;)isArray=\"Array\"===token.value,isObject=\"Object\"===token.value,left&&(left.value||left.first&&left.first.value)&&(\"new\"!==left.value||left.first&&left.first.value&&\".\"===left.first.value)&&(isArray=!1,left.value!==token.value&&(isObject=!1)),advance(),isArray&&\"(\"===token.id&&\")\"===nexttoken.id&&warning(\"Use the array literal notation [].\",token),isObject&&\"(\"===token.id&&\")\"===nexttoken.id&&warning(\"Use the object literal notation {}.\",token),token.led?left=token.led(left):error(\"Expected an operator and instead saw \\'{a}\\'.\",token,token.id)}return left}function adjacent(left,right){left=left||token,right=right||nexttoken,option.white&&left.character!==right.from&&left.line===right.line&&(left.from+=left.character-left.from,warning(\"Unexpected space after \\'{a}\\'.\",left,left.value))}function nobreak(left,right){left=left||token,right=right||nexttoken,!option.white||left.character===right.from&&left.line===right.line||warning(\"Unexpected space before \\'{a}\\'.\",right,right.value)}function nospace(left,right){left=left||token,right=right||nexttoken,option.white&&!left.comment&&left.line===right.line&&adjacent(left,right)}function nonadjacent(left,right){if(option.white){if(left=left||token,right=right||nexttoken,\";\"===left.value&&\";\"===right.value)return;left.line===right.line&&left.character===right.from&&(left.from+=left.character-left.from,warning(\"Missing space after \\'{a}\\'.\",left,left.value))}}function nobreaknonadjacent(left,right){left=left||token,right=right||nexttoken,option.laxbreak||left.line===right.line?option.white&&(left=left||token,right=right||nexttoken,left.character===right.from&&(left.from+=left.character-left.from,warning(\"Missing space after \\'{a}\\'.\",left,left.value))):warning(\"Bad line breaking before \\'{a}\\'.\",right,right.id)}function indentation(bias){var i;option.white&&\"(end)\"!==nexttoken.id&&(i=indent+(bias||0),nexttoken.from!==i&&warning(\"Expected \\'{a}\\' to have an indentation at {b} instead at {c}.\",nexttoken,nexttoken.value,i,nexttoken.from))}function nolinebreak(t){t=t||token,t.line!==nexttoken.line&&warning(\"Line breaking error \\'{a}\\'.\",t,t.value)}function comma(){token.line!==nexttoken.line?option.laxcomma||(comma.first&&(warning(\"Comma warnings can be turned off with \\'laxcomma\\'\"),comma.first=!1),warning(\"Bad line breaking before \\'{a}\\'.\",token,nexttoken.id)):!token.comment&&token.character!==nexttoken.from&&option.white&&(token.from+=token.character-token.from,warning(\"Unexpected space after \\'{a}\\'.\",token,token.value)),advance(\",\"),nonadjacent(token,nexttoken)}function symbol(s,p){var x=syntax[s];return x&&\"object\"==typeof x||(syntax[s]=x={id:s,lbp:p,value:s}),x}function delim(s){return symbol(s,0)}function stmt(s,f){var x=delim(s);return x.identifier=x.reserved=!0,x.fud=f,x}function blockstmt(s,f){var x=stmt(s,f);return x.block=!0,x}function reserveName(x){var c=x.id.charAt(0);return(c>=\"a\"&&\"z\">=c||c>=\"A\"&&\"Z\">=c)&&(x.identifier=x.reserved=!0),x}function prefix(s,f){var x=symbol(s,150);return reserveName(x),x.nud=\"function\"==typeof f?f:function(){return this.right=expression(150),this.arity=\"unary\",(\"++\"===this.id||\"--\"===this.id)&&(option.plusplus?warning(\"Unexpected use of \\'{a}\\'.\",this,this.id):this.right.identifier&&!this.right.reserved||\".\"===this.right.id||\"[\"===this.right.id||warning(\"Bad operand.\",this)),this},x}function type(s,f){var x=delim(s);return x.type=s,x.nud=f,x}function reserve(s,f){var x=type(s,f);return x.identifier=x.reserved=!0,x}function reservevar(s,v){return reserve(s,function(){return\"function\"==typeof v&&v(this),this})}function infix(s,f,p,w){var x=symbol(s,p);return reserveName(x),x.led=function(left){return w||(nobreaknonadjacent(prevtoken,token),nonadjacent(token,nexttoken)),\"in\"===s&&\"!\"===left.id&&warning(\"Confusing use of \\'{a}\\'.\",left,\"!\"),\"function\"==typeof f?f(left,this):(this.left=left,this.right=expression(p),this)},x}function relation(s,f){var x=symbol(s,100);return x.led=function(left){nobreaknonadjacent(prevtoken,token),nonadjacent(token,nexttoken);var right=expression(100);return isIdentifier(left,\"NaN\")||isIdentifier(right,\"NaN\")?warning(\"Use the isNaN function to compare with NaN.\",this):f&&f.apply(this,[left,right]),\"!\"===left.id&&warning(\"Confusing use of \\'{a}\\'.\",left,\"!\"),\"!\"===right.id&&warning(\"Confusing use of \\'{a}\\'.\",right,\"!\"),this.left=left,this.right=right,this},x}function isPoorRelation(node){return node&&(\"(number)\"===node.type&&0===+node.value||\"(string)\"===node.type&&\"\"===node.value||\"null\"===node.type&&!option.eqnull||\"true\"===node.type||\"false\"===node.type||\"undefined\"===node.type)}function assignop(s){return symbol(s,20).exps=!0,infix(s,function(left,that){if(that.left=left,predefined[left.value]===!1&&scope[left.value][\"(global)\"]===!0?warning(\"Read only.\",left):left[\"function\"]&&warning(\"\\'{a}\\' is a function.\",left,left.value),left){if(option.esnext&&\"const\"===funct[left.value]&&warning(\"Attempting to override \\'{a}\\' which is a constant\",left,left.value),\".\"===left.id||\"[\"===left.id)return left.left&&\"arguments\"!==left.left.value||warning(\"Bad assignment.\",that),that.right=expression(19),that;if(left.identifier&&!left.reserved)return\"exception\"===funct[left.value]&&warning(\"Do not assign to the exception parameter.\",left),that.right=expression(19),that;left===syntax[\"function\"]&&warning(\"Expected an identifier in an assignment and instead saw a function invocation.\",token)}error(\"Bad assignment.\",that)},20)}function bitwise(s,f,p){var x=symbol(s,p);return reserveName(x),x.led=\"function\"==typeof f?f:function(left){return option.bitwise&&warning(\"Unexpected use of \\'{a}\\'.\",this,this.id),this.left=left,this.right=expression(p),this},x}function bitwiseassignop(s){return symbol(s,20).exps=!0,infix(s,function(left,that){return option.bitwise&&warning(\"Unexpected use of \\'{a}\\'.\",that,that.id),nonadjacent(prevtoken,token),nonadjacent(token,nexttoken),left?\".\"===left.id||\"[\"===left.id||left.identifier&&!left.reserved?(expression(19),that):(left===syntax[\"function\"]&&warning(\"Expected an identifier in an assignment, and instead saw a function invocation.\",token),that):(error(\"Bad assignment.\",that),void 0)},20)}function suffix(s){var x=symbol(s,150);return x.led=function(left){return option.plusplus?warning(\"Unexpected use of \\'{a}\\'.\",this,this.id):left.identifier&&!left.reserved||\".\"===left.id||\"[\"===left.id||warning(\"Bad operand.\",this),this.left=left,this},x}function optionalidentifier(fnparam){return nexttoken.identifier?(advance(),token.reserved&&!option.es5&&(fnparam&&\"undefined\"===token.value||warning(\"Expected an identifier and instead saw \\'{a}\\' (a reserved word).\",token,token.id)),token.value):void 0}function identifier(fnparam){var i=optionalidentifier(fnparam);return i?i:(\"function\"===token.id&&\"(\"===nexttoken.id?warning(\"Missing name in function declaration.\"):error(\"Expected an identifier and instead saw \\'{a}\\'.\",nexttoken,nexttoken.value),void 0)}function reachable(s){var t,i=0;if(\";\"===nexttoken.id&&!noreach)for(;;){if(t=peek(i),t.reach)return;if(\"(endline)\"!==t.id){if(\"function\"===t.id){if(!option.latedef)break;warning(\"Inner functions should be listed at the top of the outer function.\",t);break}warning(\"Unreachable \\'{a}\\' after \\'{b}\\'.\",t,t.value,s);break}i+=1}}function statement(noindent){var r,i=indent,s=scope,t=nexttoken;if(\";\"===t.id)return advance(\";\"),void 0;if(t.identifier&&!t.reserved&&\":\"===peek().id&&(advance(),advance(\":\"),scope=Object.create(s),addlabel(t.value,\"label\"),nexttoken.labelled||\"{\"===nexttoken.value||warning(\"Label \\'{a}\\' on {b} statement.\",nexttoken,t.value,nexttoken.value),jx.test(t.value+\":\")&&warning(\"Label \\'{a}\\' looks like a javascript url.\",t,t.value),nexttoken.label=t.value,t=nexttoken),\"{\"===t.id)return block(!0,!0),void 0;if(noindent||indentation(),r=expression(0,!0),!t.block){if(option.expr||r&&r.exps?option.nonew&&\"(\"===r.id&&\"new\"===r.left.id&&warning(\"Do not use \\'new\\' for side effects.\",t):warning(\"Expected an assignment or function call and instead saw an expression.\",token),\",\"===nexttoken.id)return comma();\";\"!==nexttoken.id?option.asi||option.lastsemic&&\"}\"===nexttoken.id&&nexttoken.line===token.line||warningAt(\"Missing semicolon.\",token.line,token.character):(adjacent(token,nexttoken),advance(\";\"),nonadjacent(token,nexttoken))}return indent=i,scope=s,r}function statements(startLine){for(var p,a=[];!nexttoken.reach&&\"(end)\"!==nexttoken.id;)\";\"===nexttoken.id?(p=peek(),p&&\"(\"===p.id||warning(\"Unnecessary semicolon.\"),advance(\";\")):a.push(statement(startLine===nexttoken.line));return a}function directives(){for(var i,p,pn;\"(string)\"===nexttoken.id;){if(p=peek(0),\"(endline)\"===p.id){i=1;do pn=peek(i),i+=1;while(\"(endline)\"===pn.id);if(\";\"!==pn.id){if(\"(string)\"!==pn.id&&\"(number)\"!==pn.id&&\"(regexp)\"!==pn.id&&pn.identifier!==!0&&\"}\"!==pn.id)break;warning(\"Missing semicolon.\",nexttoken)}else p=pn}else if(\"}\"===p.id)warning(\"Missing semicolon.\",p);else if(\";\"!==p.id)break;indentation(),advance(),directive[token.value]&&warning(\\'Unnecessary directive \"{a}\".\\',token,token.value),\"use strict\"===token.value&&(option[\"(explicitNewcap)\"]||(option.newcap=!0),option.undef=!0),directive[token.value]=!0,\";\"===p.id&&advance(\";\")}}function block(ordinary,stmt,isfunc){var a,m,t,line,d,b=inblock,old_indent=indent,s=scope;inblock=ordinary,ordinary&&option.funcscope||(scope=Object.create(scope)),nonadjacent(token,nexttoken),t=nexttoken;var metrics=funct[\"(metrics)\"];if(metrics.nestedBlockDepth+=1,metrics.verifyMaxNestedBlockDepthPerFunction(),\"{\"===nexttoken.id){if(advance(\"{\"),line=token.line,\"}\"!==nexttoken.id){for(indent+=option.indent;!ordinary&&nexttoken.from>indent;)indent+=option.indent;if(isfunc){m={};for(d in directive)is_own(directive,d)&&(m[d]=directive[d]);directives(),option.strict&&funct[\"(context)\"][\"(global)\"]&&(m[\"use strict\"]||directive[\"use strict\"]||warning(\\'Missing \"use strict\" statement.\\'))}a=statements(line),metrics.statementCount+=a.length,isfunc&&(directive=m),indent-=option.indent,line!==nexttoken.line&&indentation()}else line!==nexttoken.line&&indentation();advance(\"}\",t),indent=old_indent}else ordinary?((!stmt||option.curly)&&warning(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\"{\",nexttoken.value),noreach=!0,indent+=option.indent,a=[statement(nexttoken.line===token.line)],indent-=option.indent,noreach=!1):error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\"{\",nexttoken.value);return funct[\"(verb)\"]=null,ordinary&&option.funcscope||(scope=s),inblock=b,!ordinary||!option.noempty||a&&0!==a.length||warning(\"Empty block.\"),metrics.nestedBlockDepth-=1,a}function countMember(m){membersOnly&&\"boolean\"!=typeof membersOnly[m]&&warning(\"Unexpected /*member \\'{a}\\'.\",token,m),\"number\"==typeof member[m]?member[m]+=1:member[m]=1}function note_implied(token){var name=token.value,line=token.line,a=implied[name];\"function\"==typeof a&&(a=!1),a?a[a.length-1]!==line&&a.push(line):(a=[line],implied[name]=a)}function property_name(){var id=optionalidentifier(!0);return id||(\"(string)\"===nexttoken.id?(id=nexttoken.value,advance()):\"(number)\"===nexttoken.id&&(id=\"\"+nexttoken.value,advance())),id}function functionparams(){var ident,next=nexttoken,params=[];if(advance(\"(\"),nospace(),\")\"===nexttoken.id)return advance(\")\"),void 0;for(;;){if(ident=identifier(!0),params.push(ident),addlabel(ident,\"unused\",token),\",\"!==nexttoken.id)return advance(\")\",next),nospace(prevtoken,token),params;comma()}}function doFunction(name,statement){var f,oldOption=option,oldScope=scope;return option=Object.create(option),scope=Object.create(scope),funct={\"(name)\":name||\\'\"\\'+anonname+\\'\"\\',\"(line)\":nexttoken.line,\"(character)\":nexttoken.character,\"(context)\":funct,\"(breakage)\":0,\"(loopage)\":0,\"(metrics)\":createMetrics(nexttoken),\"(scope)\":scope,\"(statement)\":statement,\"(tokens)\":{}},f=funct,token.funct=funct,functions.push(funct),name&&addlabel(name,\"function\"),funct[\"(params)\"]=functionparams(),funct[\"(metrics)\"].verifyMaxParametersPerFunction(funct[\"(params)\"]),block(!1,!1,!0),funct[\"(metrics)\"].verifyMaxStatementsPerFunction(),funct[\"(metrics)\"].verifyMaxComplexityPerFunction(),scope=oldScope,option=oldOption,funct[\"(last)\"]=token.line,funct[\"(lastcharacter)\"]=token.character,funct=funct[\"(context)\"],f}function createMetrics(functionStartToken){return{statementCount:0,nestedBlockDepth:-1,ComplexityCount:1,verifyMaxStatementsPerFunction:function(){if(option.maxstatements&&this.statementCount>option.maxstatements){var message=\"Too many statements per function (\"+this.statementCount+\").\";warning(message,functionStartToken)}},verifyMaxParametersPerFunction:function(params){if(params=params||[],option.maxparams&¶ms.length>option.maxparams){var message=\"Too many parameters per function (\"+params.length+\").\";warning(message,functionStartToken)}},verifyMaxNestedBlockDepthPerFunction:function(){if(option.maxdepth&&this.nestedBlockDepth>0&&this.nestedBlockDepth===option.maxdepth+1){var message=\"Blocks are nested too deeply (\"+this.nestedBlockDepth+\").\";warning(message)}},verifyMaxComplexityPerFunction:function(){var max=option.maxcomplexity,cc=this.ComplexityCount;if(max&&cc>max){var message=\"Cyclomatic complexity is too high per function (\"+cc+\").\";warning(message,functionStartToken)}}}}function increaseComplexityCount(){funct[\"(metrics)\"].ComplexityCount+=1}function jsonValue(){function jsonObject(){var o={},t=nexttoken;if(advance(\"{\"),\"}\"!==nexttoken.id)for(;;){if(\"(end)\"===nexttoken.id)error(\"Missing \\'}\\' to match \\'{\\' from line {a}.\",nexttoken,t.line);else{if(\"}\"===nexttoken.id){warning(\"Unexpected comma.\",token);break}\",\"===nexttoken.id?error(\"Unexpected comma.\",nexttoken):\"(string)\"!==nexttoken.id&&warning(\"Expected a string and instead saw {a}.\",nexttoken,nexttoken.value)}if(o[nexttoken.value]===!0?warning(\"Duplicate key \\'{a}\\'.\",nexttoken,nexttoken.value):\"__proto__\"===nexttoken.value&&!option.proto||\"__iterator__\"===nexttoken.value&&!option.iterator?warning(\"The \\'{a}\\' key may produce unexpected results.\",nexttoken,nexttoken.value):o[nexttoken.value]=!0,advance(),advance(\":\"),jsonValue(),\",\"!==nexttoken.id)break;advance(\",\")}advance(\"}\")}function jsonArray(){var t=nexttoken;if(advance(\"[\"),\"]\"!==nexttoken.id)for(;;){if(\"(end)\"===nexttoken.id)error(\"Missing \\']\\' to match \\'[\\' from line {a}.\",nexttoken,t.line);else{if(\"]\"===nexttoken.id){warning(\"Unexpected comma.\",token);break}\",\"===nexttoken.id&&error(\"Unexpected comma.\",nexttoken)}if(jsonValue(),\",\"!==nexttoken.id)break;advance(\",\")}advance(\"]\")}switch(nexttoken.id){case\"{\":jsonObject();break;case\"[\":jsonArray();break;case\"true\":case\"false\":case\"null\":case\"(number)\":case\"(string)\":advance();break;case\"-\":advance(\"-\"),token.character!==nexttoken.from&&warning(\"Unexpected space after \\'-\\'.\",token),adjacent(token,nexttoken),advance(\"(number)\");break;default:error(\"Expected a JSON value.\",nexttoken)}}var anonname,declared,funct,functions,global,implied,inblock,indent,jsonmode,lines,lookahead,member,membersOnly,nexttoken,noreach,option,predefined,prereg,prevtoken,quotmark,scope,stack,directive,tab,token,unuseds,urls,useESNextSyntax,warnings,ax,cx,tx,nx,nxg,lx,ix,jx,ft,bang={\"\u003C\":!0,\"\u003C=\":!0,\"==\":!0,\"===\":!0,\"!==\":!0,\"!=\":!0,\">\":!0,\">=\":!0,\"+\":!0,\"-\":!0,\"*\":!0,\"/\":!0,\"%\":!0},boolOptions={asi:!0,bitwise:!0,boss:!0,browser:!0,camelcase:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,esnext:!0,evil:!0,expr:!0,forin:!0,funcscope:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,lastsemic:!0,latedef:!0,laxbreak:!0,laxcomma:!0,loopfunc:!0,mootools:!0,multistr:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nonstandard:!0,nomen:!0,onevar:!0,onecase:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,unused:!0,scripturl:!0,shadow:!0,smarttabs:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,validthis:!0,withstmt:!0,white:!0,worker:!0,wsh:!0,yui:!0},valOptions={maxlen:!1,indent:!1,maxerr:!1,predef:!1,quotmark:!1,scope:!1,maxstatements:!1,maxdepth:!1,maxparams:!1,maxcomplexity:!1},invertedOptions={bitwise:!0,forin:!0,newcap:!0,nomen:!0,plusplus:!0,regexp:!0,undef:!0,white:!0,eqeqeq:!0,onevar:!0},renamedOptions={eqeq:\"eqeqeq\",vars:\"onevar\",windows:\"wsh\"},browser={ArrayBuffer:!1,ArrayBufferView:!1,Audio:!1,Blob:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,DOMParser:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,Node:!1,NodeFilter:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},couch={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},devel={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},dojo={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},functionicity=[\"closure\",\"exception\",\"global\",\"label\",\"outer\",\"unused\",\"var\"],jquery={$:!1,jQuery:!1},mootools={$:!1,$$:!1,Asset:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMEvent:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},node={__filename:!1,__dirname:!1,Buffer:!1,console:!1,exports:!0,GLOBAL:!1,global:!1,module:!1,process:!1,acequire:!1,setTimeout:!1,clearTimeout:!1,setInterval:!1,clearInterval:!1},prototypejs={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},rhino={defineClass:!1,deserialize:!1,gc:!1,help:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},standard={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,Set:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1,WeakMap:!1},nonstandard={escape:!1,unescape:!1},syntax={},worker={importScripts:!0,postMessage:!0,self:!0},wsh={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},yui={YUI:!1,Y:!1,YUI_config:!1};\\n(function(){ax=/@cc|\u003C\\\\/?|script|\\\\]\\\\s*\\\\]|\u003C\\\\s*!|</i,cx=/[\\\\u0000-\\\\u001f\\\\u007f-\\\\u009f\\\\u00ad\\\\u0600-\\\\u0604\\\\u070f\\\\u17b4\\\\u17b5\\\\u200c-\\\\u200f\\\\u2028-\\\\u202f\\\\u2060-\\\\u206f\\\\ufeff\\\\ufff0-\\\\uffff]/,tx=/^\\\\s*([(){}\\\\[.,:;\\'\"~\\\\?\\\\]#@]|==?=?|\\\\/=(?!(\\\\S*\\\\/[gim]?))|\\\\/(\\\\*(jshint|jslint|members?|global)?|\\\\/)?|\\\\*[\\\\/=]?|\\\\+(?:=|\\\\++)?|-(?:=|-+)?|%=?|&[&=]?|\\\\|[|=]?|>>?>?=?|\u003C([\\\\/=!]|\\\\!(\\\\[|--)?|\u003C=?)?|\\\\^=?|\\\\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\\\\.[0-9]*)?([eE][+\\\\-]?[0-9]+)?)/,nx=/[\\\\u0000-\\\\u001f&\u003C\"\\\\/\\\\\\\\\\\\u007f-\\\\u009f\\\\u00ad\\\\u0600-\\\\u0604\\\\u070f\\\\u17b4\\\\u17b5\\\\u200c-\\\\u200f\\\\u2028-\\\\u202f\\\\u2060-\\\\u206f\\\\ufeff\\\\ufff0-\\\\uffff]/,nxg=/[\\\\u0000-\\\\u001f&\u003C\"\\\\/\\\\\\\\\\\\u007f-\\\\u009f\\\\u00ad\\\\u0600-\\\\u0604\\\\u070f\\\\u17b4\\\\u17b5\\\\u200c-\\\\u200f\\\\u2028-\\\\u202f\\\\u2060-\\\\u206f\\\\ufeff\\\\ufff0-\\\\uffff]/g,lx=/\\\\*\\\\//,ix=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,jx=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\\\\s*:/i,ft=/^\\\\s*\\\\/\\\\*\\\\s*falls\\\\sthrough\\\\s*\\\\*\\\\/\\\\s*$/})(),\"function\"!=typeof Array.isArray&&(Array.isArray=function(o){return\"[object Array]\"===Object.prototype.toString.apply(o)}),Array.prototype.forEach||(Array.prototype.forEach=function(fn,scope){for(var len=this.length,i=0;len>i;i++)fn.call(scope||this,this[i],i,this)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(searchElement){if(null===this||void 0===this)throw new TypeError;var t=Object(this),len=t.length>>>0;if(0===len)return-1;var n=0;if(arguments.length>0&&(n=Number(arguments[1]),n!=n?n=0:0!==n&&1/0!=n&&n!=-1/0&&(n=(n>0||-1)*Math.floor(Math.abs(n)))),n>=len)return-1;for(var k=n>=0?n:Math.max(len-Math.abs(n),0);len>k;k++)if(k in t&&t[k]===searchElement)return k;return-1}),\"function\"!=typeof Object.create&&(Object.create=function(o){return F.prototype=o,new F}),\"function\"!=typeof Object.keys&&(Object.keys=function(o){var k,a=[];for(k in o)is_own(o,k)&&a.push(k);return a});var lex=function lex(){function nextLine(){var at,match,tw;return line>=lines.length?!1:(character=1,s=lines[line],line+=1,option.smarttabs?(match=s.match(/(\\\\/\\\\/)? \\\\t/),at=match&&!match[1]?0:-1):at=s.search(/ \\\\t|\\\\t [^\\\\*]/),at>=0&&warningAt(\"Mixed spaces and tabs.\",line,at+1),s=s.replace(/\\\\t/g,tab),at=s.search(cx),at>=0&&warningAt(\"Unsafe character.\",line,at),option.maxlen&&option.maxlen\u003Cs.length&&warningAt(\"Line too long.\",line,s.length),tw=option.trailing&&s.match(/^(.*?)\\\\s+$/),tw&&!/^\\\\s+$/.test(s)&&warningAt(\"Trailing whitespace.\",line,tw[1].length+1),!0)}function it(type,value){function checkName(name){if(!option.proto&&\"__proto__\"===name)return warningAt(\"The \\'{a}\\' property is deprecated.\",line,from,name),void 0;if(!option.iterator&&\"__iterator__\"===name)return warningAt(\"\\'{a}\\' is only available in JavaScript 1.7.\",line,from,name),void 0;var hasDangling=/^(_+.*|.*_+)$/.test(name);if(option.nomen&&hasDangling&&\"_\"!==name){if(option.node&&\".\"!==token.id&&/^(__dirname|__filename)$/.test(name))return;return warningAt(\"Unexpected {a} in \\'{b}\\'.\",line,from,\"dangling \\'_\\'\",name),void 0}option.camelcase&&name.replace(/^_+/,\"\").indexOf(\"_\")>-1&&!name.match(/^[A-Z0-9_]*$/)&&warningAt(\"Identifier \\'{a}\\' is not in camel case.\",line,from,value)}var i,t;return t=\"(color)\"===type||\"(range)\"===type?{type:type}:\"(punctuator)\"===type||\"(identifier)\"===type&&is_own(syntax,value)?syntax[value]||syntax[\"(error)\"]:syntax[type],t=Object.create(t),(\"(string)\"===type||\"(range)\"===type)&&!option.scripturl&&jx.test(value)&&warningAt(\"Script URL.\",line,from),\"(identifier)\"===type&&(t.identifier=!0,checkName(value)),t.value=value,t.line=line,t.character=character,t.from=from,i=t.id,\"(endline)\"!==i&&(prereg=i&&(\"(,=:[!&|?{};\".indexOf(i.charAt(i.length-1))>=0||\"return\"===i||\"case\"===i)),t}var character,from,line,s;return{init:function(source){lines=\"string\"==typeof source?source.replace(/\\\\r\\\\n/g,\"\\\\n\").replace(/\\\\r/g,\"\\\\n\").split(\"\\\\n\"):source,lines[0]&&\"#!\"===lines[0].substr(0,2)&&(lines[0]=\"\"),line=0,nextLine(),from=1},range:function(begin,end){var c,value=\"\";for(from=character,s.charAt(0)!==begin&&errorAt(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",line,character,begin,s.charAt(0));;){switch(s=s.slice(1),character+=1,c=s.charAt(0)){case\"\":errorAt(\"Missing \\'{a}\\'.\",line,character,c);break;case end:return s=s.slice(1),character+=1,it(\"(range)\",value);case\"\\\\\\\\\":warningAt(\"Unexpected \\'{a}\\'.\",line,character,c)}value+=c}},token:function(){function match(x){var r1,r=x.exec(s);return r?(l=r[0].length,r1=r[1],c=r1.charAt(0),s=s.substr(l),from=character+l-r1.length,character+=l,r1):void 0}function string(x){function esc(n){var i=parseInt(s.substr(j+1,n),16);j+=n,i>=32&&126>=i&&34!==i&&92!==i&&39!==i&&warningAt(\"Unnecessary escapement.\",line,character),character+=n,c=String.fromCharCode(i)}var c,j,r=\"\",allowNewLine=!1;jsonmode&&\\'\"\\'!==x&&warningAt(\"Strings must use doublequote.\",line,character),option.quotmark&&(\"single\"===option.quotmark&&\"\\'\"!==x?warningAt(\"Strings must use singlequote.\",line,character):\"double\"===option.quotmark&&\\'\"\\'!==x?warningAt(\"Strings must use doublequote.\",line,character):option.quotmark===!0&&(quotmark=quotmark||x,quotmark!==x&&warningAt(\"Mixed double and single quotes.\",line,character))),j=0;unclosedString:for(;;){for(;j>=s.length;){j=0;var cl=line,cf=from;if(!nextLine()){errorAt(\"Unclosed string.\",cl,cf);break unclosedString}allowNewLine?allowNewLine=!1:warningAt(\"Unclosed string.\",cl,cf)}if(c=s.charAt(j),c===x)return character+=1,s=s.substr(j+1),it(\"(string)\",r,x);if(\" \">c){if(\"\\\\n\"===c||\"\\\\r\"===c)break;warningAt(\"Control character in string: {a}.\",line,character+j,s.slice(0,j))}else if(\"\\\\\\\\\"===c)switch(j+=1,character+=1,c=s.charAt(j),n=s.charAt(j+1),c){case\"\\\\\\\\\":case\\'\"\\':case\"/\":break;case\"\\'\":jsonmode&&warningAt(\"Avoid \\\\\\\\\\'.\",line,character);break;case\"b\":c=\"\\\\b\";break;case\"f\":c=\"\\\\f\";break;case\"n\":c=\"\\\\n\";break;case\"r\":c=\"\\\\r\";break;case\"t\":c=\"\t\";break;case\"0\":c=\"\\\\0\",n>=0&&7>=n&&directive[\"use strict\"]&&warningAt(\"Octal literals are not allowed in strict mode.\",line,character);break;case\"u\":esc(4);break;case\"v\":jsonmode&&warningAt(\"Avoid \\\\\\\\v.\",line,character),c=\"\u000b\";break;case\"x\":jsonmode&&warningAt(\"Avoid \\\\\\\\x-.\",line,character),esc(2);break;case\"\":if(allowNewLine=!0,option.multistr){jsonmode&&warningAt(\"Avoid EOL escapement.\",line,character),c=\"\",character-=1;break}warningAt(\"Bad escapement of EOL. Use option multistr if needed.\",line,character);break;case\"!\":if(\"\u003C\"===s.charAt(j-2))break;default:warningAt(\"Bad escapement.\",line,character)}r+=c,character+=1,j+=1}}for(var b,c,captures,d,depth,high,i,l,low,q,t,isLiteral,isInRange,n;;){if(!s)return it(nextLine()?\"(endline)\":\"(end)\",\"\");if(t=match(tx)){if(isAlpha(c)||\"_\"===c||\"$\"===c)return it(\"(identifier)\",t);if(isDigit(c))return isFinite(Number(t))||warningAt(\"Bad number \\'{a}\\'.\",line,character,t),isAlpha(s.substr(0,1))&&warningAt(\"Missing space after \\'{a}\\'.\",line,character,t),\"0\"===c&&(d=t.substr(1,1),isDigit(d)?\".\"!==token.id&&warningAt(\"Don\\'t use extra leading zeros \\'{a}\\'.\",line,character,t):!jsonmode||\"x\"!==d&&\"X\"!==d||warningAt(\"Avoid 0x-. \\'{a}\\'.\",line,character,t)),\".\"===t.substr(t.length-1)&&warningAt(\"A trailing decimal point can be confused with a dot \\'{a}\\'.\",line,character,t),it(\"(number)\",t);switch(t){case\\'\"\\':case\"\\'\":return string(t);case\"//\":s=\"\",token.comment=!0;break;case\"/*\":for(;i=s.search(lx),!(i>=0);)nextLine()||errorAt(\"Unclosed comment.\",line,character);s=s.substr(i+2),token.comment=!0;break;case\"/*members\":case\"/*member\":case\"/*jshint\":case\"/*jslint\":case\"/*global\":case\"*/\":return{value:t,type:\"special\",line:line,character:character,from:from};case\"\":break;case\"/\":if(\"=\"===s.charAt(0)&&errorAt(\"A regular expression literal can be confused with \\'/=\\'.\",line,from),prereg){for(depth=0,captures=0,l=0;;){switch(b=!0,c=s.charAt(l),l+=1,c){case\"\":return errorAt(\"Unclosed regular expression.\",line,from),quit(\"Stopping.\",line,from);case\"/\":for(depth>0&&warningAt(\"{a} unterminated regular expression group(s).\",line,from+l,depth),c=s.substr(0,l-1),q={g:!0,i:!0,m:!0};q[s.charAt(l)]===!0;)q[s.charAt(l)]=!1,l+=1;return character+=l,s=s.substr(l),q=s.charAt(0),(\"/\"===q||\"*\"===q)&&errorAt(\"Confusing regular expression.\",line,from),it(\"(regexp)\",c);case\"\\\\\\\\\":c=s.charAt(l),\" \">c?warningAt(\"Unexpected control character in regular expression.\",line,from+l):\"\u003C\"===c&&warningAt(\"Unexpected escaped character \\'{a}\\' in regular expression.\",line,from+l,c),l+=1;break;case\"(\":if(depth+=1,b=!1,\"?\"===s.charAt(l))switch(l+=1,s.charAt(l)){case\":\":case\"=\":case\"!\":l+=1;break;default:warningAt(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",line,from+l,\":\",s.charAt(l))}else captures+=1;break;case\"|\":b=!1;break;case\")\":0===depth?warningAt(\"Unescaped \\'{a}\\'.\",line,from+l,\")\"):depth-=1;break;case\" \":for(q=1;\" \"===s.charAt(l);)l+=1,q+=1;q>1&&warningAt(\"Spaces are hard to count. Use {{a}}.\",line,from+l,q);break;case\"[\":c=s.charAt(l),\"^\"===c&&(l+=1,\"]\"===s.charAt(l)&&errorAt(\"Unescaped \\'{a}\\'.\",line,from+l,\"^\")),\"]\"===c&&warningAt(\"Empty class.\",line,from+l-1),isLiteral=!1,isInRange=!1;klass:do switch(c=s.charAt(l),l+=1,c){case\"[\":case\"^\":warningAt(\"Unescaped \\'{a}\\'.\",line,from+l,c),isInRange?isInRange=!1:isLiteral=!0;break;case\"-\":isLiteral&&!isInRange?(isLiteral=!1,isInRange=!0):isInRange?isInRange=!1:\"]\"===s.charAt(l)?isInRange=!0:(option.regexdash!==(2===l||3===l&&\"^\"===s.charAt(1))&&warningAt(\"Unescaped \\'{a}\\'.\",line,from+l-1,\"-\"),isLiteral=!0);break;case\"]\":isInRange&&!option.regexdash&&warningAt(\"Unescaped \\'{a}\\'.\",line,from+l-1,\"-\");break klass;case\"\\\\\\\\\":c=s.charAt(l),\" \">c?warningAt(\"Unexpected control character in regular expression.\",line,from+l):\"\u003C\"===c&&warningAt(\"Unexpected escaped character \\'{a}\\' in regular expression.\",line,from+l,c),l+=1,/[wsd]/i.test(c)?(isInRange&&(warningAt(\"Unescaped \\'{a}\\'.\",line,from+l,\"-\"),isInRange=!1),isLiteral=!1):isInRange?isInRange=!1:isLiteral=!0;break;case\"/\":warningAt(\"Unescaped \\'{a}\\'.\",line,from+l-1,\"/\"),isInRange?isInRange=!1:isLiteral=!0;break;case\"\u003C\":isInRange?isInRange=!1:isLiteral=!0;break;default:isInRange?isInRange=!1:isLiteral=!0}while(c);break;case\".\":option.regexp&&warningAt(\"Insecure \\'{a}\\'.\",line,from+l,c);break;case\"]\":case\"?\":case\"{\":case\"}\":case\"+\":case\"*\":warningAt(\"Unescaped \\'{a}\\'.\",line,from+l,c)}if(b)switch(s.charAt(l)){case\"?\":case\"+\":case\"*\":l+=1,\"?\"===s.charAt(l)&&(l+=1);break;case\"{\":if(l+=1,c=s.charAt(l),\"0\">c||c>\"9\"){warningAt(\"Expected a number and instead saw \\'{a}\\'.\",line,from+l,c);break}for(l+=1,low=+c;c=s.charAt(l),!(\"0\">c||c>\"9\");)l+=1,low=+c+10*low;if(high=low,\",\"===c&&(l+=1,high=1/0,c=s.charAt(l),c>=\"0\"&&\"9\">=c))for(l+=1,high=+c;c=s.charAt(l),!(\"0\">c||c>\"9\");)l+=1,high=+c+10*high;\"}\"!==s.charAt(l)?warningAt(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",line,from+l,\"}\",c):l+=1,\"?\"===s.charAt(l)&&(l+=1),low>high&&warningAt(\"\\'{a}\\' should not be greater than \\'{b}\\'.\",line,from+l,low,high)}}return c=s.substr(0,l-1),character+=l,s=s.substr(l),it(\"(regexp)\",c)}return it(\"(punctuator)\",t);case\"#\":return it(\"(punctuator)\",t);default:return it(\"(punctuator)\",t)}}else{for(t=\"\",c=\"\";s&&\"!\">s;)s=s.substr(1);s&&(errorAt(\"Unexpected \\'{a}\\'.\",line,character,s.substr(0,1)),s=\"\")}}}}}();type(\"(number)\",function(){return this}),type(\"(string)\",function(){return this}),syntax[\"(identifier)\"]={type:\"(identifier)\",lbp:0,identifier:!0,nud:function(){var f,v=this.value,s=scope[v];if(\"function\"==typeof s?s=void 0:\"boolean\"==typeof s&&(f=funct,funct=functions[0],addlabel(v,\"var\"),s=funct,funct=f),funct===s)switch(funct[v]){case\"unused\":funct[v]=\"var\";break;case\"unction\":funct[v]=\"function\",this[\"function\"]=!0;break;case\"function\":this[\"function\"]=!0;break;case\"label\":warning(\"\\'{a}\\' is a statement label.\",token,v)}else if(funct[\"(global)\"])option.undef&&\"boolean\"!=typeof predefined[v]&&(\"typeof\"!==anonname&&\"delete\"!==anonname||nexttoken&&(\".\"===nexttoken.value||\"[\"===nexttoken.value))&&isundef(funct,\"\\'{a}\\' is not defined.\",token,v),note_implied(token);else switch(funct[v]){case\"closure\":case\"function\":case\"var\":case\"unused\":warning(\"\\'{a}\\' used out of scope.\",token,v);break;case\"label\":warning(\"\\'{a}\\' is a statement label.\",token,v);break;case\"outer\":case\"global\":break;default:if(s===!0)funct[v]=!0;else if(null===s)warning(\"\\'{a}\\' is not allowed.\",token,v),note_implied(token);else if(\"object\"!=typeof s)option.undef&&(\"typeof\"!==anonname&&\"delete\"!==anonname||nexttoken&&(\".\"===nexttoken.value||\"[\"===nexttoken.value))&&isundef(funct,\"\\'{a}\\' is not defined.\",token,v),funct[v]=!0,note_implied(token);else switch(s[v]){case\"function\":case\"unction\":this[\"function\"]=!0,s[v]=\"closure\",funct[v]=s[\"(global)\"]?\"global\":\"outer\";break;case\"var\":case\"unused\":s[v]=\"closure\",funct[v]=s[\"(global)\"]?\"global\":\"outer\";break;case\"closure\":funct[v]=s[\"(global)\"]?\"global\":\"outer\";break;case\"label\":warning(\"\\'{a}\\' is a statement label.\",token,v)}}return this},led:function(){error(\"Expected an operator and instead saw \\'{a}\\'.\",nexttoken,nexttoken.value)}},type(\"(regexp)\",function(){return this}),delim(\"(endline)\"),delim(\"(begin)\"),delim(\"(end)\").reach=!0,delim(\"\u003C/\").reach=!0,delim(\"\u003C!\"),delim(\"\u003C!--\"),delim(\"-->\"),delim(\"(error)\").reach=!0,delim(\"}\").reach=!0,delim(\")\"),delim(\"]\"),delim(\\'\"\\').reach=!0,delim(\"\\'\").reach=!0,delim(\";\"),delim(\":\").reach=!0,delim(\",\"),delim(\"#\"),delim(\"@\"),reserve(\"else\"),reserve(\"case\").reach=!0,reserve(\"catch\"),reserve(\"default\").reach=!0,reserve(\"finally\"),reservevar(\"arguments\",function(x){directive[\"use strict\"]&&funct[\"(global)\"]&&warning(\"Strict violation.\",x)}),reservevar(\"eval\"),reservevar(\"false\"),reservevar(\"Infinity\"),reservevar(\"null\"),reservevar(\"this\",function(x){directive[\"use strict\"]&&!option.validthis&&(funct[\"(statement)\"]&&funct[\"(name)\"].charAt(0)>\"Z\"||funct[\"(global)\"])&&warning(\"Possible strict violation.\",x)}),reservevar(\"true\"),reservevar(\"undefined\"),assignop(\"=\",\"assign\",20),assignop(\"+=\",\"assignadd\",20),assignop(\"-=\",\"assignsub\",20),assignop(\"*=\",\"assignmult\",20),assignop(\"/=\",\"assigndiv\",20).nud=function(){error(\"A regular expression literal can be confused with \\'/=\\'.\")},assignop(\"%=\",\"assignmod\",20),bitwiseassignop(\"&=\",\"assignbitand\",20),bitwiseassignop(\"|=\",\"assignbitor\",20),bitwiseassignop(\"^=\",\"assignbitxor\",20),bitwiseassignop(\"\u003C\u003C=\",\"assignshiftleft\",20),bitwiseassignop(\">>=\",\"assignshiftright\",20),bitwiseassignop(\">>>=\",\"assignshiftrightunsigned\",20),infix(\"?\",function(left,that){return that.left=left,that.right=expression(10),advance(\":\"),that[\"else\"]=expression(10),that},30),infix(\"||\",\"or\",40),infix(\"&&\",\"and\",50),bitwise(\"|\",\"bitor\",70),bitwise(\"^\",\"bitxor\",80),bitwise(\"&\",\"bitand\",90),relation(\"==\",function(left,right){var eqnull=option.eqnull&&(\"null\"===left.value||\"null\"===right.value);return!eqnull&&option.eqeqeq?warning(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",this,\"===\",\"==\"):isPoorRelation(left)?warning(\"Use \\'{a}\\' to compare with \\'{b}\\'.\",this,\"===\",left.value):isPoorRelation(right)&&warning(\"Use \\'{a}\\' to compare with \\'{b}\\'.\",this,\"===\",right.value),this}),relation(\"===\"),relation(\"!=\",function(left,right){var eqnull=option.eqnull&&(\"null\"===left.value||\"null\"===right.value);return!eqnull&&option.eqeqeq?warning(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",this,\"!==\",\"!=\"):isPoorRelation(left)?warning(\"Use \\'{a}\\' to compare with \\'{b}\\'.\",this,\"!==\",left.value):isPoorRelation(right)&&warning(\"Use \\'{a}\\' to compare with \\'{b}\\'.\",this,\"!==\",right.value),this}),relation(\"!==\"),relation(\"\u003C\"),relation(\">\"),relation(\"\u003C=\"),relation(\">=\"),bitwise(\"\u003C\u003C\",\"shiftleft\",120),bitwise(\">>\",\"shiftright\",120),bitwise(\">>>\",\"shiftrightunsigned\",120),infix(\"in\",\"in\",120),infix(\"instanceof\",\"instanceof\",120),infix(\"+\",function(left,that){var right=expression(130);return left&&right&&\"(string)\"===left.id&&\"(string)\"===right.id?(left.value+=right.value,left.character=right.character,!option.scripturl&&jx.test(left.value)&&warning(\"JavaScript URL.\",left),left):(that.left=left,that.right=right,that)},130),prefix(\"+\",\"num\"),prefix(\"+++\",function(){return warning(\"Confusing pluses.\"),this.right=expression(150),this.arity=\"unary\",this}),infix(\"+++\",function(left){return warning(\"Confusing pluses.\"),this.left=left,this.right=expression(130),this},130),infix(\"-\",\"sub\",130),prefix(\"-\",\"neg\"),prefix(\"---\",function(){return warning(\"Confusing minuses.\"),this.right=expression(150),this.arity=\"unary\",this}),infix(\"---\",function(left){return warning(\"Confusing minuses.\"),this.left=left,this.right=expression(130),this},130),infix(\"*\",\"mult\",140),infix(\"/\",\"div\",140),infix(\"%\",\"mod\",140),suffix(\"++\",\"postinc\"),prefix(\"++\",\"preinc\"),syntax[\"++\"].exps=!0,suffix(\"--\",\"postdec\"),prefix(\"--\",\"predec\"),syntax[\"--\"].exps=!0,prefix(\"delete\",function(){var p=expression(0);return(!p||\".\"!==p.id&&\"[\"!==p.id)&&warning(\"Variables should not be deleted.\"),this.first=p,this}).exps=!0,prefix(\"~\",function(){return option.bitwise&&warning(\"Unexpected \\'{a}\\'.\",this,\"~\"),expression(150),this}),prefix(\"!\",function(){return this.right=expression(150),this.arity=\"unary\",bang[this.right.id]===!0&&warning(\"Confusing use of \\'{a}\\'.\",this,\"!\"),this}),prefix(\"typeof\",\"typeof\"),prefix(\"new\",function(){var i,c=expression(155);if(c&&\"function\"!==c.id)if(c.identifier)switch(c[\"new\"]=!0,c.value){case\"Number\":case\"String\":case\"Boolean\":case\"Math\":case\"JSON\":warning(\"Do not use {a} as a constructor.\",prevtoken,c.value);break;case\"Function\":option.evil||warning(\"The Function constructor is eval.\");break;case\"Date\":case\"RegExp\":break;default:\"function\"!==c.id&&(i=c.value.substr(0,1),option.newcap&&(\"A\">i||i>\"Z\")&&!is_own(global,c.value)&&warning(\"A constructor name should start with an uppercase letter.\",token))}else\".\"!==c.id&&\"[\"!==c.id&&\"(\"!==c.id&&warning(\"Bad constructor.\",token);else option.supernew||warning(\"Weird construction. Delete \\'new\\'.\",this);return adjacent(token,nexttoken),\"(\"===nexttoken.id||option.supernew||warning(\"Missing \\'()\\' invoking a constructor.\",token,token.value),this.first=c,this}),syntax[\"new\"].exps=!0,prefix(\"void\").exps=!0,infix(\".\",function(left,that){adjacent(prevtoken,token),nobreak();var m=identifier();return\"string\"==typeof m&&countMember(m),that.left=left,that.right=m,!left||\"arguments\"!==left.value||\"callee\"!==m&&\"caller\"!==m?option.evil||!left||\"document\"!==left.value||\"write\"!==m&&\"writeln\"!==m||warning(\"document.write can be a form of eval.\",left):option.noarg?warning(\"Avoid arguments.{a}.\",left,m):directive[\"use strict\"]&&error(\"Strict violation.\"),option.evil||\"eval\"!==m&&\"execScript\"!==m||warning(\"eval is evil.\"),that},160,!0),infix(\"(\",function(left,that){\"}\"!==prevtoken.id&&\")\"!==prevtoken.id&&nobreak(prevtoken,token),nospace(),option.immed&&!left.immed&&\"function\"===left.id&&warning(\"Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.\");var n=0,p=[];if(left&&\"(identifier)\"===left.type&&left.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&-1===\"Number String Boolean Date Object\".indexOf(left.value)&&(\"Math\"===left.value?warning(\"Math is not a function.\",left):option.newcap&&warning(\"Missing \\'new\\' prefix when invoking a constructor.\",left)),\")\"!==nexttoken.id)for(;p[p.length]=expression(10),n+=1,\",\"===nexttoken.id;)comma();return advance(\")\"),nospace(prevtoken,token),\"object\"==typeof left&&(\"parseInt\"===left.value&&1===n&&warning(\"Missing radix parameter.\",token),option.evil||(\"eval\"===left.value||\"Function\"===left.value||\"execScript\"===left.value?(warning(\"eval is evil.\",left),p[0]&&\"(string)\"===[0].id&&addInternalSrc(left,p[0].value)):!p[0]||\"(string)\"!==p[0].id||\"setTimeout\"!==left.value&&\"setInterval\"!==left.value?!p[0]||\"(string)\"!==p[0].id||\".\"!==left.value||\"window\"!==left.left.value||\"setTimeout\"!==left.right&&\"setInterval\"!==left.right||(warning(\"Implied eval is evil. Pass a function instead of a string.\",left),addInternalSrc(left,p[0].value)):(warning(\"Implied eval is evil. Pass a function instead of a string.\",left),addInternalSrc(left,p[0].value))),left.identifier||\".\"===left.id||\"[\"===left.id||\"(\"===left.id||\"&&\"===left.id||\"||\"===left.id||\"?\"===left.id||warning(\"Bad invocation.\",left)),that.left=left,that},155,!0).exps=!0,prefix(\"(\",function(){nospace(),\"function\"===nexttoken.id&&(nexttoken.immed=!0);var v=expression(0);return advance(\")\",this),nospace(prevtoken,token),option.immed&&\"function\"===v.id&&\"(\"!==nexttoken.id&&(\".\"!==nexttoken.id||\"call\"!==peek().value&&\"apply\"!==peek().value)&&warning(\"Do not wrap function literals in parens unless they are to be immediately invoked.\",this),v}),infix(\"[\",function(left,that){nobreak(prevtoken,token),nospace();var s,e=expression(0);return e&&\"(string)\"===e.type&&(option.evil||\"eval\"!==e.value&&\"execScript\"!==e.value||warning(\"eval is evil.\",that),countMember(e.value),!option.sub&&ix.test(e.value)&&(s=syntax[e.value],s&&s.reserved||warning(\"[\\'{a}\\'] is better written in dot notation.\",prevtoken,e.value))),advance(\"]\",that),nospace(prevtoken,token),that.left=left,that.right=e,that},160,!0),prefix(\"[\",function(){var b=token.line!==nexttoken.line;for(this.first=[],b&&(indent+=option.indent,nexttoken.from===indent+option.indent&&(indent+=option.indent));\"(end)\"!==nexttoken.id;){for(;\",\"===nexttoken.id;)option.es5||warning(\"Extra comma.\"),advance(\",\");if(\"]\"===nexttoken.id)break;if(b&&token.line!==nexttoken.line&&indentation(),this.first.push(expression(10)),\",\"!==nexttoken.id)break;if(comma(),\"]\"===nexttoken.id&&!option.es5){warning(\"Extra comma.\",token);break}}return b&&(indent-=option.indent,indentation()),advance(\"]\",this),this},160),function(x){x.nud=function(){function saveProperty(name,token){props[name]&&is_own(props,name)?warning(\"Duplicate member \\'{a}\\'.\",nexttoken,i):props[name]={},props[name].basic=!0,props[name].basicToken=token}function saveSetter(name,token){props[name]&&is_own(props,name)?(props[name].basic||props[name].setter)&&warning(\"Duplicate member \\'{a}\\'.\",nexttoken,i):props[name]={},props[name].setter=!0,props[name].setterToken=token}function saveGetter(name){props[name]&&is_own(props,name)?(props[name].basic||props[name].getter)&&warning(\"Duplicate member \\'{a}\\'.\",nexttoken,i):props[name]={},props[name].getter=!0,props[name].getterToken=token}var b,f,i,p,t,props={};for(b=token.line!==nexttoken.line,b&&(indent+=option.indent,nexttoken.from===indent+option.indent&&(indent+=option.indent));\"}\"!==nexttoken.id;){if(b&&indentation(),\"get\"===nexttoken.value&&\":\"!==peek().id)advance(\"get\"),option.es5||error(\"get/set are ES5 features.\"),i=property_name(),i||error(\"Missing property name.\"),saveGetter(i),t=nexttoken,adjacent(token,nexttoken),f=doFunction(),p=f[\"(params)\"],p&&warning(\"Unexpected parameter \\'{a}\\' in get {b} function.\",t,p[0],i),adjacent(token,nexttoken);else if(\"set\"===nexttoken.value&&\":\"!==peek().id)advance(\"set\"),option.es5||error(\"get/set are ES5 features.\"),i=property_name(),i||error(\"Missing property name.\"),saveSetter(i,nexttoken),t=nexttoken,adjacent(token,nexttoken),f=doFunction(),p=f[\"(params)\"],p&&1===p.length||warning(\"Expected a single parameter in set {a} function.\",t,i);else{if(i=property_name(),saveProperty(i,nexttoken),\"string\"!=typeof i)break;advance(\":\"),nonadjacent(token,nexttoken),expression(10)}if(countMember(i),\",\"!==nexttoken.id)break;comma(),\",\"===nexttoken.id?warning(\"Extra comma.\",token):\"}\"!==nexttoken.id||option.es5||warning(\"Extra comma.\",token)}if(b&&(indent-=option.indent,indentation()),advance(\"}\",this),option.es5)for(var name in props)is_own(props,name)&&props[name].setter&&!props[name].getter&&warning(\"Setter is defined without getter.\",props[name].setterToken);return this},x.fud=function(){error(\"Expected to see a statement and instead saw a block.\",token)}}(delim(\"{\")),useESNextSyntax=function(){var conststatement=stmt(\"const\",function(prefix){var id,name,value;for(this.first=[];(nonadjacent(token,nexttoken),id=identifier(),\"const\"===funct[id]&&warning(\"const \\'\"+id+\"\\' has already been declared\"),funct[\"(global)\"]&&predefined[id]===!1&&warning(\"Redefinition of \\'{a}\\'.\",token,id),addlabel(id,\"const\"),!prefix)&&(name=token,this.first.push(token),\"=\"!==nexttoken.id&&warning(\"const \\'{a}\\' is initialized to \\'undefined\\'.\",token,id),\"=\"===nexttoken.id&&(nonadjacent(token,nexttoken),advance(\"=\"),nonadjacent(token,nexttoken),\"undefined\"===nexttoken.id&&warning(\"It is not necessary to initialize \\'{a}\\' to \\'undefined\\'.\",token,id),\"=\"===peek(0).id&&nexttoken.identifier&&error(\"Constant {a} was not declared correctly.\",nexttoken,nexttoken.value),value=expression(0),name.first=value),\",\"===nexttoken.id);)comma();return this});conststatement.exps=!0};var varstatement=stmt(\"var\",function(prefix){var id,name,value;for(funct[\"(onevar)\"]&&option.onevar?warning(\"Too many var statements.\"):funct[\"(global)\"]||(funct[\"(onevar)\"]=!0),this.first=[];(nonadjacent(token,nexttoken),id=identifier(),option.esnext&&\"const\"===funct[id]&&warning(\"const \\'\"+id+\"\\' has already been declared\"),funct[\"(global)\"]&&predefined[id]===!1&&warning(\"Redefinition of \\'{a}\\'.\",token,id),addlabel(id,\"unused\",token),!prefix)&&(name=token,this.first.push(token),\"=\"===nexttoken.id&&(nonadjacent(token,nexttoken),advance(\"=\"),nonadjacent(token,nexttoken),\"undefined\"===nexttoken.id&&warning(\"It is not necessary to initialize \\'{a}\\' to \\'undefined\\'.\",token,id),\"=\"===peek(0).id&&nexttoken.identifier&&error(\"Variable {a} was not declared correctly.\",nexttoken,nexttoken.value),value=expression(0),name.first=value),\",\"===nexttoken.id);)comma();return this});varstatement.exps=!0,blockstmt(\"function\",function(){inblock&&warning(\"Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.\",token);var i=identifier();return option.esnext&&\"const\"===funct[i]&&warning(\"const \\'\"+i+\"\\' has already been declared\"),adjacent(token,nexttoken),addlabel(i,\"unction\",token),doFunction(i,{statement:!0}),\"(\"===nexttoken.id&&nexttoken.line===token.line&&error(\"Function declarations are not invocable. Wrap the whole function invocation in parens.\"),this}),prefix(\"function\",function(){var i=optionalidentifier();return i?adjacent(token,nexttoken):nonadjacent(token,nexttoken),doFunction(i),!option.loopfunc&&funct[\"(loopage)\"]&&warning(\"Don\\'t make functions within a loop.\"),this}),blockstmt(\"if\",function(){var t=nexttoken;return increaseComplexityCount(),advance(\"(\"),nonadjacent(this,t),nospace(),expression(20),\"=\"===nexttoken.id&&(option.boss||warning(\"Assignment in conditional expression\"),advance(\"=\"),expression(20)),advance(\")\",t),nospace(prevtoken,token),block(!0,!0),\"else\"===nexttoken.id&&(nonadjacent(token,nexttoken),advance(\"else\"),\"if\"===nexttoken.id||\"switch\"===nexttoken.id?statement(!0):block(!0,!0)),this}),blockstmt(\"try\",function(){function doCatch(){var e,oldScope=scope;advance(\"catch\"),nonadjacent(token,nexttoken),advance(\"(\"),scope=Object.create(oldScope),e=nexttoken.value,\"(identifier)\"!==nexttoken.type&&(e=null,warning(\"Expected an identifier and instead saw \\'{a}\\'.\",nexttoken,e)),advance(),advance(\")\"),funct={\"(name)\":\"(catch)\",\"(line)\":nexttoken.line,\"(character)\":nexttoken.character,\"(context)\":funct,\"(breakage)\":funct[\"(breakage)\"],\"(loopage)\":funct[\"(loopage)\"],\"(scope)\":scope,\"(statement)\":!1,\"(metrics)\":createMetrics(nexttoken),\"(catch)\":!0,\"(tokens)\":{}},e&&addlabel(e,\"exception\"),token.funct=funct,functions.push(funct),block(!1),scope=oldScope,funct[\"(last)\"]=token.line,funct[\"(lastcharacter)\"]=token.character,funct=funct[\"(context)\"]}var b;return block(!1),\"catch\"===nexttoken.id&&(increaseComplexityCount(),doCatch(),b=!0),\"finally\"===nexttoken.id?(advance(\"finally\"),block(!1),void 0):(b||error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\"catch\",nexttoken.value),this)}),blockstmt(\"while\",function(){var t=nexttoken;return funct[\"(breakage)\"]+=1,funct[\"(loopage)\"]+=1,increaseComplexityCount(),advance(\"(\"),nonadjacent(this,t),nospace(),expression(20),\"=\"===nexttoken.id&&(option.boss||warning(\"Assignment in conditional expression\"),advance(\"=\"),expression(20)),advance(\")\",t),nospace(prevtoken,token),block(!0,!0),funct[\"(breakage)\"]-=1,funct[\"(loopage)\"]-=1,this}).labelled=!0,blockstmt(\"with\",function(){var t=nexttoken;return directive[\"use strict\"]?error(\"\\'with\\' is not allowed in strict mode.\",token):option.withstmt||warning(\"Don\\'t use \\'with\\'.\",token),advance(\"(\"),nonadjacent(this,t),nospace(),expression(0),advance(\")\",t),nospace(prevtoken,token),block(!0,!0),this}),blockstmt(\"switch\",function(){var t=nexttoken,g=!1;for(funct[\"(breakage)\"]+=1,advance(\"(\"),nonadjacent(this,t),nospace(),this.condition=expression(20),advance(\")\",t),nospace(prevtoken,token),nonadjacent(token,nexttoken),t=nexttoken,advance(\"{\"),nonadjacent(token,nexttoken),indent+=option.indent,this.cases=[];;)switch(nexttoken.id){case\"case\":switch(funct[\"(verb)\"]){case\"break\":case\"case\":case\"continue\":case\"return\":case\"switch\":case\"throw\":break;default:ft.test(lines[nexttoken.line-2])||warning(\"Expected a \\'break\\' statement before \\'case\\'.\",token)}indentation(-option.indent),advance(\"case\"),this.cases.push(expression(20)),increaseComplexityCount(),g=!0,advance(\":\"),funct[\"(verb)\"]=\"case\";break;case\"default\":switch(funct[\"(verb)\"]){case\"break\":case\"continue\":case\"return\":case\"throw\":break;default:ft.test(lines[nexttoken.line-2])||warning(\"Expected a \\'break\\' statement before \\'default\\'.\",token)}indentation(-option.indent),advance(\"default\"),g=!0,advance(\":\");break;case\"}\":return indent-=option.indent,indentation(),advance(\"}\",t),(1===this.cases.length||\"true\"===this.condition.id||\"false\"===this.condition.id)&&(option.onecase||warning(\"This \\'switch\\' should be an \\'if\\'.\",this)),funct[\"(breakage)\"]-=1,funct[\"(verb)\"]=void 0,void 0;case\"(end)\":return error(\"Missing \\'{a}\\'.\",nexttoken,\"}\"),void 0;default:if(g)switch(token.id){case\",\":return error(\"Each value should have its own case label.\"),void 0;case\":\":g=!1,statements();break;default:return error(\"Missing \\':\\' on a case clause.\",token),void 0}else{if(\":\"!==token.id)return error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\"case\",nexttoken.value),void 0;advance(\":\"),error(\"Unexpected \\'{a}\\'.\",token,\":\"),statements()}}}).labelled=!0,stmt(\"debugger\",function(){return option.debug||warning(\"All \\'debugger\\' statements should be removed.\"),this}).exps=!0,function(){var x=stmt(\"do\",function(){funct[\"(breakage)\"]+=1,funct[\"(loopage)\"]+=1,increaseComplexityCount(),this.first=block(!0),advance(\"while\");var t=nexttoken;return nonadjacent(token,t),advance(\"(\"),nospace(),expression(20),\"=\"===nexttoken.id&&(option.boss||warning(\"Assignment in conditional expression\"),advance(\"=\"),expression(20)),advance(\")\",t),nospace(prevtoken,token),funct[\"(breakage)\"]-=1,funct[\"(loopage)\"]-=1,this});x.labelled=!0,x.exps=!0}(),blockstmt(\"for\",function(){var s,t=nexttoken;if(funct[\"(breakage)\"]+=1,funct[\"(loopage)\"]+=1,increaseComplexityCount(),advance(\"(\"),nonadjacent(this,t),nospace(),\"in\"===peek(\"var\"===nexttoken.id?1:0).id){if(\"var\"===nexttoken.id)advance(\"var\"),varstatement.fud.call(varstatement,!0);else{switch(funct[nexttoken.value]){case\"unused\":funct[nexttoken.value]=\"var\";break;case\"var\":break;default:warning(\"Bad for in variable \\'{a}\\'.\",nexttoken,nexttoken.value)}advance()}return advance(\"in\"),expression(20),advance(\")\",t),s=block(!0,!0),option.forin&&s&&(s.length>1||\"object\"!=typeof s[0]||\"if\"!==s[0].value)&&warning(\"The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.\",this),funct[\"(breakage)\"]-=1,funct[\"(loopage)\"]-=1,this}if(\";\"!==nexttoken.id)if(\"var\"===nexttoken.id)advance(\"var\"),varstatement.fud.call(varstatement);else for(;expression(0,\"for\"),\",\"===nexttoken.id;)comma();if(nolinebreak(token),advance(\";\"),\";\"!==nexttoken.id&&(expression(20),\"=\"===nexttoken.id&&(option.boss||warning(\"Assignment in conditional expression\"),advance(\"=\"),expression(20))),nolinebreak(token),advance(\";\"),\";\"===nexttoken.id&&error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\")\",\";\"),\")\"!==nexttoken.id)for(;expression(0,\"for\"),\",\"===nexttoken.id;)comma();return advance(\")\",t),nospace(prevtoken,token),block(!0,!0),funct[\"(breakage)\"]-=1,funct[\"(loopage)\"]-=1,this}).labelled=!0,stmt(\"break\",function(){var v=nexttoken.value;return 0===funct[\"(breakage)\"]&&warning(\"Unexpected \\'{a}\\'.\",nexttoken,this.value),option.asi||nolinebreak(this),\";\"!==nexttoken.id&&token.line===nexttoken.line&&(\"label\"!==funct[v]?warning(\"\\'{a}\\' is not a statement label.\",nexttoken,v):scope[v]!==funct&&warning(\"\\'{a}\\' is out of scope.\",nexttoken,v),this.first=nexttoken,advance()),reachable(\"break\"),this\\n}).exps=!0,stmt(\"continue\",function(){var v=nexttoken.value;return 0===funct[\"(breakage)\"]&&warning(\"Unexpected \\'{a}\\'.\",nexttoken,this.value),option.asi||nolinebreak(this),\";\"!==nexttoken.id?token.line===nexttoken.line&&(\"label\"!==funct[v]?warning(\"\\'{a}\\' is not a statement label.\",nexttoken,v):scope[v]!==funct&&warning(\"\\'{a}\\' is out of scope.\",nexttoken,v),this.first=nexttoken,advance()):funct[\"(loopage)\"]||warning(\"Unexpected \\'{a}\\'.\",nexttoken,this.value),reachable(\"continue\"),this}).exps=!0,stmt(\"return\",function(){return this.line===nexttoken.line?(\"(regexp)\"===nexttoken.id&&warning(\"Wrap the /regexp/ literal in parens to disambiguate the slash operator.\"),\";\"===nexttoken.id||nexttoken.reach||(nonadjacent(token,nexttoken),\"=\"!==peek().value||option.boss||warningAt(\"Did you mean to return a conditional instead of an assignment?\",token.line,token.character+1),this.first=expression(0))):option.asi||nolinebreak(this),reachable(\"return\"),this}).exps=!0,stmt(\"throw\",function(){return nolinebreak(this),nonadjacent(token,nexttoken),this.first=expression(20),reachable(\"throw\"),this}).exps=!0,reserve(\"class\"),reserve(\"const\"),reserve(\"enum\"),reserve(\"export\"),reserve(\"extends\"),reserve(\"import\"),reserve(\"super\"),reserve(\"let\"),reserve(\"yield\"),reserve(\"implements\"),reserve(\"interface\"),reserve(\"package\"),reserve(\"private\"),reserve(\"protected\"),reserve(\"public\"),reserve(\"static\");var itself=function(s,o,g){var a,i,k,x,optionKeys,newOptionObj={};if(o&&o.scope?JSHINT.scope=o.scope:(JSHINT.errors=[],JSHINT.undefs=[],JSHINT.internals=[],JSHINT.blacklist={},JSHINT.scope=\"(main)\"),predefined=Object.create(standard),declared=Object.create(null),combine(predefined,g||{}),o)for(a=o.predef,a&&(Array.isArray(a)||\"object\"!=typeof a||(a=Object.keys(a)),a.forEach(function(item){var slice;\"-\"===item[0]?(slice=item.slice(1),JSHINT.blacklist[slice]=slice):predefined[item]=!0})),optionKeys=Object.keys(o),x=0;optionKeys.length>x;x++)newOptionObj[optionKeys[x]]=o[optionKeys[x]],\"newcap\"===optionKeys[x]&&o[optionKeys[x]]===!1&&(newOptionObj[\"(explicitNewcap)\"]=!0),\"indent\"===optionKeys[x]&&(newOptionObj.white=!0);for(option=newOptionObj,option.indent=option.indent||4,option.maxerr=option.maxerr||50,tab=\"\",i=0;option.indent>i;i+=1)tab+=\" \";if(indent=1,global=Object.create(predefined),scope=global,funct={\"(global)\":!0,\"(name)\":\"(global)\",\"(scope)\":scope,\"(breakage)\":0,\"(loopage)\":0,\"(tokens)\":{},\"(metrics)\":createMetrics(nexttoken)},functions=[funct],urls=[],stack=null,member={},membersOnly=null,implied={},inblock=!1,lookahead=[],jsonmode=!1,warnings=0,lines=[],unuseds=[],!isString(s)&&!Array.isArray(s))return errorAt(\"Input is neither a string nor an array of strings.\",0),!1;if(isString(s)&&/^\\\\s*$/g.test(s))return errorAt(\"Input is an empty string.\",0),!1;if(0===s.length)return errorAt(\"Input is an empty array.\",0),!1;lex.init(s),prereg=!0,directive={},prevtoken=token=nexttoken=syntax[\"(begin)\"];for(var name in o)is_own(o,name)&&checkOption(name,token);assume(),combine(predefined,g||{}),comma.first=!0,quotmark=void 0;try{switch(advance(),nexttoken.id){case\"{\":case\"[\":option.laxbreak=!0,jsonmode=!0,jsonValue();break;default:directives(),directive[\"use strict\"]&&!option.globalstrict&&warning(\\'Use the function form of \"use strict\".\\',prevtoken),statements()}advance(nexttoken&&\".\"!==nexttoken.value?\"(end)\":void 0);var markDefined=function(name,context){do{if(\"string\"==typeof context[name])return\"unused\"===context[name]?context[name]=\"var\":\"unction\"===context[name]&&(context[name]=\"closure\"),!0;context=context[\"(context)\"]}while(context);return!1},clearImplied=function(name,line){if(implied[name]){for(var newImplied=[],i=0;implied[name].length>i;i+=1)implied[name][i]!==line&&newImplied.push(implied[name][i]);0===newImplied.length?delete implied[name]:implied[name]=newImplied}},warnUnused=function(name,token){var line=token.line,chr=token.character;option.unused&&warningAt(\"\\'{a}\\' is defined but never used.\",line,chr,name),unuseds.push({name:name,line:line,character:chr})},checkUnused=function(func,key){var type=func[key],token=func[\"(tokens)\"][key];\"(\"!==key.charAt(0)&&(\"unused\"===type||\"unction\"===type)&&(func[\"(params)\"]&&-1!==func[\"(params)\"].indexOf(key)||warnUnused(key,token))};for(i=0;JSHINT.undefs.length>i;i+=1)k=JSHINT.undefs[i].slice(0),markDefined(k[2].value,k[0])?clearImplied(k[2].value,k[2].line):warning.apply(warning,k.slice(1));functions.forEach(function(func){for(var key in func)is_own(func,key)&&checkUnused(func,key);if(func[\"(params)\"])for(var type,params=func[\"(params)\"].slice(),param=params.pop();param;){if(type=func[param],\"undefined\"===param)return;if(\"unused\"!==type&&\"unction\"!==type)return;warnUnused(param,func[\"(tokens)\"][param]),param=params.pop()}});for(var key in declared)is_own(declared,key)&&!is_own(global,key)&&warnUnused(key,declared[key])}catch(e){if(e){var nt=nexttoken||{};JSHINT.errors.push({raw:e.raw,reason:e.message,line:e.line||nt.line,character:e.character||nt.from},null)}}if(\"(main)\"===JSHINT.scope)for(o=o||{},i=0;JSHINT.internals.length>i;i+=1)k=JSHINT.internals[i],o.scope=k.elem,itself(k.value,o,g);return 0===JSHINT.errors.length};return itself.data=function(){var fu,f,i,j,n,globals,data={functions:[],options:option},implieds=[],members=[];itself.errors.length&&(data.errors=itself.errors),jsonmode&&(data.json=!0);for(n in implied)is_own(implied,n)&&implieds.push({name:n,line:implied[n]});for(implieds.length>0&&(data.implieds=implieds),urls.length>0&&(data.urls=urls),globals=Object.keys(scope),globals.length>0&&(data.globals=globals),i=1;functions.length>i;i+=1){for(f=functions[i],fu={},j=0;functionicity.length>j;j+=1)fu[functionicity[j]]=[];for(j=0;functionicity.length>j;j+=1)0===fu[functionicity[j]].length&&delete fu[functionicity[j]];fu.name=f[\"(name)\"],fu.param=f[\"(params)\"],fu.line=f[\"(line)\"],fu.character=f[\"(character)\"],fu.last=f[\"(last)\"],fu.lastcharacter=f[\"(lastcharacter)\"],data.functions.push(fu)}unuseds.length>0&&(data.unused=unuseds),members=[];for(n in member)if(\"number\"==typeof member[n]){data.member=member;break}return data},itself.jshint=itself,itself}();\"object\"==typeof exports&&exports&&(exports.JSHINT=JSHINT)});'\n})()},{}],23:[function(){\"use strict\";Function.prototype.bind||(Function.prototype.bind=function(this_){if(\"function\"!=typeof this)throw new TypeError(\"Function.prototype.bind - what is trying to be bound is not callable\");var args=Array.prototype.slice.call(arguments,1),fn=this,Noop=function(){},fnbound=function(){return fn.apply(this instanceof Noop&&this_?this:this_,args.concat(Array.prototype.slice.call(arguments)))};return Noop.prototype=this.prototype,fnbound.prototype=new Noop,fnbound})},{}],21:[function(require,module){\"use strict\";function scroll(elem){elem&&(elem.scrollTop=elem.scrollHeight)}var Terminal=require(\"./term\"),through=require(\"through\");module.exports=function(opts){var term=new Terminal(opts);term.open();var hypernal=through(term.write.bind(term));return hypernal.appendTo=function(elem){\"string\"==typeof elem&&(elem=document.querySelector(elem)),elem.appendChild(term.element),elem.setAttribute(\"style\",\"overflow-y : auto;\"),hypernal.container=elem,term.element.style.position=\"relative\"},hypernal.writeln=function(line){term.writeln(line),hypernal.tail&&scroll(hypernal.container)},hypernal.write=function(data){term.write(data),hypernal.tail&&scroll(hypernal.container)},hypernal.reset=term.reset.bind(term),hypernal.element=term.element,hypernal.term=term,hypernal}},{\"./term\":24,through:25}],22:[function(require,module){(function(process){\"use strict\";function highlightLines(script){return highlight(script,{linenos:!0}).split(\"\\n\")}require(\"./lib/shim-bind\");var highlight=require(\"cardinal\").highlight,snippetify=require(\"snippetify\"),evalSnippets=require(\"./lib/eval-snippets\"),resolveTales=require(\"./lib/resolve-tales\");process.browser,module.exports=function(script,scriptPath,opts){opts=opts||{};var toLines=opts.toLines||highlightLines,writeln=opts.writeln||(process.browser===!0?function(){}:console.log.bind(console)),snippets=snippetify(script,{nonstrict:!0});evalSnippets(snippets,scriptPath,opts.diff);var tales=resolveTales(snippets,opts),lines=toLines(script),offset=0;return tales.forEach(function(x){x.tale.length&&lines.splice(x.insertAfter+offset++,0,x.tale)}),lines=lines.filter(function(x){return x.length}),lines.forEach(function(line){writeln(line)}),lines}})(require(\"__browserify_process\"))},{\"./lib/shim-bind\":23,\"./lib/eval-snippets\":26,\"./lib/resolve-tales\":27,cardinal:28,snippetify:29,__browserify_process:16}],20:[function(require,module){(function(){(function(){function exportAce(ns){var acequire=function(module,callback){return _acequire(\"\",module,callback)},root=global;ns&&(global[ns]||(global[ns]={}),root=global[ns]),root.define&&root.define.packaged||(_define.original=root.define,root.define=_define,root.define.packaged=!0),root.acequire&&root.acequire.packaged||(_acequire.original=root.acequire,root.acequire=acequire,root.acequire.packaged=!0)}var ACE_NAMESPACE=\"ace\",global=function(){return this}();if(ACE_NAMESPACE||\"undefined\"==typeof acequirejs){var _define=function(module,deps,payload){return\"string\"!=typeof module?(_define.original?_define.original.apply(window,arguments):(console.error(\"dropping module because define wasn't a string.\"),console.trace()),void 0):(2==arguments.length&&(payload=deps),_define.modules||(_define.modules={}),_define.modules[module]=payload,void 0)},_acequire=function(parentId,module,callback){if(\"[object Array]\"===Object.prototype.toString.call(module)){for(var params=[],i=0,l=module.length;l>i;++i){var dep=lookup(parentId,module[i]);if(!dep&&_acequire.original)return _acequire.original.apply(window,arguments);params.push(dep)}callback&&callback.apply(null,params)}else{if(\"string\"==typeof module){var payload=lookup(parentId,module);return!payload&&_acequire.original?_acequire.original.apply(window,arguments):(callback&&callback(),payload)}if(_acequire.original)return _acequire.original.apply(window,arguments)}},normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return normalizeModule(parentId,chunks[0])+\"!\"+normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=base+\"/\"+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return moduleName},lookup=function(parentId,moduleName){moduleName=normalizeModule(parentId,moduleName);var module=_define.modules[moduleName];if(!module)return null;if(\"function\"==typeof module){var exports={},mod={id:moduleName,uri:\"\",exports:exports,packaged:!0},req=function(module,callback){return _acequire(moduleName,module,callback)},returnValue=module(req,exports,mod);return exports=returnValue||mod.exports,_define.modules[moduleName]=exports,exports}return module};exportAce(ACE_NAMESPACE)}})(),ace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/multi_select\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/config\"],function(acequire,exports){acequire(\"./lib/fixoldbrowsers\");var dom=acequire(\"./lib/dom\"),event=acequire(\"./lib/event\"),Editor=acequire(\"./editor\").Editor,EditSession=acequire(\"./edit_session\").EditSession,UndoManager=acequire(\"./undomanager\").UndoManager,Renderer=acequire(\"./virtual_renderer\").VirtualRenderer,MultiSelect=acequire(\"./multi_select\").MultiSelect;acequire(\"./worker/worker_client\"),acequire(\"./keyboard/hash_handler\"),acequire(\"./placeholder\"),acequire(\"./mode/folding/fold_mode\"),acequire(\"./theme/textmate\"),exports.config=acequire(\"./config\"),exports.acequire=acequire,exports.edit=function(el){if(\"string\"==typeof el){var _id=el,el=document.getElementById(_id);if(!el)throw\"ace.edit can't find div #\"+_id}if(el.env&&el.env.editor instanceof Editor)return el.env.editor;var doc=exports.createEditSession(dom.getInnerText(el));el.innerHTML=\"\";var editor=new Editor(new Renderer(el));new MultiSelect(editor),editor.setSession(doc);var env={document:doc,editor:editor,onResize:editor.resize.bind(editor,null)};return event.addListener(window,\"resize\",env.onResize),editor.on(\"destroy\",function(){event.removeListener(window,\"resize\",env.onResize)}),el.env=editor.env=env,editor},exports.createEditSession=function(text){var doc=new EditSession(text,doc);return doc.setUndoManager(new UndoManager),doc},exports.EditSession=EditSession,exports.UndoManager=UndoManager}),ace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"],function(acequire){acequire(\"./regexp\"),acequire(\"./es5-shim\")}),ace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"],function(){function getNativeFlags(regex){return(regex.global?\"g\":\"\")+(regex.ignoreCase?\"i\":\"\")+(regex.multiline?\"m\":\"\")+(regex.extended?\"x\":\"\")+(regex.sticky?\"y\":\"\")}function indexOf(array,item,from){if(Array.prototype.indexOf)return array.indexOf(item,from);for(var i=from||0;array.length>i;i++)if(array[i]===item)return i;return-1}var real={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},compliantExecNpcg=void 0===real.exec.call(/()??/,\"\")[1],compliantLastIndexIncrement=function(){var x=/^/g;return real.test.call(x,\"\"),!x.lastIndex}();compliantLastIndexIncrement&&compliantExecNpcg||(RegExp.prototype.exec=function(str){var name,r2,match=real.exec.apply(this,arguments);if(\"string\"==typeof str&&match){if(!compliantExecNpcg&&match.length>1&&indexOf(match,\"\")>-1&&(r2=RegExp(this.source,real.replace.call(getNativeFlags(this),\"g\",\"\")),real.replace.call(str.slice(match.index),r2,function(){for(var i=1;arguments.length-2>i;i++)void 0===arguments[i]&&(match[i]=void 0)})),this._xregexp&&this._xregexp.captureNames)for(var i=1;match.length>i;i++)name=this._xregexp.captureNames[i-1],name&&(match[name]=match[i]);!compliantLastIndexIncrement&&this.global&&!match[0].length&&this.lastIndex>match.index&&this.lastIndex--}return match},compliantLastIndexIncrement||(RegExp.prototype.test=function(str){var match=real.exec.call(this,str);return match&&this.global&&!match[0].length&&this.lastIndex>match.index&&this.lastIndex--,!!match}))}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\n\u000b\\f\\r  ᠎              \\u2028\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can't convert \"+o+\" to object\");return Object(o)}}),ace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"],function(acequire,exports){if(\"undefined\"!=typeof document){var XHTML_NS=\"http://www.w3.org/1999/xhtml\";exports.getDocumentHead=function(doc){return doc||(doc=document),doc.head||doc.getElementsByTagName(\"head\")[0]||doc.documentElement},exports.createElement=function(tag,ns){return document.createElementNS?document.createElementNS(ns||XHTML_NS,tag):document.createElement(tag)},exports.hasCssClass=function(el,name){var classes=el.className.split(/\\s+/g);return-1!==classes.indexOf(name)},exports.addCssClass=function(el,name){exports.hasCssClass(el,name)||(el.className+=\" \"+name)},exports.removeCssClass=function(el,name){for(var classes=el.className.split(/\\s+/g);;){var index=classes.indexOf(name);if(-1==index)break;classes.splice(index,1)}el.className=classes.join(\" \")},exports.toggleCssClass=function(el,name){for(var classes=el.className.split(/\\s+/g),add=!0;;){var index=classes.indexOf(name);if(-1==index)break;add=!1,classes.splice(index,1)}return add&&classes.push(name),el.className=classes.join(\" \"),add},exports.setCssClass=function(node,className,include){include?exports.addCssClass(node,className):exports.removeCssClass(node,className)},exports.hasCssString=function(id,doc){var sheets,index=0;if(doc=doc||document,doc.createStyleSheet&&(sheets=doc.styleSheets)){for(;sheets.length>index;)if(sheets[index++].owningElement.id===id)return!0}else if(sheets=doc.getElementsByTagName(\"style\"))for(;sheets.length>index;)if(sheets[index++].id===id)return!0;return!1},exports.importCssString=function(cssText,id,doc){if(doc=doc||document,id&&exports.hasCssString(id,doc))return null;var style;doc.createStyleSheet?(style=doc.createStyleSheet(),style.cssText=cssText,id&&(style.owningElement.id=id)):(style=doc.createElementNS?doc.createElementNS(XHTML_NS,\"style\"):doc.createElement(\"style\"),style.appendChild(doc.createTextNode(cssText)),id&&(style.id=id),exports.getDocumentHead(doc).appendChild(style))},exports.importCssStylsheet=function(uri,doc){if(doc.createStyleSheet)doc.createStyleSheet(uri);else{var link=exports.createElement(\"link\");link.rel=\"stylesheet\",link.href=uri,exports.getDocumentHead(doc).appendChild(link)}},exports.getInnerWidth=function(element){return parseInt(exports.computedStyle(element,\"paddingLeft\"),10)+parseInt(exports.computedStyle(element,\"paddingRight\"),10)+element.clientWidth},exports.getInnerHeight=function(element){return parseInt(exports.computedStyle(element,\"paddingTop\"),10)+parseInt(exports.computedStyle(element,\"paddingBottom\"),10)+element.clientHeight},void 0!==window.pageYOffset?(exports.getPageScrollTop=function(){return window.pageYOffset},exports.getPageScrollLeft=function(){return window.pageXOffset}):(exports.getPageScrollTop=function(){return document.body.scrollTop},exports.getPageScrollLeft=function(){return document.body.scrollLeft}),exports.computedStyle=window.getComputedStyle?function(element,style){return style?(window.getComputedStyle(element,\"\")||{})[style]||\"\":window.getComputedStyle(element,\"\")||{}}:function(element,style){return style?element.currentStyle[style]:element.currentStyle},exports.scrollbarWidth=function(document){var inner=exports.createElement(\"ace_inner\");inner.style.width=\"100%\",inner.style.minWidth=\"0px\",inner.style.height=\"200px\",inner.style.display=\"block\";var outer=exports.createElement(\"ace_outer\"),style=outer.style;style.position=\"absolute\",style.left=\"-10000px\",style.overflow=\"hidden\",style.width=\"200px\",style.minWidth=\"0px\",style.height=\"150px\",style.display=\"block\",outer.appendChild(inner);var body=document.documentElement;body.appendChild(outer);var noScrollbar=inner.offsetWidth;style.overflow=\"scroll\";var withScrollbar=inner.offsetWidth;return noScrollbar==withScrollbar&&(withScrollbar=outer.clientWidth),body.removeChild(outer),noScrollbar-withScrollbar},exports.setInnerHtml=function(el,innerHtml){var element=el.cloneNode(!1);return element.innerHTML=innerHtml,el.parentNode.replaceChild(element,el),element},\"textContent\"in document.documentElement?(exports.setInnerText=function(el,innerText){el.textContent=innerText},exports.getInnerText=function(el){return el.textContent}):(exports.setInnerText=function(el,innerText){el.innerText=innerText},exports.getInnerText=function(el){return el.innerText}),exports.getParentWindow=function(document){return document.defaultView||document.parentWindow}}}),ace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\",\"ace/lib/dom\"],function(acequire,exports){function normalizeCommandKeys(callback,e,keyCode){var hashId=0;if(hashId=!useragent.isOpera||\"KeyboardEvent\"in window||!useragent.isMac?0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0):0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0),keyCode in keys.MODIFIER_KEYS){switch(keys.MODIFIER_KEYS[keyCode]){case\"Alt\":hashId=2;break;case\"Shift\":hashId=4;break;case\"Ctrl\":hashId=1;break;default:hashId=8}keyCode=0}return 8&hashId&&(91==keyCode||93==keyCode)&&(keyCode=0),hashId||keyCode in keys.FUNCTION_KEYS||keyCode in keys.PRINTABLE_KEYS?callback(e,hashId,keyCode):!1}var keys=acequire(\"./keys\"),useragent=acequire(\"./useragent\");if(acequire(\"./dom\"),exports.addListener=function(elem,type,callback){if(elem.addEventListener)return elem.addEventListener(type,callback,!1);if(elem.attachEvent){var wrapper=function(){callback(window.event)};callback._wrapper=wrapper,elem.attachEvent(\"on\"+type,wrapper)}},exports.removeListener=function(elem,type,callback){return elem.removeEventListener?elem.removeEventListener(type,callback,!1):(elem.detachEvent&&elem.detachEvent(\"on\"+type,callback._wrapper||callback),void 0)},exports.stopEvent=function(e){return exports.stopPropagation(e),exports.preventDefault(e),!1},exports.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},exports.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},exports.getButton=function(e){return\"dblclick\"==e.type?0:\"contextmenu\"==e.type||e.ctrlKey&&useragent.isMac?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},exports.capture=document.documentElement.setCapture?function(el,eventHandler,releaseCaptureHandler){function onReleaseCapture(e){eventHandler(e),called||(called=!0,releaseCaptureHandler(e)),exports.removeListener(el,\"mousemove\",eventHandler),exports.removeListener(el,\"mouseup\",onReleaseCapture),exports.removeListener(el,\"losecapture\",onReleaseCapture),el.releaseCapture()}var called=!1;exports.addListener(el,\"mousemove\",eventHandler),exports.addListener(el,\"mouseup\",onReleaseCapture),exports.addListener(el,\"losecapture\",onReleaseCapture),el.setCapture()}:function(el,eventHandler,releaseCaptureHandler){function onMouseUp(e){eventHandler&&eventHandler(e),releaseCaptureHandler&&releaseCaptureHandler(e),document.removeEventListener(\"mousemove\",eventHandler,!0),document.removeEventListener(\"mouseup\",onMouseUp,!0),e.stopPropagation()}document.addEventListener(\"mousemove\",eventHandler,!0),document.addEventListener(\"mouseup\",onMouseUp,!0)},exports.addMouseWheelListener=function(el,callback){var factor=8,listener=function(e){void 0!==e.wheelDelta?void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/factor,e.wheelY=-e.wheelDeltaY/factor):(e.wheelX=0,e.wheelY=-e.wheelDelta/factor):e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),callback(e)};exports.addListener(el,\"DOMMouseScroll\",listener),exports.addListener(el,\"mousewheel\",listener)},exports.addMultiMouseDownListener=function(el,timeouts,eventHandler,callbackName){var startX,startY,timer,clicks=0,eventNames={2:\"dblclick\",3:\"tripleclick\",4:\"quadclick\"};exports.addListener(el,\"mousedown\",function(e){if(0!=exports.getButton(e))clicks=0;else{var isNewClick=Math.abs(e.clientX-startX)>5||Math.abs(e.clientY-startY)>5;(!timer||isNewClick)&&(clicks=0),clicks+=1,timer&&clearTimeout(timer),timer=setTimeout(function(){timer=null},timeouts[clicks-1]||600)}if(1==clicks&&(startX=e.clientX,startY=e.clientY),eventHandler[callbackName](\"mousedown\",e),clicks>4)clicks=0;else if(clicks>1)return eventHandler[callbackName](eventNames[clicks],e)}),useragent.isOldIE&&exports.addListener(el,\"dblclick\",function(e){clicks=2,timer&&clearTimeout(timer),timer=setTimeout(function(){timer=null},timeouts[clicks-1]||600),eventHandler[callbackName](\"mousedown\",e),eventHandler[callbackName](eventNames[clicks],e)})},exports.addCommandKeyListener=function(el,callback){var addListener=exports.addListener;if(useragent.isOldGecko||useragent.isOpera&&!(\"KeyboardEvent\"in window)){var lastKeyDownKeyCode=null;addListener(el,\"keydown\",function(e){lastKeyDownKeyCode=e.keyCode}),addListener(el,\"keypress\",function(e){return normalizeCommandKeys(callback,e,lastKeyDownKeyCode)})}else{var lastDown=null;addListener(el,\"keydown\",function(e){return lastDown=e.keyIdentifier||e.keyCode,normalizeCommandKeys(callback,e,e.keyCode)})}},window.postMessage&&!useragent.isOldIE){var postMessageId=1;exports.nextTick=function(callback,win){win=win||window;var messageName=\"zero-timeout-message-\"+postMessageId;exports.addListener(win,\"message\",function listener(e){e.data==messageName&&(exports.stopPropagation(e),exports.removeListener(win,\"message\",listener),callback())}),win.postMessage(messageName,\"*\")}}exports.nextFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame,exports.nextFrame=exports.nextFrame?exports.nextFrame.bind(window):function(callback){setTimeout(callback,17)}}),ace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"],function(acequire,exports){var oop=acequire(\"./oop\"),Keys=function(){var ret={MODIFIER_KEYS:{16:\"Shift\",17:\"Ctrl\",18:\"Alt\",224:\"Meta\"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:\"Backspace\",9:\"Tab\",13:\"Return\",19:\"Pause\",27:\"Esc\",32:\"Space\",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"Left\",38:\"Up\",39:\"Right\",40:\"Down\",44:\"Print\",45:\"Insert\",46:\"Delete\",96:\"Numpad0\",97:\"Numpad1\",98:\"Numpad2\",99:\"Numpad3\",100:\"Numpad4\",101:\"Numpad5\",102:\"Numpad6\",103:\"Numpad7\",104:\"Numpad8\",105:\"Numpad9\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"Numlock\",145:\"Scrolllock\"},PRINTABLE_KEYS:{32:\" \",48:\"0\",49:\"1\",50:\"2\",51:\"3\",52:\"4\",53:\"5\",54:\"6\",55:\"7\",56:\"8\",57:\"9\",59:\";\",61:\"=\",65:\"a\",66:\"b\",67:\"c\",68:\"d\",69:\"e\",70:\"f\",71:\"g\",72:\"h\",73:\"i\",74:\"j\",75:\"k\",76:\"l\",77:\"m\",78:\"n\",79:\"o\",80:\"p\",81:\"q\",82:\"r\",83:\"s\",84:\"t\",85:\"u\",86:\"v\",87:\"w\",88:\"x\",89:\"y\",90:\"z\",107:\"+\",109:\"-\",110:\".\",188:\",\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\"}};for(var i in ret.FUNCTION_KEYS){var name=ret.FUNCTION_KEYS[i].toLowerCase();ret[name]=parseInt(i,10)}return oop.mixin(ret,ret.MODIFIER_KEYS),oop.mixin(ret,ret.PRINTABLE_KEYS),oop.mixin(ret,ret.FUNCTION_KEYS),ret.enter=ret[\"return\"],ret.escape=ret.esc,ret.del=ret[\"delete\"],ret[173]=\"-\",ret}();oop.mixin(exports,Keys),exports.keyCodeToString=function(keyCode){return(Keys[keyCode]||String.fromCharCode(keyCode)).toLowerCase()}}),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){exports.inherits=function(){var tempCtor=function(){};\nreturn function(ctor,superCtor){tempCtor.prototype=superCtor.prototype,ctor.super_=superCtor.prototype,ctor.prototype=new tempCtor,ctor.prototype.constructor=ctor}}(),exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"],function(acequire,exports){if(exports.OS={LINUX:\"LINUX\",MAC:\"MAC\",WINDOWS:\"WINDOWS\"},exports.getOS=function(){return exports.isMac?exports.OS.MAC:exports.isLinux?exports.OS.LINUX:exports.OS.WINDOWS},\"object\"==typeof navigator){var os=(navigator.platform.match(/mac|win|linux/i)||[\"other\"])[0].toLowerCase(),ua=navigator.userAgent;exports.isWin=\"win\"==os,exports.isMac=\"mac\"==os,exports.isLinux=\"linux\"==os,exports.isIE=(\"Microsoft Internet Explorer\"==navigator.appName||navigator.appName.indexOf(\"MSAppHost\")>=0)&&parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\\.0-9]+)/)[1]),exports.isOldIE=exports.isIE&&9>exports.isIE,exports.isGecko=exports.isMozilla=window.controllers&&\"Gecko\"===window.navigator.product,exports.isOldGecko=exports.isGecko&&4>parseInt((navigator.userAgent.match(/rv\\:(\\d+)/)||[])[1],10),exports.isOpera=window.opera&&\"[object Opera]\"==Object.prototype.toString.call(window.opera),exports.isWebKit=parseFloat(ua.split(\"WebKit/\")[1])||void 0,exports.isChrome=parseFloat(ua.split(\" Chrome/\")[1])||void 0,exports.isAIR=ua.indexOf(\"AdobeAIR\")>=0,exports.isIPad=ua.indexOf(\"iPad\")>=0,exports.isTouchPad=ua.indexOf(\"TouchPad\")>=0}}),ace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\"],function(acequire,exports){acequire(\"./lib/fixoldbrowsers\");var oop=acequire(\"./lib/oop\"),lang=acequire(\"./lib/lang\"),useragent=acequire(\"./lib/useragent\"),TextInput=acequire(\"./keyboard/textinput\").TextInput,MouseHandler=acequire(\"./mouse/mouse_handler\").MouseHandler,FoldHandler=acequire(\"./mouse/fold_handler\").FoldHandler,KeyBinding=acequire(\"./keyboard/keybinding\").KeyBinding,EditSession=acequire(\"./edit_session\").EditSession,Search=acequire(\"./search\").Search,Range=acequire(\"./range\").Range,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,CommandManager=acequire(\"./commands/command_manager\").CommandManager,defaultCommands=acequire(\"./commands/default_commands\").commands,config=acequire(\"./config\"),Editor=function(renderer,session){var container=renderer.getContainerElement();this.container=container,this.renderer=renderer,this.commands=new CommandManager(useragent.isMac?\"mac\":\"win\",defaultCommands),this.textInput=new TextInput(renderer.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new KeyBinding(this),this.$mouseHandler=new MouseHandler(this),new FoldHandler(this),this.$blockScrolling=0,this.$search=(new Search).set({wrap:!0}),this.setSession(session||new EditSession(\"\")),config.resetOptions(this),config._emit(\"editor\",this)};(function(){oop.implement(this,EventEmitter),this.setKeyboardHandler=function(keyboardHandler){if(keyboardHandler)if(\"string\"==typeof keyboardHandler){this.$keybindingId=keyboardHandler;var _self=this;config.loadModule([\"keybinding\",keyboardHandler],function(module){_self.$keybindingId==keyboardHandler&&_self.keyBinding.setKeyboardHandler(module&&module.handler)})}else delete this.$keybindingId,this.keyBinding.setKeyboardHandler(keyboardHandler);else this.keyBinding.setKeyboardHandler(null)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(session){if(this.session!=session){if(this.session){var oldSession=this.session;this.session.removeEventListener(\"change\",this.$onDocumentChange),this.session.removeEventListener(\"changeMode\",this.$onChangeMode),this.session.removeEventListener(\"tokenizerUpdate\",this.$onTokenizerUpdate),this.session.removeEventListener(\"changeTabSize\",this.$onChangeTabSize),this.session.removeEventListener(\"changeWrapLimit\",this.$onChangeWrapLimit),this.session.removeEventListener(\"changeWrapMode\",this.$onChangeWrapMode),this.session.removeEventListener(\"onChangeFold\",this.$onChangeFold),this.session.removeEventListener(\"changeFrontMarker\",this.$onChangeFrontMarker),this.session.removeEventListener(\"changeBackMarker\",this.$onChangeBackMarker),this.session.removeEventListener(\"changeBreakpoint\",this.$onChangeBreakpoint),this.session.removeEventListener(\"changeAnnotation\",this.$onChangeAnnotation),this.session.removeEventListener(\"changeOverwrite\",this.$onCursorChange),this.session.removeEventListener(\"changeScrollTop\",this.$onScrollTopChange),this.session.removeEventListener(\"changeScrollLeft\",this.$onScrollLeftChange);var selection=this.session.getSelection();selection.removeEventListener(\"changeCursor\",this.$onCursorChange),selection.removeEventListener(\"changeSelection\",this.$onSelectionChange)}this.session=session,this.$onDocumentChange=this.onDocumentChange.bind(this),session.addEventListener(\"change\",this.$onDocumentChange),this.renderer.setSession(session),this.$onChangeMode=this.onChangeMode.bind(this),session.addEventListener(\"changeMode\",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),session.addEventListener(\"tokenizerUpdate\",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),session.addEventListener(\"changeTabSize\",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),session.addEventListener(\"changeWrapLimit\",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),session.addEventListener(\"changeWrapMode\",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),session.addEventListener(\"changeFold\",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener(\"changeFrontMarker\",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener(\"changeBackMarker\",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener(\"changeBreakpoint\",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener(\"changeAnnotation\",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener(\"changeOverwrite\",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener(\"changeScrollTop\",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener(\"changeScrollLeft\",this.$onScrollLeftChange),this.selection=session.getSelection(),this.selection.addEventListener(\"changeCursor\",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener(\"changeSelection\",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull(),this._emit(\"changeSession\",{session:session,oldSession:oldSession})}},this.getSession=function(){return this.session},this.setValue=function(val,cursorPos){return this.session.doc.setValue(val),cursorPos?1==cursorPos?this.navigateFileEnd():-1==cursorPos&&this.navigateFileStart():this.selectAll(),val},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(force){this.renderer.onResize(force)},this.setTheme=function(theme){this.renderer.setTheme(theme)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(style){this.renderer.setStyle(style)},this.unsetStyle=function(style){this.renderer.unsetStyle(style)},this.setFontSize=function(size){this.setOption(\"fontSize\",size)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var self=this;this.$highlightPending=!0,setTimeout(function(){self.$highlightPending=!1;var pos=self.session.findMatchingBracket(self.getCursorPosition());if(pos)var range=new Range(pos.row,pos.column,pos.row,pos.column+1);else if(self.session.$mode.getMatching)var range=self.session.$mode.getMatching(self.session);range&&(self.session.$bracketHighlight=self.session.addMarker(range,\"ace_bracket\",\"text\"))},50)}},this.focus=function(){var _self=this;setTimeout(function(){_self.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit(\"focus\"))},this.onBlur=function(){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit(\"blur\"))},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var lastRow,delta=e.data,range=delta.range;lastRow=range.start.row==range.end.row&&\"insertLines\"!=delta.action&&\"removeLines\"!=delta.action?range.end.row:1/0,this.renderer.updateLines(range.start.row,lastRow),this._emit(\"change\",e),this.$cursorChange()},this.onTokenizerUpdate=function(e){var rows=e.data;this.renderer.updateLines(rows.first,rows.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.$highlightBrackets(),this.$updateHighlightActiveLine(),this._emit(\"changeSelection\")},this.$updateHighlightActiveLine=function(){var highlight,session=this.getSession();if(this.$highlightActiveLine&&(\"line\"==this.$selectionStyle&&this.selection.isMultiLine()||(highlight=this.getCursorPosition())),session.$highlightLineMarker&&!highlight)session.removeMarker(session.$highlightLineMarker.id),session.$highlightLineMarker=null;else if(!session.$highlightLineMarker&&highlight){var range=new Range(highlight.row,highlight.column,highlight.row,1/0);range.id=session.addMarker(range,\"ace_active-line\",\"screenLine\"),session.$highlightLineMarker=range}else highlight&&(session.$highlightLineMarker.start.row=highlight.row,session.$highlightLineMarker.end.row=highlight.row,session.$highlightLineMarker.start.column=highlight.column,session._emit(\"changeBackMarker\"))},this.onSelectionChange=function(){var session=this.session;if(session.$selectionMarker&&session.removeMarker(session.$selectionMarker),session.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var range=this.selection.getRange(),style=this.getSelectionStyle();session.$selectionMarker=session.addMarker(range,\"ace_selection\",style)}var re=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(re),this._emit(\"changeSelection\")},this.$getSelectionHighLightRegexp=function(){var session=this.session,selection=this.getSelectionRange();if(!selection.isEmpty()&&!selection.isMultiLine()){var startOuter=selection.start.column-1,endOuter=selection.end.column+1,line=session.getLine(selection.start.row),lineCols=line.length,needle=line.substring(Math.max(startOuter,0),Math.min(endOuter,lineCols));if(!(startOuter>=0&&/^[\\w\\d]/.test(needle)||lineCols>=endOuter&&/[\\w\\d]$/.test(needle))&&(needle=line.substring(selection.start.column,selection.end.column),/^[\\w\\d]+$/.test(needle))){var re=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:needle});return re}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit(\"changeMode\",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var text=\"\";return this.selection.isEmpty()||(text=this.session.getTextRange(this.getSelectionRange())),this._emit(\"copy\",text),text},this.onCopy=function(){this.commands.exec(\"copy\",this)},this.onCut=function(){this.commands.exec(\"cut\",this)},this.onPaste=function(text){this.$readOnly||(this._emit(\"paste\",text),this.insert(text))},this.execCommand=function(command,args){this.commands.exec(command,this,args)},this.insert=function(text){var session=this.session,mode=session.getMode(),cursor=this.getCursorPosition();if(this.getBehavioursEnabled()){var transform=mode.transformAction(session.getState(cursor.row),\"insertion\",this,session,text);transform&&(text=transform.text)}if(text=text.replace(\"\t\",this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()){var range=new Range.fromPoints(cursor,cursor);range.end.column+=text.length,this.session.remove(range)}}else cursor=this.session.remove(this.getSelectionRange()),this.clearSelection();this.clearSelection();var start=cursor.column,lineState=session.getState(cursor.row),line=session.getLine(cursor.row),shouldOutdent=mode.checkOutdent(lineState,line,text),end=session.insert(cursor,text);if(transform&&transform.selection&&(2==transform.selection.length?this.selection.setSelectionRange(new Range(cursor.row,start+transform.selection[0],cursor.row,start+transform.selection[1])):this.selection.setSelectionRange(new Range(cursor.row+transform.selection[0],transform.selection[1],cursor.row+transform.selection[2],transform.selection[3]))),session.getDocument().isNewLine(text)){var lineIndent=mode.getNextLineIndent(lineState,line.slice(0,cursor.column),session.getTabString());this.moveCursorTo(cursor.row+1,0);for(var size=session.getTabSize(),minIndent=Number.MAX_VALUE,row=cursor.row+1;end.row>=row;++row){var indent=0;line=session.getLine(row);for(var i=0;line.length>i;++i)if(\"\t\"==line.charAt(i))indent+=size;else{if(\" \"!=line.charAt(i))break;indent+=1}/[^\\s]/.test(line)&&(minIndent=Math.min(indent,minIndent))}for(var row=cursor.row+1;end.row>=row;++row){var outdent=minIndent;line=session.getLine(row);for(var i=0;line.length>i&&outdent>0;++i)\"\t\"==line.charAt(i)?outdent-=size:\" \"==line.charAt(i)&&(outdent-=1);session.remove(new Range(row,0,row,i))}session.indentRows(cursor.row+1,end.row,lineIndent)}shouldOutdent&&mode.autoOutdent(lineState,session,cursor.row)},this.onTextInput=function(text){this.keyBinding.onTextInput(text)},this.onCommandKey=function(e,hashId,keyCode){this.keyBinding.onCommandKey(e,hashId,keyCode)},this.setOverwrite=function(overwrite){this.session.setOverwrite(overwrite)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(speed){this.setOption(\"scrollSpeed\",speed)},this.getScrollSpeed=function(){return this.getOption(\"scrollSpeed\")},this.setDragDelay=function(dragDelay){this.setOption(\"dragDelay\",dragDelay)},this.getDragDelay=function(){return this.getOption(\"dragDelay\")},this.setSelectionStyle=function(val){this.setOption(\"selectionStyle\",val)},this.getSelectionStyle=function(){return this.getOption(\"selectionStyle\")},this.setHighlightActiveLine=function(shouldHighlight){this.setOption(\"highlightActiveLine\",shouldHighlight)},this.getHighlightActiveLine=function(){return this.getOption(\"highlightActiveLine\")},this.setHighlightGutterLine=function(shouldHighlight){this.setOption(\"highlightGutterLine\",shouldHighlight)},this.getHighlightGutterLine=function(){return this.getOption(\"highlightGutterLine\")},this.setHighlightSelectedWord=function(shouldHighlight){this.setOption(\"highlightSelectedWord\",shouldHighlight)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(shouldAnimate){this.renderer.setAnimatedScroll(shouldAnimate)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(showInvisibles){this.renderer.setShowInvisibles(showInvisibles)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(display){this.renderer.setDisplayIndentGuides(display)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(showPrintMargin){this.renderer.setShowPrintMargin(showPrintMargin)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(showPrintMargin){this.renderer.setPrintMarginColumn(showPrintMargin)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(readOnly){this.setOption(\"readOnly\",readOnly)},this.getReadOnly=function(){return this.getOption(\"readOnly\")},this.setBehavioursEnabled=function(enabled){this.setOption(\"behavioursEnabled\",enabled)},this.getBehavioursEnabled=function(){return this.getOption(\"behavioursEnabled\")},this.setWrapBehavioursEnabled=function(enabled){this.setOption(\"wrapBehavioursEnabled\",enabled)},this.getWrapBehavioursEnabled=function(){return this.getOption(\"wrapBehavioursEnabled\")},this.setShowFoldWidgets=function(show){this.setOption(\"showFoldWidgets\",show)},this.getShowFoldWidgets=function(){return this.getOption(\"showFoldWidgets\")},this.setFadeFoldWidgets=function(fade){this.setOption(\"fadeFoldWidgets\",fade)},this.getFadeFoldWidgets=function(){return this.getOption(\"fadeFoldWidgets\")},this.remove=function(dir){this.selection.isEmpty()&&(\"left\"==dir?this.selection.selectLeft():this.selection.selectRight());var range=this.getSelectionRange();if(this.getBehavioursEnabled()){var session=this.session,state=session.getState(range.start.row),new_range=session.getMode().transformAction(state,\"deletion\",this,session,range);new_range&&(range=new_range)}this.session.remove(range),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var range=this.getSelectionRange();range.start.column==range.end.column&&range.start.row==range.end.row&&(range.end.column=0,range.end.row++),this.session.remove(range),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var cursor=this.getCursorPosition();this.insert(\"\\n\"),this.moveCursorToPosition(cursor)},this.transposeLetters=function(){if(this.selection.isEmpty()){var cursor=this.getCursorPosition(),column=cursor.column;if(0!==column){var swap,range,line=this.session.getLine(cursor.row);line.length>column?(swap=line.charAt(column)+line.charAt(column-1),range=new Range(cursor.row,column-1,cursor.row,column+1)):(swap=line.charAt(column-1)+line.charAt(column-2),range=new Range(cursor.row,column-2,cursor.row,column)),this.session.replace(range,swap)}}},this.toLowerCase=function(){var originalRange=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var range=this.getSelectionRange(),text=this.session.getTextRange(range);this.session.replace(range,text.toLowerCase()),this.selection.setSelectionRange(originalRange)},this.toUpperCase=function(){var originalRange=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var range=this.getSelectionRange(),text=this.session.getTextRange(range);this.session.replace(range,text.toUpperCase()),this.selection.setSelectionRange(originalRange)},this.indent=function(){var session=this.session,range=this.getSelectionRange();if(!(range.start.row\u003Crange.end.row||range.start.column\u003Crange.end.column)){var indentString;if(this.session.getUseSoftTabs()){var size=session.getTabSize(),position=this.getCursorPosition(),column=session.documentToScreenColumn(position.row,position.column),count=size-column%size;indentString=lang.stringRepeat(\" \",count)}else indentString=\"\t\";return this.insert(indentString)}var rows=this.$getSelectedRows();session.indentRows(rows.first,rows.last,\"\t\")},this.blockIndent=function(){var rows=this.$getSelectedRows();this.session.indentRows(rows.first,rows.last,\"\t\")},this.blockOutdent=function(){var selection=this.session.getSelection();this.session.outdentRows(selection.getRange())},this.sortLines=function(){var rows=this.$getSelectedRows(),session=this.session,lines=[];for(i=rows.first;rows.last>=i;i++)lines.push(session.getLine(i));lines.sort(function(a,b){return a.toLowerCase()\u003Cb.toLowerCase()?-1:a.toLowerCase()>b.toLowerCase()?1:0});for(var deleteRange=new Range(0,0,0,0),i=rows.first;rows.last>=i;i++){var line=session.getLine(i);deleteRange.start.row=i,deleteRange.end.row=i,deleteRange.end.column=line.length,session.replace(deleteRange,lines[i-rows.first])}},this.toggleCommentLines=function(){var state=this.session.getState(this.getCursorPosition().row),rows=this.$getSelectedRows();this.session.getMode().toggleCommentLines(state,this.session,rows.first,rows.last)},this.getNumberAt=function(row,column){var _numberRx=/[\\-]?[0-9]+(?:\\.[0-9]+)?/g;_numberRx.lastIndex=0;for(var s=this.session.getLine(row);column>_numberRx.lastIndex;){var m=_numberRx.exec(s);if(column>=m.index&&m.index+m[0].length>=column){var number={value:m[0],start:m.index,end:m.index+m[0].length};return number}}return null},this.modifyNumber=function(amount){var row=this.selection.getCursor().row,column=this.selection.getCursor().column,charRange=new Range(row,column-1,row,column),c=this.session.getTextRange(charRange);if(!isNaN(parseFloat(c))&&isFinite(c)){var nr=this.getNumberAt(row,column);if(nr){var fp=nr.value.indexOf(\".\")>=0?nr.start+nr.value.indexOf(\".\")+1:nr.end,decimals=nr.start+nr.value.length-fp,t=parseFloat(nr.value);t*=Math.pow(10,decimals),amount*=fp!==nr.end&&fp>column?Math.pow(10,nr.end-column-1):Math.pow(10,nr.end-column),t+=amount,t/=Math.pow(10,decimals);var nnr=t.toFixed(decimals),replaceRange=new Range(row,nr.start,row,nr.end);this.session.replace(replaceRange,nnr),this.moveCursorTo(row,Math.max(nr.start+1,column+nnr.length-nr.value.length))}}},this.removeLines=function(){var range,rows=this.$getSelectedRows();range=0===rows.first||rows.last+1\u003Cthis.session.getLength()?new Range(rows.first,0,rows.last+1,0):new Range(rows.first-1,this.session.getLine(rows.first-1).length,rows.last,this.session.getLine(rows.last).length),this.session.remove(range),this.clearSelection()},this.duplicateSelection=function(){var sel=this.selection,doc=this.session,range=sel.getRange(),reverse=sel.isBackwards();if(range.isEmpty()){var row=range.start.row;doc.duplicateLines(row,row)}else{var point=reverse?range.start:range.end,endPoint=doc.insert(point,doc.getTextRange(range),!1);range.start=point,range.end=endPoint,sel.setSelectionRange(range,reverse)}},this.moveLinesDown=function(){this.$moveLines(function(firstRow,lastRow){return this.session.moveLinesDown(firstRow,lastRow)})},this.moveLinesUp=function(){this.$moveLines(function(firstRow,lastRow){return this.session.moveLinesUp(firstRow,lastRow)})},this.moveText=function(range,toPosition){return this.session.moveText(range,toPosition)},this.copyLinesUp=function(){this.$moveLines(function(firstRow,lastRow){return this.session.duplicateLines(firstRow,lastRow),0})},this.copyLinesDown=function(){this.$moveLines(function(firstRow,lastRow){return this.session.duplicateLines(firstRow,lastRow)})},this.$moveLines=function(mover){var selection=this.selection;if(!selection.inMultiSelectMode||this.inVirtualSelectionMode){var range=selection.toOrientedRange(),rows=this.$getSelectedRows(range),linesMoved=mover.call(this,rows.first,rows.last);range.moveBy(linesMoved,0),selection.fromOrientedRange(range)}else{var ranges=selection.rangeList.ranges;selection.rangeList.detach(this.session);for(var i=ranges.length;i--;){for(var rangeIndex=i,rows=ranges[i].collapseRows(),last=rows.end.row,first=rows.start.row;i--;){var rows=ranges[i].collapseRows();if(!(1>=first-rows.end.row))break;first=rows.end.row}i++;for(var linesMoved=mover.call(this,first,last);rangeIndex>=i;)ranges[rangeIndex].moveBy(linesMoved,0),rangeIndex--}selection.fromOrientedRange(selection.ranges[0]),selection.rangeList.attach(this.session)}},this.$getSelectedRows=function(){var range=this.getSelectionRange().collapseRows();return{first:range.start.row,last:range.end.row}},this.onCompositionStart=function(){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(text){this.renderer.setCompositionText(text)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(row){return row>=this.getFirstVisibleRow()&&this.getLastVisibleRow()>=row},this.isRowFullyVisible=function(row){return row>=this.renderer.getFirstFullyVisibleRow()&&this.renderer.getLastFullyVisibleRow()>=row},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(dir,select){var renderer=this.renderer,config=this.renderer.layerConfig,rows=dir*Math.floor(config.height/config.lineHeight);this.$blockScrolling++,1==select?this.selection.$moveSelection(function(){this.moveCursorBy(rows,0)}):0==select&&(this.selection.moveCursorBy(rows,0),this.selection.clearSelection()),this.$blockScrolling--;var scrollTop=renderer.scrollTop;renderer.scrollBy(0,rows*config.lineHeight),null!=select&&renderer.scrollCursorIntoView(null,.5),renderer.animateScrolling(scrollTop)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(row){this.renderer.scrollToRow(row)},this.scrollToLine=function(line,center,animate,callback){this.renderer.scrollToLine(line,center,animate,callback)},this.centerSelection=function(){var range=this.getSelectionRange(),pos={row:Math.floor(range.start.row+(range.end.row-range.start.row)/2),column:Math.floor(range.start.column+(range.end.column-range.start.column)/2)};this.renderer.alignCursor(pos,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(row,column){this.selection.moveCursorTo(row,column)},this.moveCursorToPosition=function(pos){this.selection.moveCursorToPosition(pos)},this.jumpToMatching=function(select){var cursor=this.getCursorPosition(),range=this.session.getBracketRange(cursor);if(!range){if(range=this.find({needle:/[{}()\\[\\]]/g,preventScroll:!0,start:{row:cursor.row,column:cursor.column-1}}),!range)return;var pos=range.start;pos.row==cursor.row&&2>Math.abs(pos.column-cursor.column)&&(range=this.session.getBracketRange(pos))}pos=range&&range.cursor||pos,pos&&(select?range&&range.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(pos.row,pos.column):(this.clearSelection(),this.moveCursorTo(pos.row,pos.column)))},this.gotoLine=function(lineNumber,column,animate){this.selection.clearSelection(),this.session.unfold({row:lineNumber-1,column:column||0}),this.$blockScrolling+=1,this.moveCursorTo(lineNumber-1,column||0),this.$blockScrolling-=1,this.isRowFullyVisible(lineNumber-1)||this.scrollToLine(lineNumber-1,!0,animate)},this.navigateTo=function(row,column){this.clearSelection(),this.moveCursorTo(row,column)},this.navigateUp=function(times){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var selectionStart=this.selection.anchor.getPosition();return this.moveCursorToPosition(selectionStart)}this.selection.clearSelection(),times=times||1,this.selection.moveCursorBy(-times,0)},this.navigateDown=function(times){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var selectionEnd=this.selection.anchor.getPosition();return this.moveCursorToPosition(selectionEnd)}this.selection.clearSelection(),times=times||1,this.selection.moveCursorBy(times,0)},this.navigateLeft=function(times){if(this.selection.isEmpty())for(times=times||1;times--;)this.selection.moveCursorLeft();else{var selectionStart=this.getSelectionRange().start;this.moveCursorToPosition(selectionStart)}this.clearSelection()},this.navigateRight=function(times){if(this.selection.isEmpty())for(times=times||1;times--;)this.selection.moveCursorRight();else{var selectionEnd=this.getSelectionRange().end;this.moveCursorToPosition(selectionEnd)}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){var scrollTop=this.renderer.scrollTop;this.selection.moveCursorFileEnd(),this.clearSelection(),this.renderer.animateScrolling(scrollTop)},this.navigateFileStart=function(){var scrollTop=this.renderer.scrollTop;this.selection.moveCursorFileStart(),this.clearSelection(),this.renderer.animateScrolling(scrollTop)},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(replacement,options){options&&this.$search.set(options);var range=this.$search.find(this.session),replaced=0;return range?(this.$tryReplace(range,replacement)&&(replaced=1),null!==range&&(this.selection.setSelectionRange(range),this.renderer.scrollSelectionIntoView(range.start,range.end)),replaced):replaced},this.replaceAll=function(replacement,options){options&&this.$search.set(options);var ranges=this.$search.findAll(this.session),replaced=0;if(!ranges.length)return replaced;this.$blockScrolling+=1;var selection=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0);for(var i=ranges.length-1;i>=0;--i)this.$tryReplace(ranges[i],replacement)&&replaced++;return this.selection.setSelectionRange(selection),this.$blockScrolling-=1,replaced},this.$tryReplace=function(range,replacement){var input=this.session.getTextRange(range);return replacement=this.$search.replace(input,replacement),null!==replacement?(range.end=this.session.replace(range,replacement),range):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(needle,options,animate){options||(options={}),\"string\"==typeof needle||needle instanceof RegExp?options.needle=needle:\"object\"==typeof needle&&oop.mixin(options,needle);\nvar range=this.selection.getRange();null==options.needle&&(needle=this.session.getTextRange(range)||this.$search.$options.needle,needle||(range=this.session.getWordRange(range.start.row,range.start.column),needle=this.session.getTextRange(range)),this.$search.set({needle:needle})),this.$search.set(options),options.start||this.$search.set({start:range});var newRange=this.$search.find(this.session);return options.preventScroll?newRange:newRange?(this.revealRange(newRange,animate),newRange):(options.backwards?range.start=range.end:range.end=range.start,this.selection.setRange(range),void 0)},this.findNext=function(options,animate){this.find({skipCurrent:!0,backwards:!1},options,animate)},this.findPrevious=function(options,animate){this.find(options,{skipCurrent:!0,backwards:!0},animate)},this.revealRange=function(range,animate){this.$blockScrolling+=1,this.session.unfold(range),this.selection.setSelectionRange(range),this.$blockScrolling-=1;var scrollTop=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(range.start,range.end,.5),0!=animate&&this.renderer.animateScrolling(scrollTop)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._emit(\"destroy\",this)},this.setAutoScrollEditorIntoView=function(enable){if(enable!==!1){var rect,self=this,shouldScroll=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement(\"div\"));var scrollAnchor=this.$scrollAnchor;scrollAnchor.style.cssText=\"position:absolute\",this.container.insertBefore(scrollAnchor,this.container.firstChild);var onChangeSelection=this.on(\"changeSelection\",function(){shouldScroll=!0}),onBeforeRender=this.renderer.on(\"beforeRender\",function(){shouldScroll&&(rect=self.renderer.container.getBoundingClientRect())}),onAfterRender=this.renderer.on(\"afterRender\",function(){if(shouldScroll&&rect&&self.isFocused()){var renderer=self.renderer,pos=renderer.$cursorLayer.$pixelPos,config=renderer.layerConfig,top=pos.top-config.offset;shouldScroll=pos.top>=0&&0>top+rect.top?!0:pos.top\u003Cconfig.height&&pos.top+rect.top+config.lineHeight>window.innerHeight?!1:null,null!=shouldScroll&&(scrollAnchor.style.top=top+\"px\",scrollAnchor.style.left=pos.left+\"px\",scrollAnchor.style.height=config.lineHeight+\"px\",scrollAnchor.scrollIntoView(shouldScroll)),shouldScroll=rect=null}});this.setAutoScrollEditorIntoView=function(enable){enable!==!0&&(delete this.setAutoScrollEditorIntoView,this.removeEventListener(\"changeSelection\",onChangeSelection),this.renderer.removeEventListener(\"afterRender\",onAfterRender),this.renderer.removeEventListener(\"beforeRender\",onBeforeRender))}}}}).call(Editor.prototype),config.defineOptions(Editor.prototype,\"editor\",{selectionStyle:{set:function(style){this.onSelectionChange(),this._emit(\"changeSelectionStyle\",{data:style})},initialValue:\"line\"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(readOnly){this.textInput.setReadOnly(readOnly);var cursorLayer=this.renderer.$cursorLayer;cursorLayer&&cursorLayer.setBlinking(!readOnly)},initialValue:!1},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},hScrollBarAlwaysVisible:\"renderer\",highlightGutterLine:\"renderer\",animatedScroll:\"renderer\",showInvisibles:\"renderer\",showPrintMargin:\"renderer\",printMarginColumn:\"renderer\",printMargin:\"renderer\",fadeFoldWidgets:\"renderer\",showFoldWidgets:\"renderer\",showGutter:\"renderer\",displayIndentGuides:\"renderer\",fontSize:\"renderer\",fontFamily:\"renderer\",scrollSpeed:\"$mouseHandler\",dragDelay:\"$mouseHandler\",focusTimout:\"$mouseHandler\",firstLineNumber:\"session\",overwrite:\"session\",newLineMode:\"session\",useWorker:\"session\",useSoftTabs:\"session\",tabSize:\"session\",wrap:\"session\",foldStyle:\"session\"}),exports.Editor=Editor}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function(obj){if(\"object\"!=typeof obj)return obj;var copy=obj.constructor();for(var key in obj)copy[key]=\"object\"==typeof obj[key]?this.deepCopy(obj[key]):obj[key];return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/\u003C/g,\"<\")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)};return _self.delay=_self,_self.schedule=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||0))},_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\"],function(acequire,exports){var event=acequire(\"../lib/event\"),useragent=acequire(\"../lib/useragent\"),dom=acequire(\"../lib/dom\"),lang=acequire(\"../lib/lang\"),BROKEN_SETDATA=18>useragent.isChrome,TextInput=function(parentNode,host){function resetSelection(isEmpty){if(!inComposition){if(inputHandler)selectionStart=0,selectionEnd=isEmpty?0:text.value.length-1;else var selectionStart=isEmpty?2:1,selectionEnd=2;try{text.setSelectionRange(selectionStart,selectionEnd)}catch(e){}}}function resetValue(){inComposition||(text.value=PLACEHOLDER,useragent.isWebKit&&syncValue.schedule())}function onContextMenuClose(){setTimeout(function(){tempStyle&&(text.style.cssText=tempStyle,tempStyle=\"\"),null==host.renderer.$keepTextAreaAtCursor&&(host.renderer.$keepTextAreaAtCursor=!0,host.renderer.$moveTextAreaToCursor())},0)}var text=dom.createElement(\"textarea\");text.className=\"ace_text-input\",useragent.isTouchPad&&text.setAttribute(\"x-palm-disable-auto-cap\",!0),text.wrap=\"off\",text.autocorrect=\"off\",text.autocapitalize=\"off\",text.spellcheck=!1,text.style.bottom=\"2000em\",parentNode.insertBefore(text,parentNode.firstChild);var PLACEHOLDER=\"\u0001\u0001\",cut=!1,copied=!1,pasted=!1,inComposition=!1,tempStyle=\"\",isSelectionEmpty=!0;try{var isFocused=document.activeElement===text}catch(e){}event.addListener(text,\"blur\",function(){host.onBlur(),isFocused=!1}),event.addListener(text,\"focus\",function(){isFocused=!0,host.onFocus(),resetSelection()}),this.focus=function(){text.focus()},this.blur=function(){text.blur()},this.isFocused=function(){return isFocused};var syncSelection=lang.delayedCall(function(){isFocused&&resetSelection(isSelectionEmpty)}),syncValue=lang.delayedCall(function(){inComposition||(text.value=PLACEHOLDER,isFocused&&resetSelection())});useragent.isWebKit||host.addEventListener(\"changeSelection\",function(){host.selection.isEmpty()!=isSelectionEmpty&&(isSelectionEmpty=!isSelectionEmpty,syncSelection.schedule())}),resetValue(),isFocused&&host.onFocus();var isAllSelected=function(text){return 0===text.selectionStart&&text.selectionEnd===text.value.length};if(!text.setSelectionRange&&text.createTextRange&&(text.setSelectionRange=function(selectionStart,selectionEnd){var range=this.createTextRange();range.collapse(!0),range.moveStart(\"character\",selectionStart),range.moveEnd(\"character\",selectionEnd),range.select()},isAllSelected=function(text){try{var range=text.ownerDocument.selection.createRange()}catch(e){}return range&&range.parentElement()==text?range.text==text.value:!1}),useragent.isOldIE){var inPropertyChange=!1,onPropertyChange=function(e){if(!inPropertyChange){var data=text.value;if(!inComposition&&data&&data!=PLACEHOLDER){if(e&&data==PLACEHOLDER[0])return syncProperty.schedule();sendText(data),inPropertyChange=!0,resetValue(),inPropertyChange=!1}}},syncProperty=lang.delayedCall(onPropertyChange);event.addListener(text,\"propertychange\",onPropertyChange);var keytable={13:1,27:1};event.addListener(text,\"keyup\",function(e){!inComposition||text.value&&!keytable[e.keyCode]||setTimeout(onCompositionEnd,0),129>(text.value.charCodeAt(0)||0)||(inComposition?onCompositionUpdate():onCompositionStart())})}var onSelect=function(){cut?cut=!1:copied?copied=!1:isAllSelected(text)?(host.selectAll(),resetSelection()):inputHandler&&resetSelection(host.selection.isEmpty())},inputHandler=null;this.setInputHandler=function(cb){inputHandler=cb},this.getInputHandler=function(){return inputHandler};var afterContextMenu=!1,sendText=function(data){inputHandler&&(data=inputHandler(data),inputHandler=null),pasted?(resetSelection(),data&&host.onPaste(data),pasted=!1):data==PLACEHOLDER[0]?afterContextMenu&&host.execCommand(\"del\",{source:\"ace\"}):(data.substring(0,2)==PLACEHOLDER?data=data.substr(2):data[0]==PLACEHOLDER[0]?data=data.substr(1):data[data.length-1]==PLACEHOLDER[0]&&(data=data.slice(0,-1)),data[data.length-1]==PLACEHOLDER[0]&&(data=data.slice(0,-1)),data&&host.onTextInput(data)),afterContextMenu&&(afterContextMenu=!1)},onInput=function(){if(!inComposition){var data=text.value;sendText(data),resetValue()}},onCut=function(e){var data=host.getCopyText();if(!data)return event.preventDefault(e),void 0;var clipboardData=e.clipboardData||window.clipboardData;if(clipboardData&&!BROKEN_SETDATA){var supported=clipboardData.setData(\"Text\",data);supported&&(host.onCut(),event.preventDefault(e))}supported||(cut=!0,text.value=data,text.select(),setTimeout(function(){cut=!1,resetValue(),resetSelection(),host.onCut()}))},onCopy=function(e){var data=host.getCopyText();if(!data)return event.preventDefault(e),void 0;var clipboardData=e.clipboardData||window.clipboardData;if(clipboardData&&!BROKEN_SETDATA){var supported=clipboardData.setData(\"Text\",data);supported&&(host.onCopy(),event.preventDefault(e))}supported||(copied=!0,text.value=data,text.select(),setTimeout(function(){copied=!1,resetValue(),resetSelection(),host.onCopy()}))},onPaste=function(e){var clipboardData=e.clipboardData||window.clipboardData;if(clipboardData){var data=clipboardData.getData(\"Text\");data&&host.onPaste(data),useragent.isIE&&setTimeout(resetSelection),event.preventDefault(e)}else text.value=\"\",pasted=!0};event.addCommandKeyListener(text,host.onCommandKey.bind(host)),event.addListener(text,\"select\",onSelect),event.addListener(text,\"input\",onInput),event.addListener(text,\"cut\",onCut),event.addListener(text,\"copy\",onCopy),event.addListener(text,\"paste\",onPaste),\"oncut\"in text&&\"oncopy\"in text&&\"onpaste\"in text||event.addListener(parentNode,\"keydown\",function(e){if((!useragent.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:onCopy(e);break;case 86:onPaste(e);break;case 88:onCut(e)}});var onCompositionStart=function(){inComposition={},host.onCompositionStart(),setTimeout(onCompositionUpdate,0),host.on(\"mousedown\",onCompositionEnd),host.selection.isEmpty()||(host.insert(\"\"),host.session.markUndoGroup(),host.selection.clearSelection()),host.session.markUndoGroup()},onCompositionUpdate=function(){if(inComposition&&(host.onCompositionUpdate(text.value),inComposition.lastValue&&host.undo(),inComposition.lastValue=text.value.replace(/\\x01/g,\"\"),inComposition.lastValue)){var r=host.selection.getRange();host.insert(inComposition.lastValue),host.session.markUndoGroup(),inComposition.range=host.selection.getRange(),host.selection.setRange(r),host.selection.clearSelection()}},onCompositionEnd=function(e){var c=inComposition;inComposition=!1;var timer=setTimeout(function(){var str=text.value.replace(/\\x01/g,\"\");inComposition||str!=c.lastValue||resetValue()});inputHandler=function(str){return clearTimeout(timer),str=str.replace(/\\x01/g,\"\"),str==c.lastValue?\"\":(str||c.lastValue&&host.undo(),str)},host.onCompositionEnd(),host.removeListener(\"mousedown\",onCompositionEnd),\"compositionend\"==e.type&&host.selection.setRange(c.range)},syncComposition=lang.delayedCall(onCompositionUpdate,50);event.addListener(text,\"compositionstart\",onCompositionStart),event.addListener(text,useragent.isGecko?\"text\":\"keyup\",function(){syncComposition.schedule()}),event.addListener(text,\"compositionend\",onCompositionEnd),this.getElement=function(){return text},this.setReadOnly=function(readOnly){text.readOnly=readOnly},this.onContextMenu=function(e){afterContextMenu=!0,tempStyle||(tempStyle=text.style.cssText),text.style.cssText=\"z-index:100000;\"+(useragent.isIE?\"opacity:0.1;\":\"\"),resetSelection(host.selection.isEmpty()),host._emit(\"nativecontextmenu\",{target:host});var rect=host.container.getBoundingClientRect(),style=dom.computedStyle(host.container),top=rect.top+(parseInt(style.borderTopWidth)||0),left=rect.left+(parseInt(rect.borderLeftWidth)||0),maxTop=rect.bottom-top-text.clientHeight,move=function(e){text.style.left=e.clientX-left-2+\"px\",text.style.top=Math.min(e.clientY-top-2,maxTop)+\"px\"};move(e),\"mousedown\"==e.type&&(host.renderer.$keepTextAreaAtCursor&&(host.renderer.$keepTextAreaAtCursor=null),useragent.isWin&&event.capture(host.container,move,onContextMenuClose))},this.onContextMenuClose=onContextMenuClose,useragent.isGecko||event.addListener(text,\"contextmenu\",function(e){host.textInput.onContextMenu(e),onContextMenuClose()})};exports.TextInput=TextInput}),ace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop\",\"ace/config\"],function(acequire,exports){var event=acequire(\"../lib/event\"),useragent=acequire(\"../lib/useragent\"),DefaultHandlers=acequire(\"./default_handlers\").DefaultHandlers,DefaultGutterHandler=acequire(\"./default_gutter_handler\").GutterHandler,MouseEvent=acequire(\"./mouse_event\").MouseEvent,DragdropHandler=acequire(\"./dragdrop\").DragdropHandler,config=acequire(\"../config\"),MouseHandler=function(editor){this.editor=editor,new DefaultHandlers(this),new DefaultGutterHandler(this),new DragdropHandler(this),event.addListener(editor.container,\"mousedown\",function(e){return editor.focus(),event.preventDefault(e)});var mouseTarget=editor.renderer.getMouseEventTarget();event.addListener(mouseTarget,\"click\",this.onMouseEvent.bind(this,\"click\")),event.addListener(mouseTarget,\"mousemove\",this.onMouseMove.bind(this,\"mousemove\")),event.addMultiMouseDownListener(mouseTarget,[300,300,250],this,\"onMouseEvent\"),event.addMouseWheelListener(editor.container,this.onMouseWheel.bind(this,\"mousewheel\"));var gutterEl=editor.renderer.$gutter;event.addListener(gutterEl,\"mousedown\",this.onMouseEvent.bind(this,\"guttermousedown\")),event.addListener(gutterEl,\"click\",this.onMouseEvent.bind(this,\"gutterclick\")),event.addListener(gutterEl,\"dblclick\",this.onMouseEvent.bind(this,\"gutterdblclick\")),event.addListener(gutterEl,\"mousemove\",this.onMouseEvent.bind(this,\"guttermousemove\"))};(function(){this.onMouseEvent=function(name,e){this.editor._emit(name,new MouseEvent(e,this.editor))},this.onMouseMove=function(name,e){var listeners=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;listeners&&listeners.length&&this.editor._emit(name,new MouseEvent(e,this.editor))},this.onMouseWheel=function(name,e){var mouseEvent=new MouseEvent(e,this.editor);mouseEvent.speed=2*this.$scrollSpeed,mouseEvent.wheelX=e.wheelX,mouseEvent.wheelY=e.wheelY,this.editor._emit(name,mouseEvent)},this.setState=function(state){this.state=state},this.captureMouse=function(ev,state){state&&this.setState(state),this.x=ev.x,this.y=ev.y,this.isMousePressed=!0;var renderer=this.editor.renderer;renderer.$keepTextAreaAtCursor&&(renderer.$keepTextAreaAtCursor=null);var self=this,onMouseMove=function(e){self.x=e.clientX,self.y=e.clientY},onCaptureEnd=function(e){clearInterval(timerId),onCaptureInterval(),self[self.state+\"End\"]&&self[self.state+\"End\"](e),self.$clickSelection=null,null==renderer.$keepTextAreaAtCursor&&(renderer.$keepTextAreaAtCursor=!0,renderer.$moveTextAreaToCursor()),self.isMousePressed=!1,self.onMouseEvent(\"mouseup\",e)},onCaptureInterval=function(){self[self.state]&&self[self.state]()};if(useragent.isOldIE&&\"dblclick\"==ev.domEvent.type)return setTimeout(function(){onCaptureEnd(ev.domEvent)});event.capture(this.editor.container,onMouseMove,onCaptureEnd);var timerId=setInterval(onCaptureInterval,20)}}).call(MouseHandler.prototype),config.defineOptions(MouseHandler.prototype,\"mouseHandler\",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:150},focusTimout:{initialValue:0}}),exports.MouseHandler=MouseHandler}),ace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/useragent\"],function(acequire,exports){function DefaultHandlers(mouseHandler){mouseHandler.$clickSelection=null;var editor=mouseHandler.editor;editor.setDefaultHandler(\"mousedown\",this.onMouseDown.bind(mouseHandler)),editor.setDefaultHandler(\"dblclick\",this.onDoubleClick.bind(mouseHandler)),editor.setDefaultHandler(\"tripleclick\",this.onTripleClick.bind(mouseHandler)),editor.setDefaultHandler(\"quadclick\",this.onQuadClick.bind(mouseHandler)),editor.setDefaultHandler(\"mousewheel\",this.onMouseWheel.bind(mouseHandler));var exports=[\"select\",\"startSelect\",\"drag\",\"dragEnd\",\"dragWait\",\"dragWaitEnd\",\"startDrag\",\"focusWait\"];exports.forEach(function(x){mouseHandler[x]=this[x]},this),mouseHandler.selectByLines=this.extendSelectionBy.bind(mouseHandler,\"getLineRange\"),mouseHandler.selectByWords=this.extendSelectionBy.bind(mouseHandler,\"getWordRange\")}function calcDistance(ax,ay,bx,by){return Math.sqrt(Math.pow(bx-ax,2)+Math.pow(by-ay,2))}function calcRangeOrientation(range,cursor){if(range.start.row==range.end.row)var cmp=2*cursor.column-range.start.column-range.end.column;else var cmp=2*cursor.row-range.start.row-range.end.row;return 0>cmp?{cursor:range.start,anchor:range.end}:{cursor:range.end,anchor:range.start}}var dom=acequire(\"../lib/dom\");acequire(\"../lib/useragent\");var DRAG_OFFSET=0;(function(){this.onMouseDown=function(ev){var inSelection=ev.inSelection(),pos=ev.getDocumentPosition();this.mousedownEvent=ev;var editor=this.editor,button=ev.getButton();if(0!==button){var selectionRange=editor.getSelectionRange(),selectionEmpty=selectionRange.isEmpty();return selectionEmpty&&(editor.moveCursorToPosition(pos),editor.selection.clearSelection()),editor.textInput.onContextMenu(ev.domEvent),void 0}return!inSelection||editor.isFocused()||(editor.focus(),!this.$focusTimout||this.$clickSelection||editor.inMultiSelectMode)?(!inSelection||this.$clickSelection||ev.getShiftKey()||editor.inMultiSelectMode?this.startSelect(pos):inSelection&&(this.mousedownEvent.time=(new Date).getTime(),this.setState(\"dragWait\")),this.captureMouse(ev),ev.preventDefault()):(this.setState(\"focusWait\"),this.captureMouse(ev),ev.preventDefault())},this.startSelect=function(pos){pos=pos||this.editor.renderer.screenToTextCoordinates(this.x,this.y),this.mousedownEvent.getShiftKey()?this.editor.selection.selectToPosition(pos):this.$clickSelection||(this.editor.moveCursorToPosition(pos),this.editor.selection.clearSelection()),this.setState(\"select\")},this.select=function(){var anchor,editor=this.editor,cursor=editor.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var cmp=this.$clickSelection.comparePoint(cursor);if(-1==cmp)anchor=this.$clickSelection.end;else if(1==cmp)anchor=this.$clickSelection.start;else{var orientedRange=calcRangeOrientation(this.$clickSelection,cursor);cursor=orientedRange.cursor,anchor=orientedRange.anchor}editor.selection.setSelectionAnchor(anchor.row,anchor.column)}editor.selection.selectToPosition(cursor),editor.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(unitName){var anchor,editor=this.editor,cursor=editor.renderer.screenToTextCoordinates(this.x,this.y),range=editor.selection[unitName](cursor.row,cursor.column);if(this.$clickSelection){var cmpStart=this.$clickSelection.comparePoint(range.start),cmpEnd=this.$clickSelection.comparePoint(range.end);if(-1==cmpStart&&0>=cmpEnd)anchor=this.$clickSelection.end,(range.end.row!=cursor.row||range.end.column!=cursor.column)&&(cursor=range.start);else if(1==cmpEnd&&cmpStart>=0)anchor=this.$clickSelection.start,(range.start.row!=cursor.row||range.start.column!=cursor.column)&&(cursor=range.end);else if(-1==cmpStart&&1==cmpEnd)cursor=range.end,anchor=range.start;else{var orientedRange=calcRangeOrientation(this.$clickSelection,cursor);cursor=orientedRange.cursor,anchor=orientedRange.anchor}editor.selection.setSelectionAnchor(anchor.row,anchor.column)}editor.selection.selectToPosition(cursor),editor.renderer.scrollCursorIntoView()},this.startDrag=function(){var editor=this.editor;this.setState(\"drag\"),this.dragRange=editor.getSelectionRange();var style=editor.getSelectionStyle();this.dragSelectionMarker=editor.session.addMarker(this.dragRange,\"ace_selection\",style),editor.clearSelection(),dom.addCssClass(editor.container,\"ace_dragging\"),this.$dragKeybinding||(this.$dragKeybinding={handleKeyboard:function(data,hashId,keyString){return\"esc\"==keyString?{command:this.command}:void 0},command:{exec:function(editor){var self=editor.$mouseHandler;self.dragCursor=null,self.dragEnd(),self.startSelect()}}}),editor.keyBinding.addKeyboardHandler(this.$dragKeybinding)},this.focusWait=function(){var distance=calcDistance(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),time=(new Date).getTime();(distance>DRAG_OFFSET||time-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.dragWait=function(){var distance=calcDistance(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),time=(new Date).getTime(),editor=this.editor;distance>DRAG_OFFSET?this.startSelect(this.mousedownEvent.getDocumentPosition()):time-this.mousedownEvent.time>editor.$mouseHandler.$dragDelay&&this.startDrag()},this.dragWaitEnd=function(e){this.mousedownEvent.domEvent=e,this.startSelect()},this.drag=function(){var editor=this.editor;this.dragCursor=editor.renderer.screenToTextCoordinates(this.x,this.y),editor.moveCursorToPosition(this.dragCursor),editor.renderer.scrollCursorIntoView()},this.dragEnd=function(e){var editor=this.editor,dragCursor=this.dragCursor,dragRange=this.dragRange;if(dom.removeCssClass(editor.container,\"ace_dragging\"),editor.session.removeMarker(this.dragSelectionMarker),editor.keyBinding.removeKeyboardHandler(this.$dragKeybinding),dragCursor){if(editor.clearSelection(),e&&(e.ctrlKey||e.altKey)){var session=editor.session,newRange=dragRange;newRange.end=session.insert(dragCursor,session.getTextRange(dragRange)),newRange.start=dragCursor}else{if(dragRange.contains(dragCursor.row,dragCursor.column))return;var newRange=editor.moveText(dragRange,dragCursor)}newRange&&editor.selection.setSelectionRange(newRange)}},this.onDoubleClick=function(ev){var pos=ev.getDocumentPosition(),editor=this.editor,session=editor.session,range=session.getBracketRange(pos);return range?(range.isEmpty()&&(range.start.column--,range.end.column++),this.$clickSelection=range,this.setState(\"select\"),void 0):(this.$clickSelection=editor.selection.getWordRange(pos.row,pos.column),this.setState(\"selectByWords\"),void 0)},this.onTripleClick=function(ev){var pos=ev.getDocumentPosition(),editor=this.editor;this.setState(\"selectByLines\"),this.$clickSelection=editor.selection.getLineRange(pos.row)},this.onQuadClick=function(){var editor=this.editor;editor.selectAll(),this.$clickSelection=editor.getSelectionRange(),this.setState(\"null\")},this.onMouseWheel=function(ev){if(!ev.getShiftKey()&&!ev.getAccelKey()){var t=ev.domEvent.timeStamp,dt=t-(this.$lastScrollTime||0),editor=this.editor,isScrolable=editor.renderer.isScrollableBy(ev.wheelX*ev.speed,ev.wheelY*ev.speed);return isScrolable||200>dt?(this.$lastScrollTime=t,editor.renderer.scrollBy(ev.wheelX*ev.speed,ev.wheelY*ev.speed),ev.stop()):void 0}}}).call(DefaultHandlers.prototype),exports.DefaultHandlers=DefaultHandlers}),ace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\"],function(acequire,exports){function GutterHandler(mouseHandler){function createTooltip(){tooltip=dom.createElement(\"div\"),tooltip.className=\"ace_gutter-tooltip\",tooltip.style.display=\"none\",editor.container.appendChild(tooltip)}function showTooltip(){tooltip||createTooltip();var row=mouseEvent.getDocumentPosition().row,annotation=gutter.$annotations[row];if(!annotation)return hideTooltip();var maxRow=editor.session.getLength();if(row==maxRow){var screenRow=editor.renderer.pixelToScreenCoordinates(0,mouseEvent.y).row,pos=mouseEvent.$pos;if(screenRow>editor.session.documentToScreenRow(pos.row,pos.column))return hideTooltip()}tooltipAnnotation!=annotation&&(tooltipAnnotation=annotation.text.join(\"\u003Cbr/>\"),tooltip.style.display=\"block\",tooltip.innerHTML=tooltipAnnotation,editor.on(\"mousewheel\",hideTooltip),moveTooltip(mouseEvent))}function hideTooltip(){tooltipTimeout&&(tooltipTimeout=clearTimeout(tooltipTimeout)),tooltipAnnotation&&(tooltip.style.display=\"none\",tooltipAnnotation=null,editor.removeEventListener(\"mousewheel\",hideTooltip))}function moveTooltip(e){var rect=editor.renderer.$gutter.getBoundingClientRect();tooltip.style.left=e.x+15+\"px\",e.y+3*editor.renderer.lineHeight+15\u003Crect.bottom?(tooltip.style.bottom=\"\",tooltip.style.top=e.y+15+\"px\"):(tooltip.style.top=\"\",tooltip.style.bottom=rect.bottom-e.y+5+\"px\")}var editor=mouseHandler.editor,gutter=editor.renderer.$gutterLayer;mouseHandler.editor.setDefaultHandler(\"guttermousedown\",function(e){if(editor.isFocused()){var gutterRegion=gutter.getRegion(e);if(\"foldWidgets\"!=gutterRegion){var row=e.getDocumentPosition().row,selection=editor.session.selection;if(e.getShiftKey())selection.selectTo(row,0);else{if(2==e.domEvent.detail)return editor.selectAll(),e.preventDefault();mouseHandler.$clickSelection=editor.selection.getLineRange(row)}return mouseHandler.captureMouse(e,\"selectByLines\"),e.preventDefault()}}});var tooltipTimeout,mouseEvent,tooltip,tooltipAnnotation;mouseHandler.editor.setDefaultHandler(\"guttermousemove\",function(e){var target=e.domEvent.target||e.domEvent.srcElement;return dom.hasCssClass(target,\"ace_fold-widget\")?hideTooltip():(tooltipAnnotation&&moveTooltip(e),mouseEvent=e,tooltipTimeout||(tooltipTimeout=setTimeout(function(){tooltipTimeout=null,mouseEvent&&!mouseHandler.isMousePressed?showTooltip():hideTooltip()},50)),void 0)}),event.addListener(editor.renderer.$gutter,\"mouseout\",function(){mouseEvent=null,tooltipAnnotation&&!tooltipTimeout&&(tooltipTimeout=setTimeout(function(){tooltipTimeout=null,hideTooltip()},50))})}var dom=acequire(\"../lib/dom\"),event=acequire(\"../lib/event\");exports.GutterHandler=GutterHandler}),ace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"],function(acequire,exports){var event=acequire(\"../lib/event\"),useragent=acequire(\"../lib/useragent\"),MouseEvent=exports.MouseEvent=function(domEvent,editor){this.domEvent=domEvent,this.editor=editor,this.x=this.clientX=domEvent.clientX,this.y=this.clientY=domEvent.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){event.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){event.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var editor=this.editor;if(editor.getReadOnly())this.$inSelection=!1;else{var selectionRange=editor.getSelectionRange();if(selectionRange.isEmpty())this.$inSelection=!1;else{var pos=this.getDocumentPosition();this.$inSelection=selectionRange.contains(pos.row,pos.column)}}return this.$inSelection},this.getButton=function(){return event.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=useragent.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(MouseEvent.prototype)}),ace.define(\"ace/mouse/dragdrop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"],function(acequire,exports){var event=acequire(\"../lib/event\"),DragdropHandler=function(mouseHandler){function addDragMarker(){range=editor.selection.toOrientedRange(),dragSelectionMarker=editor.session.addMarker(range,\"ace_selection\",editor.getSelectionStyle()),editor.clearSelection(),clearInterval(timerId),timerId=setInterval(onDragInterval,20),counter=0,event.addListener(document,\"mousemove\",onMouseMove)}function clearDragMarker(){clearInterval(timerId),editor.session.removeMarker(dragSelectionMarker),dragSelectionMarker=null,editor.selection.fromOrientedRange(range),counter=0,event.removeListener(document,\"mousemove\",onMouseMove)}function onMouseMove(){null==onMouseMoveTimer&&(onMouseMoveTimer=setTimeout(function(){null!=onMouseMoveTimer&&dragSelectionMarker&&clearDragMarker()},20))}var dragSelectionMarker,x,y,timerId,range,dragCursor,editor=mouseHandler.editor,counter=0,mouseTarget=editor.container;event.addListener(mouseTarget,\"dragenter\",function(e){if(!editor.getReadOnly()){var types=e.dataTransfer.types;if(!types||-1!==Array.prototype.indexOf.call(types,\"text/plain\"))return dragSelectionMarker||addDragMarker(),counter++,event.preventDefault(e)}}),event.addListener(mouseTarget,\"dragover\",function(e){if(!editor.getReadOnly()){var types=e.dataTransfer.types;if(!types||-1!==Array.prototype.indexOf.call(types,\"text/plain\"))return null!==onMouseMoveTimer&&(onMouseMoveTimer=null),x=e.clientX,y=e.clientY,event.preventDefault(e)}});var onDragInterval=function(){dragCursor=editor.renderer.screenToTextCoordinates(x,y),editor.moveCursorToPosition(dragCursor),editor.renderer.scrollCursorIntoView()};event.addListener(mouseTarget,\"dragleave\",function(e){return counter--,0>=counter&&dragSelectionMarker?(clearDragMarker(),event.preventDefault(e)):void 0}),event.addListener(mouseTarget,\"drop\",function(e){return dragSelectionMarker?(range.end=editor.session.insert(dragCursor,e.dataTransfer.getData(\"Text\")),range.start=dragCursor,clearDragMarker(),editor.focus(),event.preventDefault(e)):void 0});var onMouseMoveTimer=null};exports.DragdropHandler=DragdropHandler}),ace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\"],function(acequire,exports,module){\"no use strict\";\nfunction deHyphenate(str){return str.replace(/-(.)/g,function(m,m1){return m1.toUpperCase()})}var lang=acequire(\"./lib/lang\"),oop=acequire(\"./lib/oop\"),net=acequire(\"./lib/net\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,global=function(){return this}(),options={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:\"\",suffix:\".js\",$moduleUrls:{}};exports.get=function(key){if(!options.hasOwnProperty(key))throw Error(\"Unknown config key: \"+key);return options[key]},exports.set=function(key,value){if(!options.hasOwnProperty(key))throw Error(\"Unknown config key: \"+key);options[key]=value},exports.all=function(){return lang.copyObject(options)},oop.implement(exports,EventEmitter),exports.moduleUrl=function(name,component){if(options.$moduleUrls[name])return options.$moduleUrls[name];var parts=name.split(\"/\");component=component||parts[parts.length-2]||\"\";var base=parts[parts.length-1].replace(component,\"\").replace(/(^[\\-_])|([\\-_]$)/,\"\");!base&&parts.length>1&&(base=parts[parts.length-2]);var path=options[component+\"Path\"];return null==path&&(path=options.basePath),path&&\"/\"!=path.slice(-1)&&(path+=\"/\"),path+component+\"-\"+base+this.get(\"suffix\")},exports.setModuleUrl=function(name,subst){return options.$moduleUrls[name]=subst},exports.$loading={},exports.loadModule=function(moduleName,onLoad){var module,moduleType;Array.isArray(moduleName)&&(moduleType=moduleName[0],moduleName=moduleName[1]);try{module=acequire(moduleName)}catch(e){}if(module&&!exports.$loading[moduleName])return onLoad&&onLoad(module);if(exports.$loading[moduleName]||(exports.$loading[moduleName]=[]),exports.$loading[moduleName].push(onLoad),!(exports.$loading[moduleName].length>1)){var afterLoad=function(){acequire([moduleName],function(module){exports._emit(\"load.module\",{name:moduleName,module:module});var listeners=exports.$loading[moduleName];exports.$loading[moduleName]=null,listeners.forEach(function(onLoad){onLoad&&onLoad(module)})})};return exports.get(\"packaged\")?(net.loadScript(exports.moduleUrl(moduleName,moduleType),afterLoad),void 0):afterLoad()}},exports.init=function(){if(options.packaged=acequire.packaged||module.packaged||global.define&&define.packaged,!global.document)return\"\";for(var scriptOptions={},scriptUrl=\"\",scripts=document.getElementsByTagName(\"script\"),i=0;scripts.length>i;i++){var script=scripts[i],src=script.src||script.getAttribute(\"src\");if(src){for(var attributes=script.attributes,j=0,l=attributes.length;l>j;j++){var attr=attributes[j];0===attr.name.indexOf(\"data-ace-\")&&(scriptOptions[deHyphenate(attr.name.replace(/^data-ace-/,\"\"))]=attr.value)}var m=src.match(/^(.*)\\/ace(\\-\\w+)?\\.js(\\?|$)/);m&&(scriptUrl=m[1])}}scriptUrl&&(scriptOptions.base=scriptOptions.base||scriptUrl,scriptOptions.packaged=!0),scriptOptions.basePath=scriptOptions.base,scriptOptions.workerPath=scriptOptions.workerPath||scriptOptions.base,scriptOptions.modePath=scriptOptions.modePath||scriptOptions.base,scriptOptions.themePath=scriptOptions.themePath||scriptOptions.base,delete scriptOptions.base;for(var key in scriptOptions)scriptOptions[key]!==void 0&&exports.set(key,scriptOptions[key])};var optionsProvider={setOptions:function(optList){Object.keys(optList).forEach(function(key){this.setOption(key,optList[key])},this)},getOptions:function(a){var b={};return Object.keys(a).forEach(function(key){b[key]=this.getOption(key)},this),b},setOption:function(name,value){if(this[\"$\"+name]!==value){var opt=this.$options[name];if(!opt)return void 0;if(opt.forwardTo)return this[opt.forwardTo]&&this[opt.forwardTo].setOption(name,value);opt.handlesSet||(this[\"$\"+name]=value),opt&&opt.set&&opt.set.call(this,value)}},getOption:function(name){var opt=this.$options[name];return opt?opt.forwardTo?this[opt.forwardTo]&&this[opt.forwardTo].getOption(name):opt&&opt.get?opt.get.call(this):this[\"$\"+name]:void 0}},defaultOptions={};exports.defineOptions=function(obj,path,options){return obj.$options||(defaultOptions[path]=obj.$options={}),Object.keys(options).forEach(function(key){var opt=options[key];\"string\"==typeof opt&&(opt={forwardTo:opt}),opt.name||(opt.name=key),obj.$options[opt.name]=opt,\"initialValue\"in opt&&(obj[\"$\"+opt.name]=opt.initialValue)}),oop.implement(obj,optionsProvider),this},exports.resetOptions=function(obj){Object.keys(obj.$options).forEach(function(key){var opt=obj.$options[key];\"value\"in opt&&obj.setOption(key,opt.value)})},exports.setDefaultValue=function(path,name,value){var opts=defaultOptions[path]||(defaultOptions[path]={});opts[name]&&(opts.forwardTo?exports.setDefaultValue(opts.forwardTo,name,value):opts[name].value=value)},exports.setDefaultValues=function(path,optionHash){Object.keys(optionHash).forEach(function(key){exports.setDefaultValue(path,key,optionHash[key])})}}),ace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(acequire,exports){var dom=acequire(\"./dom\");exports.get=function(url,callback){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,!0),xhr.onreadystatechange=function(){4===xhr.readyState&&callback(xhr.responseText)},xhr.send(null)},exports.loadScript=function(path,callback){var head=dom.getDocumentHead(),s=document.createElement(\"script\");s.src=path,head.appendChild(s),s.onload=s.onreadystatechange=function(_,isAbort){(isAbort||!s.readyState||\"loaded\"==s.readyState||\"complete\"==s.readyState)&&(s=s.onload=s.onreadystatechange=null,isAbort||callback())}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault);for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners)for(var i=0;listeners.length>i;i++)listeners[i](e,this)},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){if(this._defaultHandlers=this._defaultHandlers||{},this._defaultHandlers[eventName])throw Error(\"The default handler for '\"+eventName+\"' is already set\");this._defaultHandlers[eventName]=callback},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\"],function(acequire,exports){function FoldHandler(editor){editor.on(\"click\",function(e){var position=e.getDocumentPosition(),session=editor.session,fold=session.getFoldAt(position.row,position.column,1);fold&&(e.getAccelKey()?session.removeFold(fold):session.expandFold(fold),e.stop())}),editor.on(\"gutterclick\",function(e){var gutterRegion=editor.renderer.$gutterLayer.getRegion(e);if(\"foldWidgets\"==gutterRegion){var row=e.getDocumentPosition().row,session=editor.session;session.foldWidgets&&session.foldWidgets[row]&&editor.session.onFoldWidgetClick(row,e),editor.isFocused()||editor.focus(),e.stop()}}),editor.on(\"gutterdblclick\",function(e){var gutterRegion=editor.renderer.$gutterLayer.getRegion(e);if(\"foldWidgets\"==gutterRegion){var row=e.getDocumentPosition().row,session=editor.session,data=session.getParentFoldRangeData(row,!0),range=data.range||data.firstRange;if(range){var row=range.start.row,fold=session.getFoldAt(row,session.getLine(row).length,1);fold?session.removeFold(fold):(session.addFold(\"...\",range),editor.renderer.scrollCursorIntoView({row:range.start.row,column:0}))}e.stop()}})}exports.FoldHandler=FoldHandler}),ace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"],function(acequire,exports){var keyUtil=acequire(\"../lib/keys\"),event=acequire(\"../lib/event\"),KeyBinding=function(editor){this.$editor=editor,this.$data={},this.$handlers=[],this.setDefaultHandler(editor.commands)};(function(){this.setDefaultHandler=function(kb){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=kb,this.addKeyboardHandler(kb,0),this.$data={editor:this.$editor}},this.setKeyboardHandler=function(kb){var h=this.$handlers;if(h[h.length-1]!=kb){for(;h[h.length-1]&&h[h.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(h[h.length-1]);this.addKeyboardHandler(kb,1)}},this.addKeyboardHandler=function(kb,pos){if(kb){var i=this.$handlers.indexOf(kb);-1!=i&&this.$handlers.splice(i,1),void 0==pos?this.$handlers.push(kb):this.$handlers.splice(pos,0,kb),-1==i&&kb.attach&&kb.attach(this.$editor)}},this.removeKeyboardHandler=function(kb){var i=this.$handlers.indexOf(kb);return-1==i?!1:(this.$handlers.splice(i,1),kb.detach&&kb.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.$callKeyboardHandlers=function(hashId,keyString,keyCode,e){for(var toExecute,success=!1,commands=this.$editor.commands,i=this.$handlers.length;i--&&(toExecute=this.$handlers[i].handleKeyboard(this.$data,hashId,keyString,keyCode,e),!(toExecute&&toExecute.command&&(success=\"null\"==toExecute.command?1!=toExecute.passEvent:commands.exec(toExecute.command,this.$editor,toExecute.args,e),success&&e&&-1!=hashId&&event.stopEvent(e),success))););return success},this.onCommandKey=function(e,hashId,keyCode){var keyString=keyUtil.keyCodeToString(keyCode);this.$callKeyboardHandlers(hashId,keyString,keyCode,e)},this.onTextInput=function(text){var success=this.$callKeyboardHandlers(-1,text);success||this.$editor.commands.exec(\"insertstring\",this.$editor,text)}}).call(KeyBinding.prototype),exports.KeyBinding=KeyBinding}),ace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),lang=acequire(\"./lib/lang\"),config=acequire(\"./config\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Selection=acequire(\"./selection\").Selection,TextMode=acequire(\"./mode/text\").Mode,Range=acequire(\"./range\").Range,Document=acequire(\"./document\").Document,BackgroundTokenizer=acequire(\"./background_tokenizer\").BackgroundTokenizer,SearchHighlight=acequire(\"./search_highlight\").SearchHighlight,EditSession=function(text,mode){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.$foldData.toString=function(){return this.join(\"\\n\")},this.on(\"changeFold\",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),\"object\"==typeof text&&text.getLine||(text=new Document(text)),this.setDocument(text),this.selection=new Selection(this),this.setMode(mode),config.resetOptions(this),config._emit(\"session\",this)};(function(){function isFullWidth(c){return 4352>c?!1:c>=4352&&4447>=c||c>=4515&&4519>=c||c>=4602&&4607>=c||c>=9001&&9002>=c||c>=11904&&11929>=c||c>=11931&&12019>=c||c>=12032&&12245>=c||c>=12272&&12283>=c||c>=12288&&12350>=c||c>=12353&&12438>=c||c>=12441&&12543>=c||c>=12549&&12589>=c||c>=12593&&12686>=c||c>=12688&&12730>=c||c>=12736&&12771>=c||c>=12784&&12830>=c||c>=12832&&12871>=c||c>=12880&&13054>=c||c>=13056&&19903>=c||c>=19968&&42124>=c||c>=42128&&42182>=c||c>=43360&&43388>=c||c>=44032&&55203>=c||c>=55216&&55238>=c||c>=55243&&55291>=c||c>=63744&&64255>=c||c>=65040&&65049>=c||c>=65072&&65106>=c||c>=65108&&65126>=c||c>=65128&&65131>=c||c>=65281&&65376>=c||c>=65504&&65510>=c}oop.implement(this,EventEmitter),this.setDocument=function(doc){this.doc&&this.doc.removeListener(\"change\",this.$onChange),this.doc=doc,doc.on(\"change\",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(docRow){if(!docRow)return this.$docRowCache=[],this.$screenRowCache=[],void 0;var l=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,docRow)+1;l>i&&(this.$docRowCache.splice(i,l),this.$screenRowCache.splice(i,l))},this.$getRowCacheIndex=function(cacheArray,val){for(var low=0,hi=cacheArray.length-1;hi>=low;){var mid=low+hi>>1,c=cacheArray[mid];if(val>c)low=mid+1;else{if(!(c>val))return mid;hi=mid-1}}return low-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var fold=e.data;this.$resetRowCache(fold.start.row)},this.onChange=function(e){var delta=e.data;this.$modified=!0,this.$resetRowCache(delta.range.start.row);var removedFolds=this.$updateInternalDataOnChange(e);this.$fromUndo||!this.$undoManager||delta.ignore||(this.$deltasDoc.push(delta),removedFolds&&0!=removedFolds.length&&this.$deltasFold.push({action:\"removeFolds\",folds:removedFolds}),this.$informUndoManager.schedule()),this.bgTokenizer.$updateOnChange(delta),this._emit(\"change\",e)},this.setValue=function(text){this.doc.setValue(text),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(row){return this.bgTokenizer.getState(row)},this.getTokens=function(row){return this.bgTokenizer.getTokens(row)},this.getTokenAt=function(row,column){var token,tokens=this.bgTokenizer.getTokens(row),c=0;if(null==column)i=tokens.length-1,c=this.getLine(row).length;else for(var i=0;tokens.length>i&&(c+=tokens[i].value.length,!(c>=column));i++);return(token=tokens[i])?(token.index=i,token.start=c-token.value.length,token):null},this.setUndoManager=function(undoManager){if(this.$undoManager=undoManager,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),undoManager){var self=this;this.$syncInformUndoManager=function(){self.$informUndoManager.cancel(),self.$deltasFold.length&&(self.$deltas.push({group:\"fold\",deltas:self.$deltasFold}),self.$deltasFold=[]),self.$deltasDoc.length&&(self.$deltas.push({group:\"doc\",deltas:self.$deltasDoc}),self.$deltasDoc=[]),self.$deltas.length>0&&undoManager.execute({action:\"aceupdate\",args:[self.$deltas,self]}),self.$deltas=[]},this.$informUndoManager=lang.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?lang.stringRepeat(\" \",this.getTabSize()):\"\t\"},this.setUseSoftTabs=function(val){this.setOption(\"useSoftTabs\",val)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.setTabSize=function(tabSize){this.setOption(\"tabSize\",tabSize)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(position){return this.$useSoftTabs&&0==position.column%this.$tabSize},this.$overwrite=!1,this.setOverwrite=function(overwrite){this.setOption(\"overwrite\",overwrite)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(row,className){this.$decorations[row]||(this.$decorations[row]=\"\"),this.$decorations[row]+=\" \"+className,this._emit(\"changeBreakpoint\",{})},this.removeGutterDecoration=function(row,className){this.$decorations[row]=(this.$decorations[row]||\"\").replace(\" \"+className,\"\"),this._emit(\"changeBreakpoint\",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(rows){this.$breakpoints=[];for(var i=0;rows.length>i;i++)this.$breakpoints[rows[i]]=\"ace_breakpoint\";this._emit(\"changeBreakpoint\",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._emit(\"changeBreakpoint\",{})},this.setBreakpoint=function(row,className){void 0===className&&(className=\"ace_breakpoint\"),className?this.$breakpoints[row]=className:delete this.$breakpoints[row],this._emit(\"changeBreakpoint\",{})},this.clearBreakpoint=function(row){delete this.$breakpoints[row],this._emit(\"changeBreakpoint\",{})},this.addMarker=function(range,clazz,type,inFront){var id=this.$markerId++,marker={range:range,type:type||\"line\",renderer:\"function\"==typeof type?type:null,clazz:clazz,inFront:!!inFront,id:id};return inFront?(this.$frontMarkers[id]=marker,this._emit(\"changeFrontMarker\")):(this.$backMarkers[id]=marker,this._emit(\"changeBackMarker\")),id},this.addDynamicMarker=function(marker,inFront){if(marker.update){var id=this.$markerId++;return marker.id=id,marker.inFront=!!inFront,inFront?(this.$frontMarkers[id]=marker,this._emit(\"changeFrontMarker\")):(this.$backMarkers[id]=marker,this._emit(\"changeBackMarker\")),marker}},this.removeMarker=function(markerId){var marker=this.$frontMarkers[markerId]||this.$backMarkers[markerId];if(marker){var markers=marker.inFront?this.$frontMarkers:this.$backMarkers;marker&&(delete markers[markerId],this._emit(marker.inFront?\"changeFrontMarker\":\"changeBackMarker\"))}},this.getMarkers=function(inFront){return inFront?this.$frontMarkers:this.$backMarkers},this.highlight=function(re){if(!this.$searchHighlight){var highlight=new SearchHighlight(null,\"ace_selected-word\",\"text\");this.$searchHighlight=this.addDynamicMarker(highlight)}this.$searchHighlight.setRegexp(re)},this.highlightLines=function(startRow,endRow,clazz,inFront){\"number\"!=typeof endRow&&(clazz=endRow,endRow=startRow),clazz||(clazz=\"ace_step\");var range=new Range(startRow,0,endRow,1/0);return range.id=this.addMarker(range,clazz,\"fullLine\",inFront),range},this.setAnnotations=function(annotations){this.$annotations=annotations,this._emit(\"changeAnnotation\",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r?\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\"},this.getWordRange=function(row,column){var line=this.getLine(row),inToken=!1;if(column>0&&(inToken=!!line.charAt(column-1).match(this.tokenRe)),inToken||(inToken=!!line.charAt(column).match(this.tokenRe)),inToken)var re=this.tokenRe;else if(/^\\s+$/.test(line.slice(column-1,column+1)))var re=/\\s/;else var re=this.nonTokenRe;var start=column;if(start>0){do start--;while(start>=0&&line.charAt(start).match(re));start++}for(var end=column;line.length>end&&line.charAt(end).match(re);)end++;return new Range(row,start,row,end)},this.getAWordRange=function(row,column){for(var wordRange=this.getWordRange(row,column),line=this.getLine(wordRange.end.row);line.charAt(wordRange.end.column).match(/[ \\t]/);)wordRange.end.column+=1;return wordRange},this.setNewLineMode=function(newLineMode){this.doc.setNewLineMode(newLineMode)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(useWorker){this.setOption(\"useWorker\",useWorker)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var rows=e.data;this.bgTokenizer.start(rows.first),this._emit(\"tokenizerUpdate\",e)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(mode){if(mode&&\"object\"==typeof mode){if(mode.getTokenizer)return this.$onChangeMode(mode);var options=mode,path=options.path}else path=mode||\"ace/mode/text\";return this.$modes[\"ace/mode/text\"]||(this.$modes[\"ace/mode/text\"]=new TextMode),this.$modes[path]&&!options?this.$onChangeMode(this.$modes[path]):(this.$modeId=path,config.loadModule([\"mode\",path],function(m){return this.$modeId===path?this.$modes[path]&&!options?this.$onChangeMode(this.$modes[path]):(m&&m.Mode&&(m=new m.Mode(options),options||(this.$modes[path]=m,m.$id=path),this.$onChangeMode(m)),void 0):void 0}.bind(this)),this.$mode||this.$onChangeMode(this.$modes[\"ace/mode/text\"],!0),void 0)},this.$onChangeMode=function(mode,$isPlaceholder){if(this.$mode!==mode){this.$mode=mode,this.$stopWorker(),this.$useWorker&&this.$startWorker();var tokenizer=mode.getTokenizer();if(void 0!==tokenizer.addEventListener){var onReloadTokenizer=this.onReloadTokenizer.bind(this);tokenizer.addEventListener(\"update\",onReloadTokenizer)}if(this.bgTokenizer)this.bgTokenizer.setTokenizer(tokenizer);else{this.bgTokenizer=new BackgroundTokenizer(tokenizer);var _self=this;this.bgTokenizer.addEventListener(\"update\",function(e){_self._emit(\"tokenizerUpdate\",e)})}this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=mode.tokenRe,this.nonTokenRe=mode.nonTokenRe,$isPlaceholder||(this.$modeId=mode.$id,this.$setFolding(mode.foldingRules),this._emit(\"changeMode\"),this.bgTokenizer.start(0))}},this.$stopWorker=function(){this.$worker&&this.$worker.terminate(),this.$worker=null},this.$startWorker=function(){if(\"undefined\"==typeof Worker||acequire.noWorker)this.$worker=null;else try{this.$worker=this.$mode.createWorker(this)}catch(e){console.log(\"Could not load worker\"),console.log(e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(scrollTop){scrollTop=Math.round(Math.max(0,scrollTop)),this.$scrollTop===scrollTop||isNaN(scrollTop)||(this.$scrollTop=scrollTop,this._signal(\"changeScrollTop\",scrollTop))},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(scrollLeft){scrollLeft=Math.round(Math.max(0,scrollLeft)),this.$scrollLeft===scrollLeft||isNaN(scrollLeft)||(this.$scrollLeft=scrollLeft,this._signal(\"changeScrollLeft\",scrollLeft))},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.screenWidth},this.$computeWidth=function(force){if(this.$modified||force){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var lines=this.doc.getAllLines(),cache=this.$rowLengthCache,longestScreenLine=0,foldIndex=0,foldLine=this.$foldData[foldIndex],foldStart=foldLine?foldLine.start.row:1/0,len=lines.length,i=0;len>i;i++){if(i>foldStart){if(i=foldLine.end.row+1,i>=len)break;foldLine=this.$foldData[foldIndex++],foldStart=foldLine?foldLine.start.row:1/0}null==cache[i]&&(cache[i]=this.$getStringScreenWidth(lines[i])[0]),cache[i]>longestScreenLine&&(longestScreenLine=cache[i])}this.screenWidth=longestScreenLine}},this.getLine=function(row){return this.doc.getLine(row)},this.getLines=function(firstRow,lastRow){return this.doc.getLines(firstRow,lastRow)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(range){return this.doc.getTextRange(range||this.selection.getRange())},this.insert=function(position,text){return this.doc.insert(position,text)},this.remove=function(range){return this.doc.remove(range)},this.undoChanges=function(deltas,dontSelect){if(deltas.length){this.$fromUndo=!0;for(var lastUndoRange=null,i=deltas.length-1;-1!=i;i--){var delta=deltas[i];\"doc\"==delta.group?(this.doc.revertDeltas(delta.deltas),lastUndoRange=this.$getUndoSelection(delta.deltas,!0,lastUndoRange)):delta.deltas.forEach(function(foldDelta){this.addFolds(foldDelta.folds)},this)}return this.$fromUndo=!1,lastUndoRange&&this.$undoSelect&&!dontSelect&&this.selection.setSelectionRange(lastUndoRange),lastUndoRange}},this.redoChanges=function(deltas,dontSelect){if(deltas.length){this.$fromUndo=!0;for(var lastUndoRange=null,i=0;deltas.length>i;i++){var delta=deltas[i];\"doc\"==delta.group&&(this.doc.applyDeltas(delta.deltas),lastUndoRange=this.$getUndoSelection(delta.deltas,!1,lastUndoRange))}return this.$fromUndo=!1,lastUndoRange&&this.$undoSelect&&!dontSelect&&this.selection.setSelectionRange(lastUndoRange),lastUndoRange}},this.setUndoSelect=function(enable){this.$undoSelect=enable},this.$getUndoSelection=function(deltas,isUndo,lastUndoRange){function isInsert(delta){var insert=\"insertText\"===delta.action||\"insertLines\"===delta.action;return isUndo?!insert:insert}var range,point,delta=deltas[0],lastDeltaIsInsert=!1;isInsert(delta)?(range=delta.range.clone(),lastDeltaIsInsert=!0):(range=Range.fromPoints(delta.range.start,delta.range.start),lastDeltaIsInsert=!1);for(var i=1;deltas.length>i;i++)delta=deltas[i],isInsert(delta)?(point=delta.range.start,-1==range.compare(point.row,point.column)&&range.setStart(delta.range.start),point=delta.range.end,1==range.compare(point.row,point.column)&&range.setEnd(delta.range.end),lastDeltaIsInsert=!0):(point=delta.range.start,-1==range.compare(point.row,point.column)&&(range=Range.fromPoints(delta.range.start,delta.range.start)),lastDeltaIsInsert=!1);if(null!=lastUndoRange){var cmp=lastUndoRange.compareRange(range);1==cmp?range.setStart(lastUndoRange.start):-1==cmp&&range.setEnd(lastUndoRange.end)}return range},this.replace=function(range,text){return this.doc.replace(range,text)},this.moveText=function(fromRange,toPosition,copy){var text=this.getTextRange(fromRange),folds=this.getFoldsInRange(fromRange),toRange=Range.fromPoints(toPosition,toPosition);if(!copy){this.remove(fromRange);var rowDiff=fromRange.start.row-fromRange.end.row,collDiff=rowDiff?-fromRange.end.column:fromRange.start.column-fromRange.end.column;collDiff&&(toRange.start.row==fromRange.end.row&&toRange.start.column>fromRange.end.column&&(toRange.start.column+=collDiff),toRange.end.row==fromRange.end.row&&toRange.end.column>fromRange.end.column&&(toRange.end.column+=collDiff)),rowDiff&&toRange.start.row>=fromRange.end.row&&(toRange.start.row+=rowDiff,toRange.end.row+=rowDiff)}if(this.insert(toRange.start,text),folds.length){var oldStart=fromRange.start,newStart=toRange.start,rowDiff=newStart.row-oldStart.row,collDiff=newStart.column-oldStart.column;this.addFolds(folds.map(function(x){return x=x.clone(),x.start.row==oldStart.row&&(x.start.column+=collDiff),x.end.row==oldStart.row&&(x.end.column+=collDiff),x.start.row+=rowDiff,x.end.row+=rowDiff,x}))}return toRange},this.indentRows=function(startRow,endRow,indentString){indentString=indentString.replace(/\\t/g,this.getTabString());for(var row=startRow;endRow>=row;row++)this.insert({row:row,column:0},indentString)},this.outdentRows=function(range){for(var rowRange=range.collapseRows(),deleteRange=new Range(0,0,0,0),size=this.getTabSize(),i=rowRange.start.row;rowRange.end.row>=i;++i){var line=this.getLine(i);deleteRange.start.row=i,deleteRange.end.row=i;for(var j=0;size>j&&\" \"==line.charAt(j);++j);size>j&&\"\t\"==line.charAt(j)?(deleteRange.start.column=j,deleteRange.end.column=j+1):(deleteRange.start.column=0,deleteRange.end.column=j),this.remove(deleteRange)}},this.$moveLines=function(firstRow,lastRow,dir){if(firstRow=this.getRowFoldStart(firstRow),lastRow=this.getRowFoldEnd(lastRow),0>dir){var row=this.getRowFoldStart(firstRow+dir);if(0>row)return 0;var diff=row-firstRow}else if(dir>0){var row=this.getRowFoldEnd(lastRow+dir);if(row>this.doc.getLength()-1)return 0;var diff=row-lastRow}else{firstRow=this.$clipRowToDocument(firstRow),lastRow=this.$clipRowToDocument(lastRow);var diff=lastRow-firstRow+1}var range=new Range(firstRow,0,lastRow,Number.MAX_VALUE),folds=this.getFoldsInRange(range).map(function(x){return x=x.clone(),x.start.row+=diff,x.end.row+=diff,x}),lines=0==dir?this.doc.getLines(firstRow,lastRow):this.doc.removeLines(firstRow,lastRow);return this.doc.insertLines(firstRow+diff,lines),folds.length&&this.addFolds(folds),diff},this.moveLinesUp=function(firstRow,lastRow){return this.$moveLines(firstRow,lastRow,-1)},this.moveLinesDown=function(firstRow,lastRow){return this.$moveLines(firstRow,lastRow,1)},this.duplicateLines=function(firstRow,lastRow){return this.$moveLines(firstRow,lastRow,0)},this.$clipRowToDocument=function(row){return Math.max(0,Math.min(row,this.doc.getLength()-1))},this.$clipColumnToRow=function(row,column){return 0>column?0:Math.min(this.doc.getLine(row).length,column)},this.$clipPositionToDocument=function(row,column){if(column=Math.max(0,column),0>row)row=0,column=0;else{var len=this.doc.getLength();row>=len?(row=len-1,column=this.doc.getLine(len-1).length):column=Math.min(this.doc.getLine(row).length,column)}return{row:row,column:column}},this.$clipRangeToDocument=function(range){0>range.start.row?(range.start.row=0,range.start.column=0):range.start.column=this.$clipColumnToRow(range.start.row,range.start.column);var len=this.doc.getLength()-1;return range.end.row>len?(range.end.row=len,range.end.column=this.doc.getLine(len).length):range.end.column=this.$clipColumnToRow(range.end.row,range.end.column),range},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(useWrapMode){if(useWrapMode!=this.$useWrapMode){if(this.$useWrapMode=useWrapMode,this.$modified=!0,this.$resetRowCache(0),useWrapMode){var len=this.getLength();this.$wrapData=[];for(var i=0;len>i;i++)this.$wrapData.push([]);this.$updateWrapData(0,len-1)}this._emit(\"changeWrapMode\")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(min,max){(this.$wrapLimitRange.min!==min||this.$wrapLimitRange.max!==max)&&(this.$wrapLimitRange.min=min,this.$wrapLimitRange.max=max,this.$modified=!0,this._emit(\"changeWrapMode\"))},this.adjustWrapLimit=function(desiredLimit,$printMargin){var limits=this.$wrapLimitRange;0>limits.max&&(limits={min:$printMargin,max:$printMargin});var wrapLimit=this.$constrainWrapLimit(desiredLimit,limits.min,limits.max);return wrapLimit!=this.$wrapLimit&&wrapLimit>1?(this.$wrapLimit=wrapLimit,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._emit(\"changeWrapLimit\")),!0):!1},this.$constrainWrapLimit=function(wrapLimit,min,max){return min&&(wrapLimit=Math.max(min,wrapLimit)),max&&(wrapLimit=Math.min(max,wrapLimit)),wrapLimit},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var len,useWrapMode=this.$useWrapMode,action=e.data.action,firstRow=e.data.range.start.row,lastRow=e.data.range.end.row,start=e.data.range.start,end=e.data.range.end,removedFolds=null;if(-1!=action.indexOf(\"Lines\")?(lastRow=\"insertLines\"==action?firstRow+e.data.lines.length:firstRow,len=e.data.lines?e.data.lines.length:lastRow-firstRow):len=lastRow-firstRow,this.$updating=!0,0!=len)if(-1!=action.indexOf(\"remove\")){this[useWrapMode?\"$wrapData\":\"$rowLengthCache\"].splice(firstRow,len);var foldLines=this.$foldData;removedFolds=this.getFoldsInRange(e.data.range),this.removeFolds(removedFolds);var foldLine=this.getFoldLine(end.row),idx=0;if(foldLine){foldLine.addRemoveChars(end.row,end.column,start.column-end.column),foldLine.shiftRow(-len);var foldLineBefore=this.getFoldLine(firstRow);foldLineBefore&&foldLineBefore!==foldLine&&(foldLineBefore.merge(foldLine),foldLine=foldLineBefore),idx=foldLines.indexOf(foldLine)+1\n}for(idx;foldLines.length>idx;idx++){var foldLine=foldLines[idx];foldLine.start.row>=end.row&&foldLine.shiftRow(-len)}lastRow=firstRow}else{var args;if(useWrapMode){args=[firstRow,0];for(var i=0;len>i;i++)args.push([]);this.$wrapData.splice.apply(this.$wrapData,args)}else args=Array(len),args.unshift(firstRow,0),this.$rowLengthCache.splice.apply(this.$rowLengthCache,args);var foldLines=this.$foldData,foldLine=this.getFoldLine(firstRow),idx=0;if(foldLine){var cmp=foldLine.range.compareInside(start.row,start.column);0==cmp?(foldLine=foldLine.split(start.row,start.column),foldLine.shiftRow(len),foldLine.addRemoveChars(lastRow,0,end.column-start.column)):-1==cmp&&(foldLine.addRemoveChars(firstRow,0,end.column-start.column),foldLine.shiftRow(len)),idx=foldLines.indexOf(foldLine)+1}for(idx;foldLines.length>idx;idx++){var foldLine=foldLines[idx];foldLine.start.row>=firstRow&&foldLine.shiftRow(len)}}else{len=Math.abs(e.data.range.start.column-e.data.range.end.column),-1!=action.indexOf(\"remove\")&&(removedFolds=this.getFoldsInRange(e.data.range),this.removeFolds(removedFolds),len=-len);var foldLine=this.getFoldLine(firstRow);foldLine&&foldLine.addRemoveChars(firstRow,start.column,len)}return useWrapMode&&this.$wrapData.length!=this.doc.getLength()&&console.error(\"doc.getLength() and $wrapData.length have to be the same!\"),this.$updating=!1,useWrapMode?this.$updateWrapData(firstRow,lastRow):this.$updateRowLengthCache(firstRow,lastRow),removedFolds},this.$updateRowLengthCache=function(firstRow,lastRow){this.$rowLengthCache[firstRow]=null,this.$rowLengthCache[lastRow]=null},this.$updateWrapData=function(firstRow,lastRow){var tokens,foldLine,lines=this.doc.getAllLines(),tabSize=this.getTabSize(),wrapData=this.$wrapData,wrapLimit=this.$wrapLimit,row=firstRow;for(lastRow=Math.min(lastRow,lines.length-1);lastRow>=row;)if(foldLine=this.getFoldLine(row,foldLine)){for(tokens=[],foldLine.walk(function(placeholder,row,column,lastColumn){var walkTokens;if(null!=placeholder){walkTokens=this.$getDisplayTokens(placeholder,tokens.length),walkTokens[0]=PLACEHOLDER_START;for(var i=1;walkTokens.length>i;i++)walkTokens[i]=PLACEHOLDER_BODY}else walkTokens=this.$getDisplayTokens(lines[row].substring(lastColumn,column),tokens.length);tokens=tokens.concat(walkTokens)}.bind(this),foldLine.end.row,lines[foldLine.end.row].length+1);0!=tokens.length&&tokens[tokens.length-1]>=SPACE;)tokens.pop();wrapData[foldLine.start.row]=this.$computeWrapSplits(tokens,wrapLimit,tabSize),row=foldLine.end.row+1}else tokens=this.$getDisplayTokens(lang.stringTrimRight(lines[row])),wrapData[row]=this.$computeWrapSplits(tokens,wrapLimit,tabSize),row++};var CHAR=1,CHAR_EXT=2,PLACEHOLDER_START=3,PLACEHOLDER_BODY=4,PUNCTUATION=9,SPACE=10,TAB=11,TAB_SPACE=12;this.$computeWrapSplits=function(tokens,wrapLimit){function addSplit(screenPos){var displayed=tokens.slice(lastSplit,screenPos),len=displayed.length;displayed.join(\"\").replace(/12/g,function(){len-=1}).replace(/2/g,function(){len-=1}),lastDocSplit+=len,splits.push(lastDocSplit),lastSplit=screenPos}if(0==tokens.length)return[];for(var splits=[],displayLength=tokens.length,lastSplit=0,lastDocSplit=0;displayLength-lastSplit>wrapLimit;){var split=lastSplit+wrapLimit;if(tokens[split]>=SPACE){for(;tokens[split]>=SPACE;)split++;addSplit(split)}else if(tokens[split]!=PLACEHOLDER_START&&tokens[split]!=PLACEHOLDER_BODY){for(var minSplit=Math.max(split-10,lastSplit-1);split>minSplit&&PLACEHOLDER_START>tokens[split];)split--;for(;split>minSplit&&tokens[split]==PUNCTUATION;)split--;split>minSplit?addSplit(++split):(split=lastSplit+wrapLimit,addSplit(split))}else{for(split;split!=lastSplit-1&&tokens[split]!=PLACEHOLDER_START;split--);if(split>lastSplit){addSplit(split);continue}for(split=lastSplit+wrapLimit;tokens.length>split&&tokens[split]==PLACEHOLDER_BODY;split++);if(split==tokens.length)break;addSplit(split)}}return splits},this.$getDisplayTokens=function(str,offset){var tabSize,arr=[];offset=offset||0;for(var i=0;str.length>i;i++){var c=str.charCodeAt(i);if(9==c){tabSize=this.getScreenTabSize(arr.length+offset),arr.push(TAB);for(var n=1;tabSize>n;n++)arr.push(TAB_SPACE)}else 32==c?arr.push(SPACE):c>39&&48>c||c>57&&64>c?arr.push(PUNCTUATION):c>=4352&&isFullWidth(c)?arr.push(CHAR,CHAR_EXT):arr.push(CHAR)}return arr},this.$getStringScreenWidth=function(str,maxScreenColumn,screenColumn){if(0==maxScreenColumn)return[0,0];null==maxScreenColumn&&(maxScreenColumn=1/0),screenColumn=screenColumn||0;var c,column;for(column=0;str.length>column&&(c=str.charCodeAt(column),screenColumn+=9==c?this.getScreenTabSize(screenColumn):c>=4352&&isFullWidth(c)?2:1,!(screenColumn>maxScreenColumn));column++);return[screenColumn,column]},this.getRowLength=function(row){return this.$useWrapMode&&this.$wrapData[row]?this.$wrapData[row].length+1:1},this.getScreenLastRowColumn=function(screenRow){var pos=this.screenToDocumentPosition(screenRow,Number.MAX_VALUE);return this.documentToScreenColumn(pos.row,pos.column)},this.getDocumentLastRowColumn=function(docRow,docColumn){var screenRow=this.documentToScreenRow(docRow,docColumn);return this.getScreenLastRowColumn(screenRow)},this.getDocumentLastRowColumnPosition=function(docRow,docColumn){var screenRow=this.documentToScreenRow(docRow,docColumn);return this.screenToDocumentPosition(screenRow,Number.MAX_VALUE/10)},this.getRowSplitData=function(row){return this.$useWrapMode?this.$wrapData[row]:void 0},this.getScreenTabSize=function(screenColumn){return this.$tabSize-screenColumn%this.$tabSize},this.screenToDocumentRow=function(screenRow,screenColumn){return this.screenToDocumentPosition(screenRow,screenColumn).row},this.screenToDocumentColumn=function(screenRow,screenColumn){return this.screenToDocumentPosition(screenRow,screenColumn).column},this.screenToDocumentPosition=function(screenRow,screenColumn){if(0>screenRow)return{row:0,column:0};var line,column,docRow=0,docColumn=0,row=0,rowLength=0,rowCache=this.$screenRowCache,i=this.$getRowCacheIndex(rowCache,screenRow),l=rowCache.length;if(l&&i>=0)var row=rowCache[i],docRow=this.$docRowCache[i],doCache=screenRow>rowCache[l-1];else var doCache=!l;for(var maxRow=this.getLength()-1,foldLine=this.getNextFoldLine(docRow),foldStart=foldLine?foldLine.start.row:1/0;screenRow>=row&&(rowLength=this.getRowLength(docRow),!(row+rowLength-1>=screenRow||docRow>=maxRow));)row+=rowLength,docRow++,docRow>foldStart&&(docRow=foldLine.end.row+1,foldLine=this.getNextFoldLine(docRow,foldLine),foldStart=foldLine?foldLine.start.row:1/0),doCache&&(this.$docRowCache.push(docRow),this.$screenRowCache.push(row));if(foldLine&&docRow>=foldLine.start.row)line=this.getFoldDisplayLine(foldLine),docRow=foldLine.start.row;else{if(screenRow>=row+rowLength||docRow>maxRow)return{row:maxRow,column:this.getLine(maxRow).length};line=this.getLine(docRow),foldLine=null}if(this.$useWrapMode){var splits=this.$wrapData[docRow];splits&&(column=splits[screenRow-row],screenRow>row&&splits.length&&(docColumn=splits[screenRow-row-1]||splits[splits.length-1],line=line.substring(docColumn)))}return docColumn+=this.$getStringScreenWidth(line,screenColumn)[1],this.$useWrapMode&&docColumn>=column&&(docColumn=column-1),foldLine?foldLine.idxToPosition(docColumn):{row:docRow,column:docColumn}},this.documentToScreenPosition=function(docRow,docColumn){if(docColumn===void 0)var pos=this.$clipPositionToDocument(docRow.row,docRow.column);else pos=this.$clipPositionToDocument(docRow,docColumn);docRow=pos.row,docColumn=pos.column;var screenRow=0,foldStartRow=null,fold=null;fold=this.getFoldAt(docRow,docColumn,1),fold&&(docRow=fold.start.row,docColumn=fold.start.column);var rowEnd,row=0,rowCache=this.$docRowCache,i=this.$getRowCacheIndex(rowCache,docRow),l=rowCache.length;if(l&&i>=0)var row=rowCache[i],screenRow=this.$screenRowCache[i],doCache=docRow>rowCache[l-1];else var doCache=!l;for(var foldLine=this.getNextFoldLine(row),foldStart=foldLine?foldLine.start.row:1/0;docRow>row;){if(row>=foldStart){if(rowEnd=foldLine.end.row+1,rowEnd>docRow)break;foldLine=this.getNextFoldLine(rowEnd,foldLine),foldStart=foldLine?foldLine.start.row:1/0}else rowEnd=row+1;screenRow+=this.getRowLength(row),row=rowEnd,doCache&&(this.$docRowCache.push(row),this.$screenRowCache.push(screenRow))}var textLine=\"\";if(foldLine&&row>=foldStart?(textLine=this.getFoldDisplayLine(foldLine,docRow,docColumn),foldStartRow=foldLine.start.row):(textLine=this.getLine(docRow).substring(0,docColumn),foldStartRow=docRow),this.$useWrapMode){for(var wrapRow=this.$wrapData[foldStartRow],screenRowOffset=0;textLine.length>=wrapRow[screenRowOffset];)screenRow++,screenRowOffset++;textLine=textLine.substring(wrapRow[screenRowOffset-1]||0,textLine.length)}return{row:screenRow,column:this.$getStringScreenWidth(textLine)[0]}},this.documentToScreenColumn=function(row,docColumn){return this.documentToScreenPosition(row,docColumn).column},this.documentToScreenRow=function(docRow,docColumn){return this.documentToScreenPosition(docRow,docColumn).row},this.getScreenLength=function(){var screenRows=0,fold=null;if(this.$useWrapMode)for(var lastRow=this.$wrapData.length,row=0,i=0,fold=this.$foldData[i++],foldStart=fold?fold.start.row:1/0;lastRow>row;)screenRows+=this.$wrapData[row].length+1,row++,row>foldStart&&(row=fold.end.row+1,fold=this.$foldData[i++],foldStart=fold?fold.start.row:1/0);else{screenRows=this.getLength();for(var foldData=this.$foldData,i=0;foldData.length>i;i++)fold=foldData[i],screenRows-=fold.end.row-fold.start.row}return screenRows}}).call(EditSession.prototype),acequire(\"./edit_session/folding\").Folding.call(EditSession.prototype),acequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype),config.defineOptions(EditSession.prototype,\"session\",{wrap:{set:function(value){if(value&&\"off\"!=value?\"free\"==value?value=!0:\"printMargin\"==value?value=-1:\"string\"==typeof value&&(value=parseInt(value,10)||!1):value=!1,this.$wrap!=value){if(value){var col=\"number\"==typeof value?value:null;this.setWrapLimitRange(col,col),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1);this.$wrap=value}},get:function(){return this.getUseWrapMode()?this.getWrapLimitRange().min||\"free\":\"off\"},handlesSet:!0},firstLineNumber:{set:function(){this._emit(\"changeBreakpoint\")},initialValue:1},useWorker:{set:function(useWorker){this.$useWorker=useWorker,this.$stopWorker(),useWorker&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(tabSize){isNaN(tabSize)||this.$tabSize===tabSize||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=tabSize,this._emit(\"changeTabSize\"))},initialValue:4,handlesSet:!0},overwrite:{set:function(){this._emit(\"changeOverwrite\")},initialValue:!1},newLineMode:{set:function(val){this.doc.setNewLineMode(val)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0}}),exports.EditSession=EditSession}),ace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),lang=acequire(\"./lib/lang\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Selection=function(session){this.session=session,this.doc=session.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var self=this;this.lead.on(\"change\",function(e){self._emit(\"changeCursor\"),self.$isEmpty||self._emit(\"changeSelection\"),self.$keepDesiredColumnOnChange||e.old.column==e.value.column||(self.$desiredColumn=null)}),this.selectionAnchor.on(\"change\",function(){self.$isEmpty||self._emit(\"changeSelection\")})};(function(){oop.implement(this,EventEmitter),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(row,column){this.anchor.setPosition(row,column),this.$isEmpty&&(this.$isEmpty=!1,this._emit(\"changeSelection\"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(columns){if(this.$isEmpty)return this.moveCursorTo(this.lead.row,this.lead.column+columns),void 0;var anchor=this.getSelectionAnchor(),lead=this.getSelectionLead(),isBackwards=this.isBackwards();isBackwards&&0===anchor.column||this.setSelectionAnchor(anchor.row,anchor.column+columns),(isBackwards||0!==lead.column)&&this.$moveSelection(function(){this.moveCursorTo(lead.row,lead.column+columns)})},this.isBackwards=function(){var anchor=this.anchor,lead=this.lead;return anchor.row>lead.row||anchor.row==lead.row&&anchor.column>lead.column},this.getRange=function(){var anchor=this.anchor,lead=this.lead;return this.isEmpty()?Range.fromPoints(lead,lead):this.isBackwards()?Range.fromPoints(lead,anchor):Range.fromPoints(anchor,lead)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit(\"changeSelection\"))},this.selectAll=function(){var lastRow=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(lastRow,this.doc.getLine(lastRow).length)},this.setRange=this.setSelectionRange=function(range,reverse){reverse?(this.setSelectionAnchor(range.end.row,range.end.column),this.selectTo(range.start.row,range.start.column)):(this.setSelectionAnchor(range.start.row,range.start.column),this.selectTo(range.end.row,range.end.column)),this.$desiredColumn=null},this.$moveSelection=function(mover){var lead=this.lead;this.$isEmpty&&this.setSelectionAnchor(lead.row,lead.column),mover.call(this)},this.selectTo=function(row,column){this.$moveSelection(function(){this.moveCursorTo(row,column)})},this.selectToPosition=function(pos){this.$moveSelection(function(){this.moveCursorToPosition(pos)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(row,column){if(column===void 0){var cursor=row||this.lead;row=cursor.row,column=cursor.column}return this.session.getWordRange(row,column)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var cursor=this.getCursor(),range=this.session.getAWordRange(cursor.row,cursor.column);this.setSelectionRange(range)},this.getLineRange=function(row,excludeLastChar){var rowEnd,rowStart=\"number\"==typeof row?row:this.lead.row,foldLine=this.session.getFoldLine(rowStart);return foldLine?(rowStart=foldLine.start.row,rowEnd=foldLine.end.row):rowEnd=rowStart,excludeLastChar?new Range(rowStart,0,rowEnd,this.session.getLine(rowEnd).length):new Range(rowStart,0,rowEnd+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var fold,cursor=this.lead.getPosition();if(fold=this.session.getFoldAt(cursor.row,cursor.column,-1))this.moveCursorTo(fold.start.row,fold.start.column);else if(0==cursor.column)cursor.row>0&&this.moveCursorTo(cursor.row-1,this.doc.getLine(cursor.row-1).length);else{var tabSize=this.session.getTabSize();this.session.isTabStop(cursor)&&this.doc.getLine(cursor.row).slice(cursor.column-tabSize,cursor.column).split(\" \").length-1==tabSize?this.moveCursorBy(0,-tabSize):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var fold,cursor=this.lead.getPosition();if(fold=this.session.getFoldAt(cursor.row,cursor.column,1))this.moveCursorTo(fold.end.row,fold.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row\u003Cthis.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var tabSize=this.session.getTabSize(),cursor=this.lead;this.session.isTabStop(cursor)&&this.doc.getLine(cursor.row).slice(cursor.column,cursor.column+tabSize).split(\" \").length-1==tabSize?this.moveCursorBy(0,tabSize):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var row=this.lead.row,column=this.lead.column,screenRow=this.session.documentToScreenRow(row,column),firstColumnPosition=this.session.screenToDocumentPosition(screenRow,0),beforeCursor=this.session.getDisplayLine(row,null,firstColumnPosition.row,firstColumnPosition.column),leadingSpace=beforeCursor.match(/^\\s*/);leadingSpace[0].length==column||this.session.$useEmacsStyleLineStart||(firstColumnPosition.column+=leadingSpace[0].length),this.moveCursorToPosition(firstColumnPosition)},this.moveCursorLineEnd=function(){var lead=this.lead,lineEnd=this.session.getDocumentLastRowColumnPosition(lead.row,lead.column);if(this.lead.column==lineEnd.column){var line=this.session.getLine(lineEnd.row);if(lineEnd.column==line.length){var textEnd=line.search(/\\s+$/);textEnd>0&&(lineEnd.column=textEnd)}}this.moveCursorTo(lineEnd.row,lineEnd.column)},this.moveCursorFileEnd=function(){var row=this.doc.getLength()-1,column=this.doc.getLine(row).length;this.moveCursorTo(row,column)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var match,row=this.lead.row,column=this.lead.column,line=this.doc.getLine(row),rightOfCursor=line.substring(column);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var fold=this.session.getFoldAt(row,column,1);return fold?(this.moveCursorTo(fold.end.row,fold.end.column),void 0):((match=this.session.nonTokenRe.exec(rightOfCursor))&&(column+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,rightOfCursor=line.substring(column)),column>=line.length?(this.moveCursorTo(row,line.length),this.moveCursorRight(),this.doc.getLength()-1>row&&this.moveCursorWordRight(),void 0):((match=this.session.tokenRe.exec(rightOfCursor))&&(column+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(row,column),void 0))},this.moveCursorLongWordLeft=function(){var fold,row=this.lead.row,column=this.lead.column;if(fold=this.session.getFoldAt(row,column,-1))return this.moveCursorTo(fold.start.row,fold.start.column),void 0;var str=this.session.getFoldStringAt(row,column,-1);null==str&&(str=this.doc.getLine(row).substring(0,column));var match,leftOfCursor=lang.stringReverse(str);return this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,(match=this.session.nonTokenRe.exec(leftOfCursor))&&(column-=this.session.nonTokenRe.lastIndex,leftOfCursor=leftOfCursor.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0),0>=column?(this.moveCursorTo(row,0),this.moveCursorLeft(),row>0&&this.moveCursorWordLeft(),void 0):((match=this.session.tokenRe.exec(leftOfCursor))&&(column-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(row,column),void 0)},this.$shortWordEndIndex=function(rightOfCursor){var match,ch,index=0,whitespaceRe=/\\s/,tokenRe=this.session.tokenRe;if(tokenRe.lastIndex=0,match=this.session.tokenRe.exec(rightOfCursor))index=this.session.tokenRe.lastIndex;else{for(;(ch=rightOfCursor[index])&&whitespaceRe.test(ch);)index++;if(1>=index)for(tokenRe.lastIndex=0;(ch=rightOfCursor[index])&&!tokenRe.test(ch);)if(tokenRe.lastIndex=0,index++,whitespaceRe.test(ch)){if(index>2){index--;break}for(;(ch=rightOfCursor[index])&&whitespaceRe.test(ch);)index++;if(index>2)break}}return tokenRe.lastIndex=0,index},this.moveCursorShortWordRight=function(){var row=this.lead.row,column=this.lead.column,line=this.doc.getLine(row),rightOfCursor=line.substring(column),fold=this.session.getFoldAt(row,column,1);if(fold)return this.moveCursorTo(fold.end.row,fold.end.column);if(column==line.length){var l=this.doc.getLength();do row++,rightOfCursor=this.doc.getLine(row);while(l>row&&/^\\s*$/.test(rightOfCursor));/^\\s+/.test(rightOfCursor)||(rightOfCursor=\"\"),column=0}var index=this.$shortWordEndIndex(rightOfCursor);this.moveCursorTo(row,column+index)},this.moveCursorShortWordLeft=function(){var fold,row=this.lead.row,column=this.lead.column;if(fold=this.session.getFoldAt(row,column,-1))return this.moveCursorTo(fold.start.row,fold.start.column);var line=this.session.getLine(row).substring(0,column);if(0==column){do row--,line=this.doc.getLine(row);while(row>0&&/^\\s*$/.test(line));column=line.length,/\\s+$/.test(line)||(line=\"\")}var leftOfCursor=lang.stringReverse(line),index=this.$shortWordEndIndex(leftOfCursor);return this.moveCursorTo(row,column-index)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(rows,chars){var screenPos=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===chars&&(this.$desiredColumn?screenPos.column=this.$desiredColumn:this.$desiredColumn=screenPos.column);var docPos=this.session.screenToDocumentPosition(screenPos.row+rows,screenPos.column);this.moveCursorTo(docPos.row,docPos.column+chars,0===chars)},this.moveCursorToPosition=function(position){this.moveCursorTo(position.row,position.column)},this.moveCursorTo=function(row,column,keepDesiredColumn){var fold=this.session.getFoldAt(row,column,1);fold&&(row=fold.start.row,column=fold.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(row,column),this.$keepDesiredColumnOnChange=!1,keepDesiredColumn||(this.$desiredColumn=null)},this.moveCursorToScreen=function(row,column,keepDesiredColumn){var pos=this.session.screenToDocumentPosition(row,column);this.moveCursorTo(pos.row,pos.column,keepDesiredColumn)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(range){this.setSelectionRange(range,range.cursor==range.start),this.$desiredColumn=range.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(range){var r=this.getRange();return range?(range.start.column=r.start.column,range.start.row=r.start.row,range.end.column=r.end.column,range.end.row=r.end.row):range=r,range.cursor=this.isBackwards()?range.start:range.end,range.desiredColumn=this.$desiredColumn,range}}).call(Selection.prototype),exports.Selection=Selection}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour\",\"ace/unicode\",\"ace/lib/lang\"],function(acequire,exports){var Tokenizer=acequire(\"../tokenizer\").Tokenizer,TextHighlightRules=acequire(\"./text_highlight_rules\").TextHighlightRules,Behaviour=acequire(\"./behaviour\").Behaviour,unicode=acequire(\"../unicode\"),lang=acequire(\"../lib/lang\"),Mode=function(){this.$tokenizer=new Tokenizer((new TextHighlightRules).getRules()),this.$behaviour=new Behaviour};(function(){this.tokenRe=RegExp(\"^[\"+unicode.packages.L+unicode.packages.Mn+unicode.packages.Mc+unicode.packages.Nd+unicode.packages.Pc+\"\\\\$_]+\",\"g\"),this.nonTokenRe=RegExp(\"^(?:[^\"+unicode.packages.L+unicode.packages.Mn+unicode.packages.Mc+unicode.packages.Nd+unicode.packages.Pc+\"\\\\$_]|s])+\",\"g\"),this.getTokenizer=function(){return this.$tokenizer},this.toggleCommentLines=function(state,session,startRow,endRow){var regexpStart,lineCommentStart,doc=session.doc;if(!this.lineCommentStart)return!1;Array.isArray(this.lineCommentStart)?(regexpStart=this.lineCommentStart.map(lang.escapeRegExp).join(\"|\"),lineCommentStart=this.lineCommentStart[0]):(regexpStart=lang.escapeRegExp(this.lineCommentStart),lineCommentStart=this.lineCommentStart),regexpStart=RegExp(\"^\\\\s*(?:\"+regexpStart+\") ?\");for(var removeComment=!0,minSpace=1/0,indentations=[],i=startRow;endRow>=i;i++){var line=doc.getLine(i),indent=line.search(/\\S|$/);indentations[i]=indent,minSpace>indent&&(minSpace=indent),removeComment&&!regexpStart.test(line)&&(removeComment=!1)}if(removeComment)for(var i=startRow;endRow>=i;i++){var line=doc.getLine(i),m=line.match(regexpStart);doc.removeInLine(i,indentations[i],m[0].length)}else{lineCommentStart+=\" \";for(var i=startRow;endRow>=i;i++)doc.insertInLine({row:i,column:minSpace},lineCommentStart)}},this.getNextLineIndent=function(state,line){return this.$getIndent(line)},this.checkOutdent=function(){return!1},this.autoOutdent=function(){},this.$getIndent=function(line){return line.match(/^\\s*/)[0]},this.createWorker=function(){return null},this.createModeDelegates=function(mapping){if(this.$embeds){this.$modes={};for(var i=0;this.$embeds.length>i;i++)mapping[this.$embeds[i]]&&(this.$modes[this.$embeds[i]]=new mapping[this.$embeds[i]]);for(var delegations=[\"toggleCommentLines\",\"getNextLineIndent\",\"checkOutdent\",\"autoOutdent\",\"transformAction\"],i=0;delegations.length>i;i++)(function(scope){var functionName=delegations[i],defaultHandler=scope[functionName];scope[delegations[i]]=function(){return this.$delegator(functionName,arguments,defaultHandler)}})(this)}},this.$delegator=function(method,args,defaultHandler){for(var state=args[0],i=0;this.$embeds.length>i;i++)if(this.$modes[this.$embeds[i]]){var split=state.split(this.$embeds[i]);if(!split[0]&&split[1]){args[0]=split[1];var mode=this.$modes[this.$embeds[i]];return mode[method].apply(mode,args)}}var ret=defaultHandler.apply(this,args);return defaultHandler?ret:void 0},this.transformAction=function(state,action){if(this.$behaviour){var behaviours=this.$behaviour.getBehaviours();for(var key in behaviours)if(behaviours[key][action]){var ret=behaviours[key][action].apply(this,arguments);if(ret)return ret}}}}).call(Mode.prototype),exports.Mode=Mode}),ace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var MAX_TOKEN_COUNT=1e3,Tokenizer=function(rules){this.states=rules,this.regExps={},this.matchMappings={};for(var key in this.states){for(var state=this.states[key],ruleRegExps=[],matchTotal=0,mapping=this.matchMappings[key]={defaultToken:\"text\"},flag=\"g\",i=0;state.length>i;i++){var rule=state[i];if(rule.defaultToken&&(mapping.defaultToken=rule.defaultToken),rule.caseInsensitive&&(flag=\"gi\"),null!=rule.regex){rule.regex instanceof RegExp&&(rule.regex=(\"\"+rule.regex).slice(1,-1));var adjustedregex=rule.regex,matchcount=RegExp(\"(?:(\"+adjustedregex+\")|(.))\").exec(\"a\").length-2;if(Array.isArray(rule.token))if(1==rule.token.length||1==matchcount)rule.token=rule.token[0];else{if(matchcount-1!=rule.token.length)throw Error(\"number of classes and regexp groups in '\"+rule.token+\"'\\n'\"+rule.regex+\"' doesn't match\\n\"+(matchcount-1)+\"!=\"+rule.token.length);rule.tokenArray=rule.token,rule.onMatch=this.$arrayTokens}else\"function\"!=typeof rule.token||rule.onMatch||(rule.onMatch=matchcount>1?this.$applyToken:rule.token);matchcount>1&&(/\\\\\\d/.test(rule.regex)?adjustedregex=rule.regex.replace(/\\\\([0-9]+)/g,function(match,digit){return\"\\\\\"+(parseInt(digit,10)+matchTotal+1)}):(matchcount=1,adjustedregex=this.removeCapturingGroups(rule.regex)),rule.splitRegex||\"string\"==typeof rule.token||(rule.splitRegex=this.createSplitterRegexp(rule.regex,flag))),mapping[matchTotal]=i,matchTotal+=matchcount,ruleRegExps.push(adjustedregex),rule.onMatch||(rule.onMatch=null),rule.__proto__=null\n}}this.regExps[key]=RegExp(\"(\"+ruleRegExps.join(\")|(\")+\")|($)\",flag)}};(function(){this.$applyToken=function(str){var values=this.splitRegex.exec(str).slice(1),types=this.token.apply(this,values);if(\"string\"==typeof types)return[{type:types,value:str}];for(var tokens=[],i=0,l=types.length;l>i;i++)values[i]&&(tokens[tokens.length]={type:types[i],value:values[i]});return tokens},this.$arrayTokens=function(str){if(!str)return[];for(var values=this.splitRegex.exec(str),tokens=[],types=this.tokenArray,i=0,l=types.length;l>i;i++)values[i+1]&&(tokens[tokens.length]={type:types[i],value:values[i+1]});return tokens},this.removeCapturingGroups=function(src){var r=src.replace(/\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,function(x,y){return y?\"(?:\":x});return r},this.createSplitterRegexp=function(src,flag){if(-1!=src.indexOf(\"(?=\")){var stack=0,inChClass=!1,lastCapture={};src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g,function(m,esc,parenOpen,parenClose,square,index){return inChClass?inChClass=\"]\"!=square:square?inChClass=!0:parenClose?(stack==lastCapture.stack&&(lastCapture.end=index+1,lastCapture.stack=-1),stack--):parenOpen&&(stack++,1!=parenOpen.length&&(lastCapture.stack=stack,lastCapture.start=index)),m}),null!=lastCapture.end&&/^\\)*$/.test(src.substr(lastCapture.end))&&(src=src.substring(0,lastCapture.start)+src.substr(lastCapture.end))}return RegExp(src,(flag||\"\").replace(\"g\",\"\"))},this.getLineTokens=function(line,startState){if(startState&&\"string\"!=typeof startState){var stack=startState.slice(0);startState=stack[0]}else var stack=[];var currentState=startState||\"start\",state=this.states[currentState],mapping=this.matchMappings[currentState],re=this.regExps[currentState];re.lastIndex=0;for(var match,tokens=[],lastIndex=0,token={type:null,value:\"\"};match=re.exec(line);){var type=mapping.defaultToken,rule=null,value=match[0],index=re.lastIndex;if(index-value.length>lastIndex){var skipped=line.substring(lastIndex,index-value.length);token.type==type?token.value+=skipped:(token.type&&tokens.push(token),token={type:type,value:skipped})}for(var i=0;match.length-2>i;i++)if(void 0!==match[i+1]){rule=state[mapping[i]],type=rule.onMatch?rule.onMatch(value,currentState,stack):rule.token,rule.next&&(currentState=\"string\"==typeof rule.next?rule.next:rule.next(currentState,stack),state=this.states[currentState],state||(window.console&&console.error&&console.error(currentState,\"doesn't exist\"),currentState=\"start\",state=this.states[currentState]),mapping=this.matchMappings[currentState],lastIndex=index,re=this.regExps[currentState],re.lastIndex=index);break}if(value)if(\"string\"==typeof type)rule&&rule.merge===!1||token.type!==type?(token.type&&tokens.push(token),token={type:type,value:value}):token.value+=value;else if(type){token.type&&tokens.push(token),token={type:null,value:\"\"};for(var i=0;type.length>i;i++)tokens.push(type[i])}if(lastIndex==line.length)break;if(lastIndex=index,tokens.length>MAX_TOKEN_COUNT){token.value+=line.substr(lastIndex),currentState=\"start\";break}}return token.type&&tokens.push(token),{tokens:tokens,state:stack.length?stack:currentState}}}).call(Tokenizer.prototype),exports.Tokenizer=Tokenizer}),ace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"],function(acequire,exports){var lang=acequire(\"../lib/lang\"),TextHighlightRules=function(){this.$rules={start:[{token:\"empty_line\",regex:\"^$\"},{defaultToken:\"text\"}]}};(function(){this.addRules=function(rules,prefix){for(var key in rules){for(var state=rules[key],i=0;state.length>i;i++){var rule=state[i];rule.next&&(rule.next=prefix+rule.next)}this.$rules[prefix+key]=state}},this.getRules=function(){return this.$rules},this.embedRules=function(HighlightRules,prefix,escapeRules,states,append){var embedRules=(new HighlightRules).getRules();if(states)for(var i=0;states.length>i;i++)states[i]=prefix+states[i];else{states=[];for(var key in embedRules)states.push(prefix+key)}if(this.addRules(embedRules,prefix),escapeRules)for(var addRules=Array.prototype[append?\"push\":\"unshift\"],i=0;states.length>i;i++)addRules.apply(this.$rules[states[i]],lang.deepCopy(escapeRules));this.$embeds||(this.$embeds=[]),this.$embeds.push(prefix)},this.getEmbeds=function(){return this.$embeds};var pushState=function(currentState,stack){return\"start\"!=currentState&&stack.unshift(this.nextState,currentState),this.nextState},popState=function(currentState,stack){return stack[0]!==currentState?\"start\":(stack.shift(),stack.shift())};this.normalizeRules=function(){function processState(key){var state=rules[key];state.processed=!0;for(var i=0;state.length>i;i++){var rule=state[i];!rule.regex&&rule.start&&(rule.regex=rule.start,rule.next||(rule.next=[]),rule.next.push({defaultToken:rule.token},{token:rule.token+\".end\",regex:rule.end||rule.start,next:\"pop\"}),rule.token=rule.token+\".start\",rule.push=!0);var next=rule.next||rule.push;if(next&&Array.isArray(next)){var stateName=rule.stateName||rule.token+id++;rules[stateName]=next,rule.next=stateName,processState(stateName)}else\"pop\"==next&&(rule.next=popState);if(rule.push&&(rule.nextState=rule.next||rule.push,rule.next=pushState,delete rule.push),rule.rules)for(var r in rule.rules)rules[r]?rules[r].push&&rules[r].push.apply(rules[r],rule.rules[r]):rules[r]=rule.rules[r];if(rule.include||\"string\"==typeof rule)var includeName=rule.include||rule,toInsert=rules[includeName];else Array.isArray(rule)&&(toInsert=rule);if(toInsert){var args=[i,1].concat(toInsert);rule.noEscape&&(args=args.filter(function(x){return!x.next})),state.splice.apply(state,args),i--,toInsert=null}}}var id=0,rules=this.$rules;Object.keys(rules).forEach(processState)},this.createKeywordMapper=function(map,defaultToken,ignoreCase,splitChar){var keywords=Object.create(null);return Object.keys(map).forEach(function(className){var a=map[className];ignoreCase&&(a=a.toLowerCase());for(var list=a.split(splitChar||\"|\"),i=list.length;i--;)keywords[list[i]]=className}),map=null,ignoreCase?function(value){return keywords[value.toLowerCase()]||defaultToken}:function(value){return keywords[value]||defaultToken}},this.getKeywords=function(){return this.$keywords}}).call(TextHighlightRules.prototype),exports.TextHighlightRules=TextHighlightRules}),ace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var Behaviour=function(){this.$behaviours={}};(function(){this.add=function(name,action,callback){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[name]:this.$behaviours[name]={}}this.$behaviours[name][action]=callback},this.addBehaviours=function(behaviours){for(var key in behaviours)for(var action in behaviours[key])this.add(key,action,behaviours[key][action])},this.remove=function(name){this.$behaviours&&this.$behaviours[name]&&delete this.$behaviours[name]},this.inherit=function(mode,filter){if(\"function\"==typeof mode)var behaviours=(new mode).getBehaviours(filter);else var behaviours=mode.getBehaviours(filter);this.addBehaviours(behaviours)},this.getBehaviours=function(filter){if(filter){for(var ret={},i=0;filter.length>i;i++)this.$behaviours[filter[i]]&&(ret[filter[i]]=this.$behaviours[filter[i]]);return ret}return this.$behaviours}}).call(Behaviour.prototype),exports.Behaviour=Behaviour}),ace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"],function(acequire,exports){function addUnicodePackage(pack){var codePoint=/\\w{4}/g;for(var name in pack)exports.packages[name]=pack[name].replace(codePoint,\"\\\\u$&\")}exports.packages={},addUnicodePackage({L:\"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",Ll:\"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",Lu:\"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",Lt:\"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",Lm:\"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",Lo:\"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",M:\"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",Mn:\"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",Mc:\"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",Me:\"0488048906DE20DD-20E020E2-20E4A670-A672\",N:\"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",Nd:\"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",Nl:\"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",No:\"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",P:\"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",Pd:\"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",Ps:\"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",Pe:\"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",Pi:\"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",Pf:\"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",Pc:\"005F203F20402054FE33FE34FE4D-FE4FFF3F\",Po:\"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",S:\"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",Sm:\"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",Sc:\"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",Sk:\"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",So:\"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",Z:\"002000A01680180E2000-200A20282029202F205F3000\",Zs:\"002000A01680180E2000-200A202F205F3000\",Zl:\"2028\",Zp:\"2029\",C:\"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",Cc:\"0000-001F007F-009F\",Cf:\"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",Co:\"E000-F8FF\",Cs:\"D800-DFFF\",Cn:\"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"})\n}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(text){this.$lines=[],0==text.length?this.$lines=[\"\"]:Array.isArray(text)?this.insertLines(0,text):this.insert({row:0,column:0},text)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength();this.remove(new Range(0,0,len,this.getLine(len-1).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==\"aaa\".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\"},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine}},this.$autoNewLine=\"\\n\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode)},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\r\\n\"==text||\"\\r\"==text||\"\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){if(range.start.row==range.end.row)return this.$lines[range.start.row].substring(range.start.column,range.end.column);var lines=this.getLines(range.start.row+1,range.end.row-1);return lines.unshift((this.$lines[range.start.row]||\"\").substring(range.start.column)),lines.push((this.$lines[range.end.row]||\"\").substring(0,range.end.column)),lines.join(this.getNewLineCharacter())},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):0>position.row&&(position.row=0),position},this.insert=function(position,text){if(!text||0===text.length)return position;position=this.$clipPosition(position),1>=this.getLength()&&this.$detectNewLine(text);var lines=this.$split(text),firstLine=lines.splice(0,1)[0],lastLine=0==lines.length?null:lines.splice(lines.length-1,1)[0];return position=this.insertInLine(position,firstLine),null!==lastLine&&(position=this.insertNewLine(position),position=this.insertLines(position.row,lines),position=this.insertInLine(position,lastLine||\"\")),position},this.insertLines=function(row,lines){if(0==lines.length)return{row:row,column:0};if(lines.length>65535){var end=this.insertLines(row,lines.slice(65535));lines=lines.slice(0,65535)}var args=[row,0];args.push.apply(args,lines),this.$lines.splice.apply(this.$lines,args);var range=new Range(row,0,row+lines.length,0),delta={action:\"insertLines\",range:range,lines:lines};return this._emit(\"change\",{data:delta}),end||range.end},this.insertNewLine=function(position){position=this.$clipPosition(position);var line=this.$lines[position.row]||\"\";this.$lines[position.row]=line.substring(0,position.column),this.$lines.splice(position.row+1,0,line.substring(position.column,line.length));var end={row:position.row+1,column:0},delta={action:\"insertText\",range:Range.fromPoints(position,end),text:this.getNewLineCharacter()};return this._emit(\"change\",{data:delta}),end},this.insertInLine=function(position,text){if(0==text.length)return position;var line=this.$lines[position.row]||\"\";this.$lines[position.row]=line.substring(0,position.column)+text+line.substring(position.column);var end={row:position.row,column:position.column+text.length},delta={action:\"insertText\",range:Range.fromPoints(position,end),text:text};return this._emit(\"change\",{data:delta}),end},this.remove=function(range){if(range.start=this.$clipPosition(range.start),range.end=this.$clipPosition(range.end),range.isEmpty())return range.start;var firstRow=range.start.row,lastRow=range.end.row;if(range.isMultiLine()){var firstFullRow=0==range.start.column?firstRow:firstRow+1,lastFullRow=lastRow-1;range.end.column>0&&this.removeInLine(lastRow,0,range.end.column),lastFullRow>=firstFullRow&&this.removeLines(firstFullRow,lastFullRow),firstFullRow!=firstRow&&(this.removeInLine(firstRow,range.start.column,this.getLine(firstRow).length),this.removeNewLine(range.start.row))}else this.removeInLine(firstRow,range.start.column,range.end.column);return range.start},this.removeInLine=function(row,startColumn,endColumn){if(startColumn!=endColumn){var range=new Range(row,startColumn,row,endColumn),line=this.getLine(row),removed=line.substring(startColumn,endColumn),newLine=line.substring(0,startColumn)+line.substring(endColumn,line.length);this.$lines.splice(row,1,newLine);var delta={action:\"removeText\",range:range,text:removed};return this._emit(\"change\",{data:delta}),range.start}},this.removeLines=function(firstRow,lastRow){var range=new Range(firstRow,0,lastRow+1,0),removed=this.$lines.splice(firstRow,lastRow-firstRow+1),delta={action:\"removeLines\",range:range,nl:this.getNewLineCharacter(),lines:removed};return this._emit(\"change\",{data:delta}),removed},this.removeNewLine=function(row){var firstLine=this.getLine(row),secondLine=this.getLine(row+1),range=new Range(row,firstLine.length,row+1,0),line=firstLine+secondLine;this.$lines.splice(row,2,line);var delta={action:\"removeText\",range:range,text:this.getNewLineCharacter()};this._emit(\"change\",{data:delta})},this.replace=function(range,text){if(0==text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;if(this.remove(range),text)var end=this.insert(range.start,text);else end=range.start;return end},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);\"insertLines\"==delta.action?this.insertLines(range.start.row,delta.lines):\"insertText\"==delta.action?this.insert(range.start,delta.text):\"removeLines\"==delta.action?this.removeLines(range.start.row,range.end.row-1):\"removeText\"==delta.action&&this.remove(range)}},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);\"insertLines\"==delta.action?this.removeLines(range.start.row,range.end.row-1):\"insertText\"==delta.action?this.remove(range):\"removeLines\"==delta.action?this.insertLines(range.start.row,delta.lines):\"removeText\"==delta.action&&this.insert(range.start,delta.text)}},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length;return index+newlineLength*i+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.document=doc,column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column),this.$onChange=this.onChange.bind(this),doc.on(\"change\",this.$onChange)};(function(){oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(e){var delta=e.data,range=delta.range;if(!(range.start.row==range.end.row&&range.start.row!=this.row||range.start.row>this.row||range.start.row==this.row&&range.start.column>this.column)){var row=this.row,column=this.column,start=range.start,end=range.end;\"insertText\"===delta.action?start.row===row&&column>=start.column?start.row===end.row?column+=end.column-start.column:(column-=start.column,row+=end.row-start.row):start.row!==end.row&&row>start.row&&(row+=end.row-start.row):\"insertLines\"===delta.action?row>=start.row&&(row+=end.row-start.row):\"removeText\"===delta.action?start.row===row&&column>start.column?column=end.column>=column?start.column:Math.max(0,column-(end.column-start.column)):start.row!==end.row&&row>start.row?(end.row===row&&(column=Math.max(0,column-end.column)+start.column),row-=end.row-start.row):end.row===row&&(row-=end.row-start.row,column=Math.max(0,column-end.column)+start.column):\"removeLines\"==delta.action&&row>=start.row&&(row>=end.row?row-=end.row-start.row:(row=start.row,column=0)),this.setPosition(row,column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._emit(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,BackgroundTokenizer=function(tokenizer){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=tokenizer;var self=this;this.$worker=function(){if(self.running){for(var workerStart=new Date,startLine=self.currentLine,doc=self.doc,processedLines=0,len=doc.getLength();len>self.currentLine;){for(self.$tokenizeRow(self.currentLine);self.lines[self.currentLine];)self.currentLine++;if(processedLines++,0==processedLines%5&&new Date-workerStart>20)return self.fireUpdateEvent(startLine,self.currentLine-1),self.running=setTimeout(self.$worker,20),void 0}self.running=!1,self.fireUpdateEvent(startLine,len-1)}}};(function(){oop.implement(this,EventEmitter),this.setTokenizer=function(tokenizer){this.tokenizer=tokenizer,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(doc){this.doc=doc,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(firstRow,lastRow){var data={first:firstRow,last:lastRow};this._emit(\"update\",{data:data})},this.start=function(startRow){this.currentLine=Math.min(startRow||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.$updateOnChange=function(delta){var range=delta.range,startRow=range.start.row,len=range.end.row-startRow;if(0===len)this.lines[startRow]=null;else if(\"removeText\"==delta.action||\"removeLines\"==delta.action)this.lines.splice(startRow,len+1,null),this.states.splice(startRow,len+1,null);else{var args=Array(len+1);args.unshift(startRow,1),this.lines.splice.apply(this.lines,args),this.states.splice.apply(this.states,args)}this.currentLine=Math.min(startRow,this.currentLine,this.doc.getLength()),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(row){return this.lines[row]||this.$tokenizeRow(row)},this.getState=function(row){return this.currentLine==row&&this.$tokenizeRow(row),this.states[row]||\"start\"},this.$tokenizeRow=function(row){var line=this.doc.getLine(row),state=this.states[row-1],data=this.tokenizer.getLineTokens(line,state,row);return this.states[row]+\"\"!=data.state+\"\"?(this.states[row]=data.state,this.lines[row+1]=null,this.currentLine>row+1&&(this.currentLine=row+1)):this.currentLine==row&&(this.currentLine=row+1),this.lines[row]=data.tokens}}).call(BackgroundTokenizer.prototype),exports.BackgroundTokenizer=BackgroundTokenizer}),ace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"],function(acequire,exports){var lang=acequire(\"./lib/lang\");acequire(\"./lib/oop\");var Range=acequire(\"./range\").Range,SearchHighlight=function(regExp,clazz,type){this.setRegexp(regExp),this.clazz=clazz,this.type=type||\"text\"};(function(){this.MAX_RANGES=500,this.setRegexp=function(regExp){this.regExp+\"\"!=regExp+\"\"&&(this.regExp=regExp,this.cache=[])},this.update=function(html,markerLayer,session,config){if(this.regExp)for(var start=config.firstRow,end=config.lastRow,i=start;end>=i;i++){var ranges=this.cache[i];null==ranges&&(ranges=lang.getMatchOffsets(session.getLine(i),this.regExp),ranges.length>this.MAX_RANGES&&(ranges=ranges.slice(0,this.MAX_RANGES)),ranges=ranges.map(function(match){return new Range(i,match.offset,i,match.offset+match.length)}),this.cache[i]=ranges.length?ranges:\"\");for(var j=ranges.length;j--;)markerLayer.drawSingleLineMarker(html,ranges[j].toScreenRange(session),this.clazz,config,null,this.type)}}}).call(SearchHighlight.prototype),exports.SearchHighlight=SearchHighlight}),ace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"],function(acequire,exports){function Folding(){this.getFoldAt=function(row,column,side){var foldLine=this.getFoldLine(row);if(!foldLine)return null;for(var folds=foldLine.folds,i=0;folds.length>i;i++){var fold=folds[i];if(fold.range.contains(row,column)){if(1==side&&fold.range.isEnd(row,column))continue;if(-1==side&&fold.range.isStart(row,column))continue;return fold}}},this.getFoldsInRange=function(range){var start=range.start,end=range.end,foldLines=this.$foldData,foundFolds=[];start.column+=1,end.column-=1;for(var i=0;foldLines.length>i;i++){var cmp=foldLines[i].range.compareRange(range);if(2!=cmp){if(-2==cmp)break;for(var folds=foldLines[i].folds,j=0;folds.length>j;j++){var fold=folds[j];if(cmp=fold.range.compareRange(range),-2==cmp)break;if(2!=cmp){if(42==cmp)break;foundFolds.push(fold)}}}}return start.column-=1,end.column+=1,foundFolds},this.getAllFolds=function(){function addFold(fold){folds.push(fold)}for(var folds=[],foldLines=this.$foldData,i=0;foldLines.length>i;i++)for(var j=0;foldLines[i].folds.length>j;j++)addFold(foldLines[i].folds[j]);return folds},this.getFoldStringAt=function(row,column,trim,foldLine){if(foldLine=foldLine||this.getFoldLine(row),!foldLine)return null;for(var str,fold,lastFold={end:{column:0}},i=0;foldLine.folds.length>i;i++){fold=foldLine.folds[i];var cmp=fold.range.compareEnd(row,column);if(-1==cmp){str=this.getLine(fold.start.row).substring(lastFold.end.column,fold.start.column);break}if(0===cmp)return null;lastFold=fold}return str||(str=this.getLine(fold.start.row).substring(lastFold.end.column)),-1==trim?str.substring(0,column-lastFold.end.column):1==trim?str.substring(column-lastFold.end.column):str},this.getFoldLine=function(docRow,startFoldLine){var foldData=this.$foldData,i=0;for(startFoldLine&&(i=foldData.indexOf(startFoldLine)),-1==i&&(i=0),i;foldData.length>i;i++){var foldLine=foldData[i];if(docRow>=foldLine.start.row&&foldLine.end.row>=docRow)return foldLine;if(foldLine.end.row>docRow)return null}return null},this.getNextFoldLine=function(docRow,startFoldLine){var foldData=this.$foldData,i=0;for(startFoldLine&&(i=foldData.indexOf(startFoldLine)),-1==i&&(i=0),i;foldData.length>i;i++){var foldLine=foldData[i];if(foldLine.end.row>=docRow)return foldLine}return null},this.getFoldedRowCount=function(first,last){for(var foldData=this.$foldData,rowCount=last-first+1,i=0;foldData.length>i;i++){var foldLine=foldData[i],end=foldLine.end.row,start=foldLine.start.row;if(end>=last){last>start&&(start>=first?rowCount-=last-start:rowCount=0);break}end>=first&&(rowCount-=start>=first?end-start:end-first+1)}return rowCount},this.$addFoldLine=function(foldLine){return this.$foldData.push(foldLine),this.$foldData.sort(function(a,b){return a.start.row-b.start.row}),foldLine},this.addFold=function(placeholder,range){var fold,foldData=this.$foldData,added=!1;placeholder instanceof Fold?fold=placeholder:(fold=new Fold(range,placeholder),fold.collapseChildren=range.collapseChildren),this.$clipRangeToDocument(fold.range);var startRow=fold.start.row,startColumn=fold.start.column,endRow=fold.end.row,endColumn=fold.end.column;if(startRow==endRow&&2>endColumn-startColumn)throw\"The range has to be at least 2 characters width\";var startFold=this.getFoldAt(startRow,startColumn,1),endFold=this.getFoldAt(endRow,endColumn,-1);if(startFold&&endFold==startFold)return startFold.addSubFold(fold);if(startFold&&!startFold.range.isStart(startRow,startColumn)||endFold&&!endFold.range.isEnd(endRow,endColumn))throw\"A fold can't intersect already existing fold\"+fold.range+startFold.range;var folds=this.getFoldsInRange(fold.range);folds.length>0&&(this.removeFolds(folds),folds.forEach(function(subFold){fold.addSubFold(subFold)}));for(var i=0;foldData.length>i;i++){var foldLine=foldData[i];if(endRow==foldLine.start.row){foldLine.addFold(fold),added=!0;break}if(startRow==foldLine.end.row){if(foldLine.addFold(fold),added=!0,!fold.sameRow){var foldLineNext=foldData[i+1];if(foldLineNext&&foldLineNext.start.row==endRow){foldLine.merge(foldLineNext);break}}break}if(foldLine.start.row>=endRow)break}return added||(foldLine=this.$addFoldLine(new FoldLine(this.$foldData,fold))),this.$useWrapMode?this.$updateWrapData(foldLine.start.row,foldLine.start.row):this.$updateRowLengthCache(foldLine.start.row,foldLine.start.row),this.$modified=!0,this._emit(\"changeFold\",{data:fold}),fold},this.addFolds=function(folds){folds.forEach(function(fold){this.addFold(fold)},this)},this.removeFold=function(fold){var foldLine=fold.foldLine,startRow=foldLine.start.row,endRow=foldLine.end.row,foldLines=this.$foldData,folds=foldLine.folds;if(1==folds.length)foldLines.splice(foldLines.indexOf(foldLine),1);else if(foldLine.range.isEnd(fold.end.row,fold.end.column))folds.pop(),foldLine.end.row=folds[folds.length-1].end.row,foldLine.end.column=folds[folds.length-1].end.column;else if(foldLine.range.isStart(fold.start.row,fold.start.column))folds.shift(),foldLine.start.row=folds[0].start.row,foldLine.start.column=folds[0].start.column;else if(fold.sameRow)folds.splice(folds.indexOf(fold),1);else{var newFoldLine=foldLine.split(fold.start.row,fold.start.column);folds=newFoldLine.folds,folds.shift(),newFoldLine.start.row=folds[0].start.row,newFoldLine.start.column=folds[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(startRow,endRow):this.$updateRowLengthCache(startRow,endRow)),this.$modified=!0,this._emit(\"changeFold\",{data:fold})},this.removeFolds=function(folds){for(var cloneFolds=[],i=0;folds.length>i;i++)cloneFolds.push(folds[i]);cloneFolds.forEach(function(fold){this.removeFold(fold)},this),this.$modified=!0},this.expandFold=function(fold){this.removeFold(fold),fold.subFolds.forEach(function(subFold){fold.restoreRange(subFold),this.addFold(subFold)},this),fold.collapseChildren>0&&this.foldAll(fold.start.row+1,fold.end.row,fold.collapseChildren-1),fold.subFolds=[]},this.expandFolds=function(folds){folds.forEach(function(fold){this.expandFold(fold)},this)},this.unfold=function(location,expandInner){var range,folds;if(null==location?(range=new Range(0,0,this.getLength(),0),expandInner=!0):range=\"number\"==typeof location?new Range(location,0,location,this.getLine(location).length):\"row\"in location?Range.fromPoints(location,location):location,folds=this.getFoldsInRange(range),expandInner)this.removeFolds(folds);else for(;folds.length;)this.expandFolds(folds),folds=this.getFoldsInRange(range)},this.isRowFolded=function(docRow,startFoldRow){return!!this.getFoldLine(docRow,startFoldRow)},this.getRowFoldEnd=function(docRow,startFoldRow){var foldLine=this.getFoldLine(docRow,startFoldRow);return foldLine?foldLine.end.row:docRow},this.getRowFoldStart=function(docRow,startFoldRow){var foldLine=this.getFoldLine(docRow,startFoldRow);return foldLine?foldLine.start.row:docRow},this.getFoldDisplayLine=function(foldLine,endRow,endColumn,startRow,startColumn){null==startRow&&(startRow=foldLine.start.row,startColumn=0),null==endRow&&(endRow=foldLine.end.row,endColumn=this.getLine(endRow).length);var doc=this.doc,textLine=\"\";return foldLine.walk(function(placeholder,row,column,lastColumn){if(!(startRow>row)){if(row==startRow){if(startColumn>column)return;lastColumn=Math.max(startColumn,lastColumn)}textLine+=null!=placeholder?placeholder:doc.getLine(row).substring(lastColumn,column)}},endRow,endColumn),textLine},this.getDisplayLine=function(row,endColumn,startRow,startColumn){var foldLine=this.getFoldLine(row);if(foldLine)return this.getFoldDisplayLine(foldLine,row,endColumn,startRow,startColumn);var line;return line=this.doc.getLine(row),line.substring(startColumn||0,endColumn||line.length)},this.$cloneFoldData=function(){var fd=[];return fd=this.$foldData.map(function(foldLine){var folds=foldLine.folds.map(function(fold){return fold.clone()});return new FoldLine(fd,folds)})},this.toggleFold=function(tryToUnfold){var fold,bracketPos,selection=this.selection,range=selection.getRange();if(range.isEmpty()){var cursor=range.start;if(fold=this.getFoldAt(cursor.row,cursor.column))return this.expandFold(fold),void 0;(bracketPos=this.findMatchingBracket(cursor))?1==range.comparePoint(bracketPos)?range.end=bracketPos:(range.start=bracketPos,range.start.column++,range.end.column--):(bracketPos=this.findMatchingBracket({row:cursor.row,column:cursor.column+1}))?(1==range.comparePoint(bracketPos)?range.end=bracketPos:range.start=bracketPos,range.start.column++):range=this.getCommentFoldRange(cursor.row,cursor.column)||range}else{var folds=this.getFoldsInRange(range);if(tryToUnfold&&folds.length)return this.expandFolds(folds),void 0;1==folds.length&&(fold=folds[0])}if(fold||(fold=this.getFoldAt(range.start.row,range.start.column)),fold&&\"\"+fold.range==\"\"+range)return this.expandFold(fold),void 0;var placeholder=\"...\";if(!range.isMultiLine()){if(placeholder=this.getTextRange(range),4>placeholder.length)return;placeholder=placeholder.trim().substring(0,2)+\"..\"}this.addFold(placeholder,range)},this.getCommentFoldRange=function(row,column,dir){var iterator=new TokenIterator(this,row,column),token=iterator.getCurrentToken();if(token&&/^comment|string/.test(token.type)){var range=new Range,re=RegExp(token.type.replace(/\\..*/,\"\\\\.\"));if(1!=dir){do token=iterator.stepBackward();while(token&&re.test(token.type));iterator.stepForward()}if(range.start.row=iterator.getCurrentTokenRow(),range.start.column=iterator.getCurrentTokenColumn()+2,iterator=new TokenIterator(this,row,column),-1!=dir){do token=iterator.stepForward();while(token&&re.test(token.type));token=iterator.stepBackward()}else token=iterator.getCurrentToken();return range.end.row=iterator.getCurrentTokenRow(),range.end.column=iterator.getCurrentTokenColumn()+token.value.length-2,range}},this.foldAll=function(startRow,endRow,depth){void 0==depth&&(depth=1e5);var foldWidgets=this.foldWidgets;endRow=endRow||this.getLength();for(var row=startRow||0;endRow>row;row++)if(null==foldWidgets[row]&&(foldWidgets[row]=this.getFoldWidget(row)),\"start\"==foldWidgets[row]){var range=this.getFoldWidgetRange(row);if(range&&endRow>=range.end.row)try{var fold=this.addFold(\"...\",range);fold.collapseChildren=depth}catch(e){}row=range.end.row}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle=\"markbegin\",this.setFoldStyle=function(style){if(!this.$foldStyles[style])throw Error(\"invalid fold style: \"+style+\"[\"+Object.keys(this.$foldStyles).join(\", \")+\"]\");if(this.$foldStyle!=style){this.$foldStyle=style,\"manual\"==style&&this.unfold();var mode=this.$foldMode;this.$setFolding(null),this.$setFolding(mode)}},this.$setFolding=function(foldMode){if(this.$foldMode!=foldMode){if(this.$foldMode=foldMode,this.removeListener(\"change\",this.$updateFoldWidgets),this._emit(\"changeAnnotation\"),!foldMode||\"manual\"==this.$foldStyle)return this.foldWidgets=null,void 0;this.foldWidgets=[],this.getFoldWidget=foldMode.getFoldWidget.bind(foldMode,this,this.$foldStyle),this.getFoldWidgetRange=foldMode.getFoldWidgetRange.bind(foldMode,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.on(\"change\",this.$updateFoldWidgets)}},this.getParentFoldRangeData=function(row,ignoreCurrent){var fw=this.foldWidgets;if(!fw||ignoreCurrent&&fw[row])return{};for(var firstRange,i=row-1;i>=0;){var c=fw[i];if(null==c&&(c=fw[i]=this.getFoldWidget(i)),\"start\"==c){var range=this.getFoldWidgetRange(i);if(firstRange||(firstRange=range),range&&range.end.row>=row)break}i--}return{range:-1!==i&&range,firstRange:firstRange}},this.onFoldWidgetClick=function(row,e){var type=this.getFoldWidget(row),line=this.getLine(row);e=e.domEvent;var children=e.shiftKey,all=e.ctrlKey||e.metaKey,siblings=e.altKey,dir=\"end\"===type?-1:1,fold=this.getFoldAt(row,-1===dir?0:line.length,dir);if(fold)return children||all?this.removeFold(fold):this.expandFold(fold),void 0;var range=this.getFoldWidgetRange(row);if(range&&!range.isMultiLine()&&(fold=this.getFoldAt(range.start.row,range.start.column,1),fold&&range.isEqual(fold.range)))return this.removeFold(fold),void 0;if(siblings){var data=this.getParentFoldRangeData(row);if(data.range)var startRow=data.range.start.row+1,endRow=data.range.end.row;this.foldAll(startRow,endRow,all?1e4:0)}else if(children){var endRow=range?range.end.row:this.getLength();this.foldAll(row+1,range.end.row,all?1e4:0)}else range&&(all&&(range.collapseChildren=1e4),this.addFold(\"...\",range));range||((e.target||e.srcElement).className+=\" ace_invalid\")},this.updateFoldWidgets=function(e){var delta=e.data,range=delta.range,firstRow=range.start.row,len=range.end.row-firstRow;if(0===len)this.foldWidgets[firstRow]=null;else if(\"removeText\"==delta.action||\"removeLines\"==delta.action)this.foldWidgets.splice(firstRow,len+1,null);else{var args=Array(len+1);args.unshift(firstRow,1),this.foldWidgets.splice.apply(this.foldWidgets,args)}}}var Range=acequire(\"../range\").Range,FoldLine=acequire(\"./fold_line\").FoldLine,Fold=acequire(\"./fold\").Fold,TokenIterator=acequire(\"../token_iterator\").TokenIterator;exports.Folding=Folding}),ace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(acequire,exports){function FoldLine(foldData,folds){this.foldData=foldData,Array.isArray(folds)?this.folds=folds:folds=this.folds=[folds];var last=folds[folds.length-1];this.range=new Range(folds[0].start.row,folds[0].start.column,last.end.row,last.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(fold){fold.setFoldLine(this)},this)}var Range=acequire(\"../range\").Range;(function(){this.shiftRow=function(shift){this.start.row+=shift,this.end.row+=shift,this.folds.forEach(function(fold){fold.start.row+=shift,fold.end.row+=shift})},this.addFold=function(fold){if(fold.sameRow){if(fold.start.row\u003Cthis.startRow||fold.endRow>this.endRow)throw\"Can't add a fold to this FoldLine as it has no connection\";this.folds.push(fold),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(fold.start.row,fold.start.column)>0?(this.end.row=fold.end.row,this.end.column=fold.end.column):0>this.range.compareStart(fold.end.row,fold.end.column)&&(this.start.row=fold.start.row,this.start.column=fold.start.column)}else if(fold.start.row==this.end.row)this.folds.push(fold),this.end.row=fold.end.row,this.end.column=fold.end.column;else{if(fold.end.row!=this.start.row)throw\"Trying to add fold to FoldRow that doesn't have a matching row\";this.folds.unshift(fold),this.start.row=fold.start.row,this.start.column=fold.start.column}fold.foldLine=this},this.containsRow=function(row){return row>=this.start.row&&this.end.row>=row},this.walk=function(callback,endRow,endColumn){var fold,comp,stop,lastEnd=0,folds=this.folds,isNewRow=!0;null==endRow&&(endRow=this.end.row,endColumn=this.end.column);for(var i=0;folds.length>i;i++){if(fold=folds[i],comp=fold.range.compareStart(endRow,endColumn),-1==comp)return callback(null,endRow,endColumn,lastEnd,isNewRow),void 0;if(stop=callback(null,fold.start.row,fold.start.column,lastEnd,isNewRow),stop=!stop&&callback(fold.placeholder,fold.start.row,fold.start.column,lastEnd),stop||0==comp)return;isNewRow=!fold.sameRow,lastEnd=fold.end.column}callback(null,endRow,endColumn,lastEnd,isNewRow)},this.getNextFoldTo=function(row,column){for(var fold,cmp,i=0;this.folds.length>i;i++){if(fold=this.folds[i],cmp=fold.range.compareEnd(row,column),-1==cmp)return{fold:fold,kind:\"after\"};if(0==cmp)return{fold:fold,kind:\"inside\"}}return null},this.addRemoveChars=function(row,column,len){var fold,folds,ret=this.getNextFoldTo(row,column);if(ret)if(fold=ret.fold,\"inside\"==ret.kind&&fold.start.column!=column&&fold.start.row!=row)window.console&&window.console.log(row,column,fold);else if(fold.start.row==row){folds=this.folds;var i=folds.indexOf(fold);for(0==i&&(this.start.column+=len),i;folds.length>i;i++){if(fold=folds[i],fold.start.column+=len,!fold.sameRow)return;fold.end.column+=len}this.end.column+=len}},this.split=function(row,column){var fold=this.getNextFoldTo(row,column).fold,folds=this.folds,foldData=this.foldData;if(!fold)return null;var i=folds.indexOf(fold),foldBefore=folds[i-1];this.end.row=foldBefore.end.row,this.end.column=foldBefore.end.column,folds=folds.splice(i,folds.length-i);var newFoldLine=new FoldLine(foldData,folds);return foldData.splice(foldData.indexOf(this)+1,0,newFoldLine),newFoldLine},this.merge=function(foldLineNext){for(var folds=foldLineNext.folds,i=0;folds.length>i;i++)this.addFold(folds[i]);var foldData=this.foldData;foldData.splice(foldData.indexOf(foldLineNext),1)},this.toString=function(){var ret=[\"\"+this.range+\": [\"];return this.folds.forEach(function(fold){ret.push(\" \"+(\"\"+fold))}),ret.push(\"]\"),ret.join(\"\\n\")},this.idxToPosition=function(idx){for(var fold,lastFoldEndColumn=0,i=0;this.folds.length>i;i++){var fold=this.folds[i];if(idx-=fold.start.column-lastFoldEndColumn,0>idx)return{row:fold.start.row,column:fold.start.column+idx};if(idx-=fold.placeholder.length,0>idx)return fold.start;lastFoldEndColumn=fold.end.column}return{row:this.end.row,column:this.end.column+idx}}}).call(FoldLine.prototype),exports.FoldLine=FoldLine}),ace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"],function(acequire,exports){function consumePoint(point,anchor){point.row-=anchor.row,0==point.row&&(point.column-=anchor.column)}function consumeRange(range,anchor){consumePoint(range.start,anchor),consumePoint(range.end,anchor)}function restorePoint(point,anchor){0==point.row&&(point.column+=anchor.column),point.row+=anchor.row}function restoreRange(range,anchor){restorePoint(range.start,anchor),restorePoint(range.end,anchor)}acequire(\"../range\").Range;var RangeList=acequire(\"../range_list\").RangeList,oop=acequire(\"../lib/oop\"),Fold=exports.Fold=function(range,placeholder){this.foldLine=null,this.placeholder=placeholder,this.range=range,this.start=range.start,this.end=range.end,this.sameRow=range.start.row==range.end.row,this.subFolds=this.ranges=[]};oop.inherits(Fold,RangeList),function(){this.toString=function(){return'\"'+this.placeholder+'\" '+(\"\"+this.range)\n},this.setFoldLine=function(foldLine){this.foldLine=foldLine,this.subFolds.forEach(function(fold){fold.setFoldLine(foldLine)})},this.clone=function(){var range=this.range.clone(),fold=new Fold(range,this.placeholder);return this.subFolds.forEach(function(subFold){fold.subFolds.push(subFold.clone())}),fold.collapseChildren=this.collapseChildren,fold},this.addSubFold=function(fold){if(!this.range.isEqual(fold)){if(!this.range.containsRange(fold))throw\"A fold can't intersect already existing fold\"+fold.range+this.range;consumeRange(fold,this.start);for(var row=fold.start.row,column=fold.start.column,i=0,cmp=-1;this.subFolds.length>i&&(cmp=this.subFolds[i].range.compare(row,column),1==cmp);i++);var afterStart=this.subFolds[i];if(0==cmp)return afterStart.addSubFold(fold);for(var row=fold.range.end.row,column=fold.range.end.column,j=i,cmp=-1;this.subFolds.length>j&&(cmp=this.subFolds[j].range.compare(row,column),1==cmp);j++);if(this.subFolds[j],0==cmp)throw\"A fold can't intersect already existing fold\"+fold.range+this.range;return this.subFolds.splice(i,j-i,fold),fold.setFoldLine(this.foldLine),fold}},this.restoreRange=function(range){return restoreRange(range,this.start)}}.call(Fold.prototype)}),ace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(acequire,exports){var Range=acequire(\"./range\").Range,comparePoints=Range.comparePoints,RangeList=function(){this.ranges=[]};(function(){this.comparePoints=comparePoints,this.pointIndex=function(pos,excludeEdges,startIndex){for(var list=this.ranges,i=startIndex||0;list.length>i;i++){var range=list[i],cmpEnd=comparePoints(pos,range.end);if(!(cmpEnd>0)){var cmpStart=comparePoints(pos,range.start);return 0===cmpEnd?excludeEdges&&0!==cmpStart?-i-2:i:cmpStart>0||0===cmpStart&&!excludeEdges?i:-i-1}}return-i-1},this.add=function(range){var excludeEdges=!range.isEmpty(),startIndex=this.pointIndex(range.start,excludeEdges);0>startIndex&&(startIndex=-startIndex-1);var endIndex=this.pointIndex(range.end,excludeEdges,startIndex);return 0>endIndex?endIndex=-endIndex-1:endIndex++,this.ranges.splice(startIndex,endIndex-startIndex,range)},this.addList=function(list){for(var removed=[],i=list.length;i--;)removed.push.call(removed,this.add(list[i]));return removed},this.substractPoint=function(pos){var i=this.pointIndex(pos);return i>=0?this.ranges.splice(i,1):void 0},this.merge=function(){var removed=[],list=this.ranges;list=list.sort(function(a,b){return comparePoints(a.start,b.start)});for(var range,next=list[0],i=1;list.length>i;i++){range=next,next=list[i];var cmp=comparePoints(range.end,next.start);0>cmp||(0!=cmp||range.isEmpty()||next.isEmpty())&&(0>comparePoints(range.end,next.end)&&(range.end.row=next.end.row,range.end.column=next.end.column),list.splice(i,1),removed.push(next),next=range,i--)}return this.ranges=list,removed},this.contains=function(row,column){return this.pointIndex({row:row,column:column})>=0},this.containsPoint=function(pos){return this.pointIndex(pos)>=0},this.rangeAtPoint=function(pos){var i=this.pointIndex(pos);return i>=0?this.ranges[i]:void 0},this.clipRows=function(startRow,endRow){var list=this.ranges;if(list[0].start.row>endRow||startRow>list[list.length-1].start.row)return[];var startIndex=this.pointIndex({row:startRow,column:0});0>startIndex&&(startIndex=-startIndex-1);var endIndex=this.pointIndex({row:endRow,column:0},startIndex);0>endIndex&&(endIndex=-endIndex-1);for(var clipped=[],i=startIndex;endIndex>i;i++)clipped.push(list[i]);return clipped},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(session){this.session&&this.detach(),this.session=session,this.onChange=this.$onChange.bind(this),this.session.on(\"change\",this.onChange)},this.detach=function(){this.session&&(this.session.removeListener(\"change\",this.onChange),this.session=null)},this.$onChange=function(e){var changeRange=e.data.range;if(\"i\"==e.data.action[0])var start=changeRange.start,end=changeRange.end;else var end=changeRange.start,start=changeRange.end;for(var startRow=start.row,endRow=end.row,lineDif=endRow-startRow,colDiff=-start.column+end.column,ranges=this.ranges,i=0,n=ranges.length;n>i;i++){var r=ranges[i];if(!(startRow>r.end.row)){if(r.start.row>startRow)break;r.start.row==startRow&&r.start.column>=start.column&&(r.start.column+=colDiff,r.start.row+=lineDif),r.end.row==startRow&&r.end.column>=start.column&&(r.end.column==start.column&&colDiff>0&&n-1>i&&r.end.column>r.start.column&&r.end.column==ranges[i+1].start.column&&(r.end.column-=colDiff),r.end.column+=colDiff,r.end.row+=lineDif)}}if(0!=lineDif&&n>i)for(;n>i;i++){var r=ranges[i];r.start.row+=lineDif,r.end.row+=lineDif}}}).call(RangeList.prototype),exports.RangeList=RangeList}),ace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var TokenIterator=function(session,initialRow,initialColumn){this.$session=session,this.$row=initialRow,this.$rowTokens=session.getTokens(initialRow);var token=session.getTokenAt(initialRow,initialColumn);this.$tokenIndex=token?token.index:-1};(function(){this.stepBackward=function(){for(this.$tokenIndex-=1;0>this.$tokenIndex;){if(this.$row-=1,0>this.$row)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;for(var rowCount;this.$tokenIndex>=this.$rowTokens.length;){if(this.$row+=1,rowCount||(rowCount=this.$session.getLength()),this.$row>=rowCount)return this.$row=rowCount-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var rowTokens=this.$rowTokens,tokenIndex=this.$tokenIndex,column=rowTokens[tokenIndex].start;if(void 0!==column)return column;for(column=0;tokenIndex>0;)tokenIndex-=1,column+=rowTokens[tokenIndex].value.length;return column}}).call(TokenIterator.prototype),exports.TokenIterator=TokenIterator}),ace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"],function(acequire,exports){function BracketMatch(){this.findMatchingBracket=function(position,chr){if(0==position.column)return null;var charBeforeCursor=chr||this.getLine(position.row).charAt(position.column-1);if(\"\"==charBeforeCursor)return null;var match=charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);return match?match[1]?this.$findClosingBracket(match[1],position):this.$findOpeningBracket(match[2],position):null},this.getBracketRange=function(pos){var range,line=this.getLine(pos.row),before=!0,chr=line.charAt(pos.column-1),match=chr&&chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);if(match||(chr=line.charAt(pos.column),pos={row:pos.row,column:pos.column+1},match=chr&&chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/),before=!1),!match)return null;if(match[1]){var bracketPos=this.$findClosingBracket(match[1],pos);if(!bracketPos)return null;range=Range.fromPoints(pos,bracketPos),before||(range.end.column++,range.start.column--),range.cursor=range.end}else{var bracketPos=this.$findOpeningBracket(match[2],pos);if(!bracketPos)return null;range=Range.fromPoints(bracketPos,pos),before||(range.start.column++,range.end.column--),range.cursor=range.start}return range},this.$brackets={\")\":\"(\",\"(\":\")\",\"]\":\"[\",\"[\":\"]\",\"{\":\"}\",\"}\":\"{\"},this.$findOpeningBracket=function(bracket,position,typeRe){var openBracket=this.$brackets[bracket],depth=1,iterator=new TokenIterator(this,position.row,position.column),token=iterator.getCurrentToken();if(token||(token=iterator.stepForward()),token){typeRe||(typeRe=RegExp(\"(\\\\.?\"+token.type.replace(\".\",\"\\\\.\").replace(\"rparen\",\".paren\")+\")+\"));for(var valueIndex=position.column-iterator.getCurrentTokenColumn()-2,value=token.value;;){for(;valueIndex>=0;){var chr=value.charAt(valueIndex);if(chr==openBracket){if(depth-=1,0==depth)return{row:iterator.getCurrentTokenRow(),column:valueIndex+iterator.getCurrentTokenColumn()}}else chr==bracket&&(depth+=1);valueIndex-=1}do token=iterator.stepBackward();while(token&&!typeRe.test(token.type));if(null==token)break;value=token.value,valueIndex=value.length-1}return null}},this.$findClosingBracket=function(bracket,position,typeRe){var closingBracket=this.$brackets[bracket],depth=1,iterator=new TokenIterator(this,position.row,position.column),token=iterator.getCurrentToken();if(token||(token=iterator.stepForward()),token){typeRe||(typeRe=RegExp(\"(\\\\.?\"+token.type.replace(\".\",\"\\\\.\").replace(\"lparen\",\".paren\")+\")+\"));for(var valueIndex=position.column-iterator.getCurrentTokenColumn();;){for(var value=token.value,valueLength=value.length;valueLength>valueIndex;){var chr=value.charAt(valueIndex);if(chr==closingBracket){if(depth-=1,0==depth)return{row:iterator.getCurrentTokenRow(),column:valueIndex+iterator.getCurrentTokenColumn()}}else chr==bracket&&(depth+=1);valueIndex+=1}do token=iterator.stepForward();while(token&&!typeRe.test(token.type));if(null==token)break;valueIndex=0}return null}}}var TokenIterator=acequire(\"../token_iterator\").TokenIterator,Range=acequire(\"../range\").Range;exports.BracketMatch=BracketMatch}),ace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"],function(acequire,exports){var lang=acequire(\"./lib/lang\"),oop=acequire(\"./lib/oop\"),Range=acequire(\"./range\").Range,Search=function(){this.$options={}};(function(){this.set=function(options){return oop.mixin(this.$options,options),this},this.getOptions=function(){return lang.copyObject(this.$options)},this.setOptions=function(options){this.$options=options},this.find=function(session){var iterator=this.$matchIterator(session,this.$options);if(!iterator)return!1;var firstRange=null;return iterator.forEach(function(range,row,offset){if(range.start)firstRange=range;else{var column=range.offset+(offset||0);firstRange=new Range(row,column,row,column+range.length)}return!0}),firstRange},this.findAll=function(session){var options=this.$options;if(!options.needle)return[];this.$assembleRegExp(options);var range=options.range,lines=range?session.getLines(range.start.row,range.end.row):session.doc.getAllLines(),ranges=[],re=options.re;if(options.$isMultiLine)for(var len=re.length,maxRow=lines.length-len,row=re.offset||0;maxRow>=row;row++){for(var j=0;len>j&&-1!=lines[row+j].search(re[j]);j++);var startLine=lines[row],line=lines[row+len-1],startIndex=startLine.match(re[0])[0].length,endIndex=line.match(re[len-1])[0].length;ranges.push(new Range(row,startLine.length-startIndex,row+len-1,endIndex))}else for(var i=0;lines.length>i;i++)for(var matches=lang.getMatchOffsets(lines[i],re),j=0;matches.length>j;j++){var match=matches[j];ranges.push(new Range(i,match.offset,i,match.offset+match.length))}if(range){for(var startColumn=range.start.column,endColumn=range.start.column,i=0,j=ranges.length-1;j>i&&startColumn>ranges[i].start.column&&ranges[i].start.row==range.start.row;)i++;for(;j>i&&ranges[j].end.column>endColumn&&ranges[j].end.row==range.end.row;)j--;return ranges.slice(i,j+1)}return ranges},this.replace=function(input,replacement){var options=this.$options,re=this.$assembleRegExp(options);if(options.$isMultiLine)return replacement;if(re){var match=re.exec(input);if(!match||match[0].length!=input.length)return null;if(replacement=input.replace(re,replacement),options.preserveCase){replacement=replacement.split(\"\");for(var i=Math.min(input.length,input.length);i--;){var ch=input[i];replacement[i]=ch&&ch.toLowerCase()!=ch?replacement[i].toUpperCase():replacement[i].toLowerCase()}replacement=replacement.join(\"\")}return replacement}},this.$matchIterator=function(session,options){var re=this.$assembleRegExp(options);if(!re)return!1;var callback,self=this,backwards=options.backwards;if(options.$isMultiLine)var len=re.length,matchIterator=function(line,row,offset){var startIndex=line.search(re[0]);if(-1!=startIndex){for(var i=1;len>i;i++)if(line=session.getLine(row+i),-1==line.search(re[i]))return;var endIndex=line.match(re[len-1])[0].length,range=new Range(row,startIndex,row+len-1,endIndex);return 1==re.offset?(range.start.row--,range.start.column=Number.MAX_VALUE):offset&&(range.start.column+=offset),callback(range)?!0:void 0}};else if(backwards)var matchIterator=function(line,row,startIndex){for(var matches=lang.getMatchOffsets(line,re),i=matches.length-1;i>=0;i--)if(callback(matches[i],row,startIndex))return!0};else var matchIterator=function(line,row,startIndex){for(var matches=lang.getMatchOffsets(line,re),i=0;matches.length>i;i++)if(callback(matches[i],row,startIndex))return!0};return{forEach:function(_callback){callback=_callback,self.$lineIterator(session,options).forEach(matchIterator)}}},this.$assembleRegExp=function(options){if(options.needle instanceof RegExp)return options.re=options.needle;var needle=options.needle;if(!options.needle)return options.re=!1;options.regExp||(needle=lang.escapeRegExp(needle)),options.wholeWord&&(needle=\"\\\\b\"+needle+\"\\\\b\");var modifier=options.caseSensitive?\"g\":\"gi\";if(options.$isMultiLine=/[\\n\\r]/.test(needle),options.$isMultiLine)return options.re=this.$assembleMultilineRegExp(needle,modifier);try{var re=RegExp(needle,modifier)}catch(e){re=!1}return options.re=re},this.$assembleMultilineRegExp=function(needle,modifier){for(var parts=needle.replace(/\\r\\n|\\r|\\n/g,\"$\\n^\").split(\"\\n\"),re=[],i=0;parts.length>i;i++)try{re.push(RegExp(parts[i],modifier))}catch(e){return!1}return\"\"==parts[0]?(re.shift(),re.offset=1):re.offset=0,re},this.$lineIterator=function(session,options){var backwards=1==options.backwards,skipCurrent=0!=options.skipCurrent,range=options.range,start=options.start;start||(start=range?range[backwards?\"end\":\"start\"]:session.selection.getRange()),start.start&&(start=start[skipCurrent!=backwards?\"end\":\"start\"]);var firstRow=range?range.start.row:0,lastRow=range?range.end.row:session.getLength()-1,forEach=backwards?function(callback){var row=start.row,line=session.getLine(row).substring(0,start.column);if(!callback(line,row)){for(row--;row>=firstRow;row--)if(callback(session.getLine(row),row))return;if(0!=options.wrap)for(row=lastRow,firstRow=start.row;row>=firstRow;row--)if(callback(session.getLine(row),row))return}}:function(callback){var row=start.row,line=session.getLine(row).substr(start.column);if(!callback(line,row,start.column)){for(row+=1;lastRow>=row;row++)if(callback(session.getLine(row),row))return;if(0!=options.wrap)for(row=firstRow,lastRow=start.row;lastRow>=row;row++)if(callback(session.getLine(row),row))return}};return{forEach:forEach}}}).call(Search.prototype),exports.Search=Search}),ace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),HashHandler=acequire(\"../keyboard/hash_handler\").HashHandler,EventEmitter=acequire(\"../lib/event_emitter\").EventEmitter,CommandManager=function(platform,commands){this.platform=platform,this.commands=this.byName={},this.commmandKeyBinding={},this.addCommands(commands),this.setDefaultHandler(\"exec\",function(e){return e.command.exec(e.editor,e.args||{})})};oop.inherits(CommandManager,HashHandler),function(){oop.implement(this,EventEmitter),this.exec=function(command,editor,args){if(\"string\"==typeof command&&(command=this.commands[command]),!command)return!1;if(editor&&editor.$readOnly&&!command.readOnly)return!1;var e={editor:editor,command:command,args:args},retvalue=this._emit(\"exec\",e);return this._signal(\"afterExec\",e),retvalue===!1?!1:!0},this.toggleRecording=function(editor){return this.$inReplay?void 0:(editor&&editor._emit(\"changeStatus\"),this.recording?(this.macro.pop(),this.removeEventListener(\"exec\",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on(\"exec\",this.$addCommandToMacro),this.recording=!0))},this.replay=function(editor){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(editor);try{this.$inReplay=!0,this.macro.forEach(function(x){\"string\"==typeof x?this.exec(x,editor):this.exec(x[0],editor,x[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(m){return m.map(function(x){return\"string\"!=typeof x[0]&&(x[0]=x[0].name),x[1]||(x=x[0]),x})}}.call(CommandManager.prototype),exports.CommandManager=CommandManager}),ace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"],function(acequire,exports){function HashHandler(config,platform){this.platform=platform||(useragent.isMac?\"mac\":\"win\"),this.commands={},this.commmandKeyBinding={},this.addCommands(config)}var keyUtil=acequire(\"../lib/keys\"),useragent=acequire(\"../lib/useragent\");(function(){this.addCommand=function(command){this.commands[command.name]&&this.removeCommand(command),this.commands[command.name]=command,command.bindKey&&this._buildKeyHash(command)},this.removeCommand=function(command){var name=\"string\"==typeof command?command:command.name;command=this.commands[name],delete this.commands[name];var ckb=this.commmandKeyBinding;for(var hashId in ckb)for(var key in ckb[hashId])ckb[hashId][key]==command&&delete ckb[hashId][key]},this.bindKey=function(key,command){if(key){if(\"function\"==typeof command)return this.addCommand({exec:command,bindKey:key,name:command.name||key}),void 0;var ckb=this.commmandKeyBinding;key.split(\"|\").forEach(function(keyPart){var binding=this.parseKeys(keyPart,command),hashId=binding.hashId;(ckb[hashId]||(ckb[hashId]={}))[binding.key]=command},this)}},this.addCommands=function(commands){commands&&Object.keys(commands).forEach(function(name){var command=commands[name];return\"string\"==typeof command?this.bindKey(command,name):(\"function\"==typeof command&&(command={exec:command}),command.name||(command.name=name),this.addCommand(command),void 0)},this)},this.removeCommands=function(commands){Object.keys(commands).forEach(function(name){this.removeCommand(commands[name])},this)},this.bindKeys=function(keyList){Object.keys(keyList).forEach(function(key){this.bindKey(key,keyList[key])},this)},this._buildKeyHash=function(command){var binding=command.bindKey;if(binding){var key=\"string\"==typeof binding?binding:binding[this.platform];this.bindKey(key,command)}},this.parseKeys=function(keys){-1!=keys.indexOf(\" \")&&(keys=keys.split(/\\s+/).pop());var parts=keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x}),key=parts.pop(),keyCode=keyUtil[key];if(keyUtil.FUNCTION_KEYS[keyCode])key=keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();else{if(!parts.length)return{key:key,hashId:-1};if(1==parts.length&&\"shift\"==parts[0])return{key:key.toUpperCase(),hashId:-1}}for(var hashId=0,i=parts.length;i--;){var modifier=keyUtil.KEY_MODS[parts[i]];if(null==modifier)return\"undefined\"!=typeof console&&console.error(\"invalid modifier \"+parts[i]+\" in \"+keys),!1;hashId|=modifier}return{key:key,hashId:hashId}},this.findKeyCommand=function(hashId,keyString){var ckbr=this.commmandKeyBinding;return ckbr[hashId]&&ckbr[hashId][keyString]},this.handleKeyboard=function(data,hashId,keyString){return{command:this.findKeyCommand(hashId,keyString)}}}).call(HashHandler.prototype),exports.HashHandler=HashHandler}),ace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\"],function(acequire,exports){function bindKey(win,mac){return{win:win,mac:mac}}var lang=acequire(\"../lib/lang\"),config=acequire(\"../config\");exports.commands=[{name:\"selectall\",bindKey:bindKey(\"Ctrl-A\",\"Command-A\"),exec:function(editor){editor.selectAll()},readOnly:!0},{name:\"centerselection\",bindKey:bindKey(null,\"Ctrl-L\"),exec:function(editor){editor.centerSelection()},readOnly:!0},{name:\"gotoline\",bindKey:bindKey(\"Ctrl-L\",\"Command-L\"),exec:function(editor){var line=parseInt(prompt(\"Enter line number:\"),10);isNaN(line)||editor.gotoLine(line)},readOnly:!0},{name:\"fold\",bindKey:bindKey(\"Alt-L|Ctrl-F1\",\"Command-Alt-L|Command-F1\"),exec:function(editor){editor.session.toggleFold(!1)},readOnly:!0},{name:\"unfold\",bindKey:bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\",\"Command-Alt-Shift-L|Command-Shift-F1\"),exec:function(editor){editor.session.toggleFold(!0)},readOnly:!0},{name:\"foldall\",bindKey:bindKey(\"Alt-0\",\"Command-Option-0\"),exec:function(editor){editor.session.foldAll()},readOnly:!0},{name:\"unfoldall\",bindKey:bindKey(\"Alt-Shift-0\",\"Command-Option-Shift-0\"),exec:function(editor){editor.session.unfold()},readOnly:!0},{name:\"findnext\",bindKey:bindKey(\"Ctrl-K\",\"Command-G\"),exec:function(editor){editor.findNext()},readOnly:!0},{name:\"findprevious\",bindKey:bindKey(\"Ctrl-Shift-K\",\"Command-Shift-G\"),exec:function(editor){editor.findPrevious()},readOnly:!0},{name:\"find\",bindKey:bindKey(\"Ctrl-F\",\"Command-F\"),exec:function(editor){config.loadModule(\"ace/ext/searchbox\",function(e){e.Search(editor)})},readOnly:!0},{name:\"overwrite\",bindKey:\"Insert\",exec:function(editor){editor.toggleOverwrite()},readOnly:!0},{name:\"selecttostart\",bindKey:bindKey(\"Ctrl-Shift-Home\",\"Command-Shift-Up\"),exec:function(editor){editor.getSelection().selectFileStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotostart\",bindKey:bindKey(\"Ctrl-Home\",\"Command-Home|Command-Up\"),exec:function(editor){editor.navigateFileStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectup\",bindKey:bindKey(\"Shift-Up\",\"Shift-Up\"),exec:function(editor){editor.getSelection().selectUp()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"golineup\",bindKey:bindKey(\"Up\",\"Up|Ctrl-P\"),exec:function(editor,args){editor.navigateUp(args.times)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selecttoend\",bindKey:bindKey(\"Ctrl-Shift-End\",\"Command-Shift-Down\"),exec:function(editor){editor.getSelection().selectFileEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotoend\",bindKey:bindKey(\"Ctrl-End\",\"Command-End|Command-Down\"),exec:function(editor){editor.navigateFileEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectdown\",bindKey:bindKey(\"Shift-Down\",\"Shift-Down\"),exec:function(editor){editor.getSelection().selectDown()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"golinedown\",bindKey:bindKey(\"Down\",\"Down|Ctrl-N\"),exec:function(editor,args){editor.navigateDown(args.times)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectwordleft\",bindKey:bindKey(\"Ctrl-Shift-Left\",\"Option-Shift-Left\"),exec:function(editor){editor.getSelection().selectWordLeft()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotowordleft\",bindKey:bindKey(\"Ctrl-Left\",\"Option-Left\"),exec:function(editor){editor.navigateWordLeft()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selecttolinestart\",bindKey:bindKey(\"Alt-Shift-Left\",\"Command-Shift-Left\"),exec:function(editor){editor.getSelection().selectLineStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotolinestart\",bindKey:bindKey(\"Alt-Left|Home\",\"Command-Left|Home|Ctrl-A\"),exec:function(editor){editor.navigateLineStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectleft\",bindKey:bindKey(\"Shift-Left\",\"Shift-Left\"),exec:function(editor){editor.getSelection().selectLeft()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotoleft\",bindKey:bindKey(\"Left\",\"Left|Ctrl-B\"),exec:function(editor,args){editor.navigateLeft(args.times)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectwordright\",bindKey:bindKey(\"Ctrl-Shift-Right\",\"Option-Shift-Right\"),exec:function(editor){editor.getSelection().selectWordRight()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotowordright\",bindKey:bindKey(\"Ctrl-Right\",\"Option-Right\"),exec:function(editor){editor.navigateWordRight()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selecttolineend\",bindKey:bindKey(\"Alt-Shift-Right\",\"Command-Shift-Right\"),exec:function(editor){editor.getSelection().selectLineEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotolineend\",bindKey:bindKey(\"Alt-Right|End\",\"Command-Right|End|Ctrl-E\"),exec:function(editor){editor.navigateLineEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectright\",bindKey:bindKey(\"Shift-Right\",\"Shift-Right\"),exec:function(editor){editor.getSelection().selectRight()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotoright\",bindKey:bindKey(\"Right\",\"Right|Ctrl-F\"),exec:function(editor,args){editor.navigateRight(args.times)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectpagedown\",bindKey:\"Shift-PageDown\",exec:function(editor){editor.selectPageDown()},readOnly:!0},{name:\"pagedown\",bindKey:bindKey(null,\"Option-PageDown\"),exec:function(editor){editor.scrollPageDown()},readOnly:!0},{name:\"gotopagedown\",bindKey:bindKey(\"PageDown\",\"PageDown|Ctrl-V\"),exec:function(editor){editor.gotoPageDown()},readOnly:!0},{name:\"selectpageup\",bindKey:\"Shift-PageUp\",exec:function(editor){editor.selectPageUp()},readOnly:!0},{name:\"pageup\",bindKey:bindKey(null,\"Option-PageUp\"),exec:function(editor){editor.scrollPageUp()},readOnly:!0},{name:\"gotopageup\",bindKey:\"PageUp\",exec:function(editor){editor.gotoPageUp()},readOnly:!0},{name:\"scrollup\",bindKey:bindKey(\"Ctrl-Up\",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:\"scrolldown\",bindKey:bindKey(\"Ctrl-Down\",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:\"selectlinestart\",bindKey:\"Shift-Home\",exec:function(editor){editor.getSelection().selectLineStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectlineend\",bindKey:\"Shift-End\",exec:function(editor){editor.getSelection().selectLineEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"togglerecording\",bindKey:bindKey(\"Ctrl-Alt-E\",\"Command-Option-E\"),exec:function(editor){editor.commands.toggleRecording(editor)},readOnly:!0},{name:\"replaymacro\",bindKey:bindKey(\"Ctrl-Shift-E\",\"Command-Shift-E\"),exec:function(editor){editor.commands.replay(editor)},readOnly:!0},{name:\"jumptomatching\",bindKey:bindKey(\"Ctrl-P\",\"Ctrl-Shift-P\"),exec:function(editor){editor.jumpToMatching()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selecttomatching\",bindKey:bindKey(\"Ctrl-Shift-P\",null),exec:function(editor){editor.jumpToMatching(!0)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"cut\",exec:function(editor){var range=editor.getSelectionRange();editor._emit(\"cut\",range),editor.selection.isEmpty()||(editor.session.remove(range),editor.clearSelection())},multiSelectAction:\"forEach\"},{name:\"removeline\",bindKey:bindKey(\"Ctrl-D\",\"Command-D\"),exec:function(editor){editor.removeLines()},multiSelectAction:\"forEachLine\"},{name:\"duplicateSelection\",bindKey:bindKey(\"Ctrl-Shift-D\",\"Command-Shift-D\"),exec:function(editor){editor.duplicateSelection()},multiSelectAction:\"forEach\"},{name:\"sortlines\",bindKey:bindKey(\"Ctrl-Alt-S\",\"Command-Alt-S\"),exec:function(editor){editor.sortLines()},multiSelectAction:\"forEachLine\"},{name:\"togglecomment\",bindKey:bindKey(\"Ctrl-/\",\"Command-/\"),exec:function(editor){editor.toggleCommentLines()},multiSelectAction:\"forEachLine\"},{name:\"modifyNumberUp\",bindKey:bindKey(\"Ctrl-Shift-Up\",\"Alt-Shift-Up\"),exec:function(editor){editor.modifyNumber(1)},multiSelectAction:\"forEach\"},{name:\"modifyNumberDown\",bindKey:bindKey(\"Ctrl-Shift-Down\",\"Alt-Shift-Down\"),exec:function(editor){editor.modifyNumber(-1)},multiSelectAction:\"forEach\"},{name:\"replace\",bindKey:bindKey(\"Ctrl-H\",\"Command-Option-F\"),exec:function(editor){config.loadModule(\"ace/ext/searchbox\",function(e){e.Search(editor,!0)})}},{name:\"undo\",bindKey:bindKey(\"Ctrl-Z\",\"Command-Z\"),exec:function(editor){editor.undo()}},{name:\"redo\",bindKey:bindKey(\"Ctrl-Shift-Z|Ctrl-Y\",\"Command-Shift-Z|Command-Y\"),exec:function(editor){editor.redo()}},{name:\"copylinesup\",bindKey:bindKey(\"Alt-Shift-Up\",\"Command-Option-Up\"),exec:function(editor){editor.copyLinesUp()}},{name:\"movelinesup\",bindKey:bindKey(\"Alt-Up\",\"Option-Up\"),exec:function(editor){editor.moveLinesUp()}},{name:\"copylinesdown\",bindKey:bindKey(\"Alt-Shift-Down\",\"Command-Option-Down\"),exec:function(editor){editor.copyLinesDown()}},{name:\"movelinesdown\",bindKey:bindKey(\"Alt-Down\",\"Option-Down\"),exec:function(editor){editor.moveLinesDown()}},{name:\"del\",bindKey:bindKey(\"Delete\",\"Delete|Ctrl-D\"),exec:function(editor){editor.remove(\"right\")},multiSelectAction:\"forEach\"},{name:\"backspace\",bindKey:bindKey(\"Command-Backspace|Option-Backspace|Shift-Backspace|Backspace\",\"Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),exec:function(editor){editor.remove(\"left\")},multiSelectAction:\"forEach\"},{name:\"removetolinestart\",bindKey:bindKey(\"Alt-Backspace\",\"Command-Backspace\"),exec:function(editor){editor.removeToLineStart()},multiSelectAction:\"forEach\"},{name:\"removetolineend\",bindKey:bindKey(\"Alt-Delete\",\"Ctrl-K\"),exec:function(editor){editor.removeToLineEnd()},multiSelectAction:\"forEach\"},{name:\"removewordleft\",bindKey:bindKey(\"Ctrl-Backspace\",\"Alt-Backspace|Ctrl-Alt-Backspace\"),exec:function(editor){editor.removeWordLeft()},multiSelectAction:\"forEach\"},{name:\"removewordright\",bindKey:bindKey(\"Ctrl-Delete\",\"Alt-Delete\"),exec:function(editor){editor.removeWordRight()},multiSelectAction:\"forEach\"},{name:\"outdent\",bindKey:bindKey(\"Shift-Tab\",\"Shift-Tab\"),exec:function(editor){editor.blockOutdent()},multiSelectAction:\"forEach\"},{name:\"indent\",bindKey:bindKey(\"Tab\",\"Tab\"),exec:function(editor){editor.indent()},multiSelectAction:\"forEach\"},{name:\"blockoutdent\",bindKey:bindKey(\"Ctrl-[\",\"Ctrl-[\"),exec:function(editor){editor.blockOutdent()},multiSelectAction:\"forEachLine\"},{name:\"blockindent\",bindKey:bindKey(\"Ctrl-]\",\"Ctrl-]\"),exec:function(editor){editor.blockIndent()},multiSelectAction:\"forEachLine\"},{name:\"insertstring\",exec:function(editor,str){editor.insert(str)},multiSelectAction:\"forEach\"},{name:\"inserttext\",exec:function(editor,args){editor.insert(lang.stringRepeat(args.text||\"\",args.times||1))},multiSelectAction:\"forEach\"},{name:\"splitline\",bindKey:bindKey(null,\"Ctrl-O\"),exec:function(editor){editor.splitLine()},multiSelectAction:\"forEach\"},{name:\"transposeletters\",bindKey:bindKey(\"Ctrl-T\",\"Ctrl-T\"),exec:function(editor){editor.transposeLetters()},multiSelectAction:function(editor){editor.transposeSelections(1)}},{name:\"touppercase\",bindKey:bindKey(\"Ctrl-U\",\"Ctrl-U\"),exec:function(editor){editor.toUpperCase()},multiSelectAction:\"forEach\"},{name:\"tolowercase\",bindKey:bindKey(\"Ctrl-Shift-U\",\"Ctrl-Shift-U\"),exec:function(editor){editor.toLowerCase()},multiSelectAction:\"forEach\"}]}),ace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var UndoManager=function(){this.reset()};(function(){this.execute=function(options){var deltas=options.args[0];this.$doc=options.args[1],this.$undoStack.push(deltas),this.$redoStack=[]},this.undo=function(dontSelect){var deltas=this.$undoStack.pop(),undoSelectionRange=null;return deltas&&(undoSelectionRange=this.$doc.undoChanges(deltas,dontSelect),this.$redoStack.push(deltas)),undoSelectionRange},this.redo=function(dontSelect){var deltas=this.$redoStack.pop(),redoSelectionRange=null;return deltas&&(redoSelectionRange=this.$doc.redoChanges(deltas,dontSelect),this.$undoStack.push(deltas)),redoSelectionRange},this.reset=function(){this.$undoStack=[],this.$redoStack=[]},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(UndoManager.prototype),exports.UndoManager=UndoManager}),ace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),dom=acequire(\"./lib/dom\"),event=acequire(\"./lib/event\"),useragent=acequire(\"./lib/useragent\"),config=acequire(\"./config\"),GutterLayer=acequire(\"./layer/gutter\").Gutter,MarkerLayer=acequire(\"./layer/marker\").Marker,TextLayer=acequire(\"./layer/text\").Text,CursorLayer=acequire(\"./layer/cursor\").Cursor,ScrollBar=acequire(\"./scrollbar\").ScrollBar,RenderLoop=acequire(\"./renderloop\").RenderLoop,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,editorCss=\".ace_editor {position: relative;overflow: hidden;font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;font-size: 12px;line-height: normal;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: text;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTQ4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTU4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBMjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBMzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkgXxbAAAAJbSURBVHjapFNNaBNBFH4zs5vdZLP5sQmNpT82QY209heh1ioWisaDRcSKF0WKJ0GQnrzrxasHsR6EnlrwD0TagxJabaVEpFYxLWlLSS822tr87m66ccfd2GKyVhA6MMybgfe97/vmPUQphd0sZjto9XIn9OOsvlu2nkqRzVU+6vvlzPf8W6bk8dxQ0NPbxAALgCgg2JkaQuhzQau/El0zbmUA7U0Es8v2CiYmKQJHGO1QICCLoqilMhkmurDAyapKgqItezi/USRdJqEYY4D5jCy03ht2yMkkvL91jTTX10qzyyu2hruPRN7jgbH+EOsXcMLgYiThEgAMhABW85oqy1DXdRIdvP1AHJ2acQXvDIrVHcdQNrEKNYSVMSZGMjEzIIAwDXIo+6G/FxcGnzkC3T2oMhLjre49sBB+RRcHLqdafK6sYdE/GGBwU1VpFNj0aN8pJbe+BkZyevUrvLl6Xmm0W9IuTc0DxrDNAJd5oEvI/KRsNC3bQyNjPO9yQ1YHcfj2QvfQc/5TUhJTBc2iM0U7AWDQtc1nJHvD/cfO2s7jaGkiTEfa/Ep8coLu7zmNmh8+dc5lZDuUeFAGUNA/OY6JVaypQ0vjr7XYjUvJM37vt+j1vuTK5DgVfVUoTjVe+y3/LxMxY2GgU+CSLy4cpfsYorRXuXIOi0Vt40h67uZFTdIo6nLaZcwUJWAzwNS0tBnqqKzQDnjdG/iPyZxo46HaKUpbvYkj8qYRTZsBhge+JHhZyh0x9b95JqjVJkT084kZIPwu/mPWqPgfQ5jXh2+92Ay7HedfAgwA6KDWafb4w3cAAAAASUVORK5CYII=\\\");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTg4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTk4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBNjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBNzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pgd7PfIAAAGmSURBVHjaYvr//z8DJZiJgUIANoCRkREb9gLiSVAaQx4OQM7AAkwd7XU2/v++/rOttdYGEB9dASEvOMydGKfH8Gv/p4XTkvRBfLxeQAP+1cUhXopyvzhP7P/IoSj7g7Mw09cNKO6J1QQ0L4gICPIv/veg/8W+JdFvQNLHVsW9/nmn9zk7B+cCkDwhL7gt6knSZnx9/LuCEOcvkIAMP+cvto9nfqyZmmUAksfnBUtbM60gX/3/kgyv3/xSFOL5DZT+L8vP+Yfh5cvfPvp/xUHyQHXGyAYwgpwBjZYFT3Y1OEl/OfCH4ffv3wzc4iwMvNIsDJ+f/mH4+vIPAxsb631WW0Yln6ZpQLXdMK/DXGDflh+sIv37EivD5x//Gb7+YWT4y86sl7BCCkSD+Z++/1dkvsFRl+HnD1Rvje4F8whjMXmGj58YGf5zsDMwcnAwfPvKcml62DsQDeaDxN+/Y0qwlpEHqrdB94IRNIDUgfgfKJChGK4OikEW3gTiXUB950ASLFAF54AC94A0G9QAfOnmF9DCDzABFqS08IHYDIScdijOjQABBgC+/9awBH96jwAAAABJRU5ErkJggg==\\\");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url(\\\"data:image/gif;base64,R0lGODlhEAAQAMQAAAAAAEFBQVJSUl5eXmRkZGtra39/f4WFhYmJiZGRkaampry8vMPDw8zMzNXV1dzc3OTk5Orq6vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABQALAAAAAAQABAAAAUuICWOZGmeaBml5XGwFCQSBGyXRSAwtqQIiRuiwIM5BoYVbEFIyGCQoeJGrVptIQA7\\\");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRTk5MTVGREIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRTk5MTVGRUIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZFOTkxNUZCQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZFOTkxNUZDQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+SIDkjAAAAJ1JREFUeNpi/P//PwMlgImBQkB7A6qrq/+DMC55FkIGKCoq4pVnpFkgTp069f/+/fv/r1u37r+tre1/kg0A+ptn9uzZYLaRkRHpLvjw4cNXWVlZhufPnzOcO3eOdAO0tbVPAjHDmzdvGA4fPsxIsgGSkpJmv379Ynj37h2DjIyMCMkG3LhxQ/T27dsMampqDHZ2dq/pH41DxwCAAAMAFdc68dUsFZgAAAAASUVORK5CYII=\\\");}.ace_scrollbar {position: absolute;overflow-x: hidden;overflow-y: scroll;right: 0;top: 0;bottom: 0;}.ace_scrollbar-inner {position: absolute;width: 1px;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;}.ace_text-input.ace_composition {background: #f8f8f8;color: #111;z-index: 1000;opacity: 1;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;white-space: nowrap;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;/* setting pointer-events: auto; on node under the mouse, which changesduring scroll, will break mouse wheel scrolling in Safari */pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {color: black;font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-moz-transition: opacity 0.18s;-webkit-transition: opacity 0.18s;-o-transition: opacity 0.18s;-ms-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_cursor[style*=\\\"opacity: 0\\\"]{-ms-filter: \\\"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\\\";}.ace_editor.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_line {white-space: nowrap;}.ace_marker-layer .ace_step {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\\\"),url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%3AIDAT8%11c%FC%FF%FF%7F%18%03%1A%60%01%F2%3F%A0%891%80%04%FF%11-%F8%17%9BJ%E2%05%B1ZD%81v%26t%E7%80%F8%A3%82h%A12%1A%20%A3%01%02%0F%01%BA%25%06%00%19%C0%0D%AEF%D5%3ES%00%00%00%00IEND%AEB%60%82\\\");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;-moz-border-radius: 2px;-webkit-border-radius: 2px;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\\\"),url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%003IDAT8%11c%FC%FF%FF%7F%3E%03%1A%60%01%F2%3F%A3%891%80%04%FFQ%26%F8w%C0%B43%A1%DB%0C%E2%8F%0A%A2%85%CAh%80%8C%06%08%3C%04%E8%96%18%00%A3S%0D%CD%CF%D8%C1%9D%00%00%00%00IEND%AEB%60%82\\\");background-repeat: no-repeat, repeat-x;background-position: center center, top left;}.ace_editor.ace_dragging .ace_content {cursor: move;}.ace_gutter-tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;display: inline-block;max-width: 500px;padding: 4px;position: fixed;z-index: 300;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre-line;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: inline-block;width: 11px;vertical-align: top;background-image: url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAe%8A%B1%0D%000%0C%C2%F2%2CK%96%BC%D0%8F9%81%88H%E9%D0%0E%96%C0%10%92%3E%02%80%5E%82%E4%A9*-%EEsw%C8%CC%11%EE%96w%D8%DC%E9*Eh%0C%151(%00%00%00%00IEND%AEB%60%82\\\");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;}.ace_fold-widget.ace_end {background-image: url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAm%C7%C1%09%000%08C%D1%8C%ECE%C8E(%8E%EC%02)%1EZJ%F1%C1'%04%07I%E1%E5%EE%CAL%F5%A2%99%99%22%E2%D6%1FU%B5%FE0%D9x%A7%26Wz5%0E%D5%00%00%00%00IEND%AEB%60%82\\\");}.ace_fold-widget.ace_closed {background-image: url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%03%00%00%00%06%08%06%00%00%00%06%E5%24%0C%00%00%009IDATx%DA5%CA%C1%09%000%08%03%C0%AC*(%3E%04%C1%0D%BA%B1%23%A4Uh%E0%20%81%C0%CC%F8%82%81%AA%A2%AArGfr%88%08%11%11%1C%DD%7D%E0%EE%5B%F6%F6%CB%B8%05Q%2F%E9tai%D9%00%00%00%00IEND%AEB%60%82\\\");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}/*** Dark version for fold widgets*/.ace_dark .ace_fold-widget {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");}.ace_dark .ace_fold-widget.ace_end {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");}.ace_dark .ace_fold-widget.ace_closed {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-moz-transition: opacity 0.4s ease 0.05s;-webkit-transition: opacity 0.4s ease 0.05s;-o-transition: opacity 0.4s ease 0.05s;-ms-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-moz-transition: opacity 0.05s ease 0.05s;-webkit-transition: opacity 0.05s ease 0.05s;-o-transition: opacity 0.05s ease 0.05s;-ms-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}\";\ndom.importCssString(editorCss,\"ace_editor\");var VirtualRenderer=function(container,theme){var _self=this;this.container=container||dom.createElement(\"div\"),this.$keepTextAreaAtCursor=!useragent.isIE,dom.addCssClass(this.container,\"ace_editor\"),this.setTheme(theme),this.$gutter=dom.createElement(\"div\"),this.$gutter.className=\"ace_gutter\",this.container.appendChild(this.$gutter),this.scroller=dom.createElement(\"div\"),this.scroller.className=\"ace_scroller\",this.container.appendChild(this.scroller),this.content=dom.createElement(\"div\"),this.content.className=\"ace_content\",this.scroller.appendChild(this.content),this.$gutterLayer=new GutterLayer(this.$gutter),this.$gutterLayer.on(\"changeGutterWidth\",this.onGutterResize.bind(this)),this.$markerBack=new MarkerLayer(this.content);var textLayer=this.$textLayer=new TextLayer(this.content);this.canvas=textLayer.element,this.$markerFront=new MarkerLayer(this.content),this.$cursorLayer=new CursorLayer(this.content),this.$horizScroll=!1,this.scrollBar=new ScrollBar(this.container),this.scrollBar.addEventListener(\"scroll\",function(e){_self.$inScrollAnimation||_self.session.setScrollTop(e.data)}),this.scrollTop=0,this.scrollLeft=0,event.addListener(this.scroller,\"scroll\",function(){var scrollLeft=_self.scroller.scrollLeft;_self.scrollLeft=scrollLeft,_self.session.setScrollLeft(scrollLeft)}),this.cursorPos={row:0,column:0},this.$textLayer.addEventListener(\"changeCharacterSize\",function(){_self.updateCharacterSize(),_self.onResize(!0)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new RenderLoop(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),config.resetOptions(this),config._emit(\"renderer\",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,oop.implement(this,EventEmitter),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle(\"ace_nobold\",!this.$allowBoldFonts)),this.characterWidth=this.$textLayer.getCharacterWidth(),this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(session){this.session=session,this.scroller.className=\"ace_scroller\",this.$cursorLayer.setSession(session),this.$markerBack.setSession(session),this.$markerFront.setSession(session),this.$gutterLayer.setSession(session),this.$textLayer.setSession(session),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(firstRow,lastRow){void 0===lastRow&&(lastRow=1/0),this.$changedLines?(this.$changedLines.firstRow>firstRow&&(this.$changedLines.firstRow=firstRow),lastRow>this.$changedLines.lastRow&&(this.$changedLines.lastRow=lastRow)):this.$changedLines={firstRow:firstRow,lastRow:lastRow},this.$changedLines.firstRow>this.layerConfig.lastRow||this.$changedLines.lastRow\u003Cthis.layerConfig.firstRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(force){force?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.onResize=function(force,gutterWidth,width,height){var changes=0,size=this.$size;if(!(this.resizing>2)){if(this.resizing>1?this.resizing++:this.resizing=force?1:0,height||(height=dom.getInnerHeight(this.container)),height&&(force||size.height!=height)&&(size.height=height,changes=this.CHANGE_SIZE,size.scrollerHeight=this.scroller.clientHeight,size.scrollerHeight||(size.scrollerHeight=size.height,this.$horizScroll&&(size.scrollerHeight-=this.scrollBar.getWidth())),this.scrollBar.setHeight(size.scrollerHeight),this.session&&(this.session.setScrollTop(this.getScrollTop()),changes|=this.CHANGE_FULL)),width||(width=dom.getInnerWidth(this.container)),width&&(force||this.resizing>1||size.width!=width)){changes=this.CHANGE_SIZE,size.width=width;var gutterWidth=this.$showGutter?this.$gutter.offsetWidth:0;this.scroller.style.left=gutterWidth+\"px\",size.scrollerWidth=Math.max(0,width-gutterWidth-this.scrollBar.getWidth()),this.scroller.style.right=this.scrollBar.getWidth()+\"px\",(this.session.getUseWrapMode()&&this.adjustWrapLimit()||force)&&(changes|=this.CHANGE_FULL)}this.$size.scrollerHeight&&(force?this.$renderChanges(changes,!0):this.$loop.schedule(changes),force&&(this.$gutterLayer.$padding=null),force&&delete this.resizing)}},this.onGutterResize=function(){var width=this.$size.width,gutterWidth=this.$showGutter?this.$gutter.offsetWidth:0;this.scroller.style.left=gutterWidth+\"px\",this.$size.scrollerWidth=Math.max(0,width-gutterWidth-this.scrollBar.getWidth()),this.session.getUseWrapMode()&&this.adjustWrapLimit()&&this.$loop.schedule(this.CHANGE_FULL)},this.adjustWrapLimit=function(){var availableWidth=this.$size.scrollerWidth-2*this.$padding,limit=Math.floor(availableWidth/this.characterWidth);return this.session.adjustWrapLimit(limit,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(shouldAnimate){this.setOption(\"animatedScroll\",shouldAnimate)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(showInvisibles){this.setOption(\"showInvisibles\",showInvisibles)},this.getShowInvisibles=function(){return this.getOption(\"showInvisibles\")},this.getDisplayIndentGuides=function(){return this.getOption(\"displayIndentGuides\")},this.setDisplayIndentGuides=function(display){this.setOption(\"displayIndentGuides\",display)},this.setShowPrintMargin=function(showPrintMargin){this.setOption(\"showPrintMargin\",showPrintMargin)},this.getShowPrintMargin=function(){return this.getOption(\"showPrintMargin\")},this.setPrintMarginColumn=function(showPrintMargin){this.setOption(\"printMarginColumn\",showPrintMargin)},this.getPrintMarginColumn=function(){return this.getOption(\"printMarginColumn\")},this.getShowGutter=function(){return this.getOption(\"showGutter\")},this.setShowGutter=function(show){return this.setOption(\"showGutter\",show)},this.getFadeFoldWidgets=function(){return this.getOption(\"fadeFoldWidgets\")},this.setFadeFoldWidgets=function(show){this.setOption(\"fadeFoldWidgets\",show)},this.setHighlightGutterLine=function(shouldHighlight){this.setOption(\"highlightGutterLine\",shouldHighlight)},this.getHighlightGutterLine=function(){return this.getOption(\"highlightGutterLine\")},this.$updateGutterLineHighlight=function(){var pos=this.$cursorLayer.$pixelPos,height=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var cursor=this.session.selection.getCursor();cursor.column=0,pos=this.$cursorLayer.getPixelPosition(cursor,!0),height*=this.session.getRowLength(cursor.row)}this.$gutterLineHighlight.style.top=pos.top-this.layerConfig.offset+\"px\",this.$gutterLineHighlight.style.height=height+\"px\"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var containerEl=dom.createElement(\"div\");containerEl.className=\"ace_layer ace_print-margin-layer\",this.$printMarginEl=dom.createElement(\"div\"),this.$printMarginEl.className=\"ace_print-margin\",containerEl.appendChild(this.$printMarginEl),this.content.insertBefore(containerEl,this.content.firstChild)}var style=this.$printMarginEl.style;style.left=this.characterWidth*this.$printMarginColumn+this.$padding+\"px\",style.visibility=this.$showPrintMargin?\"visible\":\"hidden\",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.content},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var config=this.layerConfig,posTop=this.$cursorLayer.$pixelPos.top,posLeft=this.$cursorLayer.$pixelPos.left;posTop-=config.offset;var h=this.lineHeight;if(!(0>posTop||posTop>config.height-h)){var w=this.characterWidth;if(this.$composition){var val=this.textarea.value.replace(/^\\x01+/,\"\");w*=this.session.$getStringScreenWidth(val)[0],h+=2,posTop-=1}posLeft-=this.scrollLeft,posLeft>this.$size.scrollerWidth-w&&(posLeft=this.$size.scrollerWidth-w),posLeft-=this.scrollBar.width,this.textarea.style.height=h+\"px\",this.textarea.style.width=w+\"px\",this.textarea.style.right=Math.max(0,this.$size.scrollerWidth-posLeft-w)+\"px\",this.textarea.style.bottom=Math.max(0,this.$size.height-posTop-h)+\"px\"}}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var flint=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+flint},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(padding){this.$padding=padding,this.$textLayer.setPadding(padding),this.$cursorLayer.setPadding(padding),this.$markerFront.setPadding(padding),this.$markerBack.setPadding(padding),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(alwaysVisible){this.setOption(\"hScrollBarAlwaysVisible\",alwaysVisible)},this.$updateScrollBar=function(){this.scrollBar.setInnerHeight(this.layerConfig.maxHeight),this.scrollBar.setScrollTop(this.scrollTop)},this.$renderChanges=function(changes,force){if(force||changes&&this.session&&this.container.offsetWidth){if(this._signal(\"beforeRender\"),(changes&this.CHANGE_FULL||changes&this.CHANGE_SIZE||changes&this.CHANGE_TEXT||changes&this.CHANGE_LINES||changes&this.CHANGE_SCROLL)&&this.$computeLayerConfig(),changes&this.CHANGE_H_SCROLL){this.scroller.scrollLeft=this.scrollLeft;var scrollLeft=this.scroller.scrollLeft;this.scrollLeft=scrollLeft,this.session.setScrollLeft(scrollLeft),this.scroller.className=0==this.scrollLeft?\"ace_scroller\":\"ace_scroller ace_scroll-left\"}if(changes&this.CHANGE_FULL)return this.$textLayer.checkForSizeChanges(),this.$updateScrollBar(),this.$textLayer.update(this.layerConfig),this.$showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal(\"afterRender\"),void 0;if(changes&this.CHANGE_SCROLL)return changes&this.CHANGE_TEXT||changes&this.CHANGE_LINES?this.$textLayer.update(this.layerConfig):this.$textLayer.scrollLines(this.layerConfig),this.$showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this.$updateScrollBar(),this._signal(\"afterRender\"),void 0;changes&this.CHANGE_TEXT?(this.$textLayer.update(this.layerConfig),this.$showGutter&&this.$gutterLayer.update(this.layerConfig)):changes&this.CHANGE_LINES?(this.$updateLines()||changes&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(this.layerConfig):(changes&this.CHANGE_TEXT||changes&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(this.layerConfig),changes&this.CHANGE_CURSOR&&(this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),changes&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(this.layerConfig),changes&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(this.layerConfig),changes&this.CHANGE_SIZE&&this.$updateScrollBar(),this._signal(\"afterRender\")}},this.$computeLayerConfig=function(){if(!this.$size.scrollerHeight)return this.onResize(!0);var session=this.session,offset=this.scrollTop%this.lineHeight,minHeight=this.$size.scrollerHeight+this.lineHeight,longestLine=this.$getLongestLine(),horizScroll=this.$hScrollBarAlwaysVisible||0>this.$size.scrollerWidth-longestLine,horizScrollChanged=this.$horizScroll!==horizScroll;this.$horizScroll=horizScroll,horizScrollChanged&&(this.scroller.style.overflowX=horizScroll?\"scroll\":\"hidden\",horizScroll||this.session.setScrollLeft(0));var maxHeight=this.session.getScreenLength()*this.lineHeight;this.session.setScrollTop(Math.max(0,Math.min(this.scrollTop,maxHeight-this.$size.scrollerHeight)));var firstRowScreen,firstRowHeight,lineCount=Math.ceil(minHeight/this.lineHeight)-1,firstRow=Math.max(0,Math.round((this.scrollTop-offset)/this.lineHeight)),lastRow=firstRow+lineCount,lineHeight=this.lineHeight;firstRow=session.screenToDocumentRow(firstRow,0);var foldLine=session.getFoldLine(firstRow);foldLine&&(firstRow=foldLine.start.row),firstRowScreen=session.documentToScreenRow(firstRow,0),firstRowHeight=session.getRowLength(firstRow)*lineHeight,lastRow=Math.min(session.screenToDocumentRow(lastRow,0),session.getLength()-1),minHeight=this.$size.scrollerHeight+session.getRowLength(lastRow)*lineHeight+firstRowHeight,offset=this.scrollTop-firstRowScreen*lineHeight,this.layerConfig={width:longestLine,padding:this.$padding,firstRow:firstRow,firstRowScreen:firstRowScreen,lastRow:lastRow,lineHeight:lineHeight,characterWidth:this.characterWidth,minHeight:minHeight,maxHeight:maxHeight,offset:offset,height:this.$size.scrollerHeight},this.$gutterLayer.element.style.marginTop=-offset+\"px\",this.content.style.marginTop=-offset+\"px\",this.content.style.width=longestLine+2*this.$padding+\"px\",this.content.style.height=minHeight+\"px\",horizScrollChanged&&this.onResize(!0)},this.$updateLines=function(){var firstRow=this.$changedLines.firstRow,lastRow=this.$changedLines.lastRow;this.$changedLines=null;var layerConfig=this.layerConfig;return firstRow>layerConfig.lastRow+1||layerConfig.firstRow>lastRow?void 0:1/0===lastRow?(this.$showGutter&&this.$gutterLayer.update(layerConfig),this.$textLayer.update(layerConfig),void 0):(this.$textLayer.updateLines(layerConfig,firstRow,lastRow),!0)},this.$getLongestLine=function(){var charCount=this.session.getScreenWidth();return this.$textLayer.showInvisibles&&(charCount+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(charCount*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(row,className){this.$gutterLayer.addGutterDecoration(row,className)},this.removeGutterDecoration=function(row,className){this.$gutterLayer.removeGutterDecoration(row,className)},this.updateBreakpoints=function(){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(annotations){this.$gutterLayer.setAnnotations(annotations),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(anchor,lead,offset){this.scrollCursorIntoView(anchor,offset),this.scrollCursorIntoView(lead,offset)},this.scrollCursorIntoView=function(cursor,offset){if(0!==this.$size.scrollerHeight){var pos=this.$cursorLayer.getPixelPosition(cursor),left=pos.left,top=pos.top;this.scrollTop>top?(offset&&(top-=offset*this.$size.scrollerHeight),this.session.setScrollTop(top)):this.scrollTop+this.$size.scrollerHeight\u003Ctop+this.lineHeight&&(offset&&(top+=offset*this.$size.scrollerHeight),this.session.setScrollTop(top+this.lineHeight-this.$size.scrollerHeight));var scrollLeft=this.scrollLeft;scrollLeft>left?(this.$padding+2*this.layerConfig.characterWidth>left&&(left=0),this.session.setScrollLeft(left)):scrollLeft+this.$size.scrollerWidth\u003Cleft+this.characterWidth&&this.session.setScrollLeft(Math.round(left+this.characterWidth-this.$size.scrollerWidth))}},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(row){this.session.setScrollTop(row*this.lineHeight)},this.alignCursor=function(cursor,alignment){\"number\"==typeof cursor&&(cursor={row:cursor,column:0});var pos=this.$cursorLayer.getPixelPosition(cursor),h=this.$size.scrollerHeight-this.lineHeight,offset=pos.top-h*(alignment||0);return this.session.setScrollTop(offset),offset},this.STEPS=8,this.$calcSteps=function(fromValue,toValue){var i=0,l=this.STEPS,steps=[],func=function(t,x_min,dx){return dx*(Math.pow(t-1,3)+1)+x_min};for(i=0;l>i;++i)steps.push(func(i/this.STEPS,fromValue,toValue-fromValue));return steps},this.scrollToLine=function(line,center,animate,callback){var pos=this.$cursorLayer.getPixelPosition({row:line,column:0}),offset=pos.top;center&&(offset-=this.$size.scrollerHeight/2);var initialScroll=this.scrollTop;this.session.setScrollTop(offset),animate!==!1&&this.animateScrolling(initialScroll,callback)},this.animateScrolling=function(fromValue,callback){var toValue=this.scrollTop;if(this.$animatedScroll&&1e5>Math.abs(fromValue-toValue)){var _self=this,steps=_self.$calcSteps(fromValue,toValue);this.$inScrollAnimation=!0,clearInterval(this.$timer),_self.session.setScrollTop(steps.shift()),this.$timer=setInterval(function(){steps.length?(_self.session.setScrollTop(steps.shift()),_self.session.$scrollTop=toValue):null!=toValue?(_self.session.$scrollTop=-1,_self.session.setScrollTop(toValue),toValue=null):(_self.$timer=clearInterval(_self.$timer),_self.$inScrollAnimation=!1,callback&&callback())},10)}},this.scrollToY=function(scrollTop){this.scrollTop!==scrollTop&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=scrollTop)},this.scrollToX=function(scrollLeft){0>scrollLeft&&(scrollLeft=0),this.scrollLeft!==scrollLeft&&(this.scrollLeft=scrollLeft),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollBy=function(deltaX,deltaY){deltaY&&this.session.setScrollTop(this.session.getScrollTop()+deltaY),deltaX&&this.session.setScrollLeft(this.session.getScrollLeft()+deltaX)},this.isScrollableBy=function(deltaX,deltaY){return 0>deltaY&&this.session.getScrollTop()>=1?!0:deltaY>0&&-1>this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight?!0:void 0},this.pixelToScreenCoordinates=function(x,y){var canvasPos=this.scroller.getBoundingClientRect(),offset=(x+this.scrollLeft-canvasPos.left-this.$padding)/this.characterWidth,row=Math.floor((y+this.scrollTop-canvasPos.top)/this.lineHeight),col=Math.round(offset);return{row:row,column:col,side:offset-col>0?1:-1}},this.screenToTextCoordinates=function(x,y){var canvasPos=this.scroller.getBoundingClientRect(),col=Math.round((x+this.scrollLeft-canvasPos.left-this.$padding)/this.characterWidth),row=Math.floor((y+this.scrollTop-canvasPos.top)/this.lineHeight);return this.session.screenToDocumentPosition(row,Math.max(col,0))},this.textToScreenCoordinates=function(row,column){var canvasPos=this.scroller.getBoundingClientRect(),pos=this.session.documentToScreenPosition(row,column),x=this.$padding+Math.round(pos.column*this.characterWidth),y=pos.row*this.lineHeight;return{pageX:canvasPos.left+x-this.scrollLeft,pageY:canvasPos.top+y-this.scrollTop}},this.visualizeFocus=function(){dom.addCssClass(this.container,\"ace_focus\")},this.visualizeBlur=function(){dom.removeCssClass(this.container,\"ace_focus\")},this.showComposition=function(){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,dom.addCssClass(this.textarea,\"ace_composition\"),this.textarea.style.cssText=\"\",this.$moveTextAreaToCursor()},this.setCompositionText=function(){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(dom.removeCssClass(this.textarea,\"ace_composition\"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(theme){function afterLoad(theme){if(theme.cssClass){dom.importCssString(theme.cssText,theme.cssClass,_self.container.ownerDocument),_self.theme&&dom.removeCssClass(_self.container,_self.theme.cssClass),_self.$theme=theme.cssClass,_self.theme=theme,dom.addCssClass(_self.container,theme.cssClass),dom.setCssClass(_self.container,\"ace_dark\",theme.isDark);var padding=theme.padding||4;_self.$padding&&padding!=_self.$padding&&_self.setPadding(padding),_self.$size&&(_self.$size.width=0,_self.onResize()),_self._dispatchEvent(\"themeLoaded\",{theme:theme})}}var _self=this;if(this.$themeValue=theme,_self._dispatchEvent(\"themeChange\",{theme:theme}),theme&&\"string\"!=typeof theme)afterLoad(theme);else{var moduleName=theme||\"ace/theme/textmate\";config.loadModule([\"theme\",moduleName],afterLoad)}},this.getTheme=function(){return this.$themeValue},this.setStyle=function(style,include){dom.setCssClass(this.container,style,0!=include)},this.unsetStyle=function(style){dom.removeCssClass(this.container,style)},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(VirtualRenderer.prototype),config.defineOptions(VirtualRenderer.prototype,\"renderer\",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(value){this.$textLayer.setShowInvisibles(value)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(val){\"number\"==typeof val&&(this.$printMarginColumn=val),this.$showPrintMargin=!!val,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(show){this.$gutter.style.display=show?\"block\":\"none\",this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(show){dom.setCssClass(this.$gutter,\"ace_fade-fold-widgets\",show)},initialValue:!1},showFoldWidgets:{set:function(show){this.$gutterLayer.setShowFoldWidgets(show)},initialValue:!0},displayIndentGuides:{set:function(show){this.$textLayer.setDisplayIndentGuides(show)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(shouldHighlight){return this.$gutterLineHighlight?(this.$gutterLineHighlight.style.display=shouldHighlight?\"\":\"none\",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight(),void 0):(this.$gutterLineHighlight=dom.createElement(\"div\"),this.$gutterLineHighlight.className=\"ace_gutter-active-line\",this.$gutter.appendChild(this.$gutterLineHighlight),void 0)},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(alwaysVisible){this.$hScrollBarAlwaysVisible=alwaysVisible,this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(size){\"number\"==typeof size&&(size+=\"px\"),this.container.style.fontSize=size,this.updateFontSize()},initialValue:12},fontFamily:{set:function(name){this.container.style.fontFamily=name,this.updateFontSize()}}}),exports.VirtualRenderer=VirtualRenderer}),ace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"],function(acequire,exports){var dom=acequire(\"../lib/dom\"),oop=acequire(\"../lib/oop\"),lang=acequire(\"../lib/lang\"),EventEmitter=acequire(\"../lib/event_emitter\").EventEmitter,Gutter=function(parentEl){this.element=dom.createElement(\"div\"),this.element.className=\"ace_layer ace_gutter-layer\",parentEl.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this)};(function(){oop.implement(this,EventEmitter),this.setSession=function(session){this.session&&this.session.removeEventListener(\"change\",this.$updateAnnotations),this.session=session,session.on(\"change\",this.$updateAnnotations)},this.addGutterDecoration=function(row,className){window.console&&console.warn&&console.warn(\"deprecated use session.addGutterDecoration\"),this.session.addGutterDecoration(row,className)},this.removeGutterDecoration=function(row,className){window.console&&console.warn&&console.warn(\"deprecated use session.removeGutterDecoration\"),this.session.removeGutterDecoration(row,className)},this.setAnnotations=function(annotations){this.$annotations=[];for(var rowInfo,row,i=0;annotations.length>i;i++){var annotation=annotations[i],row=annotation.row,rowInfo=this.$annotations[row];rowInfo||(rowInfo=this.$annotations[row]={text:[]});var annoText=annotation.text;annoText=annoText?lang.escapeHTML(annoText):annotation.html||\"\",-1===rowInfo.text.indexOf(annoText)&&rowInfo.text.push(annoText);var type=annotation.type;\"error\"==type?rowInfo.className=\" ace_error\":\"warning\"==type&&\" ace_error\"!=rowInfo.className?rowInfo.className=\" ace_warning\":\"info\"!=type||rowInfo.className||(rowInfo.className=\" ace_info\")}},this.$updateAnnotations=function(e){if(this.$annotations.length){var delta=e.data,range=delta.range,firstRow=range.start.row,len=range.end.row-firstRow;if(0===len);else if(\"removeText\"==delta.action||\"removeLines\"==delta.action)this.$annotations.splice(firstRow,len+1,null);else{var args=Array(len+1);args.unshift(firstRow,1),this.$annotations.splice.apply(this.$annotations,args)}}},this.update=function(config){for(var emptyAnno={className:\"\"},html=[],i=config.firstRow,lastRow=config.lastRow,fold=this.session.getNextFoldLine(i),foldStart=fold?fold.start.row:1/0,foldWidgets=this.$showFoldWidgets&&this.session.foldWidgets,breakpoints=this.session.$breakpoints,decorations=this.session.$decorations,firstLineNumber=this.session.$firstLineNumber,lastLineNumber=0;;){if(i>foldStart&&(i=fold.end.row+1,fold=this.session.getNextFoldLine(i,fold),foldStart=fold?fold.start.row:1/0),i>lastRow)break;var annotation=this.$annotations[i]||emptyAnno;if(html.push(\"\u003Cdiv class='ace_gutter-cell \",breakpoints[i]||\"\",decorations[i]||\"\",annotation.className,\"' style='height:\",this.session.getRowLength(i)*config.lineHeight,\"px;'>\",lastLineNumber=i+firstLineNumber),foldWidgets){var c=foldWidgets[i];null==c&&(c=foldWidgets[i]=this.session.getFoldWidget(i)),c&&html.push(\"\u003Cspan class='ace_fold-widget ace_\",c,\"start\"==c&&i==foldStart&&fold.end.row>i?\" ace_closed\":\" ace_open\",\"' style='height:\",config.lineHeight,\"px\",\"'>\u003C/span>\")}html.push(\"\u003C/div>\"),i++}this.element=dom.setInnerHtml(this.element,html.join(\"\")),this.element.style.height=config.minHeight+\"px\",this.session.$useWrapMode&&(lastLineNumber=this.session.getLength());var gutterWidth=(\"\"+lastLineNumber).length*config.characterWidth,padding=this.$padding||this.$computePadding();gutterWidth+=padding.left+padding.right,gutterWidth!==this.gutterWidth&&(this.gutterWidth=gutterWidth,this.element.style.width=Math.ceil(this.gutterWidth)+\"px\",this._emit(\"changeGutterWidth\",gutterWidth))},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(show){show?dom.addCssClass(this.element,\"ace_folding-enabled\"):dom.removeCssClass(this.element,\"ace_folding-enabled\"),this.$showFoldWidgets=show,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var style=dom.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(style.paddingLeft)+1,this.$padding.right=parseInt(style.paddingRight),this.$padding},this.getRegion=function(point){var padding=this.$padding||this.$computePadding(),rect=this.element.getBoundingClientRect();return point.x\u003Cpadding.left+rect.left?\"markers\":this.$showFoldWidgets&&point.x>rect.right-padding.right?\"foldWidgets\":void 0}}).call(Gutter.prototype),exports.Gutter=Gutter}),ace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"],function(acequire,exports){var Range=acequire(\"../range\").Range,dom=acequire(\"../lib/dom\"),Marker=function(parentEl){this.element=dom.createElement(\"div\"),this.element.className=\"ace_layer ace_marker-layer\",parentEl.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(padding){this.$padding=padding},this.setSession=function(session){this.session=session},this.setMarkers=function(markers){this.markers=markers},this.update=function(config){var config=config||this.config;if(config){this.config=config;var html=[];for(var key in this.markers){var marker=this.markers[key];if(marker.range){var range=marker.range.clipRows(config.firstRow,config.lastRow);if(!range.isEmpty())if(range=range.toScreenRange(this.session),marker.renderer){var top=this.$getTop(range.start.row,config),left=this.$padding+range.start.column*config.characterWidth;marker.renderer(html,range,left,top,config)}else\"fullLine\"==marker.type?this.drawFullLineMarker(html,range,marker.clazz,config):\"screenLine\"==marker.type?this.drawScreenLineMarker(html,range,marker.clazz,config):range.isMultiLine()?\"text\"==marker.type?this.drawTextMarker(html,range,marker.clazz,config):this.drawMultiLineMarker(html,range,marker.clazz,config):this.drawSingleLineMarker(html,range,marker.clazz+\" ace_start\",config)}else marker.update(html,this,this.session,config)}this.element=dom.setInnerHtml(this.element,html.join(\"\"))}},this.$getTop=function(row,layerConfig){return(row-layerConfig.firstRowScreen)*layerConfig.lineHeight},this.drawTextMarker=function(stringBuilder,range,clazz,layerConfig){var row=range.start.row,lineRange=new Range(row,range.start.column,row,this.session.getScreenLastRowColumn(row));for(this.drawSingleLineMarker(stringBuilder,lineRange,clazz+\" ace_start\",layerConfig,1,\"text\"),row=range.end.row,lineRange=new Range(row,0,row,range.end.column),this.drawSingleLineMarker(stringBuilder,lineRange,clazz,layerConfig,0,\"text\"),row=range.start.row+1;range.end.row>row;row++)lineRange.start.row=row,lineRange.end.row=row,lineRange.end.column=this.session.getScreenLastRowColumn(row),this.drawSingleLineMarker(stringBuilder,lineRange,clazz,layerConfig,1,\"text\")},this.drawMultiLineMarker=function(stringBuilder,range,clazz,config){var padding=this.$padding,height=config.lineHeight,top=this.$getTop(range.start.row,config),left=padding+range.start.column*config.characterWidth;stringBuilder.push(\"\u003Cdiv class='\",clazz,\" ace_start' style='\",\"height:\",height,\"px;\",\"right:0;\",\"top:\",top,\"px;\",\"left:\",left,\"px;'>\u003C/div>\"),top=this.$getTop(range.end.row,config);var width=range.end.column*config.characterWidth;stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"width:\",width,\"px;\",\"top:\",top,\"px;\",\"left:\",padding,\"px;'>\u003C/div>\"),height=(range.end.row-range.start.row-1)*config.lineHeight,0>height||(top=this.$getTop(range.start.row+1,config),stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"right:0;\",\"top:\",top,\"px;\",\"left:\",padding,\"px;'>\u003C/div>\"))},this.drawSingleLineMarker=function(stringBuilder,range,clazz,config,extraLength){var height=config.lineHeight,width=(range.end.column+(extraLength||0)-range.start.column)*config.characterWidth,top=this.$getTop(range.start.row,config),left=this.$padding+range.start.column*config.characterWidth;stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"width:\",width,\"px;\",\"top:\",top,\"px;\",\"left:\",left,\"px;'>\u003C/div>\")\n},this.drawFullLineMarker=function(stringBuilder,range,clazz,config){var top=this.$getTop(range.start.row,config),height=config.lineHeight;range.start.row!=range.end.row&&(height+=this.$getTop(range.end.row,config)-top),stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"top:\",top,\"px;\",\"left:0;right:0;'>\u003C/div>\")},this.drawScreenLineMarker=function(stringBuilder,range,clazz,config){var top=this.$getTop(range.start.row,config),height=config.lineHeight;stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"top:\",top,\"px;\",\"left:0;right:0;'>\u003C/div>\")}}).call(Marker.prototype),exports.Marker=Marker}),ace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),dom=acequire(\"../lib/dom\"),lang=acequire(\"../lib/lang\"),useragent=acequire(\"../lib/useragent\"),EventEmitter=acequire(\"../lib/event_emitter\").EventEmitter,Text=function(parentEl){this.element=dom.createElement(\"div\"),this.element.className=\"ace_layer ace_text-layer\",parentEl.appendChild(this.element),this.$characterSize={width:0,height:0},this.checkForSizeChanges(),this.$pollSizeChanges()};(function(){oop.implement(this,EventEmitter),this.EOF_CHAR=\"¶\",this.EOL_CHAR=\"¬\",this.TAB_CHAR=\"→\",this.SPACE_CHAR=\"·\",this.$padding=0,this.setPadding=function(padding){this.$padding=padding,this.element.style.padding=\"0 \"+padding+\"px\"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var size=this.$measureSizes();if(size&&(this.$characterSize.width!==size.width||this.$characterSize.height!==size.height)){this.$measureNode.style.fontWeight=\"bold\";var boldSize=this.$measureSizes();this.$measureNode.style.fontWeight=\"\",this.$characterSize=size,this.allowBoldFonts=boldSize&&boldSize.width===size.width&&boldSize.height===size.height,this._emit(\"changeCharacterSize\",{data:size})}},this.$pollSizeChanges=function(){var self=this;this.$pollSizeChangesTimer=setInterval(function(){self.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=useragent.isIE||useragent.isOldGecko?function(){var n=1e3;if(!this.$measureNode){var measureNode=this.$measureNode=dom.createElement(\"div\"),style=measureNode.style;if(style.width=style.height=\"auto\",style.left=style.top=40*-n+\"px\",style.visibility=\"hidden\",style.position=\"fixed\",style.overflow=\"visible\",style.whiteSpace=\"nowrap\",measureNode.innerHTML=lang.stringRepeat(\"Xy\",n),this.element.ownerDocument.body)this.element.ownerDocument.body.appendChild(measureNode);else{for(var container=this.element.parentNode;!dom.hasCssClass(container,\"ace_editor\");)container=container.parentNode;container.appendChild(measureNode)}}if(!this.element.offsetWidth)return null;var style=this.$measureNode.style,computedStyle=dom.computedStyle(this.element);for(var prop in this.$fontStyles)style[prop]=computedStyle[prop];var size={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(2*n)};return 0==size.width||0==size.height?null:size}:function(){if(!this.$measureNode){var measureNode=this.$measureNode=dom.createElement(\"div\"),style=measureNode.style;style.width=style.height=\"auto\",style.left=style.top=\"-100px\",style.visibility=\"hidden\",style.position=\"fixed\",style.overflow=\"visible\",style.whiteSpace=\"nowrap\",measureNode.innerHTML=\"X\";for(var container=this.element.parentNode;container&&!dom.hasCssClass(container,\"ace_editor\");)container=container.parentNode;if(!container)return this.$measureNode=null;container.appendChild(measureNode)}var rect=this.$measureNode.getBoundingClientRect(),size={height:rect.height,width:rect.width};return 0==size.width||0==size.height?null:size},this.setSession=function(session){this.session=session,this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(showInvisibles){return this.showInvisibles==showInvisibles?!1:(this.showInvisibles=showInvisibles,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(display){return this.displayIndentGuides==display?!1:(this.displayIndentGuides=display,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var tabSize=this.session.getTabSize();this.tabSize=tabSize;for(var tabStr=this.$tabStrings=[0],i=1;tabSize+1>i;i++)this.showInvisibles?tabStr.push(\"\u003Cspan class='ace_invisible'>\"+this.TAB_CHAR+lang.stringRepeat(\" \",i-1)+\"\u003C/span>\"):tabStr.push(lang.stringRepeat(\" \",i));if(this.displayIndentGuides){this.$indentGuideRe=/\\s\\S| \\t|\\t |\\s$/;var className=\"ace_indent-guide\";if(this.showInvisibles){className+=\" ace_invisible\";var spaceContent=lang.stringRepeat(this.SPACE_CHAR,this.tabSize),tabContent=this.TAB_CHAR+lang.stringRepeat(\" \",this.tabSize-1)}else var spaceContent=lang.stringRepeat(\" \",this.tabSize),tabContent=spaceContent;this.$tabStrings[\" \"]=\"\u003Cspan class='\"+className+\"'>\"+spaceContent+\"\u003C/span>\",this.$tabStrings[\"\t\"]=\"\u003Cspan class='\"+className+\"'>\"+tabContent+\"\u003C/span>\"}},this.updateLines=function(config,firstRow,lastRow){(this.config.lastRow!=config.lastRow||this.config.firstRow!=config.firstRow)&&this.scrollLines(config),this.config=config;for(var first=Math.max(firstRow,config.firstRow),last=Math.min(lastRow,config.lastRow),lineElements=this.element.childNodes,lineElementsIdx=0,row=config.firstRow;first>row;row++){var foldLine=this.session.getFoldLine(row);if(foldLine){if(foldLine.containsRow(first)){first=foldLine.start.row;break}row=foldLine.end.row}lineElementsIdx++}for(var row=first,foldLine=this.session.getNextFoldLine(row),foldStart=foldLine?foldLine.start.row:1/0;;){if(row>foldStart&&(row=foldLine.end.row+1,foldLine=this.session.getNextFoldLine(row,foldLine),foldStart=foldLine?foldLine.start.row:1/0),row>last)break;var lineElement=lineElements[lineElementsIdx++];if(lineElement){var html=[];this.$renderLine(html,row,!this.$useLineGroups(),row==foldStart?foldLine:!1),dom.setInnerHtml(lineElement,html.join(\"\"))}row++}},this.scrollLines=function(config){var oldConfig=this.config;if(this.config=config,!oldConfig||oldConfig.lastRow\u003Cconfig.firstRow)return this.update(config);if(config.lastRow\u003ColdConfig.firstRow)return this.update(config);var el=this.element;if(oldConfig.firstRow\u003Cconfig.firstRow)for(var row=this.session.getFoldedRowCount(oldConfig.firstRow,config.firstRow-1);row>0;row--)el.removeChild(el.firstChild);if(oldConfig.lastRow>config.lastRow)for(var row=this.session.getFoldedRowCount(config.lastRow+1,oldConfig.lastRow);row>0;row--)el.removeChild(el.lastChild);if(config.firstRow\u003ColdConfig.firstRow){var fragment=this.$renderLinesFragment(config,config.firstRow,oldConfig.firstRow-1);el.firstChild?el.insertBefore(fragment,el.firstChild):el.appendChild(fragment)}if(config.lastRow>oldConfig.lastRow){var fragment=this.$renderLinesFragment(config,oldConfig.lastRow+1,config.lastRow);el.appendChild(fragment)}},this.$renderLinesFragment=function(config,firstRow,lastRow){for(var fragment=this.element.ownerDocument.createDocumentFragment(),row=firstRow,foldLine=this.session.getNextFoldLine(row),foldStart=foldLine?foldLine.start.row:1/0;;){if(row>foldStart&&(row=foldLine.end.row+1,foldLine=this.session.getNextFoldLine(row,foldLine),foldStart=foldLine?foldLine.start.row:1/0),row>lastRow)break;var container=dom.createElement(\"div\"),html=[];if(this.$renderLine(html,row,!1,row==foldStart?foldLine:!1),container.innerHTML=html.join(\"\"),this.$useLineGroups())container.className=\"ace_line_group\",fragment.appendChild(container);else for(var lines=container.childNodes;lines.length;)fragment.appendChild(lines[0]);row++}return fragment},this.update=function(config){this.config=config;for(var html=[],firstRow=config.firstRow,lastRow=config.lastRow,row=firstRow,foldLine=this.session.getNextFoldLine(row),foldStart=foldLine?foldLine.start.row:1/0;;){if(row>foldStart&&(row=foldLine.end.row+1,foldLine=this.session.getNextFoldLine(row,foldLine),foldStart=foldLine?foldLine.start.row:1/0),row>lastRow)break;this.$useLineGroups()&&html.push(\"\u003Cdiv class='ace_line_group'>\"),this.$renderLine(html,row,!1,row==foldStart?foldLine:!1),this.$useLineGroups()&&html.push(\"\u003C/div>\"),row++}this.element=dom.setInnerHtml(this.element,html.join(\"\"))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(stringBuilder,screenColumn,token,value){var self=this,replaceReg=/\\t|&|\u003C|( +)|([\\x00-\\x1f\\x80-\\xa0\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]/g,replaceFunc=function(c,a,b,tabIdx){if(a)return self.showInvisibles?\"\u003Cspan class='ace_invisible'>\"+lang.stringRepeat(self.SPACE_CHAR,c.length)+\"\u003C/span>\":lang.stringRepeat(\" \",c.length);if(\"&\"==c)return\"&\";if(\"\u003C\"==c)return\"<\";if(\"\t\"==c){var tabSize=self.session.getScreenTabSize(screenColumn+tabIdx);return screenColumn+=tabSize-1,self.$tabStrings[tabSize]}if(\" \"==c){var classToUse=self.showInvisibles?\"ace_cjk ace_invisible\":\"ace_cjk\",space=self.showInvisibles?self.SPACE_CHAR:\"\";return screenColumn+=1,\"\u003Cspan class='\"+classToUse+\"' style='width:\"+2*self.config.characterWidth+\"px'>\"+space+\"\u003C/span>\"}return b?\"\u003Cspan class='ace_invisible ace_invalid'>\"+self.SPACE_CHAR+\"\u003C/span>\":(screenColumn+=1,\"\u003Cspan class='ace_cjk' style='width:\"+2*self.config.characterWidth+\"px'>\"+c+\"\u003C/span>\")},output=value.replace(replaceReg,replaceFunc);if(this.$textToken[token.type])stringBuilder.push(output);else{var classes=\"ace_\"+token.type.replace(/\\./g,\" ace_\"),style=\"\";\"fold\"==token.type&&(style=\" style='width:\"+token.value.length*this.config.characterWidth+\"px;' \"),stringBuilder.push(\"\u003Cspan class='\",classes,\"'\",style,\">\",output,\"\u003C/span>\")}return screenColumn+value.length},this.renderIndentGuide=function(stringBuilder,value){var cols=value.search(this.$indentGuideRe);return 0>=cols?value:\" \"==value[0]?(cols-=cols%this.tabSize,stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"],cols/this.tabSize)),value.substr(cols)):\"\t\"==value[0]?(stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\t\"],cols)),value.substr(cols)):value},this.$renderWrappedLine=function(stringBuilder,tokens,splits,onlyContents){for(var chars=0,split=0,splitChars=splits[0],screenColumn=0,i=0;tokens.length>i;i++){var token=tokens[i],value=token.value;if(0==i&&this.displayIndentGuides){if(chars=value.length,value=this.renderIndentGuide(stringBuilder,value),!value)continue;chars-=value.length}if(splitChars>chars+value.length)screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value),chars+=value.length;else{for(;chars+value.length>=splitChars;)screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value.substring(0,splitChars-chars)),value=value.substring(splitChars-chars),chars=splitChars,onlyContents||stringBuilder.push(\"\u003C/div>\",\"\u003Cdiv class='ace_line' style='height:\",this.config.lineHeight,\"px'>\"),split++,screenColumn=0,splitChars=splits[split]||Number.MAX_VALUE;0!=value.length&&(chars+=value.length,screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value))}}},this.$renderSimpleLine=function(stringBuilder,tokens){var screenColumn=0,token=tokens[0],value=token.value;this.displayIndentGuides&&(value=this.renderIndentGuide(stringBuilder,value)),value&&(screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value));for(var i=1;tokens.length>i;i++)token=tokens[i],value=token.value,screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value)},this.$renderLine=function(stringBuilder,row,onlyContents,foldLine){if(foldLine||0==foldLine||(foldLine=this.session.getFoldLine(row)),foldLine)var tokens=this.$getFoldLineTokens(row,foldLine);else var tokens=this.session.getTokens(row);if(onlyContents||stringBuilder.push(\"\u003Cdiv class='ace_line' style='height:\",this.config.lineHeight,\"px'>\"),tokens.length){var splits=this.session.getRowSplitData(row);splits&&splits.length?this.$renderWrappedLine(stringBuilder,tokens,splits,onlyContents):this.$renderSimpleLine(stringBuilder,tokens)}this.showInvisibles&&(foldLine&&(row=foldLine.end.row),stringBuilder.push(\"\u003Cspan class='ace_invisible'>\",row==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,\"\u003C/span>\")),onlyContents||stringBuilder.push(\"\u003C/div>\")},this.$getFoldLineTokens=function(row,foldLine){function addTokens(tokens,from,to){for(var idx=0,col=0;from>col+tokens[idx].value.length;)if(col+=tokens[idx].value.length,idx++,idx==tokens.length)return;if(col!=from){var value=tokens[idx].value.substring(from-col);value.length>to-from&&(value=value.substring(0,to-from)),renderTokens.push({type:tokens[idx].type,value:value}),col=from+value.length,idx+=1}for(;to>col&&tokens.length>idx;){var value=tokens[idx].value;value.length+col>to?renderTokens.push({type:tokens[idx].type,value:value.substring(0,to-col)}):renderTokens.push(tokens[idx]),col+=value.length,idx+=1}}var session=this.session,renderTokens=[],tokens=session.getTokens(row);return foldLine.walk(function(placeholder,row,column,lastColumn,isNewRow){null!=placeholder?renderTokens.push({type:\"fold\",value:placeholder}):(isNewRow&&(tokens=session.getTokens(row)),tokens.length&&addTokens(tokens,lastColumn,column))},foldLine.end.row,this.session.getLine(foldLine.end.row).length),renderTokens},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(Text.prototype),exports.Text=Text}),ace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(acequire,exports){var dom=acequire(\"../lib/dom\"),Cursor=function(parentEl){this.element=dom.createElement(\"div\"),this.element.className=\"ace_layer ace_cursor-layer\",parentEl.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),dom.addCssClass(this.element,\"ace_hidden-cursors\")};(function(){this.$padding=0,this.setPadding=function(padding){this.$padding=padding},this.setSession=function(session){this.session=session},this.setBlinking=function(blinking){blinking!=this.isBlinking&&(this.isBlinking=blinking,this.restartTimer())},this.setBlinkInterval=function(blinkInterval){blinkInterval!=this.blinkInterval&&(this.blinkInterval=blinkInterval,this.restartTimer())},this.setSmoothBlinking=function(smoothBlinking){smoothBlinking!=this.smoothBlinking&&(this.smoothBlinking=smoothBlinking,smoothBlinking?dom.addCssClass(this.element,\"ace_smooth-blinking\"):dom.removeCssClass(this.element,\"ace_smooth-blinking\"),this.restartTimer())},this.addCursor=function(){var el=dom.createElement(\"div\");return el.className=\"ace_cursor\",this.element.appendChild(el),this.cursors.push(el),el},this.removeCursor=function(){if(this.cursors.length>1){var el=this.cursors.pop();return el.parentNode.removeChild(el),el}},this.hideCursor=function(){this.isVisible=!1,dom.addCssClass(this.element,\"ace_hidden-cursors\"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,dom.removeCssClass(this.element,\"ace_hidden-cursors\"),this.restartTimer()},this.restartTimer=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&dom.removeCssClass(this.element,\"ace_smooth-blinking\");for(var i=this.cursors.length;i--;)this.cursors[i].style.opacity=\"\";if(this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){dom.addCssClass(this.element,\"ace_smooth-blinking\")}.bind(this));var blink=function(){this.timeoutId=setTimeout(function(){for(var i=this.cursors.length;i--;)this.cursors[i].style.opacity=0}.bind(this),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){for(var i=this.cursors.length;i--;)this.cursors[i].style.opacity=\"\";blink()}.bind(this),this.blinkInterval),blink()}},this.getPixelPosition=function(position,onScreen){if(!this.config||!this.session)return{left:0,top:0};position||(position=this.session.selection.getCursor());var pos=this.session.documentToScreenPosition(position),cursorLeft=this.$padding+pos.column*this.config.characterWidth,cursorTop=(pos.row-(onScreen?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:cursorLeft,top:cursorTop}},this.update=function(config){this.config=config;var selections=this.session.$selectionMarkers,i=0,cursorIndex=0;(void 0===selections||0===selections.length)&&(selections=[{cursor:null}]);for(var i=0,n=selections.length;n>i;i++){var pixelPos=this.getPixelPosition(selections[i].cursor,!0);if(!((pixelPos.top>config.height+config.offset||pixelPos.top\u003C-config.offset)&&i>1)){var style=(this.cursors[cursorIndex++]||this.addCursor()).style;style.left=pixelPos.left+\"px\",style.top=pixelPos.top+\"px\",style.width=config.characterWidth+\"px\",style.height=config.lineHeight+\"px\"}}for(;this.cursors.length>cursorIndex;)this.removeCursor();var overwrite=this.session.getOverwrite();this.$setOverwrite(overwrite),this.$pixelPos=pixelPos,this.restartTimer()},this.$setOverwrite=function(overwrite){overwrite!=this.overwrite&&(this.overwrite=overwrite,overwrite?dom.addCssClass(this.element,\"ace_overwrite-cursors\"):dom.removeCssClass(this.element,\"ace_overwrite-cursors\"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(Cursor.prototype),exports.Cursor=Cursor}),ace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),dom=acequire(\"./lib/dom\"),event=acequire(\"./lib/event\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,ScrollBar=function(parent){this.element=dom.createElement(\"div\"),this.element.className=\"ace_scrollbar\",this.inner=dom.createElement(\"div\"),this.inner.className=\"ace_scrollbar-inner\",this.element.appendChild(this.inner),parent.appendChild(this.element),this.width=dom.scrollbarWidth(parent.ownerDocument),this.element.style.width=(this.width||15)+5+\"px\",event.addListener(this.element,\"scroll\",this.onScroll.bind(this))};(function(){oop.implement(this,EventEmitter),this.onScroll=function(){this.skipEvent||(this.scrollTop=this.element.scrollTop,this._emit(\"scroll\",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return this.width},this.setHeight=function(height){this.element.style.height=height+\"px\"},this.setInnerHeight=function(height){this.inner.style.height=height+\"px\"},this.setScrollTop=function(scrollTop){this.scrollTop!=scrollTop&&(this.skipEvent=!0,this.scrollTop=this.element.scrollTop=scrollTop)}}).call(ScrollBar.prototype),exports.ScrollBar=ScrollBar}),ace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"],function(acequire,exports){var event=acequire(\"./lib/event\"),RenderLoop=function(onRender,win){this.onRender=onRender,this.pending=!1,this.changes=0,this.window=win||window};(function(){this.schedule=function(change){if(this.changes=this.changes|change,!this.pending){this.pending=!0;var _self=this;event.nextFrame(function(){_self.pending=!1;for(var changes;changes=_self.changes;)_self.changes=0,_self.onRender(changes)},this.window)}}}).call(RenderLoop.prototype),exports.RenderLoop=RenderLoop}),ace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\"],function(acequire,exports){function find(session,needle,dir){return search.$options.wrap=!0,search.$options.needle=needle,search.$options.backwards=-1==dir,search.find(session)}function isSamePoint(p1,p2){return p1.row==p2.row&&p1.column==p2.column}function MultiSelect(editor){editor.$onAddRange=editor.$onAddRange.bind(editor),editor.$onRemoveRange=editor.$onRemoveRange.bind(editor),editor.$onMultiSelect=editor.$onMultiSelect.bind(editor),editor.$onSingleSelect=editor.$onSingleSelect.bind(editor),exports.onSessionChange.call(editor,editor),editor.on(\"changeSession\",exports.onSessionChange.bind(editor)),editor.on(\"mousedown\",onMouseDown),editor.commands.addCommands(commands.defaultCommands),addAltCursorListeners(editor)}function addAltCursorListeners(editor){function reset(){altCursor&&(contentEl.style.cursor=\"\",altCursor=!1)}var el=editor.textInput.getElement(),altCursor=!1,contentEl=editor.renderer.content;event.addListener(el,\"keydown\",function(e){18!=e.keyCode||e.ctrlKey||e.shiftKey||e.metaKey?altCursor&&(contentEl.style.cursor=\"\"):altCursor||(contentEl.style.cursor=\"crosshair\",altCursor=!0)}),event.addListener(el,\"keyup\",reset),event.addListener(el,\"blur\",reset)}var RangeList=acequire(\"./range_list\").RangeList,Range=acequire(\"./range\").Range,Selection=acequire(\"./selection\").Selection,onMouseDown=acequire(\"./mouse/multi_select_handler\").onMouseDown,event=acequire(\"./lib/event\"),lang=acequire(\"./lib/lang\"),commands=acequire(\"./commands/multi_select_commands\");exports.commands=commands.defaultCommands.concat(commands.multiSelectCommands);var Search=acequire(\"./search\").Search,search=new Search,EditSession=acequire(\"./edit_session\").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(EditSession.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(range,$blockChangeEvents){if(range){if(!this.inMultiSelectMode&&0==this.rangeCount){var oldRange=this.toOrientedRange();if(this.rangeList.add(oldRange),this.rangeList.add(range),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),$blockChangeEvents||this.fromOrientedRange(range);this.rangeList.removeAll(),this.rangeList.add(oldRange),this.$onAddRange(oldRange)}range.cursor||(range.cursor=range.end);var removed=this.rangeList.add(range);return this.$onAddRange(range),removed.length&&this.$onRemoveRange(removed),this.rangeCount>1&&!this.inMultiSelectMode&&(this._emit(\"multiSelect\"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),$blockChangeEvents||this.fromOrientedRange(range)}},this.toSingleRange=function(range){range=range||this.ranges[0];var removed=this.rangeList.removeAll();removed.length&&this.$onRemoveRange(removed),range&&this.fromOrientedRange(range)},this.substractPoint=function(pos){var removed=this.rangeList.substractPoint(pos);return removed?(this.$onRemoveRange(removed),removed[0]):void 0},this.mergeOverlappingRanges=function(){var removed=this.rangeList.merge();removed.length?this.$onRemoveRange(removed):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(range){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(range),this._emit(\"addRange\",{range:range})},this.$onRemoveRange=function(removed){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var lastRange=this.rangeList.ranges.pop();removed.push(lastRange),this.rangeCount=0}for(var i=removed.length;i--;){var index=this.ranges.indexOf(removed[i]);this.ranges.splice(index,1)}this._emit(\"removeRange\",{ranges:removed}),0==this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._emit(\"singleSelect\"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),lastRange=lastRange||this.ranges[0],lastRange&&!lastRange.isEqual(this.getRange())&&this.fromOrientedRange(lastRange)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new RangeList,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeList.ranges.concat()},this.splitIntoLines=function(){if(this.rangeCount>1){var ranges=this.rangeList.ranges,lastRange=ranges[ranges.length-1],range=Range.fromPoints(ranges[0].start,lastRange.end);this.toSingleRange(),this.setSelectionRange(range,lastRange.cursor==lastRange.start)}else{var range=this.getRange(),isBackwards=this.isBackwards(),startRow=range.start.row,endRow=range.end.row;if(startRow==endRow){if(isBackwards)var start=range.end,end=range.start;else var start=range.start,end=range.end;return this.addRange(Range.fromPoints(end,end)),this.addRange(Range.fromPoints(start,start)),void 0}var rectSel=[],r=this.getLineRange(startRow,!0);r.start.column=range.start.column,rectSel.push(r);for(var i=startRow+1;endRow>i;i++)rectSel.push(this.getLineRange(i,!0));r=this.getLineRange(endRow,!0),r.end.column=range.end.column,rectSel.push(r),rectSel.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var ranges=this.rangeList.ranges,lastRange=ranges[ranges.length-1],range=Range.fromPoints(ranges[0].start,lastRange.end);this.toSingleRange(),this.setSelectionRange(range,lastRange.cursor==lastRange.start)}else{var cursor=this.session.documentToScreenPosition(this.selectionLead),anchor=this.session.documentToScreenPosition(this.selectionAnchor),rectSel=this.rectangularRangeBlock(cursor,anchor);rectSel.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(screenCursor,screenAnchor,includeEmptyLines){var rectSel=[],xBackwards=screenCursor.column\u003CscreenAnchor.column;if(xBackwards)var startColumn=screenCursor.column,endColumn=screenAnchor.column;else var startColumn=screenAnchor.column,endColumn=screenCursor.column;var yBackwards=screenCursor.row\u003CscreenAnchor.row;if(yBackwards)var startRow=screenCursor.row,endRow=screenAnchor.row;else var startRow=screenAnchor.row,endRow=screenCursor.row;0>startColumn&&(startColumn=0),0>startRow&&(startRow=0),startRow==endRow&&(includeEmptyLines=!0);for(var row=startRow;endRow>=row;row++){var range=Range.fromPoints(this.session.screenToDocumentPosition(row,startColumn),this.session.screenToDocumentPosition(row,endColumn));if(range.isEmpty()){if(docEnd&&isSamePoint(range.end,docEnd))break;var docEnd=range.end}range.cursor=xBackwards?range.start:range.end,rectSel.push(range)}if(yBackwards&&rectSel.reverse(),!includeEmptyLines){for(var end=rectSel.length-1;rectSel[end].isEmpty()&&end>0;)end--;if(end>0)for(var start=0;rectSel[start].isEmpty();)start++;for(var i=end;i>=start;i--)rectSel[i].isEmpty()&&rectSel.splice(i,1)}return rectSel}}.call(Selection.prototype);var Editor=acequire(\"./editor\").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(orientedRange){orientedRange.cursor||(orientedRange.cursor=orientedRange.end);var style=this.getSelectionStyle();return orientedRange.marker=this.session.addMarker(orientedRange,\"ace_selection\",style),this.session.$selectionMarkers.push(orientedRange),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,orientedRange},this.removeSelectionMarker=function(range){if(range.marker){this.session.removeMarker(range.marker);var index=this.session.$selectionMarkers.indexOf(range);-1!=index&&this.session.$selectionMarkers.splice(index,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(ranges){for(var markerList=this.session.$selectionMarkers,i=ranges.length;i--;){var range=ranges[i];if(range.marker){this.session.removeMarker(range.marker);var index=markerList.indexOf(range);-1!=index&&markerList.splice(index,1)}}this.session.selectionMarkerCount=markerList.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle(\"ace_multiselect\"),this.keyBinding.addKeyboardHandler(commands.keyboardHandler),this.commands.on(\"exec\",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle(\"ace_multiselect\"),this.keyBinding.removeKeyboardHandler(commands.keyboardHandler),this.commands.removeEventListener(\"exec\",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onMultiSelectExec=function(e){var command=e.command,editor=e.editor;editor.multiSelect&&(command.multiSelectAction?\"forEach\"==command.multiSelectAction?editor.forEachSelection(command,e.args):\"forEachLine\"==command.multiSelectAction?editor.forEachSelection(command,e.args,!0):\"single\"==command.multiSelectAction?(editor.exitMultiSelectMode(),command.exec(editor,e.args||{})):command.multiSelectAction(editor,e.args||{}):(command.exec(editor,e.args||{}),editor.multiSelect.addRange(editor.multiSelect.toOrientedRange()),editor.multiSelect.mergeOverlappingRanges()),e.preventDefault())},this.forEachSelection=function(cmd,args,$byLines){if(!this.inVirtualSelectionMode){var session=this.session,selection=this.selection,rangeList=selection.rangeList,reg=selection._eventRegistry;selection._eventRegistry={};var tmpSel=new Selection(session);this.inVirtualSelectionMode=!0;for(var i=rangeList.ranges.length;i--;){if($byLines)for(;i>0&&rangeList.ranges[i].start.row==rangeList.ranges[i-1].end.row;)i--;tmpSel.fromOrientedRange(rangeList.ranges[i]),this.selection=session.selection=tmpSel,cmd.exec(this,args||{}),tmpSel.toOrientedRange(rangeList.ranges[i])}tmpSel.detach(),this.selection=session.selection=selection,this.inVirtualSelectionMode=!1,selection._eventRegistry=reg,selection.mergeOverlappingRanges(),this.onCursorChange(),this.onSelectionChange()}},this.exitMultiSelectMode=function(){this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getCopyText=function(){var text=\"\";if(this.inMultiSelectMode){var ranges=this.multiSelect.rangeList.ranges;text=[];for(var i=0;ranges.length>i;i++)text.push(this.session.getTextRange(ranges[i]));text=text.join(this.session.getDocument().getNewLineCharacter())}else this.selection.isEmpty()||(text=this.session.getTextRange(this.getSelectionRange()));return text},this.onPaste=function(text){if(!this.$readOnly){if(this._signal(\"paste\",text),!this.inMultiSelectMode||this.inVirtualSelectionMode)return this.insert(text);var lines=text.split(/\\r\\n|\\r|\\n/),ranges=this.selection.rangeList.ranges;if(lines.length>ranges.length||2>=lines.length||!lines[1])return this.commands.exec(\"insertstring\",this,text);for(var i=ranges.length;i--;){var range=ranges[i];range.isEmpty()||this.session.remove(range),this.session.insert(range.start,lines[i])}}},this.findAll=function(needle,options,additive){options=options||{},options.needle=needle||options.needle,this.$search.set(options);var ranges=this.$search.findAll(this.session);if(!ranges.length)return 0;this.$blockScrolling+=1;var selection=this.multiSelect;additive||selection.toSingleRange(ranges[0]);for(var i=ranges.length;i--;)selection.addRange(ranges[i],!0);return this.$blockScrolling-=1,ranges.length},this.selectMoreLines=function(dir,skip){var range=this.selection.toOrientedRange(),isBackwards=range.cursor==range.end,screenLead=this.session.documentToScreenPosition(range.cursor);this.selection.$desiredColumn&&(screenLead.column=this.selection.$desiredColumn);var lead=this.session.screenToDocumentPosition(screenLead.row+dir,screenLead.column);if(range.isEmpty())var anchor=lead;else var screenAnchor=this.session.documentToScreenPosition(isBackwards?range.end:range.start),anchor=this.session.screenToDocumentPosition(screenAnchor.row+dir,screenAnchor.column);if(isBackwards){var newRange=Range.fromPoints(lead,anchor);newRange.cursor=newRange.start}else{var newRange=Range.fromPoints(anchor,lead);newRange.cursor=newRange.end\n}if(newRange.desiredColumn=screenLead.column,this.selection.inMultiSelectMode){if(skip)var toRemove=range.cursor}else this.selection.addRange(range);this.selection.addRange(newRange),toRemove&&this.selection.substractPoint(toRemove)},this.transposeSelections=function(dir){for(var session=this.session,sel=session.multiSelect,all=sel.ranges,i=all.length;i--;){var range=all[i];if(range.isEmpty()){var tmp=session.getWordRange(range.start.row,range.start.column);range.start.row=tmp.start.row,range.start.column=tmp.start.column,range.end.row=tmp.end.row,range.end.column=tmp.end.column}}sel.mergeOverlappingRanges();for(var words=[],i=all.length;i--;){var range=all[i];words.unshift(session.getTextRange(range))}0>dir?words.unshift(words.pop()):words.push(words.shift());for(var i=all.length;i--;){var range=all[i],tmp=range.clone();session.replace(range,words[i]),range.start.row=tmp.start.row,range.start.column=tmp.start.column}},this.selectMore=function(dir,skip){var session=this.session,sel=session.multiSelect,range=sel.toOrientedRange();if(range.isEmpty()){var range=session.getWordRange(range.start.row,range.start.column);range.cursor=range.end,this.multiSelect.addRange(range)}var needle=session.getTextRange(range),newRange=find(session,needle,dir);newRange&&(newRange.cursor=-1==dir?newRange.start:newRange.end,this.multiSelect.addRange(newRange)),skip&&this.multiSelect.substractPoint(range.cursor)},this.alignCursors=function(){var session=this.session,sel=session.multiSelect,ranges=sel.ranges;if(ranges.length){var row=-1,sameRowRanges=ranges.filter(function(r){return r.cursor.row==row?!0:(row=r.cursor.row,void 0)});sel.$onRemoveRange(sameRowRanges);var maxCol=0,minSpace=1/0,spaceOffsets=ranges.map(function(r){var p=r.cursor,line=session.getLine(p.row),spaceOffset=line.substr(p.column).search(/\\S/g);return-1==spaceOffset&&(spaceOffset=0),p.column>maxCol&&(maxCol=p.column),minSpace>spaceOffset&&(minSpace=spaceOffset),spaceOffset});ranges.forEach(function(r,i){var p=r.cursor,l=maxCol-p.column,d=spaceOffsets[i]-minSpace;l>d?session.insert(p,lang.stringRepeat(\" \",l-d)):session.remove(new Range(p.row,p.column,p.row,p.column-l+d)),r.start.column=r.end.column=maxCol,r.start.row=r.end.row=p.row,r.cursor=r.end}),sel.fromOrientedRange(ranges[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var range=this.selection.getRange(),fr=range.start.row,lr=range.end.row,lines=this.session.doc.removeLines(fr,lr);lines=this.$reAlignText(lines),this.session.doc.insertLines(fr,lines),range.start.column=0,range.end.column=lines[lines.length-1].length,this.selection.setRange(range)}},this.$reAlignText=function(lines){function spaces(n){return lang.stringRepeat(\" \",n)}function alignLeft(m){return m[2]?spaces(startW)+m[2]+spaces(textW-m[2].length+endW)+m[4].replace(/^([=:])\\s+/,\"$1 \"):m[0]}function alignRight(m){return m[2]?spaces(startW+textW-m[2].length)+m[2]+spaces(endW,\" \")+m[4].replace(/^([=:])\\s+/,\"$1 \"):m[0]}function unAlign(m){return m[2]?spaces(startW)+m[2]+spaces(endW)+m[4].replace(/^([=:])\\s+/,\"$1 \"):m[0]}var startW,textW,endW,isLeftAligned=!0,isRightAligned=!0;return lines.map(function(line){var m=line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);return m?null==startW?(startW=m[1].length,textW=m[2].length,endW=m[3].length,m):(startW+textW+endW!=m[1].length+m[2].length+m[3].length&&(isRightAligned=!1),startW!=m[1].length&&(isLeftAligned=!1),startW>m[1].length&&(startW=m[1].length),m[2].length>textW&&(textW=m[2].length),endW>m[3].length&&(endW=m[3].length),m):[line]}).map(isLeftAligned?isRightAligned?alignRight:alignLeft:unAlign)}}).call(Editor.prototype),exports.onSessionChange=function(e){var session=e.session;session.multiSelect||(session.$selectionMarkers=[],session.selection.$initRangeList(),session.multiSelect=session.selection),this.multiSelect=session.multiSelect;var oldSession=e.oldSession;oldSession&&(oldSession.multiSelect.removeEventListener(\"addRange\",this.$onAddRange),oldSession.multiSelect.removeEventListener(\"removeRange\",this.$onRemoveRange),oldSession.multiSelect.removeEventListener(\"multiSelect\",this.$onMultiSelect),oldSession.multiSelect.removeEventListener(\"singleSelect\",this.$onSingleSelect)),session.multiSelect.on(\"addRange\",this.$onAddRange),session.multiSelect.on(\"removeRange\",this.$onRemoveRange),session.multiSelect.on(\"multiSelect\",this.$onMultiSelect),session.multiSelect.on(\"singleSelect\",this.$onSingleSelect),this.inMultiSelectMode!=session.selection.inMultiSelectMode&&(session.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},exports.MultiSelect=MultiSelect}),ace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"],function(acequire,exports){function isSamePoint(p1,p2){return p1.row==p2.row&&p1.column==p2.column}function onMouseDown(e){var ev=e.domEvent,alt=ev.altKey,shift=ev.shiftKey,ctrl=e.getAccelKey(),button=e.getButton();if(e.editor.inMultiSelectMode&&2==button)return e.editor.textInput.onContextMenu(e.domEvent),void 0;if(!ctrl&&!alt)return 0==button&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode(),void 0;var editor=e.editor,selection=editor.selection,isMultiSelect=editor.inMultiSelectMode,pos=e.getDocumentPosition(),cursor=selection.getCursor(),inSelection=e.inSelection()||selection.isEmpty()&&isSamePoint(pos,cursor),mouseX=e.x,mouseY=e.y,onMouseSelection=function(e){mouseX=e.clientX,mouseY=e.clientY},blockSelect=function(){var newCursor=editor.renderer.pixelToScreenCoordinates(mouseX,mouseY),cursor=session.screenToDocumentPosition(newCursor.row,newCursor.column);isSamePoint(screenCursor,newCursor)&&isSamePoint(cursor,selection.selectionLead)||(screenCursor=newCursor,editor.selection.moveCursorToPosition(cursor),editor.selection.clearSelection(),editor.renderer.scrollCursorIntoView(),editor.removeSelectionMarkers(rectSel),rectSel=selection.rectangularRangeBlock(screenCursor,screenAnchor),rectSel.forEach(editor.addSelectionMarker,editor),editor.updateSelectionMarkers())},session=editor.session,screenAnchor=editor.renderer.pixelToScreenCoordinates(mouseX,mouseY),screenCursor=screenAnchor;if(!ctrl||shift||alt||0!=button){if(alt&&0==button){e.stop(),isMultiSelect&&!ctrl?selection.toSingleRange():!isMultiSelect&&ctrl&&selection.addRange();var rectSel=[];shift?(screenAnchor=session.documentToScreenPosition(selection.lead),blockSelect()):(selection.moveCursorToPosition(pos),selection.clearSelection());var onMouseSelectionEnd=function(){clearInterval(timerId),editor.removeSelectionMarkers(rectSel);for(var i=0;rectSel.length>i;i++)selection.addRange(rectSel[i])},onSelectionInterval=blockSelect;event.capture(editor.container,onMouseSelection,onMouseSelectionEnd);var timerId=setInterval(function(){onSelectionInterval()},20);return e.preventDefault()}}else{if(!isMultiSelect&&inSelection)return;if(!isMultiSelect){var range=selection.toOrientedRange();editor.addSelectionMarker(range)}var oldRange=selection.rangeList.rangeAtPoint(pos);editor.once(\"mouseup\",function(){var tmpSel=selection.toOrientedRange();oldRange&&tmpSel.isEmpty()&&isSamePoint(oldRange.cursor,tmpSel.cursor)?selection.substractPoint(tmpSel.cursor):(range&&(editor.removeSelectionMarker(range),selection.addRange(range)),selection.addRange(tmpSel))})}}var event=acequire(\"../lib/event\");exports.onMouseDown=onMouseDown}),ace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"],function(acequire,exports){exports.defaultCommands=[{name:\"addCursorAbove\",exec:function(editor){editor.selectMoreLines(-1)},bindKey:{win:\"Ctrl-Alt-Up\",mac:\"Ctrl-Alt-Up\"},readonly:!0},{name:\"addCursorBelow\",exec:function(editor){editor.selectMoreLines(1)},bindKey:{win:\"Ctrl-Alt-Down\",mac:\"Ctrl-Alt-Down\"},readonly:!0},{name:\"addCursorAboveSkipCurrent\",exec:function(editor){editor.selectMoreLines(-1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Up\",mac:\"Ctrl-Alt-Shift-Up\"},readonly:!0},{name:\"addCursorBelowSkipCurrent\",exec:function(editor){editor.selectMoreLines(1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Down\",mac:\"Ctrl-Alt-Shift-Down\"},readonly:!0},{name:\"selectMoreBefore\",exec:function(editor){editor.selectMore(-1)},bindKey:{win:\"Ctrl-Alt-Left\",mac:\"Ctrl-Alt-Left\"},readonly:!0},{name:\"selectMoreAfter\",exec:function(editor){editor.selectMore(1)},bindKey:{win:\"Ctrl-Alt-Right\",mac:\"Ctrl-Alt-Right\"},readonly:!0},{name:\"selectNextBefore\",exec:function(editor){editor.selectMore(-1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Left\",mac:\"Ctrl-Alt-Shift-Left\"},readonly:!0},{name:\"selectNextAfter\",exec:function(editor){editor.selectMore(1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Right\",mac:\"Ctrl-Alt-Shift-Right\"},readonly:!0},{name:\"splitIntoLines\",exec:function(editor){editor.multiSelect.splitIntoLines()},bindKey:{win:\"Ctrl-Alt-L\",mac:\"Ctrl-Alt-L\"},readonly:!0},{name:\"alignCursors\",exec:function(editor){editor.alignCursors()},bindKey:{win:\"Ctrl-Alt-A\",mac:\"Ctrl-Alt-A\"}}],exports.multiSelectCommands=[{name:\"singleSelection\",bindKey:\"esc\",exec:function(editor){editor.exitMultiSelectMode()},readonly:!0,isAvailable:function(editor){return editor&&editor.inMultiSelectMode}}];var HashHandler=acequire(\"../keyboard/hash_handler\").HashHandler;exports.keyboardHandler=new HashHandler(exports.multiSelectCommands)}),ace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/config\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),EventEmitter=acequire(\"../lib/event_emitter\").EventEmitter,config=acequire(\"../config\"),WorkerClient=function(topLevelNamespaces,mod,classname){this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.onError=this.onError.bind(this);var workerUrl;if(config.get(\"packaged\"))workerUrl=config.moduleUrl(mod.id,\"worker\");else{var normalizePath=this.$normalizePath;acequire.nameToUrl&&!acequire.toUrl&&(acequire.toUrl=acequire.nameToUrl),workerUrl=normalizePath(acequire.toUrl(\"ace/worker/worker.js\",null,\"_\"));var tlns={};topLevelNamespaces.forEach(function(ns){tlns[ns]=normalizePath(acequire.toUrl(ns,null,\"_\").replace(/(\\.js)?(\\?.*)?$/,\"\"))})}var workerSrc=mod.src,Blob=require(\"w3c-blob\"),blob=new Blob([workerSrc],{type:\"application/javascript\"}),blobUrl=(window.URL||window.webkitURL).createObjectURL(blob);this.$worker=new Worker(blobUrl),this.$worker.postMessage({init:!0,tlns:tlns,module:mod.id,classname:classname}),this.callbackId=1,this.callbacks={},this.$worker.onerror=this.onError,this.$worker.onmessage=this.onMessage};(function(){oop.implement(this,EventEmitter),this.onError=function(e){throw window.console&&console.log&&console.log(e),e},this.onMessage=function(e){var msg=e.data;switch(msg.type){case\"log\":window.console&&console.log&&console.log.apply(console,msg.data);break;case\"event\":this._emit(msg.name,{data:msg.data});break;case\"call\":var callback=this.callbacks[msg.id];callback&&(callback(msg.data),delete this.callbacks[msg.id])}},this.$normalizePath=function(path){return location.host?(path=path.replace(/^[a-z]+:\\/\\/[^\\/]+/,\"\"),path=location.protocol+\"//\"+location.host+(\"/\"==path.charAt(0)?\"\":location.pathname.replace(/\\/[^\\/]*$/,\"\"))+\"/\"+path.replace(/^[\\/]+/,\"\")):path},this.terminate=function(){this._emit(\"terminate\",{}),this.$worker.terminate(),this.$worker=null,this.$doc.removeEventListener(\"change\",this.changeListener),this.$doc=null},this.send=function(cmd,args){this.$worker.postMessage({command:cmd,args:args})},this.call=function(cmd,args,callback){if(callback){var id=this.callbackId++;this.callbacks[id]=callback,args.push(id)}this.send(cmd,args)},this.emit=function(event,data){try{this.$worker.postMessage({event:event,data:{data:data.data}})}catch(ex){}},this.attachToDocument=function(doc){this.$doc&&this.terminate(),this.$doc=doc,this.call(\"setValue\",[doc.getValue()]),doc.on(\"change\",this.changeListener)},this.changeListener=function(e){e.range={start:e.data.range.start,end:e.data.range.end},this.emit(\"change\",e)}}).call(WorkerClient.prototype);var UIWorkerClient=function(topLevelNamespaces,mod,classname){this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var main=null,sender=Object.create(EventEmitter),_self=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){_self.messageBuffer.push(e),main&&setTimeout(processNext)};var processNext=function(){var msg=_self.messageBuffer.shift();msg.command?main[msg.command].apply(main,msg.args):msg.event&&sender._emit(msg.event,msg.data)};sender.postMessage=function(msg){_self.onMessage({data:msg})},sender.callback=function(data,callbackId){this.postMessage({type:\"call\",id:callbackId,data:data})},sender.emit=function(name,data){this.postMessage({type:\"event\",name:name,data:data})},config.loadModule([\"worker\",mod],function(Main){for(main=new Main[classname](sender);_self.messageBuffer.length;)processNext()})};UIWorkerClient.prototype=WorkerClient.prototype,exports.UIWorkerClient=UIWorkerClient,exports.WorkerClient=WorkerClient}),ace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"],function(acequire,exports){var Range=acequire(\"./range\").Range,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,oop=acequire(\"./lib/oop\"),PlaceHolder=function(session,length,pos,others,mainClass,othersClass){var _self=this;this.length=length,this.session=session,this.doc=session.getDocument(),this.mainClass=mainClass,this.othersClass=othersClass,this.$onUpdate=this.onUpdate.bind(this),this.doc.on(\"change\",this.$onUpdate),this.$others=others,this.$onCursorChange=function(){setTimeout(function(){_self.onCursorChange()})},this.$pos=pos;var undoStack=session.getUndoManager().$undoStack||session.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=undoStack.length,this.setup(),session.selection.on(\"changeCursor\",this.$onCursorChange)};(function(){oop.implement(this,EventEmitter),this.setup=function(){var _self=this,doc=this.doc,session=this.session,pos=this.$pos;this.pos=doc.createAnchor(pos.row,pos.column),this.markerId=session.addMarker(new Range(pos.row,pos.column,pos.row,pos.column+this.length),this.mainClass,null,!1),this.pos.on(\"change\",function(event){session.removeMarker(_self.markerId),_self.markerId=session.addMarker(new Range(event.value.row,event.value.column,event.value.row,event.value.column+_self.length),_self.mainClass,null,!1)}),this.others=[],this.$others.forEach(function(other){var anchor=doc.createAnchor(other.row,other.column);_self.others.push(anchor)}),session.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var session=this.session,_self=this;this.othersActive=!0,this.others.forEach(function(anchor){anchor.markerId=session.addMarker(new Range(anchor.row,anchor.column,anchor.row,anchor.column+_self.length),_self.othersClass,null,!1),anchor.on(\"change\",function(event){session.removeMarker(anchor.markerId),anchor.markerId=session.addMarker(new Range(event.value.row,event.value.column,event.value.row,event.value.column+_self.length),_self.othersClass,null,!1)})})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var i=0;this.others.length>i;i++)this.session.removeMarker(this.others[i].markerId)}},this.onUpdate=function(event){var delta=event.data,range=delta.range;if(range.start.row===range.end.row&&range.start.row===this.pos.row&&!this.$updating){this.$updating=!0;var lengthDiff=\"insertText\"===delta.action?range.end.column-range.start.column:range.start.column-range.end.column;if(range.start.column>=this.pos.column&&range.start.column\u003C=this.pos.column+this.length+1){var distanceFromStart=range.start.column-this.pos.column;if(this.length+=lengthDiff,!this.session.$fromUndo){if(\"insertText\"===delta.action)for(var i=this.others.length-1;i>=0;i--){var otherPos=this.others[i],newPos={row:otherPos.row,column:otherPos.column+distanceFromStart};otherPos.row===range.start.row&&range.start.column\u003CotherPos.column&&(newPos.column+=lengthDiff),this.doc.insert(newPos,delta.text)}else if(\"removeText\"===delta.action)for(var i=this.others.length-1;i>=0;i--){var otherPos=this.others[i],newPos={row:otherPos.row,column:otherPos.column+distanceFromStart};otherPos.row===range.start.row&&range.start.column\u003CotherPos.column&&(newPos.column+=lengthDiff),this.doc.remove(new Range(newPos.row,newPos.column,newPos.row,newPos.column-lengthDiff))}range.start.column===this.pos.column&&\"insertText\"===delta.action?setTimeout(function(){this.pos.setPosition(this.pos.row,this.pos.column-lengthDiff);for(var i=0;this.others.length>i;i++){var other=this.others[i],newPos={row:other.row,column:other.column-lengthDiff};other.row===range.start.row&&range.start.column\u003Cother.column&&(newPos.column+=lengthDiff),other.setPosition(newPos.row,newPos.column)}}.bind(this),0):range.start.column===this.pos.column&&\"removeText\"===delta.action&&setTimeout(function(){for(var i=0;this.others.length>i;i++){var other=this.others[i];other.row===range.start.row&&range.start.column\u003Cother.column&&other.setPosition(other.row,other.column-lengthDiff)}}.bind(this),0)}this.pos._emit(\"change\",{value:this.pos});for(var i=0;this.others.length>i;i++)this.others[i]._emit(\"change\",{value:this.others[i]})}this.$updating=!1}},this.onCursorChange=function(event){if(!this.$updating){var pos=this.session.selection.getCursor();pos.row===this.pos.row&&pos.column>=this.pos.column&&pos.column\u003C=this.pos.column+this.length?(this.showOtherMarkers(),this._emit(\"cursorEnter\",event)):(this.hideOtherMarkers(),this._emit(\"cursorLeave\",event))}},this.detach=function(){this.session.removeMarker(this.markerId),this.hideOtherMarkers(),this.doc.removeEventListener(\"change\",this.$onUpdate),this.session.selection.removeEventListener(\"changeCursor\",this.$onCursorChange),this.pos.detach();for(var i=0;this.others.length>i;i++)this.others[i].detach();this.session.setUndoSelect(!0)},this.cancel=function(){if(-1===this.$undoStackDepth)throw Error(\"Canceling placeholders only supported with undo manager attached to session.\");for(var undoManager=this.session.getUndoManager(),undosRequired=(undoManager.$undoStack||undoManager.$undostack).length-this.$undoStackDepth,i=0;undosRequired>i;i++)undoManager.undo(!0)}}).call(PlaceHolder.prototype),exports.PlaceHolder=PlaceHolder}),ace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(acequire,exports){var Range=acequire(\"../../range\").Range,FoldMode=exports.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(session,foldStyle,row){var line=session.getLine(row);return this.foldingStartMarker.test(line)?\"start\":\"markbeginend\"==foldStyle&&this.foldingStopMarker&&this.foldingStopMarker.test(line)?\"end\":\"\"},this.getFoldWidgetRange=function(){return null},this.indentationBlock=function(session,row,column){var re=/\\S/,line=session.getLine(row),startLevel=line.search(re);if(-1!=startLevel){for(var startColumn=column||line.length,maxRow=session.getLength(),startRow=row,endRow=row;maxRow>++row;){var level=session.getLine(row).search(re);if(-1!=level){if(startLevel>=level)break;endRow=row}}if(endRow>startRow){var endColumn=session.getLine(endRow).length;return new Range(startRow,startColumn,endRow,endColumn)}}},this.openingBracketBlock=function(session,bracket,row,column,typeRe){var start={row:row,column:column+1},end=session.$findClosingBracket(bracket,start,typeRe);if(end){var fw=session.foldWidgets[end.row];return null==fw&&(fw=this.getFoldWidget(session,end.row)),\"start\"==fw&&end.row>start.row&&(end.row--,end.column=session.getLine(end.row).length),Range.fromPoints(start,end)}},this.closingBracketBlock=function(session,bracket,row,column){var end={row:row,column:column},start=session.$findOpeningBracket(bracket,end);return start?(start.column++,end.column--,Range.fromPoints(start,end)):void 0}}).call(FoldMode.prototype)}),ace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(acequire,exports){exports.isDark=!1,exports.cssClass=\"ace-tm\",exports.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm .ace_scroller {background-color: #FFFFFF;}.ace-tm .ace_cursor {border-left: 2px solid black;}.ace-tm .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_markup.ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_markup.ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;border-radius: 2px;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var dom=acequire(\"../lib/dom\");dom.importCssString(exports.cssText,exports.cssClass)}),function(){ace.acequire([\"ace/ace\"],function(a){a&&a.config.init(),window.ace||(window.ace={});for(var key in a)a.hasOwnProperty(key)&&(ace[key]=a[key])})}(),module.exports=window.ace.acequire(\"ace/ace\")})()},{\"w3c-blob\":30}],31:[function(require,module,exports){var Object_keys=function(obj){if(Object.keys)return Object.keys(obj);var res=[];for(var key in obj)res.push(key);return res},forEach=function(xs,fn){if(xs.forEach)return xs.forEach(fn);for(var i=0;xs.length>i;i++)fn(xs[i],i,xs)},Script=exports.Script=function NodeScript(code){return this instanceof Script?(this.code=code,void 0):new Script(code)};Script.prototype.runInNewContext=function(context){context||(context={});var iframe=document.createElement(\"iframe\");iframe.style||(iframe.style={}),iframe.style.display=\"none\",document.body.appendChild(iframe);var win=iframe.contentWindow;forEach(Object_keys(context),function(key){win[key]=context[key]}),!win.eval&&win.execScript&&win.execScript(\"null\");var res=win.eval(this.code);return forEach(Object_keys(win),function(key){context[key]=win[key]}),document.body.removeChild(iframe),res},Script.prototype.runInThisContext=function(){return eval(this.code)},Script.prototype.runInContext=function(context){return this.runInNewContext(context)},forEach(Object_keys(Script.prototype),function(name){exports[name]=Script[name]=function(code){var s=Script(code);return s[name].apply(s,[].slice.call(arguments,1))}}),exports.createScript=function(code){return exports.Script(code)},exports.createContext=Script.createContext=function(context){var copy={};return\"object\"==typeof context&&forEach(Object_keys(context),function(key){copy[key]=context[key]}),copy}},{}],24:[function(require,module){\"use strict\";function Terminal(opts){if(opts=opts||{},!(this instanceof Terminal))return new Terminal(opts);this.cols=opts.cols||500,this.rows=opts.rows||500,this.ybase=0,this.ydisp=0,this.x=0,this.y=0,this.cursorState=0,this.cursorHidden=!1,this.convertEol=!1,this.state=states.normal,this.queue=\"\",this.scrollTop=0,this.scrollBottom=this.rows-1,this.applicationKeypad=!1,this.originMode=!1,this.insertMode=!1,this.wraparoundMode=!1,this.normal=null,this.charset=null,this.gcharset=null,this.glevel=0,this.charsets=[null],this.element,this.children,this.refreshStart,this.refreshEnd,this.savedX,this.savedY,this.savedCols,this.readable=!0,this.writable=!0,this.defAttr=131840,this.curAttr=this.defAttr,this.params=[],this.currentParam=0,this.prefix=\"\",this.postfix=\"\",this.lines=[];for(var i=this.rows;i--;)this.lines.push(this.blankLine());this.tabs,this.setupStops()}var states=require(\"./lib/states\");module.exports=Terminal,require(\"./lib/colors\")(Terminal),require(\"./lib/options\")(Terminal),require(\"./lib/open\")(Terminal),require(\"./lib/destroy\")(Terminal),require(\"./lib/refresh\")(Terminal),require(\"./lib/write\")(Terminal),require(\"./lib/setgLevel\"),require(\"./lib/setgCharset\"),require(\"./lib/debug\")(Terminal),require(\"./lib/stops\")(Terminal),require(\"./lib/erase\")(Terminal),require(\"./lib/blankLine\")(Terminal),require(\"./lib/range\")(Terminal),require(\"./lib/util\")(Terminal),require(\"./lib/esc/index.js\")(Terminal),require(\"./lib/esc/reset.js\")(Terminal),require(\"./lib/esc/tabSet.js\")(Terminal),require(\"./lib/csi/charAttributes\")(Terminal),require(\"./lib/csi/insert-delete\")(Terminal),require(\"./lib/csi/position\")(Terminal),require(\"./lib/csi/cursor\")(Terminal),require(\"./lib/csi/repeatPrecedingCharacter\")(Terminal),require(\"./lib/csi/tabClear\")(Terminal),require(\"./lib/csi/softReset\")(Terminal),require(\"./lib/charsets.js\")(Terminal)},{\"./lib/esc/index.js\":32,\"./lib/esc/reset.js\":33,\"./lib/esc/tabSet.js\":34,\"./lib/charsets.js\":35,\"./lib/states\":36,\"./lib/colors\":37,\"./lib/options\":38,\"./lib/open\":39,\"./lib/destroy\":40,\"./lib/refresh\":41,\"./lib/write\":42,\"./lib/setgLevel\":43,\"./lib/setgCharset\":44,\"./lib/debug\":45,\"./lib/stops\":46,\"./lib/erase\":47,\"./lib/blankLine\":48,\"./lib/range\":49,\"./lib/util\":50,\"./lib/csi/charAttributes\":51,\"./lib/csi/insert-delete\":52,\"./lib/csi/position\":53,\"./lib/csi/cursor\":54,\"./lib/csi/repeatPrecedingCharacter\":55,\"./lib/csi/tabClear\":56,\"./lib/csi/softReset\":57}],25:[function(require,module,exports){(function(process){function through(write,end){function drain(){for(;buffer.length&&!stream.paused;){var data=buffer.shift();if(null===data)return stream.emit(\"end\");stream.emit(\"data\",data)}}function _end(){stream.writable=!1,end.call(stream),stream.readable||stream.destroy()}write=write||function(data){this.queue(data)},end=end||function(){this.queue(null)};var ended=!1,destroyed=!1,buffer=[],stream=new Stream;return stream.readable=stream.writable=!0,stream.paused=!1,stream.write=function(data){return write.call(this,data),!stream.paused},stream.queue=stream.push=function(data){return buffer.push(data),drain(),stream},stream.on(\"end\",function(){stream.readable=!1,stream.writable||process.nextTick(function(){stream.destroy()})}),stream.end=function(data){return ended?void 0:(ended=!0,arguments.length&&stream.write(data),_end(),stream)},stream.destroy=function(){return destroyed?void 0:(destroyed=!0,ended=!0,buffer.length=0,stream.writable=stream.readable=!1,stream.emit(\"close\"),stream)},stream.pause=function(){return stream.paused?void 0:(stream.paused=!0,stream.emit(\"pause\"),stream)},stream.resume=function(){return stream.paused&&(stream.paused=!1),drain(),stream.paused||stream.emit(\"drain\"),stream},stream}var Stream=require(\"stream\");exports=module.exports=through,through.through=through})(require(\"__browserify_process\"))},{stream:58,__browserify_process:16}],30:[function(require,module){(function(global){function get_blob(){if(global.Blob)try{return new Blob([\"asdf\"],{type:\"text/plain\"}),Blob}catch(err){}var Builder=global.BlobBuilder;return\"function\"!=typeof Builder&&(Builder=global.WebKitBlobBuilder||global.MozBlobBuilder||global.MSBlobBuilder),function(parts,bag){var builder=new Builder,endings=bag.endings,type=bag.type;if(endings)for(var i=0,len=parts.length;len>i;++i)builder.append(parts[i],endings);else for(var i=0,len=parts.length;len>i;++i)builder.append(parts[i]);return type?builder.getBlob(type):builder.getBlob()}}module.exports=get_blob()})(window)},{}],33:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.reset=function(){Terminal.call(this,this.cols,this.rows),this.refresh(0,this.rows-1)}}},{}],35:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.charsets={},Terminal.charsets.SCLD={\"`\":\"◆\",a:\"▒\",b:\"\t\",c:\"\\f\",d:\"\\r\",e:\"\\n\",f:\"°\",g:\"±\",h:\"␤\",i:\"\u000b\",j:\"┘\",k:\"┐\",l:\"┌\",m:\"└\",n:\"┼\",o:\"⎺\",p:\"⎻\",q:\"─\",r:\"⎼\",s:\"⎽\",t:\"├\",u:\"┤\",v:\"┴\",w:\"┬\",x:\"│\",y:\"≤\",z:\"≥\",\"{\":\"π\",\"|\":\"≠\",\"}\":\"£\",\"~\":\"·\"},Terminal.charsets.UK=null,Terminal.charsets.US=null,Terminal.charsets.Dutch=null,Terminal.charsets.Finnish=null,Terminal.charsets.French=null,Terminal.charsets.FrenchCanadian=null,Terminal.charsets.German=null,Terminal.charsets.Italian=null,Terminal.charsets.NorwegianDanish=null,Terminal.charsets.Spanish=null,Terminal.charsets.Swedish=null,Terminal.charsets.Swiss=null,Terminal.charsets.ISOLatin=null}},{}],36:[function(require,module){\"use strict\";module.exports={normal:0,escaped:1,csi:2,osc:3,charset:4,dcs:5,ignore:6}},{}],37:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.colors=[\"#2e3436\",\"#cc0000\",\"#4e9a06\",\"#c4a000\",\"#3465a4\",\"#75507b\",\"#06989a\",\"#d3d7cf\",\"#555753\",\"#ef2929\",\"#8ae234\",\"#fce94f\",\"#729fcf\",\"#ad7fa8\",\"#34e2e2\",\"#eeeeec\"],Terminal.colors=function(){function out(r,g,b){colors.push(\"#\"+hex(r)+hex(g)+hex(b))}function hex(c){return c=c.toString(16),2>c.length?\"0\"+c:c}var i,colors=Terminal.colors,r=[0,95,135,175,215,255];for(i=0;216>i;i++)out(r[0|i/36%6],r[0|i/6%6],r[i%6]);for(i=0;24>i;i++)r=8+10*i,out(r,r,r);return colors}(),Terminal.defaultColors={bg:\"#000000\",fg:\"#f0f0f0\"},Terminal.colors[256]=Terminal.defaultColors.bg,Terminal.colors[257]=Terminal.defaultColors.fg}},{}],38:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.termName=\"xterm\",Terminal.geometry=[80,24],Terminal.cursorBlink=!0,Terminal.visualBell=!1,Terminal.popOnBell=!1,Terminal.scrollback=1e3,Terminal.screenKeys=!1,Terminal.programFeatures=!1,Terminal.debug=!1}},{}],39:[function(require,module){\"use strict\";function isBoldBroken(){var el=document.createElement(\"span\");el.innerHTML=\"hello world\",document.body.appendChild(el);var w1=el.scrollWidth;el.style.fontWeight=\"bold\";var w2=el.scrollWidth;return document.body.removeChild(el),w1!==w2}module.exports=function(Terminal){Terminal.prototype.open=function(){var div,i=0;for(this.element=document.createElement(\"div\"),this.element.className=\"terminal\",this.children=[];this.rows>i;i++)div=document.createElement(\"div\"),this.element.appendChild(div),this.children.push(div);this.refresh(0,this.rows-1),null===Terminal.brokenBold&&(Terminal.brokenBold=isBoldBroken()),this.element.style.backgroundColor=Terminal.defaultColors.bg,this.element.style.color=Terminal.defaultColors.fg}}},{}],40:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.destroy=function(){this.readable=!1,this.writable=!1,this._events={},this.handler=function(){},this.write=function(){}}}},{}],41:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.refresh=function(start,end){var x,y,i,line,out,ch,width,data,attr,fgColor,bgColor,flags,row,parent;\nfor(width=this.cols,y=start;end>=y;y++){if(row=y+this.ydisp,line=this.lines[row],!line)return this.reset();for(out=\"\",x=y===this.y&&this.cursorState&&this.ydisp===this.ybase&&!this.cursorHidden?this.x:-1,attr=this.defAttr,i=0;width>i;i++){switch(data=line[i][0],ch=line[i][1],i===x&&(data=-1),data!==attr&&(attr!==this.defAttr&&(out+=\"\u003C/span>\"),data!==this.defAttr&&(-1===data?out+='\u003Cspan class=\"reverse-video\">':(out+='\u003Cspan style=\"',bgColor=511&data,fgColor=511&data>>9,flags=data>>18,1&flags&&(Terminal.brokenBold||(out+=\"font-weight:bold;\"),8>fgColor&&(fgColor+=8)),2&flags&&(out+=\"text-decoration:underline;\"),256!==bgColor&&(out+=\"background-color:\"+Terminal.colors[bgColor]+\";\"),257!==fgColor&&(out+=\"color:\"+Terminal.colors[fgColor]+\";\"),out+='\">'))),ch){case\"&\":out+=\"&\";break;case\"\u003C\":out+=\"\u003C\";break;case\">\":out+=\">\";break;default:out+=\" \">=ch?\" \":ch}attr=data}attr!==this.defAttr&&(out+=\"\u003C/span>\"),this.children[y].innerHTML=out}parent&&parent.appendChild(this.element)}}},{}],43:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.setgLevel=function(g){this.glevel=g,this.charset=this.charsets[g]}}},{}],44:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.setgCharset=function(g,charset){this.charsets[g]=charset,this.glevel===g&&(this.charset=charset)}}},{}],45:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.log=function(){if(Terminal.debug&&window.console&&window.console.log){var args=Array.prototype.slice.call(arguments);window.console.log.apply(window.console,args)}},Terminal.prototype.error=function(){if(Terminal.debug&&window.console&&window.console.error){var args=Array.prototype.slice.call(arguments);window.console.error.apply(window.console,args)}}}},{}],47:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.eraseRight=function(x,y){for(var line=this.lines[this.ybase+y],ch=[this.curAttr,\" \"];this.cols>x;x++)line[x]=ch;this.updateRange(y)},Terminal.prototype.eraseLeft=function(x,y){var line=this.lines[this.ybase+y],ch=[this.curAttr,\" \"];for(x++;x--;)line[x]=ch;this.updateRange(y)},Terminal.prototype.eraseLine=function(y){this.eraseRight(0,y)},Terminal.prototype.eraseInDisplay=function(params){var j;switch(params[0]){case 0:for(this.eraseRight(this.x,this.y),j=this.y+1;this.rows>j;j++)this.eraseLine(j);break;case 1:for(this.eraseLeft(this.x,this.y),j=this.y;j--;)this.eraseLine(j);break;case 2:for(j=this.rows;j--;)this.eraseLine(j);break;case 3:}},Terminal.prototype.eraseInLine=function(params){switch(params[0]){case 0:this.eraseRight(this.x,this.y);break;case 1:this.eraseLeft(this.x,this.y);break;case 2:this.eraseLine(this.y)}}}},{}],46:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.setupStops=function(i){for(null!=i?this.tabs[i]||(i=this.prevStop(i)):(this.tabs={},i=0);this.cols>i;i+=8)this.tabs[i]=!0},Terminal.prototype.prevStop=function(x){for(null==x&&(x=this.x);!this.tabs[--x]&&x>0;);return x>=this.cols?this.cols-1:0>x?0:x},Terminal.prototype.nextStop=function(x){for(null==x&&(x=this.x);!this.tabs[++x]&&this.cols>x;);return x>=this.cols?this.cols-1:0>x?0:x}}},{}],48:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.blankLine=function(cur){for(var attr=cur?this.curAttr:this.defAttr,ch=[attr,\" \"],line=[],i=0;this.cols>i;i++)line[i]=ch;return line}}},{}],49:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.updateRange=function(y){this.refreshStart>y&&(this.refreshStart=y),y>this.refreshEnd&&(this.refreshEnd=y)},Terminal.prototype.maxRange=function(){this.refreshStart=0,this.refreshEnd=this.rows-1}}},{}],50:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.ch=function(cur){return cur?[this.curAttr,\" \"]:[this.defAttr,\" \"]},Terminal.prototype.is=function(term){var name=this.termName||Terminal.termName;return 0===(name+\"\").indexOf(term)}}},{}],51:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.charAttributes=function(params){for(var bg,fg,p,l=params.length,i=0;l>i;i++)if(p=params[i],p>=30&&37>=p)this.curAttr=-261633&this.curAttr|p-30\u003C\u003C9;else if(p>=40&&47>=p)this.curAttr=-512&this.curAttr|p-40;else if(p>=90&&97>=p)p+=8,this.curAttr=-261633&this.curAttr|p-90\u003C\u003C9;else if(p>=100&&107>=p)p+=8,this.curAttr=-512&this.curAttr|p-100;else if(0===p)this.curAttr=this.defAttr;else if(1===p)this.curAttr=this.curAttr|1\u003C\u003C18;else if(4===p)this.curAttr=this.curAttr|2\u003C\u003C18;else if(7===p||27===p){if(7===p){if(4&this.curAttr>>18)continue;this.curAttr=this.curAttr|4\u003C\u003C18}else if(27===p){if(4&~(this.curAttr>>18))continue;this.curAttr=-1048577&this.curAttr}bg=511&this.curAttr,fg=511&this.curAttr>>9,this.curAttr=-262144&this.curAttr|(bg\u003C\u003C9|fg)}else if(22===p)this.curAttr=-262145&this.curAttr;else if(24===p)this.curAttr=-524289&this.curAttr;else if(39===p)this.curAttr=-261633&this.curAttr,this.curAttr=this.curAttr|(511&this.defAttr>>9)\u003C\u003C9;else if(49===p)this.curAttr=-512&this.curAttr,this.curAttr=this.curAttr|511&this.defAttr;else if(38===p){if(5!==params[i+1])continue;i+=2,p=255¶ms[i],this.curAttr=-261633&this.curAttr|p\u003C\u003C9}else if(48===p){if(5!==params[i+1])continue;i+=2,p=255¶ms[i],this.curAttr=-512&this.curAttr|p}}}},{}],52:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.insertChars=function(params){var param,row,j,ch;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,j=this.x,ch=[this.curAttr,\" \"];param--&&this.cols>j;)this.lines[row].splice(j++,0,ch),this.lines[row].pop()},Terminal.prototype.insertLines=function(params){var param,row,j;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,j=this.rows-1-this.scrollBottom,j=this.rows-1+this.ybase-j+1;param--;)this.lines.splice(row,0,this.blankLine(!0)),this.lines.splice(j,1);this.updateRange(this.y),this.updateRange(this.scrollBottom)},Terminal.prototype.deleteLines=function(params){var param,row,j;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,j=this.rows-1-this.scrollBottom,j=this.rows-1+this.ybase-j;param--;)this.lines.splice(j+1,0,this.blankLine(!0)),this.lines.splice(row,1);this.updateRange(this.y),this.updateRange(this.scrollBottom)},Terminal.prototype.deleteChars=function(params){var param,row,ch;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,ch=[this.curAttr,\" \"];param--;)this.lines[row].splice(this.x,1),this.lines[row].push(ch)},Terminal.prototype.eraseChars=function(params){var param,row,j,ch;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,j=this.x,ch=[this.curAttr,\" \"];param--&&this.cols>j;)this.lines[row][j++]=ch}}},{}],53:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.charPosAbsolute=function(params){var param=params[0];1>param&&(param=1),this.x=param-1,this.x>=this.cols&&(this.x=this.cols-1)},Terminal.prototype.HPositionRelative=function(params){var param=params[0];1>param&&(param=1),this.x+=param,this.x>=this.cols&&(this.x=this.cols-1)},Terminal.prototype.linePosAbsolute=function(params){var param=params[0];1>param&&(param=1),this.y=param-1,this.y>=this.rows&&(this.y=this.rows-1)},Terminal.prototype.VPositionRelative=function(params){var param=params[0];1>param&&(param=1),this.y+=param,this.y>=this.rows&&(this.y=this.rows-1)},Terminal.prototype.HVPosition=function(params){1>params[0]&&(params[0]=1),1>params[1]&&(params[1]=1),this.y=params[0]-1,this.y>=this.rows&&(this.y=this.rows-1),this.x=params[1]-1,this.x>=this.cols&&(this.x=this.cols-1)}}},{}],54:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.saveCursor=function(){this.savedX=this.x,this.savedY=this.y},Terminal.prototype.restoreCursor=function(){this.x=this.savedX||0,this.y=this.savedY||0},Terminal.prototype.cursorUp=function(params){var param=params[0];1>param&&(param=1),this.y-=param,0>this.y&&(this.y=0)},Terminal.prototype.cursorDown=function(params){var param=params[0];1>param&&(param=1),this.y+=param,this.y>=this.rows&&(this.y=this.rows-1)},Terminal.prototype.cursorForward=function(params){var param=params[0];1>param&&(param=1),this.x+=param,this.x>=this.cols&&(this.x=this.cols-1)},Terminal.prototype.cursorBackward=function(params){var param=params[0];1>param&&(param=1),this.x-=param,0>this.x&&(this.x=0)},Terminal.prototype.cursorPos=function(params){var row,col;row=params[0]-1,col=params.length>=2?params[1]-1:0,0>row?row=0:row>=this.rows&&(row=this.rows-1),0>col?col=0:col>=this.cols&&(col=this.cols-1),this.x=col,this.y=row},Terminal.prototype.cursorNextLine=function(params){var param=params[0];1>param&&(param=1),this.y+=param,this.y>=this.rows&&(this.y=this.rows-1),this.x=0},Terminal.prototype.cursorPrecedingLine=function(params){var param=params[0];1>param&&(param=1),this.y-=param,0>this.y&&(this.y=0),this.x=0},Terminal.prototype.cursorCharAbsolute=function(params){var param=params[0];1>param&&(param=1),this.x=param-1},Terminal.prototype.cursorForwardTab=function(params){for(var param=params[0]||1;param--;)this.x=this.nextStop()},Terminal.prototype.cursorBackwardTab=function(params){for(var param=params[0]||1;param--;)this.x=this.prevStop()}}},{}],55:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.repeatPrecedingCharacter=function(params){for(var param=params[0]||1,line=this.lines[this.ybase+this.y],ch=line[this.x-1]||[this.defAttr,\" \"];param--;)line[this.x++]=ch}}},{}],56:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.tabClear=function(params){var param=params[0];0>=param?delete this.tabs[this.x]:3===param&&(this.tabs={})}}},{}],57:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.softReset=function(){this.cursorHidden=!1,this.insertMode=!1,this.originMode=!1,this.wraparoundMode=!1,this.applicationKeypad=!1,this.scrollTop=0,this.scrollBottom=this.rows-1,this.curAttr=this.defAttr,this.x=this.y=0,this.charset=null,this.glevel=0,this.charsets=[null]}}},{}],58:[function(require,module){function Stream(){events.EventEmitter.call(this)}var events=require(\"events\"),util=require(\"util\");util.inherits(Stream,events.EventEmitter),module.exports=Stream,Stream.Stream=Stream,Stream.prototype.pipe=function(dest,options){function ondata(chunk){dest.writable&&!1===dest.write(chunk)&&source.pause&&source.pause()}function ondrain(){source.readable&&source.resume&&source.resume()}function onend(){didOnEnd||(didOnEnd=!0,dest._pipeCount--,cleanup(),dest._pipeCount>0||dest.end())}function onclose(){didOnEnd||(didOnEnd=!0,dest._pipeCount--,cleanup(),dest._pipeCount>0||dest.destroy())}function onerror(er){if(cleanup(),0===this.listeners(\"error\").length)throw er}function cleanup(){source.removeListener(\"data\",ondata),dest.removeListener(\"drain\",ondrain),source.removeListener(\"end\",onend),source.removeListener(\"close\",onclose),source.removeListener(\"error\",onerror),dest.removeListener(\"error\",onerror),source.removeListener(\"end\",cleanup),source.removeListener(\"close\",cleanup),dest.removeListener(\"end\",cleanup),dest.removeListener(\"close\",cleanup)}var source=this;source.on(\"data\",ondata),dest.on(\"drain\",ondrain),dest._isStdio||options&&options.end===!1||(dest._pipeCount=dest._pipeCount||0,dest._pipeCount++,source.on(\"end\",onend),source.on(\"close\",onclose));var didOnEnd=!1;return source.on(\"error\",onerror),dest.on(\"error\",onerror),source.on(\"end\",cleanup),source.on(\"close\",cleanup),dest.on(\"end\",cleanup),dest.on(\"close\",cleanup),dest.emit(\"pipe\",source),dest}},{events:15,util:6}],59:[function(require,module,exports){\"use strict\";var vm=require(\"vm\");exports.createCtx=function(sandbox){return vm.createContext(sandbox)},exports.runInCtx=function(code,ctx){return vm.runInContext(code,ctx)}},{vm:31}],60:[function(require,module){\"use strict\";module.exports=function(arr){return arr.filter(function(k){return!filterOut.hasOwnProperty(k)})};var filterOuts=[\"ArrayBuffer\",\"Attr\",\"BeforeLoadEvent\",\"Blob\",\"CDATASection\",\"CSSCharsetRule\",\"CSSImportRule\",\"CSSMediaRule\",\"CSSPageRule\",\"CSSPrimitiveValue\",\"CSSRuleList\",\"CSSStyleDeclaration\",\"CSSStyleSheet\",\"CSSValue\",\"CanvasGradient\",\"ClientRectList\",\"Clipboard\",\"CompositionEvent\",\"Counter\",\"DOMException\",\"DOMParser\",\"DOMStringMap\",\"DOMTokenList\",\"Document\",\"DocumentFragment\",\"DocumentType\",\"Element\",\"ErrorEvent\",\"Event\",\"EventSource\",\"File\",\"FileError\",\"FileList\",\"Float32Array\",\"HTMLAllCollection\",\"HTMLAreaElement\",\"HTMLBRElement\",\"HTMLButtonElement\",\"HTMLCanvasElement\",\"HTMLCollection\",\"HTMLDListElement\",\"HTMLDirectoryElement\",\"HTMLDivElement\",\"HTMLFormElement\",\"HTMLFrameElement\",\"HTMLHRElement\",\"HTMLIFrameElement\",\"HTMLImageElement\",\"HTMLInputElement\",\"HTMLLinkElement\",\"HTMLMapElement\",\"HTMLMediaElement\",\"HTMLMenuElement\",\"HTMLMeterElement\",\"HTMLOptGroupElement\",\"HTMLParamElement\",\"HTMLProgressElement\",\"HTMLQuoteElement\",\"HTMLSelectElement\",\"HTMLTableCaptionElement\",\"HTMLTableColElement\",\"HTMLTableSectionElement\",\"HTMLUListElement\",\"HTMLUnknownElement\",\"HashChangeEvent\",\"ImageData\",\"Int16Array\",\"Int8Array\",\"MediaController\",\"MediaError\",\"MediaList\",\"MessageChannel\",\"MimeType\",\"MutationEvent\",\"NamedNodeMap\",\"NodeFilter\",\"Notation\",\"OverflowEvent\",\"Plugin\",\"PluginArray\",\"PopStateEvent\",\"RGBColor\",\"Range\",\"Rect\",\"SQLException\",\"SVGAltGlyphItemElement\",\"SVGAnimateColorElement\",\"SVGAnimatedAngle\",\"SVGAnimatedEnumeration\",\"SVGAnimatedLength\",\"SVGAnimatedLengthList\",\"SVGAnimatedNumberList\",\"SVGAnimatedRect\",\"SVGAnimatedString\",\"SVGAnimatedTransformList\",\"SVGClipPathElement\",\"SVGDefsElement\",\"SVGElementInstanceList\",\"SVGEllipseElement\",\"SVGException\",\"SVGFEComponentTransferElement\",\"SVGFEConvolveMatrixElement\",\"SVGFEDiffuseLightingElement\",\"SVGFEDistantLightElement\",\"SVGFEFloodElement\",\"SVGFEFuncBElement\",\"SVGFEFuncGElement\",\"SVGFEFuncRElement\",\"SVGFEGaussianBlurElement\",\"SVGFEImageElement\",\"SVGFEMergeNodeElement\",\"SVGFEOffsetElement\",\"SVGFESpecularLightingElement\",\"SVGFilterElement\",\"SVGFontElement\",\"SVGFontFaceNameElement\",\"SVGFontFaceUriElement\",\"SVGGlyphElement\",\"SVGGlyphRefElement\",\"SVGGradientElement\",\"SVGHKernElement\",\"SVGLengthList\",\"SVGLinearGradientElement\",\"SVGMarkerElement\",\"SVGMatrix\",\"SVGNumber\",\"SVGPaint\",\"SVGPathSegArcAbs\",\"SVGPathSegArcRel\",\"SVGPathSegCurvetoCubicAbs\",\"SVGPathSegCurvetoCubicSmoothAbs\",\"SVGPathSegCurvetoCubicSmoothRel\",\"SVGPathSegCurvetoQuadraticRel\",\"SVGPathSegCurvetoQuadraticSmoothAbs\",\"SVGPathSegCurvetoQuadraticSmoothRel\",\"SVGPathSegLinetoHorizontalRel\",\"SVGPathSegLinetoVerticalRel\",\"SVGPathSegList\",\"SVGPathSegMovetoAbs\",\"SVGPatternElement\",\"SVGPointList\",\"SVGPolylineElement\",\"SVGPreserveAspectRatio\",\"SVGRectElement\",\"SVGSetElement\",\"SVGStopElement\",\"SVGStringList\",\"SVGSymbolElement\",\"SVGTSpanElement\",\"SVGTextPathElement\",\"SVGTransformList\",\"SVGZoomEvent\",\"Selection\",\"Storage\",\"StorageEvent\",\"TextEvent\",\"TextMetrics\",\"TextTrackCueList\",\"UIEvent\",\"Uint32Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"WebGLActiveInfo\",\"WebGLProgram\",\"WebGLRenderbuffer\",\"WebGLRenderingContext\",\"WebGLShader\",\"WebKitAnimationEvent\",\"WebKitCSSFilterValue\",\"WebKitCSSKeyframeRule\",\"WebKitCSSTransformValue\",\"WebKitPoint\",\"WebKitTransitionEvent\",\"Window\",\"Worker\",\"XMLDocument\",\"XMLHttpRequest\",\"XMLHttpRequestException\",\"XPathEvaluator\",\"XPathResult\",\"clientInformation\",\"console\",\"exports\",\"frameElement\",\"frames\",\"history\",\"localStorage\",\"location\",\"locationbar\",\"menubar\",\"navigator\",\"onbeforeunload\",\"onblur\",\"oncanplaythrough\",\"onclick\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onerror\",\"onkeydown\",\"onkeypress\",\"onloadeddata\",\"onloadstart\",\"onmessage\",\"onmouseout\",\"onmouseover\",\"onoffline\",\"ononline\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onscroll\",\"onsearch\",\"onselect\",\"onsuspend\",\"ontimeupdate\",\"onwebkittransitionend\",\"opener\",\"scrollbars\",\"styleMedia\",\"toolbar\",\"webkitAudioContext\",\"webkitAudioPannerNode\",\"webkitURL\",\"Audio\",\"AudioProcessingEvent\",\"CSSFontFaceRule\",\"CSSRule\",\"CSSStyleRule\",\"CSSValueList\",\"CanvasPattern\",\"CanvasRenderingContext2D\",\"CharacterData\",\"ClientRect\",\"CloseEvent\",\"Comment\",\"CustomEvent\",\"DOMImplementation\",\"DOMSettableTokenList\",\"DOMStringList\",\"DataView\",\"Entity\",\"EntityReference\",\"EventException\",\"FileReader\",\"Float64Array\",\"FormData\",\"HTMLAnchorElement\",\"HTMLAppletElement\",\"HTMLAudioElement\",\"HTMLBaseElement\",\"HTMLBaseFontElement\",\"HTMLBodyElement\",\"HTMLDocument\",\"HTMLElement\",\"HTMLEmbedElement\",\"HTMLFieldSetElement\",\"HTMLFontElement\",\"HTMLFrameSetElement\",\"HTMLHeadElement\",\"HTMLHeadingElement\",\"HTMLHtmlElement\",\"HTMLKeygenElement\",\"HTMLLIElement\",\"HTMLLabelElement\",\"HTMLLegendElement\",\"HTMLMarqueeElement\",\"HTMLMetaElement\",\"HTMLModElement\",\"HTMLOListElement\",\"HTMLObjectElement\",\"HTMLOptionElement\",\"HTMLOutputElement\",\"HTMLParagraphElement\",\"HTMLPreElement\",\"HTMLScriptElement\",\"HTMLSourceElement\",\"HTMLSpanElement\",\"HTMLStyleElement\",\"HTMLTableCellElement\",\"HTMLTableElement\",\"HTMLTableRowElement\",\"HTMLTextAreaElement\",\"HTMLTitleElement\",\"HTMLTrackElement\",\"HTMLVideoElement\",\"Image\",\"Int32Array\",\"KeyboardEvent\",\"MessageEvent\",\"MessagePort\",\"MimeTypeArray\",\"MouseEvent\",\"Node\",\"NodeList\",\"OfflineAudioCompletionEvent\",\"Option\",\"PageTransitionEvent\",\"ProcessingInstruction\",\"ProgressEvent\",\"RangeException\",\"SVGAElement\",\"SVGAltGlyphDefElement\",\"SVGAltGlyphElement\",\"SVGAngle\",\"SVGAnimateElement\",\"SVGAnimateMotionElement\",\"SVGAnimateTransformElement\",\"SVGAnimatedBoolean\",\"SVGAnimatedInteger\",\"SVGAnimatedNumber\",\"SVGAnimatedPreserveAspectRatio\",\"SVGCircleElement\",\"SVGColor\",\"SVGComponentTransferFunctionElement\",\"SVGCursorElement\",\"SVGDescElement\",\"SVGDocument\",\"SVGElement\",\"SVGElementInstance\",\"SVGFEBlendElement\",\"SVGFEColorMatrixElement\",\"SVGFECompositeElement\",\"SVGFEDisplacementMapElement\",\"SVGFEDropShadowElement\",\"SVGFEFuncAElement\",\"SVGFEMergeElement\",\"SVGFEMorphologyElement\",\"SVGFEPointLightElement\",\"SVGFESpotLightElement\",\"SVGFETileElement\",\"SVGFETurbulenceElement\",\"SVGFontFaceElement\",\"SVGFontFaceFormatElement\",\"SVGFontFaceSrcElement\",\"SVGForeignObjectElement\",\"SVGGElement\",\"SVGImageElement\",\"SVGLength\",\"SVGLineElement\",\"SVGMPathElement\",\"SVGMaskElement\",\"SVGMetadataElement\",\"SVGMissingGlyphElement\",\"SVGNumberList\",\"SVGPathElement\",\"SVGPathSeg\",\"SVGPathSegClosePath\",\"SVGPathSegCurvetoCubicRel\",\"SVGPathSegCurvetoQuadraticAbs\",\"SVGPathSegLinetoAbs\",\"SVGPathSegLinetoHorizontalAbs\",\"SVGPathSegLinetoRel\",\"SVGPathSegLinetoVerticalAbs\",\"SVGPathSegMovetoRel\",\"SVGPoint\",\"SVGPolygonElement\",\"SVGRadialGradientElement\",\"SVGRect\",\"SVGRenderingIntent\",\"SVGSVGElement\",\"SVGScriptElement\",\"SVGStyleElement\",\"SVGSwitchElement\",\"SVGTRefElement\",\"SVGTextContentElement\",\"SVGTextElement\",\"SVGTextPositioningElement\",\"SVGTitleElement\",\"SVGTransform\",\"SVGUnitTypes\",\"SVGUseElement\",\"SVGVKernElement\",\"SVGViewElement\",\"SharedWorker\",\"StyleSheet\",\"StyleSheetList\",\"Text\",\"TextTrack\",\"TextTrackCue\",\"TextTrackList\",\"TimeRanges\",\"TrackEvent\",\"Uint16Array\",\"WebGLBuffer\",\"WebGLContextEvent\",\"WebGLFramebuffer\",\"WebGLShaderPrecisionFormat\",\"WebGLTexture\",\"WebGLUniformLocation\",\"WebKitCSSKeyframesRule\",\"WebKitCSSMatrix\",\"WebKitMutationObserver\",\"WebSocket\",\"WheelEvent\",\"XMLHttpRequestProgressEvent\",\"XMLHttpRequestUpload\",\"XMLSerializer\",\"XPathException\",\"XSLTProcessor\",\"applicationCache\",\"closed\",\"crypto\",\"defaultStatus\",\"defaultstatus\",\"devicePixelRatio\",\"event\",\"innerHeight\",\"innerWidth\",\"length\",\"module\",\"name\",\"offscreenBuffering\",\"onabort\",\"oncanplay\",\"onchange\",\"oncontextmenu\",\"ondblclick\",\"ondrag\",\"ondragend\",\"onended\",\"onfocus\",\"onhashchange\",\"oninput\",\"oninvalid\",\"onkeyup\",\"onload\",\"onloadedmetadata\",\"onmousedown\",\"onmousemove\",\"onmouseup\",\"onmousewheel\",\"onpagehide\",\"onpageshow\",\"onpause\",\"onpopstate\",\"onreset\",\"onresize\",\"onseeked\",\"onseeking\",\"onstalled\",\"onstorage\",\"onsubmit\",\"onunload\",\"onvolumechange\",\"onwaiting\",\"onwebkitanimationend\",\"onwebkitanimationiteration\",\"onwebkitanimationstart\",\"outerHeight\",\"outerWidth\",\"pageXOffset\",\"pageYOffset\",\"parent\",\"personalbar\",\"screen\",\"screenLeft\",\"screenTop\",\"screenX\",\"screenY\",\"scrollX\",\"scrollY\",\"self\",\"sessionStorage\",\"status\",\"statusbar\",\"Touch\",\"TouchList\",\"TouchEvent\",\"DeviceMotionEvent\",\"DeviceOrientationEvent\",\"orientation\",\"onorientationchange\",\"ontouched\",\"ondeviceorientation\",\"ontouchmove\",\"ondevicemotion\",\"ontouchcancel\",\"ontouchstart\",\"ongestureend\",\"ontouchend\",\"ongesturestart\",\"ongesturechange\",\"getSearchEngine\",\"setSearchEngine\",\"canSetSearchEngine\",\"InstallTrigger\",\"getInterface\",\"sidebar\"],filterOut={};filterOuts.forEach(function(k){filterOut[k]=!0})},{}],61:[function(require,module){\"use strict\";var exclude={};module.exports=function(thing,exclude_){var t={},ex=exclude_||exclude;return thing?(Object.keys(thing).filter(function(k){return!ex[k]}).forEach(function(k){thing.hasOwnProperty(k)&&(t[k]=thing[k])}),t):t},[\"top\",\"Intl\",\"chrome\",\"document\",\"external\",\"v8Intl\",\"window\",\"frameElement\",\"parent\"].forEach(function(k){exclude[k]=!0})},{}],28:[function(require,module){module.exports={highlight:require(\"./lib/highlight\"),highlightFile:require(\"./lib/highlightFile\"),highlightFileSync:require(\"./lib/highlightFileSync\")}},{\"./lib/highlight\":62,\"./lib/highlightFile\":63,\"./lib/highlightFileSync\":64}],65:[function(require,module,exports){(function(process){function filter(xs,fn){for(var res=[],i=0;xs.length>i;i++)fn(xs[i],i,xs)&&res.push(xs[i]);return res}function normalizeArray(parts,allowAboveRoot){for(var up=0,i=parts.length;i>=0;i--){var last=parts[i];\".\"==last?parts.splice(i,1):\"..\"===last?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up--;up)parts.unshift(\"..\");return parts}var splitPathRe=/^(.+\\/(?!$)|\\/)?((?:.+?)?(\\.[^.]*)?)$/;exports.resolve=function(){for(var resolvedPath=\"\",resolvedAbsolute=!1,i=arguments.length;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();\"string\"==typeof path&&path&&(resolvedPath=path+\"/\"+resolvedPath,resolvedAbsolute=\"/\"===path.charAt(0))}return resolvedPath=normalizeArray(filter(resolvedPath.split(\"/\"),function(p){return!!p}),!resolvedAbsolute).join(\"/\"),(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},exports.normalize=function(path){var isAbsolute=\"/\"===path.charAt(0),trailingSlash=\"/\"===path.slice(-1);return path=normalizeArray(filter(path.split(\"/\"),function(p){return!!p}),!isAbsolute).join(\"/\"),path||isAbsolute||(path=\".\"),path&&trailingSlash&&(path+=\"/\"),(isAbsolute?\"/\":\"\")+path},exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p){return p&&\"string\"==typeof p}).join(\"/\"))},exports.dirname=function(path){var dir=splitPathRe.exec(path)[1]||\"\",isWindows=!1;return dir?1===dir.length||isWindows&&3>=dir.length&&\":\"===dir.charAt(1)?dir:dir.substring(0,dir.length-1):\".\"},exports.basename=function(path,ext){var f=splitPathRe.exec(path)[2]||\"\";return ext&&f.substr(-1*ext.length)===ext&&(f=f.substr(0,f.length-ext.length)),f},exports.extname=function(path){return splitPathRe.exec(path)[3]||\"\"},exports.relative=function(from,to){function trim(arr){for(var start=0;arr.length>start&&\"\"===arr[start];start++);for(var end=arr.length-1;end>=0&&\"\"===arr[end];end--);return start>end?[]:arr.slice(start,end-start+1)}from=exports.resolve(from).substr(1),to=exports.resolve(to).substr(1);for(var fromParts=trim(from.split(\"/\")),toParts=trim(to.split(\"/\")),length=Math.min(fromParts.length,toParts.length),samePartsLength=length,i=0;length>i;i++)if(fromParts[i]!==toParts[i]){samePartsLength=i;break}for(var outputParts=[],i=samePartsLength;fromParts.length>i;i++)outputParts.push(\"..\");return outputParts=outputParts.concat(toParts.slice(samePartsLength)),outputParts.join(\"/\")}})(require(\"__browserify_process\"))},{__browserify_process:16}],42:[function(require,module){\"use strict\";function fixLinefeed(data){return data.replace(/([^\\r])\\n/g,\"$1\\r\\n\")}function fixIndent(data){return/(^|\\n) /.test(data)?data.split(\"\\n\").map(function(line){for(var count=0;\" \"===line.charAt(0);)line=line.slice(1),count++;for(;count--;)line=\" \"+line;return line}).join(\"\\r\\n\"):data}var states=require(\"./states\");module.exports=function(Terminal){Terminal.prototype.write=function(data){data=fixLinefeed(data),data=fixIndent(data);var cs,ch,l=data.length,i=0;for(this.refreshStart=this.y,this.refreshEnd=this.y,this.ybase!==this.ydisp&&(this.ydisp=this.ybase,this.maxRange());l>i;i++)switch(ch=data[i],this.state){case states.normal:switch(ch){case\"\u0007\":this.bell();break;case\"\\n\":case\"\u000b\":case\"\\f\":this.convertEol&&(this.x=0),this.y++;break;case\"\\r\":this.x=0;break;case\"\\b\":this.x>0&&this.x--;break;case\"\t\":this.x=this.nextStop();break;case\"\u000e\":this.setgLevel(1);break;case\"\u000f\":this.setgLevel(0);break;case\"\u001b\":this.state=states.escaped;break;default:ch>=\" \"&&(this.charset&&this.charset[ch]&&(ch=this.charset[ch]),this.x>=this.cols&&(this.x=0,this.y++),this.lines[this.y+this.ybase][this.x]=[this.curAttr,ch],this.x++,this.updateRange(this.y))}break;case states.escaped:switch(ch){case\"[\":this.params=[],this.currentParam=0,this.state=states.csi;break;case\"]\":this.params=[],this.currentParam=0,this.state=states.osc;break;case\"P\":this.params=[],this.currentParam=0,this.state=states.dcs;break;case\"_\":this.stateType=\"apc\",this.state=states.ignore;break;case\"^\":this.stateType=\"pm\",this.state=states.ignore;break;case\"c\":this.reset();break;case\"E\":this.x=0;break;case\"D\":this.index();break;case\"M\":this.reverseIndex();break;case\"%\":this.setgLevel(0),this.setgCharset(0,Terminal.charsets.US),this.state=states.normal,i++;break;case\"(\":case\")\":case\"*\":case\"+\":case\"-\":case\".\":switch(ch){case\"(\":this.gcharset=0;break;case\")\":this.gcharset=1;break;case\"*\":this.gcharset=2;break;case\"+\":this.gcharset=3;break;case\"-\":this.gcharset=1;break;case\".\":this.gcharset=2}this.state=states.charset;break;case\"/\":this.gcharset=3,this.state=states.charset,i--;break;case\"N\":break;case\"O\":break;case\"n\":this.setgLevel(2);break;case\"o\":this.setgLevel(3);break;case\"|\":this.setgLevel(3);break;case\"}\":this.setgLevel(2);break;case\"~\":this.setgLevel(1);break;case\"7\":this.saveCursor(),this.state=states.normal;break;case\"8\":this.restoreCursor(),this.state=states.normal;break;case\"#\":this.state=states.normal,i++;break;case\"H\":this.tabSet();break;case\"=\":this.log(\"Serial port requested application keypad.\"),this.applicationKeypad=!0,this.state=states.normal;break;case\">\":this.log(\"Switching back to normal keypad.\"),this.applicationKeypad=!1,this.state=states.normal;break;default:this.state=states.normal,this.error(\"Unknown ESC control: %s.\",ch)}break;case states.charset:switch(ch){case\"0\":cs=Terminal.charsets.SCLD;break;case\"A\":cs=Terminal.charsets.UK;break;case\"B\":cs=Terminal.charsets.US;break;case\"4\":cs=Terminal.charsets.Dutch;break;case\"C\":case\"5\":cs=Terminal.charsets.Finnish;break;case\"R\":cs=Terminal.charsets.French;break;case\"Q\":cs=Terminal.charsets.FrenchCanadian;break;case\"K\":cs=Terminal.charsets.German;break;case\"Y\":cs=Terminal.charsets.Italian;break;case\"E\":case\"6\":cs=Terminal.charsets.NorwegianDanish;break;case\"Z\":cs=Terminal.charsets.Spanish;break;case\"H\":case\"7\":cs=Terminal.charsets.Swedish;break;case\"=\":cs=Terminal.charsets.Swiss;break;case\"/\":cs=Terminal.charsets.ISOLatin,i++;break;default:cs=Terminal.charsets.US}this.setgCharset(this.gcharset,cs),this.gcharset=null,this.state=states.normal;break;case states.osc:if(\"\u001b\"===ch||\"\u0007\"===ch){switch(\"\u001b\"===ch&&i++,this.params.push(this.currentParam),this.params[0]){case 0:case 1:case 2:this.params[1]&&(this.title=this.params[1],this.handleTitle(this.title));break;case 3:break;case 4:case 5:break;case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:break;case 46:break;case 50:break;case 51:break;case 52:break;case 104:case 105:case 110:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:}this.params=[],this.currentParam=0,this.state=states.normal}else this.params.length?this.currentParam+=ch:ch>=\"0\"&&\"9\">=ch?this.currentParam=10*this.currentParam+ch.charCodeAt(0)-48:\";\"===ch&&(this.params.push(this.currentParam),this.currentParam=\"\");break;case states.csi:if(\"?\"===ch||\">\"===ch||\"!\"===ch){this.prefix=ch;break}if(ch>=\"0\"&&\"9\">=ch){this.currentParam=10*this.currentParam+ch.charCodeAt(0)-48;break}if(\"$\"===ch||'\"'===ch||\" \"===ch||\"'\"===ch){this.postfix=ch;break}if(this.params.push(this.currentParam),this.currentParam=0,\";\"===ch)break;switch(this.state=states.normal,ch){case\"A\":this.cursorUp(this.params);break;case\"B\":this.cursorDown(this.params);break;case\"C\":this.cursorForward(this.params);break;case\"D\":this.cursorBackward(this.params);break;case\"H\":this.cursorPos(this.params);break;case\"J\":this.eraseInDisplay(this.params);break;case\"K\":this.eraseInLine(this.params);break;case\"m\":this.charAttributes(this.params);break;case\"n\":this.deviceStatus(this.params);break;case\"@\":this.insertChars(this.params);break;case\"E\":this.cursorNextLine(this.params);break;case\"F\":this.cursorPrecedingLine(this.params);break;case\"G\":this.cursorCharAbsolute(this.params);break;case\"L\":this.insertLines(this.params);break;case\"M\":this.deleteLines(this.params);break;case\"P\":this.deleteChars(this.params);break;case\"X\":this.eraseChars(this.params);break;case\"`\":this.charPosAbsolute(this.params);break;case\"a\":this.HPositionRelative(this.params);break;case\"c\":break;case\"d\":this.linePosAbsolute(this.params);break;case\"e\":this.VPositionRelative(this.params);break;case\"f\":this.HVPosition(this.params);break;case\"h\":break;case\"l\":break;case\"r\":break;case\"s\":this.saveCursor(this.params);break;case\"u\":this.restoreCursor(this.params);break;case\"I\":this.cursorForwardTab(this.params);break;case\"S\":break;case\"T\":2>this.params.length&&!this.prefix;break;case\"Z\":this.cursorBackwardTab(this.params);break;case\"b\":this.repeatPrecedingCharacter(this.params);break;case\"g\":this.tabClear(this.params);break;case\"p\":switch(this.prefix){case\"!\":this.softReset(this.params)}break;default:this.error(\"Unknown CSI code: %s.\",ch)}this.prefix=\"\",this.postfix=\"\";break;case states.dcs:if(\"\u001b\"===ch||\"\u0007\"===ch){switch(\"\u001b\"===ch&&i++,this.prefix){case\"\":break;case\"$q\":var pt=this.currentParam;switch(pt){case'\"q':pt='0\"q';break;case'\"p':pt='61\"p';break;case\"r\":pt=\"\"+(this.scrollTop+1)+\";\"+(this.scrollBottom+1)+\"r\";break;case\"m\":pt=\"0m\";break;default:this.error(\"Unknown DCS Pt: %s.\",pt),pt=\"\"}break;case\"+p\":break;default:this.error(\"Unknown DCS prefix: %s.\",this.prefix)}this.currentParam=0,this.prefix=\"\",this.state=states.normal}else this.currentParam?this.currentParam+=ch:this.prefix||\"$\"===ch||\"+\"===ch?2===this.prefix.length?this.currentParam=ch:this.prefix+=ch:this.currentParam=ch;break;case states.ignore:\"\u001b\"===ch||\"\u0007\"===ch?(\"\u001b\"===ch&&i++,this.stateData=\"\",this.state=states.normal):(this.stateData||(this.stateData=\"\"),this.stateData+=ch)}this.updateRange(this.y),this.refresh(this.refreshStart,this.refreshEnd)},Terminal.prototype.writeln=function(data){data=data.replace(/ /g,\" \"),this.write(data+\" \\r\\n\")}}},{\"./states\":36}],32:[function(require,module){\"use strict\";var states=require(\"../states\");module.exports=function(Terminal){Terminal.prototype.index=function(){this.y++,this.y>this.scrollBottom&&(this.y--,this.scroll()),this.state=states.normal},Terminal.prototype.reverseIndex=function(){var j;this.y--,this.y\u003Cthis.scrollTop&&(this.y++,this.lines.splice(this.y+this.ybase,0,this.blankLine(!0)),j=this.rows-1-this.scrollBottom,this.lines.splice(this.rows-1+this.ybase-j+1,1),this.updateRange(this.scrollTop),this.updateRange(this.scrollBottom)),this.state=states.normal}}},{\"../states\":36}],34:[function(require,module){\"use strict\";var states=require(\"../states\");module.exports=function(Terminal){Terminal.prototype.tabSet=function(){this.tabs[this.x]=!0,this.state=states.normal}}},{\"../states\":36}],26:[function(require,module){(function(process){\"use strict\";function isFunctionDeclaration(snippet){var firstStatement=snippet.ast.body&&snippet.ast.body[0]&&snippet.ast.body[0];return firstStatement&&\"FunctionDeclaration\"===firstStatement.type}function added(origKeys,keys){return keys.filter(function(k){return!~origKeys.indexOf(k)\n})}function changed(ctx,prevCtx,prevKeys){return prevKeys.filter(function(k){return!deepIs(prevCtx[k],ctx[k])})}function keyValues(keys,ctx,prevCtx){return keys.map(function(k){return{key:k,value:ctx[k],prevValue:prevCtx?prevCtx[k]:void 0}})}function cleaned(ctx,add){var cleanedCtx=removeProblematic(ctx);return Object.keys(add).forEach(function(k){cleanedCtx[k]=add[k]}),cleanedCtx}function evalSnippet(ctx,snippet,isStrict,allTrackedKeyValues){browser&&(ctx=cleaned(ctx,allTrackedKeyValues));var result,prevCtx=clone(ctx),prevKeys=Object.keys(prevCtx),code=snippet.code;try{isStrict&&!useStrictRx.test(code)&&parse('\"use strict\";'+snippet.code),result=runner.runInCtx(code,ctx)}catch(e){ctx[ErrorIndicator]=\"\"+e}browser&&(ctx=cleaned(ctx,{}));var crntCtx=clone(ctx),keys=Object.keys(crntCtx),addedValues=added(prevKeys,keys);browser&&(addedValues=removeIFrameGenerated(addedValues));var addedKeyValues=keyValues(addedValues,crntCtx),changedValues=changed(crntCtx,prevCtx,prevKeys),changedKeyValues=keyValues(changedValues,crntCtx,prevCtx);snippet.evaluated={result:result,ctx:prevCtx,added:clone(addedKeyValues),changed:clone(changedKeyValues)},browser&&(addedKeyValues.concat(changedKeyValues).forEach(function(x){allTrackedKeyValues[x.key]=x.value}),delete allTrackedKeyValues[ErrorIndicator]),delete ctx[ErrorIndicator]}var browser=process.browser,clone=(require(\"vm\"),require(\"clone\")),deepIs=require(\"deep-is\"),runner=require(\"./runner-vm\"),colors=require(\"ansicolors\"),parse=require(\"esprima\").parse,removeIFrameGenerated=require(\"./remove-iframe-generated\"),removeProblematic=require(\"./remove-problematic\"),createSandbox=require(\"./create-sandbox\"),ErrorIndicator=colors.red(\"!\"),useStrictRx=/^ *['\"]use strict['\"]/;module.exports=function(snippets,fullSrcPath){var fndecs,sandbox=createSandbox(fullSrcPath),ctx=runner.createCtx(sandbox),allTrackedKeyValues={},nonEmptySnippets=snippets.filter(function(snippet){return snippet.code.length}),isStrict=nonEmptySnippets.some(function(snippet){return useStrictRx.test(snippet.raw)});return browser||(fndecs=nonEmptySnippets.filter(function(snippet,idx){return isFunctionDeclaration(snippet)?(nonEmptySnippets.splice(idx,1),!0):!1}),fndecs.forEach(function(snippet){evalSnippet(ctx,snippet,isStrict,allTrackedKeyValues)})),nonEmptySnippets.forEach(function(snippet){evalSnippet(ctx,snippet,isStrict,allTrackedKeyValues)}),ctx}})(require(\"__browserify_process\"))},{vm:31,\"./runner-vm\":59,\"./remove-iframe-generated\":60,\"./remove-problematic\":61,\"./create-sandbox\":66,clone:67,ansicolors:68,\"deep-is\":69,esprima:70,__browserify_process:16}],66:[function(require,module){(function(process,global){\"use strict\";function cleanProcess(process){var exclude={stdout:!0,stderr:!0,stdin:!0,mainModule:!0};return removeProblematic(process,exclude)}var browser=process.browser,requireLikeName=\"require-like\",requireLike=browser?function(){}:require(requireLikeName),path=require(\"path\"),removeProblematic=require(\"./remove-problematic\");module.exports=function(fullSrcPath){var exports={},sandbox={console:global.console,module:{exports:exports,parent:null},exports:exports,process:cleanProcess(process)},serverside={require:requireLike(fullSrcPath),__filename:fullSrcPath,__dirname:path.dirname(fullSrcPath),Buffer:require(\"buffer\").Buffer,ArrayBuffer:global.ArrayBuffer,Int8Array:global.Int8Array,Uint8Array:global.Uint8Array,Uint8ClampedArray:global.Uint8ClampedArray,Int16Array:global.Int16Array,Uint16Array:global.Uint16Array,Int32Array:global.Int32Array,Uint32Array:global.Uint32Array,Float32Array:global.Float32Array,Float64Array:global.Float64Array,DataView:global.DataView};return browser||Object.keys(serverside).forEach(function(k){sandbox[k]=serverside[k]}),sandbox}})(require(\"__browserify_process\"),window)},{path:65,buffer:71,\"./remove-problematic\":61,__browserify_process:16}],27:[function(require,module){\"use strict\";function formatAdd(key,value,diffopts){return format(\"%s %s: %s\",colors.brightGreen(\"+\"),key,diffValues({},value,diffopts))}function formatChange(key,prevValue,value,diffopts){return format(\"%s %s: %s\",colors.brightBlue(\"~\"),key,diffValues(prevValue,value,diffopts))}function formatResult(result,diffopts){return format(\"%s %s\",colors.cyan(\"=>\"),diffValues({},result,diffopts))}function formatSectionEnd(multiLine,lastOne){return!multiLine||lastOne?\"\\n\":colors.brightBlack(\"\\n--------\\n\")}function resolveTale(evaluated,opts){if(!evaluated)return\"\";var tales=[];return evaluated.added.length&&evaluated.added.forEach(function(x){tales.push(opts.formatAdd(x.key,x.value,opts.diff))}),evaluated.changed.length&&evaluated.changed.forEach(function(x){tales.push(opts.formatChange(x.key,x.prevValue,x.value,opts.diff))}),evaluated.result!==void 0&&tales.push(opts.formatResult(evaluated.result,opts.diff)),tales.reduce(function(s,tale,idx,all){var lastOne=idx===all.length-1,multiLine=~tale.indexOf(\"\\n\");return s+tale+opts.formatSectionEnd(multiLine,lastOne)},\"\")}var diffValues=require(\"./diff-values\"),format=require(\"util\").format,colors=require(\"ansicolors\");module.exports=function(snippets,opts){return opts=opts||{},opts.formatAdd=opts.formatAdd||formatAdd,opts.formatChange=opts.formatChange||formatChange,opts.formatResult=opts.formatResult||formatResult,opts.formatSectionEnd=opts.formatSectionEnd||formatSectionEnd,snippets.map(function(snippet){var tale=resolveTale(snippet.evaluated,opts);return{tale:tale,insertAfter:snippet.end}})}},{util:6,\"./diff-values\":72,ansicolors:68}],73:[function(require,module){(function(){function objectKeys(object){if(Object.keys)return Object.keys(object);var result=[];for(var name in object)Object.prototype.hasOwnProperty.call(object,name)&&result.push(name);return result}function replacer(key,value){return void 0===value?\"\"+value:\"number\"!=typeof value||!isNaN(value)&&isFinite(value)?\"function\"==typeof value||value instanceof RegExp?\"\"+value:value:\"\"+value}function truncate(s,n){return\"string\"==typeof s?n>s.length?s:s.slice(0,n):s}function fail(actual,expected,message,operator,stackStartFunction){throw new assert.AssertionError({message:message,actual:actual,expected:expected,operator:operator,stackStartFunction:stackStartFunction})}function ok(value,message){value||fail(value,!0,message,\"==\",assert.ok)}function _deepEqual(actual,expected){if(actual===expected)return!0;if(Buffer.isBuffer(actual)&&Buffer.isBuffer(expected)){if(actual.length!=expected.length)return!1;for(var i=0;actual.length>i;i++)if(actual[i]!==expected[i])return!1;return!0}return actual instanceof Date&&expected instanceof Date?actual.getTime()===expected.getTime():\"object\"!=typeof actual&&\"object\"!=typeof expected?actual==expected:objEquiv(actual,expected)}function isUndefinedOrNull(value){return null===value||void 0===value}function isArguments(object){return\"[object Arguments]\"==Object.prototype.toString.call(object)}function objEquiv(a,b){if(isUndefinedOrNull(a)||isUndefinedOrNull(b))return!1;if(a.prototype!==b.prototype)return!1;if(isArguments(a))return isArguments(b)?(a=pSlice.call(a),b=pSlice.call(b),_deepEqual(a,b)):!1;try{var key,i,ka=objectKeys(a),kb=objectKeys(b)}catch(e){return!1}if(ka.length!=kb.length)return!1;for(ka.sort(),kb.sort(),i=ka.length-1;i>=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!_deepEqual(a[key],b[key]))return!1;return!0}function expectedException(actual,expected){return actual&&expected?expected instanceof RegExp?expected.test(actual):actual instanceof expected?!0:expected.call({},actual)===!0?!0:!1:!1}function _throws(shouldThrow,block,expected,message){var actual;\"string\"==typeof expected&&(message=expected,expected=null);try{block()}catch(e){actual=e}if(message=(expected&&expected.name?\" (\"+expected.name+\").\":\".\")+(message?\" \"+message:\".\"),shouldThrow&&!actual&&fail(\"Missing expected exception\"+message),!shouldThrow&&expectedException(actual,expected)&&fail(\"Got unwanted exception\"+message),shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual)throw actual}var util=require(\"util\"),Buffer=require(\"buffer\").Buffer,pSlice=Array.prototype.slice,assert=module.exports=ok;assert.AssertionError=function(options){this.name=\"AssertionError\",this.message=options.message,this.actual=options.actual,this.expected=options.expected,this.operator=options.operator;var stackStartFunction=options.stackStartFunction||fail;Error.captureStackTrace&&Error.captureStackTrace(this,stackStartFunction)},util.inherits(assert.AssertionError,Error),assert.AssertionError.prototype.toString=function(){return this.message?[this.name+\":\",this.message].join(\" \"):[this.name+\":\",truncate(JSON.stringify(this.actual,replacer),128),this.operator,truncate(JSON.stringify(this.expected,replacer),128)].join(\" \")},assert.AssertionError.__proto__=Error.prototype,assert.fail=fail,assert.ok=ok,assert.equal=function(actual,expected,message){actual!=expected&&fail(actual,expected,message,\"==\",assert.equal)},assert.notEqual=function(actual,expected,message){actual==expected&&fail(actual,expected,message,\"!=\",assert.notEqual)},assert.deepEqual=function(actual,expected,message){_deepEqual(actual,expected)||fail(actual,expected,message,\"deepEqual\",assert.deepEqual)},assert.notDeepEqual=function(actual,expected,message){_deepEqual(actual,expected)&&fail(actual,expected,message,\"notDeepEqual\",assert.notDeepEqual)},assert.strictEqual=function(actual,expected,message){actual!==expected&&fail(actual,expected,message,\"===\",assert.strictEqual)},assert.notStrictEqual=function(actual,expected,message){actual===expected&&fail(actual,expected,message,\"!==\",assert.notStrictEqual)},assert.throws=function(){_throws.apply(this,[!0].concat(pSlice.call(arguments)))},assert.doesNotThrow=function(){_throws.apply(this,[!1].concat(pSlice.call(arguments)))},assert.ifError=function(err){if(err)throw err}})()},{util:6,buffer:71}],74:[function(){},{}],69:[function(require,module){function isUndefinedOrNull(value){return null===value||void 0===value}function isArguments(object){return\"[object Arguments]\"==Object.prototype.toString.call(object)}function isNumberNaN(value){return\"number\"==typeof value&&value!==value}function areZerosEqual(zeroA,zeroB){return 1/zeroA===1/zeroB}function objEquiv(a,b){if(isUndefinedOrNull(a)||isUndefinedOrNull(b))return!1;if(a.prototype!==b.prototype)return!1;if(isArguments(a))return isArguments(b)?(a=pSlice.call(a),b=pSlice.call(b),deepEqual(a,b)):!1;try{var key,i,ka=Object_keys(a),kb=Object_keys(b)}catch(e){return!1}if(ka.length!=kb.length)return!1;for(ka.sort(),kb.sort(),i=ka.length-1;i>=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!deepEqual(a[key],b[key]))return!1;return!0}var pSlice=Array.prototype.slice,Object_keys=\"function\"==typeof Object.keys?Object.keys:function(obj){var keys=[];for(var key in obj)keys.push(key);return keys},deepEqual=module.exports=function(actual,expected){return 0===actual&&0===expected?areZerosEqual(actual,expected):actual===expected?!0:actual instanceof Date&&expected instanceof Date?actual.getTime()===expected.getTime():isNumberNaN(actual)?isNumberNaN(expected):\"object\"!=typeof actual&&\"object\"!=typeof expected?actual==expected:objEquiv(actual,expected)}},{}],68:[function(require,module){\"use strict\";var colorNums={white:37,black:30,blue:34,cyan:36,green:32,magenta:35,red:31,yellow:33,brightBlack:90,brightRed:91,brightGreen:92,brightYellow:93,brightBlue:94,brightMagenta:95,brightCyan:96,brightWhite:97},backgroundColorNums={bgBlack:40,bgRed:41,bgGreen:42,bgYellow:43,bgBlue:44,bgMagenta:45,bgCyan:46,bgWhite:47,bgBrightBlack:100,bgBrightRed:101,bgBrightGreen:102,bgBrightYellow:103,bgBrightBlue:104,bgBrightMagenta:105,bgBrightCyan:106,bgBrightWhite:107},colors={};Object.keys(colorNums).forEach(function(k){colors[k]=function(s){return\"\u001b[\"+colorNums[k]+\"m\"+s+\"\u001b[39m\"}}),Object.keys(backgroundColorNums).forEach(function(k){colors[k]=function(s){return\"\u001b[\"+backgroundColorNums[k]+\"m\"+s+\"\u001b[49m\"}}),module.exports=colors},{}],70:[function(require,module,exports){(function(){(function(root,factory){\"use strict\";\"function\"==typeof define&&define.amd?define([\"exports\"],factory):exports!==void 0?factory(exports):factory(root.esprima={})})(this,function(exports){\"use strict\";function assert(condition,message){if(!condition)throw Error(\"ASSERT: \"+message)}function sliceSource(from,to){return source.slice(from,to)}function isDecimalDigit(ch){return\"0123456789\".indexOf(ch)>=0}function isHexDigit(ch){return\"0123456789abcdefABCDEF\".indexOf(ch)>=0}function isOctalDigit(ch){return\"01234567\".indexOf(ch)>=0}function isWhiteSpace(ch){return\" \"===ch||\"\t\"===ch||\"\u000b\"===ch||\"\\f\"===ch||\" \"===ch||ch.charCodeAt(0)>=5760&&\" ᠎              \".indexOf(ch)>=0}function isLineTerminator(ch){return\"\\n\"===ch||\"\\r\"===ch||\"\\u2028\"===ch||\"\\u2029\"===ch}function isIdentifierStart(ch){return\"$\"===ch||\"_\"===ch||\"\\\\\"===ch||ch>=\"a\"&&\"z\">=ch||ch>=\"A\"&&\"Z\">=ch||ch.charCodeAt(0)>=128&&Regex.NonAsciiIdentifierStart.test(ch)}function isIdentifierPart(ch){return\"$\"===ch||\"_\"===ch||\"\\\\\"===ch||ch>=\"a\"&&\"z\">=ch||ch>=\"A\"&&\"Z\">=ch||ch>=\"0\"&&\"9\">=ch||ch.charCodeAt(0)>=128&&Regex.NonAsciiIdentifierPart.test(ch)}function isFutureReservedWord(id){switch(id){case\"class\":case\"enum\":case\"export\":case\"extends\":case\"import\":case\"super\":return!0}return!1}function isStrictModeReservedWord(id){switch(id){case\"implements\":case\"interface\":case\"package\":case\"private\":case\"protected\":case\"public\":case\"static\":case\"yield\":case\"let\":return!0}return!1}function isRestrictedWord(id){return\"eval\"===id||\"arguments\"===id}function isKeyword(id){var keyword=!1;switch(id.length){case 2:keyword=\"if\"===id||\"in\"===id||\"do\"===id;break;case 3:keyword=\"var\"===id||\"for\"===id||\"new\"===id||\"try\"===id;break;case 4:keyword=\"this\"===id||\"else\"===id||\"case\"===id||\"void\"===id||\"with\"===id;break;case 5:keyword=\"while\"===id||\"break\"===id||\"catch\"===id||\"throw\"===id;break;case 6:keyword=\"return\"===id||\"typeof\"===id||\"delete\"===id||\"switch\"===id;break;case 7:keyword=\"default\"===id||\"finally\"===id;break;case 8:keyword=\"function\"===id||\"continue\"===id||\"debugger\"===id;break;case 10:keyword=\"instanceof\"===id}if(keyword)return!0;switch(id){case\"const\":return!0;case\"yield\":case\"let\":return!0}return strict&&isStrictModeReservedWord(id)?!0:isFutureReservedWord(id)}function skipComment(){var ch,blockComment,lineComment;for(blockComment=!1,lineComment=!1;length>index;)if(ch=source[index],lineComment)ch=source[index++],isLineTerminator(ch)&&(lineComment=!1,\"\\r\"===ch&&\"\\n\"===source[index]&&++index,++lineNumber,lineStart=index);else if(blockComment)isLineTerminator(ch)?(\"\\r\"===ch&&\"\\n\"===source[index+1]&&++index,++lineNumber,++index,lineStart=index,index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")):(ch=source[index++],index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),\"*\"===ch&&(ch=source[index],\"/\"===ch&&(++index,blockComment=!1)));else if(\"/\"===ch)if(ch=source[index+1],\"/\"===ch)index+=2,lineComment=!0;else{if(\"*\"!==ch)break;index+=2,blockComment=!0,index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")}else if(isWhiteSpace(ch))++index;else{if(!isLineTerminator(ch))break;++index,\"\\r\"===ch&&\"\\n\"===source[index]&&++index,++lineNumber,lineStart=index}}function scanHexEscape(prefix){var i,len,ch,code=0;for(len=\"u\"===prefix?4:2,i=0;len>i;++i){if(!(length>index&&isHexDigit(source[index])))return\"\";ch=source[index++],code=16*code+\"0123456789abcdef\".indexOf(ch.toLowerCase())}return String.fromCharCode(code)}function scanIdentifier(){var ch,start,id,restore;if(ch=source[index],isIdentifierStart(ch)){if(start=index,\"\\\\\"===ch){if(++index,\"u\"!==source[index])return;if(++index,restore=index,ch=scanHexEscape(\"u\")){if(\"\\\\\"===ch||!isIdentifierStart(ch))return;id=ch}else index=restore,id=\"u\"}else id=source[index++];for(;length>index&&(ch=source[index],isIdentifierPart(ch));)if(\"\\\\\"===ch){if(++index,\"u\"!==source[index])return;if(++index,restore=index,ch=scanHexEscape(\"u\")){if(\"\\\\\"===ch||!isIdentifierPart(ch))return;id+=ch}else index=restore,id+=\"u\"}else id+=source[index++];return 1===id.length?{type:Token.Identifier,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:isKeyword(id)?{type:Token.Keyword,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:\"null\"===id?{type:Token.NullLiteral,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:\"true\"===id||\"false\"===id?{type:Token.BooleanLiteral,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:{type:Token.Identifier,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}}function scanPunctuator(){var ch2,ch3,ch4,start=index,ch1=source[index];return\";\"===ch1||\"{\"===ch1||\"}\"===ch1?(++index,{type:Token.Punctuator,value:ch1,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\",\"===ch1||\"(\"===ch1||\")\"===ch1?(++index,{type:Token.Punctuator,value:ch1,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):(ch2=source[index+1],\".\"!==ch1||isDecimalDigit(ch2)?(ch3=source[index+2],ch4=source[index+3],\">\"===ch1&&\">\"===ch2&&\">\"===ch3&&\"=\"===ch4?(index+=4,{type:Token.Punctuator,value:\">>>=\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"=\"===ch1&&\"=\"===ch2&&\"=\"===ch3?(index+=3,{type:Token.Punctuator,value:\"===\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"!\"===ch1&&\"=\"===ch2&&\"=\"===ch3?(index+=3,{type:Token.Punctuator,value:\"!==\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\">\"===ch1&&\">\"===ch2&&\">\"===ch3?(index+=3,{type:Token.Punctuator,value:\">>>\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"\u003C\"===ch1&&\"\u003C\"===ch2&&\"=\"===ch3?(index+=3,{type:Token.Punctuator,value:\"\u003C\u003C=\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\">\"===ch1&&\">\"===ch2&&\"=\"===ch3?(index+=3,{type:Token.Punctuator,value:\">>=\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"=\"===ch2&&\"\u003C>=!+-*%&|^/\".indexOf(ch1)>=0?(index+=2,{type:Token.Punctuator,value:ch1+ch2,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):ch1===ch2&&\"+-\u003C>&|\".indexOf(ch1)>=0&&\"+-\u003C>&|\".indexOf(ch2)>=0?(index+=2,{type:Token.Punctuator,value:ch1+ch2,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"[]\u003C>+-*%&|^!~?:=/\".indexOf(ch1)>=0?{type:Token.Punctuator,value:source[index++],lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:void 0):{type:Token.Punctuator,value:source[index++],lineNumber:lineNumber,lineStart:lineStart,range:[start,index]})}function scanNumericLiteral(){var number,start,ch;if(ch=source[index],assert(isDecimalDigit(ch)||\".\"===ch,\"Numeric literal must start with a decimal digit or a decimal point\"),start=index,number=\"\",\".\"!==ch){if(number=source[index++],ch=source[index],\"0\"===number){if(\"x\"===ch||\"X\"===ch){for(number+=source[index++];length>index&&(ch=source[index],isHexDigit(ch));)number+=source[index++];return 2>=number.length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),length>index&&(ch=source[index],isIdentifierStart(ch)&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")),{type:Token.NumericLiteral,value:parseInt(number,16),lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}if(isOctalDigit(ch)){for(number+=source[index++];length>index&&(ch=source[index],isOctalDigit(ch));)number+=source[index++];return length>index&&(ch=source[index],(isIdentifierStart(ch)||isDecimalDigit(ch))&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")),{type:Token.NumericLiteral,value:parseInt(number,8),octal:!0,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}isDecimalDigit(ch)&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")}for(;length>index&&(ch=source[index],isDecimalDigit(ch));)number+=source[index++]}if(\".\"===ch)for(number+=source[index++];length>index&&(ch=source[index],isDecimalDigit(ch));)number+=source[index++];if(\"e\"===ch||\"E\"===ch)if(number+=source[index++],ch=source[index],(\"+\"===ch||\"-\"===ch)&&(number+=source[index++]),ch=source[index],isDecimalDigit(ch))for(number+=source[index++];length>index&&(ch=source[index],isDecimalDigit(ch));)number+=source[index++];else ch=\"character \"+ch,index>=length&&(ch=\"\u003Cend>\"),throwError({},Messages.UnexpectedToken,\"ILLEGAL\");return length>index&&(ch=source[index],isIdentifierStart(ch)&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")),{type:Token.NumericLiteral,value:parseFloat(number),lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}function scanStringLiteral(){var quote,start,ch,code,unescaped,restore,str=\"\",octal=!1;for(quote=source[index],assert(\"'\"===quote||'\"'===quote,\"String literal must starts with a quote\"),start=index,++index;length>index;){if(ch=source[index++],ch===quote){quote=\"\";break}if(\"\\\\\"===ch)if(ch=source[index++],isLineTerminator(ch))++lineNumber,\"\\r\"===ch&&\"\\n\"===source[index]&&++index;else switch(ch){case\"n\":str+=\"\\n\";break;case\"r\":str+=\"\\r\";break;case\"t\":str+=\"\t\";break;case\"u\":case\"x\":restore=index,unescaped=scanHexEscape(ch),unescaped?str+=unescaped:(index=restore,str+=ch);break;case\"b\":str+=\"\\b\";break;case\"f\":str+=\"\\f\";break;case\"v\":str+=\"\u000b\";break;default:isOctalDigit(ch)?(code=\"01234567\".indexOf(ch),0!==code&&(octal=!0),length>index&&isOctalDigit(source[index])&&(octal=!0,code=8*code+\"01234567\".indexOf(source[index++]),\"0123\".indexOf(ch)>=0&&length>index&&isOctalDigit(source[index])&&(code=8*code+\"01234567\".indexOf(source[index++]))),str+=String.fromCharCode(code)):str+=ch}else{if(isLineTerminator(ch))break;str+=ch}}return\"\"!==quote&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),{type:Token.StringLiteral,value:str,octal:octal,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}function scanRegExp(){var str,ch,start,pattern,flags,value,restore,classMarker=!1,terminated=!1;for(buffer=null,skipComment(),start=index,ch=source[index],assert(\"/\"===ch,\"Regular expression literal must start with a slash\"),str=source[index++];length>index;)if(ch=source[index++],str+=ch,classMarker)\"]\"===ch&&(classMarker=!1);else if(\"\\\\\"===ch)ch=source[index++],isLineTerminator(ch)&&throwError({},Messages.UnterminatedRegExp),str+=ch;else{if(\"/\"===ch){terminated=!0;break}\"[\"===ch?classMarker=!0:isLineTerminator(ch)&&throwError({},Messages.UnterminatedRegExp)}for(terminated||throwError({},Messages.UnterminatedRegExp),pattern=str.substr(1,str.length-2),flags=\"\";length>index&&(ch=source[index],isIdentifierPart(ch));)if(++index,\"\\\\\"===ch&&length>index)if(ch=source[index],\"u\"===ch)if(++index,restore=index,ch=scanHexEscape(\"u\"))for(flags+=ch,str+=\"\\\\u\";index>restore;++restore)str+=source[restore];else index=restore,flags+=\"u\",str+=\"\\\\u\";else str+=\"\\\\\";else flags+=ch,str+=ch;try{value=RegExp(pattern,flags)}catch(e){throwError({},Messages.InvalidRegExp)}return{literal:str,value:value,range:[start,index]}}function isIdentifierName(token){return token.type===Token.Identifier||token.type===Token.Keyword||token.type===Token.BooleanLiteral||token.type===Token.NullLiteral}function advance(){var ch,token;return skipComment(),index>=length?{type:Token.EOF,lineNumber:lineNumber,lineStart:lineStart,range:[index,index]}:(token=scanPunctuator(),token!==void 0?token:(ch=source[index],\"'\"===ch||'\"'===ch?scanStringLiteral():\".\"===ch||isDecimalDigit(ch)?scanNumericLiteral():(token=scanIdentifier(),token!==void 0?token:(throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),void 0))))}function lex(){var token;return buffer?(index=buffer.range[1],lineNumber=buffer.lineNumber,lineStart=buffer.lineStart,token=buffer,buffer=null,token):(buffer=null,advance())}function lookahead(){var pos,line,start;return null!==buffer?buffer:(pos=index,line=lineNumber,start=lineStart,buffer=advance(),index=pos,lineNumber=line,lineStart=start,buffer)}function peekLineTerminator(){var pos,line,start,found;return pos=index,line=lineNumber,start=lineStart,skipComment(),found=lineNumber!==line,index=pos,lineNumber=line,lineStart=start,found}function throwError(token,messageFormat){var error,args=Array.prototype.slice.call(arguments,2),msg=messageFormat.replace(/%(\\d)/g,function(whole,index){return args[index]||\"\"});throw\"number\"==typeof token.lineNumber?(error=Error(\"Line \"+token.lineNumber+\": \"+msg),error.index=token.range[0],error.lineNumber=token.lineNumber,error.column=token.range[0]-lineStart+1):(error=Error(\"Line \"+lineNumber+\": \"+msg),error.index=index,error.lineNumber=lineNumber,error.column=index-lineStart+1),error}function throwErrorTolerant(){try{throwError.apply(null,arguments)}catch(e){if(!extra.errors)throw e;extra.errors.push(e)}}function throwUnexpected(token){if(token.type===Token.EOF&&throwError(token,Messages.UnexpectedEOS),token.type===Token.NumericLiteral&&throwError(token,Messages.UnexpectedNumber),token.type===Token.StringLiteral&&throwError(token,Messages.UnexpectedString),token.type===Token.Identifier&&throwError(token,Messages.UnexpectedIdentifier),token.type===Token.Keyword){if(isFutureReservedWord(token.value))throwError(token,Messages.UnexpectedReserved);else if(strict&&isStrictModeReservedWord(token.value))return throwErrorTolerant(token,Messages.StrictReservedWord),void 0;throwError(token,Messages.UnexpectedToken,token.value)}throwError(token,Messages.UnexpectedToken,token.value)}function expect(value){var token=lex();(token.type!==Token.Punctuator||token.value!==value)&&throwUnexpected(token)}function expectKeyword(keyword){var token=lex();(token.type!==Token.Keyword||token.value!==keyword)&&throwUnexpected(token)}function match(value){var token=lookahead();return token.type===Token.Punctuator&&token.value===value}function matchKeyword(keyword){var token=lookahead();return token.type===Token.Keyword&&token.value===keyword}function matchAssign(){var token=lookahead(),op=token.value;return token.type!==Token.Punctuator?!1:\"=\"===op||\"*=\"===op||\"/=\"===op||\"%=\"===op||\"+=\"===op||\"-=\"===op||\"\u003C\u003C=\"===op||\">>=\"===op||\">>>=\"===op||\"&=\"===op||\"^=\"===op||\"|=\"===op}function consumeSemicolon(){var token,line;if(\";\"===source[index])return lex(),void 0;if(line=lineNumber,skipComment(),lineNumber===line){if(match(\";\"))return lex(),void 0;token=lookahead(),token.type===Token.EOF||match(\"}\")||throwUnexpected(token)}}function isLeftHandSide(expr){return expr.type===Syntax.Identifier||expr.type===Syntax.MemberExpression}function parseArrayInitialiser(){var elements=[];for(expect(\"[\");!match(\"]\");)match(\",\")?(lex(),elements.push(null)):(elements.push(parseAssignmentExpression()),match(\"]\")||expect(\",\"));return expect(\"]\"),{type:Syntax.ArrayExpression,elements:elements}}function parsePropertyFunction(param,first){var previousStrict,body;return previousStrict=strict,body=parseFunctionSourceElements(),first&&strict&&isRestrictedWord(param[0].name)&&throwErrorTolerant(first,Messages.StrictParamName),strict=previousStrict,{type:Syntax.FunctionExpression,id:null,params:param,defaults:[],body:body,rest:null,generator:!1,expression:!1}}function parseObjectPropertyKey(){var token=lex();return token.type===Token.StringLiteral||token.type===Token.NumericLiteral?(strict&&token.octal&&throwErrorTolerant(token,Messages.StrictOctalLiteral),createLiteral(token)):{type:Syntax.Identifier,name:token.value}}function parseObjectProperty(){var token,key,id,param;return token=lookahead(),token.type===Token.Identifier?(id=parseObjectPropertyKey(),\"get\"!==token.value||match(\":\")?\"set\"!==token.value||match(\":\")?(expect(\":\"),{type:Syntax.Property,key:id,value:parseAssignmentExpression(),kind:\"init\"}):(key=parseObjectPropertyKey(),expect(\"(\"),token=lookahead(),token.type!==Token.Identifier&&throwUnexpected(lex()),param=[parseVariableIdentifier()],expect(\")\"),{type:Syntax.Property,key:key,value:parsePropertyFunction(param,token),kind:\"set\"}):(key=parseObjectPropertyKey(),expect(\"(\"),expect(\")\"),{type:Syntax.Property,key:key,value:parsePropertyFunction([]),kind:\"get\"})):token.type!==Token.EOF&&token.type!==Token.Punctuator?(key=parseObjectPropertyKey(),expect(\":\"),{type:Syntax.Property,key:key,value:parseAssignmentExpression(),kind:\"init\"}):(throwUnexpected(token),void 0)}function parseObjectInitialiser(){var property,name,kind,properties=[],map={},toString=String;for(expect(\"{\");!match(\"}\");)property=parseObjectProperty(),name=property.key.type===Syntax.Identifier?property.key.name:toString(property.key.value),kind=\"init\"===property.kind?PropertyKind.Data:\"get\"===property.kind?PropertyKind.Get:PropertyKind.Set,Object.prototype.hasOwnProperty.call(map,name)?(map[name]===PropertyKind.Data?strict&&kind===PropertyKind.Data?throwErrorTolerant({},Messages.StrictDuplicateProperty):kind!==PropertyKind.Data&&throwErrorTolerant({},Messages.AccessorDataProperty):kind===PropertyKind.Data?throwErrorTolerant({},Messages.AccessorDataProperty):map[name]&kind&&throwErrorTolerant({},Messages.AccessorGetSet),map[name]|=kind):map[name]=kind,properties.push(property),match(\"}\")||expect(\",\");return expect(\"}\"),{type:Syntax.ObjectExpression,properties:properties}}function parseGroupExpression(){var expr;return expect(\"(\"),expr=parseExpression(),expect(\")\"),expr}function parsePrimaryExpression(){var token=lookahead(),type=token.type;if(type===Token.Identifier)return{type:Syntax.Identifier,name:lex().value};if(type===Token.StringLiteral||type===Token.NumericLiteral)return strict&&token.octal&&throwErrorTolerant(token,Messages.StrictOctalLiteral),createLiteral(lex());if(type===Token.Keyword){if(matchKeyword(\"this\"))return lex(),{type:Syntax.ThisExpression};if(matchKeyword(\"function\"))return parseFunctionExpression()}return type===Token.BooleanLiteral?(lex(),token.value=\"true\"===token.value,createLiteral(token)):type===Token.NullLiteral?(lex(),token.value=null,createLiteral(token)):match(\"[\")?parseArrayInitialiser():match(\"{\")?parseObjectInitialiser():match(\"(\")?parseGroupExpression():match(\"/\")||match(\"/=\")?createLiteral(scanRegExp()):throwUnexpected(lex())}function parseArguments(){var args=[];if(expect(\"(\"),!match(\")\"))for(;length>index&&(args.push(parseAssignmentExpression()),!match(\")\"));)expect(\",\");return expect(\")\"),args}function parseNonComputedProperty(){var token=lex();return isIdentifierName(token)||throwUnexpected(token),{type:Syntax.Identifier,name:token.value}}function parseNonComputedMember(){return expect(\".\"),parseNonComputedProperty()}function parseComputedMember(){var expr;return expect(\"[\"),expr=parseExpression(),expect(\"]\"),expr}function parseNewExpression(){var expr;return expectKeyword(\"new\"),expr={type:Syntax.NewExpression,callee:parseLeftHandSideExpression(),arguments:[]},match(\"(\")&&(expr.arguments=parseArguments()),expr}function parseLeftHandSideExpressionAllowCall(){var expr;for(expr=matchKeyword(\"new\")?parseNewExpression():parsePrimaryExpression();match(\".\")||match(\"[\")||match(\"(\");)expr=match(\"(\")?{type:Syntax.CallExpression,callee:expr,arguments:parseArguments()}:match(\"[\")?{type:Syntax.MemberExpression,computed:!0,object:expr,property:parseComputedMember()}:{type:Syntax.MemberExpression,computed:!1,object:expr,property:parseNonComputedMember()};return expr}function parseLeftHandSideExpression(){var expr;for(expr=matchKeyword(\"new\")?parseNewExpression():parsePrimaryExpression();match(\".\")||match(\"[\");)expr=match(\"[\")?{type:Syntax.MemberExpression,computed:!0,object:expr,property:parseComputedMember()}:{type:Syntax.MemberExpression,computed:!1,object:expr,property:parseNonComputedMember()};return expr}function parsePostfixExpression(){var token,expr=parseLeftHandSideExpressionAllowCall();return token=lookahead(),token.type!==Token.Punctuator?expr:(!match(\"++\")&&!match(\"--\")||peekLineTerminator()||(strict&&expr.type===Syntax.Identifier&&isRestrictedWord(expr.name)&&throwErrorTolerant({},Messages.StrictLHSPostfix),isLeftHandSide(expr)||throwError({},Messages.InvalidLHSInAssignment),expr={type:Syntax.UpdateExpression,operator:lex().value,argument:expr,prefix:!1}),expr)}function parseUnaryExpression(){var token,expr;return token=lookahead(),token.type!==Token.Punctuator&&token.type!==Token.Keyword?parsePostfixExpression():match(\"++\")||match(\"--\")?(token=lex(),expr=parseUnaryExpression(),strict&&expr.type===Syntax.Identifier&&isRestrictedWord(expr.name)&&throwErrorTolerant({},Messages.StrictLHSPrefix),isLeftHandSide(expr)||throwError({},Messages.InvalidLHSInAssignment),expr={type:Syntax.UpdateExpression,operator:token.value,argument:expr,prefix:!0}):match(\"+\")||match(\"-\")||match(\"~\")||match(\"!\")?expr={type:Syntax.UnaryExpression,operator:lex().value,argument:parseUnaryExpression()}:matchKeyword(\"delete\")||matchKeyword(\"void\")||matchKeyword(\"typeof\")?(expr={type:Syntax.UnaryExpression,operator:lex().value,argument:parseUnaryExpression()},strict&&\"delete\"===expr.operator&&expr.argument.type===Syntax.Identifier&&throwErrorTolerant({},Messages.StrictDelete),expr):parsePostfixExpression()\n}function parseMultiplicativeExpression(){for(var expr=parseUnaryExpression();match(\"*\")||match(\"/\")||match(\"%\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseUnaryExpression()};return expr}function parseAdditiveExpression(){for(var expr=parseMultiplicativeExpression();match(\"+\")||match(\"-\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseMultiplicativeExpression()};return expr}function parseShiftExpression(){for(var expr=parseAdditiveExpression();match(\"\u003C\u003C\")||match(\">>\")||match(\">>>\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseAdditiveExpression()};return expr}function parseRelationalExpression(){var expr,previousAllowIn;for(previousAllowIn=state.allowIn,state.allowIn=!0,expr=parseShiftExpression();match(\"\u003C\")||match(\">\")||match(\"\u003C=\")||match(\">=\")||previousAllowIn&&matchKeyword(\"in\")||matchKeyword(\"instanceof\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseShiftExpression()};return state.allowIn=previousAllowIn,expr}function parseEqualityExpression(){for(var expr=parseRelationalExpression();match(\"==\")||match(\"!=\")||match(\"===\")||match(\"!==\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseRelationalExpression()};return expr}function parseBitwiseANDExpression(){for(var expr=parseEqualityExpression();match(\"&\");)lex(),expr={type:Syntax.BinaryExpression,operator:\"&\",left:expr,right:parseEqualityExpression()};return expr}function parseBitwiseXORExpression(){for(var expr=parseBitwiseANDExpression();match(\"^\");)lex(),expr={type:Syntax.BinaryExpression,operator:\"^\",left:expr,right:parseBitwiseANDExpression()};return expr}function parseBitwiseORExpression(){for(var expr=parseBitwiseXORExpression();match(\"|\");)lex(),expr={type:Syntax.BinaryExpression,operator:\"|\",left:expr,right:parseBitwiseXORExpression()};return expr}function parseLogicalANDExpression(){for(var expr=parseBitwiseORExpression();match(\"&&\");)lex(),expr={type:Syntax.LogicalExpression,operator:\"&&\",left:expr,right:parseBitwiseORExpression()};return expr}function parseLogicalORExpression(){for(var expr=parseLogicalANDExpression();match(\"||\");)lex(),expr={type:Syntax.LogicalExpression,operator:\"||\",left:expr,right:parseLogicalANDExpression()};return expr}function parseConditionalExpression(){var expr,previousAllowIn,consequent;return expr=parseLogicalORExpression(),match(\"?\")&&(lex(),previousAllowIn=state.allowIn,state.allowIn=!0,consequent=parseAssignmentExpression(),state.allowIn=previousAllowIn,expect(\":\"),expr={type:Syntax.ConditionalExpression,test:expr,consequent:consequent,alternate:parseAssignmentExpression()}),expr}function parseAssignmentExpression(){var token,expr;return token=lookahead(),expr=parseConditionalExpression(),matchAssign()&&(isLeftHandSide(expr)||throwError({},Messages.InvalidLHSInAssignment),strict&&expr.type===Syntax.Identifier&&isRestrictedWord(expr.name)&&throwErrorTolerant(token,Messages.StrictLHSAssignment),expr={type:Syntax.AssignmentExpression,operator:lex().value,left:expr,right:parseAssignmentExpression()}),expr}function parseExpression(){var expr=parseAssignmentExpression();if(match(\",\"))for(expr={type:Syntax.SequenceExpression,expressions:[expr]};length>index&&match(\",\");)lex(),expr.expressions.push(parseAssignmentExpression());return expr}function parseStatementList(){for(var statement,list=[];length>index&&!match(\"}\")&&(statement=parseSourceElement(),void 0!==statement);)list.push(statement);return list}function parseBlock(){var block;return expect(\"{\"),block=parseStatementList(),expect(\"}\"),{type:Syntax.BlockStatement,body:block}}function parseVariableIdentifier(){var token=lex();return token.type!==Token.Identifier&&throwUnexpected(token),{type:Syntax.Identifier,name:token.value}}function parseVariableDeclaration(kind){var id=parseVariableIdentifier(),init=null;return strict&&isRestrictedWord(id.name)&&throwErrorTolerant({},Messages.StrictVarName),\"const\"===kind?(expect(\"=\"),init=parseAssignmentExpression()):match(\"=\")&&(lex(),init=parseAssignmentExpression()),{type:Syntax.VariableDeclarator,id:id,init:init}}function parseVariableDeclarationList(kind){for(var list=[];length>index&&(list.push(parseVariableDeclaration(kind)),match(\",\"));)lex();return list}function parseVariableStatement(){var declarations;return expectKeyword(\"var\"),declarations=parseVariableDeclarationList(),consumeSemicolon(),{type:Syntax.VariableDeclaration,declarations:declarations,kind:\"var\"}}function parseConstLetDeclaration(kind){var declarations;return expectKeyword(kind),declarations=parseVariableDeclarationList(kind),consumeSemicolon(),{type:Syntax.VariableDeclaration,declarations:declarations,kind:kind}}function parseEmptyStatement(){return expect(\";\"),{type:Syntax.EmptyStatement}}function parseExpressionStatement(){var expr=parseExpression();return consumeSemicolon(),{type:Syntax.ExpressionStatement,expression:expr}}function parseIfStatement(){var test,consequent,alternate;return expectKeyword(\"if\"),expect(\"(\"),test=parseExpression(),expect(\")\"),consequent=parseStatement(),matchKeyword(\"else\")?(lex(),alternate=parseStatement()):alternate=null,{type:Syntax.IfStatement,test:test,consequent:consequent,alternate:alternate}}function parseDoWhileStatement(){var body,test,oldInIteration;return expectKeyword(\"do\"),oldInIteration=state.inIteration,state.inIteration=!0,body=parseStatement(),state.inIteration=oldInIteration,expectKeyword(\"while\"),expect(\"(\"),test=parseExpression(),expect(\")\"),match(\";\")&&lex(),{type:Syntax.DoWhileStatement,body:body,test:test}}function parseWhileStatement(){var test,body,oldInIteration;return expectKeyword(\"while\"),expect(\"(\"),test=parseExpression(),expect(\")\"),oldInIteration=state.inIteration,state.inIteration=!0,body=parseStatement(),state.inIteration=oldInIteration,{type:Syntax.WhileStatement,test:test,body:body}}function parseForVariableDeclaration(){var token=lex();return{type:Syntax.VariableDeclaration,declarations:parseVariableDeclarationList(),kind:token.value}}function parseForStatement(){var init,test,update,left,right,body,oldInIteration;return init=test=update=null,expectKeyword(\"for\"),expect(\"(\"),match(\";\")?lex():(matchKeyword(\"var\")||matchKeyword(\"let\")?(state.allowIn=!1,init=parseForVariableDeclaration(),state.allowIn=!0,1===init.declarations.length&&matchKeyword(\"in\")&&(lex(),left=init,right=parseExpression(),init=null)):(state.allowIn=!1,init=parseExpression(),state.allowIn=!0,matchKeyword(\"in\")&&(isLeftHandSide(init)||throwError({},Messages.InvalidLHSInForIn),lex(),left=init,right=parseExpression(),init=null)),left===void 0&&expect(\";\")),left===void 0&&(match(\";\")||(test=parseExpression()),expect(\";\"),match(\")\")||(update=parseExpression())),expect(\")\"),oldInIteration=state.inIteration,state.inIteration=!0,body=parseStatement(),state.inIteration=oldInIteration,left===void 0?{type:Syntax.ForStatement,init:init,test:test,update:update,body:body}:{type:Syntax.ForInStatement,left:left,right:right,body:body,each:!1}}function parseContinueStatement(){var token,label=null;return expectKeyword(\"continue\"),\";\"===source[index]?(lex(),state.inIteration||throwError({},Messages.IllegalContinue),{type:Syntax.ContinueStatement,label:null}):peekLineTerminator()?(state.inIteration||throwError({},Messages.IllegalContinue),{type:Syntax.ContinueStatement,label:null}):(token=lookahead(),token.type===Token.Identifier&&(label=parseVariableIdentifier(),Object.prototype.hasOwnProperty.call(state.labelSet,label.name)||throwError({},Messages.UnknownLabel,label.name)),consumeSemicolon(),null!==label||state.inIteration||throwError({},Messages.IllegalContinue),{type:Syntax.ContinueStatement,label:label})}function parseBreakStatement(){var token,label=null;return expectKeyword(\"break\"),\";\"===source[index]?(lex(),state.inIteration||state.inSwitch||throwError({},Messages.IllegalBreak),{type:Syntax.BreakStatement,label:null}):peekLineTerminator()?(state.inIteration||state.inSwitch||throwError({},Messages.IllegalBreak),{type:Syntax.BreakStatement,label:null}):(token=lookahead(),token.type===Token.Identifier&&(label=parseVariableIdentifier(),Object.prototype.hasOwnProperty.call(state.labelSet,label.name)||throwError({},Messages.UnknownLabel,label.name)),consumeSemicolon(),null!==label||state.inIteration||state.inSwitch||throwError({},Messages.IllegalBreak),{type:Syntax.BreakStatement,label:label})}function parseReturnStatement(){var token,argument=null;return expectKeyword(\"return\"),state.inFunctionBody||throwErrorTolerant({},Messages.IllegalReturn),\" \"===source[index]&&isIdentifierStart(source[index+1])?(argument=parseExpression(),consumeSemicolon(),{type:Syntax.ReturnStatement,argument:argument}):peekLineTerminator()?{type:Syntax.ReturnStatement,argument:null}:(match(\";\")||(token=lookahead(),match(\"}\")||token.type===Token.EOF||(argument=parseExpression())),consumeSemicolon(),{type:Syntax.ReturnStatement,argument:argument})}function parseWithStatement(){var object,body;return strict&&throwErrorTolerant({},Messages.StrictModeWith),expectKeyword(\"with\"),expect(\"(\"),object=parseExpression(),expect(\")\"),body=parseStatement(),{type:Syntax.WithStatement,object:object,body:body}}function parseSwitchCase(){var test,statement,consequent=[];for(matchKeyword(\"default\")?(lex(),test=null):(expectKeyword(\"case\"),test=parseExpression()),expect(\":\");length>index&&!(match(\"}\")||matchKeyword(\"default\")||matchKeyword(\"case\"))&&(statement=parseStatement(),void 0!==statement);)consequent.push(statement);return{type:Syntax.SwitchCase,test:test,consequent:consequent}}function parseSwitchStatement(){var discriminant,cases,clause,oldInSwitch,defaultFound;if(expectKeyword(\"switch\"),expect(\"(\"),discriminant=parseExpression(),expect(\")\"),expect(\"{\"),match(\"}\"))return lex(),{type:Syntax.SwitchStatement,discriminant:discriminant};for(cases=[],oldInSwitch=state.inSwitch,state.inSwitch=!0,defaultFound=!1;length>index&&!match(\"}\");)clause=parseSwitchCase(),null===clause.test&&(defaultFound&&throwError({},Messages.MultipleDefaultsInSwitch),defaultFound=!0),cases.push(clause);return state.inSwitch=oldInSwitch,expect(\"}\"),{type:Syntax.SwitchStatement,discriminant:discriminant,cases:cases}}function parseThrowStatement(){var argument;return expectKeyword(\"throw\"),peekLineTerminator()&&throwError({},Messages.NewlineAfterThrow),argument=parseExpression(),consumeSemicolon(),{type:Syntax.ThrowStatement,argument:argument}}function parseCatchClause(){var param;return expectKeyword(\"catch\"),expect(\"(\"),match(\")\")||(param=parseExpression(),strict&¶m.type===Syntax.Identifier&&isRestrictedWord(param.name)&&throwErrorTolerant({},Messages.StrictCatchVariable)),expect(\")\"),{type:Syntax.CatchClause,param:param,body:parseBlock()}}function parseTryStatement(){var block,handlers=[],finalizer=null;return expectKeyword(\"try\"),block=parseBlock(),matchKeyword(\"catch\")&&handlers.push(parseCatchClause()),matchKeyword(\"finally\")&&(lex(),finalizer=parseBlock()),0!==handlers.length||finalizer||throwError({},Messages.NoCatchOrFinally),{type:Syntax.TryStatement,block:block,guardedHandlers:[],handlers:handlers,finalizer:finalizer}}function parseDebuggerStatement(){return expectKeyword(\"debugger\"),consumeSemicolon(),{type:Syntax.DebuggerStatement}}function parseStatement(){var expr,labeledBody,token=lookahead();if(token.type===Token.EOF&&throwUnexpected(token),token.type===Token.Punctuator)switch(token.value){case\";\":return parseEmptyStatement();case\"{\":return parseBlock();case\"(\":return parseExpressionStatement();default:}if(token.type===Token.Keyword)switch(token.value){case\"break\":return parseBreakStatement();case\"continue\":return parseContinueStatement();case\"debugger\":return parseDebuggerStatement();case\"do\":return parseDoWhileStatement();case\"for\":return parseForStatement();case\"function\":return parseFunctionDeclaration();case\"if\":return parseIfStatement();case\"return\":return parseReturnStatement();case\"switch\":return parseSwitchStatement();case\"throw\":return parseThrowStatement();case\"try\":return parseTryStatement();case\"var\":return parseVariableStatement();case\"while\":return parseWhileStatement();case\"with\":return parseWithStatement();default:}return expr=parseExpression(),expr.type===Syntax.Identifier&&match(\":\")?(lex(),Object.prototype.hasOwnProperty.call(state.labelSet,expr.name)&&throwError({},Messages.Redeclaration,\"Label\",expr.name),state.labelSet[expr.name]=!0,labeledBody=parseStatement(),delete state.labelSet[expr.name],{type:Syntax.LabeledStatement,label:expr,body:labeledBody}):(consumeSemicolon(),{type:Syntax.ExpressionStatement,expression:expr})}function parseFunctionSourceElements(){var sourceElement,token,directive,firstRestricted,oldLabelSet,oldInIteration,oldInSwitch,oldInFunctionBody,sourceElements=[];for(expect(\"{\");length>index&&(token=lookahead(),token.type===Token.StringLiteral)&&(sourceElement=parseSourceElement(),sourceElements.push(sourceElement),sourceElement.expression.type===Syntax.Literal);)directive=sliceSource(token.range[0]+1,token.range[1]-1),\"use strict\"===directive?(strict=!0,firstRestricted&&throwErrorTolerant(firstRestricted,Messages.StrictOctalLiteral)):!firstRestricted&&token.octal&&(firstRestricted=token);for(oldLabelSet=state.labelSet,oldInIteration=state.inIteration,oldInSwitch=state.inSwitch,oldInFunctionBody=state.inFunctionBody,state.labelSet={},state.inIteration=!1,state.inSwitch=!1,state.inFunctionBody=!0;length>index&&!match(\"}\")&&(sourceElement=parseSourceElement(),void 0!==sourceElement);)sourceElements.push(sourceElement);return expect(\"}\"),state.labelSet=oldLabelSet,state.inIteration=oldInIteration,state.inSwitch=oldInSwitch,state.inFunctionBody=oldInFunctionBody,{type:Syntax.BlockStatement,body:sourceElements}}function parseFunctionDeclaration(){var id,param,body,token,stricted,firstRestricted,message,previousStrict,paramSet,params=[];if(expectKeyword(\"function\"),token=lookahead(),id=parseVariableIdentifier(),strict?isRestrictedWord(token.value)&&throwErrorTolerant(token,Messages.StrictFunctionName):isRestrictedWord(token.value)?(firstRestricted=token,message=Messages.StrictFunctionName):isStrictModeReservedWord(token.value)&&(firstRestricted=token,message=Messages.StrictReservedWord),expect(\"(\"),!match(\")\"))for(paramSet={};length>index&&(token=lookahead(),param=parseVariableIdentifier(),strict?(isRestrictedWord(token.value)&&(stricted=token,message=Messages.StrictParamName),Object.prototype.hasOwnProperty.call(paramSet,token.value)&&(stricted=token,message=Messages.StrictParamDupe)):firstRestricted||(isRestrictedWord(token.value)?(firstRestricted=token,message=Messages.StrictParamName):isStrictModeReservedWord(token.value)?(firstRestricted=token,message=Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(paramSet,token.value)&&(firstRestricted=token,message=Messages.StrictParamDupe)),params.push(param),paramSet[param.name]=!0,!match(\")\"));)expect(\",\");return expect(\")\"),previousStrict=strict,body=parseFunctionSourceElements(),strict&&firstRestricted&&throwError(firstRestricted,message),strict&&stricted&&throwErrorTolerant(stricted,message),strict=previousStrict,{type:Syntax.FunctionDeclaration,id:id,params:params,defaults:[],body:body,rest:null,generator:!1,expression:!1}}function parseFunctionExpression(){var token,stricted,firstRestricted,message,param,body,previousStrict,paramSet,id=null,params=[];if(expectKeyword(\"function\"),match(\"(\")||(token=lookahead(),id=parseVariableIdentifier(),strict?isRestrictedWord(token.value)&&throwErrorTolerant(token,Messages.StrictFunctionName):isRestrictedWord(token.value)?(firstRestricted=token,message=Messages.StrictFunctionName):isStrictModeReservedWord(token.value)&&(firstRestricted=token,message=Messages.StrictReservedWord)),expect(\"(\"),!match(\")\"))for(paramSet={};length>index&&(token=lookahead(),param=parseVariableIdentifier(),strict?(isRestrictedWord(token.value)&&(stricted=token,message=Messages.StrictParamName),Object.prototype.hasOwnProperty.call(paramSet,token.value)&&(stricted=token,message=Messages.StrictParamDupe)):firstRestricted||(isRestrictedWord(token.value)?(firstRestricted=token,message=Messages.StrictParamName):isStrictModeReservedWord(token.value)?(firstRestricted=token,message=Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(paramSet,token.value)&&(firstRestricted=token,message=Messages.StrictParamDupe)),params.push(param),paramSet[param.name]=!0,!match(\")\"));)expect(\",\");return expect(\")\"),previousStrict=strict,body=parseFunctionSourceElements(),strict&&firstRestricted&&throwError(firstRestricted,message),strict&&stricted&&throwErrorTolerant(stricted,message),strict=previousStrict,{type:Syntax.FunctionExpression,id:id,params:params,defaults:[],body:body,rest:null,generator:!1,expression:!1}}function parseSourceElement(){var token=lookahead();if(token.type===Token.Keyword)switch(token.value){case\"const\":case\"let\":return parseConstLetDeclaration(token.value);case\"function\":return parseFunctionDeclaration();default:return parseStatement()}return token.type!==Token.EOF?parseStatement():void 0}function parseSourceElements(){for(var sourceElement,token,directive,firstRestricted,sourceElements=[];length>index&&(token=lookahead(),token.type===Token.StringLiteral)&&(sourceElement=parseSourceElement(),sourceElements.push(sourceElement),sourceElement.expression.type===Syntax.Literal);)directive=sliceSource(token.range[0]+1,token.range[1]-1),\"use strict\"===directive?(strict=!0,firstRestricted&&throwErrorTolerant(firstRestricted,Messages.StrictOctalLiteral)):!firstRestricted&&token.octal&&(firstRestricted=token);for(;length>index&&(sourceElement=parseSourceElement(),void 0!==sourceElement);)sourceElements.push(sourceElement);return sourceElements}function parseProgram(){var program;return strict=!1,program={type:Syntax.Program,body:parseSourceElements()}}function addComment(type,value,start,end,loc){assert(\"number\"==typeof start,\"Comment must have valid position\"),extra.comments.length>0&&extra.comments[extra.comments.length-1].range[1]>start||extra.comments.push({type:type,value:value,range:[start,end],loc:loc})}function scanComment(){var comment,ch,loc,start,blockComment,lineComment;for(comment=\"\",blockComment=!1,lineComment=!1;length>index;)if(ch=source[index],lineComment)ch=source[index++],isLineTerminator(ch)?(loc.end={line:lineNumber,column:index-lineStart-1},lineComment=!1,addComment(\"Line\",comment,start,index-1,loc),\"\\r\"===ch&&\"\\n\"===source[index]&&++index,++lineNumber,lineStart=index,comment=\"\"):index>=length?(lineComment=!1,comment+=ch,loc.end={line:lineNumber,column:length-lineStart},addComment(\"Line\",comment,start,length,loc)):comment+=ch;else if(blockComment)isLineTerminator(ch)?(\"\\r\"===ch&&\"\\n\"===source[index+1]?(++index,comment+=\"\\r\\n\"):comment+=ch,++lineNumber,++index,lineStart=index,index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")):(ch=source[index++],index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),comment+=ch,\"*\"===ch&&(ch=source[index],\"/\"===ch&&(comment=comment.substr(0,comment.length-1),blockComment=!1,++index,loc.end={line:lineNumber,column:index-lineStart},addComment(\"Block\",comment,start,index,loc),comment=\"\")));else if(\"/\"===ch)if(ch=source[index+1],\"/\"===ch)loc={start:{line:lineNumber,column:index-lineStart}},start=index,index+=2,lineComment=!0,index>=length&&(loc.end={line:lineNumber,column:index-lineStart},lineComment=!1,addComment(\"Line\",comment,start,index,loc));else{if(\"*\"!==ch)break;start=index,index+=2,blockComment=!0,loc={start:{line:lineNumber,column:index-lineStart-2}},index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")}else if(isWhiteSpace(ch))++index;else{if(!isLineTerminator(ch))break;++index,\"\\r\"===ch&&\"\\n\"===source[index]&&++index,++lineNumber,lineStart=index}}function filterCommentLocation(){var i,entry,comment,comments=[];for(i=0;extra.comments.length>i;++i)entry=extra.comments[i],comment={type:entry.type,value:entry.value},extra.range&&(comment.range=entry.range),extra.loc&&(comment.loc=entry.loc),comments.push(comment);extra.comments=comments}function collectToken(){var start,loc,token,range,value;return skipComment(),start=index,loc={start:{line:lineNumber,column:index-lineStart}},token=extra.advance(),loc.end={line:lineNumber,column:index-lineStart},token.type!==Token.EOF&&(range=[token.range[0],token.range[1]],value=sliceSource(token.range[0],token.range[1]),extra.tokens.push({type:TokenName[token.type],value:value,range:range,loc:loc})),token}function collectRegex(){var pos,loc,regex,token;return skipComment(),pos=index,loc={start:{line:lineNumber,column:index-lineStart}},regex=extra.scanRegExp(),loc.end={line:lineNumber,column:index-lineStart},extra.tokens.length>0&&(token=extra.tokens[extra.tokens.length-1],token.range[0]===pos&&\"Punctuator\"===token.type&&(\"/\"===token.value||\"/=\"===token.value)&&extra.tokens.pop()),extra.tokens.push({type:\"RegularExpression\",value:regex.literal,range:[pos,index],loc:loc}),regex}function filterTokenLocation(){var i,entry,token,tokens=[];for(i=0;extra.tokens.length>i;++i)entry=extra.tokens[i],token={type:entry.type,value:entry.value},extra.range&&(token.range=entry.range),extra.loc&&(token.loc=entry.loc),tokens.push(token);extra.tokens=tokens}function createLiteral(token){return{type:Syntax.Literal,value:token.value}}function createRawLiteral(token){return{type:Syntax.Literal,value:token.value,raw:sliceSource(token.range[0],token.range[1])}}function createLocationMarker(){var marker={};return marker.range=[index,index],marker.loc={start:{line:lineNumber,column:index-lineStart},end:{line:lineNumber,column:index-lineStart}},marker.end=function(){this.range[1]=index,this.loc.end.line=lineNumber,this.loc.end.column=index-lineStart},marker.applyGroup=function(node){extra.range&&(node.groupRange=[this.range[0],this.range[1]]),extra.loc&&(node.groupLoc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},marker.apply=function(node){extra.range&&(node.range=[this.range[0],this.range[1]]),extra.loc&&(node.loc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},marker}function trackGroupExpression(){var marker,expr;return skipComment(),marker=createLocationMarker(),expect(\"(\"),expr=parseExpression(),expect(\")\"),marker.end(),marker.applyGroup(expr),expr}function trackLeftHandSideExpression(){var marker,expr;for(skipComment(),marker=createLocationMarker(),expr=matchKeyword(\"new\")?parseNewExpression():parsePrimaryExpression();match(\".\")||match(\"[\");)match(\"[\")?(expr={type:Syntax.MemberExpression,computed:!0,object:expr,property:parseComputedMember()},marker.end(),marker.apply(expr)):(expr={type:Syntax.MemberExpression,computed:!1,object:expr,property:parseNonComputedMember()},marker.end(),marker.apply(expr));return expr}function trackLeftHandSideExpressionAllowCall(){var marker,expr;for(skipComment(),marker=createLocationMarker(),expr=matchKeyword(\"new\")?parseNewExpression():parsePrimaryExpression();match(\".\")||match(\"[\")||match(\"(\");)match(\"(\")?(expr={type:Syntax.CallExpression,callee:expr,arguments:parseArguments()},marker.end(),marker.apply(expr)):match(\"[\")?(expr={type:Syntax.MemberExpression,computed:!0,object:expr,property:parseComputedMember()},marker.end(),marker.apply(expr)):(expr={type:Syntax.MemberExpression,computed:!1,object:expr,property:parseNonComputedMember()},marker.end(),marker.apply(expr));return expr}function filterGroup(node){var n,i,entry;n=\"[object Array]\"===Object.prototype.toString.apply(node)?[]:{};for(i in node)node.hasOwnProperty(i)&&\"groupRange\"!==i&&\"groupLoc\"!==i&&(entry=node[i],n[i]=null===entry||\"object\"!=typeof entry||entry instanceof RegExp?entry:filterGroup(entry));return n}function wrapTrackingFunction(range,loc){return function(parseFunction){function isBinary(node){return node.type===Syntax.LogicalExpression||node.type===Syntax.BinaryExpression}function visit(node){var start,end;isBinary(node.left)&&visit(node.left),isBinary(node.right)&&visit(node.right),range&&(node.left.groupRange||node.right.groupRange?(start=node.left.groupRange?node.left.groupRange[0]:node.left.range[0],end=node.right.groupRange?node.right.groupRange[1]:node.right.range[1],node.range=[start,end]):node.range===void 0&&(start=node.left.range[0],end=node.right.range[1],node.range=[start,end])),loc&&(node.left.groupLoc||node.right.groupLoc?(start=node.left.groupLoc?node.left.groupLoc.start:node.left.loc.start,end=node.right.groupLoc?node.right.groupLoc.end:node.right.loc.end,node.loc={start:start,end:end}):node.loc===void 0&&(node.loc={start:node.left.loc.start,end:node.right.loc.end}))}return function(){var marker,node;return skipComment(),marker=createLocationMarker(),node=parseFunction.apply(null,arguments),marker.end(),range&&node.range===void 0&&marker.apply(node),loc&&node.loc===void 0&&marker.apply(node),isBinary(node)&&visit(node),node}}}function patch(){var wrapTracking;extra.comments&&(extra.skipComment=skipComment,skipComment=scanComment),extra.raw&&(extra.createLiteral=createLiteral,createLiteral=createRawLiteral),(extra.range||extra.loc)&&(extra.parseGroupExpression=parseGroupExpression,extra.parseLeftHandSideExpression=parseLeftHandSideExpression,extra.parseLeftHandSideExpressionAllowCall=parseLeftHandSideExpressionAllowCall,parseGroupExpression=trackGroupExpression,parseLeftHandSideExpression=trackLeftHandSideExpression,parseLeftHandSideExpressionAllowCall=trackLeftHandSideExpressionAllowCall,wrapTracking=wrapTrackingFunction(extra.range,extra.loc),extra.parseAdditiveExpression=parseAdditiveExpression,extra.parseAssignmentExpression=parseAssignmentExpression,extra.parseBitwiseANDExpression=parseBitwiseANDExpression,extra.parseBitwiseORExpression=parseBitwiseORExpression,extra.parseBitwiseXORExpression=parseBitwiseXORExpression,extra.parseBlock=parseBlock,extra.parseFunctionSourceElements=parseFunctionSourceElements,extra.parseCatchClause=parseCatchClause,extra.parseComputedMember=parseComputedMember,extra.parseConditionalExpression=parseConditionalExpression,extra.parseConstLetDeclaration=parseConstLetDeclaration,extra.parseEqualityExpression=parseEqualityExpression,extra.parseExpression=parseExpression,extra.parseForVariableDeclaration=parseForVariableDeclaration,extra.parseFunctionDeclaration=parseFunctionDeclaration,extra.parseFunctionExpression=parseFunctionExpression,extra.parseLogicalANDExpression=parseLogicalANDExpression,extra.parseLogicalORExpression=parseLogicalORExpression,extra.parseMultiplicativeExpression=parseMultiplicativeExpression,extra.parseNewExpression=parseNewExpression,extra.parseNonComputedProperty=parseNonComputedProperty,extra.parseObjectProperty=parseObjectProperty,extra.parseObjectPropertyKey=parseObjectPropertyKey,extra.parsePostfixExpression=parsePostfixExpression,extra.parsePrimaryExpression=parsePrimaryExpression,extra.parseProgram=parseProgram,extra.parsePropertyFunction=parsePropertyFunction,extra.parseRelationalExpression=parseRelationalExpression,extra.parseStatement=parseStatement,extra.parseShiftExpression=parseShiftExpression,extra.parseSwitchCase=parseSwitchCase,extra.parseUnaryExpression=parseUnaryExpression,extra.parseVariableDeclaration=parseVariableDeclaration,extra.parseVariableIdentifier=parseVariableIdentifier,parseAdditiveExpression=wrapTracking(extra.parseAdditiveExpression),parseAssignmentExpression=wrapTracking(extra.parseAssignmentExpression),parseBitwiseANDExpression=wrapTracking(extra.parseBitwiseANDExpression),parseBitwiseORExpression=wrapTracking(extra.parseBitwiseORExpression),parseBitwiseXORExpression=wrapTracking(extra.parseBitwiseXORExpression),parseBlock=wrapTracking(extra.parseBlock),parseFunctionSourceElements=wrapTracking(extra.parseFunctionSourceElements),parseCatchClause=wrapTracking(extra.parseCatchClause),parseComputedMember=wrapTracking(extra.parseComputedMember),parseConditionalExpression=wrapTracking(extra.parseConditionalExpression),parseConstLetDeclaration=wrapTracking(extra.parseConstLetDeclaration),parseEqualityExpression=wrapTracking(extra.parseEqualityExpression),parseExpression=wrapTracking(extra.parseExpression),parseForVariableDeclaration=wrapTracking(extra.parseForVariableDeclaration),parseFunctionDeclaration=wrapTracking(extra.parseFunctionDeclaration),parseFunctionExpression=wrapTracking(extra.parseFunctionExpression),parseLeftHandSideExpression=wrapTracking(parseLeftHandSideExpression),parseLogicalANDExpression=wrapTracking(extra.parseLogicalANDExpression),parseLogicalORExpression=wrapTracking(extra.parseLogicalORExpression),parseMultiplicativeExpression=wrapTracking(extra.parseMultiplicativeExpression),parseNewExpression=wrapTracking(extra.parseNewExpression),parseNonComputedProperty=wrapTracking(extra.parseNonComputedProperty),parseObjectProperty=wrapTracking(extra.parseObjectProperty),parseObjectPropertyKey=wrapTracking(extra.parseObjectPropertyKey),parsePostfixExpression=wrapTracking(extra.parsePostfixExpression),parsePrimaryExpression=wrapTracking(extra.parsePrimaryExpression),parseProgram=wrapTracking(extra.parseProgram),parsePropertyFunction=wrapTracking(extra.parsePropertyFunction),parseRelationalExpression=wrapTracking(extra.parseRelationalExpression),parseStatement=wrapTracking(extra.parseStatement),parseShiftExpression=wrapTracking(extra.parseShiftExpression),parseSwitchCase=wrapTracking(extra.parseSwitchCase),parseUnaryExpression=wrapTracking(extra.parseUnaryExpression),parseVariableDeclaration=wrapTracking(extra.parseVariableDeclaration),parseVariableIdentifier=wrapTracking(extra.parseVariableIdentifier)),extra.tokens!==void 0&&(extra.advance=advance,extra.scanRegExp=scanRegExp,advance=collectToken,scanRegExp=collectRegex)}function unpatch(){\"function\"==typeof extra.skipComment&&(skipComment=extra.skipComment),extra.raw&&(createLiteral=extra.createLiteral),(extra.range||extra.loc)&&(parseAdditiveExpression=extra.parseAdditiveExpression,parseAssignmentExpression=extra.parseAssignmentExpression,parseBitwiseANDExpression=extra.parseBitwiseANDExpression,parseBitwiseORExpression=extra.parseBitwiseORExpression,parseBitwiseXORExpression=extra.parseBitwiseXORExpression,parseBlock=extra.parseBlock,parseFunctionSourceElements=extra.parseFunctionSourceElements,parseCatchClause=extra.parseCatchClause,parseComputedMember=extra.parseComputedMember,parseConditionalExpression=extra.parseConditionalExpression,parseConstLetDeclaration=extra.parseConstLetDeclaration,parseEqualityExpression=extra.parseEqualityExpression,parseExpression=extra.parseExpression,parseForVariableDeclaration=extra.parseForVariableDeclaration,parseFunctionDeclaration=extra.parseFunctionDeclaration,parseFunctionExpression=extra.parseFunctionExpression,parseGroupExpression=extra.parseGroupExpression,parseLeftHandSideExpression=extra.parseLeftHandSideExpression,parseLeftHandSideExpressionAllowCall=extra.parseLeftHandSideExpressionAllowCall,parseLogicalANDExpression=extra.parseLogicalANDExpression,parseLogicalORExpression=extra.parseLogicalORExpression,parseMultiplicativeExpression=extra.parseMultiplicativeExpression,parseNewExpression=extra.parseNewExpression,parseNonComputedProperty=extra.parseNonComputedProperty,parseObjectProperty=extra.parseObjectProperty,parseObjectPropertyKey=extra.parseObjectPropertyKey,parsePrimaryExpression=extra.parsePrimaryExpression,parsePostfixExpression=extra.parsePostfixExpression,parseProgram=extra.parseProgram,parsePropertyFunction=extra.parsePropertyFunction,parseRelationalExpression=extra.parseRelationalExpression,parseStatement=extra.parseStatement,parseShiftExpression=extra.parseShiftExpression,parseSwitchCase=extra.parseSwitchCase,parseUnaryExpression=extra.parseUnaryExpression,parseVariableDeclaration=extra.parseVariableDeclaration,parseVariableIdentifier=extra.parseVariableIdentifier),\"function\"==typeof extra.scanRegExp&&(advance=extra.advance,scanRegExp=extra.scanRegExp)}function stringToArray(str){var i,length=str.length,result=[];for(i=0;length>i;++i)result[i]=str.charAt(i);return result}function parse(code,options){var program,toString;\ntoString=String,\"string\"==typeof code||code instanceof String||(code=toString(code)),source=code,index=0,lineNumber=source.length>0?1:0,lineStart=0,length=source.length,buffer=null,state={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1},extra={},options!==void 0&&(extra.range=\"boolean\"==typeof options.range&&options.range,extra.loc=\"boolean\"==typeof options.loc&&options.loc,extra.raw=\"boolean\"==typeof options.raw&&options.raw,\"boolean\"==typeof options.tokens&&options.tokens&&(extra.tokens=[]),\"boolean\"==typeof options.comment&&options.comment&&(extra.comments=[]),\"boolean\"==typeof options.tolerant&&options.tolerant&&(extra.errors=[])),length>0&&source[0]===void 0&&(code instanceof String&&(source=code.valueOf()),source[0]===void 0&&(source=stringToArray(code))),patch();try{program=parseProgram(),extra.comments!==void 0&&(filterCommentLocation(),program.comments=extra.comments),extra.tokens!==void 0&&(filterTokenLocation(),program.tokens=extra.tokens),extra.errors!==void 0&&(program.errors=extra.errors),(extra.range||extra.loc)&&(program.body=filterGroup(program.body))}catch(e){throw e}finally{unpatch(),extra={}}return program}var Token,TokenName,Syntax,PropertyKind,Messages,Regex,source,strict,index,lineNumber,lineStart,length,buffer,state,extra;Token={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8},TokenName={},TokenName[Token.BooleanLiteral]=\"Boolean\",TokenName[Token.EOF]=\"\u003Cend>\",TokenName[Token.Identifier]=\"Identifier\",TokenName[Token.Keyword]=\"Keyword\",TokenName[Token.NullLiteral]=\"Null\",TokenName[Token.NumericLiteral]=\"Numeric\",TokenName[Token.Punctuator]=\"Punctuator\",TokenName[Token.StringLiteral]=\"String\",Syntax={AssignmentExpression:\"AssignmentExpression\",ArrayExpression:\"ArrayExpression\",BlockStatement:\"BlockStatement\",BinaryExpression:\"BinaryExpression\",BreakStatement:\"BreakStatement\",CallExpression:\"CallExpression\",CatchClause:\"CatchClause\",ConditionalExpression:\"ConditionalExpression\",ContinueStatement:\"ContinueStatement\",DoWhileStatement:\"DoWhileStatement\",DebuggerStatement:\"DebuggerStatement\",EmptyStatement:\"EmptyStatement\",ExpressionStatement:\"ExpressionStatement\",ForStatement:\"ForStatement\",ForInStatement:\"ForInStatement\",FunctionDeclaration:\"FunctionDeclaration\",FunctionExpression:\"FunctionExpression\",Identifier:\"Identifier\",IfStatement:\"IfStatement\",Literal:\"Literal\",LabeledStatement:\"LabeledStatement\",LogicalExpression:\"LogicalExpression\",MemberExpression:\"MemberExpression\",NewExpression:\"NewExpression\",ObjectExpression:\"ObjectExpression\",Program:\"Program\",Property:\"Property\",ReturnStatement:\"ReturnStatement\",SequenceExpression:\"SequenceExpression\",SwitchStatement:\"SwitchStatement\",SwitchCase:\"SwitchCase\",ThisExpression:\"ThisExpression\",ThrowStatement:\"ThrowStatement\",TryStatement:\"TryStatement\",UnaryExpression:\"UnaryExpression\",UpdateExpression:\"UpdateExpression\",VariableDeclaration:\"VariableDeclaration\",VariableDeclarator:\"VariableDeclarator\",WhileStatement:\"WhileStatement\",WithStatement:\"WithStatement\"},PropertyKind={Data:1,Get:2,Set:4},Messages={UnexpectedToken:\"Unexpected token %0\",UnexpectedNumber:\"Unexpected number\",UnexpectedString:\"Unexpected string\",UnexpectedIdentifier:\"Unexpected identifier\",UnexpectedReserved:\"Unexpected reserved word\",UnexpectedEOS:\"Unexpected end of input\",NewlineAfterThrow:\"Illegal newline after throw\",InvalidRegExp:\"Invalid regular expression\",UnterminatedRegExp:\"Invalid regular expression: missing /\",InvalidLHSInAssignment:\"Invalid left-hand side in assignment\",InvalidLHSInForIn:\"Invalid left-hand side in for-in\",MultipleDefaultsInSwitch:\"More than one default clause in switch statement\",NoCatchOrFinally:\"Missing catch or finally after try\",UnknownLabel:\"Undefined label '%0'\",Redeclaration:\"%0 '%1' has already been declared\",IllegalContinue:\"Illegal continue statement\",IllegalBreak:\"Illegal break statement\",IllegalReturn:\"Illegal return statement\",StrictModeWith:\"Strict mode code may not include a with statement\",StrictCatchVariable:\"Catch variable may not be eval or arguments in strict mode\",StrictVarName:\"Variable name may not be eval or arguments in strict mode\",StrictParamName:\"Parameter name eval or arguments is not allowed in strict mode\",StrictParamDupe:\"Strict mode function may not have duplicate parameter names\",StrictFunctionName:\"Function name may not be eval or arguments in strict mode\",StrictOctalLiteral:\"Octal literals are not allowed in strict mode.\",StrictDelete:\"Delete of an unqualified identifier in strict mode.\",StrictDuplicateProperty:\"Duplicate data property in object literal not allowed in strict mode\",AccessorDataProperty:\"Object literal may not have data and accessor property with the same name\",AccessorGetSet:\"Object literal may not have multiple get/set accessors with the same name\",StrictLHSAssignment:\"Assignment to eval or arguments is not allowed in strict mode\",StrictLHSPostfix:\"Postfix increment/decrement may not have eval or arguments operand in strict mode\",StrictLHSPrefix:\"Prefix increment/decrement may not have eval or arguments operand in strict mode\",StrictReservedWord:\"Use of future reserved word in strict mode\"},Regex={NonAsciiIdentifierStart:RegExp(\"[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]\"),NonAsciiIdentifierPart:RegExp(\"[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]\")},\"esprima\"[0]===void 0&&(sliceSource=function(from,to){return source.slice(from,to).join(\"\")}),exports.version=\"1.0.2\",exports.parse=parse,exports.Syntax=function(){var name,types={};\"function\"==typeof Object.create&&(types=Object.create(null));for(name in Syntax)Syntax.hasOwnProperty(name)&&(types[name]=Syntax[name]);return\"function\"==typeof Object.freeze&&Object.freeze(types),types}()})})()},{}],63:[function(require,module){function isFunction(obj){return\"[object Function]\"==toString.call(obj)}var fs=require(\"fs\"),highlight=require(\"./highlight\");module.exports=function(fullPath,opts,cb){isFunction(opts)&&(cb=opts),fs.readFile(fullPath,\"utf-8\",function(err,code){if(err)return cb(err);try{cb(null,highlight(code,opts))}catch(e){cb(e)}})}},{fs:74,\"./highlight\":62}],64:[function(require,module){var fs=require(\"fs\"),highlight=require(\"./highlight\");module.exports=function(fullPath,opts){var code=fs.readFileSync(fullPath,\"utf-8\");return highlight(code,opts)}},{fs:74,\"./highlight\":62}],29:[function(require,module){\"use strict\";function fix(line,hideStrict){var fixed=line;if(commaFirstAssignment.test(line)){var idx=line.indexOf(\",\");fixed=\"var\"+fixed.slice(0,idx).trim()+\" \"+fixed.slice(idx+1).trim()}return hideStrict&&useStrict.test(line)&&(fixed=nonStrict+line),fixed}function unfix(code,hideStrict){return hideStrict&&(code=code.replace(nonStrict,\"\")),code}var parse=require(\"esprima\").parse,commaFirstAssignment=/^[\\t ]*,[\\t ]*\\S+[\\t ]*=[\\t ]*\\S+/,useStrict=/^ *['\"]use strict['\"][; ]*$/,nonStrict=\"// *** non strict snippetify fix +++***+++&&&\",snippetify=module.exports=function(script,opts){function nextChunk(code,raw){var line=(0===code.length,lines[lineno]),fixed=fix(line,opts.nonstrict);raw=line+raw,code=fixed+code;try{var ast=parse(code,opts);return code=unfix(code,opts.nonstrict),{code:code,raw:raw,ast:ast}}catch(e){if(-1===--lineno){var err=Error(\"unable to snippetify \"+code);throw err.inner=e,err}return nextChunk(\"\\n\"+code,\"\\n\"+raw)}}opts=opts||{};var snippets=[],lines=script.split(\"\\n\");if(!lines.length)return[];for(var lineno=lines.length;--lineno>-1;){var snippetEnd=lineno+1,snippet=nextChunk(\"\",\"\"),snippetStart=lineno+1;snippets.unshift({start:snippetStart,end:snippetEnd,code:snippet.code,raw:snippet.raw,ast:snippet.ast})}return snippets},code=\"function foo() {\\n\\\"use strict\\\";\\n var o = { a: 1, a: 2 };\\n}\\n\\n;function bar() {\\n'use strict';\\n var o = { a: 1, a: 2 };\\n}\";snippetify(code,{nonstrict:!0})},{esprima:70}],75:[function(require,module,exports){exports.readIEEE754=function(buffer,offset,isBE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,nBits=-7,i=isBE?0:nBytes-1,d=isBE?1:-1,s=buffer[offset+i];for(i+=d,e=s&(1\u003C\u003C-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1\u003C\u003C-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?0/0:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.writeIEEE754=function(buffer,value,offset,isBE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isBE?nBytes-1:0,d=isBE?-1:1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||1/0===value?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),1>value*(c=Math.pow(2,-e))&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e\u003C\u003CmLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],76:[function(require,module){var colorNums={white:37,black:30,blue:34,cyan:36,green:32,magenta:35,red:31,yellow:33,brightBlack:90,brightRed:91,brightGreen:92,brightYellow:93,brightBlue:94,brightMagenta:95,brightCyan:96,brightWhite:97},colors={};Object.keys(colorNums).forEach(function(k){colors[k]=\"\u001b[\"+colorNums[k]+\"m:\u001b[39m\"}),module.exports=colors},{}],77:[function(require,module){require=function(e,t,n,r){function i(r){if(!n[r]){if(!t[r]){if(e)return e(r);throw Error(\"Cannot find module '\"+r+\"'\")}var s=n[r]={exports:{}};t[r][0](function(e){var n=t[r][1][e];return i(n?n:e)},s,s.exports)}return n[r].exports}for(var s=0;r.length>s;s++)i(r[s]);return i}(require!==void 0&&require,{1:[function(require,module,exports){exports.readIEEE754=function(buffer,offset,isBE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,nBits=-7,i=isBE?0:nBytes-1,d=isBE?1:-1,s=buffer[offset+i];for(i+=d,e=s&(1\u003C\u003C-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1\u003C\u003C-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?0/0:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.writeIEEE754=function(buffer,value,offset,isBE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isBE?nBytes-1:0,d=isBE?-1:1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||1/0===value?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),1>value*(c=Math.pow(2,-e))&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e\u003C\u003CmLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],2:[function(require,module){(function(){function objectKeys(object){if(Object.keys)return Object.keys(object);var result=[];for(var name in object)Object.prototype.hasOwnProperty.call(object,name)&&result.push(name);return result}function replacer(key,value){return void 0===value?\"\"+value:\"number\"!=typeof value||!isNaN(value)&&isFinite(value)?\"function\"==typeof value||value instanceof RegExp?\"\"+value:value:\"\"+value}function truncate(s,n){return\"string\"==typeof s?n>s.length?s:s.slice(0,n):s}function fail(actual,expected,message,operator,stackStartFunction){throw new assert.AssertionError({message:message,actual:actual,expected:expected,operator:operator,stackStartFunction:stackStartFunction})}function ok(value,message){value||fail(value,!0,message,\"==\",assert.ok)}function _deepEqual(actual,expected){if(actual===expected)return!0;if(Buffer.isBuffer(actual)&&Buffer.isBuffer(expected)){if(actual.length!=expected.length)return!1;for(var i=0;actual.length>i;i++)if(actual[i]!==expected[i])return!1;return!0}return actual instanceof Date&&expected instanceof Date?actual.getTime()===expected.getTime():\"object\"!=typeof actual&&\"object\"!=typeof expected?actual==expected:objEquiv(actual,expected)}function isUndefinedOrNull(value){return null===value||void 0===value}function isArguments(object){return\"[object Arguments]\"==Object.prototype.toString.call(object)}function objEquiv(a,b){if(isUndefinedOrNull(a)||isUndefinedOrNull(b))return!1;if(a.prototype!==b.prototype)return!1;if(isArguments(a))return isArguments(b)?(a=pSlice.call(a),b=pSlice.call(b),_deepEqual(a,b)):!1;try{var key,i,ka=objectKeys(a),kb=objectKeys(b)}catch(e){return!1}if(ka.length!=kb.length)return!1;for(ka.sort(),kb.sort(),i=ka.length-1;i>=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!_deepEqual(a[key],b[key]))return!1;return!0}function expectedException(actual,expected){return actual&&expected?expected instanceof RegExp?expected.test(actual):actual instanceof expected?!0:expected.call({},actual)===!0?!0:!1:!1}function _throws(shouldThrow,block,expected,message){var actual;\"string\"==typeof expected&&(message=expected,expected=null);try{block()}catch(e){actual=e}if(message=(expected&&expected.name?\" (\"+expected.name+\").\":\".\")+(message?\" \"+message:\".\"),shouldThrow&&!actual&&fail(\"Missing expected exception\"+message),!shouldThrow&&expectedException(actual,expected)&&fail(\"Got unwanted exception\"+message),shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual)throw actual}var util=require(\"util\"),Buffer=require(\"buffer\").Buffer,pSlice=Array.prototype.slice,assert=module.exports=ok;assert.AssertionError=function(options){this.name=\"AssertionError\",this.message=options.message,this.actual=options.actual,this.expected=options.expected,this.operator=options.operator;var stackStartFunction=options.stackStartFunction||fail;Error.captureStackTrace&&Error.captureStackTrace(this,stackStartFunction)},util.inherits(assert.AssertionError,Error),assert.AssertionError.prototype.toString=function(){return this.message?[this.name+\":\",this.message].join(\" \"):[this.name+\":\",truncate(JSON.stringify(this.actual,replacer),128),this.operator,truncate(JSON.stringify(this.expected,replacer),128)].join(\" \")},assert.AssertionError.__proto__=Error.prototype,assert.fail=fail,assert.ok=ok,assert.equal=function(actual,expected,message){actual!=expected&&fail(actual,expected,message,\"==\",assert.equal)},assert.notEqual=function(actual,expected,message){actual==expected&&fail(actual,expected,message,\"!=\",assert.notEqual)},assert.deepEqual=function(actual,expected,message){_deepEqual(actual,expected)||fail(actual,expected,message,\"deepEqual\",assert.deepEqual)},assert.notDeepEqual=function(actual,expected,message){_deepEqual(actual,expected)&&fail(actual,expected,message,\"notDeepEqual\",assert.notDeepEqual)},assert.strictEqual=function(actual,expected,message){actual!==expected&&fail(actual,expected,message,\"===\",assert.strictEqual)},assert.notStrictEqual=function(actual,expected,message){actual===expected&&fail(actual,expected,message,\"!==\",assert.notStrictEqual)},assert.throws=function(){_throws.apply(this,[!0].concat(pSlice.call(arguments)))},assert.doesNotThrow=function(){_throws.apply(this,[!1].concat(pSlice.call(arguments)))},assert.ifError=function(err){if(err)throw err}})()},{util:3,buffer:4}],\"buffer-browserify\":[function(require,module){module.exports=require(\"q9TxCC\")},{}],q9TxCC:[function(require,module,exports){(function(){function SlowBuffer(size){this.length=size}function toHex(n){return 16>n?\"0\"+n.toString(16):n.toString(16)}function utf8ToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)if(127>=str.charCodeAt(i))byteArray.push(str.charCodeAt(i));else for(var h=encodeURIComponent(str.charAt(i)).substr(1).split(\"%\"),j=0;h.length>j;j++)byteArray.push(parseInt(h[j],16));return byteArray}function asciiToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)byteArray.push(255&str.charCodeAt(i));return byteArray}function base64ToBytes(str){return require(\"base64-js\").toByteArray(str)}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);)dst[i+offset]=src[i],i++;return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}function coerce(length){return length=~~Math.ceil(+length),0>length?0:length}function Buffer(subject,encoding,offset){if(!(this instanceof Buffer))return new Buffer(subject,encoding,offset);var type;if(\"number\"==typeof offset)this.length=coerce(encoding),this.parent=subject,this.offset=offset;else{switch(type=typeof subject){case\"number\":this.length=coerce(subject);break;case\"string\":this.length=Buffer.byteLength(subject,encoding);break;case\"object\":this.length=coerce(subject.length);break;default:throw Error(\"First argument needs to be a number, array or string.\")}if(this.length>Buffer.poolSize?(this.parent=new SlowBuffer(this.length),this.offset=0):((!pool||pool.length-pool.used\u003Cthis.length)&&allocPool(),this.parent=pool,this.offset=pool.used,pool.used+=this.length),isArrayIsh(subject))for(var i=0;this.length>i;i++)this.parent[i+this.offset]=subject instanceof Buffer?subject.readUInt8(i):subject[i];else\"string\"==type&&(this.length=this.write(subject,0,encoding))}}function isArrayIsh(subject){return Array.isArray(subject)||Buffer.isBuffer(subject)||subject&&\"object\"==typeof subject&&\"number\"==typeof subject.length}function allocPool(){pool=new SlowBuffer(Buffer.poolSize),pool.used=0}function readUInt16(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),offset>=buffer.length?0:(isBigEndian?(val=buffer.parent[buffer.offset+offset]\u003C\u003C8,buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1])):(val=buffer.parent[buffer.offset+offset],buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8)),val)}function readUInt32(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),offset>=buffer.length?0:(isBigEndian?(buffer.length>offset+1&&(val=buffer.parent[buffer.offset+offset+1]\u003C\u003C16),buffer.length>offset+2&&(val|=buffer.parent[buffer.offset+offset+2]\u003C\u003C8),buffer.length>offset+3&&(val|=buffer.parent[buffer.offset+offset+3]),val+=buffer.parent[buffer.offset+offset]\u003C\u003C24>>>0):(buffer.length>offset+2&&(val=buffer.parent[buffer.offset+offset+2]\u003C\u003C16),buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8),val|=buffer.parent[buffer.offset+offset],buffer.length>offset+3&&(val+=buffer.parent[buffer.offset+offset+3]\u003C\u003C24>>>0)),val)}function readInt16(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),val=readUInt16(buffer,offset,isBigEndian,noAssert),neg=32768&val,neg?-1*(65535-val+1):val}function readInt32(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),val=readUInt32(buffer,offset,isBigEndian,noAssert),neg=2147483648&val,neg?-1*(4294967295-val+1):val}function readFloat(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,23,4)}function readDouble(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+7,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,52,8)}function verifuint(value,max){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(value>=0,\"specified a negative value for writing an unsigned value\"),assert.ok(max>=value,\"value is larger than maximum value for type\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function writeUInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"trying to write beyond buffer length\"),verifuint(value,65535));for(var i=0;Math.min(buffer.length-offset,2)>i;i++)buffer.parent[buffer.offset+offset+i]=(value&255\u003C\u003C8*(isBigEndian?1-i:i))>>>8*(isBigEndian?1-i:i)}function writeUInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"trying to write beyond buffer length\"),verifuint(value,4294967295));for(var i=0;Math.min(buffer.length-offset,4)>i;i++)buffer.parent[buffer.offset+offset+i]=255&value>>>8*(isBigEndian?3-i:i)}function verifsint(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function verifIEEE754(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\")}function writeInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to write beyond buffer length\"),verifsint(value,32767,-32768)),value>=0?writeUInt16(buffer,value,offset,isBigEndian,noAssert):writeUInt16(buffer,65535+value+1,offset,isBigEndian,noAssert)}function writeInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifsint(value,2147483647,-2147483648)),value>=0?writeUInt32(buffer,value,offset,isBigEndian,noAssert):writeUInt32(buffer,4294967295+value+1,offset,isBigEndian,noAssert)}function writeFloat(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifIEEE754(value,3.4028234663852886e38,-3.4028234663852886e38)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,23,4)}function writeDouble(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+7,\"Trying to write beyond buffer length\"),verifIEEE754(value,1.7976931348623157e308,-1.7976931348623157e308)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,52,8)}var assert=require(\"assert\");exports.INSPECT_MAX_BYTES=50,SlowBuffer.byteLength=function(str,encoding){switch(encoding||\"utf8\"){case\"hex\":return str.length/2;case\"utf8\":case\"utf-8\":return utf8ToBytes(str).length;case\"ascii\":case\"binary\":return str.length;case\"base64\":return base64ToBytes(str).length;default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.utf8Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(utf8ToBytes(string),this,offset,length)},SlowBuffer.prototype.asciiWrite=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(asciiToBytes(string),this,offset,length)},SlowBuffer.prototype.binaryWrite=SlowBuffer.prototype.asciiWrite,SlowBuffer.prototype.base64Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(base64ToBytes(string),this,offset,length)},SlowBuffer.prototype.base64Slice=function(){var bytes=Array.prototype.slice.apply(this,arguments);return require(\"base64-js\").fromByteArray(bytes)},SlowBuffer.prototype.utf8Slice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),res=\"\",tmp=\"\",i=0;bytes.length>i;)127>=bytes[i]?(res+=decodeUtf8Char(tmp)+String.fromCharCode(bytes[i]),tmp=\"\"):tmp+=\"%\"+bytes[i].toString(16),i++;return res+decodeUtf8Char(tmp)},SlowBuffer.prototype.asciiSlice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),ret=\"\",i=0;bytes.length>i;i++)ret+=String.fromCharCode(bytes[i]);return ret},SlowBuffer.prototype.binarySlice=SlowBuffer.prototype.asciiSlice,SlowBuffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this[i]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CSlowBuffer \"+out.join(\" \")+\">\"},SlowBuffer.prototype.hexSlice=function(start,end){var len=this.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out=\"\",i=start;end>i;i++)out+=toHex(this[i]);return out},SlowBuffer.prototype.toString=function(encoding,start,end){if(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start=+start||0,end===void 0&&(end=this.length),+end==start)return\"\";switch(encoding){case\"hex\":return this.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.utf8Slice(start,end);case\"ascii\":return this.asciiSlice(start,end);case\"binary\":return this.binarySlice(start,end);case\"base64\":return this.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.hexWrite=function(string,offset,length){offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2)throw Error(\"Invalid hex string\");length>strLen/2&&(length=strLen/2);for(var i=0;length>i;i++){var byte=parseInt(string.substr(2*i,2),16);if(isNaN(byte))throw Error(\"Invalid hex string\");this[offset+i]=byte}return SlowBuffer._charsWritten=2*i,i},SlowBuffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;switch(length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase()){case\"hex\":return this.hexWrite(string,offset,length);case\"utf8\":case\"utf-8\":return this.utf8Write(string,offset,length);case\"ascii\":return this.asciiWrite(string,offset,length);case\"binary\":return this.binaryWrite(string,offset,length);case\"base64\":return this.base64Write(string,offset,length);case\"ucs2\":case\"ucs-2\":return this.ucs2Write(string,offset,length);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this,end-start,+start)},SlowBuffer.prototype.copy=function(target,targetstart,sourcestart,sourceend){for(var temp=[],i=sourcestart;sourceend>i;i++)assert.ok(this[i]!==void 0,\"copying undefined buffer bytes!\"),temp.push(this[i]);for(var i=targetstart;targetstart+temp.length>i;i++)target[i]=temp[i-targetstart]},SlowBuffer.prototype.fill=function(value,start,end){if(end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");for(var i=start;end>i;i++)this[i]=value},exports.SlowBuffer=SlowBuffer,exports.Buffer=Buffer,Buffer.poolSize=8192;var pool;Buffer.isBuffer=function(b){return b instanceof Buffer||b instanceof SlowBuffer},Buffer.concat=function(list,totalLength){if(!Array.isArray(list))throw Error(\"Usage: Buffer.concat(list, [totalLength])\\n list should be an Array.\");if(0===list.length)return new Buffer(0);if(1===list.length)return list[0];if(\"number\"!=typeof totalLength){totalLength=0;for(var i=0;list.length>i;i++){var buf=list[i];totalLength+=buf.length}}for(var buffer=new Buffer(totalLength),pos=0,i=0;list.length>i;i++){var buf=list[i];buf.copy(buffer,pos),pos+=buf.length}return buffer},Buffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this.parent[i+this.offset]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CBuffer \"+out.join(\" \")+\">\"},Buffer.prototype.get=function(i){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]},Buffer.prototype.set=function(i,v){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]=v},Buffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase();var ret;switch(encoding){case\"hex\":ret=this.parent.hexWrite(string,this.offset+offset,length);break;\ncase\"utf8\":case\"utf-8\":ret=this.parent.utf8Write(string,this.offset+offset,length);break;case\"ascii\":ret=this.parent.asciiWrite(string,this.offset+offset,length);break;case\"binary\":ret=this.parent.binaryWrite(string,this.offset+offset,length);break;case\"base64\":ret=this.parent.base64Write(string,this.offset+offset,length);break;case\"ucs2\":case\"ucs-2\":ret=this.parent.ucs2Write(string,this.offset+offset,length);break;default:throw Error(\"Unknown encoding\")}return Buffer._charsWritten=SlowBuffer._charsWritten,ret},Buffer.prototype.toString=function(encoding,start,end){switch(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start===void 0||0>start?start=0:start>this.length&&(start=this.length),end===void 0||end>this.length?end=this.length:0>end&&(end=0),start+=this.offset,end+=this.offset,encoding){case\"hex\":return this.parent.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.parent.utf8Slice(start,end);case\"ascii\":return this.parent.asciiSlice(start,end);case\"binary\":return this.parent.binarySlice(start,end);case\"base64\":return this.parent.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.parent.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},Buffer.byteLength=SlowBuffer.byteLength,Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),\"string\"==typeof value&&(value=value.charCodeAt(0)),\"number\"!=typeof value||isNaN(value))throw Error(\"value is not a number\");if(start>end)throw Error(\"end \u003C start\");if(end===start)return 0;if(0==this.length)return 0;if(0>start||start>=this.length)throw Error(\"start out of bounds\");if(0>end||end>this.length)throw Error(\"end out of bounds\");return this.parent.fill(value,start+this.offset,end+this.offset)},Buffer.prototype.copy=function(target,target_start,start,end){var source=this;if(start||(start=0),end||(end=this.length),target_start||(target_start=0),start>end)throw Error(\"sourceEnd \u003C sourceStart\");if(end===start)return 0;if(0==target.length||0==source.length)return 0;if(0>target_start||target_start>=target.length)throw Error(\"targetStart out of bounds\");if(0>start||start>=source.length)throw Error(\"sourceStart out of bounds\");if(0>end||end>source.length)throw Error(\"sourceEnd out of bounds\");return end>this.length&&(end=this.length),end-start>target.length-target_start&&(end=target.length-target_start+start),this.parent.copy(target.parent,target_start+target.offset,start+this.offset,end+this.offset)},Buffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this.parent,end-start,+start+this.offset)},Buffer.prototype.utf8Slice=function(start,end){return this.toString(\"utf8\",start,end)},Buffer.prototype.binarySlice=function(start,end){return this.toString(\"binary\",start,end)},Buffer.prototype.asciiSlice=function(start,end){return this.toString(\"ascii\",start,end)},Buffer.prototype.utf8Write=function(string,offset){return this.write(string,offset,\"utf8\")},Buffer.prototype.binaryWrite=function(string,offset){return this.write(string,offset,\"binary\")},Buffer.prototype.asciiWrite=function(string,offset){return this.write(string,offset,\"ascii\")},Buffer.prototype.readUInt8=function(offset,noAssert){var buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),offset>=buffer.length?void 0:buffer.parent[buffer.offset+offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return readUInt16(this,offset,!1,noAssert)},Buffer.prototype.readUInt16BE=function(offset,noAssert){return readUInt16(this,offset,!0,noAssert)},Buffer.prototype.readUInt32LE=function(offset,noAssert){return readUInt32(this,offset,!1,noAssert)},Buffer.prototype.readUInt32BE=function(offset,noAssert){return readUInt32(this,offset,!0,noAssert)},Buffer.prototype.readInt8=function(offset,noAssert){var neg,buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),offset>=buffer.length?void 0:(neg=128&buffer.parent[buffer.offset+offset],neg?-1*(255-buffer.parent[buffer.offset+offset]+1):buffer.parent[buffer.offset+offset])},Buffer.prototype.readInt16LE=function(offset,noAssert){return readInt16(this,offset,!1,noAssert)},Buffer.prototype.readInt16BE=function(offset,noAssert){return readInt16(this,offset,!0,noAssert)},Buffer.prototype.readInt32LE=function(offset,noAssert){return readInt32(this,offset,!1,noAssert)},Buffer.prototype.readInt32BE=function(offset,noAssert){return readInt32(this,offset,!0,noAssert)},Buffer.prototype.readFloatLE=function(offset,noAssert){return readFloat(this,offset,!1,noAssert)},Buffer.prototype.readFloatBE=function(offset,noAssert){return readFloat(this,offset,!0,noAssert)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return readDouble(this,offset,!1,noAssert)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return readDouble(this,offset,!0,noAssert)},Buffer.prototype.writeUInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"trying to write beyond buffer length\"),verifuint(value,255)),buffer.length>offset&&(buffer.parent[buffer.offset+offset]=value)},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){writeUInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){writeUInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){writeUInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){writeUInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to write beyond buffer length\"),verifsint(value,127,-128)),value>=0?buffer.writeUInt8(value,offset,noAssert):buffer.writeUInt8(255+value+1,offset,noAssert)},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){writeInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){writeInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){writeInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){writeInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){writeDouble(this,value,offset,!0,noAssert)},SlowBuffer.prototype.readUInt8=Buffer.prototype.readUInt8,SlowBuffer.prototype.readUInt16LE=Buffer.prototype.readUInt16LE,SlowBuffer.prototype.readUInt16BE=Buffer.prototype.readUInt16BE,SlowBuffer.prototype.readUInt32LE=Buffer.prototype.readUInt32LE,SlowBuffer.prototype.readUInt32BE=Buffer.prototype.readUInt32BE,SlowBuffer.prototype.readInt8=Buffer.prototype.readInt8,SlowBuffer.prototype.readInt16LE=Buffer.prototype.readInt16LE,SlowBuffer.prototype.readInt16BE=Buffer.prototype.readInt16BE,SlowBuffer.prototype.readInt32LE=Buffer.prototype.readInt32LE,SlowBuffer.prototype.readInt32BE=Buffer.prototype.readInt32BE,SlowBuffer.prototype.readFloatLE=Buffer.prototype.readFloatLE,SlowBuffer.prototype.readFloatBE=Buffer.prototype.readFloatBE,SlowBuffer.prototype.readDoubleLE=Buffer.prototype.readDoubleLE,SlowBuffer.prototype.readDoubleBE=Buffer.prototype.readDoubleBE,SlowBuffer.prototype.writeUInt8=Buffer.prototype.writeUInt8,SlowBuffer.prototype.writeUInt16LE=Buffer.prototype.writeUInt16LE,SlowBuffer.prototype.writeUInt16BE=Buffer.prototype.writeUInt16BE,SlowBuffer.prototype.writeUInt32LE=Buffer.prototype.writeUInt32LE,SlowBuffer.prototype.writeUInt32BE=Buffer.prototype.writeUInt32BE,SlowBuffer.prototype.writeInt8=Buffer.prototype.writeInt8,SlowBuffer.prototype.writeInt16LE=Buffer.prototype.writeInt16LE,SlowBuffer.prototype.writeInt16BE=Buffer.prototype.writeInt16BE,SlowBuffer.prototype.writeInt32LE=Buffer.prototype.writeInt32LE,SlowBuffer.prototype.writeInt32BE=Buffer.prototype.writeInt32BE,SlowBuffer.prototype.writeFloatLE=Buffer.prototype.writeFloatLE,SlowBuffer.prototype.writeFloatBE=Buffer.prototype.writeFloatBE,SlowBuffer.prototype.writeDoubleLE=Buffer.prototype.writeDoubleLE,SlowBuffer.prototype.writeDoubleBE=Buffer.prototype.writeDoubleBE})()},{assert:2,\"./buffer_ieee754\":1,\"base64-js\":5}],3:[function(require,module,exports){function isArray(ar){return ar instanceof Array||Array.isArray(ar)||ar&&ar!==Object.prototype&&isArray(ar.__proto__)}function isRegExp(re){return re instanceof RegExp||\"object\"==typeof re&&\"[object RegExp]\"===Object.prototype.toString.call(re)}function isDate(d){if(d instanceof Date)return!0;if(\"object\"!=typeof d)return!1;var properties=Date.prototype&&Object_getOwnPropertyNames(Date.prototype),proto=d.__proto__&&Object_getOwnPropertyNames(d.__proto__);return JSON.stringify(proto)===JSON.stringify(properties)}require(\"events\"),exports.isArray=isArray,exports.isDate=function(obj){return\"[object Date]\"===Object.prototype.toString.call(obj)},exports.isRegExp=function(obj){return\"[object RegExp]\"===Object.prototype.toString.call(obj)},exports.print=function(){},exports.puts=function(){},exports.debug=function(){},exports.inspect=function(obj,showHidden,depth,colors){function format(value,recurseTimes){if(value&&\"function\"==typeof value.inspect&&value!==exports&&(!value.constructor||value.constructor.prototype!==value))return value.inspect(recurseTimes);switch(typeof value){case\"undefined\":return stylize(\"undefined\",\"undefined\");case\"string\":var simple=\"'\"+JSON.stringify(value).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return stylize(simple,\"string\");case\"number\":return stylize(\"\"+value,\"number\");case\"boolean\":return stylize(\"\"+value,\"boolean\")}if(null===value)return stylize(\"null\",\"null\");var visible_keys=Object_keys(value),keys=showHidden?Object_getOwnPropertyNames(value):visible_keys;if(\"function\"==typeof value&&0===keys.length){if(isRegExp(value))return stylize(\"\"+value,\"regexp\");var name=value.name?\": \"+value.name:\"\";return stylize(\"[Function\"+name+\"]\",\"special\")}if(isDate(value)&&0===keys.length)return stylize(value.toUTCString(),\"date\");var base,type,braces;if(isArray(value)?(type=\"Array\",braces=[\"[\",\"]\"]):(type=\"Object\",braces=[\"{\",\"}\"]),\"function\"==typeof value){var n=value.name?\": \"+value.name:\"\";base=isRegExp(value)?\" \"+value:\" [Function\"+n+\"]\"}else base=\"\";if(isDate(value)&&(base=\" \"+value.toUTCString()),0===keys.length)return braces[0]+base+braces[1];if(0>recurseTimes)return isRegExp(value)?stylize(\"\"+value,\"regexp\"):stylize(\"[Object]\",\"special\");seen.push(value);var output=keys.map(function(key){var name,str;if(value.__lookupGetter__&&(value.__lookupGetter__(key)?str=value.__lookupSetter__(key)?stylize(\"[Getter/Setter]\",\"special\"):stylize(\"[Getter]\",\"special\"):value.__lookupSetter__(key)&&(str=stylize(\"[Setter]\",\"special\"))),0>visible_keys.indexOf(key)&&(name=\"[\"+key+\"]\"),str||(0>seen.indexOf(value[key])?(str=null===recurseTimes?format(value[key]):format(value[key],recurseTimes-1),str.indexOf(\"\\n\")>-1&&(str=isArray(value)?str.split(\"\\n\").map(function(line){return\" \"+line}).join(\"\\n\").substr(2):\"\\n\"+str.split(\"\\n\").map(function(line){return\" \"+line}).join(\"\\n\"))):str=stylize(\"[Circular]\",\"special\")),name===void 0){if(\"Array\"===type&&key.match(/^\\d+$/))return str;name=JSON.stringify(\"\"+key),name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(name=name.substr(1,name.length-2),name=stylize(name,\"name\")):(name=name.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),name=stylize(name,\"string\"))}return name+\": \"+str});seen.pop();var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf(\"\\n\")>=0&&numLinesEst++,prev+cur.length+1},0);return output=length>50?braces[0]+(\"\"===base?\"\":base+\"\\n \")+\" \"+output.join(\",\\n \")+\" \"+braces[1]:braces[0]+base+\" \"+output.join(\", \")+\" \"+braces[1]}var seen=[],stylize=function(str,styleType){var styles={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},style={special:\"cyan\",number:\"blue\",\"boolean\":\"yellow\",undefined:\"grey\",\"null\":\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"}[styleType];return style?\"\u001b[\"+styles[style][0]+\"m\"+str+\"\u001b[\"+styles[style][1]+\"m\":str};return colors||(stylize=function(str){return str}),format(obj,depth===void 0?2:depth)},exports.log=function(){},exports.pump=null;var Object_keys=Object.keys||function(obj){var res=[];for(var key in obj)res.push(key);return res},Object_getOwnPropertyNames=Object.getOwnPropertyNames||function(obj){var res=[];for(var key in obj)Object.hasOwnProperty.call(obj,key)&&res.push(key);return res},Object_create=Object.create||function(prototype,properties){var object;if(null===prototype)object={__proto__:null};else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return properties!==void 0&&Object.defineProperties&&Object.defineProperties(object,properties),object};exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object_create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})};var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(\"string\"!=typeof f){for(var objects=[],i=0;arguments.length>i;i++)objects.push(exports.inspect(arguments[i]));return objects.join(\" \")}for(var i=1,args=arguments,len=args.length,str=(f+\"\").replace(formatRegExp,function(x){if(\"%%\"===x)return\"%\";if(i>=len)return x;switch(x){case\"%s\":return args[i++]+\"\";case\"%d\":return Number(args[i++]);case\"%j\":return JSON.stringify(args[i++]);default:return x}}),x=args[i];len>i;x=args[++i])str+=null===x||\"object\"!=typeof x?\" \"+x:\" \"+exports.inspect(x);return str}},{events:6}],5:[function(require,module){(function(){\"use strict\";function b64ToByteArray(b64){var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw\"Invalid string. Length must be a multiple of 4\";for(placeHolders=b64.indexOf(\"=\"),placeHolders=placeHolders>0?b64.length-placeHolders:0,arr=[],l=placeHolders>0?b64.length-4:b64.length,i=0,j=0;l>i;i+=4,j+=3)tmp=lookup.indexOf(b64[i])\u003C\u003C18|lookup.indexOf(b64[i+1])\u003C\u003C12|lookup.indexOf(b64[i+2])\u003C\u003C6|lookup.indexOf(b64[i+3]),arr.push((16711680&tmp)>>16),arr.push((65280&tmp)>>8),arr.push(255&tmp);return 2===placeHolders?(tmp=lookup.indexOf(b64[i])\u003C\u003C2|lookup.indexOf(b64[i+1])>>4,arr.push(255&tmp)):1===placeHolders&&(tmp=lookup.indexOf(b64[i])\u003C\u003C10|lookup.indexOf(b64[i+1])\u003C\u003C4|lookup.indexOf(b64[i+2])>>2,arr.push(255&tmp>>8),arr.push(255&tmp)),arr}function uint8ToBase64(uint8){function tripletToBase64(num){return lookup[63&num>>18]+lookup[63&num>>12]+lookup[63&num>>6]+lookup[63&num]}var i,temp,length,extraBytes=uint8.length%3,output=\"\";for(i=0,length=uint8.length-extraBytes;length>i;i+=3)temp=(uint8[i]\u003C\u003C16)+(uint8[i+1]\u003C\u003C8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=lookup[temp>>2],output+=lookup[63&temp\u003C\u003C4],output+=\"==\";break;case 2:temp=(uint8[uint8.length-2]\u003C\u003C8)+uint8[uint8.length-1],output+=lookup[temp>>10],output+=lookup[63&temp>>4],output+=lookup[63&temp\u003C\u003C2],output+=\"=\"}return output}var lookup=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";module.exports.toByteArray=b64ToByteArray,module.exports.fromByteArray=uint8ToBase64})()},{}],7:[function(require,module,exports){exports.readIEEE754=function(buffer,offset,isBE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,nBits=-7,i=isBE?0:nBytes-1,d=isBE?1:-1,s=buffer[offset+i];for(i+=d,e=s&(1\u003C\u003C-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1\u003C\u003C-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?0/0:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.writeIEEE754=function(buffer,value,offset,isBE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isBE?nBytes-1:0,d=isBE?-1:1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||1/0===value?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),1>value*(c=Math.pow(2,-e))&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e\u003C\u003CmLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],8:[function(require,module){var process=module.exports={};process.nextTick=function(){var canSetImmediate=\"undefined\"!=typeof window&&window.setImmediate,canPost=\"undefined\"!=typeof window&&window.postMessage&&window.addEventListener;if(canSetImmediate)return function(f){return window.setImmediate(f)};if(canPost){var queue=[];return window.addEventListener(\"message\",function(ev){if(ev.source===window&&\"process-tick\"===ev.data&&(ev.stopPropagation(),queue.length>0)){var fn=queue.shift();fn()}},!0),function(fn){queue.push(fn),window.postMessage(\"process-tick\",\"*\")}}return function(fn){setTimeout(fn,0)}}(),process.title=\"browser\",process.browser=!0,process.env={},process.argv=[],process.binding=function(){throw Error(\"process.binding is not supported\")},process.cwd=function(){return\"/\"},process.chdir=function(){throw Error(\"process.chdir is not supported\")}},{}],6:[function(require,module,exports){(function(process){function indexOf(xs,x){if(xs.indexOf)return xs.indexOf(x);for(var i=0;xs.length>i;i++)if(x===xs[i])return i;return-1}process.EventEmitter||(process.EventEmitter=function(){});var EventEmitter=exports.EventEmitter=process.EventEmitter,isArray=\"function\"==typeof Array.isArray?Array.isArray:function(xs){return\"[object Array]\"===Object.prototype.toString.call(xs)},defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){this._events||(this._events={}),this._events.maxListeners=n},EventEmitter.prototype.emit=function(type){if(\"error\"===type&&(!this._events||!this._events.error||isArray(this._events.error)&&!this._events.error.length))throw arguments[1]instanceof Error?arguments[1]:Error(\"Uncaught, unspecified 'error' event.\");if(!this._events)return!1;var handler=this._events[type];if(!handler)return!1;if(\"function\"==typeof handler){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:var args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}return!0}if(isArray(handler)){for(var args=Array.prototype.slice.call(arguments,1),listeners=handler.slice(),i=0,l=listeners.length;l>i;i++)listeners[i].apply(this,args);return!0}return!1},EventEmitter.prototype.addListener=function(type,listener){if(\"function\"!=typeof listener)throw Error(\"addListener only takes instances of Function\");if(this._events||(this._events={}),this.emit(\"newListener\",type,listener),this._events[type])if(isArray(this._events[type])){if(!this._events[type].warned){var m;m=void 0!==this._events.maxListeners?this._events.maxListeners:defaultMaxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[type].length),console.trace())}this._events[type].push(listener)}else this._events[type]=[this._events[type],listener];else this._events[type]=listener;return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){var self=this;return self.on(type,function g(){self.removeListener(type,g),listener.apply(this,arguments)}),this},EventEmitter.prototype.removeListener=function(type,listener){if(\"function\"!=typeof listener)throw Error(\"removeListener only takes instances of Function\");if(!this._events||!this._events[type])return this;var list=this._events[type];if(isArray(list)){var i=indexOf(list,listener);if(0>i)return this;list.splice(i,1),0==list.length&&delete this._events[type]}else this._events[type]===listener&&delete this._events[type];return this},EventEmitter.prototype.removeAllListeners=function(type){return 0===arguments.length?(this._events={},this):(type&&this._events&&this._events[type]&&(this._events[type]=null),this)},EventEmitter.prototype.listeners=function(type){return this._events||(this._events={}),this._events[type]||(this._events[type]=[]),isArray(this._events[type])||(this._events[type]=[this._events[type]]),this._events[type]}})(require(\"__browserify_process\"))},{__browserify_process:8}],4:[function(require,module,exports){(function(){function SlowBuffer(size){this.length=size}function toHex(n){return 16>n?\"0\"+n.toString(16):n.toString(16)}function utf8ToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)if(127>=str.charCodeAt(i))byteArray.push(str.charCodeAt(i));else for(var h=encodeURIComponent(str.charAt(i)).substr(1).split(\"%\"),j=0;h.length>j;j++)byteArray.push(parseInt(h[j],16));return byteArray}function asciiToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)byteArray.push(255&str.charCodeAt(i));return byteArray}function base64ToBytes(str){return require(\"base64-js\").toByteArray(str)}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);)dst[i+offset]=src[i],i++;return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}function coerce(length){return length=~~Math.ceil(+length),0>length?0:length}function Buffer(subject,encoding,offset){if(!(this instanceof Buffer))return new Buffer(subject,encoding,offset);var type;if(\"number\"==typeof offset)this.length=coerce(encoding),this.parent=subject,this.offset=offset;else{switch(type=typeof subject){case\"number\":this.length=coerce(subject);break;case\"string\":this.length=Buffer.byteLength(subject,encoding);break;case\"object\":this.length=coerce(subject.length);break;default:throw Error(\"First argument needs to be a number, array or string.\")}if(this.length>Buffer.poolSize?(this.parent=new SlowBuffer(this.length),this.offset=0):((!pool||pool.length-pool.used\u003Cthis.length)&&allocPool(),this.parent=pool,this.offset=pool.used,pool.used+=this.length),isArrayIsh(subject))for(var i=0;this.length>i;i++)this.parent[i+this.offset]=subject[i];else\"string\"==type&&(this.length=this.write(subject,0,encoding))}}function isArrayIsh(subject){return Array.isArray(subject)||Buffer.isBuffer(subject)||subject&&\"object\"==typeof subject&&\"number\"==typeof subject.length}function allocPool(){pool=new SlowBuffer(Buffer.poolSize),pool.used=0}function readUInt16(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),isBigEndian?(val=buffer.parent[buffer.offset+offset]\u003C\u003C8,val|=buffer.parent[buffer.offset+offset+1]):(val=buffer.parent[buffer.offset+offset],val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8),val}function readUInt32(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),isBigEndian?(val=buffer.parent[buffer.offset+offset+1]\u003C\u003C16,val|=buffer.parent[buffer.offset+offset+2]\u003C\u003C8,val|=buffer.parent[buffer.offset+offset+3],val+=buffer.parent[buffer.offset+offset]\u003C\u003C24>>>0):(val=buffer.parent[buffer.offset+offset+2]\u003C\u003C16,val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8,val|=buffer.parent[buffer.offset+offset],val+=buffer.parent[buffer.offset+offset+3]\u003C\u003C24>>>0),val}function readInt16(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),val=readUInt16(buffer,offset,isBigEndian,noAssert),neg=32768&val,neg?-1*(65535-val+1):val}function readInt32(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),val=readUInt32(buffer,offset,isBigEndian,noAssert),neg=2147483648&val,neg?-1*(4294967295-val+1):val}function readFloat(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,23,4)}function readDouble(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+7,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,52,8)}function verifuint(value,max){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(value>=0,\"specified a negative value for writing an unsigned value\"),assert.ok(max>=value,\"value is larger than maximum value for type\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function writeUInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"trying to write beyond buffer length\"),verifuint(value,65535)),isBigEndian?(buffer.parent[buffer.offset+offset]=(65280&value)>>>8,buffer.parent[buffer.offset+offset+1]=255&value):(buffer.parent[buffer.offset+offset+1]=(65280&value)>>>8,buffer.parent[buffer.offset+offset]=255&value)}function writeUInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"trying to write beyond buffer length\"),verifuint(value,4294967295)),isBigEndian?(buffer.parent[buffer.offset+offset]=255&value>>>24,buffer.parent[buffer.offset+offset+1]=255&value>>>16,buffer.parent[buffer.offset+offset+2]=255&value>>>8,buffer.parent[buffer.offset+offset+3]=255&value):(buffer.parent[buffer.offset+offset+3]=255&value>>>24,buffer.parent[buffer.offset+offset+2]=255&value>>>16,buffer.parent[buffer.offset+offset+1]=255&value>>>8,buffer.parent[buffer.offset+offset]=255&value)}function verifsint(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function verifIEEE754(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\")}function writeInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to write beyond buffer length\"),verifsint(value,32767,-32768)),value>=0?writeUInt16(buffer,value,offset,isBigEndian,noAssert):writeUInt16(buffer,65535+value+1,offset,isBigEndian,noAssert)}function writeInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifsint(value,2147483647,-2147483648)),value>=0?writeUInt32(buffer,value,offset,isBigEndian,noAssert):writeUInt32(buffer,4294967295+value+1,offset,isBigEndian,noAssert)}function writeFloat(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifIEEE754(value,3.4028234663852886e38,-3.4028234663852886e38)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,23,4)}function writeDouble(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+7,\"Trying to write beyond buffer length\"),verifIEEE754(value,1.7976931348623157e308,-1.7976931348623157e308)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,52,8)}var assert=require(\"assert\");exports.INSPECT_MAX_BYTES=50,SlowBuffer.byteLength=function(str,encoding){switch(encoding||\"utf8\"){case\"hex\":return str.length/2;case\"utf8\":case\"utf-8\":return utf8ToBytes(str).length;case\"ascii\":return str.length;case\"base64\":return base64ToBytes(str).length;default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.utf8Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(utf8ToBytes(string),this,offset,length)},SlowBuffer.prototype.asciiWrite=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(asciiToBytes(string),this,offset,length)},SlowBuffer.prototype.base64Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(base64ToBytes(string),this,offset,length)},SlowBuffer.prototype.base64Slice=function(){var bytes=Array.prototype.slice.apply(this,arguments);return require(\"base64-js\").fromByteArray(bytes)},SlowBuffer.prototype.utf8Slice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),res=\"\",tmp=\"\",i=0;bytes.length>i;)127>=bytes[i]?(res+=decodeUtf8Char(tmp)+String.fromCharCode(bytes[i]),tmp=\"\"):tmp+=\"%\"+bytes[i].toString(16),i++;return res+decodeUtf8Char(tmp)},SlowBuffer.prototype.asciiSlice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),ret=\"\",i=0;bytes.length>i;i++)ret+=String.fromCharCode(bytes[i]);return ret},SlowBuffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this[i]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CSlowBuffer \"+out.join(\" \")+\">\"},SlowBuffer.prototype.hexSlice=function(start,end){var len=this.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out=\"\",i=start;end>i;i++)out+=toHex(this[i]);return out},SlowBuffer.prototype.toString=function(encoding,start,end){if(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start=+start||0,end===void 0&&(end=this.length),+end==start)return\"\";\nswitch(encoding){case\"hex\":return this.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.utf8Slice(start,end);case\"ascii\":return this.asciiSlice(start,end);case\"binary\":return this.binarySlice(start,end);case\"base64\":return this.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.hexWrite=function(string,offset,length){offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2)throw Error(\"Invalid hex string\");length>strLen/2&&(length=strLen/2);for(var i=0;length>i;i++){var byte=parseInt(string.substr(2*i,2),16);if(isNaN(byte))throw Error(\"Invalid hex string\");this[offset+i]=byte}return SlowBuffer._charsWritten=2*i,i},SlowBuffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;switch(length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase()){case\"hex\":return this.hexWrite(string,offset,length);case\"utf8\":case\"utf-8\":return this.utf8Write(string,offset,length);case\"ascii\":return this.asciiWrite(string,offset,length);case\"binary\":return this.binaryWrite(string,offset,length);case\"base64\":return this.base64Write(string,offset,length);case\"ucs2\":case\"ucs-2\":return this.ucs2Write(string,offset,length);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this,end-start,+start)},SlowBuffer.prototype.copy=function(target,targetstart,sourcestart,sourceend){for(var temp=[],i=sourcestart;sourceend>i;i++)assert.ok(this[i]!==void 0,\"copying undefined buffer bytes!\"),temp.push(this[i]);for(var i=targetstart;targetstart+temp.length>i;i++)target[i]=temp[i-targetstart]},exports.SlowBuffer=SlowBuffer,exports.Buffer=Buffer,Buffer.poolSize=8192;var pool;Buffer.isBuffer=function(b){return b instanceof Buffer||b instanceof SlowBuffer},Buffer.concat=function(list,totalLength){if(!Array.isArray(list))throw Error(\"Usage: Buffer.concat(list, [totalLength])\\n list should be an Array.\");if(0===list.length)return new Buffer(0);if(1===list.length)return list[0];if(\"number\"!=typeof totalLength){totalLength=0;for(var i=0;list.length>i;i++){var buf=list[i];totalLength+=buf.length}}for(var buffer=new Buffer(totalLength),pos=0,i=0;list.length>i;i++){var buf=list[i];buf.copy(buffer,pos),pos+=buf.length}return buffer},Buffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this.parent[i+this.offset]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CBuffer \"+out.join(\" \")+\">\"},Buffer.prototype.get=function(i){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]},Buffer.prototype.set=function(i,v){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]=v},Buffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase();var ret;switch(encoding){case\"hex\":ret=this.parent.hexWrite(string,this.offset+offset,length);break;case\"utf8\":case\"utf-8\":ret=this.parent.utf8Write(string,this.offset+offset,length);break;case\"ascii\":ret=this.parent.asciiWrite(string,this.offset+offset,length);break;case\"binary\":ret=this.parent.binaryWrite(string,this.offset+offset,length);break;case\"base64\":ret=this.parent.base64Write(string,this.offset+offset,length);break;case\"ucs2\":case\"ucs-2\":ret=this.parent.ucs2Write(string,this.offset+offset,length);break;default:throw Error(\"Unknown encoding\")}return Buffer._charsWritten=SlowBuffer._charsWritten,ret},Buffer.prototype.toString=function(encoding,start,end){switch(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start===void 0||0>start?start=0:start>this.length&&(start=this.length),end===void 0||end>this.length?end=this.length:0>end&&(end=0),start+=this.offset,end+=this.offset,encoding){case\"hex\":return this.parent.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.parent.utf8Slice(start,end);case\"ascii\":return this.parent.asciiSlice(start,end);case\"binary\":return this.parent.binarySlice(start,end);case\"base64\":return this.parent.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.parent.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},Buffer.byteLength=SlowBuffer.byteLength,Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),\"string\"==typeof value&&(value=value.charCodeAt(0)),\"number\"!=typeof value||isNaN(value))throw Error(\"value is not a number\");if(start>end)throw Error(\"end \u003C start\");if(end===start)return 0;if(0==this.length)return 0;if(0>start||start>=this.length)throw Error(\"start out of bounds\");if(0>end||end>this.length)throw Error(\"end out of bounds\");return this.parent.fill(value,start+this.offset,end+this.offset)},Buffer.prototype.copy=function(target,target_start,start,end){var source=this;if(start||(start=0),end||(end=this.length),target_start||(target_start=0),start>end)throw Error(\"sourceEnd \u003C sourceStart\");if(end===start)return 0;if(0==target.length||0==source.length)return 0;if(0>target_start||target_start>=target.length)throw Error(\"targetStart out of bounds\");if(0>start||start>=source.length)throw Error(\"sourceStart out of bounds\");if(0>end||end>source.length)throw Error(\"sourceEnd out of bounds\");return end>this.length&&(end=this.length),end-start>target.length-target_start&&(end=target.length-target_start+start),this.parent.copy(target.parent,target_start+target.offset,start+this.offset,end+this.offset)},Buffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this.parent,end-start,+start+this.offset)},Buffer.prototype.utf8Slice=function(start,end){return this.toString(\"utf8\",start,end)},Buffer.prototype.binarySlice=function(start,end){return this.toString(\"binary\",start,end)},Buffer.prototype.asciiSlice=function(start,end){return this.toString(\"ascii\",start,end)},Buffer.prototype.utf8Write=function(string,offset){return this.write(string,offset,\"utf8\")},Buffer.prototype.binaryWrite=function(string,offset){return this.write(string,offset,\"binary\")},Buffer.prototype.asciiWrite=function(string,offset){return this.write(string,offset,\"ascii\")},Buffer.prototype.readUInt8=function(offset,noAssert){var buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),buffer.parent[buffer.offset+offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return readUInt16(this,offset,!1,noAssert)},Buffer.prototype.readUInt16BE=function(offset,noAssert){return readUInt16(this,offset,!0,noAssert)},Buffer.prototype.readUInt32LE=function(offset,noAssert){return readUInt32(this,offset,!1,noAssert)},Buffer.prototype.readUInt32BE=function(offset,noAssert){return readUInt32(this,offset,!0,noAssert)},Buffer.prototype.readInt8=function(offset,noAssert){var neg,buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),neg=128&buffer.parent[buffer.offset+offset],neg?-1*(255-buffer.parent[buffer.offset+offset]+1):buffer.parent[buffer.offset+offset]},Buffer.prototype.readInt16LE=function(offset,noAssert){return readInt16(this,offset,!1,noAssert)},Buffer.prototype.readInt16BE=function(offset,noAssert){return readInt16(this,offset,!0,noAssert)},Buffer.prototype.readInt32LE=function(offset,noAssert){return readInt32(this,offset,!1,noAssert)},Buffer.prototype.readInt32BE=function(offset,noAssert){return readInt32(this,offset,!0,noAssert)},Buffer.prototype.readFloatLE=function(offset,noAssert){return readFloat(this,offset,!1,noAssert)},Buffer.prototype.readFloatBE=function(offset,noAssert){return readFloat(this,offset,!0,noAssert)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return readDouble(this,offset,!1,noAssert)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return readDouble(this,offset,!0,noAssert)},Buffer.prototype.writeUInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"trying to write beyond buffer length\"),verifuint(value,255)),buffer.parent[buffer.offset+offset]=value},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){writeUInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){writeUInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){writeUInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){writeUInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to write beyond buffer length\"),verifsint(value,127,-128)),value>=0?buffer.writeUInt8(value,offset,noAssert):buffer.writeUInt8(255+value+1,offset,noAssert)},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){writeInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){writeInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){writeInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){writeInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){writeDouble(this,value,offset,!0,noAssert)},SlowBuffer.prototype.readUInt8=Buffer.prototype.readUInt8,SlowBuffer.prototype.readUInt16LE=Buffer.prototype.readUInt16LE,SlowBuffer.prototype.readUInt16BE=Buffer.prototype.readUInt16BE,SlowBuffer.prototype.readUInt32LE=Buffer.prototype.readUInt32LE,SlowBuffer.prototype.readUInt32BE=Buffer.prototype.readUInt32BE,SlowBuffer.prototype.readInt8=Buffer.prototype.readInt8,SlowBuffer.prototype.readInt16LE=Buffer.prototype.readInt16LE,SlowBuffer.prototype.readInt16BE=Buffer.prototype.readInt16BE,SlowBuffer.prototype.readInt32LE=Buffer.prototype.readInt32LE,SlowBuffer.prototype.readInt32BE=Buffer.prototype.readInt32BE,SlowBuffer.prototype.readFloatLE=Buffer.prototype.readFloatLE,SlowBuffer.prototype.readFloatBE=Buffer.prototype.readFloatBE,SlowBuffer.prototype.readDoubleLE=Buffer.prototype.readDoubleLE,SlowBuffer.prototype.readDoubleBE=Buffer.prototype.readDoubleBE,SlowBuffer.prototype.writeUInt8=Buffer.prototype.writeUInt8,SlowBuffer.prototype.writeUInt16LE=Buffer.prototype.writeUInt16LE,SlowBuffer.prototype.writeUInt16BE=Buffer.prototype.writeUInt16BE,SlowBuffer.prototype.writeUInt32LE=Buffer.prototype.writeUInt32LE,SlowBuffer.prototype.writeUInt32BE=Buffer.prototype.writeUInt32BE,SlowBuffer.prototype.writeInt8=Buffer.prototype.writeInt8,SlowBuffer.prototype.writeInt16LE=Buffer.prototype.writeInt16LE,SlowBuffer.prototype.writeInt16BE=Buffer.prototype.writeInt16BE,SlowBuffer.prototype.writeInt32LE=Buffer.prototype.writeInt32LE,SlowBuffer.prototype.writeInt32BE=Buffer.prototype.writeInt32BE,SlowBuffer.prototype.writeFloatLE=Buffer.prototype.writeFloatLE,SlowBuffer.prototype.writeFloatBE=Buffer.prototype.writeFloatBE,SlowBuffer.prototype.writeDoubleLE=Buffer.prototype.writeDoubleLE,SlowBuffer.prototype.writeDoubleBE=Buffer.prototype.writeDoubleBE})()},{assert:2,\"./buffer_ieee754\":7,\"base64-js\":9}],9:[function(require,module){(function(){\"use strict\";function b64ToByteArray(b64){var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw\"Invalid string. Length must be a multiple of 4\";for(placeHolders=b64.indexOf(\"=\"),placeHolders=placeHolders>0?b64.length-placeHolders:0,arr=[],l=placeHolders>0?b64.length-4:b64.length,i=0,j=0;l>i;i+=4,j+=3)tmp=lookup.indexOf(b64[i])\u003C\u003C18|lookup.indexOf(b64[i+1])\u003C\u003C12|lookup.indexOf(b64[i+2])\u003C\u003C6|lookup.indexOf(b64[i+3]),arr.push((16711680&tmp)>>16),arr.push((65280&tmp)>>8),arr.push(255&tmp);return 2===placeHolders?(tmp=lookup.indexOf(b64[i])\u003C\u003C2|lookup.indexOf(b64[i+1])>>4,arr.push(255&tmp)):1===placeHolders&&(tmp=lookup.indexOf(b64[i])\u003C\u003C10|lookup.indexOf(b64[i+1])\u003C\u003C4|lookup.indexOf(b64[i+2])>>2,arr.push(255&tmp>>8),arr.push(255&tmp)),arr}function uint8ToBase64(uint8){function tripletToBase64(num){return lookup[63&num>>18]+lookup[63&num>>12]+lookup[63&num>>6]+lookup[63&num]}var i,temp,length,extraBytes=uint8.length%3,output=\"\";for(i=0,length=uint8.length-extraBytes;length>i;i+=3)temp=(uint8[i]\u003C\u003C16)+(uint8[i+1]\u003C\u003C8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=lookup[temp>>2],output+=lookup[63&temp\u003C\u003C4],output+=\"==\";break;case 2:temp=(uint8[uint8.length-2]\u003C\u003C8)+uint8[uint8.length-1],output+=lookup[temp>>10],output+=lookup[63&temp>>4],output+=lookup[63&temp\u003C\u003C2],output+=\"=\"}return output}var lookup=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";module.exports.toByteArray=b64ToByteArray,module.exports.fromByteArray=uint8ToBase64})()},{}]},{},[]),module.exports=require(\"buffer-browserify\")},{}],67:[function(require,module){(function(Buffer){function clone(parent,circular){function _clone(parent,context,child,cIndex){var i;if(\"object\"==typeof parent){if(null==parent)return parent;for(i in circularParent)if(circularParent[i]===parent)return circularReplace.push({resolveTo:i,child:child,i:cIndex}),null;if(circularParent[context]=parent,util.isArray(parent)){child=[];for(i in parent)child[i]=_clone(parent[i],context+\"[\"+i+\"]\",child,i)}else if(util.isDate(parent))child=new Date(parent.getTime());else if(util.isRegExp(parent))child=RegExp(parent.source);else if(useBuffer&&Buffer.isBuffer(parent))child=new Buffer(parent.length),parent.copy(child);else{child={},child.__proto__=parent.__proto__;for(i in parent)child[i]=_clone(parent[i],context+\"[\"+i+\"]\",child,i)}circularResolved[context]=child}else child=parent;return child}circular===void 0&&(circular=!0);var i,useBuffer=Buffer!==void 0;if(circular){var circularParent={},circularResolved={},circularReplace=[],cloned=_clone(parent,\"*\");for(i in circularReplace){var c=circularReplace[i];c&&c.child&&c.i in c.child&&(c.child[c.i]=circularResolved[c.resolveTo])}return cloned}var child;if(\"object\"==typeof parent){if(null==parent)return parent;if(\"Array\"===parent.constructor.name){child=[];for(i in parent)child[i]=clone(parent[i],circular)}else if(util.isDate(parent))child=new Date(parent.getTime());else if(util.isRegExp(parent))child=RegExp(parent.source);else{child={},child.__proto__=parent.__proto__;for(i in parent)child[i]=clone(parent[i],circular)}}else child=parent;return child}var util=require(\"util\");module.exports=clone,clone.clonePrototype=require(\"./clonePrototype.js\")})(require(\"__browserify_buffer\").Buffer)},{util:6,\"./clonePrototype.js\":78,__browserify_buffer:77}],71:[function(require,module,exports){(function(){function SlowBuffer(size){this.length=size}function toHex(n){return 16>n?\"0\"+n.toString(16):n.toString(16)}function utf8ToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)if(127>=str.charCodeAt(i))byteArray.push(str.charCodeAt(i));else for(var h=encodeURIComponent(str.charAt(i)).substr(1).split(\"%\"),j=0;h.length>j;j++)byteArray.push(parseInt(h[j],16));return byteArray}function asciiToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)byteArray.push(255&str.charCodeAt(i));return byteArray}function base64ToBytes(str){return require(\"base64-js\").toByteArray(str)}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);)dst[i+offset]=src[i],i++;return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}function coerce(length){return length=~~Math.ceil(+length),0>length?0:length}function Buffer(subject,encoding,offset){if(!(this instanceof Buffer))return new Buffer(subject,encoding,offset);var type;if(\"number\"==typeof offset)this.length=coerce(encoding),this.parent=subject,this.offset=offset;else{switch(type=typeof subject){case\"number\":this.length=coerce(subject);break;case\"string\":this.length=Buffer.byteLength(subject,encoding);break;case\"object\":this.length=coerce(subject.length);break;default:throw Error(\"First argument needs to be a number, array or string.\")}if(this.length>Buffer.poolSize?(this.parent=new SlowBuffer(this.length),this.offset=0):((!pool||pool.length-pool.used\u003Cthis.length)&&allocPool(),this.parent=pool,this.offset=pool.used,pool.used+=this.length),isArrayIsh(subject))for(var i=0;this.length>i;i++)this.parent[i+this.offset]=subject instanceof Buffer?subject.readUInt8(i):subject[i];else\"string\"==type&&(this.length=this.write(subject,0,encoding))}}function isArrayIsh(subject){return Array.isArray(subject)||Buffer.isBuffer(subject)||subject&&\"object\"==typeof subject&&\"number\"==typeof subject.length}function allocPool(){pool=new SlowBuffer(Buffer.poolSize),pool.used=0}function readUInt16(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),offset>=buffer.length?0:(isBigEndian?(val=buffer.parent[buffer.offset+offset]\u003C\u003C8,buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1])):(val=buffer.parent[buffer.offset+offset],buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8)),val)}function readUInt32(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),offset>=buffer.length?0:(isBigEndian?(buffer.length>offset+1&&(val=buffer.parent[buffer.offset+offset+1]\u003C\u003C16),buffer.length>offset+2&&(val|=buffer.parent[buffer.offset+offset+2]\u003C\u003C8),buffer.length>offset+3&&(val|=buffer.parent[buffer.offset+offset+3]),val+=buffer.parent[buffer.offset+offset]\u003C\u003C24>>>0):(buffer.length>offset+2&&(val=buffer.parent[buffer.offset+offset+2]\u003C\u003C16),buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8),val|=buffer.parent[buffer.offset+offset],buffer.length>offset+3&&(val+=buffer.parent[buffer.offset+offset+3]\u003C\u003C24>>>0)),val)}function readInt16(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),val=readUInt16(buffer,offset,isBigEndian,noAssert),neg=32768&val,neg?-1*(65535-val+1):val}function readInt32(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),val=readUInt32(buffer,offset,isBigEndian,noAssert),neg=2147483648&val,neg?-1*(4294967295-val+1):val}function readFloat(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,23,4)}function readDouble(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+7,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,52,8)}function verifuint(value,max){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(value>=0,\"specified a negative value for writing an unsigned value\"),assert.ok(max>=value,\"value is larger than maximum value for type\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function writeUInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"trying to write beyond buffer length\"),verifuint(value,65535));for(var i=0;Math.min(buffer.length-offset,2)>i;i++)buffer.parent[buffer.offset+offset+i]=(value&255\u003C\u003C8*(isBigEndian?1-i:i))>>>8*(isBigEndian?1-i:i)}function writeUInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"trying to write beyond buffer length\"),verifuint(value,4294967295));for(var i=0;Math.min(buffer.length-offset,4)>i;i++)buffer.parent[buffer.offset+offset+i]=255&value>>>8*(isBigEndian?3-i:i)}function verifsint(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function verifIEEE754(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\")}function writeInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to write beyond buffer length\"),verifsint(value,32767,-32768)),value>=0?writeUInt16(buffer,value,offset,isBigEndian,noAssert):writeUInt16(buffer,65535+value+1,offset,isBigEndian,noAssert)}function writeInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifsint(value,2147483647,-2147483648)),value>=0?writeUInt32(buffer,value,offset,isBigEndian,noAssert):writeUInt32(buffer,4294967295+value+1,offset,isBigEndian,noAssert)}function writeFloat(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifIEEE754(value,3.4028234663852886e38,-3.4028234663852886e38)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,23,4)}function writeDouble(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+7,\"Trying to write beyond buffer length\"),verifIEEE754(value,1.7976931348623157e308,-1.7976931348623157e308)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,52,8)}var assert=require(\"assert\");exports.INSPECT_MAX_BYTES=50,SlowBuffer.byteLength=function(str,encoding){switch(encoding||\"utf8\"){case\"hex\":return str.length/2;case\"utf8\":case\"utf-8\":return utf8ToBytes(str).length;case\"ascii\":case\"binary\":return str.length;case\"base64\":return base64ToBytes(str).length;default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.utf8Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(utf8ToBytes(string),this,offset,length)},SlowBuffer.prototype.asciiWrite=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(asciiToBytes(string),this,offset,length)},SlowBuffer.prototype.binaryWrite=SlowBuffer.prototype.asciiWrite,SlowBuffer.prototype.base64Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(base64ToBytes(string),this,offset,length)},SlowBuffer.prototype.base64Slice=function(){var bytes=Array.prototype.slice.apply(this,arguments);return require(\"base64-js\").fromByteArray(bytes)},SlowBuffer.prototype.utf8Slice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),res=\"\",tmp=\"\",i=0;bytes.length>i;)127>=bytes[i]?(res+=decodeUtf8Char(tmp)+String.fromCharCode(bytes[i]),tmp=\"\"):tmp+=\"%\"+bytes[i].toString(16),i++;return res+decodeUtf8Char(tmp)},SlowBuffer.prototype.asciiSlice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),ret=\"\",i=0;bytes.length>i;i++)ret+=String.fromCharCode(bytes[i]);return ret},SlowBuffer.prototype.binarySlice=SlowBuffer.prototype.asciiSlice,SlowBuffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this[i]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CSlowBuffer \"+out.join(\" \")+\">\"},SlowBuffer.prototype.hexSlice=function(start,end){var len=this.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out=\"\",i=start;end>i;i++)out+=toHex(this[i]);return out},SlowBuffer.prototype.toString=function(encoding,start,end){if(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start=+start||0,end===void 0&&(end=this.length),+end==start)return\"\";switch(encoding){case\"hex\":return this.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.utf8Slice(start,end);case\"ascii\":return this.asciiSlice(start,end);case\"binary\":return this.binarySlice(start,end);case\"base64\":return this.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.hexWrite=function(string,offset,length){offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2)throw Error(\"Invalid hex string\");length>strLen/2&&(length=strLen/2);for(var i=0;length>i;i++){var byte=parseInt(string.substr(2*i,2),16);if(isNaN(byte))throw Error(\"Invalid hex string\");this[offset+i]=byte}return SlowBuffer._charsWritten=2*i,i},SlowBuffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;switch(length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase()){case\"hex\":return this.hexWrite(string,offset,length);case\"utf8\":case\"utf-8\":return this.utf8Write(string,offset,length);case\"ascii\":return this.asciiWrite(string,offset,length);case\"binary\":return this.binaryWrite(string,offset,length);case\"base64\":return this.base64Write(string,offset,length);case\"ucs2\":case\"ucs-2\":return this.ucs2Write(string,offset,length);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this,end-start,+start)},SlowBuffer.prototype.copy=function(target,targetstart,sourcestart,sourceend){for(var temp=[],i=sourcestart;sourceend>i;i++)assert.ok(this[i]!==void 0,\"copying undefined buffer bytes!\"),temp.push(this[i]);for(var i=targetstart;targetstart+temp.length>i;i++)target[i]=temp[i-targetstart]},SlowBuffer.prototype.fill=function(value,start,end){if(end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");for(var i=start;end>i;i++)this[i]=value},exports.SlowBuffer=SlowBuffer,exports.Buffer=Buffer,Buffer.poolSize=8192;var pool;Buffer.isBuffer=function(b){return b instanceof Buffer||b instanceof SlowBuffer},Buffer.concat=function(list,totalLength){if(!Array.isArray(list))throw Error(\"Usage: Buffer.concat(list, [totalLength])\\n list should be an Array.\");if(0===list.length)return new Buffer(0);if(1===list.length)return list[0];if(\"number\"!=typeof totalLength){totalLength=0;for(var i=0;list.length>i;i++){var buf=list[i];totalLength+=buf.length}}for(var buffer=new Buffer(totalLength),pos=0,i=0;list.length>i;i++){var buf=list[i];buf.copy(buffer,pos),pos+=buf.length}return buffer},Buffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this.parent[i+this.offset]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CBuffer \"+out.join(\" \")+\">\"},Buffer.prototype.get=function(i){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]},Buffer.prototype.set=function(i,v){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]=v},Buffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase();var ret;switch(encoding){case\"hex\":ret=this.parent.hexWrite(string,this.offset+offset,length);break;case\"utf8\":case\"utf-8\":ret=this.parent.utf8Write(string,this.offset+offset,length);break;case\"ascii\":ret=this.parent.asciiWrite(string,this.offset+offset,length);break;case\"binary\":ret=this.parent.binaryWrite(string,this.offset+offset,length);break;case\"base64\":ret=this.parent.base64Write(string,this.offset+offset,length);break;case\"ucs2\":case\"ucs-2\":ret=this.parent.ucs2Write(string,this.offset+offset,length);break;default:throw Error(\"Unknown encoding\")}return Buffer._charsWritten=SlowBuffer._charsWritten,ret},Buffer.prototype.toString=function(encoding,start,end){switch(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start===void 0||0>start?start=0:start>this.length&&(start=this.length),end===void 0||end>this.length?end=this.length:0>end&&(end=0),start+=this.offset,end+=this.offset,encoding){case\"hex\":return this.parent.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.parent.utf8Slice(start,end);case\"ascii\":return this.parent.asciiSlice(start,end);case\"binary\":return this.parent.binarySlice(start,end);case\"base64\":return this.parent.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.parent.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},Buffer.byteLength=SlowBuffer.byteLength,Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),\"string\"==typeof value&&(value=value.charCodeAt(0)),\"number\"!=typeof value||isNaN(value))throw Error(\"value is not a number\");if(start>end)throw Error(\"end \u003C start\");if(end===start)return 0;if(0==this.length)return 0;if(0>start||start>=this.length)throw Error(\"start out of bounds\");\nif(0>end||end>this.length)throw Error(\"end out of bounds\");return this.parent.fill(value,start+this.offset,end+this.offset)},Buffer.prototype.copy=function(target,target_start,start,end){var source=this;if(start||(start=0),end||(end=this.length),target_start||(target_start=0),start>end)throw Error(\"sourceEnd \u003C sourceStart\");if(end===start)return 0;if(0==target.length||0==source.length)return 0;if(0>target_start||target_start>=target.length)throw Error(\"targetStart out of bounds\");if(0>start||start>=source.length)throw Error(\"sourceStart out of bounds\");if(0>end||end>source.length)throw Error(\"sourceEnd out of bounds\");return end>this.length&&(end=this.length),end-start>target.length-target_start&&(end=target.length-target_start+start),this.parent.copy(target.parent,target_start+target.offset,start+this.offset,end+this.offset)},Buffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this.parent,end-start,+start+this.offset)},Buffer.prototype.utf8Slice=function(start,end){return this.toString(\"utf8\",start,end)},Buffer.prototype.binarySlice=function(start,end){return this.toString(\"binary\",start,end)},Buffer.prototype.asciiSlice=function(start,end){return this.toString(\"ascii\",start,end)},Buffer.prototype.utf8Write=function(string,offset){return this.write(string,offset,\"utf8\")},Buffer.prototype.binaryWrite=function(string,offset){return this.write(string,offset,\"binary\")},Buffer.prototype.asciiWrite=function(string,offset){return this.write(string,offset,\"ascii\")},Buffer.prototype.readUInt8=function(offset,noAssert){var buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),offset>=buffer.length?void 0:buffer.parent[buffer.offset+offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return readUInt16(this,offset,!1,noAssert)},Buffer.prototype.readUInt16BE=function(offset,noAssert){return readUInt16(this,offset,!0,noAssert)},Buffer.prototype.readUInt32LE=function(offset,noAssert){return readUInt32(this,offset,!1,noAssert)},Buffer.prototype.readUInt32BE=function(offset,noAssert){return readUInt32(this,offset,!0,noAssert)},Buffer.prototype.readInt8=function(offset,noAssert){var neg,buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),offset>=buffer.length?void 0:(neg=128&buffer.parent[buffer.offset+offset],neg?-1*(255-buffer.parent[buffer.offset+offset]+1):buffer.parent[buffer.offset+offset])},Buffer.prototype.readInt16LE=function(offset,noAssert){return readInt16(this,offset,!1,noAssert)},Buffer.prototype.readInt16BE=function(offset,noAssert){return readInt16(this,offset,!0,noAssert)},Buffer.prototype.readInt32LE=function(offset,noAssert){return readInt32(this,offset,!1,noAssert)},Buffer.prototype.readInt32BE=function(offset,noAssert){return readInt32(this,offset,!0,noAssert)},Buffer.prototype.readFloatLE=function(offset,noAssert){return readFloat(this,offset,!1,noAssert)},Buffer.prototype.readFloatBE=function(offset,noAssert){return readFloat(this,offset,!0,noAssert)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return readDouble(this,offset,!1,noAssert)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return readDouble(this,offset,!0,noAssert)},Buffer.prototype.writeUInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"trying to write beyond buffer length\"),verifuint(value,255)),buffer.length>offset&&(buffer.parent[buffer.offset+offset]=value)},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){writeUInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){writeUInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){writeUInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){writeUInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to write beyond buffer length\"),verifsint(value,127,-128)),value>=0?buffer.writeUInt8(value,offset,noAssert):buffer.writeUInt8(255+value+1,offset,noAssert)},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){writeInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){writeInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){writeInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){writeInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){writeDouble(this,value,offset,!0,noAssert)},SlowBuffer.prototype.readUInt8=Buffer.prototype.readUInt8,SlowBuffer.prototype.readUInt16LE=Buffer.prototype.readUInt16LE,SlowBuffer.prototype.readUInt16BE=Buffer.prototype.readUInt16BE,SlowBuffer.prototype.readUInt32LE=Buffer.prototype.readUInt32LE,SlowBuffer.prototype.readUInt32BE=Buffer.prototype.readUInt32BE,SlowBuffer.prototype.readInt8=Buffer.prototype.readInt8,SlowBuffer.prototype.readInt16LE=Buffer.prototype.readInt16LE,SlowBuffer.prototype.readInt16BE=Buffer.prototype.readInt16BE,SlowBuffer.prototype.readInt32LE=Buffer.prototype.readInt32LE,SlowBuffer.prototype.readInt32BE=Buffer.prototype.readInt32BE,SlowBuffer.prototype.readFloatLE=Buffer.prototype.readFloatLE,SlowBuffer.prototype.readFloatBE=Buffer.prototype.readFloatBE,SlowBuffer.prototype.readDoubleLE=Buffer.prototype.readDoubleLE,SlowBuffer.prototype.readDoubleBE=Buffer.prototype.readDoubleBE,SlowBuffer.prototype.writeUInt8=Buffer.prototype.writeUInt8,SlowBuffer.prototype.writeUInt16LE=Buffer.prototype.writeUInt16LE,SlowBuffer.prototype.writeUInt16BE=Buffer.prototype.writeUInt16BE,SlowBuffer.prototype.writeUInt32LE=Buffer.prototype.writeUInt32LE,SlowBuffer.prototype.writeUInt32BE=Buffer.prototype.writeUInt32BE,SlowBuffer.prototype.writeInt8=Buffer.prototype.writeInt8,SlowBuffer.prototype.writeInt16LE=Buffer.prototype.writeInt16LE,SlowBuffer.prototype.writeInt16BE=Buffer.prototype.writeInt16BE,SlowBuffer.prototype.writeInt32LE=Buffer.prototype.writeInt32LE,SlowBuffer.prototype.writeInt32BE=Buffer.prototype.writeInt32BE,SlowBuffer.prototype.writeFloatLE=Buffer.prototype.writeFloatLE,SlowBuffer.prototype.writeFloatBE=Buffer.prototype.writeFloatBE,SlowBuffer.prototype.writeDoubleLE=Buffer.prototype.writeDoubleLE,SlowBuffer.prototype.writeDoubleBE=Buffer.prototype.writeDoubleBE})()},{assert:73,\"./buffer_ieee754\":75,\"base64-js\":79}],72:[function(require,module){\"use strict\";function newlinesIn(src){if(!src)return 0;var newlines=src.match(/\\n/g);return newlines?newlines.length:0}var difflet=require(\"difflet\"),prettydiff=difflet({comment:!0,indent:2}),compactdiff=difflet({comment:!0});module.exports=function(before,after,opts){opts=opts||{};var joinLinesAt=opts.joinLinesAt||20,maxLineLength=opts.maxLineLength||380,result=prettydiff.compare(before,after);return newlinesIn(result)>=joinLinesAt&&(result=compactdiff.compare(before,after)),result.split(\"\\n\").map(function(line){return line.length>=maxLineLength?line.slice(0,maxLineLength)+\"....\":line}).join(\"\\n\").replace(/\\/\\/ != undefined/g,\"\")}},{difflet:80}],78:[function(require,module){function clonePrototype(parent){if(null===parent)return null;var ctor=function(){};return ctor.prototype=parent,new ctor}module.exports=clonePrototype},{}],79:[function(require,module){(function(){\"use strict\";function b64ToByteArray(b64){var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw\"Invalid string. Length must be a multiple of 4\";for(placeHolders=b64.indexOf(\"=\"),placeHolders=placeHolders>0?b64.length-placeHolders:0,arr=[],l=placeHolders>0?b64.length-4:b64.length,i=0,j=0;l>i;i+=4,j+=3)tmp=lookup.indexOf(b64[i])\u003C\u003C18|lookup.indexOf(b64[i+1])\u003C\u003C12|lookup.indexOf(b64[i+2])\u003C\u003C6|lookup.indexOf(b64[i+3]),arr.push((16711680&tmp)>>16),arr.push((65280&tmp)>>8),arr.push(255&tmp);return 2===placeHolders?(tmp=lookup.indexOf(b64[i])\u003C\u003C2|lookup.indexOf(b64[i+1])>>4,arr.push(255&tmp)):1===placeHolders&&(tmp=lookup.indexOf(b64[i])\u003C\u003C10|lookup.indexOf(b64[i+1])\u003C\u003C4|lookup.indexOf(b64[i+2])>>2,arr.push(255&tmp>>8),arr.push(255&tmp)),arr}function uint8ToBase64(uint8){function tripletToBase64(num){return lookup[63&num>>18]+lookup[63&num>>12]+lookup[63&num>>6]+lookup[63&num]}var i,temp,length,extraBytes=uint8.length%3,output=\"\";for(i=0,length=uint8.length-extraBytes;length>i;i+=3)temp=(uint8[i]\u003C\u003C16)+(uint8[i+1]\u003C\u003C8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=lookup[temp>>2],output+=lookup[63&temp\u003C\u003C4],output+=\"==\";break;case 2:temp=(uint8[uint8.length-2]\u003C\u003C8)+uint8[uint8.length-1],output+=lookup[temp>>10],output+=lookup[63&temp>>4],output+=lookup[63&temp\u003C\u003C2],output+=\"=\"}return output}var lookup=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";module.exports.toByteArray=b64ToByteArray,module.exports.fromByteArray=uint8ToBase64})()},{}],62:[function(require,module){function trimEmptyLines(lines){for(var line=lines.pop();!line||!line.length;)line=lines.pop();line&&lines.push(line)}function addLinenos(highlightedCode,firstline){function getDigits(n){return 10>n?1:100>n?2:1e3>n?3:1e4>n?4:5}function pad(n,totalDigits){var padDigits=totalDigits-getDigits(n);switch(padDigits){case 0:return\"\"+n;case 1:return\" \"+n;case 2:return\" \"+n;case 3:return\" \"+n;case 4:return\" \"+n;case 5:return\" \"+n}}var highlightedLines=highlightedCode.split(\"\\n\");trimEmptyLines(highlightedLines);var totalDigits,lineno,linesLen=highlightedLines.length,lines=[];totalDigits=getDigits(linesLen+firstline-1);for(var i=0;linesLen>i;i++)lineno=[colorSurround[0],pad(i+firstline,totalDigits),\": \",colorSurround[1]].join(\"\"),lines.push(lineno+highlightedLines[i]);return lines.join(\"\\n\")}var redeyed=require(\"redeyed\"),theme=require(\"../themes/default\"),colors=require(\"../colors\"),colorSurround=colors.brightBlack.split(\":\");module.exports=function(code,opts){opts=opts||{};try{var result=redeyed(code,opts.theme||theme),firstline=opts.firstline&&!isNaN(opts.firstline)?opts.firstline:1;return opts.linenos?addLinenos(result.code,firstline):result.code}catch(e){throw e.message=\"Unable to perform highlight. The code contained syntax errors: \"+e.message,e}}},{\"../themes/default\":81,\"../colors\":76,redeyed:82}],81:[function(require,module){var colors=require(\"../colors\");module.exports={Boolean:{\"true\":void 0,\"false\":void 0,_default:colors.brightRed},Identifier:{undefined:colors.brightBlack,self:colors.brightRed,console:colors.blue,log:colors.blue,warn:colors.red,error:colors.brightRed,_default:colors.white},Null:{_default:colors.brightBlack},Numeric:{_default:colors.blue},String:{_default:colors.brightGreen},Keyword:{\"break\":void 0,\"case\":void 0,\"catch\":colors.cyan,\"continue\":void 0,\"debugger\":void 0,\"default\":void 0,\"delete\":colors.red,\"do\":void 0,\"else\":void 0,\"finally\":colors.cyan,\"for\":void 0,\"function\":void 0,\"if\":void 0,\"in\":void 0,\"instanceof\":void 0,\"new\":colors.red,\"return\":colors.red,\"switch\":void 0,\"this\":colors.brightRed,\"throw\":void 0,\"try\":colors.cyan,\"typeof\":void 0,\"var\":colors.green,\"void\":void 0,\"while\":void 0,\"with\":void 0,_default:colors.brightBlue},Punctuator:{\";\":colors.brightBlack,\".\":colors.green,\",\":colors.green,\"{\":colors.yellow,\"}\":colors.yellow,\"(\":colors.brightBlack,\")\":colors.brightBlack,\"[\":colors.yellow,\"]\":colors.yellow,\"\u003C\":void 0,\">\":void 0,\"+\":void 0,\"-\":void 0,\"*\":void 0,\"%\":void 0,\"&\":void 0,\"|\":void 0,\"^\":void 0,\"!\":void 0,\"~\":void 0,\"?\":void 0,\":\":void 0,\"=\":void 0,\"\u003C=\":void 0,\">=\":void 0,\"==\":void 0,\"!=\":void 0,\"++\":void 0,\"--\":void 0,\"\u003C\u003C\":void 0,\">>\":void 0,\"&&\":void 0,\"||\":void 0,\"+=\":void 0,\"-=\":void 0,\"*=\":void 0,\"%=\":void 0,\"&=\":void 0,\"|=\":void 0,\"^=\":void 0,\"/=\":void 0,\"===\":void 0,\"!==\":void 0,\">>>\":void 0,\"\u003C\u003C=\":void 0,\">>=\":void 0,\">>>=\":void 0,_default:colors.brightYellow},Line:{_default:colors.brightBlack},Block:{_default:colors.brightBlack},_default:void 0}},{\"../colors\":76}],83:[function(require,module){function Traverse(obj){this.value=obj}function walk(root,cb,immutable){var path=[],parents=[],alive=!0;return function walker(node_){function updateState(){if(\"object\"==typeof state.node&&null!==state.node){state.keys&&state.node_===state.node||(state.keys=objectKeys(state.node)),state.isLeaf=0==state.keys.length;for(var i=0;parents.length>i;i++)if(parents[i].node_===node_){state.circular=parents[i];break}}else state.isLeaf=!0,state.keys=null;state.notLeaf=!state.isLeaf,state.notRoot=!state.isRoot}var node=immutable?copy(node_):node_,modifiers={},keepGoing=!0,state={node:node,node_:node_,path:[].concat(path),parent:parents[parents.length-1],parents:parents,key:path.slice(-1)[0],isRoot:0===path.length,level:path.length,circular:null,update:function(x,stopHere){state.isRoot||(state.parent.node[state.key]=x),state.node=x,stopHere&&(keepGoing=!1)},\"delete\":function(stopHere){delete state.parent.node[state.key],stopHere&&(keepGoing=!1)},remove:function(stopHere){isArray(state.parent.node)?state.parent.node.splice(state.key,1):delete state.parent.node[state.key],stopHere&&(keepGoing=!1)},keys:null,before:function(f){modifiers.before=f},after:function(f){modifiers.after=f},pre:function(f){modifiers.pre=f},post:function(f){modifiers.post=f},stop:function(){alive=!1},block:function(){keepGoing=!1}};if(!alive)return state;updateState();var ret=cb.call(state,state.node);return void 0!==ret&&state.update&&state.update(ret),modifiers.before&&modifiers.before.call(state,state.node),keepGoing?(\"object\"!=typeof state.node||null===state.node||state.circular||(parents.push(state),updateState(),forEach(state.keys,function(key,i){path.push(key),modifiers.pre&&modifiers.pre.call(state,state.node[key],key);var child=walker(state.node[key]);immutable&&Object.hasOwnProperty.call(state.node,key)&&(state.node[key]=child.node),child.isLast=i==state.keys.length-1,child.isFirst=0==i,modifiers.post&&modifiers.post.call(state,child),path.pop()}),parents.pop()),modifiers.after&&modifiers.after.call(state,state.node),state):state}(root).node}function copy(src){if(\"object\"==typeof src&&null!==src){var dst;if(isArray(src))dst=[];else if(isDate(src))dst=new Date(src);else if(isRegExp(src))dst=RegExp(src);else if(isError(src))dst={message:src.message};else if(isBoolean(src))dst=new Boolean(src);else if(isNumber(src))dst=new Number(src);else if(isString(src))dst=new String(src);else if(Object.create&&Object.getPrototypeOf)dst=Object.create(Object.getPrototypeOf(src));else if(src.constructor===Object)dst={};else{var proto=src.constructor&&src.constructor.prototype||src.__proto__||{},T=function(){};T.prototype=proto,dst=new T}return forEach(objectKeys(src),function(key){dst[key]=src[key]}),dst}return src}function toS(obj){return Object.prototype.toString.call(obj)}function isDate(obj){return\"[object Date]\"===toS(obj)}function isRegExp(obj){return\"[object RegExp]\"===toS(obj)}function isError(obj){return\"[object Error]\"===toS(obj)}function isBoolean(obj){return\"[object Boolean]\"===toS(obj)}function isNumber(obj){return\"[object Number]\"===toS(obj)}function isString(obj){return\"[object String]\"===toS(obj)}var traverse=module.exports=function(obj){return new Traverse(obj)};Traverse.prototype.get=function(ps){for(var node=this.value,i=0;ps.length>i;i++){var key=ps[i];if(!Object.hasOwnProperty.call(node,key)){node=void 0;break}node=node[key]}return node},Traverse.prototype.has=function(ps){for(var node=this.value,i=0;ps.length>i;i++){var key=ps[i];if(!Object.hasOwnProperty.call(node,key))return!1;node=node[key]}return!0},Traverse.prototype.set=function(ps,value){for(var node=this.value,i=0;ps.length-1>i;i++){var key=ps[i];Object.hasOwnProperty.call(node,key)||(node[key]={}),node=node[key]}return node[ps[i]]=value,value},Traverse.prototype.map=function(cb){return walk(this.value,cb,!0)},Traverse.prototype.forEach=function(cb){return this.value=walk(this.value,cb,!1),this.value},Traverse.prototype.reduce=function(cb,init){var skip=1===arguments.length,acc=skip?this.value:init;return this.forEach(function(x){this.isRoot&&skip||(acc=cb.call(this,acc,x))}),acc},Traverse.prototype.paths=function(){var acc=[];return this.forEach(function(){acc.push(this.path)}),acc},Traverse.prototype.nodes=function(){var acc=[];return this.forEach(function(){acc.push(this.node)}),acc},Traverse.prototype.clone=function(){var parents=[],nodes=[];return function clone(src){for(var i=0;parents.length>i;i++)if(parents[i]===src)return nodes[i];if(\"object\"==typeof src&&null!==src){var dst=copy(src);return parents.push(src),nodes.push(dst),forEach(objectKeys(src),function(key){dst[key]=clone(src[key])}),parents.pop(),nodes.pop(),dst}return src}(this.value)};var objectKeys=Object.keys||function(obj){var res=[];for(var key in obj)res.push(key);return res},isArray=Array.isArray||function isArray(xs){return\"[object Array]\"===Object.prototype.toString.call(xs)},forEach=function(xs,fn){if(xs.forEach)return xs.forEach(fn);for(var i=0;xs.length>i;i++)fn(xs[i],i,xs)};forEach(objectKeys(Traverse.prototype),function(key){traverse[key]=function(obj){var args=[].slice.call(arguments,1),t=new Traverse(obj);return t[key].apply(t,args)}})},{}],80:[function(require,module){(function(process){function difflet(opts,prev,next){function set(type){0===levels&&opts.start(type,stream),levels++}function unset(type){0===--levels&&opts.stop(type,stream)}function stringifier(insertable,node,opts){var indent=opts.indent;if(insertable)var prevNode=traverse.get(prev,this.path||[]);var indentx,inserted=insertable&&void 0===prevNode;try{indentx=indent?Array(((this.path||[]).length+1)*indent+1).join(\" \"):\"\"}catch(e){indentx=\"\"}if(commaFirst&&(indentx=indentx.slice(indent)),Array.isArray(node)){var updated=(prevNode||traverse.has(prev,this.path))&&!Array.isArray(prevNode);updated&&set(\"updated\"),opts.comment&&!Array.isArray(prevNode)&&(indent=0),this.before(function(){inserted&&set(\"inserted\"),indent&&commaFirst?0===(this.path||[]).length||Array.isArray(this.parent.node)?write(\"[ \"):write(\"\\n\"+indentx+\"[ \"):indent?write(\"[\\n\"+indentx):write(\"[\")}),this.post(function(child){child.isLast||indent&&commaFirst||write(\",\");var prev=prevNode&&prevNode[child.key];indent&&opts.comment&&child.node!==prev&&(\"object\"!=typeof child.node||\"object\"!=typeof prev)&&(set(\"comment\"),write(\" // != \"),traverse(prev).forEach(function(x){plainStringify.call(this,x,{indent:0})}),unset(\"comment\")),child.isLast||(indent&&commaFirst?write(\"\\n\"+indentx+\", \"):indent&&write(\"\\n\"+indentx))}),this.after(function(){indent&&commaFirst?write(\"\\n\"+indentx):indent&&write(\"\\n\"+indentx.slice(indent)),write(\"]\"),updated&&unset(\"updated\"),inserted&&unset(\"inserted\")})}else if(isRegExp(node))this.block(),inserted?(set(\"inserted\"),write(\"\"+node),unset(\"inserted\")):insertable&&prevNode!==node?(set(\"updated\"),write(\"\"+node),unset(\"updated\")):write(\"\"+node);else if(\"object\"==typeof node&&node&&\"function\"==typeof node.inspect)this.block(),inserted?(set(\"inserted\"),write(node.inspect()),unset(\"inserted\")):prevNode&&\"function\"==typeof prevNode.inspect&&prevNode.inspect()===node.inspect()?write(node.inspect()):(set(\"updated\"),write(node.inspect()),unset(\"updated\"));else if(\"object\"==typeof node&&null!==node){var insertedKey=!1,deleted=insertable&&\"object\"==typeof prevNode&&prevNode?Object.keys(prevNode).filter(function(key){return!Object.hasOwnProperty.call(node,key)}):[];this.before(function(){inserted&&set(\"inserted\"),write(indent&&commaFirst&&!this.isRoot?\"\\n\"+indentx+\"{ \":\"{\")}),this.pre(function(x,key){if(insertable){var obj=traverse.get(prev,this.path.concat(key));void 0===obj&&(insertedKey=!0,set(\"inserted\"))}indent&&!commaFirst&&write(\"\\n\"+indentx),plainStringify(key),write(indent?\" : \":\":\")}),this.post(function(child){child.isLast||indent&&commaFirst||write(\",\"),child.isLast&&deleted.length?(insertedKey&&unset(\"inserted\"),insertedKey=!1):insertedKey&&(unset(\"inserted\"),insertedKey=!1);var prev=prevNode&&prevNode[child.key];indent&&opts.comment&&child.node!==prev&&(\"object\"!=typeof child.node||\"object\"!=typeof prev)&&(set(\"comment\"),write(\" // != \"),traverse(prev).forEach(function(x){plainStringify.call(this,x,{indent:0})}),unset(\"comment\")),child.isLast&&deleted.length?(insertedKey&&unset(\"inserted\"),insertedKey=!1,indent&&commaFirst?write(\"\\n\"+indentx+\", \"):opts.comment&&indent?write(\"\\n\"+indentx):indent?write(\",\\n\"+indentx):write(\",\")):child.isLast||indent&&commaFirst&&write(\"\\n\"+indentx+\", \")}),this.after(function(){inserted&&unset(\"inserted\"),deleted.length&&(indent&&!commaFirst&&0===Object.keys(node).length&&write(\"\\n\"+indentx),set(\"deleted\"),deleted.forEach(function(key,ix){indent&&opts.comment&&(unset(\"deleted\"),set(\"comment\"),write(\"// \"),unset(\"comment\"),set(\"deleted\")),plainStringify(key),write(indent?\" : \":\":\"),traverse(prevNode[key]).forEach(function(x){plainStringify.call(this,x,{indent:0})});var last=ix===deleted.length-1;insertable&&!last&&(indent&&commaFirst?write(\"\\n\"+indentx+\", \"):indent?write(\",\\n\"+indentx):write(\",\"))}),unset(\"deleted\")),commaFirst&&indent?write(indentx.slice(indent)+\" }\"):indent?write(\"\\n\"+indentx.slice(indent)+\"}\"):write(\"}\")})}else{var changed=!1;inserted?set(\"inserted\"):insertable&&!deepEqual(prevNode,node)&&(changed=!0,set(\"updated\")),\"string\"==typeof node?write('\"'+(\"\"+node).replace(/\"/g,'\\\\\"')+'\"'):isRegExp(node)?write(\"\"+node):\"function\"==typeof node?write(node.name?\"[Function: \"+node.name+\"]\":\"[Function]\"):void 0===node?write(\"undefined\"):null===node?write(\"null\"):write(\"\"+node),inserted?unset(\"inserted\"):changed&&unset(\"updated\")}}var stream=opts.stream||new Stream;if(opts.stream||(stream.readable=!0,stream.writable=!0,stream.write=function(buf){this.emit(\"data\",buf)},stream.end=function(){this.emit(\"end\")}),opts||(opts={}),void 0===opts.start&&void 0===opts.stop){var c=charm(stream);opts.start=function(type){c.foreground({inserted:\"green\",updated:\"blue\",deleted:\"red\",comment:\"cyan\"}[type]),c.display(\"bright\")},opts.stop=function(){c.display(\"reset\")}}var write=function(buf){opts.write?opts.write(buf,stream):stream.write(buf)},commaFirst=\"first\"===opts.comma,stringify=function(node,params){return stringifier.call(this,!0,node,params||opts)},plainStringify=function(node,params){return stringifier.call(this,!1,node,params||opts)},levels=0;return opts.stream?traverse(next).forEach(stringify):process.nextTick(function(){traverse(next).forEach(stringify),stream.emit(\"end\")}),stream}function isRegExp(node){return node instanceof RegExp||node&&\"function\"==typeof node.test&&\"function\"==typeof node.exec&&\"function\"==typeof node.compile&&node.constructor&&\"RegExp\"===node.constructor.name}var traverse=require(\"traverse\"),Stream=require(\"stream\").Stream,charm=require(\"charm\"),deepEqual=require(\"deep-is\"),exports=module.exports=function(opts_){var fn=difflet.bind(null,opts_);return fn.compare=function(prev,next){var opts=Object.keys(opts_||{}).reduce(function(acc,key){return acc[key]=opts_[key],acc},{}),s=opts.stream=new Stream,data=\"\";return s.write=function(buf){data+=buf},s.end=function(){},s.readable=!0,s.writable=!0,difflet(opts,prev,next),data},fn};exports.compare=function(prev,next){return exports({}).compare(prev,next)}})(require(\"__browserify_process\"))},{stream:58,traverse:83,charm:84,\"deep-is\":69,__browserify_process:16}],85:[function(require,module,exports){exports.isatty=function(){},exports.setRawMode=function(){}},{}],84:[function(require,module){(function(process){var tty=require(\"tty\"),encode=require(\"./lib/encode\"),EventEmitter=require(\"events\").EventEmitter,exports=module.exports=function(){function setInput(s){if(input)throw Error(\"multiple inputs specified\");input=s}function setOutput(s){if(output)throw Error(\"multiple outputs specified\");output=s}for(var input=null,output=null,i=0;arguments.length>i;i++){var arg=arguments[i];arg&&(arg.readable?setInput(arg):(arg.stdin||arg.input)&&setInput(arg.stdin||arg.input),arg.writable?setOutput(arg):(arg.stdout||arg.output)&&setOutput(arg.stdout||arg.output))}return new Charm(input,output)},Charm=exports.Charm=function(input,output){var self=this;self.input=input,self.output=output,self.pending=[],output||self.emit(\"error\",Error(\"output stream required\")),input&&\"number\"==typeof input.fd&&tty.isatty(input.fd)&&(process.stdin.setRawMode?process.stdin.setRawMode(!0):tty.setRawMode(!0),input.resume()),input&&input.on(\"data\",function(buf){if(self.pending.length){for(var codes=extractCodes(buf),matched=!1,i=0;codes.length>i;i++)for(var j=0;self.pending.length>j;j++){var cb=self.pending[j];if(cb(codes[i])){matched=!0,self.pending.splice(j,1);break}}if(matched)return}self.emit(\"data\",buf),1===buf.length&&(3===buf[0]&&self.emit(\"^C\"),4===buf[0]&&self.emit(\"^D\"))})};Charm.prototype=new EventEmitter,Charm.prototype.destroy=function(){this.input&&this.input.destroy()},Charm.prototype.write=function(msg){return this.output.write(msg),this},Charm.prototype.reset=function(){return this.write(encode(\"c\")),this},Charm.prototype.position=function(x,y){if(\"function\"==typeof x){var cb=x;this.pending.push(function(buf){if(27===buf[0]&&buf[1]===encode.ord(\"[\")&&buf[buf.length-1]===encode.ord(\"R\")){var pos=(\"\"+buf).slice(2,-1).split(\";\").map(Number);return cb(pos[1],pos[0]),!0}}),this.write(encode(\"[6n\"))}else this.write(encode(\"[\"+Math.floor(y)+\";\"+Math.floor(x)+\"f\"));return this},Charm.prototype.move=function(x,y){return 0>y?this.up(-y):y>0&&this.down(y),x>0?this.right(x):0>x&&this.left(-x),this},Charm.prototype.up=function(y){return void 0===y&&(y=1),this.write(encode(\"[\"+Math.floor(y)+\"A\")),this},Charm.prototype.down=function(y){return void 0===y&&(y=1),this.write(encode(\"[\"+Math.floor(y)+\"B\")),this},Charm.prototype.right=function(x){return void 0===x&&(x=1),this.write(encode(\"[\"+Math.floor(x)+\"C\")),this},Charm.prototype.left=function(x){return void 0===x&&(x=1),this.write(encode(\"[\"+Math.floor(x)+\"D\")),this},Charm.prototype.column=function(x){return this.write(encode(\"[\"+Math.floor(x)+\"G\")),this},Charm.prototype.push=function(withAttributes){return this.write(encode(withAttributes?\"7\":\"[s\")),this},Charm.prototype.pop=function(withAttributes){return this.write(encode(withAttributes?\"8\":\"[u\")),this},Charm.prototype.erase=function(s){return\"end\"===s||\"$\"===s?this.write(encode(\"[K\")):\"start\"===s||\"^\"===s?this.write(encode(\"[1K\")):\"line\"===s?this.write(encode(\"[2K\")):\"down\"===s?this.write(encode(\"[J\")):\"up\"===s?this.write(encode(\"[1J\")):\"screen\"===s?this.write(encode(\"[1J\")):this.emit(\"error\",Error(\"Unknown erase type: \"+s)),this},Charm.prototype.display=function(attr){var c={reset:0,bright:1,dim:2,underscore:4,blink:5,reverse:7,hidden:8}[attr];return void 0===c&&this.emit(\"error\",Error(\"Unknown attribute: \"+attr)),this.write(encode(\"[\"+c+\"m\")),this},Charm.prototype.foreground=function(color){if(\"number\"==typeof color)(0>color||color>=256)&&this.emit(\"error\",Error(\"Color out of range: \"+color)),this.write(encode(\"[38;5;\"+color+\"m\"));else{var c={black:30,red:31,green:32,yellow:33,blue:34,magenta:35,cyan:36,white:37}[color.toLowerCase()];c||this.emit(\"error\",Error(\"Unknown color: \"+color)),this.write(encode(\"[\"+c+\"m\"))}return this},Charm.prototype.background=function(color){if(\"number\"==typeof color)(0>color||color>=256)&&this.emit(\"error\",Error(\"Color out of range: \"+color)),this.write(encode(\"[48;5;\"+color+\"m\"));else{var c={black:40,red:41,green:42,yellow:43,blue:44,magenta:45,cyan:46,white:47}[color.toLowerCase()];c||this.emit(\"error\",Error(\"Unknown color: \"+color)),this.write(encode(\"[\"+c+\"m\"))}return this},Charm.prototype.cursor=function(visible){return this.write(encode(visible?\"[?25h\":\"[?25l\")),this};var extractCodes=exports.extractCodes=function(buf){for(var codes=[],start=-1,i=0;buf.length>i;i++)27===buf[i]?(start>=0&&codes.push(buf.slice(start,i)),start=i):start>=0&&i===buf.length-1&&codes.push(buf.slice(start));return codes}})(require(\"__browserify_process\"))},{tty:85,events:15,\"./lib/encode\":86,__browserify_process:16}],82:[function(require,module){(function(){(function(){\"use strict\";function bootstrap(esprima,exportFn){function isFunction(obj){return\"[object Function]\"===toString.call(obj)}function isString(obj){return\"[object String]\"===toString.call(obj)}function isObject(obj){return\"[object Object]\"===toString.call(obj)}function surroundWith(before,after){return function(s){return before+s+after}}function isNonCircular(key){return\"_parent\"!==key}function objectizeString(value){var vals=value.split(\":\");if(0===vals.length||vals.length>2)throw Error(\"illegal string config: \"+value+'\\nShould be of format \"before:after\"');return 1===vals.length||0===vals[1].length?0>vals.indexOf(\":\")?{_before:vals[0]}:{_after:vals[0]}:{_before:vals[0],_after:vals[1]}}function objectize(node){function resolve(value,key){if(!value._parent)return void 0;if(value._parent._default&&value._parent._default[key])return value._parent._default[key];var root=value._parent._parent;return root?root._default?root._default[key]:void 0:void 0}function process(key){var value=node[key];if(value&&!isFunction(value)){if(isString(value)&&(node[key]=value=objectizeString(value)),value._parent=node,isObject(value))return value._before||value._after?(value._before=value._before||resolve(value,\"_before\"),value._after=value._after||resolve(value,\"_after\"),void 0):objectize(value);throw Error(\"nodes need to be either {String}, {Object} or {Function}.\"+value+\" is neither.\")}}node._default&&process(\"_default\"),Object.keys(node).filter(function(key){return isNonCircular(key)&&node.hasOwnProperty(key)&&\"_before\"!==key&&\"_after\"!==key&&\"_default\"!==key}).forEach(process)}function functionize(node){Object.keys(node).filter(function(key){return isNonCircular(key)&&node.hasOwnProperty(key)}).forEach(function(key){var value=node[key];if(!isFunction(value)&&isObject(value)){if(!value._before&&!value._after)return functionize(value);var before=value._before||\"\",after=value._after||\"\";return node[key]=surroundWith(before,after)}})}function normalize(root){objectize(root),functionize(root)}function mergeTokensAndComments(tokens,comments){function addToAllByRangeStart(t){all[t.range[0]]=t}var all={};return tokens.forEach(addToAllByRangeStart),comments.forEach(addToAllByRangeStart),Object.keys(all).map(function(k){return all[k]})}function redeyed(code,config,opts){function tokenIndex(tokens,tkn,start){var current,rangeStart=tkn.range[0];for(current=start;tokens.length>current;current++)if(tokens[current].range[0]===rangeStart)return current;throw Error(\"Token %s not found at or after index: %d\",tkn,start)}function process(surround){var result,currentIndex,nextIndex,splitEnd,skip=0;return result=surround(code.slice(start,end),info),isObject(result)?(splits.push(result.replacement),currentIndex=info.tokenIndex,nextIndex=tokenIndex(info.tokens,result.skipPastToken,currentIndex),skip=nextIndex-currentIndex,splitEnd=skip>0?tokens[nextIndex-1].range[1]:end):(splits.push(result),splitEnd=end),{skip:skip,splitEnd:splitEnd}}function addSplit(start,end,surround){var result,skip=0;if(!(start>=end))return surround?(result=process(surround),skip=result.skip,lastSplitEnd=result.splitEnd):(splits.push(code.slice(start,end)),lastSplitEnd=end),skip}opts=opts||{},code=code.replace(/^\\#\\!.*/,\"\");var transformedCode,all,info,ast=esprima.parse(code,{tokens:!0,comment:!0,range:!0,tolerant:!0}),tokens=ast.tokens,comments=ast.comments,lastSplitEnd=0,splits=[];\nnormalize(config),all=mergeTokensAndComments(tokens,comments);for(var tokenIdx=0;all.length>tokenIdx;tokenIdx++){var surround,start,end,token=all[tokenIdx],surroundForType=config[token.type];surroundForType&&(surround=surroundForType&&surroundForType.hasOwnProperty(token.value)&&surroundForType[token.value]&&isFunction(surroundForType[token.value])?surroundForType[token.value]:surroundForType._default,start=token.range[0],end=token.range[1],addSplit(lastSplitEnd,start),info={tokenIndex:tokenIdx,tokens:all,ast:ast,code:code},tokenIdx+=addSplit(start,end,surround,info))}return code.length>lastSplitEnd&&addSplit(lastSplitEnd,code.length),transformedCode=opts.nojoin?void 0:splits.join(\"\"),{ast:ast,tokens:tokens,comments:comments,splits:splits,code:transformedCode}}return exportFn?exportFn(redeyed):redeyed}var esprima,exportFn,toString=Object.prototype.toString;\"object\"==typeof module&&\"object\"==typeof module.exports&&\"function\"==typeof require?(esprima=require(\"esprima\"),exportFn=function(redeyed){module.exports=redeyed},bootstrap(esprima,exportFn)):\"function\"==typeof define&&define.amd?define([\"esprima\"],function(esprima){return bootstrap(esprima)}):\"object\"==typeof window&&(window.redeyed=bootstrap(window.esprima))})()})()},{esprima:70}],86:[function(require,module){(function(Buffer){var encode=module.exports=function(xs){function bytes(s){return\"string\"==typeof s?s.split(\"\").map(ord):Array.isArray(s)?s.reduce(function(acc,c){return acc.concat(bytes(c))},[]):void 0}return new Buffer([27].concat(bytes(xs)))},ord=encode.ord=function ord(c){return c.charCodeAt(0)}})(require(\"__browserify_buffer\").Buffer)},{__browserify_buffer:77}]},{},[1]);\n\n\u003C/script>","tags":"$:/tags/RawMarkup","title":"$:/webxr-notebook/scriptie-talkie-embed.js","modified":"20230427072656645"}, {"created":"20230426064319911","text":"\n\u003C!-- shader-doodle.js -->\n\u003Cscript>\n'use strict';(function(z,A){\"object\"===typeof exports&&\"undefined\"!==typeof module?A(exports):\"function\"===typeof define&&define.amd?define([\"exports\"],A):(z=z||self,A(z.ShaderDoodle={}))})(this,function(z){function A(a){function b(a){console.log(a);e.add(a.targetElement)}function d(b){e.has(b.targetElement)?e.delete(b.targetElement):(b=a.createBufferSource(),b.buffer=a.createBuffer(1,1,a.sampleRate),b.connect(a.destination),b.start(0),\"function\"===typeof a.resume&&a.resume().then(c),f())}function c(){v.forEach(a=>\n{a()})}function f(){p.forEach(a=>{a.removeEventListener(\"touchstart\",d);a.removeEventListener(\"touchmove\",b);a.removeEventListener(\"touchend\",d);a.removeEventListener(\"mouseup\",d)});p.clear();e.clear()}let e=new Set,p=new Set,v=[];return{onStart:function(b){\"running\"===a.state?(console.log(\"already\"),b()):v.push(b)},register:function(a){a.addEventListener(\"touchstart\",d);a.addEventListener(\"touchmove\",b);a.addEventListener(\"touchend\",d);a.addEventListener(\"mouseup\",d);p.add(a)},dispose:f}}function ca(){function a(a){d[0].value[0]=\na.alpha;d[0].value[1]=a.beta;d[0].value[2]=a.gamma}let b=!1,d=JSON.parse(JSON.stringify(L));return{get ustate(){return d},setup:function(){b||(b=!0,\"object\"===typeof DeviceOrientationEvent&&\"function\"===typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then(b=>{\"granted\"===b&&window.addEventListener(\"deviceorientation\",a)}).catch(console.error):window.addEventListener(\"deviceorientation\",a))},dispose:function(){window.removeEventListener(\"deviceorientation\",\na)}}}function da(a){let b={},d=a.getExtension.bind(a);return{get:function(a){if(void 0!==b[a])return b[a];let c=d(a)||d(\"MOZ_\".concat(a))||d(\"WEBKIT_\".concat(a));null===c&&console.warn(\"\u003Cshader-doodle /> \".concat(a,\" extension not supported.\"));return b[a]=c}}}function C(){function a(a,b){if(a>n||b>h)a=Math.max(a,n),b=Math.max(b,h),a!==n&&(n=a,c.width=Math.floor(1*n)),b!==h&&(h=b,c.height=Math.floor(1*h))}function b(a){let b=l?(a-l)/1E3:0;l=a;k[0].value+=b;k[1].value=b;k[3].value++;a=new Date;k[2].value[0]=\na.getFullYear();k[2].value[1]=a.getMonth()+1;k[2].value[2]=a.getDate();k[2].value[3]=3600*a.getHours()+60*a.getMinutes()+a.getSeconds()+.001*a.getMilliseconds()}function d(f){if(m.size){b(f);var u=[...k,...e.ustate];m.forEach(b=>b.render(c,a,n,h,1,u));q=requestAnimationFrame(d)}else q=void 0}let c=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\"),f=c.getContext(\"webgl\")||c.getContext(\"experimental-webgl\"),e=ca(),p=new (window.AudioContext||window.webkitAudioContext),v=new A(p);p.onStart=\nv.onStart;f.blendFunc(f.SRC_ALPHA,f.ONE_MINUS_SRC_ALPHA);f.enable(f.BLEND);let n=0,h=0,q,l,m=new Set,k=JSON.parse(JSON.stringify(M)),w=da(f);w.get(\"OES_texture_float\");w.get(\"OES_texture_float_linear\");w.get(\"OES_texture_half_float\");w.get(\"OES_texture_half_float_linear\");f.clearColor(0,0,0,0);return Object.freeze({get gl(){return f},get wa(){return p},addSurface:function(a){v.register(a.dom);a.addClick(e.setup);m.add(a);q||(q=requestAnimationFrame(d))},removeSurface:function(a){m.delete(a)},addUniform:function(a,\nb,c){for(let d=0;d\u003Ck.length;d++)if(k[d].name===a){k[d].value=b;k[d].type=c;return}k.push({name:a,value:b,type:c,toyname:a})},setUniform:function(a,b){for(let c=0;c\u003Ck.length;c++)if(k[c].name===a){k[c].value=b;break}},dispose:function(){m.forEach(a=>a.dispose());m.clear();m=void 0;cancelAnimationFrame(q);e.dispose();v.dispose()}})}function ea(a,b){let d={},c=a.getProgramParameter(b,a.ACTIVE_ATTRIBUTES);for(let f=0;f\u003Cc;f++){let {name:c}=a.getActiveAttrib(b,f);d[c]=a.getAttribLocation(b,c)}return d}function N(a){function b(b){a.texParameteri(a.TEXTURE_2D,\na.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,b?a.NEAREST:a.LINEAR);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,b?a.NEAREST:a.LINEAR)}let d,c,f=a.createFramebuffer();a.bindFramebuffer(a.FRAMEBUFFER,f);let e=a.createTexture();if(!e)throw Error(\"createTexture returned null\");a.bindTexture(a.TEXTURE_2D,e);b(!0);a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,e,0);return{get handle(){return f},\nget texture(){return e},updateTexture:b,bind:function(){a.bindFramebuffer(a.FRAMEBUFFER,f);a.viewport(0,0,d,c)},updateResolution:function(b,f){if(b!==d||f!==c)d=b,c=f,a.bindTexture(a.TEXTURE_2D,e),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,b,f,0,a.RGBA,a.FLOAT,null)},dispose:function(){a.deleteFramebuffer(f);a.deleteTexture(e)}}}function O(a,b,d){b=a.createShader(b);a.shaderSource(b,d);a.compileShader(b);if(!a.getShaderParameter(b,a.COMPILE_STATUS)){let c=a.getShaderInfoLog(b);a.deleteShader(b);console.warn(c,\n\"\\nin shader:\\n\",d)}return b}function H(a,b){if(a.length!==b.length)return!1;for(let d=0,c=a.length;d\u003Cc;d++)if(a[d]!==b[d])return!1;return!0}function I(a,b){for(let d=0,c=b.length;d\u003Cc;d++)a[d]=b[d]}function fa(a,b,d,c){a[0]!==c&&(d.uniform1f(b,c),a[0]=c)}function ha(a,b,d,c){H(a,c)||(d.uniform2fv(b,c),I(a,c))}function ia(a,b,d,c){H(a,c)||(d.uniform3fv(b,c),I(a,c))}function ja(a,b,d,c){H(a,c)||(d.uniform4fv(b,c),I(a,c))}function ka(a,b,d,c){a[0]!==c&&(d.uniform1i(b,c),a[0]=c)}function la(a){switch(a){case 5126:return fa;\ncase 35664:return ha;case 35665:return ia;case 35666:return ja;case 35678:case 36198:return ka}}function ma(a,b,d){let c=[],f=la(b.type);return{get location(){return d},get name(){return b.name},setValue:function(...b){f(c,d,a,...b)}}}function na(a,b){let d={},c=a.getProgramParameter(b,a.ACTIVE_UNIFORMS);for(let e=0;e\u003Cc;e++){var f=a.getActiveUniform(b,e);let c=a.getUniformLocation(b,f.name);f=ma(a,f,c);d[f.name]=f}return d}function oa(a,b){if(b){let b=a.match(P);a=a.replace(\"mainImage\",\"main\");a=\na.replace(P,\"()\");a=(b?\"#define \".concat(b[1],\" gl_FragColor\\n#define \").concat(b[2],\" gl_FragCoord.xy\\n\"):\"\")+a}a=pa(qa,b)+a;return\"precision highp float;\\n\"+a}function ra(a,b,d,c,f=!1){function e(a){let b=r[F(a,f,\"name\")];b&&b.setValue(F(a,f,\"value\"))}function p(b){b.forEach(e);t.forEach(a=>a.update(e));k&&r.u_prevbuffer&&(b=r.u_prevbuffer)&&(b.setValue(w),a.activeTexture(a[\"TEXTURE\".concat(w)]),a.bindTexture(a.TEXTURE_2D,k.texture),k.updateTexture());g.forEach(b=>{r[b.name].setValue(b.u);a.activeTexture(a[\"TEXTURE\".concat(b.u)]);\na.bindTexture(a.TEXTURE_2D,b.fbo.texture);b.fbo.updateTexture()})}let v=sa++,n=a.createProgram(),h=a.createBuffer();b=O(a,a.VERTEX_SHADER,b);d=O(a,a.FRAGMENT_SHADER,oa(d,f));a.attachShader(n,b);a.attachShader(n,d);a.linkProgram(n);let q,l,m,k,w,u=ea(a,n),r=na(a,n),g=new Set,t=new Set,x=0;if(!a.getProgramParameter(n,a.LINK_STATUS)){let b=a.getProgramInfoLog(n);console.warn(b)}a.detachShader(n,b);a.detachShader(n,d);a.deleteShader(b);a.deleteShader(d);b=u.position;a.bindBuffer(a.ARRAY_BUFFER,h);a.bufferData(a.ARRAY_BUFFER,\nc,a.STATIC_DRAW);a.enableVertexAttribArray(b);a.vertexAttribPointer(b,2,a.FLOAT,!1,0,0);return{get id(){return v},get nodes(){return g},get fbo(){return m},get name(){return q},get u(){return l},render:function(b,c,d){g.size&&g.forEach(a=>a.render(b,c,d));if(m){if(k){let a=m;m=k;k=a;k.bind();k.updateResolution(b,c)}m.updateResolution(b,c);m.bind()}else a.bindFramebuffer(a.FRAMEBUFFER,null),a.viewport(0,0,b,c);a.clear(a.COLOR_BUFFER_BIT);a.useProgram(n);p(d);a.drawArrays(a.TRIANGLES,0,6)},addNode:function(a,\nb,c){a.toFbo(b,x++,c);g.add(a)},removeNode:function(a){g.delete(a)},addTexture:function(a){t.add(a)},removeTexture:function(a){t.delete(a)},getTexUnit:function(){return x++},update:p,toFbo:function(b,c,d){q=b;l=c;m=N(a);d&&(k=N(a),w=x++)},dispose:function(){t.forEach(a=>a.dispose());t.clear();a.deleteProgram(n)}}}function Q(a){if(!a)return[0,0];let b=(a.tagName||\"\").toLowerCase();return\"video\"===b?[a.videoWidth,a.videoHeight]:\"img\"===b?[a.naturalWidth,a.naturalHeight]:[a.width,a.height]}function R(a,\nb,d={}){function c(){a.getParameter(a.ACTIVE_TEXTURE)!==b&&a.activeTexture(a[\"TEXTURE\".concat(b)])}function f(){h.forEach(b=>{a.texParameteri(p,b[0],b[1])})}function e(b){if(\"object\"===typeof b){Object.assign(n,b);c();a.bindTexture(p,v);var {level:d,internalFormat:e,offsetX:h,offsetY:r,width:g,height:t,border:m,format:B,type:D,flipY:z,buffer:y,pixels:A}=n;f();a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,z);if(A){let [c,d]=Q(A);if(0===c||0===d){console.warn(\"Texture size is invalid \".concat(c,\" x \").concat(d,\n\". Update is skipped;\"));return}{({pixels:b}=n);var J=a.getTexParameter(p,a.TEXTURE_WRAP_S);let c=a.getTexParameter(p,a.TEXTURE_WRAP_T),d=a.getTexParameter(p,a.TEXTURE_MIN_FILTER),f=G(b.width)&&G(b.height);(J=J!==a.CLAMP_TO_EDGE||c!==a.CLAMP_TO_EDGE||d!==a.LINEAR&&d!==a.NEAREST)&&!f&&(l||(l=document.createElement(\"canvas\"),l.width=2**Math.floor(Math.log(b.width)/Math.LN2),l.height=2**Math.floor(Math.log(b.height)/Math.LN2),console.warn(\"Texture is not power of two \".concat(b.width,\" x \").concat(b.height,\n\". Resized to \").concat(l.width,\" x \").concat(l.height,\";\"))),l.getContext(\"2d\").drawImage(b,0,0,l.width,l.height));q=J&&l||b}}\"number\"===typeof h&&\"number\"===typeof r?q?a.texSubImage2D(p,d,h,r,B,D,q):a.texSubImage2D(p,d,h,r,g,t,B,D,y):q?a.texImage2D(p,d,e,B,D,q):a.texImage2D(p,d,e,g,t,m,B,D,y);q&&G(q.width)&&G(q.height)&&(b=a.getTexParameter(p,a.TEXTURE_MIN_FILTER),b!==a.LINEAR&&b!==a.NEAREST&&a.generateMipmap(p))}}let p=a.TEXTURE_2D,v=a.createTexture(),n={},h=[],q,l;e(Object.assign({level:0,internalFormat:a.RGBA,\noffsetX:null,offsetY:null,width:1,height:1,border:0,format:a.RGBA,type:a.UNSIGNED_BYTE,flipY:!0,buffer:ta,pixels:null},\"object\"===typeof d?d:{}));return{setParameters:function(b){c();h.length=0;b.forEach(b=>{h.push(b);a.texParameteri(p,b[0],b[1])})},shallow:function(){c();a.bindTexture(p,v);f()},update:e,dispose:function(){a.deleteTexture(v)}}}function ua(a){return new Promise((b,d)=>{let c=new XMLHttpRequest;c.open(\"GET\",a,!0);c.responseType=\"arraybuffer\";c.onreadystatechange=()=>{c.readyState===\nXMLHttpRequest.DONE&&(200===c.status||206===c.status?b(c.response):(console.log(c),d(c.status)))};c.send()})}function va(a,b){return new Promise((d,c)=>{b.decodeAudioData(a,d,c)})}function wa(a,b,d,c,f,e,p,v){async function n(){g=l.createBufferSource();g.buffer=await va(await ua(c),l);g.loop=e;g.start();t=!0}function h(){let a=document.querySelector(c);a&&a instanceof HTMLAudioElement&&(r=a,g=l.createMediaElementSource(a))}function q(a,b){a.connect(m);m.connect(b)}f=a.gl;let l=a.wa,m=l.createAnalyser();\nm.fftSize=1024;let k=new Uint8Array(m.frequencyBinCount),w=new Uint8Array(m.frequencyBinCount),u=R(f,b,{internalFormat:f.LUMINANCE,width:w.length,height:2,format:f.LUMINANCE,buffer:null});u.setParameters([[f.TEXTURE_WRAP_S,f.CLAMP_TO_EDGE],[f.TEXTURE_WRAP_T,f.CLAMP_TO_EDGE],[f.TEXTURE_MIN_FILTER,f.NEAREST]]);let r,g,t=!1,x=[{name:d,value:b}];\"#\"===c[0]?h():c&&n();g&&q(g,l.destination);return{dispose:function(){u.dispose()},update:function(a){x.forEach(a);if(t||r&&2\u003Cr.readyState&&!r.paused&&!r.ended&&\nr.currentTime)m.getByteFrequencyData(k),m.getByteTimeDomainData(w),u.update({offsetX:0,offsetY:0,height:1,buffer:k}),u.update({offsetX:0,offsetY:1,height:1,buffer:w})}}}function S(a,b){var d=Object.keys(a);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(a);b&&(c=c.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable}));d.push.apply(d,c)}return d}function T(a){let b=document.createElement(\"div\");b.style.width=b.style.height=\"1px\";b.style.overflow=\"hidden\";b.style.position=\n\"absolute\";b.style.opacity=\"0\";b.style.pointerEvents=\"none\";b.style.zIndex=\"-1000\";b.appendChild(a);document.body.appendChild(b)}function xa(a,b,d,c,f,e,p,v,n,h){function q(){t=0;g=new Image;g.crossOrigin=\"anonymous\";g.onload=l;g.onerror=()=>{console.warn(\"failed loading src: \".concat(c))};g.src=c}function l(){k();r.setParameters([[u.TEXTURE_WRAP_S,e],[u.TEXTURE_WRAP_T,p],[u.TEXTURE_MIN_FILTER,v],[u.TEXTURE_MAG_FILTER,n]]);r.update({pixels:g})}function m(){t=2;let a=navigator.getUserMedia||navigator.webkitGetUserMedia||\nnavigator.mozGetUserMedia,b=a=>{g=document.createElement(\"video\");g.width=320;g.height=240;g.autoplay=!0;g.srcObject=a;T(g)},c=()=>{navigator.mediaDevices.getUserMedia({video:!0}).then(b).catch(a=>console.log(a.name+\": \"+a.message))},d=()=>{a({video:!0},b,a=>a)};navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?c():a&&d()}function k(){if(g){let [a,b]=Q(g);x[1].value[0]=a;x[1].value[1]=b}}function w(){return(2===t||1===t)&&g instanceof HTMLVideoElement}let u=a.gl,r=R(u,b),g,t,x=[{name:d,\nvalue:b},{name:d+\"_resolution\",value:[0,0]}],B=!1;if(f)m();else if(ya.test(c))t=1,g=document.createElement(\"video\"),g.autoplay=!0,g.muted=!0,g.loop=!0,g.playsInline=!0,g.crossOrigin=\"anonymous\",g.src=c,T(g),g.play();else if(za.test(c))q();else{try{g=document.querySelector(c)}catch(D){console.warn(\"src: \".concat(c,\": invalid selector\"))}g?g instanceof HTMLImageElement?(t=0,g.complete?l():g.addEventListener(\"load\",l)):g instanceof HTMLVideoElement?t=1:g instanceof HTMLCanvasElement?(t=3,l()):g instanceof\nK?(g=g.surface.dom,t=3,l()):console.warn(\"src: \".concat(c,\": element is not a valid texture source\")):console.warn(\"src: \".concat(c,\": no element could be selected\"))}return{dispose:function(){r.dispose()},update:function(a){x.forEach(a);h||w()&&g.readyState===g.HAVE_ENOUGH_DATA?(w()&&(B||(B=!0,k(),r.setParameters([[u.TEXTURE_WRAP_S,u.CLAMP_TO_EDGE],[u.TEXTURE_WRAP_T,u.CLAMP_TO_EDGE],[u.TEXTURE_MIN_FILTER,u.LINEAR]]))),r.update({pixels:g})):r.shallow()}}}function Aa(a){function b(a){n.forEach(a=>\n\"function\"===typeof a&&a());k=!0;a=U(a);let {top:b,left:c,height:d}=q;h[2].value[0]=h[2].value[2]=a[0]-Math.floor(c);h[2].value[1]=h[2].value[3]=Math.floor(d)-(a[1]-Math.floor(b))}function d(a){if(!m){a=U(a);let {top:b,left:c,height:d}=q;h[1].value[0]=a[0]-Math.floor(c);h[1].value[1]=Math.floor(d)-(a[1]-Math.floor(b));k&&(h[2].value[0]=h[1].value[0],h[2].value[1]=h[1].value[1]);m=!0}}function c(a){k=!1;1===Math.sign(h[2].value[2])&&(h[2].value[2]*=-1);1===Math.sign(h[2].value[3])&&(h[2].value[3]*=\n-1)}function f(){let b=e.getBoundingClientRect();l=0\u003C=b.top+b.height&&0\u003C=b.left+b.width&&b.bottom-b.height\u003C=(window.innerHeight||document.documentElement.clientHeight)&&b.right-b.width\u003C=(window.innerWidth||document.documentElement.clientWidth);let c=0\u003Ca.height?a.height:b.height,d=0\u003Ca.width?a.width:b.width;d!==h[0].value[0]&&(e.width=h[0].value[0]=d);c!==h[0].value[1]&&(e.height=h[0].value[1]=c);q=b}let e=a.canvas instanceof HTMLCanvasElement?a.canvas:document.createElementNS(\"http://www.w3.org/1999/xhtml\",\n\"canvas\"),p=e.getContext(\"2d\"),v=a.program,n=new Set,h=JSON.parse(JSON.stringify(V)),q={},l,m,k;e.addEventListener(\"mousedown\",b);e.addEventListener(\"mousemove\",d);e.addEventListener(\"mouseup\",c);e.addEventListener(\"mouseout\",c);e.addEventListener(\"touchstart\",b);e.addEventListener(\"touchmove\",d);e.addEventListener(\"touchend\",c);f();return Object.freeze({get dom(){return e},render:function(a,b,c,d,e,k){f();m=!1;if(l&&v){var g=h[0].value[0]||0;c=h[0].value[1]||0;b(g,c);v.render(g,c,[...k,...h]);b=\ng*e;e*=c;p.clearRect(0,0,b,e);p.drawImage(a,0,d-e,b,e,0,0,b,e)}},addClick:function(a){n.add(a)},dispose:function(){n.clear();e.removeEventListener(\"mousedown\",b);e.removeEventListener(\"mousemove\",d);e.removeEventListener(\"mouseup\",c);e.removeEventListener(\"mouseout\",c);e.removeEventListener(\"touchstart\",b);e.removeEventListener(\"touchmove\",d);e.removeEventListener(\"touchend\",c)}})}var W={render(a,b){return\"\".concat(this.css(a,b),\"\\n \").concat(this.html())},map(a){return{canvas:a.querySelector(\"canvas\")}},\nhtml(a){return\"\u003Ccanvas>\u003C/canvas>\"},css(a,b){return\"\u003Cstyle>\\n :host {\\n position: relative;\\n display: inline-block;\\n width: \".concat(a||250,\"px;\\n height: \").concat(b||250,\"px;\\n }\\n :host > canvas {\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n border-radius: inherit;\\n }\\n \u003C/style>\")}};let M=[{name:\"u_time\",toyname:\"iTime\",type:\"float\",value:0},{name:\"u_delta\",toyname:\"iTimeDelta\",\ntype:\"float\",value:0},{name:\"u_date\",toyname:\"iDate\",type:\"vec4\",value:[0,0,0,0]},{name:\"u_frame\",toyname:\"iFrame\",type:\"int\",value:0}],V=[{name:\"u_resolution\",toyname:\"iResolution\",type:\"vec2\",value:[0,0]},{name:\"u_mouse\",toyname:\"iCurrentMouse\",type:\"vec2\",value:[0,0]},{name:\"u_mousedrag\",toyname:\"iMouse\",type:\"vec4\",value:[0,0,0,0]}],L=[{name:\"u_orientation\",toyname:\"iOrientation\",type:\"vec3\",value:[0,0,0]}],qa=[...M,...L,...V],P=/\\(\\s*out\\s+vec4\\s+(\\S+)\\s*,\\s*in\\s+vec2\\s+(\\S+)\\s*\\)/,y;C.singleton=\nfunction(){y||(y=C());return y};C.resetSingleton=function(){y&&y.dispose();y=C()};class E extends HTMLElement{get renderer(){return C.singleton()}get name(){return this.getAttribute(\"name\")}set name(a){this.setAttribute(\"name\",a)}}var F=(a,b,d)=>{if(!b)return a[d];b=\"toy\".concat(d);return a.hasOwnProperty(b)?a[b]:a[d]},pa=(a,b)=>Object.values(a).reduce((a,c)=>a+\"uniform \".concat(F(c,b,\"type\"),\" \").concat(F(c,b,\"name\"),\";\\n\"),\"\");let sa=0;var Ba=a=>new Promise((b,d)=>{let c=new XMLHttpRequest;c.open(\"GET\",\na);c.onreadystatechange=()=>{c.readyState===XMLHttpRequest.DONE&&(200===c.status?b(c.responseText):d(c.status))};c.send()}),X=async a=>a.src?Ba(a.src):a.text;let Y=new Float32Array([-1,1,1,1,1,-1,-1,1,1,-1,-1,-1]),Ca=0;class Z extends E{disconnectedCallback(){this.program.dispose();this.program=void 0}get shadertoy(){return this.hasAttribute(\"shadertoy\")}set shadertoy(a){a?this.setAttribute(\"shadertoy\",\"\"):this.removeAttribute(\"shadertoy\")}get prevbuffer(){return this.hasAttribute(\"prevbuffer\")}set prevbuffer(a){a?\nthis.setAttribute(\"prevbuffer\",\"\"):this.removeAttribute(\"prevbuffer\")}get vertices(){let a=this.getAttribute(\"vertices\");if(!a)return Y;a=JSON.parse(a);return Array.isArray(a)?new Float32Array(a):Y}set vertices(a){a&&Array.isArray(a)&&this.setAttribute(\"vertices\",JSON.stringify(a))}async init(a){a&&!this.name&&(this.name=\"\".concat(\"u_node\").concat(Ca++));let b=[],d,c;for(let a=0;a\u003Cthis.children.length;a++){let e=this.children[a];if(e instanceof E)b.push(e);else switch(e.getAttribute(\"type\")){case \"x-shader/x-fragment\":c=\nawait X(e);break;case \"x-shader/x-vertex\":d=await X(e)}}this.program=ra(this.renderer.gl,d||\"attribute vec2 position;\\nvoid main() {\\n gl_Position = vec4(position, 0.0, 1.0);\\n}\",c,this.vertices,this.shadertoy);b.forEach(a=>{a.init(this.program)});a&&a.addNode(this.program,this.name,this.prevbuffer)}}customElements.get(\"sd-node\")||customElements.define(\"sd-node\",Z);let ta=new Uint8Array([0,0,0,255]),G=a=>!(a&a-1)&&!!a,Da=0;class Ea extends E{disconnectedCallback(){this.program.removeTexture(this.texture);\nthis.texture.dispose()}get src(){return this.getAttribute(\"src\")}set src(a){this.setAttribute(\"src\",a)}get autoplay(){return this.hasAttribute(\"autoplay\")}set autoplay(a){a?this.setAttribute(\"autoplay\",\"\"):this.removeAttribute(\"autoplay\")}get loop(){return this.hasAttribute(\"loop\")}set loop(a){a?this.setAttribute(\"loop\",\"\"):this.removeAttribute(\"loop\")}get crossOrigin(){return this.getAttribute(\"crossorigin\")}set crossOrigin(a){this.setAttribute(\"crossorigin\",a)}get mic(){return this.hasAttribute(\"mic\")}set mic(a){a?\nthis.setAttribute(\"mic\",\"\"):this.removeAttribute(\"mic\")}init(a){this.name||(this.name=\"\".concat(\"u_audio\").concat(Da++));this.src&&(this.program=a,this.texture=wa(this.renderer,a.getTexUnit(),this.name,this.src,this.mic,this.loop,this.autoplay,this.crossOrigin),a.addTexture(this.texture))}}customElements.get(\"sd-audio\")||customElements.define(\"sd-audio\",Ea);let za=/\\w+\\.(jpg|jpeg|png|gif|bmp)(?=\\?|$)/i,ya=/\\w+\\.(mp4|3gp|webm|ogv)(?=\\?|$)/i,aa={NEAREST:9728,LINEAR:9729},Fa=function(a){for(var b=1;b\u003C\narguments.length;b++){var d=null!=arguments[b]?arguments[b]:{};b%2?S(d,!0).forEach(function(b){var c=d[b];b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(d)):S(d).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(d,b))})}return a}({},aa,{NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987}),\nba={REPEAT:10497,MIRRORED_REPEAT:33648,CLAMP_TO_EDGE:33071},Ga=0;class Ha extends E{static get observedAttributes(){return\"mag-filter min-filter name src wrap-s wrap-t\".split(\" \")}disconnectedCallback(){this.program.removeTexture(this.texture);this.texture.dispose()}get forceUpdate(){return this.hasAttribute(\"force-update\")}set forceUpdate(a){a?this.setAttribute(\"force-update\",\"\"):this.removeAttribute(\"force-update\")}get magFilter(){return aa[this.getAttribute(\"mag-filter\")]||9729}get minFilter(){return Fa[this.getAttribute(\"min-filter\")]||\n9987}get src(){return this.getAttribute(\"src\")}set src(a){this.setAttribute(\"src\",a)}get webcam(){return this.hasAttribute(\"webcam\")}set webcam(a){a?this.setAttribute(\"webcam\",\"\"):this.removeAttribute(\"webcam\")}get wrapS(){return ba[this.getAttribute(\"wrap-s\")]||10497}get wrapT(){return ba[this.getAttribute(\"wrap-t\")]||10497}init(a){this.name||(this.name=\"\".concat(\"u_texture\").concat(Ga++));if(this.src||this.webcam)this.program=a,this.texture=xa(this.renderer,a.getTexUnit(),this.name,this.src,this.webcam,\nthis.wrapS,this.wrapT,this.minFilter,this.magFilter,this.forceUpdate),a.addTexture(this.texture)}}customElements.get(\"sd-texture\")||customElements.define(\"sd-texture\",Ha);class Ia extends E{disconnectedCallback(){}get x(){return parseFloat(this.getAttribute(\"x\"))}set x(a){null!=a?this.setAttribute(\"x\",a):this.removeAttribute(\"x\")}get y(){return parseFloat(this.getAttribute(\"y\"))}set y(a){null!=a?this.setAttribute(\"y\",a):this.removeAttribute(\"y\")}get z(){return parseFloat(this.getAttribute(\"z\"))}set z(a){null!=\na?this.setAttribute(\"z\",a):this.removeAttribute(\"z\")}get w(){return parseFloat(this.getAttribute(\"w\"))}set w(a){null!=a?this.setAttribute(\"w\",a):this.removeAttribute(\"w\")}getValue(){switch(this.type){case \"vec2\":return[this.x,this.y];case \"vec3\":return[this.x,this.y,this.z];case \"vec4\":return[this.x,this.y,this.z,this.w];default:return this.x}}get type(){return this.getAttribute(\"type\")}set type(a){null!=a?this.setAttribute(\"type\",a):this.removeAttribute(\"type\")}static get observedAttributes(){return[\"x\",\n\"y\",\"z\",\"w\"]}attributeChangedCallback(a,b,d){switch(a){case \"x\":case \"y\":case \"z\":case \"w\":null!=d&&this.renderer.setUniform(this.name,this.getValue())}}init(a){this.name?(this.program=a,this.renderer.addUniform(this.name,this.getValue(),this.type)):console.warn(\"sd-uniform created without a name.\")}}customElements.get(\"sd-uniform\")||customElements.define(\"sd-uniform\",Ia);let Ja=new Set([\"touchstart\",\"touchmove\",\"touchend\"]);var U=a=>{a=Ja.has(a.type)&&\"object\"===typeof a.touches[0]?a.touches[0]:\na;return[a.clientX||0,a.clientY||0]};class K extends Z{static get observedAttributes(){return[\"height\",\"width\"]}constructor(){super();this.shadow=this.attachShadow({mode:\"open\"})}connectedCallback(){this.shadow.innerHTML=W.render(this.width,this.height);this.canvas=W.map(this.shadow).canvas;setTimeout(()=>{try{this.init()}catch(a){console.error(a&&a.message||\"Error in shader-doodle.\")}})}disconnectedCallback(){super.disconnectedCallback();this.renderer.removeSurface(this.surface);this.surface.dispose();\nthis.surface=void 0}attributeChangedCallback(a){let b=this.shadow.styleSheets;if((\"height\"===a||\"width\"===a)&&0\u003Cb.length){let d=this[a];b[0].cssRules[0].style[a]=Number.isInteger(d)?\"\".concat(d,\"px\"):\"250px\"}}get height(){let a=parseInt(this.getAttribute(\"height\"));return Number.isInteger(a)?a:void 0}set height(a){let b=parseInt(a);Number.isInteger(b)&&this.setAttribute(\"height\",a)}get width(){let a=parseInt(this.getAttribute(\"width\"));return Number.isInteger(a)?a:void 0}set width(a){a=parseInt(a);\nNumber.isInteger(a)&&this.setAttribute(\"width\",a)}async init(){await super.init();this.surface=Aa(this);this.renderer.addSurface(this.surface)}}customElements.get(\"shader-doodle\")||customElements.define(\"shader-doodle\",K);z.ShaderDoodleElement=K;Object.defineProperty(z,\"__esModule\",{value:!0})})\n\u003C/script>","tags":"$:/tags/RawMarkup","title":"$:/webxr-notebook/shader-doodle.js","modified":"20230426064515285"}, -{"created":"20230428121310382","text":"\u003Cbr>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"#XR Fragments\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">Home\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"#How it works\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">How it works\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"#Getting%20started\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">Getting started\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"/example/aframe/sandbox\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">Example 3D-file Browser\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"doc/RFC_XR_Fragments.html\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"display:inline; font-weight:bold;padding:0; text-decoration:none\">Spec\u003C/a> | \u003Ca href=\"https://github.com/coderofsalvation/xrfragment\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"display:inline; font-weight:bold;padding:0; text-decoration:none\">Source\u003C/a> | \u003Ca href=\"https://mastodon.online/@lvk\" class=\"tc-btn-invisible label\" target=\"_blank\" style=\"display:inline;font-weight:bold;padding:0; text-decoration:none\">Feedback\u003C/a> | \u003Ca href=\"#Philosophy%20&%20FAQ\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none; display:inline\">FAQ\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv id=\"nlnet\">\n \u003Ca href=\"https://nlnet.nl\" target=\"_blank\">\n [img width=100 [nlnet.png]]\n\t\u003C/a>\n\u003C/div>\n\n\u003Cstyle type=\"text/css\">\n #nlnet img{\n\t\topacity:0.4;\n\t}\n\u003C/style>\n","tags":"","title":"$:/xrfragment/topmenu","modified":"20240711105304116"}, +{"created":"20230428121310382","text":"\u003Cbr>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"#XR Fragments\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">Home\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"#How it works\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">How it works\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"#Getting%20started\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">Getting started\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"/example/aframe/sandbox\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">Example 3D-file Browser\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"doc/RFC_XR_Fragments.html\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"display:inline; font-weight:bold;padding:0; text-decoration:none\">Spec\u003C/a> | \u003Ca href=\"https://codeberg.org/coderofsalvation/xrfragment\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"display:inline; font-weight:bold;padding:0; text-decoration:none\">Source\u003C/a> | \u003Ca href=\"https://mastodon.online/@lvk\" class=\"tc-btn-invisible label\" target=\"_blank\" style=\"display:inline;font-weight:bold;padding:0; text-decoration:none\">Feedback\u003C/a> | \u003Ca href=\"#Philosophy%20&%20FAQ\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none; display:inline\">FAQ\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv id=\"nlnet\">\n \u003Ca href=\"https://nlnet.nl\" target=\"_blank\">\n [img width=100 [nlnet.png]]\n\t\u003C/a>\n\u003C/div>\n\n\u003Cstyle type=\"text/css\">\n #nlnet img{\n\t\topacity:0.4;\n\t}\n\u003C/style>\n","tags":"","title":"$:/xrfragment/topmenu","modified":"20240712161258835"}, {"created":"20230427155228509","text":"\u003Cscript src=\"dist/xrfragment.js\">\u003C/script>","tags":"$:/tags/RawMarkup","title":"$:/xrfragment/xrfragment.js","modified":"20230627082106120"}, {"created":"20230530121012871","text":"16:04:16 From Leon van Kammen : https://xrf.isvery.ninja/example/aframe/sandbox\n16:04:51 From Frode Hegland : https://futuretextlab.info\n16:04:54 From Leon van Kammen : https://xrf.isvery.ninja\n16:05:21 From Frode Hegland : https://futuretextlab.info/category/vr-resource/\n16:15:08 From Peter Wasilko : What is MR in the center of the diagram?\n16:15:28 From Brandel Zachernuk : “Mixed Reality”\n16:15:54 From Peter Wasilko : How is it distinguished from AR?\n16:17:09 From Brandel Zachernuk : It’s a term that people use to encompass the lot. Many people claimed that Google Glass-style AR with no ‘world registration’ as AR, which drove people to coining an additional term\n16:17:30 From Frode Hegland : Ah… thanks Brandel\n16:19:05 From Patrick Lichty : MR, XR, AR, VR, it seems these are used rather fungible, it’d be good to have a small discussion about the Venn diagram here after the talk.\n16:19:24 From Frode Hegland : Yes exactly http://community.cim3.net/wiki/PurpleNumbers.html\n16:19:39 From Frode Hegland : Doug’s paragraph level addressing made live on the web through this\n16:19:52 From Karl Hebenstreit, Jr. : Reacted to “MR, XR, AR, VR, it s…” with 👍\n16:22:14 From Peter Wasilko : I particularly loved Doug’s deep linking distinction between a location in a document whose content might change vs. content in a document whose location might change. We need anchors to both.\n16:22:43 From Frode Hegland : Reacted to “I particularly loved…” with 👍\n16:24:17 From Frode Hegland : Hi Dene\n16:24:36 From Patrick Lichty : Reacted to “I particularly loved…” with 👏\n16:25:08 From Dene Grigar To Frode Hegland(privately) : Good moring\n16:25:12 From Dene Grigar To Frode Hegland(privately) : morning\n16:25:27 From Frode Hegland To Dene Grigar(privately) : 🙂\n16:30:25 From Frode Hegland : Hi Matthias\n16:31:40 From Patrick Lichty : This is amazing, actually.\n16:31:51 From Peter Wasilko : It looked like the image on the surface of the portal object was changing with one’s relative position to it.\n16:33:09 From Dene Grigar : Is there an example of how this has been used for art?\n16:33:25 From Patrick Lichty : Yes.\n16:36:22 From Karl Hebenstreit, Jr. : Future of Interface Workshop (February 15-16), https://futureofinterface.org/info-center/accessibility/ and there’s an XR Accessibility community, https://xraccess.org/\n16:40:15 From Peter Wasilko : https://en.wikipedia.org/wiki/TouchDesigner\n16:40:47 From Peter Wasilko : https://derivative.ca\n16:45:25 From Fabien : addressability of the known universe with infinite resolution\n16:47:49 From Frode Hegland : Fabien, infinite resolution depends on stated context, so cool\n16:47:50 From Frode Hegland : Can this generate a link to a specific location and view by the user performing an action in that location and sharing it? Like a GPS coordinate maybe.\n16:50:22 From Brandel Zachernuk : This is the W3C TPAC: https://www.w3.org/2023/09/TPAC/, and the IW WG (webXR etc) is here: https://www.w3.org/immersive-web/\n16:50:28 From Fabien : Reacted to “This is the W3C TP…” with 👍\n16:51:33 From Matthias mprove : The TPAC link says ”Sorry, Insufficient Access Privileges”\n16:51:34 From Karl Hebenstreit, Jr. : I see XR accessibility as one of the most complex challenges. How can we make it accessible so people with disabilities are not excluded from virtual worlds?\n16:52:22 From Matthias mprove : Oh, the comma was playing a trick on me: https://www.w3.org/2023/09/TPAC/\n16:53:45 From Peter Wasilko : De Bruijn Indices! https://en.wikipedia.org/wiki/De_Bruijn_index\n17:01:36 From Dene Grigar : Yes, I do\n17:02:14 From Dene Grigar : VR poses a challenge for conservation\n17:02:39 From Frode Hegland : 1 second sorry\n17:02:49 From Fabien : indeed, participated to Not Time To Wait specifically for that https://mediaarea.net/NoTimeToWait6\n17:03:13 From Fabien : (for conservation, in art or not)\n17:03:28 From Daveed Benjamin : Love it Peter! Bit.ly for XR fragments\n17:03:55 From Matthias mprove : paraphrasing Jef Raskin: the beginning of a document should be usable as a filename to refer to the document itself\n17:04:43 From Leon van Kammen : Jeff Rascin\n17:04:51 From Peter Wasilko : https://en.wikipedia.org/wiki/The_Humane_Interface\n17:04:56 From Matthias mprove : /from his book The Humane Interface\n17:05:37 From Dene Grigar To Frode Hegland(privately) : I need to go to another meeting. Thanks for today!\n17:09:32 From Peter Wasilko : Just to play it safe, you might need to query IPFS for the URI phrase before using it on the extremely odd chance some else had previously generated it. In Law, we actually deal with this in naming corporations by breaking out an explicit Name Reservation step.\n17:09:37 From Fabien : for ref https://en.wikipedia.org/wiki/World_Geodetic_System\n17:12:06 From Karl Hebenstreit, Jr. : @Fabien are you talking about a universal (UTC) timestamp?\n17:13:03 From Fabien : was thinking more of the spatial aspect but timestamp could be an example too as we do have to be able to “convert” from one timezone to another or have different timescales too\n17:15:26 From Fabien : other example https://en.wikipedia.org/wiki/Web_Mercator_projection most of us might be familiar with, without being aware of it, point being that with its name and https://en.wikipedia.org/wiki/Well-known_text_representation_of_coordinate_reference_systems it’s explicited and thus can be converted from and to, basically avoiding “the one solution” that we lately notice just doesn’t cover all cases\n17:15:34 From Peter Wasilko : @Patrick, do you have any favorite Brutalist Architecture resources?\n17:17:02 From Patrick Lichty : Brutalism appreciation society on FB, sci fi movie Sankofa and Last Men,\n17:22:14 From Peter Wasilko : One can’t help contemplate Brutalism in VR.\n17:22:38 From Patrick Lichty : Book – Soviet Bus Stops\n17:26:38 From Peter Wasilko : @Brandel do you have a link to that work?\n17:29:02 From Karl Hebenstreit, Jr. : List of speakers from Future of Interface workshop: https://docs.google.com/document/d/1tUjMRyLHEtyzHotfAmQUnDsdMHuMWdBkmuG8TlRKEqs/edit\n17:29:54 From Brandel Zachernuk : https://zachernuk.neocities.org/2016/beestConfigurator/#wr=38&bl=170&ta=272&tb=157&ba=210&bb=94&fl=200&fa=1.371&\n17:30:00 From Karl Hebenstreit, Jr. : @Dene will want to view the Exploratorium: https://futureofinterface.org/exploratorium/\n17:30:15 From Karl Hebenstreit, Jr. : Thank you everyone, on to my next meeting…\n17:30:44 From Leon van Kammen : https://xrf.isvery.ninja/#List%20of%20fragments\n17:31:25 From Matthias mprove : Flashback: URLs were never meant to be seen by the end-user. This just happened some years after Berners-Lee/Cailliau have introduced their browser w/o visible links. Very insightful interview with Robert Cailliau (1999) at https://www.youtube.com/watch?v=x2GylLq59rI\n17:36:04 From Matthias mprove : related to Leons wonderful work :: my ChronoLinks contain perspective and and zoom and time and old map identifier. Example: click the 5 buttons below at EXPEDITION AUF TENERIFFA https://mprove.de/chronolab/world/humboldt/index.html#teneriffa\n(This is a 3d mapbox world)\n17:36:44 From Fabien : Reacted to “Flashback: URLs we…” with 👀\n17:43:44 From Fabien : see also https://git.benetou.fr/utopiah/text-code-xr-engine/issues/24 on “in 3D” screenshot (as glTF snapshot) from defined perspective, tried with “friends” via Immers and had a working version\n17:44:24 From Frode Hegland : Reacted to “see also https://git…” with 👍\n17:45:19 From Patrick Lichty : I have to go to another meeting soon. This was great. Thank you!\n17:46:21 From Matthias mprove : Bonus info: Chronoscope’s ChronoLinks can also contain commands that are executed once the link is loaded by a browser. Example: this animation is just one link. Video: https://twitter.com/chronohh/status/1551203958730985472\nDIY ChonoLink inside here https://twitter.com/chronohh/status/1550876398960709638\n17:47:15 From Fabien : https://wicg.github.io/scroll-to-text-fragment/\n17:48:12 From Matthias mprove : @Leon set a marker on something: This is again Jef Raskin, the distinction between focus of attention and locus of attention. /also from The Humane Interface\n17:48:22 From Fabien : https://markjs.io\n17:50:42 From Brandel Zachernuk : Just like SMS, never intended to be exposed as an end-user capability\n17:51:25 From Brandel Zachernuk : But there’s an explicit line from SMS to Twitter and many (most?) other social media platforms\n17:53:36 From Fabien : code related to federated share moment/position https://git.benetou.fr/utopiah/text-code-xr-engine/src/branch/federation/index.html#L222 that is accessible as a URL e.g https://immers.benetou.fr/s/639cb4171757b8382c120da1\n17:56:54 From Fabien : related on “pointing” at things in the real life with MR/AR/XR, this a “layer” of the “real” world https://git.benetou.fr/utopiah/text-code-xr-engine/issues/73\n18:09:04 From Matthias mprove : My sort of fun: Connecting the Colosseum with Stonehenge https://mprove.de/chrono?q=41.89018,12.49231&z=17.11&r=20&t=14&m=SZAT7400-MIII40-8&o=0.8&s=1&c=z,-5,9,vIAb28777542-16,h,z,-22,9,vIAb22010294-26,z,-7,9,9\n18:09:34 From Fabien : Reacted to “My sort of fun: Co…” with 👍\n18:15:44 From Peter Wasilko : We could exfiltrate data as a Visual Meta blipvert in VR. Rez a placard with the VM for 10th of a second. https://en.wikipedia.org/wiki/Blipvert\n\njeff rascins, phrases not urls purle-elk-mount-fuji (ipfs)\nlike that\n\nhyperbolic browsers, mindmaps\n\nfragment: highlight point of interest\n\npolitical cultural implications, who is it excluding, obligations, worst thing to apply\n\nXR Fragments,\nBrandel, url as authorisation (client decodes url, logic)\n\nvisual meta\n\nmauve: matrix, \n\nhttps://github.com/omigroup/gltf-extensions\n \nMauve (they/it) says:\nhttps://github.com/omigroup/gltf-extensions/pulls\n \nMauve (they/it) says:\nhttps://github.com/omigroup/gltf-extensions/pull/85\n \nMauve (they/it) says:\nhttps://blog.mauve.moe/slides/p2p-spatial-indexes/#1\n \nMauve (they/it) says:\nhttps://github.com/omigroup/omi-scripting-group\n \nMauve (they/it) says:\nhttps://unit.land/\n \n21:58\nme says:\nhttps://searxr.me\n \n22:06\nMT\nMauve (they/it)\nMauve (they/it) says:\nhttps://stardustxr.org/\n\n22:12\nme says:\nhttps://github.com/copy/v86\n \nMauve (they/it) says:\nhttps://webassembly.sh/\n \nMauve (they/it) says:\nhttps://matrix.to/#/#LoFirCy:mauve.moe","title":"29th May 2023 future of text presentation notes","tags":"Journal","modified":"20230530121043650","type":"text/plain"}, {"title":"4d3.jpg","text":"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kkkkkkkkkgEgkgEkkgAgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkEkEkkkkkkgkAkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkEgkEkkkgAAkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkAAkkkkkgEAgEEEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklkkkkkkkkk8kkkkDkkkkkkkkkkkkkggkAEkkgkkAkAkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkjkkkknYkkkxv0kkkEkkkkkkkkkkkgkkggAkkkEkgkkEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkhkkBuNXLypU1O4ByfgakkkkkkkkkkkgEEAkkgEkgkkAkEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkhpAkkkXwnlfNqtjj8CA8kkkkkkkkkkkkkEAkkgEkkEkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklgYkndnjzk8RZzB0ACK0kkkkkkkkkkkgEkkkkkEkgkgkkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkEkCjPUAG0kkkkkkkkkkkkkkkkEkkkEgEkgAEAkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkknEkkgpUkkkkkkkkkkkkkkkkkkkkkgAAEgkkkgkkEgEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkjkkkkAkkkkkkkkkkkkkkkkkkkkkkkkgkkkkkkkkkEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkEgkkEkkAggkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkgAAkEAAAgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkykkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkGkkkknkkikkmckEk8kkkggmAkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkH0kkkloskCEk5k7koFkkk9DaskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkigAcp5V9kgLjUHrE+F6iklxsJxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkg9CcTPjEn1yxEkMknKUuknwlI0kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkhVC8ThpkgjePaTUkhDUcj0WK8kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkhfeQUGkkcmEEVvknIYEkZEjfkkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkAkkkkkkkkkkkkkkkkkkkkkkkkZkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk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","type":"image/jpeg"}, @@ -1083,6 +1085,7 @@ Error message and password prompt {"title":"aboutleon.png","text":"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","type":"image/png"}, {"created":"20240619094946365","text":"XR Fragment-capable clients offer increased XR Accessibility via the so-called 2-button navigation:\n\n> TAB and ENTER actions allow for cycling/executing objects with `href` metadata \u003Cb>contextually\u003C/b>, meaning that only relevant objects are candidates for this (allowing comfortable tab-navigation inside huge worlds with large amounts of buttons). The buttons are remappable, and can also be triggered via speech.\n\n\u003Cdiv style=\"max-width:600px\">\n\u003C$videojs _autoplay controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://coderofsalvation.codeberg.page/xrfragment.media/accessibility-2buttonnav.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\nHere's the relevant part of the spec:\n\u003Cbr>\u003Cbr>\n\u003Ciframe src=\"doc/RFC_XR_Fragments.html#two-button-navigation\" frameborder=\"0\" class=\"spec\">\u003C/iframe>\n\nThe spec also defines a simple text-input interface which allows navigation via speech or text-input:\n\n\u003Ciframe src=\"doc/RFC_XR_Fragments.html#accessibility-interface\" frameborder=\"0\" class=\"spec\">\u003C/iframe>\n","tags":"[[📡 by feature (heuristics)]]","title":"accessibility via commands","modified":"20240619105634497","type":"text/markdown"}, {"created":"20230424093140723","text":"\u003C\u003Cscript>> \u003C!-- enables script-tag -->\n\n\u003Cdiv class=\"scene\">\n\t\u003Ca-scene embedded>\n\t\t\u003Ca-box position=\"-1 0.5 -3\" rotation=\"0 45 0\" color=\"#4CC3D9\">\u003C/a-box>\n\t\t\u003Ca-sphere position=\"0 1.25 -5\" radius=\"1.25\" color=\"#EF2D5E\">\u003C/a-sphere>\n\t\t\u003Ca-cylinder position=\"1 0.75 -3\" radius=\"0.5\" height=\"1.5\" color=\"#FFC65D\">\u003C/a-cylinder>\n\t\t\u003Ca-plane position=\"0 0 -4\" rotation=\"-90 0 0\" width=\"4\" height=\"4\" color=\"#7BC8A4\">\u003C/a-plane>\n\t\t\u003Ca-sky color=\"#444\">\u003C/a-sky>\n\t\u003C/a-scene>\n\u003C/div>\n\n\u003Cscript>\n(function(){\n\t\n\tlog(\"hello world\")\n let $scene = $('a-scene')\n\t\n $scene.addEventListener('loaded', () => {\n\t\t$scene.renderer.render = ( (render) => ( scene, cam ) => {\n \t\trender(scene,cam)\t\n\t\t\tif( !$scene.renderer ) return log(\"no renderer\")\n\t\t\tlet info = $scene.renderer.info.render\n\t\t\tlog(\"frame : \" + info.frame,2)\n\t\t\tlog(\"triangle: \" + info.triangles,4)\n\t\t\tlog(\"calls : \" + info.calls,3)\t\t\n\t\t})($scene.renderer.render.bind($scene.renderer) )\n })\t\n\t\n})()\n\u003C/script>","tags":"","title":"AFRAME template","modified":"20230523125627072","type":"text/vnd.tiddlywiki"}, +{"created":"20240712161508821","text":"\u003Ca href=\"https://en.wikipedia.org/wiki/Reflection_mapping\" target=\"_blank\">reflection mapping\u003C/a> enhances the realism of 3D objects by reflecting their surroundings.\u003Cbr>\nTo make sure each object uses the right environment map, in your 3D editor (blender e.g.) set it based on the closest parent object with a (seamless) texture.\n\n> This way, objects automatically inherit the appropriate reflections and lighting from their nearest parent, ensuring a consistent and realistic look across the scene.\n\n","tags":"[[📡 by feature (heuristics)]]","title":"automatic reflection mapping","modified":"20240712161844785","type":"text/markdown"}, {"title":"centralized.png","text":"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","type":"image/png"}, {"created":"20240208094644929","text":"XR Fragment-capable clients can show/hide objects with a certain name or [tag](#tag) in various ways:\n\n`#\u003Ctag_or_objectname>[*]=\u003Cmaterialname>`\n\n| example | including children | info |\n|---------|--------------------|------|\n| `#foo=dark` | no | **changed material** of object with `foo` as name or part of [tag](#tag) (space-separated) to material (with name `dark`)|\n| `#foo*=dark` | yes | **changes material** of object with `foo` as name or part of [tag](#tag) (space-separated) to material (with name `dark`)|\n| `#!foo` | no | **resets material** of object with `foo` as name or part of [tag](#tag) back to original material |\n| `#!foo*` | yes | **resets material** of object with `foo` as name or part of [tag](#tag) back to original material |\n\n> NOTE: if a material does not exist, the update does not happen.","tags":"[[📡 by feature (heuristics)]]","title":"changing object materials","modified":"20240208095728657","type":"text/markdown"}, {"created":"20240130111910059","text":"> NOTE: the following is adviced but also non-mandatory for clients: the default floor is assumed to be at coordinate 0,0,0\n\nXR Fragment-capable clients can sense walkable meshes, by scanning all objects in a scene for:\n\n1. non-existence of `href`-attribute \n\u003Cbr>\n2. non-existence of `src`-attribute \n\u003Cbr>\n3. non-existance of material \n\u003Cbr>\u003Cbr>\n\nIf all conditions are met, the mesh can be considered collidable/walkable (to teleport to e.g.)\n","tags":"[[📡 by feature (heuristics)]]","title":"collidable / walkable objects","modified":"20240206123715236"},